3

私のダイヤルプランはこんな感じです

[dial-plan]
exten => s,1,Answer()
exten => s,n,Noop(exten = ${EXTEN}
exten => s,n,Macro(dumpvars)
exten => s,n,Macro(record-enable)
exten => s,n,AGI(success.php)
exten => i,1,Noop(REASON = ${REASON})
exten => i,n,Macro(dumpvars)
exten => i,n,AGI(faile.php)
exten => failed,1,Noop(REASON = ${REASON})
exten => failed,n,Macro(dumpvars)
exten => failed,n,AGI(faile.php)

faile.php が呼び出された場所からキャッチしたいのですが、 からfailedまたは から呼び出される可能性がありますi。これを確認するにはどうすればよいですか

これはfaile.phpのようにする必要があります

if($some_var == 1){
     //Invalid
}
elsif($some_var == 2){
    //Failed
}
4

5 に答える 5

1

agi はいくつかの標準的なパラメーターで呼び出され、called-from 拡張子が含まれます (あなたの場合はiorになりますfailed)。スクリプトに (stdin 経由で) 渡される引数を解析していることを確認してください!

于 2012-07-15T09:46:05.520 に答える
0

あなたの質問を正しく理解できたなら、変数を PHP AGI スクリプトに渡す必要があります。方法は次のとおりです。

exten => i,n,AGI(faile.php,invalid)

exten => failed,n,AGI(faile.php,failed)

そして、PHP AGI スクリプトは次のようになります。

#!/usr/bin/php -q
<?php
set_time_limit(30);
//load PHP AGI
require('phpagi/phpagi.php');
error_reporting(E_ALL);
$agi = new AGI();

$status = $argv[1];

if($status == "invalid")
{
  // invalid
} else
{ 
  // failed
}
?>
于 2012-07-23T12:08:47.543 に答える
0

スクリプトでphpagi.phpを使用すると、AGI に必要なすべての解析が提供されます。

または、http://www.voip-info.org/wiki/view/Asterisk+AGI+phpで例を参照してください。

于 2012-07-16T19:56:48.157 に答える