Могу рассказать, как я сделал, хорошо подходит если немного операторов.
Входящие вызовы попадают на php-приложение, в котором производится предварительная регистрация звонка, т.е. в 1С звонок зарегистрирован еще до приветствия, но оператор пока не выбран.
<?php
use MikoPBX\Core\Asterisk\AGI;
require('phpagi.php');
require_once 'Globals.php';
$agi = new AGI();
$agi_callerid = $agi->request['agi_callerid'];
// вызываю функцию регистрации звонка в опубликованной 1С
$url = "http://192.168.0.25/MyCRM/hs/mikopbx/CallEvReg?phone=$agi_callerid";
$ch = file_get_contents($url);
if (substr($ch,0,3)=="ok-") {
$agi->set_variable('CALLERID(name)', substr($ch,3));
// регистрация прошла. отправляем на IVR с приветствием и донабором
$agi->exec_goto("internal", "2200103", "1");
}
else {
// на всякий случай, если 1С не будет работать, отправляем вызов просто на очередь вызовов всех операторов, даже без приветствия, т.к. это «на всякий случай», которого быть не должно
$agi->exec_goto("internal", "2200102", "1");
}
?>
IVR (2200103) – это приветсвтвие с предложением донабора: голос говорит, что вызов зарегистрирован, выможете набрать добавочный номер…
Для каждого оператора у меня создано php-приложение (пример будет ниже).
Вызовы переходят на php-приложение, соответствующее нужному оператору.
Текст php-приложения оператора с внутенним номером 1250:
<?php
use MikoPBX\Core\Asterisk\AGI;
require('phpagi.php');
require_once 'Globals.php';
$agi = new AGI();
$agi_callerid = $agi->request['agi_callerid'];
$url = "http://192.168.0.25/MyCRM/hs/mikopbx/CallEvReg?phone=$agi_callerid&dopnumber=1250";
$ch = file_get_contents($url);
$agi->exec_goto("internal", "1250", "1");
?>
Текст php-приложения оператора с внутенним номером 1240:
<?php
use MikoPBX\Core\Asterisk\AGI;
require('phpagi.php');
require_once 'Globals.php';
$agi = new AGI();
$agi_callerid = $agi->request['agi_callerid'];
$url = "http://192.168.0.25/MyCRM/hs/mikopbx/CallEvReg?phone=$agi_callerid&dopnumber=1240";
$ch = file_get_contents($url);
$agi->exec_goto("internal", "1240", "1");
?>
Аналогичные приложения для каждого оператора.
Снова вызывается функция регистрации звонка в 1С, чтобы отметить какого оператора возжелал звонящий и вызов передается на этого оператора.
Думаю понятно обрисовал.