Страница 1 из 1

Переменная для определения канала

Добавлено: 13 окт 2015, 16:08
Ferrum
Как узнать через какой канал был осуществлен звонок ?

К примеру у нас есть Контекст такого типа

Код: Выделить всё

[context]

exten => _X.,1,Dial(SIP/${EXTEN}@PROV1,60)
exten => _X.,n,Dial(SIP/${EXTEN}@PROV2,60)
exten => _X.,n,Hangup

exten => h,1,NoOp(${Callerid(num)})
exten => h,n,NoOp(${Callerid(dnid)})
exten => h,n,NoOp(?????????)
Возможно ли в exten => h узнать через какого из провайдеров был осуществлен звонок, не меня значения в exten => _X. ?
(Просто часть диалплана находиться в БД и генерируется через триггер, внесение туда изменений представляет некие проблемы (за БД и триггер отвечает сторонний человек))

Re: Переменная для определения канала

Добавлено: 13 окт 2015, 16:58
Zavr2008
Всё верно, в h уже одно плечо - разрушено, соответственно уже нет и канала.
Однако, есть переменные CDR, их можно юзать, см вику.

Еще вместо h можно юзать каллбеки, описанные lintimax недавно тут на форуме.

Re: Переменная для определения канала

Добавлено: 13 окт 2015, 23:51
Samael28
После Dial у вас есть куча переменных. Одна из них - BRIDGEPEER. Вот тут и можно вытащить 2й канал. Будет что-то типа SIP/PROV1/...

Re: Переменная для определения канала

Добавлено: 14 окт 2015, 00:06
ded
DumpChan() поможет вытянуть все переменные и выбрать годную.
http://www.voip-info.org/wiki/view/Aste ... d+DumpChan