#!/bin/bash

# Задаем переменные
ALLTRUNKSMINIMUM="`/usr/sbin/asterisk -rx "sip show registry"`"

# Смотрим статусы транков
ALLTRUNKS=`echo "$ALLTRUNKSMINIMUM" |grep "SIP registrations" |awk '{print $1}'`

# Смотрим сколько всего транков в системе
REGTRUNKS=`/usr/sbin/asterisk -rx "sip show registry" |grep Registered |wc -l`

# Зарегистрированные  транки (все транки со статусом Registered)
# Задаем условие
if [ "$REGTRUNKS" -lt "$ALLTRUNKS" ]; then

# Если есть хоть один проблемный транк (В одном или более транке встретился статус отличный от Registered) то
sleep 5 # Ждем 5 секунд

echo `/usr/sbin/asterisk -rx "sip reload"` # Делаем sip reload
sleep 5 # Ждем 5 секунд

VAR=`/usr/sbin/asterisk -rx "sip show registry"` # Смотрим статусы транков после проверки

# Уведомляем на почту о том какие статусы стали после проверки
echo "$VAR" | mail -s "Мониторинг транков FreePBX" email@server.mail  # Если условие ложно (т.е. с  транками все хорошо)

# Telegram Messages
token='67xxxxxxx:AAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' # Токен
chat="22xxxxxxx" # Ваш ID в Телеграм
subj="Мониторинг транков FreePBX" # Тема
message="$VAR" # Текст сообщения

/usr/bin/curl -s --header 'Content-Type: application/json' --request 'POST' --data "{\"chat_id\":\"${chat}\",\"text\":\"${subj}\n${message}\"}" "https://api.telegram.org/bot67xxxxxxx:AAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/sendMessage"
# Telegram Messages

else  echo “ALL STATUS OK” # Просто выводим что со всеми статусами все хорошо и ничего не делаем больше
