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

Watchdog скрипт при недоступности всех транков

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

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

gaspaarr
Сообщения: 217
Зарегистрирован: 17 сен 2014, 21:20

Watchdog скрипт при недоступности всех транков

Сообщение gaspaarr »

FPBX 12 + Asterisk (Ver. 11.15.0)
Есть какой-то неисправимый глюк, если астериск поднимается раньше интернета и не может зарезолвить хосты транков, то потом начинается какая-то ерунда... он думает, что зарегистрирован, но по qualify видит, что транки недоступны... проблема решается ручным sip reload

Вопрос -- как бы это все мониторить? Т.е. нужно именно состояние транка по qualify, в идеале если все транки недоступны, то сделать sip reload, ну или хотя бы отписать мыло админу...

Пробовал "Monitor Trunk Failures" но это полная ерунда, слишком много ложных срабатываний...
awsswa
Сообщения: 2390
Зарегистрирован: 09 июн 2012, 10:52
Откуда: Россия, Пермь skype: yarick_perm

Re: Watchdog скрипт при недоступности всех транков

Сообщение awsswa »

стартовый скрипт можно редактировать

asterisk -rx "sip show registry" | grep register
платный суппорт по мере возможностей
gaspaarr
Сообщения: 217
Зарегистрирован: 17 сен 2014, 21:20

Re: Watchdog скрипт при недоступности всех транков

Сообщение gaspaarr »

С регистер у него как раз все хорошо... он думает что он регистер... а по факту нет

Вот такая конструкция пришла на ум: запускать по monitor trunk failure скрипт (чтобы не долбать астер напрасно), который будет проверять статусы checkifok=$asteriskbin -rx "sip show peer $thistrunk" | grep Status | grep -wc OK, а если там не ОК, тогда уже слать аларм админу...

Вообще конечно странно, freepbx корректно отслеживает offline транков, но функционала по уведомлениям нет
Аватара пользователя
trscod
Сообщения: 358
Зарегистрирован: 30 авг 2010, 17:34

Re: Watchdog скрипт при недоступности всех транков

Сообщение 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"
gaspaarr
Сообщения: 217
Зарегистрирован: 17 сен 2014, 21:20

Re: Watchdog скрипт при недоступности всех транков

Сообщение gaspaarr »

Статус же может быть и UNREACHABLE
Хосты берутся из registry и проверяются в peers в каком виде? IP? Его может и не быть...
Может лучше username использовать?
gaspaarr
Сообщения: 217
Зарегистрирован: 17 сен 2014, 21:20

Re: Watchdog скрипт при недоступности всех транков

Сообщение 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
april22
Сообщения: 2187
Зарегистрирован: 09 июл 2012, 09:47

Re: Watchdog скрипт при недоступности всех транков

Сообщение april22 »

а почему два первых приоритета ? в одном EXTEN ?
Своими вопросами , вы загоняете меня в ГУГЛЬ.
gaspaarr
Сообщения: 217
Зарегистрирован: 17 сен 2014, 21:20

Re: Watchdog скрипт при недоступности всех транков

Сообщение 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... видимо неверный синтаксис ?
april22
Сообщения: 2187
Зарегистрирован: 09 июл 2012, 09:47

Re: Watchdog скрипт при недоступности всех транков

Сообщение april22 »

гадать , или в консоль глянуть ?
Своими вопросами , вы загоняете меня в ГУГЛЬ.
gaspaarr
Сообщения: 217
Зарегистрирован: 17 сен 2014, 21:20

Re: Watchdog скрипт при недоступности всех транков

Сообщение 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'
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH