ひかり電話ゲートウェイ iGW-N01

2015年4月10日 (金) 15:06時点におけるTakahashi (トーク | 投稿記録)による版


目次

はじめに

本ページではひかり電話接続モジュール「iGW-N01」をPCにセットアップする手順を示します。

制限事項

網輻輳制御

網輻輳時、INVITE に対して、Reasonヘッダ(protocolにQ.850、protocol-causeに42)が設定された503 Service Unavailableレスポンスとなります。
この場合、可視表示、あるいは可聴音等で、ユーザにその旨を通知してください。

ひかり電話網工事後の自動更新

ひかり電話網工事(網側アドレス変更等)時に、自動更新機能が利用できないため、変更内容反映まで最大で2時間程度かかることがあります。
即時反映させるためには、接続モジュールの再起動を行う必要があります。(自動反映機能は、次バージョンでの対応を予定しています)


典型的な利用方法

Linux サーバに、本製品をインストールして、利用します。

 [NGN]---[ONU]---[eth1:iGW-N01:eth0]---[Asterisk]---[電話機]

外部ルーターを利用する場合は、下記の構成となります。

 [NGN]---[ONU]---[HUB]+---[eth1:iGW-N01:eth0]---+[HUB]---[Asterisk]---[電話機]
                    +---[ROUTER]--------------+


バイナリアーカイブ

バイナリアーカイブは下記より取得できます。
http://www2.iweave.jp/iGW-N01/iGW-N01-20150227-pc.tar.bz2


対応するサーバ

CPU intel x86 系(32 ビット、64 ビット共)
800[MHz] 以上(同時通話数により異なります)
メモリ 256[MB] 以上(同時通話数により異なります)
ストレージ 500[MB] 以上の空き容量
NIC 2ポート以上(必須)
OS Linux(バージョン 2.6.18 以上)

※ CPU は、i486 以上の x86 系、あるいは、x64 系に対応しています。
※ OS は、32 ビット、64 ビットともに対応しています。


設定方法

ライセンス発行について

ソフトフォン適合検査への対応のため、ライセンス認証を行なっています。
ライセンス発行には、以下の情報が必要となります。
下記項目を本ページ末尾のお問い合わせ先からご連絡ください。

  • メールアドレス
  • eth0 の MAC アドレス

なお、MAC アドレスは下記コマンドにて確認できます。

# ifconfig eth0


1chライセンスは無償発行します。2ch以上のライセンスにつきましては本ページ末尾のお問い合わせ先までお問い合わせください。

事前準備

Linux サーバでは、あらかじめ下記の設定を行なってください。

  • eth0 側のネットワーク設定
  • NTP の設定(必須ではありませんが、推奨します)

なお、eth1 側のネットワークは未設定で構いません。 ただし、eth1 側で PPPoE 等を利用することも可能です。

バイナリアーカイブの展開

展開先は任意の場所で構いませんが、これ以降では、/opt 以下に展開する例を示します。
(バイナリアーカイブのファイル名は、ダウンロードしたものに置き換えてください)

# mkdir /opt
# tar jxfC iGW-N01-pc.tar.bz2 /opt
# ln -s iGW-N01-pc /opt/iGW-N01

ライセンスの設定

ライセンスキー取得後、/opt/iGW-N01/etc/iGW-N01/license.txt を修正してください。
余計な空白( = 前後、行末)を入れないようご注意ください。

    # emacs /opt/iGW-N01/etc/iGW-N01/license.txt

設定変更

利用するインターフェイスの設定

/opt/iGW-N01/etc/iGW-N01/if_conf.sh を修正する必要があります。

以下のように設定する場合の例です。

  • PBX との接続には、eth0 を利用する。
  • ひかり電話網との接続には eth1 を利用する。
# pbx side interface
export pbx_if0=eth0	# physical
export pbx_if1=eth0	# logical
    
# hikari side interface
export hikari_if0=eth1	# physical
export hikari_if1=eth1	# logical

接続する Asterisk のアドレス等の設定

/opt/iGW-N01/etc/iGW-N01/pbx_vars.xml を修正する必要があります。
以下のように変更する場合の例

Asterisk アドレス 192.168.171.2
利用 SIP ポート Asterisk 側 UDP/5060
レジスト 不要
接続認証 IP アドレスによる認証
セッションタイマ なし
100rel なし

