Отправка входящего факса на email

  1. Добавьте новое приложение dialplan (см. Приложения диалпланов)

  1. Назначьте внутренний номер, к примеру 2200110

  1. Вставьте следующий код во вкладку "Программный код"

<?php
require_once 'Globals.php';

use \MikoPBX\Core\Asterisk\AGI;
use MikoPBX\Core\System\Notifications;
use MikoPBX\Core\System\{MikoPBXConfig};

$agi     = new AGI();
$faxFile = "/tmp/" .$agi->get_variable("CDR(linkedid)", true).'.tiff';
$caller  = $agi->get_variable("CALLERID(num)", true);
$agi->exec("ReceiveFax", "{$faxFile},d"); 
$result  = $agi->get_variable("FAXOPT(status)", true);

if($result === 'SUCCESS' && file_exists($faxFile)){
    $notify = new Notifications();
    $notify->sendMail('test@gmail.com', 'Fax msg from '.$caller, 'Incoming fax <br><br>', $faxFile);
    unlink($faxFile);
}
sleep(1);

В коде приложения укажите свой email вместо адреса «test@gmail.com».

  1. Перейдите в раздел "Кастомизация системных файлов"

  1. Откройте для редактирования файл "extensions.conf"

  1. Добавьте следующий код в конец файла:

    [SIP-1687941868-incoming](+)
    exten => fax,1,Goto(internal,2200100,1)

    «2200100» замените на номер своего приложения

В коде, «SIP-1687941868» замените на ID своего провайдера. Подсмотреть его значение можно в карточке провайдера, в адресной строке браузера

  1. Откройте для редактирования файл "modules.conf"

  1. Вставьте в конец файла код:

load => res_fax.so
load => res_fax_spandsp.so
  1. В карточке провайдера, в расширенных настройках, в дополнительных параметрах укажите

[endpoint]
fax_detect=yes
fax_detect_timeout=30

Last updated