VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Исходящий вызов через разные транки, диалплан

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Ответить
drTr0jan
Сообщения: 20
Зарегистрирован: 14 мар 2011, 16:51
Откуда: Хабаровск, РФ
Контактная информация:

Исходящий вызов через разные транки, диалплан

Сообщение drTr0jan »

Для выхода на города использую два разных транка - SIP (по умолчанию) и аналоговый через шлюз (когда заняты все исходящие линии или когда интернет лежит).

Как правильно описать план набора?

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

exten => _NXXXXX, 1, Dial(SIP/trunk1/${EXTEN})
exten => _NXXXXX, 2, Dial(SIP/trunk2/${EXTEN})
exten => _NXXXXX, 3, HangUp()
В этом случае, если номер вызываемого абонента занят (или абонент отклонил вызов), то вызов автоматически продолжается через второй транк.

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

exten => _NXXXXX, 1, Dial(SIP/trunk1/${EXTEN})
exten => _NXXXXX, 2, Goto(_NXXXXX-${DIALSTATUS},1)
exten => _NXXXXX-CHANUNAVAIL,1,Dial(SIP/trunk2/${EXTEN:0:7})
exten => _NXXXXX-CHANUNAVAIL,2,HangUp()
exten => _NXXXXX-CONGESTION,1,Dial(SIP/trunk2/${EXTEN:0:7})
exten => _NXXXXX-CONGESTION,2,HangUp()
exten => _NXXXXX-BUSY,1,Busy()
exten => _NXXXXX-NOANSWER,1,HangUp()
exten => _NXXXXX-CANCEL,1,HangUp()
Нагуглил такой способ, который можно оформить в виде макроса.

Правильно - использовать второй вариант? Или есть другие более правильные решения?
ded
Сообщения: 15619
Зарегистрирован: 26 авг 2010, 19:00

Re: Исходящий вызов через разные транки, диалплан

Сообщение ded »

Вполне рабочее решение. Макросом - правильно. Современные версии Астериск предлагают вместо макросов GoSub, но макросы тоже поддерживают.
exten => _NXXXXX, 1, Dial(SIP/trunk1/${EXTEN}) меняется на
exten => _NXXXXX, 1, Macro(dial-main,${EXTEN})
в котором нет нужды отсекать что-то ${EXTEN:0:7}
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH