簡體   English   中英

如何從用Perl編寫的AGI腳本中下載MP3文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM