Стенд: принимаем вызов, и тут же его транслируем дальше (делаем Dial на втором плече).
Из первого плеча получаем Cancel Reason: SIP;cause=487;text="ORIGINATORCANCEL" Reason protocols: SIP User-Agent: OpenSIPS (1.7.2-tls (x8664/linux))
Наш asterisk передает во второе плечо свой Cancel. Но уже пустой.
Как начать или транслировать as is или формировать самостоятельно Cause code в сторону второго плеча (туда куда мы Dial делаем)
Никак.
Вы можете прочитать через SIP_HEADER и добавить в другое поле. Но только в x- поле(пользовательское). Както так
exten => _X.,n,Set(SIP_HEADER(X-CancelReason)=${SIP_HEADER(CancelReason)})
При этом это пойдет в первый инвайт в caller сторону.
Если надо поменять поле, прийдется изучать kamailio/opensips или переписать чуток астериск.
Задан: 2016-07-12 18:22:23 +0400
Просмотрен: 412 раз
Обновлен: Jul 12 '16
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
http://www.voip-info.org/wiki/view/Asterisk+variable+hangupcause
awsswa ( 2016-07-12 21:40:16 +0400 )редактироватьПо ссылку описывается взаимодействие с ISDN PRI. У меня же sip везде.
Или я не так понял?
vitalikus ( 2016-07-14 15:42:05 +0400 )редактировать