FreePBX:10:トランク:ひかり電話(ホーム)

2015年10月28日 (水) 12:40時点におけるCADoo (トーク | 投稿記録)による版 (発番選択したい場合)

ひかり電話のホームゲートウェイ(HGW)をFreePBXのトランク(FXO)として使用します。ビジネス/オフィス/直収のページではありません。

目次

方針

Chan_SIPでは、ひかり電話のゲートウェイ(ルータ)の認証がAsteriskではうまくできないためにAsterisk本体用のパッチを用意していました。ところがFreePBXの場合にはAsterisk自体にパッチをあてることができないので、別なアプローチをとっていました。-> FreePBX:5:トランク:ひかり電話(ホーム)

FreePBX Distro 6からはChan_PJSIPが使えるため、Asterisk+PJSIPを使いひかり電話HGWへtrunkするのと同様の設定をFreePBXで行います。
Asterisk+PJSIPでのひかり電話HGWへのtrunk方法 -> Pjsip_ひかり電話HGW

ひかり電話ルータ(HGW)の設定

以下の例はRT-200NEのものですが、最近のルータでも同様の設定があるはずです。電話設定から内線設定を開き、FreePBXで使いたい内線番号(HGWの内線番号)を指定して設定します。

Fpx018.jpg

内線番号 : 通常はHGW内の内線番号です。ここでは例として3と想定します。
ニックネーム : デフォルトのままでかまいません。
端末属性 : 音声専用端末に指定しておきます。
MACアドレス : セキュリティを向上させたいならば、FreePBXをインストールしているマシンのMACアドレスを指定します。XX:XX:XX:XX:XX:XX の形式です。指定しなくても、trunkできます。
ダイジェスト認証 : 「行う」にして下記のユーザIDとパスワードを設定しておいてください。
ユーザID : この端末のユーザIDですが、ここでは例として0003と想定します。
パスワード : この端末のパスワードですが、ここでは例としてpass1234と想定します。


FreePBX側でDIDによって着信ルートを変えない場合(キャッチオールさせる)場合には着信番号の設定はここで行います。
着信番号制御を使う場合には複数の番号をここで指定します。この場合にはダイヤルインの制御はFreePBX側で行えます。

FreePBXの設定

Trunk

以下は、指定の設定値以外は、デフォルト値でかまいません。

  • メニューバー -> 接続 -> トランク

+トランクを追加 -> +SIP(chan_pjsip)トランクを追加 で新しいトランクを設定します。
General タブの設定項目は以下を指定します。

トランク名 : トランク名を指定します(例: hikaridenwa)
アウトバンドCID : 発信用の通知番号(ひかり電話の自分の番号)を指定します。
最大チャネル数 : 1チャンネル契約なら1、2チャンネル契約なら2を指定します。

Dialed Number Manipulation Rulesタブの設定項目はここでは何も指定しません。
pjsip設定タブの中には3つのタブがあります。

General タブの設定項目は以下を指定します。
ユーザー名 : 0003(HGWのユーザID)
Secret : pass1234(HGWのパスワード)
SIP Server : 192.168.1.1(HGWのIPアドレス)
コンテキスト : from-pstn
Advanced タブの設定項目は以下を指定します。
DTMF Mode : inband
クライアントURI : sip:3@192.168.1.1(sip:HGWの内線の1桁番号@HGWのIPアドレス)
コーデック タブの設定項目は以下を指定します。
ulaw のみチェックを入れ後は外す。

着信設定

単純に着信させたい場合

  • メニューバー -> 接続 -> インバウンドルート

Add Incoming Routeで新しい着信ルートを設定します。FreePBXでは発信と着信は"別な"設定として定義されます。
とりあえず以下の項目だけ設定できれば着信するようになります。
(注意:事前に内線電話機の登録と設定を行っておいてください-> FreePBX:内線設定)

説明 : この経路の名前を指定します。hikari-inなど適当な名前を指定しておきます。
ダイヤルイン番号 : (要注意箇所) 通常はここには着信する番号(DID)を指定するのですが、ひかり電話ホームのルータの場合には着番号は落ちてこず、sエクステンションに落ちてくるため、ここにはsを指定してください。

注:FreePBX 12以降と思われますが全てのDIDを受け付ける場合には's'を指定せず空白にしておけば全てキャッチします。
あとはページの下の方にある宛先をセットを設定します。ここでは左のプルダウンから内線を選択し、着信させたい内線番号を右のプルダウンから選んでおいてください。
以上で、ひかり電話に着信があると内線電話機が鳴動するようになります。
この方法は一番簡単な方法で、カスタムのextenを書く必要もありませんが、もし他にも着番(DID)なしで着信してくるような回線を併用していると、着信経路が明確ではなくなってしまうため着信の経路制御がうまくいかなくなります。

DID制御(着番での宛先制御)

