PIAST ページング

2016年3月10日 (木) 00:26時点におけるTakahashi (トーク | 投稿記録)による版 (おまけ=)


PIASTをページング端末として使用する場合の例

目次

必要条件

ALSAドライバ(raspbianデフォルトで入っているはず)
chan_alsa+chan_consoleでコンパイルされたAsterisk
PIAST アンプ
必要に応じて
PIAST リレー

設定例

alsa.conf

[general]
autoanswer=yes
context=local
extension=s
output_device=default:0

※何かのはずみで'default'が見えなくなることがあります。その場合には'aplay -L'でデバイスを確認してみてください。"sysdefault"がある場合にはoutput_device=sysdefault:0に変えてみてください。

どうもデスクトップを起動した後にこうなるような気がします。理由を知っている人がいたら教えてください。
noaudiocapture=true

modules.conf

load => chan_alsa.so
noload => chan_oss.so

明示的にalsaをロードする場合上の例のようにchan_alsaをロードし、can_ossをロードしない。
alsamixerで音量を調整する必要があるので、必要に応じて音量調整を行うこと。

記述例

/home/piastに各種スクリプトが置いてあるとします。
extensions.confに以下のように書きます。コンテキストは分けておいた方が後々便利です。

[paging]

exten => s,1,NoOp(Paging Start)
exten => s,n,Dial(Console/0,,A(beep))

この記述だけでビープ音の後にページングする機能が実装できます。再生するファイルを他のものにすれば別な音を再生してからページングできます。
ページング終了後にもビープやチャイム等の音を鳴らしたい場合にはこれだけではできないので、ちょっとしたワザを使います。

[paging]

exten => s,1,NoOp(Paging Start)
exten => s,n,Dial(Console/0,,A(beep))

;ハングアップ後に音声を流す
exten => h,1,NoOp(Paging Hangup)
exten => h,n,System(asterisk -rx 'channel originate Console/0 application Playback hello-world')

チャネルが切断するとhエクステンションに飛ぶのを利用し、切断後にConsoleに対して音声ファイルを流します。
アンプをリレーで制御したい場合には以下の例のようにします。

[paging]

exten => s,1,NoOp(Paging Start)
exten => s,n,System(/home/piast/relayon.sh)
exten => s,n,Dial(Console/0,,A(beep))

;ハングアップ後に音声を流す
exten => h,1,NoOp(Paging Hangup)
exten => h,n,System(asterisk -rx 'channel originate Console/0 application Playback hello-world')
exten => h,n,System(/home/piast/relayoff.sh)

内線からダイヤルしてページングさせたい場合には

exten => 9999,1,Goto(paging,s,1)

のように書くだけです。

おまけ

ページング開始時、終了時にチャイムげな音を鳴らす方法。ただしサイン波なのであまりかっこよくはありません。

;PIASTページング用
[paging]

;リレーをONしてページング実行、ページング前にチャイム(up)を鳴らす
exten => s,1,NoOp(Paging Start)
;exten => s,n,System(/home/piast/relayon.sh)
exten => s,n,Dial(Console/0,,M(chimeup))

;ハングアップ後にチャイム(down)を鳴らす
exten => h,1,NoOp(Paging Hangup)
exten => h,n,System(asterisk -rx 'channel originate Console/0 extension s@macro-chimedown')
;exten => h,n,System(/home/piast/relayoff.sh)

[macro-chimeup]
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Playtones(!523/500,!659/500,!783/500,!1046/500)
exten => s,n,Wait(3)

[macro-chimedown]
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Playtones(!1046/500,!783/500,!659/500,!523/500)
exten => s,n,Wait(3)