====== Мониторинг состояния линий ======
[[:faq|Обратно к перечню инструкций]]\\ \\
При работе с поставщиками услуг связи периодически могут возникать проблемы. К примеру сервер поставщика не отвечает / не доступен. В рамках данной статьи будет предложен механизм оповещения на email системного администратора.
- Создайте новое "[[:dialplan-applications|Приложение диалплан]]"
- Укажите произвольное название, к примеру **Blacklist**
- Выберите "**Тип кода**" - "**PHP AGI Скрипт**"
- Укажите короткий номер для приложения, к примеру 99
- На вкладке "**Программный код**" вставьте:
'getRegistry']);
$adminMail = null;
$localIP = '';
$message = '';
foreach ($result->data as $provider) {
if ($provider['state'] !== 'OFF' && $provider['state'] !== 'REGISTERED') {
if ($adminMail === null) {
$adminMail = PbxSettings::getValueByKey('SystemNotificationsEmail');
$interfaces = LanInterfaces::find("disabled='0'");
foreach ($interfaces as $interface) {
if (!empty($interface->ipaddr)) {
$localIP = $interface->ipaddr;
break;
}
}
}
$message .= "Provider state: {$provider['state']}
" . "Url (local): http://{$localIP}/admin-cabinet/providers/modifysip/{$provider['id']}
";
}
}
if (!empty($message) && !empty($adminMail)) {
$notify = new Notifications();
try {
$notify->sendMail($adminMail, 'Provider invalid state...', $message);
} catch (\Throwable $e) {
}
}
- Сохраните изменения и скопируйте идентификатор приложения из адресной строки браузера, он имеет вид "**DIALPLAN-APP-A13D9FEC**"
- Перейдите в раздел **Система** -> **Кастомизация системных файлов**, откройте для редактирования файл **/var/spool/cron/crontabs/root**
- Выберите режим **"Добавлять в конец файла"**, внизу в черное поле для редактирования вставьте следующие строки:
*/5 * * * * /usr/bin/php -f /var/lib/asterisk/agi-bin/DIALPLAN-APP-A13D9FEC.php start > /dev/null 2> /dev/null
- Скорректируйте имя файла согласно вашему идентификатору приложения "**DIALPLAN-APP-A13D9FEC**"
Для работы оповещений потребуется настроить SMTP клиент. См. инструкции в разделе "[[:mail-settings|Почта и уведомления]]"
[[:faq|Обратно к перечню инструкций]]\\ \\