保留音をインターネットに設定したときの忘備録
<< 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 に設定。
実際は、再起動しないとうまく動かなかった。