保留音をインターネットに設定したときの忘備録
<< http://d.hatena.ne.jp/athlonz/20080727/p1 を参考にさせていただきました。感謝 >>
FreePBX の MusicOnHold で、適当な名前のストリーミングカテゴリーを追加
| Categoly : NetRadio
| Application : /bin/cat
| OptionFormat : slin
# vi /etc/asterisk/musiconhold_additional.conf
ここで、[NetRadio]を以下のようにする(directory=を追加)
[NetRadio] mode=custom directory=/var/lib/asterisk/moh/netstream application=/bin/cat format=slin
:wq で書き込み
# mkdir /var/lib/asterisk/moh/netstream
# cd /var/lib/asterisk/moh/netstream
MPlayserのインストール
# cd /usr/local/src
# wget http://www4.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc2.tar.bz2
# bzip2 -dc MPlayer-1.0rc2.tar.bz2 | tar xvf –
# cd MPlayer-1.0rc2
# ./configure
# make
# make test
# make install
名前付きパイプを作る
# cd /var/lib/asterisk/moh/netstream
# mkfifo pipe.mp3
# vi netstream.sh
中身は
#!/bin/sh while : do /usr/local/bin/mplayer http://yp.shoutcast.com/sbin/tunein-station.pls?id=1258 -srate 8000 -af channels=1 -ao pcm_file=/var/lib/asterisk/moh/netstream/pipe.mp3 done # chmod a+x /var/lib/asterisk/moh/netstream/netstream.sh
# vi /etc/init.d/asterisk_netstream
中身は
#!/bin/bash # chkconfig: 2345 35 35 # description: Asterisk Network Streaming # processname: asterisk_netstream start(){ rm -f /var/lib/asterisk/moh/netstream/nohup.out echo -n "Starting Asterisk Network Streaming" /usr/bin/nohup /var/lib/asterisk/moh/netstream/netstream.sh & return 0 } stop(){ echo -n "Stop Asterisk Network Streaming" killall netstream.sh -9 killall mplayer -9 return 0 } case "$1" in start) start ;; stop) stop ;; esac
:wq で保存
chmod a+x /etc/init.d/asterisk_netstream
サービスに登録
# chkconfig –add asterisk_netstream
# service asterisk_netstream start
試験で聴くための番号を設定する
# vi /etc/asterisk/extensions_custom.conf
[from-internal-custom]に以下の文を挿入
;NetRadio Test for Asterisk 1.4 ;exten => 468,1,Answer ;exten => 468,2,Playback(pls-hold-while-try) ;exten => 468,3,SetMusiconHold(NetRadio) ;exten => 468,4,WaitmusiconHold(60) ;exten => 468,5,Hangup ;NetRadio TEST for asterisk 1.6 exten => 468,1,Answer exten => 468,n,Playback(pls-hold-while-try) exten => 468,n,Set(CHANNEL(musicclass)=NetRadio) exten => 468,n,WaitmusiconHold(60) exten => 468,n,Hangup
:wq で保存
# amportal restart
で、asterisk を再起動。
468 に電話をしてみて聞こえるか確認。
聞こえるようなら inboundRutes の Musc On Hold を NetRadio に設定。
実際は、再起動しないとうまく動かなかった。