Asterisk 20 サンプル設定ファイル 解説のソースを表示
←
Asterisk 20 サンプル設定ファイル 解説
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます: メール確認された利用者、
管理者
。
このページのソースの閲覧やコピーができます。
Asterisk 20以降用のサンプル設定ファイルの内容を解説します。Asteriskの勉強用に読んでください。<br> <br> =extensions.conf= ==globals== ; ; グローバル設定(変数類) ; [globals] ;外線発信時の自局番号 MYNUMBER=0312345678 ;外線発信時のトランク名 MYTRUNK=outbound-trunk ;PPIセット時のドメイン PPIDOMAIN=ntt-east.ne.jp ;外線着信させる内線番号(カンマ区切り) RINGPHONES=201,202 最初のセクション "globals" ではグローバル変数を定義します。Asteriskの変数は明示的にグローバルと宣言されない限り、チャネル依存です。チャネルは呼が発生してから破棄されるまでAsteriskの内部に存在するのでチャネル変数はその呼内だけの "ローカル" となります。言い換えると、ある通話内で使っているローカル変数は別な通話から参照することはできません。<br> これに対してグローバル変数はAsterisk全体で設定/参照することができます。<br> グローバル変数を予め定義しておくには "globals" というセクション(コンテキスト)に書いておきます。<br> ==default== defaultコンテキストはみなさん無意識にdefaultを使っていますが、defaultである必要はなく、エンドポイントcontext=で定義するものです。これはそのエンドポイントが発信等を行う際にどのコンテキストで処理するかを指定します。つまりエンドポイントでcontext=defaultと設定されていると発信処理はこのコンテキストを使用するということになります。<br> ===内線処理部=== [default] ; ;内線処理(1~9から始まる番号) ; ;内線はDBで抽象化されているので内線番号はDBに設定する ;例: database put MYPBX/EXT 201 phone1 ;この設定では内線201はエンドポイントphone1となる exten => _Z.,1,NoOp(内線) ;SIPメッセージングの場合の処理 exten => _X.,n,Set(MTARGET=${EXTEN}) exten => _X.,n,GotoIf($["${CHANNEL(name)}"="Message/ast_msg_queue"]?sipmsg,s,1) ;自局情報を取得してセット exten => _Z.,n,Gosub(sub-whoami,s,1) ;内線番号が割り当たってなければ発信させない exten => _Z.,n,GotoIf($["${MY_EXTEN}"=""]?nogo) ;内線番号に対応するエンドポイントをDBから取得 exten => _Z.,n,Set(TARGET=${DB(MYPBX/EXT/${EXTEN})}) ;PJSIPのdial contactsに変換 ;注意:ダイヤル先がREGISTERされていない場合でもCONTACTSは空になる ;(pjsip show contactsの結果を参照) exten => _Z.,n,NoOp(${PJSIP_DIAL_CONTACTS(${TARGET})}) exten => _Z.,n,Set(TARGET=${PJSIP_DIAL_CONTACTS(${TARGET})}) ;ターゲットが空(Dial先のエンドポイントがない)なら終了 exten => _Z.,n,GotoIf($["${TARGET}"=""]?nogo) ;Dialを実行 exten => _Z.,n,Dial(${TARGET}) exten => _Z.,n(nogo),Hangup まず内線間の通話を行うための処理が書かれています。このダイヤルプランでは『内線はゼロ以外の数字から始まる』番号と定義しています。 exten => _Z. おっといけません。extenの書き方を説明していませんでした。extenはAsteriskにおけるダイヤルプランそのもののことでエンドポイント、つまりは電話機等からダイヤルされた番号をどう処理するかを書きます。書き方にはいくつかあるのですが筆者はこの書き方が好きです。 exten => 123,1,NoOp(123) exten => 123,n,Dial(PJSIP/123) このような書き方をします。123の部分はexten、sまたはnの部分はpriority、NoOpやDialが書かれている部分にはAsteriskのアプリケーションあるはファンクションと呼ばれる処理を書きます。一般的な書式は以下のようになります。 exten => exten,priority,app extenは同じ処理は同じextenを書きます。priorityは必ず"1"から始めなくてはいけません。そしてその次のpriorityは2,3,4...とひとつづつ増やしますが、"n"を書くと勝手に前のpriority +1と解釈されます。つまり先ほどの例は exten => 123,1,NoOp(123) exten => 123,2,Dial(PJSIP/123) と同じことになっていたわけです。<br> さてそれでは実際のサンプル設定ファイルに戻りましょう。extenが何やら呪文めいています。 exten => _Z.1,NoOp priorityは理解してもらえたと思います。extenが謎ですね。これはパターンマッチといって番号の規則に一致するようにextenを書いています。先頭のアンダーバー(_)はパターンマッチを使う、Zは1~9の数字、ドット(.)はそれに続く任意のものという意味です。つまりこのextenは111であれ123であれ2001であれ201であっても一致するパターンということになります。ただし0123にはマッチしません。<br> 内線番号として1~9で始まる番号はすべて内線として扱うという意味になります。 =WIP=
Asterisk 20 サンプル設定ファイル 解説
に戻る。
ナビゲーション メニュー
個人用ツール
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
ヘルプ
広告
サイトコンテンツ
コミュニティ
Asterisk
Asterisk 18
Asterisk 20
Asterisk 22
IP電話機
購入情報
導入事例
回線接続
ベンダー
ひかり電話
セキュリティ
イベント情報
スペシャル
Asterisk pjsip
ABS
黒電話 ハック
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報