我使用星号::AGI模块与星号1.8进行交互,但我没有看到使用perl子程序的示例。我想连接一个web服务并更好地组织AGI,最好是使用子程序来代替if- all块中的所有代码,从拨号计划发送arg并获得这些子例程的返回。
我知道如何使用这个模块获取和设置变量,但我想知道是否存在这样的情况:
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})发布于 2019-12-11 13:05:39
似乎没有办法调用一个函数,将函数的名称作为自变量传递。因此,我发现用Perl o PHP处理AGI的方法之一,不是拥有一个具有各种函数的文件,我们必须定义一个函数来生成对这些函数的动态调用,传递函数的标识符和通过拨号计划所需的参数。
https://stackoverflow.com/questions/59266941
复制相似问题