无法捕获Asterisk :: AGI get_variable的返回值

时间:2016-06-15 12:09:54

标签: perl agi

我有一个 1.agi 文件,它使用以下代码设置星号变量

$AGI->set_variable("MY_CALLID",$value);

我在 2.agi 中使用以下代码行来检索该值(此处的值为20)

my $MY_CALLID = $AGI->get_variable('MY_CALLID');
$LOG->debug($AGI->get_variable('MY_CALLID'));

在控制台中,我可以看到该值由星号返回。但变量无法捕捉它。请参阅下面的日志(我正在使用Log :: Log4perl)

<SIP/tufli-0000000d>AGI Rx << GET VARIABLE MY_CALLID
<SIP/tufli-0000000d>AGI Tx >> 200 result=1 (20)
<SIP/tufli-0000000d>AGI Rx << GET VARIABLE MY_CALLID
<SIP/tufli-0000000d>AGI Tx >> 200 result=1 (20)
Warning: Log message argument #1 undefined at /var/lib/asterisk/agi-bin/xxx/2.agi line 35
Use of uninitialized value in join or string at /usr/local/share/perl5/Log/Log4perl/Appender.pm line 177, <STDIN> line 23.
Warning: Log message argument #1 undefined at /var/lib/asterisk/agi-bin/xxx/2.agi line 35
Use of uninitialized value in join or string at /usr/local/share/perl5/Log/Log4perl/Appender.pm line 177, <STDIN> line 23.
<SIP/tufli-0000000d>AGI Rx << 2016-06-15 15:59:40.983 | DEBUG | at /var/li | main                :35    | 

我错过了什么?!

正如一些其他信息,我正在使用

$| = 1;

在我的脚本开始时(只是怀疑它是否必须对此做任何事情)。

我看到了一个类似的问题here @ SO,但它是关于用户输入而不是星号变量。

0 个答案:

没有答案