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

目次

FreePBXの設定

うまく動かないときは、Asteriskごと再起動してみてください。

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 : バンド内
クライアントURI : sip:3@192.168.1.1(sip:HGWの内線の1桁番号@HGWのIPアドレス)
コーデック タブの設定項目は以下を指定します。
ulaw のみチェックを入れ後は外す。

着信設定

単純に着信させたい場合

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

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

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

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

ひかり電話のホームの場合、ルータからはDIDは渡されず登録している内線に紐付けられている番号で着信するだけです。このため、ひかり電話のHGWを使って着番を制御を行うには少しトリックが必要です。

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

Asterisk Custom Configuration Files -> extensions_custom.conf

[from-pstn-custom]
exten => _.,1,Goto(from-pstn,${CUT(CUT(PJSIP_HEADER(read,To),@,1),:,2)},1)

発信設定

単純に発信させたい場合

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

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

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

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

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

Dial Patterns.jpg

発番選択したい場合

1.まずカスタムヘッダーのコンテキストを作成します。
ntt-****の値は、NTT西日本の場合ntt-west、NTT東日本の場合ntt-east。筆者のところでは東日本は未検証。
<sip:${CALLERID(num)}@ntt-****.ne.jp>を指定したいがCALLERID(num)の中身が、extenに置き換わっている。バグ?

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

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

[header-custom]
exten => addheader,1,Set(PJSIP_HEADER(add,P-Preferred-Identity)=<sip:${CUT(CALLERID(name),:,2)}@ntt-west.ne.jp>)

2.トランクのダイアル時にPPIヘッダを追加します。

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

Trunkの項目で作成したトランクを再度開きます。
General タブの設定項目は以下を指定します。

Asteriskトランクダイヤルオプション : Ttb(header-custom^addheader^1)
オーバーライド

3.アウトバンドルートを通る条件で発番を選択させる。
発信したい発番の数だけ条件が必要です。

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

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

経路名 : hikaridenwa とか適当な名前を設定します。
ルート CID : 相手に表示させたい発信番号を入力します。未契約の番号だとHGWで代表番号に上書きされます。
内線を上書き : はいを選択します。
一致したルートのトランクシーケンス : この経路の行き先、つまり、ひかり電話のトランクを指定します。

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

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

Dial Patterns.jpg

異常がある場合

  • 発信も着信もしない

トランクの設定を見直してください

  • 発信するが着信しない

メニューバー -> 接続 -> インバウンドルート -> ダイヤルイン番号を空白にしてみる。
その設定で着信したら、インバウンドルートの内容をチェックする。
着信できなかったら、HGWの着信番号の項目をチェックする。

  • 着信するが発信しない

メニューバー -> 接続 -> アウトバンドルート -> Dial Patterns -> 一致パターンをX.にしてみる。
その設定で発信したら、アウトバンドルートの内容をチェックする。

  • 発信番号が違う

メニューバー -> 接続 -> アウトバンドルートでアウトバンドルートの順番が正しいかチェックする。