匿名

差分

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

2,072 バイト追加, 2022年11月28日 (月) 12:33
変更を反映させる方法とCLIからの確認・テストを記載。
更なる例は[[Extension道場]]に記載があります。
 
==context==
extenの設定で一番わかりにくいのがこの、コンテキストだと思います。コンテキストとは<nowiki>' [ ] '</nowiki>で括られたセクションのことをいい、指定されたブロックをそのコンテキストと呼びます。
:アプリケーション・コマンドはモジュールのプレフィクスが 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セクション==
まずextenの部分では_20Zのように指定してありますが、これはパターンマッチを意味します。Zは1~9までの数字に合致します。これにより個々の電話機を呼び出すextenをひとつづつ記述するのではなく、これだけで一括記述できるわけです。<br>
個別の内線番号を呼び出す設定ですが、ボイスメール使用可否の判断のため少し複雑になっています。<br>
n(use-vm) は'''ラベル'''です。Goto命令でジャンプさせる場合に、プライオリティの数字を指定するのではなくラベルを師弟することができます。です。Goto命令でジャンプさせる場合に、プライオリティの数字を指定するのではなくラベルを指定することができます。<br>
DIALSTATUSなどの変数は、各アプリケーションコマンドがセットします。例えばDIALSTATUSはDial()がセットし、ダイヤルした結果をその変数に入れます。<br>
 
===アプリケーション実行===
基本的に、Asteriskの機能はアプリケーションコマンドで実装されています。Dialもそのひとつですが、機能を「まとめて」ひとつのアプリケーションとなっている例としてはVoicemailやMeetMeがあります。
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