匿名

差分

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

16,037 バイト追加, 2024年1月29日 (月)
ページの作成:「Category:Asterisk Category:ひかり電話 =はじめに= 本ページは、ひかり電話接続モジュール 「iGW-N02」インストール手順やセッ...」
[[Category:Asterisk]]
[[Category:ひかり電話]]

=はじめに=

本ページは、ひかり電話接続モジュール 「iGW-N02」インストール手順やセットアップ方法、注意事項などを記載します。<br/>
Linux OS に対する知識を一定以上所有している方を想定しています。<br/>
iGW-N01とは何かについては以下のURLをご参照ください。<br/>
https://ews.jp/works/voice-solution/igw-n02/

=PBX での対応事項=

iGW-N02 を使用してひかり電話(NGN)に接続する上で、配下PBXでの対応がいくつか必要となります。

==網ふくそう通知==

網ふくそう時、INVITE に対し iGW-N02 から、Reason ヘッダに Q.850 ;cause=42 が設定されている 503 をレスポンスします。<br/>
配下PBX側にて、ユーザーにふくそう通知を行ってください。

==着信拒否==

着信拒否をする場合は 403 応答をしてください。

==RTP 送信==

アーリーメディア中、および通話中では常に一定間隔で RTP を送信してください。<br/>
発話していない状態であっても RTP を送信するよう、VAD などの機能は解除してください。

==音声コーデックについて==

音声コーデックは g.711u-law のみ対応しています。<br/>
g.711u-law の送受信を出来るようにしてください。

==呼び出し時間の制限について==
一部の 0120 番号などでは、呼び出し状態で通話が開始されることがあります。(アーリーメディアの状態で、IVR や通話が開始される)<br/>
この場合、呼び出し時間の制限を行うと、IVR や通話の途中で切断されますので、自動切断時間を適切にご調整ください。<br/>
なお、接続モジュールの設定として、660 秒が設定されていますが、/var/lib/machines/igw-n02/etc/iGW-N02/pbx_vars.xml ファイル中のpbx_call_timeout=660 の設定にて変更できます。

=システム要件=


{| style="text-align:left"
|-
! CPU
| Intel Celeron CPU N3350 1.10GHz以上(同時通話数により変動します)
|-
! メモリ
| 1[GB] 以上(同時通話数により変動します)
|-
! ストレージ
| 1[GB] 以上の空き容量
|-
! NIC
| 2ポート以上(必須)
|-
! OS
| Linux(systemd-nspawn が利用できること)
|}
※ OS は、64 ビットにのみ対応します。

=事前準備=

==ダウンロード==

以下のURLよりコンテナイメージのダウンロードをお願いします。<br/>
ダウンロード後、インストール先のサーバーへ配置してください。

https://www2.ews.jp/iGW-N02/igw-n02-20240109.tar.gz



==ライセンス発行==

本製品は、ソフトウェア適合検査に対応するため、ライセンス認証を行います。<br/>
ライセンス発行の為、以下の情報が必要となります。<br/>
下記項目を、igw@ews.jpまでご連絡下さい。<br/>

*氏名(会社名)
*メールアドレス
*住所
*電話番号
*ひかり電話を収容するNICのインターフェース名・MACアドレス

=サーバー側設定=

サーバー(iGW-N02 をインストールする Linux PC)側の設定手順です。
以下に Ubuntu22 と Rocky8 の場合の手順を示します。

それ以外の OS でのセットアップ手順が必要でしたら、igw@ews.jpまでお問い合わせください。

==Ubuntu22==

Ubuntu Server22 LTS のケースについて手順を記述します。

===systemd-nspawn インストール===


<blockquote><pre>
apt install systemd-container
</pre></blockquote>

===アーカイブ展開・コンテナ配置===

<blockquote><pre>
tar -zxf igw-n02-v1.0.tar.gz -C /var/lib/machines
</pre></blockquote>

4.1 項にて配置したコンテナイメージファイルを指定してください。

===ネットワーク・NIC設定例===

