Asterisk is work well. And then I wanted to add some AGI scripts based PHP, refer to voip-info.org/wiki/view/Asterisk+AGI+php. But the script doesn’t work. Following is the file. Even /var/log/asterisk/my_agi.log was not created. Call this script in extension.conf by “exten => 866XXXXXXX,5,AGI(agi-abc.php)”. The file can be found in /var/lib/asterisk/agi-bin/
#!/usr/local/bin/php -q
<?php
ob_implicit_flush(true);
set_time_limit(6);
$in = fopen("php://stdin","r");
$stdlog = fopen("/var/log/asterisk/my_agi.log", "w");
// toggle debugging output (more verbose)
$debug = false;
// Do function definitions before we start the main loop
function read() {
global $in, $debug, $stdlog;
$input = str_replace("\n", "", fgets($in, 4096));
if ($debug) fputs($stdlog, "read: $input\n");
return $input;
}
function errlog($line) {
global $err;
echo "VERBOSE \"$line\"\n";
}
function write($line) {
global $debug, $stdlog;
if ($debug) fputs($stdlog, "write: $line\n");
echo $line."\n";
}
// parse agi headers into array
while ($env=read()) {
$s = split(": ",$env);
$agi[str_replace("agi_","",$s[[0])] = trim($s[[1]);
if (($env == "") || ($env == "\n")) {
break;
}
}
// main program
echo "VERBOSE \"Here we go!\" 2\n";
read();
errlog("Call from ".$agi['channel']." - Calling phone");
read();
write("SAY DIGITS 22 X"); // X is the escape digit. since X is not DTMF, no exit is possible
read();
write("SAY NUMBER 2233 X"); // X is the escape digit. since X is not DTMF, no exit is possible
read();
// clean up file handlers etc.
fclose($in);
fclose($stdlog);
exit;
?>