Страница 1 из 2
Watchdog скрипт при недоступности всех транков
Добавлено: 27 июл 2016, 15:26
gaspaarr
FPBX 12 + Asterisk (Ver. 11.15.0)
Есть какой-то неисправимый глюк, если астериск поднимается раньше интернета и не может зарезолвить хосты транков, то потом начинается какая-то ерунда... он думает, что зарегистрирован, но по qualify видит, что транки недоступны... проблема решается ручным sip reload
Вопрос -- как бы это все мониторить? Т.е. нужно именно состояние транка по qualify, в идеале если все транки недоступны, то сделать sip reload, ну или хотя бы отписать мыло админу...
Пробовал "Monitor Trunk Failures" но это полная ерунда, слишком много ложных срабатываний...
Re: Watchdog скрипт при недоступности всех транков
Добавлено: 27 июл 2016, 15:38
awsswa
стартовый скрипт можно редактировать
asterisk -rx "sip show registry" | grep register
Re: Watchdog скрипт при недоступности всех транков
Добавлено: 27 июл 2016, 16:05
gaspaarr
С регистер у него как раз все хорошо... он думает что он регистер... а по факту нет
Вот такая конструкция пришла на ум: запускать по monitor trunk failure скрипт (чтобы не долбать астер напрасно), который будет проверять статусы checkifok=$asteriskbin -rx "sip show peer $thistrunk" | grep Status | grep -wc OK, а если там не ОК, тогда уже слать аларм админу...
Вообще конечно странно, freepbx корректно отслеживает offline транков, но функционала по уведомлениям нет
Re: Watchdog скрипт при недоступности всех транков
Добавлено: 27 июл 2016, 19:52
trscod
Не шедевр, конечно же, но как то так:
asterisk -rx "sip show registry"|grep : |cut -d ":" -f1 |grep [:alpha:] |while read line; do asterisk -rx "sip show peers" |grep $(getent hosts $line |cut -d " " -f1) |cut -d " " -f65; done |grep UNKNOWN
A=$?
if [ $A -ne 0 ]
then asterisk -rx "sip reload"
Re: Watchdog скрипт при недоступности всех транков
Добавлено: 28 июл 2016, 00:20
gaspaarr
Статус же может быть и UNREACHABLE
Хосты берутся из registry и проверяются в peers в каком виде? IP? Его может и не быть...
Может лучше username использовать?
Re: Watchdog скрипт при недоступности всех транков
Добавлено: 02 авг 2016, 13:56
gaspaarr
Хочу по звонку делать sip reload, где ошибаюсь?
Код: Выделить всё
[sip_rel]
exten => s,1,Answer()
exten => s,n,Wait(1)
exten => s,1,System(/usr/sbin/asterisk -rx 'sip reload')
exten => s,n,Wait(1)
exten => s,n,Playback(goodbye)
exten => s,n,Hangup
Re: Watchdog скрипт при недоступности всех транков
Добавлено: 02 авг 2016, 14:42
april22
а почему два первых приоритета ? в одном EXTEN ?
Re: Watchdog скрипт при недоступности всех транков
Добавлено: 02 авг 2016, 14:51
gaspaarr
Код: Выделить всё
exten => s,1,Answer()
exten => s,n,Wait(1)
exten => s,n,System(/usr/sbin/asterisk -rx 'sip reload')
exten => s,n,Wait(1)
exten => s,n,Playback(goodbye)
exten => s,n,Hangup
так тоже не отрабатывает команда sip reload... видимо неверный синтаксис ?
Re: Watchdog скрипт при недоступности всех транков
Добавлено: 02 авг 2016, 15:32
april22
гадать , или в консоль глянуть ?
Re: Watchdog скрипт при недоступности всех транков
Добавлено: 02 авг 2016, 16:18
gaspaarr
core set verbose 9
в консоли никаких ошибок нет...
<------------->
--- (9 headers 0 lines) ---
> 0x7ff1e842cea0 -- Probation passed - setting RTP source address to
-- Executing [s@sip_rel:2] Wait("SIP/192-0000064e", "1") in new stack
> 0x7ff1e842cea0 -- Probation passed - setting RTP source address to
-- Executing [s@sip_rel:3] Playback("SIP/192-0000064e", "goodbye") in new stack
-- <SIP/192-0000064e> Playing 'goodbye.slin' (language 'ru')
-- Executing [s@sip_rel:4] Hangup("SIP/192-0000064e", "") in new stack
== Spawn extension (sip_rel, s, 4) exited non-zero on 'SIP/192-0000064e'