前提・設定条件として以下があります。

* IPアドレスはDHCPにより取得
** 固定IPとする場合はnetplanのドキュメントを参照の上、設定してください。

* NIC "eno1" : 社内LANへ接続するNIC
* NIC "enp1s0" : ひかり電話を収容するNIC
* ブリッジ "br0" : iGW-N02コンテナを社内LANに接続するためのブリッジ

上記設定はあくまで一例となるため、導入先の環境により適宜読み替えてください。



「/etc/netplan/99-igwn02-config.yaml」を設定します。


<blockquote><pre>
vi /etc/netplan/99-igwn02-config.yaml
</pre></blockquote>

以下はファイル内容例です。

<blockquote><pre>
network:
ethernets:
eno1:
dhcp4: true
enp1s0:
dhcp4: false
version: 2

bridges:
br0:
interfaces:
- eno1
dhcp4: true
gateway4: 192.168.1.1
nameservers:
addresses:
- 192.168.1.2
</pre></blockquote>



設定後、下記コマンドにより設定反映をしてください。

<blockquote><pre>
netplan apply
</pre></blockquote>

===コンテナ設定===

「/etc/systemd/nspawn/igw-n02.nspawn」を設定します。

5.1.2 項で配置したコンテナディレクトリ名(例:/var/lib/machines/igw-n02/)と、nspawn 設定ファイル名は一致している必要があるため、もしディレクトリ名などを変更した場合はファイル名と揃えてください。

<blockquote><pre>
mkdir -p /etc/systemd/nspawn
vi /etc/systemd/nspawn/igw-n02.nspawn
</pre></blockquote>

以下はファイル内容です。

<blockquote><pre>
[Network]
Bridge=br0
Interface=enp1s0
</pre></blockquote>

5.1.3 項で設定した NIC・Bridge 名を指定してください。

==Rocky8==

Rocky Linux 8.8 のケースについて手順を記述します。

===systemd-nspawn インストール===

<blockquote><pre>
dnf install systemd-container
</pre></blockquote>

===アーカイブ展開・コンテナ配置===

<blockquote><pre>
tar -zxf igw-n02-v1.0.tar.gz -C /var/lib/machines
</pre></blockquote>

4.1 項にて配置したコンテナイメージファイルを指定してください。

===SELinux無効化===

SELinuxが有効だとコンテナが起動できないため無効化する。

<blockquote><pre>
vi /etc/selinux/config
</pre></blockquote>

以下の通り変更

<blockquote><pre>
SELINUX=enforcing

SELINUX=disabled
</pre></blockquote>

設定が反映されるのは再起動後となります。
次項にて再起動をするため現段階では不要です。

===ネットワーク・NIC設定例===

前提・設定条件として以下があります。

* IPアドレスはDHCPにより取得
** 固定IPとする場合はNetworkManagerのドキュメントを参照の上設定してください。

* NIC "enp0s3" : 社内LANへ接続するNIC、DHCP有効設定
* NIC "enp0s8" : ひかり電話を収容するNIC
* ブリッジ "br0" : iGW-N02コンテナを社内LANに接続するためのブリッジ

上記設定はあくまで一例となるため、導入先の環境により適宜読み替えてください。



NetworkManager を使用した設定例を以下に示します。

====仮想ブリッジインタフェースの作成・設定====

ブリッジインターフェース br0 の作成。

<blockquote><pre>
nmcli con add type bridge ifname br0
</pre></blockquote>

NIC enp0s3 をブリッジ br0 に接続

<blockquote><pre>
nmcli con add type bridge-slave ifname enp0s3 master br0
</pre></blockquote>

自動接続設定をONに

<blockquote><pre>
nmcli con mod bridge-br0 connection.autoconnect yes
</pre></blockquote>

====物理ポート設定の削除、および再起動====

SSHで接続している場合、接続が切断されます。
そのため、設定後即座に再起動をして設定を反映させます。

<blockquote><pre>
nmcli con del enp0s3;reboot
</pre></blockquote>