ひかり電話のホームの場合、ルータからはDIDは渡されず登録している内線に紐付けられている番号で着信するだけです。このため、ひかり電話のHGWを使って着番を制御を行うには少しトリックが必要です。
上記の単なる着信の場合と同じに設定すると大混乱を招きますので、併用してはいけません!

1.まずカスタムのコンテキストを作成します。
このカスタムコンテキストを通ると、DIDとしてSIPヘッダから取得した宛先の着番に変換されます。

  • メニューバー -> アドミン -> Config Edit

Asterisk Custom Configuration Files -> extensions_custom.conf
以下を記入し、保存をクリック

[from-pstn-custom]
exten => s,1,Set(DESTNUM=${PJSIP_HEADER(read,To)})
exten => s,n,NoOp(${DESTNUM})
exten => s,n,Set(DESTNUM=${DESTNUM:1:10})
exten => s,n,Goto(from-pstn,${DESTNUM},1)

電話番号の桁数が異なる場合には 1:10 の部分を調整してください。1文字目から10文字の意味です。

2.DIDに入っている着番に従いルートを振り分ける

  • メニューバー -> 接続 -> インバウンドルート

Add Incoming Routeで新しい着信ルートを設定します。FreePBXでは発信と着信は"別な"設定として定義されます。
とりあえず以下の項目だけ設定できれば着信するようになります。
(注意:事前に内線電話機の登録と設定を行っておいてください-> FreePBX:内線設定)

説明 : この経路の名前を指定します。hikari-inなど適当な名前を指定しておきます。
ダイヤルイン番号 : 自分の着信番号、0312345678 のように指定するだけです。

もし以前にs着信(キャッチオール)の経路を作成していた場合には必ず削除しておいてください。ダイヤルインで落ちてくる着番の数だけ設定が必要です。

発信設定

単純に発信させたい場合

  • メニューバー -> 接続 -> アウトバンドルート

Add Routeで発信を定義します。以下の項目を設定します。なおここでは外線は0でダイヤルされるとそのまま外線発信されるものとします(プレフィクスなし0xxxxの番号は外線とみなす)。
経路設定の設定項目は以下を指定します。

経路名 : hikaridenwa とか適当な名前を設定します。
ルート CID : 発信番号を選択するが、代表番号以外でもHGWで上書きされる
内線を上書き : はいを選択する
一致したルートのトランクシーケンス : この経路の行き先、つまり、ひかり電話のトランクを指定します。

Dial Patternsの設定項目は以下を指定します。 この項目は発信する際の番号パターンにより、経路を指定するためのものです。

一致パターン : ここでは0で始まり次が番号であれば外線(ひかり電話)に出したいので、以下の画面のように0X.を指定してあります。

Dial Patterns.jpg

発番選択したい場合

1.まずカスタムマクロmacro-dialout-trunk-predial-hookを有効にします。
PREDIAL_HOOK_RETが"BYPASS"以外の値だと、macro-dialout-trunk-predial-hookが有効になります。

  • メニューバー -> アドミン -> Config Edit

Asterisk Custom Configuration Files -> extensions_custom.conf
以下を記入し、保存をクリック

[macro-dialout-trunk-custom]
exten => s,1,Set(PREDIAL_HOOK_RET=)

2.macro-dialout-trunk-predial-hookでSIPヘッダーを追加する。
ntt-****の値は、NTT西日本の場合ntt-west、NTT東日本の場合ntt-east。筆者のところでは東日本は未検証。

  • メニューバー -> アドミン -> Config Edit

Asterisk Custom Configuration Files -> extensions_custom.conf

[macro-dialout-trunk-predial-hook]
exten => s,1,SIPAddHeader(P-Preferred-Identity: <sip:${CALLERID(number)}@ntt-****.ne.jp>)

3.アウトバンドルートを通る条件で発番を選択させる。

  • メニューバー -> 接続 -> アウトバンドルート

Add Routeで発信を定義します。以下の項目を設定します。
経路設定の設定項目は以下を指定します。

経路名 : hikaridenwa とか適当な名前を設定します。
ルート CID : 発信番号を選択するが、代表番号以外でもHGWで上書きされる
内線を上書き : はいを選択する
一致したルートのトランクシーケンス : この経路の行き先、つまり、ひかり電話のトランクを指定します。

Dial Patternsの設定項目は以下を指定します。 この項目は発信する際の番号パターンにより、経路を指定するためのものです。

前に付与 : 例えば、頭に9を付けてダイヤルすると、この発番でダイヤルします。
一致パターン : ここでは0で始まり次が番号であれば外線(ひかり電話)に出したいので、以下の画面のように0X.を指定してあります。
発信者ID : 例えば、2XXとしておくと、内線200番台は、この発番でダイヤルします。

Dial Patterns.jpg

外線発信ができない場合

内線電話機から外線発信ができない場合には内線電話機の使用するトランク設定が正しくない場合がありますのでFreePBX:5:内線設定のページを参考に使用するトランクの設定を行ってください。

HGWの内線を使いたい場合

次のステップ