Задача:
При звонке на внутренний номер, звонить на 2 сотовых телефона.
Реализовано сейчас так: same => n,Dial(SIP/mtt/+7922222222&SIP/mtt/+7933333333,20,tm()
Проблема: Если один из номеров занят или недоступен, то голос на стороне сотового провайдера сообщает: "Абонент недоступен"
Как сделать так, чтобы такой ответ определялся бы как не ответ и звонок шел бы другому? Платные решения тоже подходят.
Если у вас оператор отвечает канал, то только через "нажмите 1 для соединения с оператором" или AMD.
Канал не должен переходить в состояние ответа, и если сделать вот так:
same => n,Dial(SIP/mtt/+7933333333,20,tm())
same => n,Dial(SIP/mtt/+7922222222,20,tm())
то вызов будет переходить на второй номер. А у вас одновременный вызов сделан.
Задан: 2013-07-13 10:29:42 +0400
Просмотрен: 1,148 раз
Обновлен: Jul 13 '13
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
to: switch мне нужно, чтобы кто быстрее ответил, тот и молодец. Если делать последовательно, то он все равно сообщает, что абонент занят, что расценивается как успешный дозвон..
to: meral Что такое AMD?
Temon ( 2013-07-13 11:13:29 +0400 )редактироватьТо что вам нужно штатными средствами не реализовать... Если нужно чтобы остальные номера продолжали звонить, то как вариант решения - через отдельные сессии AMI, FastAGI или call-файл инициируем сколько нужно вызовов, во всех AMD. В главном контексте крутим Wait скажем 40. При ответе соединяем с A ногой, тот который ответил и при этом не был пойман AMD. сложность реализации - средняя. вообще как правило сотовики, как я понимаю, при недоступности абонента вместо 200 OK отправляют 183 Session progress и early media и тогда все путем... По крайней мере mtt точно так делает - сейчас проверил на их транке. видимо все-таки оператор не MTT.
octopas ( 2013-07-13 12:52:23 +0400 )редактировать