差分

移動先: 案内検索

Asterisk サンプル設定ファイル extensions.conf

6,206 バイト追加, 2022年11月28日 (月) 12:33
変更を反映させる方法とCLIからの確認・テストを記載。
更なる例は[[Extension道場]]に記載があります。
 
==context==
extenの設定で一番わかりにくいのがこの、コンテキストだと思います。コンテキストとは<nowiki>' [ ] '</nowiki>で括られたセクションのことをいい、指定されたブロックをそのコンテキストと呼びます。
アプリケーション
:Asteriskのアプリケーション・コマンドを書きます
<br:この部分にはアプリケーション・コマンドだけでなくファンクションと呼ばれるもの、あるいはPBX組み込み機能を記述することができます。:アプリケーション・コマンドはモジュールのプレフィクスが app_ のものです。:ファンクションはモジュールプレフィクスが func_ のものです。 ==same==前項extenでは、以降の例で見られるように「番号」を毎行書いていく必要があります。これは面倒であり、Asterisk 1.6.2以降では、sameを使うと省略できます。 例えば、4312番にダイヤルしたときの動作を次のように書いているとします。 exten =>4312,1,NoOp() exten => 4312,n,Dial(ダイヤル先) exten => 4312,n,Hangup sameを使うとこのように書けます。4312は最初のexten行のみに記載し、2行目以降はsameを使い、省略します。 exten => 4312,1,NoOp() same => n,Dial(ダイヤル先) same => n,Hangup 4312番への動作を書き終わり、別の番号への動作を書くときは、また「exten => 番号,1,処理」から書き始めます。 
==generalセクション==
その名の通り全般のオプション指定を行います。
ここで変数の参照を行っています。内線番号は変数、SPEAKINGCLOCKに指定された番号になります。値を参照するには'''${ }'''で括ります。<br>
プライオリティは本来、1,2,と順番に書くのですがAsterisk 1.2からオートインクリメントが可能になり'''n'''を記述しておくと自動的に+1するようになりました。<br>
===一斉呼び出し===
; Ring 201-204 phones
exten => 200,1,Dial(SIP/201&SIP/202&SIP/203&SIP/204&IAX2/201&IAX2/202&IAX2/203&IAX2/204)
exten => 200,n,Hangup
この例はSIP/201またはIAX/201~SIP/204またはIAX/204を一斉に呼び出す方法を示しています。Dialコマンドでは&で区切り複数の相手を指定することで、一斉に呼び出すことができます。<br>
===個別呼び出し===
; Local SIP/IAX phones 201-209
exten => _20Z,1,GotoIf($["${USEVOICEMAIL}"="YES"]?use-vm)
exten => _20Z,n,Dial(SIP/${EXTEN}&IAX2/${EXTEN},,tT)
exten => _20Z,n,Hangup
exten => _20Z,n(use-vm),Dial(SIP/${EXTEN}&IAX2/${EXTEN},60,tTwW)
exten => _20Z,n,NoOp(${DIALSTATUS})
exten => _20Z,n,GotoIf($["${DIALSTATUS}"="BUSY"]?vm-rec)
exten => _20Z,n,GotoIf($["${DIALSTATUS}"="NOANSWER"]?vm-rec)
exten => _20Z,n,GotoIf($["${DIALSTATUS}"="CHANUNAVAIL"]?vm-rec)
exten => _20Z,n,Hangup
exten => _20Z,n(vm-rec),Answer()
exten => _20Z,n,Wait(1)
exten => _20Z,n,Voicemail(${EXTEN})
exten => _20Z,n,Hangup
まずextenの部分では_20Zのように指定してありますが、これはパターンマッチを意味します。Zは1~9までの数字に合致します。これにより個々の電話機を呼び出すextenをひとつづつ記述するのではなく、これだけで一括記述できるわけです。<br>
個別の内線番号を呼び出す設定ですが、ボイスメール使用可否の判断のため少し複雑になっています。<br>
n(use-vm) は'''ラベル'''です。Goto命令でジャンプさせる場合に、プライオリティの数字を指定するのではなくラベルを指定することができます。<br>
DIALSTATUSなどの変数は、各アプリケーションコマンドがセットします。例えばDIALSTATUSはDial()がセットし、ダイヤルした結果をその変数に入れます。<br>
 
===アプリケーション実行===
基本的に、Asteriskの機能はアプリケーションコマンドで実装されています。Dialもそのひとつですが、機能を「まとめて」ひとつのアプリケーションとなっている例としてはVoicemailやMeetMeがあります。
exten => 299,1,Answer()
exten => 299,n,Wait(1)
exten => 299,n,VoicemailMain(${CALLERID(num)},s)
exten => 299,n,Hangup
例えばこの部分はボイスメールのメニュー、再生などを行うVoicemailMainというアプリケーションを実行しています。この際の引数として発信者番号(<nowiki>${CALLERID(num)}</nowiki>)を使い、パスワード認証を行わない(s)という呼び出し方になっています。アプリケーションの引数とその意味を簡単に確認するには、CLIから core show application voicemailmainなどのようにアプリケーション名を指定します。
*CLI> core show application voicemailmain
-= Info about application 'VoiceMailMain' =-
[Synopsis]
Check Voicemail messages
[Description]
VoiceMailMain([mailbox][@context][,options]): This application allows the
calling party to check voicemail messages. A specific mailbox, and optional
corresponding context, may be specified. If a mailbox is not provided, the
calling party will be prompted to enter one. If a context is not specified,
the 'default' context will be used.
Options:
p - Consider the mailbox parameter as a prefix to the mailbox that
is entered by the caller.
g(#) - Use the specified amount of gain when recording a voicemail
message. The units are whole-number decibels (dB).
s - Skip checking the passcode for the mailbox.
a(#) - Skip folder prompt and go directly to folder specified.
Defaults to INBOX
VoicemailやMeetMeそれ自体の設定は、それぞれのアプリケーション用の設定ファイルで行います。voicemail.confやmeetme.confがそれです。
 
==反映とテスト==
extensions.confを変更したら、[[Asterisk CLI]]から次のコマンドを実行すると反映されます。
dialplan reload
 
現在読み込まれているextensions.confの内容(以下ダイヤルプランと言います)を見るには、Asterisk CLIで次のコマンドを実行します。
dialplan show
 
パターンマッチの内容のテストとして、例えばusersコンテキストから6421にダイヤルした場合の動作を表示するには、次のコマンドを実行します。
dialplan show 6421@users
この場合、真っ先にマッチするだろうパターン以外のダイヤルプランも表示されます。<br>
Hangup()やBusy()アプリケーションによって発信が終了されない場合、同じコンテキスト内の、真っ先にマッチするだろうパターンでないダイヤルプランの、探すべき優先度の行にも移っていく仕様なのでご注意ください。
 
参考:https://wiki.asterisk.org/wiki/display/AST/Pattern+Matching

案内メニュー

VoIp-Info.jp

HP Directplus -HP公式オンラインストア-