FreePBX:5:トランク:ひかり電話(ホーム):内線
ひかり電話のホームゲートウェイ(HGW)はそれ自体が一種の交換機なので、内線を持っています。内線番号はHGW側でも設定可能なため、本来は番号をうまく設定すればAsteriskのシステムにもうまく組み込めるのですが、HGW、FreePBX双方の設定を合わせないと面倒なことになるので、HGW側はデフォルトのままで使う方法を解説します。
なお、この方法を使うには、ひかり電話ホームからDIDで着信させる必要があるのでFreePBX:5:トランク:ひかり電話(ホーム)を見て、DID着信の設定を行っておいてください。
目次
HGWの内線
HGWの内線は一般的には次のように設定されているはずです(デフォルト)
内線 1 -- アナログポート1 2 -- アナログポート2 3 -- IP電話機1 4 -- IP電話機2 5 -- IP電話機3 6 -- IP電話機4 7 -- IP電話機5
というわけでHGWの『中』の内線番号は数字1桁で1~7ということになります。例えばアナログポートの1からIP電話機の1にダイヤルするには"3"とダイヤルするだけです。この時のDIDは sip:3@hgw-ipaddre で、CIDは sip:1@hgw-ipaddr で着信してきます。これが前提条件になります。
作戦
1桁内線を使うとトラブルの元になるのはわかりきっているので、これを変換することにします。
FreePBX内での扱いを簡単にするために『ひかり電話の内線にダイヤルするには"999"をプレフィクスにする』という作戦を使うことにしましょう。
カスタムextenを変更する
extensions_custom.confを以下のように修正します。
[hgw-custom] exten => s,1,Set(DESTNUM=${SIP_HEADER(To)}) exten => s,n,NoOp(${DESTNUM}) exten => s,n,GotoIf($["${DESTNUM:1:1}" = "1"]?inter) exten => s,n,GotoIf($["${DESTNUM:1:1}" = "2"]?inter) exten => s,n,GotoIf($["${DESTNUM:1:1}" = "3"]?inter) exten => s,n,GotoIf($["${DESTNUM:1:1}" = "4"]?inter) exten => s,n,GotoIf($["${DESTNUM:1:1}" = "5"]?inter) exten => s,n,GotoIf($["${DESTNUM:1:1}" = "6"]?inter) exten => s,n,GotoIf($["${DESTNUM:1:1}" = "7"]?inter) exten => s,n,Set(DESTNUM=${DESTNUM:1:10}) exten => s,n,Goto(from-trunk,${DESTNUM},1) exten => s,n(inter),Set(DESTNUM=999${DESTNUM:1:1}) exten => s,n,Set(CALLERID(num)=999${CALLERID(num)}) exten => s,n,Goto(from-trunk,${DESTNUM},1)
着信のDIDとして先頭に999をつけて9991や9993のようにします。またCIDの頭にも999を付けて、発信元が9991や9993であるように変換しておきます。
着信経路
FreePBXのGUIからInbound Routeで、ダイヤルイン番号(DID)を9993などで作ります。これは、FreePBXのトランクとして、ひかり電話に接続した際の内線番号の頭に999を付けたものにします。
着信させたらどの内線を鳴らすか、あるいはリンググループ等に着信させるかなどを設定するだけです。
発信経路
ちょっとしたトリックが必要です。
Outbound Routesで発信経路を作りますが、この時の設定を以下のようにします。
Route CIDをAsteriskがぶら下がっている1桁の内線番号(3など)にする Override Extensionをチェック
Dial Patterns...
Prefix 999 パターンを X だけ
Trun Sequenceは当然ながら、トランクとして設定したひかり電話の経路にします。
これでFreePBX側からは 999 に続けてHGWの内線番号をダイヤルするとダイヤルでき、また、HGWの内線からFreePBXを呼び出すこともできるようになります。