Was this page helpful?

待機音樂 v.s 網路電台

    簡介

    Asterisk 除可以支援 MP3 設定為來電音樂(Music On Hold),此篇將教你另一種不同方法,將來電音樂的來源設置為網路電台型式。

    不過至目前只能以 WinAmp 為播放介面 MP3 的廣播電台(SHOUTcast Radio)為主,而國內電台較風行的 Real Player 及 Media Player 播放介面的電台,至目前為止,還沒找到合適的解決方案。

    這樣的用法有別於比較固定的音樂檔案的播放方式,而是改以音樂串流方式播放內容,如此可使媒體內容更多樣化,動態化及內容即時化。

    雖然只支援 WinAmp 的電台,但這電台套件(SHOUTcast Radio)是可以免費架設,如果將它和 IP-PBX 作整合應用,應該可以設計出更多元化的其他應用。

    除了 SHOUTcast Radio 套件外,還可以使用另外一套也是免費的套件 Icecast

    由於筆者所使用的系統是用 Elastix,所以下述方法將以此環境為主,不過應該也適用 Trixbox 或 Asterisk 手動安裝的其他用法。

    更多文章

    心得分享:

    • 不管是 mpg123 或 mplayer 也可運作於 virtual machine 例如 vmware ESXi, OpenVZ。
    • 在 OpenVZ + Ubuntu 11 環境下測試,mpg123 工作正常,但 mplayer 會出現 CPU 接近 100%,且聲音間隔幾秒會有斷音,網路是正常的,使用 binary 及編譯過的版本都一樣
    • 不知何故,在 PIAF 1.7.5.7 系統下無法正常工作
    • 測試在 VMware ESXi,用 Ubuntu 11 + Asterisk 1.8 正常工作。
    • 測試在實體機器,用 Elastix 2.0,Ubuntu 9 + Asterisk 1.8 可正常工作

    安裝套件 mpg123

    前往 http://sourceforge.net/projects/mpg123,下載 mpg123-1.5.1.tar.gz

    By 2010-5-3 已測試最新版 mpg123-1.12.1 版本可用
    By 2011-11-28 已測試 mpg123-1.13.4 版本可用

    #cd /usr/src
    #wget http://nchc.dl.sourceforge.net/sourceforge/mpg123/mpg123-1.5.1.tar.gz
    #tar -xzf mpg123-1.5.1.tar.gz
    #cd mpg123-1.5.1
    #./configure --prefix=/opt/mpg123-1.5.1
    #make
    #make install
    

    設定電台位址 

    以 root 登入 SSH Console

    #su - asterisk
    #cd /var/lib/asterisk/mohmp3
    #mkdir stream
    #touch stream/stream.mp3
    

    編輯 musiconhold_custom.conf

    《PBX》《Tools》《File Editor》File 輸入 musiconhold_custom.conf,按 Filter,選擇 musiconhold_custom.conf

    增加以下這幾行

    [radio]
    mode=custom
    directory=/var/lib/asterisk/mohmp3/stream/
    application=/opt/mpg123-1.5.1/bin/mpg123 -q -r 8000 -f 8192 -b 0 --mono -s http://70.87.88.179:9000/
    

    確認後儲存

    重啟服務使設定生效,在 SSH Console 執行以下指令

    #asterisk -rx "stop now"
    #amportal stop
    #amportal start
    

    Tips: 電台位址何處找

    幾個收集電台位址的網站。

    application=/opt/mpg123-1.5.1/bin/mpg123 -q -r 8000 -f 8192 -b 0 --mono -s http://radio.newdaai.tv:8010/
    • QQ Raio 台灣的德文廣播電台
    application=/opt/mpg123-1.5.1/bin/mpg123 -q -r 8000 -f 8192 -b 0 --mono -s http://streamplus11.ameus.de:17978/
    • PTT Radio
    application=/opt/mpg123-1.5.1/bin/mpg123 -q -r 8000 -f 8192 -b 0 --mono -s http://cast.ptt.cc:8000/yes/

    開始測試 

    方法一:設定一個虛擬號碼用來作電台播放測試

    編輯 extensions_custom.conf

    《PBX》《Tools》《File Editor》File 輸入 extensions_custom.conf,按 Filter,選擇 extensions_custom.conf

    增加這幾行

    [from-internal-custom]
    ...
    ...
    include => test-moh-streaming ; call 5551
    
    [test-moh-streaming]
    exten => 5551,1,Answer
    exten => 5551,2,WaitExten(60|m(radio))
    exten => 5551,n,Hangup
    

    註:
    5551 是虛擬號碼可以自行修改,但不能與現有分機、自設的Features code、會議室號碼等所有其他用過的號碼相同。
    因為只是用作測試用,所以音樂播放 60 秒後即自動斷線,若想取消限制,將 WaitExten(60|m(radio)) 改成 MusicOnHold(radio)。

    使用任一分機撥 5551 後話筒應該會傳來電台的音樂聲音。

    方法二:設定通話保留(Music on Hold)時播放電台音樂

    編輯 sip_general_custom.conf

    《PBX》《Tools》《File Editor》File 輸入 sip_general_custom.conf,按 Filter,選擇 sip_general_custom.conf

    增加這幾行

    ; default MOH class
    mohinterpret=radio
    

    註:radio 是以上所設定的 music class 名稱 

    使用分機撥通另一支分機,當按下保留(Hold)後,對方應該會聽到電台的音樂。

    線上測試

    如果想先了解使用後的效果,你可以撥入我們的系統聽聽看,接通後會聽到電台播放的音樂約一分鐘,我們提供三線撥入號碼包括 Gizmo(國際), CCNET(台灣), toCall(中國)

    17470806946 轉 6 (Gizmo)
    0702500267 轉 6 (CCNET)
    20815048 轉 6 (toCall)

    Was this page helpful?
    標籤 (Edit tags)
    • No tags
    查看第7個(總7個)評論: 查看所有
    真是太酷的 功能 我倒是想玩玩看...
    發佈時間 14:58, 13 Oct 2008 ()
    太強了...
    發佈時間 12:00, 22 Oct 2008 ()
    我照著方法做
    但是完全沒有聲音
    產生了下列的訊息
    有請高人指導:

    == Using SIP RTP CoS mark 5
    == Using SIP VRTP CoS mark 6
    -- Executing [555@income:1] Answer("SIP/201-00000000", "") in new stack
    -- Executing [555@income:2] WaitExten("SIP/201-00000000", "60|m(radio)") in new stack
    [Dec 18 21:28:04] WARNING[672]: pbx.c:956 pbx_exec: The application delimiter is now the comma, not the pipe. Did you forget to convert your dialplan? (WaitExten(60|m(radio)))
    發佈時間 14:17, 18 Dec 2010 ()
    我把WaitExten(60|m(radio)) 改成 MusicOnHold(radio)就可以了
    但不曉得為什麼
    發佈時間 15:23, 18 Dec 2010 ()
    錯誤訊息已經顯示解決的方法了,將 pipe 改成 comma。
    發佈時間 02:36, 20 Dec 2010 ()
    你好
    請教一下依文章所作及peterelf所言,執行LOG如下
    Feb 6 03:16:55 VERBOSE [9147] pbx.c:
    -- Executing [9991@from-internal:1] Answer("SIP/111-0000002d", "") in new stack
    Feb 6 03:16:55 VERBOSE [9147] pbx.c:
    -- Executing [9991@from-internal:2] MusicOnHold("SIP/111-0000002d", "radio") in new stack
    Feb 6 03:16:55 VERBOSE [9147] res_musiconhold.c:
    -- Started music on hold, class 'radio', on channel 'SIP/111-0000002d'
    並無錯誤LOG
    但仍聽不見聲音@@"
    抓取的目標為 http://radiolive.newdaai.tv:8010 在大愛的網站上找來放進來的。
    是來源設定有錯嗎?
    發佈時間 19:22, 5 Feb 2012 ()
    To searobber:
    你可以用其他撥放軟體先確認來源是正常的。
    發佈時間 04:43, 7 Feb 2012 ()
    查看第7個(總7個)評論: 查看所有
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core