1

ユーザーから DTMF を取得しようとしています。DTMF がゼロの場合は、コールを内線番号に転送し、それ以外の場合はハングアップします。以下のように書いたのですが、そのまま無効なエントリを再生して電話を切ってしまいます。この問題について助けていただければ幸いです。

$wheretorec = $agi->exec("AGI","googletts.agi,\"To speak to an operator press zero.\",en"); 
$whereto = $agi->get_data($wheretorec, 10000, 1);
$dtmf = $whereto['result'];

if (is_numeric($dtmf ['0'])) 
{
$agi->exec("AGI","googletts.agi,\"Your call is now being transferred\",en");
$agi->exec('transfer',"SIP/123@12.345.678.901:5080");   
$agi->hangup();
} 
else 
{
$agi->exec("AGI","googletts.agi,\"Invalid entry. Please try again later.\",en");
$agi->hangup(); 
}
}
4

3 に答える 3

0
$dtmfTemp = $agi->get_data("File_name_you_want_to_play", 6000, 1);
$dtmf = $dtmfTemp['result'];
if($dtmf=="0"){
//Do your stuff
}
else{
//Do your other stuff
}
于 2014-07-05T18:10:38.517 に答える
0

このようになって

$dtmf = $whereto['result'];

if ($dtmf=="0")

phpagiのドキュメントと例をよく読んでください

于 2014-07-05T02:39:49.993 に答える
0

これは私のために働いたコードです..「silence/1」または「beep」の代わりに何かを試みると、エラーメッセージ、無効なエントリが表示されます!

$press1 = $agi->get_data('silence/1',50000, 1);
$press1dtmf = $press1['result'];
于 2014-07-07T09:10:42.963 に答える