我试图在调用时让我的php脚本循环10次,但由于某种原因,它只执行一次,然后挂断/死亡/退出。我对这方面的任何见解都深表感谢。
for ($i=1; $i<=10; $i++)
ob_implicit_flush(true);
require_once('phpagi.php');
$agi = new AGI();
$agi->answer();
list ($id,$number,$callerid) = mysql_fetch_row(mysql_query("select `called`,`tollfree`,`callerid` from `avotfmaster`.`cdr` where `pbx`='0' order by `mins` desc, rand() limit 1",$xb));
if($id) {
$agi->set_callerid("$callerid");
$agi->exec('DIAL',"SIP/31282200*$number@sip.abc.com,40,L(60000)");
$gwopt_dtmf = $agi->get_data('confirm', 3000, 1);
if($gwopt_dtmf['result']==1)
{
mysql_query("UPDATE `avotfmaster`.`cdr` SET `pbx`='1' WHERE `number`='$number'",$xb);
} else {
mysql_query("UPDATE `avotfmaster`.`cdr` SET `pbx`='2' WHERE `number`='$number'",$xb);
$agi->verbose("I will go ahead and mark this number already scanned and tested");
}
}
}
从PHPAGI脚本调用Dial之类的东西不是一个好主意,基本上是任何将脚本连接一段不确定(或可能很长)时间的东西。
直到脚本结束后才释放系统资源。由于这个原因,PHP中有一个最大脚本执行持续时间命令,我敢打赌你的脚本运行的时间比默认允许的时间长(在大多数调用中),脚本就会终止。
请参阅以下答案以获取线索:PHP set_time_limit()不工作,安全模式关闭
请阅读Dial的文档。
如果您需要在该功能之后进行控制,则需要在选项中添加"g"键。