我正在学习Asterisk :: AMI,但是所有的例子都处理了Command命令。
我已经尝试运行以下操作(没有成功)
my $action = $astman->action({ Action => "Agents" });
我有下面的打印响应工作罚款Action => 'Command'如果我尝试其他的事情不同,我没有得到响应CMD,我怎么能得到别人的反应行动?
sub print_response { my $action = shift; print "\nResponse: ", $action->{'Response'}; print "\nMessage: ", $action->{'Message'}; print "\nActionID: ", $action->{'ActionID'}; if(defined $action->{'CMD'}) { print "\nCMD: ", scalar(@{$action->{'CMD'}}); print "\n-------------------------------------------\n"; foreach (@{$action->{'CMD'}}) { print $_, "\n"; } print "\n-------------------------------------------\n"; } print "\nCompleted: ", $action->{'COMPLETED'}; print "\nGood: ", $action->{'GOOD'}; }
在担心API(仅在Asterisk AMI层上)之前,我build议你telnet到AMI端口并尝试直接与AMI交互。 在那里你可以了解命令的结构和响应 – 那么上面的内容对你更有意义!
要debugging,我通常使用Data :: Dumper。
只需打印所有回复,看看它有什么字段。
也可以是作为一组事件的动作返回响应。 所以对于testing应用程序很好,倾倒所有事件。
希望能帮到你。