Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

IAX2 с автоматическим резервированием

0

Добрый день. Есть небольшая сетка с тремя устройствами на основе asterisk. Одно из них является абонентским выносом с платами FXS, а два других для него являются шлюзами в дальнейшие направления - один основной, другой резервный. IP-адреса везде статические и прописаны в файле iax.conf. Вопрос в следующем, можно ли сделать переключение на резервный шлюз автоматически? У меня пока не получилось, так IP-адерса прописаны жестко и к ним привязаны (точнее к названиям соответствующих IAX2-направлений) строчки телефонной маршрутизации. Asterisk старый и в нем используется zapata, если ответ будет по dahdi, то по-возможности укажите аналог для zapata. Спасибо.

Сделал так.

Всё работает кроме случая - оба канала выключены и идет звонок, проходит полный цикл и отбой, если быстро включить основной канал, то проходит 1-2 звонка на дальнюю станцию и отбой. Переход на резерв проходит с 3-4 сек. задержкой, как её изменить?

Добавил проверку каналов IAX стало лучше - задержка при переходе на резерв пропала. Проблема с пропаданием канала немного изменилась: если канал пропадает во время звонка, то вызываемый телефон продолжает звонить, при снятии на нем трубки попадает в тишину, если трубку на этом аппарате положить, то через 2-4 секунды приходит повторный вызов уже по резервному каналу. Побороть эту задержку уже не получается, контроль канала IAX тут не срабатывает, во всяком случае с моими настройками в iax.conf

textarea

iax.conf

  • qualify=500
  • qualifyfreqok=500
  • qualifyfreqnotok=500

textarea

extensions.conf

  • exten => _100X,1,Set(MAXLINES=)
  • exten => _100X,2,Set(TRUNK=IAX2/s1)
  • exten => _100X,3,Set(GROUP()=group2)
  • exten => _100X,4,Gotoif($[${GROUPCOUNT(group2)} > ${MAXLINES}]?next)
  • exten => _100X,5,Dial(${TRUNK}/${EXTEN},,g)
  • exten => _100X,6,GotoIf($[${DIALSTATUS}=BUSY]?15)
  • exten => _100X,7,GotoIf($[${DIALSTATUS}=CHANUNAVAIL]?11)
  • exten => _100X,8,GotoIf($[${DIALSTATUS}=CONGESTION]?11)
  • exten => _100X,9,GotoIf($[${DIALSTATUS}=CANCEL]?11)
  • exten => _100X,10,Goto(15)
  • exten => _100X,11,Set(TRUNK=IAX2/s2)
  • exten => _100X,12,Set(GROUP()=group2)
  • exten => _100X,13,Gotoif($[${GROUPCOUNT(group2)} > ${MAXLINES}]?next)
  • exten => _100X,14,Dial(${TRUNK}/${EXTEN},,g)
  • exten => _100X,15,Busy(10)
  • exten => _100X,16,Hangup()
  • exten => _100X,n(next),Busy(10)
  • exten => _100X,n,Hangup()

Случай экзотический, но здесь важнее разобраться как автоматом перйти на резервный канал во время звонка/разговора (если это возможно) и что можно сделать с задержкой, описанной выше? Конструкция экстенов изобретена не совсем мной. :-)

P.S. Пытаюсь с трудом разобраться с местным редактированием текста. Сильно не бейте за это. :-)

удалить закрыть спам изменить тег редактировать

спросил 2013-01-25 16:40:50 +0400

Snegr Gravatar Snegr
1 2 1

обновил 2013-01-31 12:34:11 +0400

1 Ответ

0

Как-то так:

exten => _.,n,Dial(IAX2/serv1/${EXTEN})
exten => _.,n,Dial(IAX2/serv2/${EXTEN})

Между этими строчками можно сделать проверку причины отбоя.

ссылка удалить спам редактировать

ответил 2013-01-25 17:09:31 +0400

switch Gravatar switch
8334 11 7 91
http://lynks.ru/

Comments

Всё гениальное просто :)

DJs3000 ( 2013-01-25 17:47:56 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2013-01-25 16:40:50 +0400

Просмотрен: 305 раз

Обновлен: Jan 31 '13

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.