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

Двойной DIAL

Добавлено: 21 июн 2015, 23:21
TVMaker
Делаю одновременный вызов на две внешние линии примерно следующим образом:

Dial(${OUT_CHANNEL_1}/${PROVIDER_1}/${OUT_NUMBER_1}&${OUT_CHANNEL_2}/${PROVIDER_2}/${OUT_NUMBER_2})

Вызов идет одновременно на оба заданных номера, при ответе вызываемой стороны второй вызов сразу же разрывается - как и должно быть. А как можно далее в диалплане понять, какой именно номер ответил?

Re: Двойной DIAL

Добавлено: 21 июн 2015, 23:59
Glukinho
${BRIDGEPEER} попробуйте.

Re: Двойной DIAL

Добавлено: 22 июн 2015, 19:30
TVMaker
Не совсем то. Он возвращает что-то типа "SIP/provider/callid" - а как узнать, что за callid был? В случае разных провайдеров, конечно, однозначно можно понять, но в случае совпадения не получится :cry:

Re: Двойной DIAL

Добавлено: 22 июн 2015, 20:04
Glukinho
Пока приходит в голову только звонить на очередь с strategy = ringall и setinterfacevar = yes, тогда установится переменная ${MEMBERINTERFACE}, содержащая имя ответившего канала.

Re: Двойной DIAL

Добавлено: 22 июн 2015, 20:17
Zavr2008
Думаю можно использовать опцию M в Dial для вызова макроса - тогда в нем уже будет канал верный после соединения.

Re: Двойной DIAL

Добавлено: 22 июн 2015, 20:41
Glukinho
И где его там ловить?

Re: Двойной DIAL

Добавлено: 22 июн 2015, 21:22
gosha
DIALEDPEERNUMBER

не катит ?

Re: Двойной DIAL

Добавлено: 22 июн 2015, 22:06
TVMaker
Спасибо, Glukinho и gosha! Используя парсинг обеих переменных - BRIDGEPEER и DIALEDPEERNUMBER, я решил задачу! Честно скажу - про DIALEDPEERNUMBER не знал. Учиться никогда не поздно :D

BRIDGEPEER дает тип канала и провайдера (имя канала мне для анализа бессмысленно), а у меня два типа каналов используется - SIP и Dongle, DIALEDPEERNUMBER дает провайдера и номер.

Re: Двойной DIAL

Добавлено: 23 июн 2015, 00:02
Glukinho
Я про DIALEDPEERNUMBER тоже не знал ;)