差分

移動先: 案内検索

Asterisk 20 サンプル設定ファイル 解説

1,592 バイト追加, 2024年7月24日 (水)
WIP
ここです。プライオリティの個所にカッコ書きで書かれているのはラベルで同一context、exten内であればそのラベルが設定されているpriorityにジャンプします。コンテキストをまたいでジャンプする場合には先ほどのGotoのようにcontext,exten,prioritのかたちでジャンプさせます。
<br>
これでようやく相手先(着信側)にダイヤルさせるようになるのですが、内線を抽象化しているため、内線番号からエンドポイントに変換しなくてはなりません。
;内線番号に対応するエンドポイントをDBから取得
exten => _Z.,n,Set(TARGET=${DB(MYPBX/EXT/${EXTEN})})
内線番号とエンドポイントの紐付けはAstDBで行っています。DBのファミリ MYPBX/EXTのキーが内線番号、値がエンドポイントです。DBファンクションでエンドポイント名を求めます。<br>
;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)
エンドポイントを取得した後はPJSIPの"contacts"を取得します。これはPJSIPでは同一エンドポイントに複数のエンティティ、つまりは電話機がレジストすることができるためで、親子電話のように複数の電話機をひとつのエンドポイントとして扱うことができるためです。エンドポイントがレジストしてきていない場合にはこの結果は空になります。<br>
これでようやくダイヤルすることができます。
exten => _Z.,n,Dial(${TARGET})
内線の処理は以上です。
=WIP=

案内メニュー

VoIp-Info.jp

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