Answer the question
In order to leave comments, you need to log in
How to make originate call correctly?
Hello. I'm trying to implement Web-callback according to the instructions publicly available on the Internet through a script and AMI:
<?php
$strhost = "192.168.0.100"; # укажите IP – адрес вашего Asterisk. Либо localhost/127.0.0.1, если скрипт загружен на сервер Asterisk;
$strport = "5038"; # AMI - порт, как настроено в секции [general] файла manager.conf;
$timeout = "10";
$num = $_POST['phone']; # получаем номер абонента, который хочет получить callback;
$name = 'Callback - '.$_POST['name'].""; # формируем строку, которую будем выводить на дисплей оператору, который будет осуществлять коллбэк. Она будет состоять из двух параметров: 1 – callback, чтобы оператор понял, что это не входящая, а потенциально исходящая активность и 2 – имя абонента;
$cid = "333"; # экстеншен оператора;
$c="from-internal";
$p="1";
$errno=0 ;
$errstr=0 ;
$sconn = fsockopen($strhost, $strport, $errno, $errstr, $timeout) or die("Connection to $strhost:$strport failed");
if (!$sconn) {
echo "$errstr ($errno)\n";
}
else {
echo 'OK';
fputs($sconn, "Action: login\r\n");
fputs($sconn, "Username: USER\r\n"); # укажите имя созданного пользователя в файле manager.conf вместо callback;
fputs($sconn, "Secret: SECRET\r\n"); # укажите пароль созданного пользователя в файле manager.conf вместо [email protected];
fputs($sconn, "Events: off\r\n\r\n");
usleep(500);
fputs($sconn, "Action: Originate\r\n");
fputs($sconn, "Channel: SIP/$cid\r\n");
fputs($sconn, "Callerid: $name\r\n");
fputs($sconn, "Timeout: 15000\r\n");
fputs($sconn, "Context: $c\r\n");
fputs($sconn, "Exten: $num\r\n");
fputs($sconn, "Priority: $p\r\n");
fputs($sconn, "Async: yes\r\n\r\n" );
fputs($sconn, "Action: Logoff\r\n\r\n");
usleep (500);
$wrets=fgets($sconn,128);
fclose($sconn);
exit;
}
?>
<?php
$strhost = "192.168.0.100"; # укажите IP – адрес вашего Asterisk. Либо localhost/127.0.0.1, если скрипт загружен на сервер Asterisk;
$strport = "5038"; # AMI - порт, как настроено в секции [general] файла manager.conf;
$timeout = "10";
$num = $_POST['phone']; # получаем номер абонента, который хочет получить callback;
$name = 'Звонок с сайта - '.$_POST['name'].""; # формируем строку, которую будем выводить на дисплей оператору, который будет осуществлять коллбэк. Она будет состоять из двух параметров: 1 – callback, чтобы оператор понял, что это не входящая, а потенциально исходящая активность и 2 – имя абонента;
$cid = "333"; # экстеншен оператора;
$c="from-internal";
$p="1";
$namenum = "С САЙТА: {$_POST['name']}<{$_POST['phone']}>";
$errno=0 ;
$errstr=0 ;
$sconn = fsockopen($strhost, $strport, $errno, $errstr, $timeout) or die("Connection to $strhost:$strport failed");
if (!$sconn) {
echo "$errstr ($errno)\n";
}
else {
echo 'OK';
fputs($sconn, "Action: login\r\n");
fputs($sconn, "Username: USER\r\n"); # укажите имя созданного пользователя в файле manager.conf вместо callback;
fputs($sconn, "Secret: SECRET\r\n"); # укажите пароль созданного пользователя в файле manager.conf вместо [email protected];
fputs($sconn, "Events: off\r\n\r\n");
usleep(500);
fputs($sconn, "Action: Originate\r\n");
fputs($sconn, "Channel: SIP/$cid\r\n");
fputs($sconn, "Callerid: $namenum\r\n");
fputs($sconn, "Timeout: 15000\r\n");
fputs($sconn, "Context: $c\r\n");
fputs($sconn, "Exten: $num\r\n");
fputs($sconn, "Priority: $p\r\n");
fputs($sconn, "Async: no\r\n\r\n" );
fputs($sconn, "Action: Logoff\r\n\r\n");
usleep (500);
$wrets=fgets($sconn,128);
fclose($sconn);
exit;
}
?>
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question