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

2024年1月29日 (月) 11:22時点におけるアースワークス (トーク | 投稿記録)による版 (ページの作成:「Category:Asterisk Category:ひかり電話 =はじめに= 本ページは、ひかり電話接続モジュール 「iGW-N02」インストール手順やセッ...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)


目次

はじめに

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

PBX での対応事項

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

網ふくそう通知

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

着信拒否

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

RTP 送信

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

音声コーデックについて

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

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

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

システム要件

CPU Intel Celeron CPU N3350 1.10GHz以上(同時通話数により変動します)
メモリ 1[GB] 以上(同時通話数により変動します)
ストレージ 1[GB] 以上の空き容量
NIC 2ポート以上(必須)
OS Linux(systemd-nspawn が利用できること)

※ OS は、64 ビットにのみ対応します。

事前準備

ダウンロード

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

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


ライセンス発行

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

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

サーバー側設定

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

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

Ubuntu22

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

systemd-nspawn インストール

apt install systemd-container

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

tar -zxf igw-n02-v1.0.tar.gz -C /var/lib/machines

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

ネットワーク・NIC設定例

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

  • IPアドレスはDHCPにより取得
    • 固定IPとする場合はnetplanのドキュメントを参照の上、設定してください。
  • NIC "eno1" : 社内LANへ接続するNIC
  • NIC "enp1s0" : ひかり電話を収容するNIC
  • ブリッジ "br0" : iGW-N02コンテナを社内LANに接続するためのブリッジ

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


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


vi /etc/netplan/99-igwn02-config.yaml

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

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


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

netplan apply

コンテナ設定

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

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

mkdir -p /etc/systemd/nspawn
vi /etc/systemd/nspawn/igw-n02.nspawn

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

[Network]
Bridge=br0
Interface=enp1s0

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

Rocky8

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

systemd-nspawn インストール

dnf install systemd-container

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

tar -zxf igw-n02-v1.0.tar.gz -C /var/lib/machines

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

SELinux無効化

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

vi /etc/selinux/config

以下の通り変更

SELINUX=enforcing
↓
SELINUX=disabled

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

ネットワーク・NIC設定例

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

  • IPアドレスはDHCPにより取得
    • 固定IPとする場合はNetworkManagerのドキュメントを参照の上設定してください。
  • NIC "enp0s3" : 社内LANへ接続するNIC、DHCP有効設定
  • NIC "enp0s8" : ひかり電話を収容するNIC
  • ブリッジ "br0" : iGW-N02コンテナを社内LANに接続するためのブリッジ

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


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

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

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

nmcli con add type bridge ifname br0

NIC enp0s3 をブリッジ br0 に接続

nmcli con add type bridge-slave ifname enp0s3 master br0

自動接続設定をONに

nmcli con mod bridge-br0 connection.autoconnect yes

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

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

nmcli con del enp0s3;reboot

コンテナ設定

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

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

mkdir -p /etc/systemd/nspawn
vi /etc/systemd/nspawn/igw-n02.nspawn

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

[Network]
Bridge=br0
Interface=enp0s8

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

モジュール設定

コンテナ起動設定

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

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

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

インターフェース設定

nano /etc/iGW-N02/if_conf.sh

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

# 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

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

PBX サーバー接続設定

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

設定例

nano /etc/iGW-N02/pbx_vars.xml

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

<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>

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

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

項目説明

項目 意味 既定値 備考
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ポートへ変更する場合、該当箇所を下記のように変更します。

  <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"/>


接続元制限

nano /etc/iGW-N02/pbx_acl.xml

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

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

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

ライセンス設定

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

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

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

nano /etc/iGW-N02/license.txt


設定反映

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

systemctl restart igw-n02

状態確認

動作状態

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

systemctl status igw-n02

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

fs_cli -x "sofia status"

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

                     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
=================================================================================================

モジュール状態確認

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

fs_cli -x "status"


その他

SIP 仕様

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

お問い合わせ先

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

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