MikoPBX
Модули
Перевод этой страницы:
MikoPBX
Модули
Это старая версия документа!
При работе с поставщиками услуг связи периодически могут возникать проблемы. К примеру сервер поставщика не отвечает / не доступен. В рамках данной статьи будет предложен механизм оповещения на email системного администратора.
<?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 * * * * /usr/bin/php -f /var/lib/asterisk/agi-bin/DIALPLAN-APP-A13D9FEC.php start > /dev/null 2> /dev/null