ひかり電話ゲートウェイ iGW-N01
目次
はじめに
本ページではひかり電話接続モジュール「iGW-N01」をPCにセットアップする手順を示します。
iGW-N01とは何かについては以下のURLをご参照ください。
http://www.iweave.jp/iGW-N01/
制限事項
網輻輳制御
網輻輳時、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に関するお問い合わせ」を選択し、必要事項を入力の上お問い合わせください。