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

Обработка входящих - добавление каналов к вызову.

Добавлено: 24 сен 2013, 14:03
sadm
Хочется построить ответ на входящий по следующему принципу:
Вызов идёт одновременно на настольный и сотовый телефон абонента.
Если нет ответа втечение 10 секунд, к вызову автоматически добавлятся телефон абонента 2 (телефоны абонента 1 продолжают вызываться).
Если нет ответа втечение 10 секунд, к вызову автоматически добавлятся телефон абонента 3 (телефоны абонентов 1 и 2 продолжают вызываться).

На ум приходит только такая конструкция:
Dial(SIP/1&SIP/gsm/8910111111,10,rTt);
Dial(SIP/1&SIP/gsm/8910111111&SIP/2,10,rTt);
Dial(SIP/1&SIP/gsm/8910111111&SIP/2&SIP/3,0,rTt);

Но тут явная проблема - после окончания 10 секундного интервала вызовы по каналам, переданным в Dial прекращаются и дозвон начинается заново. Тоесть в данном примере сотовый SIP/gsm/8910111111 может вызываться до трёх раз.

Есть вообще красивый способ добавлять каналы к вызову, или я хочу слишком странного?

Re: Обработка входящих - добавление каналов к вызову.

Добавлено: 24 сен 2013, 14:15
menzoberronzan
Можно использовать Local Channel, например так:

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

exten => your_extension,1,Dial(SIP/1&SIP/gsm/8910111111&LOCAL/abon2&LOCAL/abon3)

exten => abon2,1,Wait(10)
exten => abon2,2,Dial(SIP/2)

exten => abon3,1,Wait(20)
exten => abon3,3,Dial(SIP/3)
http://www.voip-info.org/wiki/view/Aste ... l+channels
http://www.voip-info.org/wiki/view/Asterisk+cmd+Dial - Example 3

Re: Обработка входящих - добавление каналов к вызову.

Добавлено: 24 сен 2013, 14:24
ded
В готовых дистрибутивах это вызов группы, где могут быть самые разные сценаоии вызовов. И этот -
Вызов идёт одновременно на настольный и сотовый телефон абонента.
Если нет ответа втечение 10 секунд, к вызову автоматически добавлятся телефон абонента 2 (телефоны абонента 1 продолжают вызываться).
Если нет ответа втечение 10 секунд, к вызову автоматически добавлятся телефон абонента 3 (телефоны абонентов 1 и 2 продолжают вызываться).
называется прогрессивное серийное искание.

Re: Обработка входящих - добавление каналов к вызову.

Добавлено: 24 сен 2013, 14:41
sadm
menzoberronzan писал(а):Можно использовать Local Channel, например так:

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

exten => your_extension,1,Dial(SIP/1&SIP/gsm/8910111111&LOCAL/abon2&LOCAL/abon3)

exten => abon2,1,Wait(10)
exten => abon2,2,Dial(SIP/2)

exten => abon3,1,Wait(20)
exten => abon3,3,Dial(SIP/3)
http://www.voip-info.org/wiki/view/Aste ... l+channels
http://www.voip-info.org/wiki/view/Asterisk+cmd+Dial - Example 3
Спасибо за рекомендацию. Что-то мне подсказывает, что потенциально конфиг превратится в дикий ужас, эсли такими конструкциями злоупотреблять.

Re: Обработка входящих - добавление каналов к вызову.

Добавлено: 24 сен 2013, 14:44
sadm
ded писал(а):В готовых дистрибутивах это вызов группы, где могут быть самые разные сценаоии вызовов. И этот -
Вызов идёт одновременно на настольный и сотовый телефон абонента.
Если нет ответа втечение 10 секунд, к вызову автоматически добавлятся телефон абонента 2 (телефоны абонента 1 продолжают вызываться).
Если нет ответа втечение 10 секунд, к вызову автоматически добавлятся телефон абонента 3 (телефоны абонентов 1 и 2 продолжают вызываться).
называется прогрессивное серийное искание.
Спасибо за наводку. Погуглю.