Инструменты пользователя

Инструменты сайта


faq:monitoring-trunks

Мониторинг состояния линий

Обратно к перечню инструкций

При работе с поставщиками услуг связи периодически могут возникать проблемы. К примеру сервер поставщика не отвечает / не доступен. В рамках данной статьи будет предложен механизм оповещения на email системного администратора.

  1. Создайте новое «Приложение диалплан»
  2. Укажите произвольное название, к примеру Blacklist
  3. Выберите «Тип кода» - «PHP AGI Скрипт»
  4. Укажите короткий номер для приложения, к примеру 99
  5. На вкладке «Программный код» вставьте:
    <?php
    use MikoPBX\Common\Models\PbxSettings;
    use MikoPBX\Common\Models\LanInterfaces;
    use MikoPBX\Core\System\Notifications;
    use MikoPBX\PBXCoreREST\Lib\SIPStackProcessor;
    
    require_once 'Globals.php';
    
    $result = SIPStackProcessor::callBack(['action' => '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']}<br>" . "Url (local): http://{$localIP}/admin-cabinet/providers/modifysip/{$provider['id']} <br><br>";
        }
    }
    
    if (!empty($message) && !empty($adminMail)) {
        $notify = new Notifications();
        try {
            $notify->sendMail($adminMail, 'Provider invalid state...', $message);
        } catch (\Throwable $e) {
        }
    }
  6. Сохраните изменения и скопируйте идентификатор приложения из адресной строки браузера, он имеет вид «DIALPLAN-APP-A13D9FEC»
  7. Перейдите в раздел СистемаКастомизация системных файлов, откройте для редактирования файл /var/spool/cron/crontabs/root
  8. Выберите режим «Добавлять в конец файла», внизу в черное поле для редактирования вставьте следующие строки:
    */5 * * * * /usr/bin/php -f /var/lib/asterisk/agi-bin/DIALPLAN-APP-A13D9FEC.php start > /dev/null 2> /dev/null 
  9. Скорректируйте имя файла согласно вашему идентификатору приложения «DIALPLAN-APP-A13D9FEC»
Для работы оповещений потребуется настроить SMTP клиент. См. инструкции в разделе «Почта и уведомления»

Обратно к перечню инструкций

faq/monitoring-trunks.txt · Последние изменения: 2024/01/30 12:42 — Портнов Алексей