===コンテナ設定===

「/etc/systemd/nspawn/igw-n02.nspawn」を設定します。

5.2.2 項で配置したコンテナディレクトリ名(例:/var/lib/machines/igw-n02/)と、nspawn 設定ファイル名は一致している必要があるため、もしディレクトリ名などを変更した場合はファイル名と揃えてください。

<blockquote><pre>
mkdir -p /etc/systemd/nspawn
vi /etc/systemd/nspawn/igw-n02.nspawn
</pre></blockquote>

以下はファイル内容です。

<blockquote><pre>
[Network]
Bridge=br0
Interface=enp0s8
</pre></blockquote>

5.2.4 項で設定した NIC・Bridge 名を指定してください。

=モジュール設定=

==コンテナ起動設定==

<blockquote><pre>
machinectl enable igw-n02
machinectl start igw-n02
machinectl shell igw-n02 # root で実行することでコンテナ内のコンソールに遷移
</pre></blockquote>

上記コマンド実行後、母艦側立ち上げ時にコンテナも起動する設定となります。

以降、iGW-N02 コンテナ内での操作となります。

==インターフェース設定==

<blockquote><pre>
nano /etc/iGW-N02/if_conf.sh
</pre></blockquote>

以下はファイル内容例です。

<blockquote><pre>
# pbx side interface
export pbx_if0=host0 # physical
export pbx_if1=host0 # logical

# hikari side interface
export hikari_if0=enp0s8 # physical
export hikari_if1=enp0s8 # logical
</pre></blockquote>

pbx_if:PBXサーバーへアクセス可能なNICを指定してください。
hikari_if:ひかり電話を収容するNICを指定してください。

==PBX サーバー接続設定==

ご利用の環境に合わせ、設定してください。
設定方法が不明な場合はサポートまでお問い合わせください。

===設定例===

<blockquote><pre>
nano /etc/iGW-N02/pbx_vars.xml
</pre></blockquote>

以下はファイル内容例です。

<blockquote><pre>
<include>
<!-- pbx ip address -->
<X-PRE-PROCESS cmd="set" data="pbx1_ip=192.168.1.1"/>

<!-- register -->
<X-PRE-PROCESS cmd="set" data="pbx1_register=false"/>
<X-PRE-PROCESS cmd="set" data="pbx1_username="/>
<X-PRE-PROCESS cmd="set" data="pbx1_password="/>

<!-- realm, domain -->
<X-PRE-PROCESS cmd="set" data="pbx1_realm=$${pbx1_ip}"/>
<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}"/>

<!-- features -->
<X-PRE-PROCESS cmd="set" data="pbx_100rel=false"/>
<X-PRE-PROCESS cmd="set" data="pbx_session_timer=false"/>

<!-- timeout -->
<X-PRE-PROCESS cmd="set" data="pbx_rtp_timeout_sec=120"/>
<X-PRE-PROCESS cmd="set" data="pbx_rtp_hold_timeout_sec=300"/>
<X-PRE-PROCESS cmd="set" data="pbx_call_timeout=660"/>
</include>
</pre></blockquote>

上記設定例は以下のような設定となります。

{| class="wikitable"
! 設定項目
! 設定値
|-
| PBX アドレス
| 192.168.1.1
|-
| 利用する SIP ポート
| PBX 側 UDP/5060
|-
| レジスター
| しない
|-
| 接続認証
| IP アドレスによる認証
|-
| セッションタイマ
| 無し
|-
| 100rel
| 無し
|}

