IP-PBX(Asterisk)を用いた簡易的な内線構築について

オープンソースIP-PBXソフトウェアAsteriskを用いて簡易的な内線構築したためメモを残す。

前提条件

  • 公衆回線には接続せずLAN内で完結させる。
  • ソフトフォンとVoIPアダプタを接続した電話機間での通話を可能とする。

ソフトウェア

  1. Debian11(Widnows10のHyper-V環境下)
  2. Asterisk16
  3. AGEphone

使用物品

  1. VE-TA10
  2. 黒電話

Asterisk導入

パッケージ管理システムにてインストールできるバージョンの確認。

$ apt policy asterisk
asterisk:
インストールされているバージョン: (なし)
候補: 1:16.16.1~dfsg-1+deb11u1
バージョンテーブル:
1:16.16.1~dfsg-1+deb11u1 500
500 http://security.debian.org/debian-security bullseye-security/main amd64 Packages
1:16.16.1~dfsg-1 500
500 http://ftp.jp.debian.org/debian bullseye/main amd64 Packages

wikiによるとバージョン16.Xは年内でサポート終了するようなので,
長期的に使うのであれば18.Xを仕入れたほうがいいと思われる。

今回は手軽に導入することを目指し,aptでインストールする。

$ sudo apt install asterisk

インストール完了した後設定ファイルをバックアップ

$ sudo cp /etc/asterisk/sip.conf /etc/asterisk/sip.conf.orz
$ sudo cp /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf.orz

元ファイルを削除しまっさらな状態から新設定ファイルを作成する。

$ sudo rm /etc/asterisk/sip.conf
$ sudo rm /etc/asterisk/extensions.conf

$ sudo vi /etc/asterisk/sip.conf
[general]
context=default
port=5060
bindaddr=0.0.0.0
srvlookup=yes
disallow=all
allow=ulaw
allow=alaw
allow=gsm
language=ja

[201]
type=friend
defaultuser=201
secret=pass
canreinvite=no
host=dynamic

[202]
type=friend
defaultuser=202
secret=pass
canreinvite=no
host=dynamic

$ sudo vi /etc/asterisk/extensions.conf
[default]
exten => 201,1,Dial(SIP/201,30,r)
exten => 201,2,Hangup()
exten => 202,1,Dial(SIP/202,30.r)
exten => 202,2,Hangup()

Hyper-Vのネットワーク設定変更

デフォルトのスイッチ設定だとNAT環境下のためLAN内から接続ができない。
接続の種類を外部ネットワークに設定した仮想スイッチを作成し,ネットワークアダプタに設定した。

Debian環境にてネットワークアダプタが追加されていることを確認し,接続する。

接続後同一セグメント内のIPアドレスが割り振られていることを確認する。

クライアントアプリインストール

android端末とWindows10にそれぞれクライアントアプリをインストールする。
今回はAGEphoneを使用した。

ドメインSIPサーバアドレス:サーバのIPアドレスDebian環境のIPアドレス
ユーザIDor内線番号:201もしくは202
認証ID:201もしくは202
パスワード:pass

うまく電話がかかり,通話もできることを確認した。

VE-TA10セットアップ

VE-TA10のネットワーク端子にLANから分岐させたLANケーブルを挿入し,設定端子には設定用パソコンとLANケーブルを直結する。
電源を入れて設定用PCから「http://setup.html」にアクセスする。
WAN側設定の動作モードをアダプタモードに指定し,DHCPにてIPアドレスを自動取得させる。

050IP電話設定画面にて設定を入力する。

市外局番:空欄
発信者番号通知:する
IP着信中ランプ表示:しない
VoIP電話番号:201もしくは202
VoIPサーバ:サーバのIPアドレスDebian環境のIPアドレス
サービスドメイン:サーバのIPアドレスDebian環境のIPアドレス
VoIPユーザID:201もしくは202
VoIPユーザパスワード:pass


接続テストを実施しても何故か接続できない時があるが,一度設定を登録させてから再挑戦したところうまくいった。
VoIPアダプタを増やせば固定電話同士での内線電話ごっこも可能になると思う。