星号agi循环不工作

时间:2013-07-11 21:44:40

标签: loops asterisk agi

我正在尝试让我的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");

}

}
}

2 个答案:

答案 0 :(得分:1)

调用像Dial这样的东西不是一个好主意,基本上是从PHPAGI脚本中将你的脚本与未确定(或可能很长)的时间联系在一起的任何东西。

直到脚本结束后才会释放系统资源。 出于这个原因,在PHP中有一个最大的脚本执行持续时间命令,我敢打赌你的脚本运行的时间超过了默认的允许时间(在大多数调用中)并且脚本被终止。

请参阅此答案以获取线索: PHP set_time_limit() does not work, safemode is off

答案 1 :(得分:0)

请阅读Dial的文档。

如果您需要在该功能之后进行控制,则需要在选项中添加“g”键。