实现回拨 AGI(PHP)
程序员文章站
2024-01-01 14:35:04
...
[capiin] exten => 1234/016066666,1,Wait,1 exten => 1234/016066666,2,AGI,callback.php exten => 1234/016066666,3,Hangup
<?php ob_implicit_flush(true); set_time_limit(0); $err=fopen("php://stderr","w"); $in = fopen("php://stdin","r"); while (!feof($in)) { $temp = str_replace("\n","",fgets($in,4096)); $s = split(":",$temp); $agi[str_replace("agi_","",$s[0])] = trim($s[1]); if (($temp == "") || ($temp == "\n")) { break; } } $cf = fopen("/home/kapejod/pbx/var/spool/asterisk/outgoing/cb".$agi["callerid"],"w+"); fputs($cf,"Channel: CAPI/".$agi["extension"].":".$agi["callerid"]."\n"); fputs($cf,"Context: capidialtone\n"); fputs($cf,"Extension: s\n"); fputs($cf,"SetVar: CALLERIDNUM=".$agi["extension"]."\n"); fputs($cf,"MaxRetries: 2\n"); fputs($cf,"RetryTime: 10\n"); fclose($cf); fclose($in); fclose($err); ?>