web-dev-qa-db-ja.com

アスタリスクは、着信時にジュークボックスにミュートコマンドを送信します

老朽化したPBXシステムから引き継ぐために、Asterisk Nowサーバーを試しています。「便利」機能の1つは、オフィスのジュークボックスの音量を一時停止または下げる機能です。着信が検出されました。

現在、mpdを使用してスピーカーから音楽を再生し、mpcクライアントで制御できるLinuxジュークボックスを実行しています。これを実現するには、次のコマンドを手動で発行できます。

mpcボリューム20

アスタリスクを取得してこのコマンドを実行する方法や、特定の内線番号に電話がかかってきたときにフックできるアクションを知っている人はいますか?

2
Jona

なんて斬新なアイデアでしょう。私はそれをしていませんが、私はあなたを正しい道に進ませることができると思います。お使いのシステムが私のものと似ている場合は、例として役立つ次のファイルがあります。

デジタルファックスの場合:

/etc/asterisk/extensions.conf

/var/lib/asterisk/bin/fax-process.pl

音声メッセージが添付された電子メールの場合:

/etc/asterisk/extensions_additional.conf

/var/lib/asterisk/bin/audio-email.pl

オーディオの添付ファイルを処理するextensions_additional.confファイルの部分を見て、2番目のアクションに焦点を当てます。

[app-dictate-send]
include => app-dictate-send-custom
exten => *35,1,Answer
exten => *35,n,Macro(user-callerid,)
exten => *35,n,Noop(CallerID is ${AMPUSER})
exten => *35,n,Set(DICTENABLED=${DB(AMPUSER/${AMPUSER}/dictate/enabled)})
exten => *35,n,GotoIf($[$["x${DICTENABLED}"="x"]|$["x${DICTENABLED}"="xdisabled"]]?nodict:dictok)
exten => *35,n(nodict),Playback(feature-not-avail-line)
exten => *35,n,Hangup
exten => *35,n(dictok),Read(DICTFILE,enter-filename-short,,,,)
exten => *35,n,Set(DICTEMAIL=${DB(AMPUSER/${AMPUSER}/dictate/email)})
exten => *35,n,Set(DICTFMT=${DB(AMPUSER/${AMPUSER}/dictate/format)})
exten => *35,n,Set(NAME=${DB(AMPUSER/${AMPUSER}/cidname)})
exten => *35,n,Playback(dictation-being-processed)
exten => *35,n,System(/var/lib/asterisk/bin/audio-email.pl --file /var/lib/asterisk/sounds/dictate/${AMPUSER}/${DICTFILE}.raw --attachment dict-${DICTFILE} --format ${DICTFMT} --to ${DICTEMAIL} --subject "Dictation from ${NAME} Attached")
exten => *35,n,Playback(dictation-sent)
exten => *35,n,Macro(hangupcall,)

; end of [app-dictate-send]

/var/lib/asterisk/bin/audio-email.plが参照されていることがわかります。この関数は1行ずつ実行されるため、誰かがハングアップした場合(つまり、8行目)、. plファイルが起動されることはありません。ただし、この関数が機能する前に、次のように含める必要があります。

include => app-dictate-send

ここでは.plファイルを印刷しません。手動で実行したときにオフィスのジュークボックスの音量を下げるplファイルを作成できる場合は、着信時にplを起動するようにAsteriskを確実に設定できます。

/var/lib/asterisk/bin/fax-process.plを見て、アスタリスクがどのように電子メールを送信するかを確認してください。

ここで、上記で参照した最初のファイル/etc/asterisk/extensions.confを調整することをお勧めします。このファイルは、電話が最初にかかってきたときに何をすべきかをAsteriskに指示します。これについては、ファイルの上部近くを見てください。

[from-did-direct]
include => ext-findmefollow
include => ext-local

「turn_down_music.pl」のようなものを作成して、[app-lower-music]のような関数に含めることができます。次に、それを次のものに含めます。

[from-did-direct]
include => app-lower-music
include => ext-findmefollow
include => ext-local

[ext-local]ファイルはextensions_additional.confファイルで定義されていますが、extensions.confファイルで参照されていることに注意してください。独自のカスタム拡張ファイルを作成し、次のようにextensions.confファイルで参照できます。

#include extensions_custom.conf
#include extensions_music.conf

また、#は行をコメントアウトしないことに注意してください。代わりに;コメントが並んでいます。

私はこれらの2冊の本から多くを得ました:

幸運を!

1
Patrick R

このAsteriskNowがElastixに類似している場合は、extensions_custom.confに次のような新しいセクションを定義する必要があります。

[from-pstn-custom]
exten = 0123456,n,System(/var/lib/asterisk/bin/whatever-command.pl)

最初の番号は着信DID、「n」はコマンドの実行順序です(from-pstn-customが先頭に含まれているため、これは通常、リストの先頭に移動します)。これはAGIスクリプトでも解決できますが、これはやり過ぎかもしれません。

0
Icapan