FreePBX. Мониторинг транков.

Мониторинг транков SIP и PJSIP на FreePBX.

При эксплуатации IP-телефонии случаются ситуации, когда транки к провайдеру телефонии переходят из нормального состояния Registered в незарегистрированное состояние. Это является одной из причин неработоспособности телефонии и поступления жалоб от пользователей. Конечно, хорошо, чтобы администратор мог, как можно быстрее, узнать о проблеме, а лучше исправить ее без личного вмешательства.

Как правило, проблема с отсутствием регистрации нормально работающих транков «лечится» перезапуском модуля sip или pjsip, а для этого достаточно небольшого скрипта, который будет мониторить состояние транков и при необходимости перезагружать указанные модули.

К делу. В сети мне удалось найти скрипты только для мониторинга SIP транков, ну а «допилить» их для PJSIP транков было делом техники.)

Скрипт для мониторинга SIP транков.

Ниже размещен скрипт, найденный на этом сайте.

Немного опишу, что делает скрипт:

  1. Помещает в переменную ALLTRUNKSMINIMUM  вывод команды «sip show registry» 
  2. Помещает в переменную ALLTRUNKS количество транков в системе
Читайте также:  Настройка модуля Issabel-Callcenter.

мониторинг транков

(grep находит строку 2 SIP registrations, а команда awk ‘{print $1}’ выбирает слово(число и т.д.) в первой позиции этой строки.

      3. Помещает в переменную REGTRUNKS количество транков со статусом Registered(grep выбирает строки со словом Registered, а команда wc -l показывает количество строк, отобранных командой grep).

      4. Ну и дальше идет сравнение общего количества транков с количеством зарегистрированных транков, и в зависимости от результата, либо перезагружает модуль sip и отправляет письмо на указанную почту со статусами транков после перезагрузки модуля, либо просто выводит в консоль сообщение, что всё ОК.

Скрипт для мониторинга PJSIP транков.

На основе вышеописанного скрипта можно создать скрипт для мониторинга PJSIP транков. Отличие состоит лишь в том, что используется команда «pjsip show registrations«(у нее немного отличается вывод) и перезагружать нужно модуль pjsip, соответственно. 

Вот вывод команды «pjsip show registrations«:

мониторинг транков

Как видно, нужно искать уже строку, содержащую «Objects found» и количество транков находится уже не в первой, а в третьей позиции.

Исходя из этого скрипт приобретет следующий вид:

Автоматический запуск скриптов.

Ну что же, скрипты готовы, осталось заставить их выполнять свои задачи по расписанию. Для этого нужно сохранить их с расширением .sh, например, sip_trunks.sh и pjsip_trunks.sh, конвертировать в unix-формат и создать задание в cron.

Читайте также:  Asterisk(FreePBX). Как удалить старые записи разговоров.

Скопируйте файл скрипта в папку на сервере FreePBX(Asterisk). При помощи команды dos2unix конвертируйте в нужный формат:

dos2unix /home/scripts/sip_trunks.sh

Разрешим выполнение скрипта:

chmod +x /home/scripts/sip_trunks.sh

Теперь откроем на редактирование файл crontab командой crontab -e и внесем туда следующее:

Это значит, что скрипт будет запускаться каждые две минуты.

По умолчанию, crontab открывается в редакторе по умолчанию(обычно это vim). Если вам привычнее использовать другой редактор, можно открыть файл в нём:

Сохраните файл после редактирования. Теперь ваши транки будут под присмотром.))

 

Поделиться ссылкой:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.