4,723
回編集
差分
ページの作成:「PIASTを保留音用の装置として使う<br> '''あの'''有名な装置がディスコンになって困っていませんか?<br> ==普通な方法== 単なる...」
PIASTを保留音用の装置として使う<br>
'''あの'''有名な装置がディスコンになって困っていませんか?<br>
==普通な方法==
単なる保留音を流すための装置として使うのであれば、Asteriskを使う必要はありません。PIASTは接点入力は備えていませんが、その機能を使っているケースが殆ど無いらしいので問題はないでしょう。<br>
要するにオーディオデバイスで音楽を延々と流し続ければいいだけなので、mplayerとかをインストールしてしまえば保留音装置としては使えます。<br>
apt-get install mplayer
なのでループ再生用のシェルを作って
#!/bin/sh
cd /var/lib/asterisk
while :
do
mplayer *.wav > /dev/null 2&>1
done
とかやっておけば延々と音楽再生する装置になります。<br>
==意地でもAsteriskを使う==
やはりAsteriskを使いたい場合には以下のextenを参考にどうぞ。
[mohdevice]
exten => s,1,Answer
exten => s,n(loop),Playback(/var/lib/asterisk/moh/macroform-cold_day)
exten => s,n,Playback(/var/lib/asterisk/moh/macroform-robot_dity)
exten => s,n,Playback(/var/lib/asterisk/moh/macroform-the_simplicity)
exten => s,n,Goto(loop)
まずこんな感じで再生だけするcontextを作ります。AsteriskのPlaybackは拡張子を付けると失敗するのをお忘れなく。<br>
次にトリガーするextenを作ります。
exten => 5963,1,NoOp(MoH Device Start)
exten => 5963,n,System(asterisk -rx 'channel originate Console/0 extension s@mohdevice')
これで'5963'にダイヤルするとConsoleチャネル、つまりALSAデバイスが先ほどのcontextに繋がれるので保留音を再生しはじめます。context内ではループしているので延々音楽を流し続けます。<br>
が、途中で止めたい!という場合もあるかもしれません。止める用の番号も作りましょう。
exten => 5964,1,NoOp(MoH Device Stop)
exten => 5964,n,System(asterisk -rx 'channel request hangup ALSA/default')
ダイヤルしたのはConsole/0なのですが、実際に繋がれるチャネルはALSA/defaultなので、このようにALSA/defaultをhangupさせます。これで再生を停止することができます。<br>
つまり、5963をダイヤル、要するにINVITEすると再生開始、5964をINVITEすると再生停止とSIPで制御可能な保留音装置ができます。これならAsteriskを使う意味がありますね。
'''あの'''有名な装置がディスコンになって困っていませんか?<br>
==普通な方法==
単なる保留音を流すための装置として使うのであれば、Asteriskを使う必要はありません。PIASTは接点入力は備えていませんが、その機能を使っているケースが殆ど無いらしいので問題はないでしょう。<br>
要するにオーディオデバイスで音楽を延々と流し続ければいいだけなので、mplayerとかをインストールしてしまえば保留音装置としては使えます。<br>
apt-get install mplayer
なのでループ再生用のシェルを作って
#!/bin/sh
cd /var/lib/asterisk
while :
do
mplayer *.wav > /dev/null 2&>1
done
とかやっておけば延々と音楽再生する装置になります。<br>
==意地でもAsteriskを使う==
やはりAsteriskを使いたい場合には以下のextenを参考にどうぞ。
[mohdevice]
exten => s,1,Answer
exten => s,n(loop),Playback(/var/lib/asterisk/moh/macroform-cold_day)
exten => s,n,Playback(/var/lib/asterisk/moh/macroform-robot_dity)
exten => s,n,Playback(/var/lib/asterisk/moh/macroform-the_simplicity)
exten => s,n,Goto(loop)
まずこんな感じで再生だけするcontextを作ります。AsteriskのPlaybackは拡張子を付けると失敗するのをお忘れなく。<br>
次にトリガーするextenを作ります。
exten => 5963,1,NoOp(MoH Device Start)
exten => 5963,n,System(asterisk -rx 'channel originate Console/0 extension s@mohdevice')
これで'5963'にダイヤルするとConsoleチャネル、つまりALSAデバイスが先ほどのcontextに繋がれるので保留音を再生しはじめます。context内ではループしているので延々音楽を流し続けます。<br>
が、途中で止めたい!という場合もあるかもしれません。止める用の番号も作りましょう。
exten => 5964,1,NoOp(MoH Device Stop)
exten => 5964,n,System(asterisk -rx 'channel request hangup ALSA/default')
ダイヤルしたのはConsole/0なのですが、実際に繋がれるチャネルはALSA/defaultなので、このようにALSA/defaultをhangupさせます。これで再生を停止することができます。<br>
つまり、5963をダイヤル、要するにINVITEすると再生開始、5964をINVITEすると再生停止とSIPで制御可能な保留音装置ができます。これならAsteriskを使う意味がありますね。