===項目説明===
{| class="wikitable"
! 項目
! 意味
! 既定値
! 備考
|-
| pbx1_ip
| 接続先 PBX の IP アドレス
|
|
|-
| pbx1_register
| レジスターの有効・無効
| false
|
|-
| pbx1_username
| レジスターの認証情報
|
|
|-
| pbx1_password
| レジスターの認証情報
|
|
|-
| pbx1_proxy
| プロキシサーバーの IP アドレス
| pbx1_ip と同値
| ※1
|-
| pbx1_reg_proxy
| レジスターの送信先 IP アドレス
| pbx1_ip と同値
| ※1
|-
| pbx1_out_proxy
| INVITE の送信先 IP アドレス
| pbx1_ip と同値
| ※1
|-
| pbx_100rel
| 100rel の有効・無効
| false
|
|-
| pbx_session_timer
| セッションタイマの有効・無効
| false
|
|-
| pbx_rtp_timeout_sec
| RTP タイムアウト時間(秒)
| 120
|
|-
| pbx_rtp_hold_timeout_sec
| 保留中の RTP タイムアウト時間(秒)
| 300
|
|-
| pbx_call_timeout
| 呼出しタイムアウト時間(秒)
| 660
|
|}

※1 PBX サーバーの待ち受けポートが 5060 以外の場合、下記3つの設定値にポート番号を追加してください。

* pbx1_proxy
* pbx1_reg_proxy
* pbx1_proxy

例:5070ポートへ変更する場合、該当箇所を下記のように変更します。

<blockquote><pre>
<X-PRE-PROCESS cmd="set" data="pbx1_proxy=$${pbx1_ip}:5070"/>
<X-PRE-PROCESS cmd="set" data="pbx1_reg_proxy=$${pbx1_ip}:5070"/>
<X-PRE-PROCESS cmd="set" data="pbx1_out_proxy=$${pbx1_ip}:5070"/>
</pre></blockquote>


==接続元制限==

<blockquote><pre>
nano /etc/iGW-N02/pbx_acl.xml
</pre></blockquote>

以下はファイル内容です。

<blockquote><pre>
<list name="pbx" default="deny">
<node type="allow" cidr="$${pbx1_ip}/32"/>
</list>
</pre></blockquote>

発信要求を許可するアドレス帯の設定です。
標準では上記のように、ゲートウェイ対象となる PBX サーバーからの発信要求のみを許可する設定となります。
ご利用される環境に合わせ、アドレス帯の変更をしてください。

==ライセンス設定==

本ドキュメント3項の「ライセンス発行について」を参照の上、ライセンスを取得してください。

取得後、ライセンス内容を以下のファイルに書き込んでください。

注意:余計な空白(イコールの前後や、行末など)を入れないようご注意ください

<blockquote><pre>
nano /etc/iGW-N02/license.txt
</pre></blockquote>


==設定反映==

iGW-N02 モジュールを再起動し、設定反映を行ってください。
その際、話中の通話は切断され、起動完了まで通話が不可となる点にご留意ください。

<blockquote><pre>
systemctl restart igw-n02
</pre></blockquote>

==状態確認==

===動作状態===

iGW-N02 は systemd により起動管理を行っているため、下記コマンドにて動作状態を確認可能できます。

<blockquote><pre>
systemctl status igw-n02
</pre></blockquote>

===ひかり電話へのレジスター状態===

<blockquote><pre>
fs_cli -x "sofia status"
</pre></blockquote>

上記コマンドにより以下のように出力されます。
「hikari::hikari gateway」行の State が REGED となっていれば、ひかり電話にREGが通っている状態です。

<blockquote><pre>
Name Type Data State
=================================================================================================
hikari profile sip:mod_sofia@10.0.0.2:5060 RUNNING (0)
hikari::hikari gateway sip:0551111111@ntt-east.ne.jp REGED
pbx profile sip:mod_sofia@192.168.171.100:5060 RUNNING (0)
pbx::pbx1 gateway sip:FreeSWITCH@192.168.171.2 NOREG
=================================================================================================
</pre></blockquote>

===モジュール状態確認===

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

<blockquote><pre>
fs_cli -x "status"
</pre></blockquote>


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

=お問い合わせ先=
下記URLのお問い合わせフォームからお問い合わせ内容について「Asterisk FreeSWITCH対応 ひかり電話ゲートウェイiGW-N02」を選択し、必要事項を入力の上お問い合わせください。

https://ews.jp/company/contact/