можно так
/etc/asterisk/manager.conf
[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
/etc/asterisk/manager.conf
[c2call]
secret=FrUyHn6FSaX
deny=0.0.0.0/0.0.0.0
permit=192.168.0.0/255.255.0.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
Для применения изменений выполним reload:
asterisk -rx "module reload manager"
/etc/asterisk/sip.conf
[3200]
deny=0.0.0.0/0.0.0.0
permit=192.168.0.0/255.255.0.0
secret=3200
dtmfmode=rfc2833
canreinvite=no
context=OUT_IN1
host=dynamic
type=friend
nat=yes
port=5060
qualify=yes
callcounter=yes
faxdetect=no
После создания внутреннего номера, потребуется перечитать конфигурацию Asterisk:
asterisk -rx "sip reload"
На этом настройка Asterisk завершена.
Теперь переходим к созданию скрипта на PHP:
callback.php
<?php
# --- define globals ---
$strhost = "192.168.0.10";
$strport = "5038";
$timeout = "10";
$num=$_REQUEST['num'];
$cid=$_REQUEST['cid'];
$c=$_REQUEST['c'];
$p=$_REQUEST['p'];
$errno=0 ;
$errstr=0 ;
$sconn = fsockopen ($strhost, $strport, &$errno, &$errstr, $timeout) or die("Connection to $strhost:$strport failed");
if (!$sconn) { echo "$errstr ($errno)<br>\n"; }
else {
fputs ($sconn, "Action: login\r\n");
fputs ($sconn, "Username: c2call\r\n");
fputs ($sconn, "Secret: FrUyHn6FSaX\r\n");
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: $cid\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\r\n");
fputs ($sconn, "Async: yes\r\n\r\n" );
fputs ($sconn, "Action: Logoff\r\n\r\n");
usleep (500);
fclose ($sconn);
}
?>
Теперь можно проверить генерацию вызова, используя следующий URL:
Для просмотра ссылки Войди или Зарегистрируйся