2017-06-26

Asterisk入門 -- その2

extensions.conf について


前回の「Asterisk入門 -- その1」では sip.conf について記述しました。
今回は、Asterisk の実際の振る舞い(発着信の定義など)について記述したいと思います。

extensions.conf もまた、[general] セクションから始まります。

[general]                   ; 全般的なことを定義します
writeprotect=no        ; CLIによるextenの変更の許可・不許可
                                ; CLIは、Asteriskのコマンドモードインターフェース
[globals]                   ; グローバル(セクション越えて有効な)変数を定義します
MYNUMBER=0312345678    ; 自宅ひかり電話の番号(03-1234-5678)
;
[default]                   ; デフォルトセクション
exten => 200,1,Dial(SIP/201&SIP/202,30) ; ひかり電話着信時、子機の
                               ; 201と202を30秒間、呼び出します
; 「200」は、sip.conf でひかり電話をレジストしたときにひかり電話に与えた
; 内線番号です。これはエクステンション番号といい、その後ろの「1」や「 n」
; はエクステンションの順序をしめす番号です。順に、1, 2, 3, ・・・のように
; 記述する代わりに、2 以降は「n」で表現できます。exten を変更するとき
; など、「n」と書いた方が順序番号の変更が少なくて済みます
exten => 200,n,Hangup ; 通話終了でオンフックします。
;
exten => 201,1,Dial(SIP/201,30) ; 201がダイヤルされたら、201を呼び出します
exten => 201,n,Hangup
;
exten => 202,1,Dial(SIP/202,30)
exten => 202,n,Hangup
;
exten => 99,1,Dial(SIP/201&SIP/202,30) ; 99がダイヤルされたら201と202を
                                ; 呼び出します
exten => 99,n,Hangup
;
; 発信の定義
exten => _0ZX.,1,Set(${CALLERID(num)=${MYNUMBER}) ; 発信番号セット
; 発信番号は、実際には外線発信時はひかり電話の番号で強制的に置き換えられる
; ようです。なりすましの防止のためでしょう。
exten => _0ZX.,n,Dial(SIP/${EXTEN}@hikari-denwa)
exten => _0ZX.,n,Hangup

このときの「_0ZX.」はパターンマッチングといい、「0」から始まる数字で、「Z」は 1〜9 のどの数字でもよく(許可)、「X」は 0〜9 のどの数字でもよいことを表し、かつそのあとの「.」で「X」は何桁でもいいことを表しています。
日本の一般電話番号と携帯電話番号を含む数字を許可しています。
3桁番号(104や117など)は、次のように記述します。

  exten => _1XX,n,Dial(SIP/${EXTEN}@hikari-denwa)

「X」のうしろに「.」はありませんから、3桁の数字のみ許可、という意味です。
「${EXTEN}」はエクステンション番号を示します。
例えば、0412345678 をダイヤルすると、「_0ZX.」にマッチしますから、許可されて、発信ができることになります。このときに「${EXTEN}」は、 0412345678 と記述したことと同じ扱いになるのです。

つまり、ひかり電話の SIP サーバーである、hikari-denwa から0412345678 を呼び出す、という意味になります。

お気づきでしょうけど、パターンマッチングはいろいろ細かく設定すれば、マッチングしない番号ははねられます(無視されます)ので、例えば、00発信(国際通話)を制限したり、許可したりもできるわけです。

extensions.conf は書きれないほど、ある意味複雑です。

これは、ネットなどで、事例を学びながら、あるいは高橋 隆雄氏が書かれた書籍などで理解をしていただきたいと思います。1冊の分厚い本ができるほどの内容があります。

入門編としては、とりあえず使ってみる、レベルの記述に限定しました。

「続き」は、クライアント(子機)になるスマホへのソフトフォンの設定をしてみます。

続く



0 件のコメント: