Необходимо совершить вызов из 1С абоненту Б и callback абоненту А
Добавим в файл /etc/asterisk/manager_custom.conf пользователя через которого осуществляется вызов
1 2 3 4 5 6 7 8 |
[webcall] secret = 123 deny=0.0.0.0/0.0.0.0 permit= 127.0.0.1/255.255.255.0 read = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate write = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate |
Выглядит примерно так
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
cat /var/www/html/call.php <?php $exten = $_REQUEST['exten']; $number = $_REQUEST['number']; if (( ! empty( $number ) ) && ( ! empty( $exten ) )) { echo "Набираем внешний номер $number\r\n\r\n"; echo "Внутренний номер $exten\r\n\r\n"; //куда выполняем подключение $timeout = 10; $asterisk_ip = "127.0.0.1"; //открываем сетевой сокет $socket = fsockopen($asterisk_ip,"5038", $errno, $errstr, $timeout); //авторизуемся fputs($socket, "Action: login\r\n"); fputs($socket, "UserName: webcall\r\n"); fputs($socket, "Secret: 123\r\n\r\n"); $wrets=fgets($socket,128); echo $wrets; //Передаем все в поток fputs($socket, "Action: Originate\r\n" ); fputs($socket, "Channel: PJSIP/$exten\r\n" ); fputs($socket, "WaitTime: 30\r\n" ); fputs($socket, "CallerId: WEBCall\r\n" ); fputs($socket, "Exten: $number\r\n" ); fputs($socket, "Context: from-internal\r\n" ); fputs($socket, "Priority: 1\r\n" ); fputs($socket, "Async: yes\r\n\r\n" ); $wrets=fgets($socket,128); echo $wrets; } else { echo "Не задан внешний или внутренний номер \r\n"; echo "Формат использования http://IP-PBX/call.php?exten=007&number=333"; } ?> |
При вызове через WEB, передаем параметры скрипту exten — внутренний номер, number — номер удаленного абонента
Если необходимо осуществлять сначала дозвон до удаленного абонента, то поменяем местами передаваемые номера.
1 2 3 |
http://IP-PBX/call.php?exten=765&number=89519108261 |