修正箇所(- の行を + の行のように修正ください) なお、この例では Asterisk 側の SIP ポートを明示的に記載しています。

    @@ -1,6 +1,6 @@
     <include>
       <!-- pbx ip address -->
    -  <X-PRE-PROCESS cmd="set" data="pbx1_ip=192.168.230.231"/>
    +  <X-PRE-PROCESS cmd="set" data="pbx1_ip=192.168.171.2"/>
     
       <!-- register -->
       <X-PRE-PROCESS cmd="set" data="pbx1_register=false"/>
    @@ -12,9 +12,9 @@
       <X-PRE-PROCESS cmd="set" data="pbx1_domain=$${pbx1_ip}"/>
     
       <!-- proxy -->
    -  <X-PRE-PROCESS cmd="set" data="pbx1_proxy=$${pbx1_ip}"/>
    -  <X-PRE-PROCESS cmd="set" data="pbx1_reg_proxy=$${pbx1_ip}"/>
    -  <X-PRE-PROCESS cmd="set" data="pbx1_out_proxy=$${pbx1_ip}"/>
    +  <X-PRE-PROCESS cmd="set" data="pbx1_proxy=$${pbx1_ip}:5060"/>
    +  <X-PRE-PROCESS cmd="set" data="pbx1_reg_proxy=$${pbx1_ip}:5060"/>
    +  <X-PRE-PROCESS cmd="set" data="pbx1_out_proxy=$${pbx1_ip}:5060"/>
     
       <!-- features -->
       <X-PRE-PROCESS cmd="set" data="pbx_100rel=false"/>

接続元を制限する

標準では、Asterisk が所属するネットワークの 24 ビットマスクのアドレスからの発信要求を許可する設定となっています。
ゲートウェイの対象となる Asterisk からの発信要求のみ許可する場合、/opt/iGW-N01/etc/iGW-N01/pbx_acl.xml を修正する必要があります。

修正箇所(- の行を + の行のように修正ください)

    @@ -1,3 +1,3 @@
     <list name="pbx" default="deny">
    -  <node type="allow" cidr="$${pbx1_ip}/24"/>
    +  <node type="allow" cidr="$${pbx1_ip}/32"/>
     </list>

Asterisk の設定例

sip.conf の例

   ----- ここから -----
   [hikari-gw]
   type=peer
   host=192.168.171.137
   context=from_pstn
   disallow=all
   allow=ulaw
   directmedia=no
   dtmfmode=inband
   ----- ここまで -----


 ◆接続モジュール起動設定(ubuntu 以外)   /etc/rc.local に下記を追加ください。

   ----- ここから -----
   mount --bind /dev  /opt/iGW-N01/dev
   mount --bind /proc /opt/iGW-N01/proc
   mount --bind /sys  /opt/iGW-N01/sys
   mount -t tmpfs tmpfs /opt/iGW-N01/tmp
   mount -t tmpfs tmpfs /opt/iGW-N01/dev/shm
    chroot /opt/iGW-N01 service iGW-N01 start
   ----- ここまで -----

 ◆ ubuntu で利用する場合の追加設定   ubuntu で利用する場合は、あらかじめ、   /opt/iGW-N01/run/shm ディレクトリを作成してください。       # mkdir -p /opt/iGW-N01/run/shm

  また、/etc/rc.local は下記を追加ください。

   ----- ここから -----
   mount --bind /dev  /opt/iGW-N01/dev
   mount --bind /proc /opt/iGW-N01/proc
   mount --bind /sys  /opt/iGW-N01/sys
   mount -t tmpfs tmpfs /opt/iGW-N01/tmp
   chroot /opt/iGW-N01 mount -t tmpfs tmpfs /dev/shm
    chroot /opt/iGW-N01 service iGW-N01 start
   ----- ここまで -----

再起動

上記の設定が終わりましたら、Linux サーバーを再起動してください。
再起動後に、接続モジュールが稼動します。

    # shutdown -r now

接続モジュールの手動開始、停止方法

開始方法

# chroot /opt/iGW-N01 service iGW-N01 start

停止方法

# chroot /opt/iGW-N01 service iGW-N01 stop

再起動方法

# chroot /opt/iGW-N01 service iGW-N01 restart


設定に関する補足

Asterisk での番号計画について

発信者番号の指定方法と、輻輳案内に関して、補足します。
発信者番号に発信したい番号を設定してください。
Asterisk 1.8 以降では、下記の方法で輻輳状態を判定できます。
それ以前の Asterisk では、正確ではありませんが DIALSTATUS 変数で判断できます。

Asterisk 設定例(extensions.conf)

あらかじめ、輻輳案内用の音声ファイルをご用意ください。
Asterisk 1.8 以降の例を示します。
(sip.conf に use_q850_reason=true を追加する必要があります)

  [from_phone]
  exten => _[01].,1,Set(CALLERID(num)=0312345678)
  exten => _[01].,n,Dial(SIP/hikari-gw/${EXTEN})
  exten => _[01].,n,ExecIF($["${HANGUPCAUSE}"="42"]?PlayBack(輻輳案内))

