exten =>_1XX,1,Set(foo=${CALLERID(num)})
exten =>_1XX,2,Set(foo2=$[{LEN(${foo})}-3])
exten =>_1XX,3,Dial(SIP/${CALLERID(num):0:${foo2}}${EXTEN})
Если звонить, например, с номера 2101 на номер 2102, то CallerID определяется как 2101, а если внешний абонент +7905xxxxxxx позвонит на 2101, а 2101 переведет звонок с помощью ## на 2102, то CallerID будет уже +7905xxxxxxx. Вопрос, как заставить функцию Attended Transfer определят CallerID того, кто перенаправил ему звонок (то есть 2101), а не того, кто висит на внешней линии (+7905xxxxxxx)?
Вообще это нелогично: с т.з. третьего телефона ему просто приходит звонок от другого абонента. Но думаю можно обойти спец. проверкой: перед попаданием к номеру B сначала запоминаем номер в astdb, при трансфере извлекаем номер из astdb по номеру B (astdb нужна потому что там будет другой номер канала, новый вызов), и его подставляем для абонента C.
Задан: Aug 19 '13
Просмотрен: 843 раз
Обновлен: Aug 19 '13
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.