Хорошо, у меня есть скрипт ruby, который берет некоторые данные с FM-сервера и возвращает кортеж. Я должен был сделать это, потому что нет хорошего Perl FM-модуля, о котором я знаю.
[test.pl]
$ret = `ruby /root/rfm-query.rb $cid`;
@extens = split(/,/, $ret, 2);
print "DIAL SIP/$extens[0]";
Поэтому, когда я запускаю это, он выводит «DIAL SIP / 215», как и ожидалось, но при использовании одного и того же кода в скрипте Asterisk AGI и использовании $ extens [0] он всегда ничего не возвращает.
#!/usr/bin/env perl
use Asterisk::AGI;
$|=1;
$AGI = new Asterisk::AGI;
%input = $AGI->ReadParse();
$cid = substr $input{'callerid'}, 1;
$cid =~ s/\+//g;
$ret = `ruby /root/rfm-query.rb $cid`; #rets nothing
@extens = split(/,/, $ret, 2);
$AGI->exec("DIAL SIP/$extens[0]");
Почему это работает в тестовом скрипте, но не в AGI?