Asterisk 1.8以前の例  

  ----- ここから -----
  [from_phone]
  exten => _[01].,1,Set(CALLERID(num)=0312345678)
  exten => _[01].,n,Dial(SIP/hikari-gw/${EXTEN})
  exten => _[01].,n,ExecIF($["${DIALSTATUS}"="CONGESTION"]?PlayBack(輻輳案内))
  ----- ここまで -----

呼び出し時間の制限について

一部の 0120 番号などでは、呼び出し状態で通話が開始されることがあります。<br / (アーリーメディアの状態で、IVR や通話が開始される)
この場合、呼び出し時間の制限を行うと、IVR や通話の途中で切断されますので、自動切断時間を適切にご調整ください。

なお、接続モジュールの設定として、660 秒が設定されていますが、/opt/iGW-N01/etc/iGW-N01/pbx_vars.xml ファイル中のpbx_call_timeout=660 の設定にて変更できます。

ひかり電話網側のファイヤーウォール設定

UDP/5060, UDP/20000〜39999 を通信を許可してください。


接続モジュールの状態確認

ひかり電話の接続情報が取得できたかの確認

下記のコマンドで、契約番号が表示されれば、情報取得は完了しています。

# grep new_ntt_hikarinum /opt/iGW-N01/var/tmp/dhcp-iGW_N01

ひかり電話へのレジスト状態の確認

# chroot /opt/iGW-N01 fs_cli -x "sofia status"

下記のように出力されますので、hikari::hikari gateway の行で、State が REGED となっていることをご確認ください。

                       Name	   Type	                                      Data	State
  =================================================================================================
                        pbx	profile	              sip:mod_sofia@127.0.0.1:5060	RUNNING (0)
                  pbx::pbx1	gateway	              sip:FreeSWITCH@192.168.171.2	NOREG
                     hikari	profile	          sip:mod_sofia@AAA.BBB.CC.DD:5060	RUNNING (0)
             hikari::hikari	gateway	             sip:0300000000@ntt-east.ne.jp	REGED
  =================================================================================================
  2 profiles 0 aliases


接続モジュールの状態確認

起動してからの稼働時間、セッション数(1通話で2セッション)などを確認することができます。

# chroot /opt/iGW-N01 fs_cli -x "status"

ひかり電話を利用できない場合

DHCPクライアントが起動しない場合は接続モジュールが機能しませんので、下記を実行して表示内容をご確認ください。

# grep dhcl /var/log/syslog | tail
# grep dhcl /var/log/messages | tail

出力内容とエラーの状況は以下の通りです。

ERROR CODE 000
チャネル数の設定が正しくありません。
ERROR CODE 001
ライセンスの設定がただしくありません。
ERROR CODE 002
修正できないファイルが修正されています。
(下記の「起動制限について」を確認ください)



その他

SIP 仕様

IP バージョン     IPv4
SIP ポート      5060
音声コーデック    G.711(μlaw)
DTMF        みなし音声方式(インバンド方式)
ISDN サブアドレス   未対応
FAX          みなし音声方式

起動制限について

ソフトフォン適合検査への対応のため、下記のファイル、ディレクトリを修正した場合は、起動制限を行なっています。

  • /opt/iGW-N01/etc/freeswitch/freeswitch.serial
  • /opt/iGW-N01/etc/freeswitch/freeswitch.xml
  • /opt/iGW-N01/etc/freeswitch/mime.types
  • /opt/iGW-N01/etc/freeswitch/vars.xml.tmpl
  • /opt/iGW-N01/etc/freeswitch/autoload_configs
  • /opt/iGW-N01/etc/freeswitch/dialplan
  • /opt/iGW-N01/etc/freeswitch/sip_profiles
  • /opt/iGW-N01/usr/bin/freeswitch
  • /opt/iGW-N01/usr/lib/freeswitch/mod
  • /opt/iGW-N01/usr/local/sbin/igw_n01_up.sh
  • /opt/iGW-N01/sbin/dhclient-script
  • /opt/iGW-N01/etc/dhcp/dhclient.conf.tmpl
  • /opt/iGW-N01/etc/dhcp/dhclient-exit-hooks.d/iGW-N01
  • /opt/iGW-N01/etc/dhcp/dhclient-exit-hooks.d/rfc3442-classless-routes


お問い合わせ先

下記URLのお問い合わせフォームからお問い合わせの種類を「ひかり電話ゲートウェイiGW-N01に関するお問い合わせ」を選択し、必要事項を入力の上お問い合わせください。

http://www.iweave.jp/contact/index.html