[英]How to to download MP3 file from AGI script written in Perl?
我正在嘗試從用Perl編寫的AGI腳本下載MP3文件,但是沒有下載該文件。 奇怪的是,如果我嘗試從純Perl腳本下載相同的文件,則會下載該文件。
這是我的AGI代碼:
use Asterisk::AGI;
$AGI = new Asterisk::AGI;
my %input = $AGI->ReadParse();
$AGI->answer();
sub getAudioFile
{
$filename = shift;
open(FH, ">./audio.mp3") || die "error";
binmode(FH);
$AGI->verbose("Downloading audio file");
$http_query = "curl http://www.something.com/cgi-bin/downloadfile.cgi? -d \"type=mp3&filename=$filename\" -s |";
open (PIPER, $http_query) or die "sorry";
$rets = "";
while (<PIPER>)
{
$rets .= $_;
}
close(PIPER);
chomp $rets;
print FH $rets;
close(FH);
$AGI->verbose("Download complete");
}
getAudioFile('somefile.mp3');
$AGI->hangup();
這里可能出什么問題了?
該行失敗:
$AGI->answer();
檢查代碼中的返回值。
From Asterisk :: AGI-簡單的Asterisk網關接口類 :
$ AGI-> answer()
執行AGI命令“ ANSWER”
答案頻道(如果尚未處於答案狀態)
例如:$ AGI-> answer();
返回:通道失敗時返回-1,如果成功則返回0
嘗試以“ Asterisk”用戶(無論運行的是星號)用戶身份運行perl腳本的“ getAudioFile”部分。 這將更緊密地模擬Asterisk生成API時發生的情況。
可能是用戶權限錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.