我的拨号方案是这样的
[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
}发布于 2014-06-06 16:43:31
下面是我如何使用php-agi.php实现相同的功能
failed.php (如果调用失败将执行)
<?php
require_once "phpagi.php";
require_once "phpagi-asmanager.php";
$astman = new AGI();
$astman->set_variable('CallState','failed');
?>success.php (如果调用成功,将执行)
<?php
require_once "phpagi.php";
require_once "phpagi-asmanager.php";
$astman = new AGI();
$astman->set_variable('CallState','success');
?>hangup.php (如果调用失败或成功,将在调用结束时执行)
<?php
require_once "phpagi.php";
require_once "phpagi-asmanager.php";
$astman = new AGI();
$call_state = agi_get_var('CallState');
if($call_state == "success"){
//call was success
}
elseif($call_state == "failed"){
//call was failed
}
?>发布于 2012-07-15 17:46:06
agi将使用一些标准参数来调用,包括case from扩展(在您的示例中,将是i或failed)。确保解析传递给脚本的参数(通过stdin)!
发布于 2012-07-17 03:56:48
在你的脚本中使用phpagi.php,它为AGI提供了所有需要的解析。
或查看http://www.voip-info.org/wiki/view/Asterisk+AGI+php上的示例
https://stackoverflow.com/questions/11448366
复制相似问题