Asterisk cmd Playtones
提供: VoIP-Info.jp
extension.conf中に書くアプリケーションの一つで、通話相手にトーン音などを聞かせる事が出来ます。
回線を切断せずにビジー音を流したりすることも出来ます。
目次
使い方
トーン音を流す
exten => {電話番号},{プライオリティ},Playtones(トーン名|出したい音)
トーン音を止める
exten => {電話番号},{プライオリティ},StopPlaytones
書き方(1)
ダイヤル音をや話中音を出したい時は、extensions.conf中に、このように書きます。
Asterisk_indications.confも参考にしてみてください。
; 4がダイヤルされると色々な音を流すサンプル exten => _4,1,Answer exten => _4,n,Wait(1) exten => _4,n,Playtones(dial) ←ダイヤル音を流す exten => _4,n,Wait(3) ←3秒間待つ(ダイヤル音が3秒流れ続ける) exten => _4,n,Playtones(busy) ←ビジー音を流す exten => _4,n,Wait(3) ←3秒間待つ(話中音が3秒流れ続ける) exten => _4,n,Playtones(ring) exten => _4,n,Wait(3) exten => _4,n,Playtones(congestion) exten => _4,n,Wait(3) exten => _4,n,Playtones(callwaiting) exten => _4,n,Wait(3) exten => _4,n,Playtones(dialrecall) exten => _4,n,Wait(3) exten => _4,n,Playtones(record) exten => _4,n,Wait(3) exten => _4,n,Playtones(info) exten => _4,n,Wait(3) exten => _4,n,Playtones(stutter) exten => _4,n,Wait(3) exten => _4,n,StopPlaytones exten => _4,n,Hangup
書き方(2)
直接トーン音の周波数、タイミングを指定することもできます。
詳細はAsterisk_indications.confを参考ください。
; 500番代のダイヤルがあったら、特殊トーン音を鳴らして内線発信をかける例 exten => _5XX,1,Answer exten => _5XX,n,Playtones(400/50,0/50) exten => _5XX,n,Wait(1) exten => _5XX,n,Dial(SIP/${EXTEN}@192.168.0.44) exten => _5XX,n,hangup
サンプル
チャイム
1がダイヤルされると、「ド~ミ~ソ~ド~ ド~ソ~ミ~ド~」のチャイムを鳴らして電話を切る
exten => _1,1,Answer exten => _1,n,Wait(1) exten => _1,n,Playtones(!261/330,!329/330,!391/330,!532/330,!0/330,!532/330,!391/330,!329/330,!261/330,0) exten => _1,n,Wait(5) exten => _1,n,StopPlaytones exten => _1,n,Hangup
チャルメラ
2がダイヤルされると、チャルメラを奏でた後、電話を切る
exten => _2,1,Answer exten => _2,n,Wait(1) exten => _2,n,Playtones(!261/220,!293/220,!329/1200,0/330,!293/220,!261/220,0/220,!261/220,!293/220,!329/220,!293/220,!261/220,!293) exten => _2,n,Wait(5) exten => _2,n,StopPlaytones exten => _2,n,Hangup
緊急警報信号風味
666がダイヤルされると、精神的ダメージを与えて電話を切る
exten => 666,1,Answer exten => 666,n,Wait(1) exten => 666,n,Playtones(640/16,1024/16,640/16,1024/16,640/16,1024/16,640/16,1024/16,1024/16,640/16,1024/16,640/16,1024/16,0/16) exten => 666,n,Wait(1) exten => 666,n,StopPlaytones exten => 666,n,Playtones(640/16,1024/16,640/16,1024/16,640/16,1024/16,640/16,1024/16,1024/16,640/16,1024/16,640/16,1024/16,640/16,1024/16,640/16,1024/16,640/16,1024/16,640/16,0/16) exten => 666,n,Wait(666) exten => 666,n,Hangup
Playtonesのコツ
- StopPlaytonesが出てくるまで流しっぱなし
- Playtonesの行を処理が始まったら、すぐに次の行を見に行くので注意(音が鳴り終わってから次に進むわけでは無い)
Wait文などを挟むとベター - Hz数は正の整数であること
- 和音は同時2音のみ。(ファミコンの音を再現するのは無理)
失敗例
音が流れる前にStopPlaytones処理が始まってしまう例
exten => _3,1,Answer exten => _3,n,Wait(1) exten => _3,n,Playtones(400) exten => _3,n,StopPlaytones exten => _3,n,Hangup
成功例
400Hzの音が2秒鳴り、停止するサンプル
Playtonesで流す音が2秒あるなら、Waitにて2秒追加すること。
exten => _3,1,Answer exten => _3,n,Wait(1) exten => _3,n,Playtones(400) exten => _3,n,Wait(2) ←ここがポイント exten => _3,n,StopPlaytones exten => _3,n,Hangup