img

Мониторинг устройств через ARI в Asterisk

Друг, не так давно мы рассказывали про Asterisk REST Interface. Это новый API для Asterisk. Сегодня хотим рассказать о том, как реализовать просто мониторинг SIP – устройств с помощью ARI и отправкой событий в Telegram.

icon strelka icons icons

узнай больше на курсе

Базовый курс по Asterisk
Двухнедельный онлайн курс по Asterisk от Мерион Нетворкс. 5 блоков обучения с домашним заданием. Именной сертификат с уникальным номером при успешной сдаче экзамена
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту
DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту
Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту

Включаем ARI

Откроем FreePBX и перейдем в раздел SettingsAdvanced Settings и находим раздел Asterisk REST Interface:

Убедитесь, что парамеры Display Readonly Settings и Override Readonly Settings установлены в положение Yes. Asterisk REST Interface

Указываем следующие параметры:

  • Enable the Asterisk REST Interface - Yes;
  • ARI Username - заполняем имя нашего пользователя;
  • Allowed Origins - *;
  • ARI Password - пароль для пользователя;
  • Pretty Print JSON Responses - Yes;
  • Web Socket Write Timeout - 100;

Запоминаем логин и пароль и идем вперед.


Сделать Telegram бота

Далее, вам нужно создать Telegram – бота. Для этого, перейдите по ссылке ниже. Вернитесь сюда с токеном и идентификатором чата :)


PHP - скрипт

Делаем скрипт, который будет реализовывать мониторинг пиров. Вот его листинг:

<?php
#ваш токен и идентификатор чата в Telegram
$token = "токен";
$chat_id = "id_чата";
#параметры подключения к REST API Asterisk
$json_url = 'http://localhost:8088/ari/endpoints/SIP';
$username = 'ARI_Username';  // логин
$password = 'ARI_Password';  // пароль
#обращаемся за данными в REST
$ch = curl_init($json_url);
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERPWD	=> $username . ":" . $password,  
CURLOPT_HTTPHEADER => array('Content-type: application/json') ,
);
curl_setopt_array( $ch, $options );
$result = curl_exec($ch); //получаем JSON результат
$result = json_decode($result, true);
#формируем массив, который будем отправлять в Telegram
$telegram = array(
0 => array (
'Проблемы с SIP устройствами.' => 'Список:',
));
$num = 1;
//print_r($result);
foreach($result as $number => $massiv)
{
foreach($massiv  as  $key => $value)
{
#определяем элементы, которые не находятся в статусе online
if (($key == 'state') && ($value != 'online')) {
$telegram[$num] = array(
'Устройство '.$massiv['resource'].'' => 'в статусе '.$massiv['state'].'',
);
$num = $num + 1;
} else
{
}}};
#отправляем данные в Telegram в случае, если найдены устройства в статусе, отличном от online
if ($num > 1) {
foreach($telegram as $key => $value) {
foreach($value  as  $dev => $status) {
$txt .= "<b>".$dev."</b> ".$status."%0A";
}};
fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");};

Скачать скрипт

В случае скачивания, поменяйте расширение файла с .txt на .php

Закидываем скрипт в любую удобную директорию (файл сохраните как ari_monitoring.php), например /home/scripts и планируем его выполнение в cron:

crontab –e

И добавляем мониторинг раз в 2 минуты:

*/2 * * * * /usr/bin/php /home/scripts/ari_monitoring.php

Проверка

В результате, если устройство станет доступно, мы получим следующее уведомление:

Мониторинг устройств в Asterisk через ARI
Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
icon strelka icons icons

узнай больше на курсе

Базовый курс по Asterisk
Двухнедельный онлайн курс по Asterisk от Мерион Нетворкс. 5 блоков обучения с домашним заданием. Именной сертификат с уникальным номером при успешной сдаче экзамена
Подробнее о курсе
DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Подробнее о курсе
Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Подробнее о курсе
Онлайн-курс по сетевой безопасности
Изучи основы сетевой безопасности и прокачай скилл системного администратора и сетевого инженера
Подробнее о курсе
Онлайн-курс по кибербезопасности
Полный курс по кибербезопасности от Мерион Нетворкс - учим с нуля специалистов по информационной безопасности. Пора стать безопасником!
Подробнее о курсе
Этичный хакинг
Научись работать с Kali Linux, изучи самые распространенные уязвимости, разверни виртуальную лабораторию для пентестинга
Подробнее о курсе
Еще по теме:
img
Мы создали калькулятор инсталляции IP - АТС Asterisk. При планировании сервера и необходимого оборудования заполните соответствующие поля для расчета производительности, шлюзов и плат
img
Скачать руководство администратора Cisco UCM/CME на русском языке
img
Скачать руководство администратора FreePBX на русском языке
img
Рассказываем как рассчитать пропускную способность для IP-вызовов Cisco
img
Рассказываем как настроить отправку СМС сообщений из контакт-центра Октелл через Ростелеком СМС Реклама
Весенние скидки
30%
50%
60%
До конца акции: 1 день 09 : 53 : 28