如何将参数从拨号计划发送到Perl子例程AGI并将尊重返回发送回拨号计划



我正在使用Asterisk :: AGI模块与Asterisk 1.8交互,但我没有看到使用perl子例程的示例。我想与 Web 服务连接并更好地组织 AGI,最好使用子例程来执行 if-else 块中的所有代码,从拨号计划发送参数并返回这些子例程。

我知道这个模块的获取和设置变量,但我想知道是否有这样的东西:

use Asterisk::AGI;
my $AGI = new Asterisk::AGI;
sub some_subroutine {
my ($param1, $param2, param3) = @ARGV;
# do something with parameters
$agi_data = something_done_with_parameters;
return $AGI->set_variable("agi_data", $agi_data);
}

在拨号计划上下文中:

[simple_interact]
exten = s,1,AGI(script.pl, some_subroutine, param1, param2, param3)
same = n,NoOp(${agi_data})

似乎没有如何调用一个函数,将函数的名称作为参数传递。因此,我发现使用 AGI、Perl o PHP 的方法之一是,而不是拥有一个包含各种函数的文件,我们必须定义一个函数来生成对这些函数的动态调用,通过拨号计划传递函数的标识符和所需的参数。

最新更新