407 просмотров
от (1.5 тыс. баллов) в категории Тонкая настройка

Здравствуйте, после обновления до последнего релиза перестал работать скрипт

<?php

    require_once 'phpagi.php';
    require_once 'globals.php';
    $agi = new AGI();

    $FROM_DID = $agi->get_variable("FROM_DID",  true);
    $DATETIME = $agi->get_variable("DATETIME",  true);
    $DATETIME = new DateTime();
    $linkedid   = $agi->get_variable('CDR(linkedid)', true);
    $agi_callerid = $agi->request['agi_callerid']; 

    $to = 'some_account@mail.ru';

    $subject = "Пропущенный звонок";
    $body = "<b>Пропущенный звонок</b><br>".
        "Дата и время звонка: {$DATETIME->format('Y.m.d H:i:s')} <br>".
        "Клиент позвонил на номер: {$FROM_DID} <br>".
        "Номер телефона клиента: {$agi_callerid} <br>".
        "Идентификатор звонка: {$linkedid} <hr>";

    Notifications::send_mail($to, $subject, $body);

В логах написано что скрипт выполнился и вернул 0

 Executing [2200105@peer_833:3] AGI("PJSIP/833-0000049a", "DIALPLAN-APP-C07F68042D533D13CED4E52910CA61E4.php") in new stack

    -- Launched AGI Script /var/lib/asterisk/agi-bin/DIALPLAN-APP-C07F68042D533D13CED4E52910CA61E4.php

    -- <PJSIP/833-0000049a>AGI Script DIALPLAN-APP-C07F68042D533D13CED4E52910CA61E4.php completed, returning 0

Настройки в web-панели правильные, тестовое письмо приходит, подскажите в чем может быть дело? 

2 Ответы

от (122 тыс. баллов)
выбран от
 
Лучший ответ

См. тему

https://qa.mikopbx.com/8607/перестал-работать-скрипт-на-2020-2-587?show=8636#c8636

namespace не подключен. 

globals.php был переименован в Globals.php

от (1.5 тыс. баллов)

Помимо подключения namespace еще поменялось имя функции, теперь вместо send_mail надо писать sendMail

Вот рабочий скрипт, вдруг кому понадобится

<?php

    use MikoPBX\Core\Asterisk\AGI;
    use MikoPBX\Core\System\Notifications;
    require_once 'Globals.php';

    $agi = new AGI();
    
    $FROM_DID = $agi->get_variable("FROM_DID",  true); 
    $DATETIME = $agi->get_variable("DATETIME",  true); 
    $DATETIME = new DateTime();
    $linkedid   = $agi->get_variable('CDR(linkedid)', true); 
    $agi_callerid = $agi->request['agi_callerid']; 
    
    $to = 'some_mail@some_domain.com';
    
    $subject = "Пропущенный звонок";
    $body = "<b>Пропущенный звонок</b><br>".
        "Дата и время звонка: {$DATETIME->format('Y.m.d H:i:s')} <br>". 
        "Клиент позвонил на номер: {$FROM_DID} <br>".
        "Номер телефона клиента: {$agi_callerid} <br>".
        "Идентификатор звонка: {$linkedid} <hr>";
    
    // Отправляем письмо.  
    Notifications::sendMail($to, $subject, $body);

от (340 баллов)

В версии MikoPBX v.2021.3.86

Скрипт немного другой


<?php

    use MikoPBX\Core\Asterisk\AGI;
    use MikoPBX\Core\System\Notifications;
    require_once 'Globals.php';

    $agi = new AGI();
    
    $FROM_DID = $agi->get_variable("FROM_DID",  true);
    $DATETIME = $agi->get_variable("DATETIME",  true);
    $DATETIME = new DateTime();
    $linkedid   = $agi->get_variable('CDR(linkedid)', true);
    $agi_callerid = $agi->request['agi_callerid'];
    
    $to = 'mail@domain.com;
    
    $subject = "Пропущенный звонок";
    $body = "<b>Пропущенный звонок</b><br>".
        "Дата и время звонка: {$DATETIME->format('Y.m.d H:i:s')} <br>".
        "Клиент позвонил на номер: {$FROM_DID} <br>".
        "Номер телефона клиента: {$agi_callerid} <br>".
        "Идентификатор звонка: {$linkedid} <hr>";
    
    // Отправляем письмо.  
$notifications=new Notifications();
$notifications->sendMail($to, $subject, $body);

На этом сайте можно бесплатно задать вопрос разработчикам MikoPBX и другим членам сообщества. Время ответа не регламентированно, но мы стараемся несколько раз в день заглядывать сюда. Для срочного решения проблем обращайтесь на платную линию поддержки

Популярные теги

askozia входящие-вызовы настройка исходящие маршрутизация провайдер запись-разговоров входящие ivr исходящие-звонки обновление ошибка очередь провайдеры битрикс24 очередь-вызовов переадресация запись установка маршрут история-звонков mikopbx транк панель-телефонии-1с перевод-вызова перевод askozia7 askozia6 битрикс callerid интеграция голосовая-почта логи перехват-вызова ростелеком нерабочее-время факс модуль nat docker запись-разговора веб-интерфейс bitrix24 goip настройка-провайдер история диалплан почта журнал-звонков релиз gsm вызовы звонок внешние-номера web-интерфейс zabbix маршруты cdr sip панель pjsip переадресация-мобильный voicemail ascozia телефонная-книга аон мобильный звонков лицензирование вызовов редактор номер asterisk лицензия ami регистрация оповещения провайдеров время голосовая fax trunk разговоров группы-пользователей #mikopbx пропущенные-звонки донабор beeline monitoring тишина smtp cisco мобильные мультифон мегафон шлюз не-работает электронная-почта не-слышно-звук

2.8 тыс. вопросов

2.4 тыс. ответов

6.7 тыс. комментариев

465 тыс. пользователей

...