Как найти проблему в звонке через DAHDI?

Есть связка между двумя АТС Panasonic и Asterisk. Звонок на МСК идет следующим образом:
Звонок на номера 8495ххххххх с АТС Panasonic 1 отправляется на Asterisk и по DAHDI переходит на АТС Panasonic 2 откуда идет уже совершается вызов. При вызове DAHDI Asterisk проверяет статус. ЕСли ОК, тогда звонок идет по DAHDI, а если congestion, либо chanunavail переходит на SIP и совершает звонок через SIP.

Код ниже:
exten => s,1,NoOp(subMoscowCalling)
exten => s,n,Set(CALLERID(num)=123456) ;подмена CLIPID 
exten => s,n,Set(TRANSFER_CONTEXT=from-internal)
exten => s,n,Dial(DAHDI/g1/9468${ARG1},30,T) ;звонок через АТС МСК
exten => s,n,NoOp(Dial Status: ${DIALSTATUS}) ;получение статуса звонка
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,NoOp()
exten => s-CONGESTION,3,Dial(SIP/TR/${ARG1:1},,T) ;если сеть перегружена, то звонок через SIP
exten => s-CANCEL,1,Hangup()
exten => s-CHANUNAVAIL,3,Dial(SIP/TR/${ARG1:1},,T) ;если канал не доступна то звонок через SIP


Периодически, на пустом месте, звонок уходит на SIP, хотя должен идти по DAHDI.
Как правильно провести диагностику АТСок и определить где проблема?
  • Вопрос задан
  • 767 просмотров
Пригласить эксперта
Ответы на вопрос 1
grumblik
@grumblik
В меру любопытен и разумно пытлив
Вставь перед переходом на SIP выполнение скрипта
а в самом скрипте впиши:
/usr/sbin/asterisk -r -x "core show channels" | grep DAHDI >> /var/log/asterisk/dahdi-chanell.log

И потом с помощью tail -f /var/log/asterisk/dahdi-chanell.log
смотри что туда пишется, увидишь статусы канала.

А вообще можешь вписать ещё
same => n , ChanIsAvail(DAHDI/g1&SIP/TR)
same => n , NoOp(Доступный канал ${AVAILCHAN})

Перед первым звонком (заодно узнаешь про замечательную конструкцию same с помощью которой можно не повторять лишний раз экстен)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы