==ひかり電話ルータ(HGW)の設定==
以下の例はRT-200NEのものですが、最近のルータでも同様の設定があるはずです。電話設定から内線設定を開き、FreePBXで使いたい内線番号200NEのものですが、最近のルータでも同様の設定があるはずです。<br>ひかり電話ルータのホスト名はntt.setupになります。<br>ひかり電話ルータがHGWであっても、OGであっても、またルータのIPを変更したとしても、ルータ自身がDNSとなり名前解決をしてくれます。<br>ブラウザのアドレスバーに[http://ntt.setup http://ntt.setup]を入力し、HGWにアクセスします。<br>IDとパスワードは、工事業者から聞いているはずです。<br>次に電話設定から内線設定を開き、FreePBXで使いたい内線番号(HGWの内線番号)を指定して設定します。<br>
<br>
[[ファイル:Fpx018.jpg|420px]]<br>
<br>
===MAC認証の設定===
MAC認証はChan_SIPを使っていても、Chan_PJSIPを使っていても使用可能です。<br>
:'''内線番号''' : 通常はHGW内の内線番号です。ここでは例として'''3'''と想定します。
:'''ニックネーム''' : デフォルトのままでかまいません。
:'''端末属性''' : 音声専用端末に指定しておきます。
:'''MACアドレス''' : セキュリティを向上させたいならば、FreePBXをインストールしているマシンのMACアドレスを指定します。XXFreePBXをインストールしているマシンのMACアドレスを指定します。XX:XX:XX:XX:XX:XX の形式です。:'''ダイジェスト認証''' : 「行わない」を指定するのですが一旦「行う」にして下記のユーザIDとパスワードを設定しておいてください。ユーザIDとパスワードを指定してから'''行わない'''に指定してください。:'''ユーザID''' : この端末のユーザIDですが、ここでは例として'''0003'''と想定します。:'''パスワード''' : この端末のパスワードですが、ここでは例として'''pass1234'''と想定します。<br>FreePBX側でDIDによって着信ルートを変えない場合(キャッチオールさせる)場合には着信番号の設定はここで行います。<br>着信番号制御を使う場合には複数の番号をここで指定します。この場合にはダイヤルインの制御はFreePBX側で行えます。''' ===ダイジェスト認証の設定==='''Chan_SIPではトランクできません。'''必ずChan_PJSIPで使用してください。:'''内線番号''' : 通常はHGW内の内線番号です。ここでは例として'''3'''と想定します。:'''ニックネーム''' : デフォルトのままでかまいません。:'''端末属性''' : 音声専用端末に指定しておきます。:'''MACアドレス''' : FreePBXをインストールしているマシンのMACアドレスを指定します。XX:XX:XX:XX:XX:XX の形式です。指定しなくても、trunkできます。
:'''ダイジェスト認証''' : 「行う」にして下記のユーザIDとパスワードを設定しておいてください。
:'''ユーザID''' : この端末のユーザIDですが、ここでは例として'''0003'''と想定します。
==FreePBXの設定==
===Trunk===以下は、指定の設定値以外は、デフォルト値でかまいません。 *'''メニューバー -> 接続 -> トランク'''<br>+トランクを追加 -> +SIP(chan_pjsip)トランクを追加 で新しいトランクを設定します。<br>'''General''' タブの設定項目は以下を指定します。<br>::'''トランク名''' : トランク名を指定します(例: hikaridenwa)::'''アウトバンドCID''' : 発信用の通知番号(ひかり電話の自分の番号)を指定します。::'''最大チャネル数''' : 1チャンネル契約なら1、2チャンネル契約なら2を指定します。'''Dialed Number Manipulation Rules'''タブの設定項目はここでは何も指定しません。<br>'''pjsip設定'''タブの中には3つのタブがあります。<br>:'''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''' のみチェックを入れ後は外す。 ===着信設定=======単純に着信させたい場合====*'''メニューバー -> 接続 -> インバウンドルート'''<br>Add Incoming Routeで新しい着信ルートを設定します。FreePBXでは発信と着信は"別な"設定として定義されます。<br>とりあえず以下の項目だけ設定できれば着信するようになります。<br>(注意:事前に内線電話機の登録と設定を行っておいてくださいChan_SIPを使う場合 -> [[FreePBX:内線設定]])<br>:'''説明''' : この経路の名前を指定します。hikari-inなど適当な名前を指定しておきます。:'''ダイヤルイン番号''' : (要注意箇所) 通常はここには着信する番号(DID)を指定するのですが、ひかり電話ホームのルータの場合には着番号は落ちてこず、'''s'''エクステンションに落ちてくるため、ここには'''s'''を指定してください。<br>注:FreePBX 12以降と思われますが全てのDIDを受け付ける場合には's'を指定せず空白にしておけば全てキャッチします。<br>あとはページの下の方にある'''宛先をセット'''を設定します。ここでは左のプルダウンから'''内線'''を選択し、着信させたい内線番号を右のプルダウンから選んでおいてください。<br>以上で、ひかり電話に着信があると内線電話機が鳴動するようになります。<br>この方法は一番簡単な方法で、カスタムのextenを書く必要もありませんが、もし他にも着番(DID)なしで着信してくるような回線を併用していると、着信経路が明確ではなくなってしまうため着信の経路制御がうまくいかなくなります。<br> ====DID制御(着番での宛先制御)====ひかり電話のホームの場合、ルータからはDIDは渡されず登録している内線に紐付けられている番号で着信するだけです。このため、ひかり電話のHGWを使って着番を制御を行うには少しトリックが必要です。<br>上記の単なる着信の場合と同じに設定すると大混乱を招きますので、併用してはいけません!<br><br>'''1.まずカスタムのコンテキストを作成します。'''<br>このカスタムコンテキストを通ると、DIDとしてSIPヘッダから取得した宛先の着番に変換されます。*'''メニューバー -> アドミン -> Config Edit''''''Asterisk Custom Configuration Files -> extensions_custom.conf'''<br>以下を記入し、'''保存'''をクリック [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文字の意味です。<br><br> '''2.DIDに入っている着番に従いルートを振り分ける'''<br>*'''メニューバー -> 接続 -> インバウンドルート'''Add Incoming Routeで新しい着信ルートを設定します。FreePBXでは発信と着信は"別な"設定として定義されます。<br>とりあえず以下の項目だけ設定できれば着信するようになります。<br>(注意トランク:事前に内線電話機の登録と設定を行っておいてください-> [[FreePBX:内線設定]])<br>:'''説明''' : この経路の名前を指定します。hikari-inなど適当な名前を指定しておきます。:'''ダイヤルイン番号''' : 自分の着信番号、0312345678 のように指定するだけです。'''もし以前にs着信ひかり電話(キャッチオールホーム)の経路を作成していた場合には必ず削除しておいてください。また、ダイヤルインで落ちてくる着番の数だけ設定が必要です。''' ===発信設定=======単純に発信させたい場合====*'''メニューバー -> 接続 -> アウトバンドルート'''<br>Add Routeで発信を定義します。以下の項目を設定します。なおここでは外線は0でダイヤルされるとそのまま外線発信されるものとします(プレフィクスなし0xxxxの番号は外線とみなす)。<br>'''経路設定'''の設定項目は以下を指定します。:'''経路名''' : hikaridenwa とか適当な名前を設定します。:'''ルート CID''' : 発信番号を選択するが、代表番号以外でもHGWで上書きされる:'''内線を上書き''' : '''はい'''を選択する:'''一致したルートのトランクシーケンス''' : この経路の行き先、つまり、ひかり電話のトランクを指定します。 '''Dial Patterns'''の設定項目は以下を指定します。この項目は発信する際の番号パターンにより、経路を指定するためのものです。:'''一致パターン''' : ここでは0で始まり次が番号であれば外線(ひかり電話)に出したいので、以下の画面のように'''0X.'''を指定してあります。<br>[[ファイル:Dial_Patterns.jpg|420pxChan_SIP]] ====発番選択したい場合===='''1.まずカスタムマクロmacro-dialout-trunk-predial-hookを有効にします。'''<br>PREDIAL_HOOK_RETが"BYPASS"以外の値だと、macro-dialout-trunk-predial-hookが有効になります。*'''メニューバー -> アドミン -> Config Edit''''''Asterisk Custom Configuration Files Chan_PJSIPを使う場合 -> extensions_custom.conf'''<br>以下を記入し、'''保存'''をクリック [macro-dialout-trunk-custom] exten => s,1,Set(PREDIAL_HOOK_RET=) '''2.macro-dialout-trunk-predial-hookでSIPヘッダーを追加する。'''<br>ntt-****の値は、NTT西日本の場合ntt-west、NTT東日本の場合ntt-east。筆者のところでは東日本は未検証。*'''メニューバー -> アドミン -> Config Edit''''''Asterisk Custom Configuration Files -> extensions_custom.conf'''<br>以下を記入し、'''保存'''をクリック [macro-dialout-trunk-predial-hook] exten => s,1,SIPAddHeader(P-Preferred-IdentityFreePBX: <sip10:${CALLERID(number)}@ntt-****.ne.jp>) '''3.アウトバンドルートを通る条件で発番を選択させる。'''<br>発信したい発番の数だけ条件が必要です。*'''メニューバー -> 接続 -> アウトバンドルート'''<br>Add Routeで発信を定義します。以下の項目を設定します。<br>'''経路設定'''の設定項目は以下を指定します。トランク:'''経路名''' : hikaridenwa とか適当な名前を設定します。:'''ルート CID''' : 発信番号を選択するが、代表番号以外でもHGWで上書きされる:'''内線を上書き''' : '''はい'''を選択する:'''一致したルートのトランクシーケンス''' : この経路の行き先、つまり、ひかり電話のトランクを指定します。 '''Dial Patterns'''の設定項目は以下を指定します。この項目は発信する際の番号パターンにより、経路を指定するためのものです。:'''前に付与''' : 例えば、頭に9を付けてダイヤルすると、この発番でダイヤルします。<br>:'''一致パターン''' : ここでは0で始まり次が番号であれば外線ひかり電話(ひかり電話ホーム)に出したいので、以下の画面のように'''0X.'''を指定してあります。<br>:'''発信者ID''' : 例えば、2XXとしておくと、内線200番台は、この発番でダイヤルします。<br>[[ファイル:Dial_Patterns.jpg|420pxChan_PJSIP]] ==異常がある場合==*'''発信も着信もしない'''<br>トランクの設定を見直してください<br>*'''発信するが着信しない'''<br>メニューバー -> 接続 -> インバウンドルート -> ダイヤルイン番号を空白にしてみる。<br>その設定で着信したら、インバウンドルートの内容をチェックする。<br>着信できなかったら、HGWの着信番号の項目をチェックする。<br>*'''着信するが発信しない'''<br>メニューバー -> 接続 -> アウトバンドルート -> Dial Patterns -> 一致パターンを'''X.'''にしてみる。<br>その設定で発信したら、アウトバンドルートの内容をチェックする。<br>*'''発信番号が違う'''<br>メニューバー -> 接続 -> アウトバンドルートでアウトバンドルートの順番が正しいかチェックする。<br>
==HGWの内線を使いたい場合==