4,723
回編集
差分
→意地でもAsteriskを使う
exten => 5963,1,NoOp(MoH Device Start)
exten => 5963,n,System(asterisk -rx 'channel originate Console/0 extension s@mohdevice')
exten => 5963,n,Playback(beep)
exten => 5963,n,Hangup
これで'5963'にダイヤルするとConsoleチャネル、つまりALSAデバイスが先ほどのcontextに繋がれるので保留音を再生しはじめます。context内ではループしているので延々音楽を流し続けます。<br>
が、途中で止めたい!という場合もあるかもしれません。止める用の番号も作りましょう。
exten => 5964,1,NoOp(MoH Device Stop)
exten => 5964,n,System(asterisk -rx 'channel request hangup ALSA/default')
exten => 5964,n,Playback(beep)
exten => 5964,n,Hangup
ダイヤルしたのはConsole/0なのですが、実際に繋がれるチャネルはALSA/defaultなので、このようにALSA/defaultをhangupさせます。これで再生を停止することができます。<br>
つまり、5963をダイヤル、要するにINVITEすると再生開始、5964をINVITEすると再生停止とSIPで制御可能な保留音装置ができます。これならAsteriskを使う意味がありますね。
==参考情報==
1番目の方法、つまりmplayerで音楽などを再生している状態でもALSAデバイスは複数のアプリケーションから再生を受け付けるため、音楽再生しつつAsteriskでページングができます。ただし音量調整が問題なので、バランスはうまいこと取っておく必要があります。<br>
2番目の方法ではAsteriskがALSA/defaultの同時通話数を1とするので、再生中はBUSYになります。<br>