好的,所以我有一个 ruby 脚本,它从 FM 服务器获取一些数据并返回一个元组。我不得不这样做,因为我知道没有好的 perl FM 模块。
[测试.pl]
$ret = `ruby /root/rfm-query.rb $cid`; @extens = split(/,/, $ret, 2); 打印“DIAL SIP/$extens[0]”;
因此,当我运行它时,它会按预期打印“DIAL SIP/215”,但是当在 Asterisk AGI 脚本中使用相同的代码并使用 $extens[0] 时,它总是不返回任何内容。
#!/usr/bin/env perl
使用星号::AGI;
$|=1;
$AGI = 新星号::AGI;
%input = $AGI->ReadParse();
$cid = substr $input{'callerid'}, 1;
$cid =~ s/\+//g;
$ret = `ruby /root/rfm-query.rb $cid`; #什么都不做
@extens = split(/,/, $ret, 2);
$AGI->exec("DIAL SIP/$extens[0]");
为什么它在测试脚本中有效,但在 AGI 中无效?