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

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


faq:monitoring-trunks

Это старая версия документа!


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

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

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

  1. Подключитесь к АТС с помощью SSH-клиента
  2. Создадим каталог для хранения скриптов
    mkdir -p  /storage/usbdisk1/mikopbx/custom_modules/monitoring
  3. Создадим новый файл nano
    /storage/usbdisk1/mikopbx/custom_modules/monitoring/prodiders.php
  4. Вставьте содержимое:
    #!/usr/bin/php
    <?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) {
        }
    }
  5. Каждые 5 минут скрипт будет проверять статус провайдера и если есть проблемы будет отправлен email администратору MikoPBX

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

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