51 просмотров
от (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 Ответы

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

См. тему

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);

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

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

askozia входящие-вызовы настройка провайдер ivr запись-разговоров маршрутизация провайдеры обновление очередь askozia7 маршрут askozia6 исходящие-звонки запись переадресация транк очередь-вызовов исходящие факс перевод callerid перевод-вызова установка логи перехват-вызова веб-интерфейс релиз история звонок настройка-провайдер ascozia мобильный интеграция голосовая-почта почта gsm редактор nat goip аон маршруты провайдеров вызовы панель-телефонии-1с asterisk разговоров панель нерабочее-время битрикс телефонная-книга диалплан тишина время smtp лицензия история-звонков внешние-номера askozia-5 bitrix24 битрикс24 донабор переадресация-мобильный префиксы статистика ошибка голосовая парковка перехват вызовов номер vmware мультифон мегафон sip #mikopbx запись-разговора mikopbx beta задержки сетевые альтернативный monitoring взлом оповещения звонков fax cdr входящих модуль меню ростелеком skype настройки ssh 2 телеграм консольное web-интерфейс

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

1.6 тыс. ответов

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

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

...