アスタリスク 11.3.0 用に php で agi を作成しました。サーバーで ps ux を使用すると、いくつかの agi 呼び出しがキューにスタックします。
6:42 /usr/bin/php -q /var/lib/asterisk/agi-bin/php/myagi.php Unknown 190090
このような多くのプロセスがキューに詰まっています。
番号のようなすべてのプロセス
0:00 /usr/bin/php -q /var/lib/asterisk/agi-bin/php/myagi.php 954332 190053
不明な番号から電話がかかってきた場合に agi をデバッグする方法を知る必要があります。
私の AGI スクリプト
#!/usr/bin/php -q
<?php
pcntl_signal(SIGHUP, SIG_IGN);
require('phpagi/phpagi.php');
$agi = new AGI();
$calleridnum = $agi->request['agi_callerid'];
$callerid = $agi->request['agi_callerid'];
$callidname = $agi->request['agi_calleridname'];
$phoneno = $agi->request['agi_dnid'];
$channel = $agi->request['agi_channel'];
$uniqueid = $agi->request['agi_uniqueid'];
if(substr($phoneno,0,3)==011)
{
$phoneno = substr($phoneno, 3);
}
$URL = '12121@mysip.abc.com';
$dialstr = "SIP/" . $URL;
$res = $agi->exec("DIAL $dialstr");
$dialstatus = $agi->get_variable("DIALSTATUS");
$answeredtime = $agi->get_variable("ANSWEREDTIME");
if($dialstatus['data'] != "ANSWER")
{
//No answer
}
if($dialstatus['data'] == "ANSWER")
{
$agi->verbose("I am in Cutting Balance!!");
}
savecdr($URL,"$callerid", $phoneno, $trunk, $dialstatus['data'], $answeredtime['data'], $PerMinuteCharges,$callstart,$TriggerCharge,$OID,$callidname,$IP,$NodeID,$MinutesUsed,$TalkTime,$TTCut,$pTTRemain,$pHash[Expiry],$pMinTotal,$VOID);
$agi->hangup();
?>