如何将参数从dialplan发送到Perl子例程AGI,并将尊重返回发送回dialplan

如何将参数从dialplan发送到Perl子例程AGI,并将尊重返回发送回dialplan,perl,asterisk,agi,Perl,Asterisk,Agi,我正在使用Asterisk::AGI模块与Asterisk 1.8交互,但我没有看到使用perl子例程的示例。我想连接一个web服务并更好地组织AGI,最好使用子例程来执行if-else块中的所有代码,从dialplan发送参数并获得这些子例程的返回 我知道使用此模块获取和设置变量,但我想知道是否有类似的内容: use Asterisk::AGI; my $AGI = new Asterisk::AGI; sub some_subroutine { my ($param1, $pa

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

我知道使用此模块获取和设置变量,但我想知道是否有类似的内容:

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的方法之一是,我们必须定义一个函数来生成对这些函数的动态调用,并通过dialplan传递函数标识符和所需参数。

好的,问题是什么?@arheops有没有一种方法可以使用Perl AGI模块将参数从dialplan发送到函数并返回值回dialplan?我不知道如何在perl AGI.Sure中使用子例程。网上有很多例子。这就是你想知道的吗?@arheops是的,就是这个。我只能找到Perl AGI,其中的条件语句不使用从dialplan接收参数的函数。你能给我看看这些样品吗?等等。那么,您现在是在问如何在perl脚本中使用函数吗?这是一种常见的方式,在每一本关于perl的书中都有描述。