わかりました。FM Server からデータを取得してタプルを返す Ruby スクリプトがあります。私が知っている良い perl FM モジュールがないので、私はこれをしなければなりませんでした。
[test.pl]
$ret = `ruby /root/rfm-query.rb $cid`; @extens = split(/,/, $ret, 2); print "DIAL SIP/$extens[0]";
したがって、これを実行すると、期待どおりに「DIAL SIP/215」が出力されますが、アスタリスク 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`; #rets何も @extens = split(/,/, $ret, 2); $AGI->exec("DIAL SIP/$extens[0]");
テスト スクリプトでは機能するのに、AGI では機能しないのはなぜですか?