0

呼び出しが行われたときにphpスクリプトを10回ループさせようとしていますが、何らかの理由で1回しか実行されず、ハングアップ/ダイ/終了します。これについて私が得ることができるあらゆる種類の洞察は大歓迎です。

 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");

}

}
}
4

2 に答える 2

1

PHPAGI スクリプトから Dial のようなものを呼び出すのは得策ではありません。

システム リソースは、スクリプトが終了するまで解放されません。このため、PHP には最大スクリプト実行時間コマンドがあります。スクリプトがデフォルトの許容時間 (ほとんどの呼び出しで) よりも長く実行され、スクリプトが終了することは間違いありません。

手がかりについては、この回答を参照してください: PHP set_time_limit() が機能しない、セーフモードがオフです

于 2013-07-12T22:27:33.360 に答える
0

Dial のドキュメントをお読みください。

その機能の後に制御が必要な場合は、オプションに「g」キーを追加する必要があります。

于 2013-07-12T01:11:54.530 に答える