MikoPBX
Модули
Перевод этой страницы:
MikoPBX
Модули
При работе с поставщиками услуг связи периодически могут возникать проблемы. К примеру сервер поставщика не отвечает / не доступен. В рамках данной статьи будет предложен механизм оповещения на email системного администратора.
mkdir -p /storage/usbdisk1/mikopbx/custom_modules/monitoring
/storage/usbdisk1/mikopbx/custom_modules/monitoring/prodiders.php
#!/usr/bin/php <?php use MikoPBX\Common\Models\LanInterfaces; use MikoPBX\PBXCoreREST\Lib\SIPStackProcessor; use MikoPBX\Core\System\Notifications; use MikoPBX\Common\Models\PbxSettings; require_once 'Globals.php'; $date = SIPStackProcessor::getRegistry(); $adminMail = null; $localIP = ''; $message = ''; foreach ($date->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){ } }
chmod +x /storage/usbdisk1/mikopbx/custom_modules/monitoring/prodiders.php
*/5 * * * * /storage/usbdisk1/mikopbx/custom_modules/monitoring/prodiders.php > /dev/null 2> /dev/null