【发布时间】:2015-06-13 02:18:39
【问题描述】:
我对 Asterisk AGI 并不陌生。我正在使用带有星号 agi 的 perl。
我需要使用 Perl asterisk agi 设计一个 IVR 解决方案。
我写了一点代码,它执行得很好。
Perl 代码:-
#!/usr/bin/perl -w
use strict;
use warnings;
use Asterisk::AGI;
my $agi = new Asterisk::AGI;
my $option1 = "";
my $option2 = "";
$agi->exec("Read","option1,recording-201503252343,1,,,");
$option2 = $agi->get_variable("$option1");
$agi->exec("NoOp","$option1");
if($option2 == 1)
{
$agi->exec("Playback","hello-world");
$agi->exec("Goto","English,s,1");
}
星号拨号方案:-
exten => 12345,1,Answer()
exten => 12345,2,AGI(agi_new-new.pl)
exten => 12345,n,NoOP(${AGISTATUS})
exten => 12345,n,Hangup()
实际上我在代码中所做的是,我希望用户通过 IVR 拨打分机引线,其中提示 2 个选项,当他/她输入我要存储的选项时,他必须在 2 个选项之间进行选择数字转换为变量,以便我对该变量使用条件。 我使用 get_variable 来获取变量,但是当我按下所需的选项时,它会获取 dtmf 输入,但它没有通过命令 get_variable 存储在变量中。
这方面我需要一点帮助。
如果有人能提供帮助,我们将不胜感激。
【问题讨论】:
-
我对星号一无所知,但是 Perl 在双引号中插入变量。因此,
"$option"是相同的'' . $option- 也许你想要'$option'代替?单引号不会插入。 -
亲爱的仍然有相同的输出。它不适合我。