好了,我有一個從FM服務器抓取一些數據,並返回一個元組的Ruby腳本。我不得不這樣做,因爲我沒有意識到的perl FM模塊。perl的調用Ruby腳本使用反引號沒有返回
[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中?
確實[網::的FileMaker(http://search.cpan.org/dist/Net- FileMaker /)做你正在尋找什麼? – cjm 2011-06-03 19:32:29
我看着Net :: FileMaker,文檔似乎很糟糕。我不確定它是否滿足我需要或不需要。 – cstrouse 2011-06-03 19:47:35
@mu是的,他們都是作爲同一個用戶運行。我不能告訴你什麼是$?當它失敗時,因爲我無法弄清楚如何讓AGI腳本將文本輸出到Asterisk控制檯。 – cstrouse 2011-06-03 19:48:32