Raspberry PiでPBXとFAXの構築 - ケースに収納・設置

投稿 金 6/28 13:08:31 2024 | パソコン | hotall

Raspberry Piは裸のボードコンピュータですので、何かのケースに収める必要があります。
専用のケースも売られているのですが、今回は手持ちの部品で構築していますので、何か使えるものが無いか探してみました。

この文書は個人的なものであり、内容について一切の責任を負いかねます。




今使っているルータは最近買い替えたばかりで、以前使っていたルーターは捨てずに取ってあり、これが使えそうです。

試しに古いルーターの開け、RaspberryPiを入れてみると、見事、入りました。しかも、RaspberryPinのUSBやイーサネットのコネクタを、ケースの背面コネクタの窓から出すことができました。


RaspberryPiの電源ランプとアクセスランプはアクリル棒で光を前面に導きます。
透明のアクリル棒が無かったので、光は減衰します。


内臓されていた電源は3.3Vでした。5Vに昇圧すれば使えそうですが、試してみると、手持ちの昇圧コンバータでは容量が不足していました。

仕方ないので、電源基板は外し、ACアダプターから電力を供給します。


RaspberryPiだけだと、中はガラガラなので、LANアダプタもケースから基板を取り出し、収めました。


完成した中身です。


背面の様子です。
空いた窓は、ボール紙で塞いでいます。


最終的に設置した様子です。



■ 目次 ■
  1. 構成
  2. ひかり電話RV-230SEの設定
  3. OSのセットアップ
  4. LANアダプタの接続
  5. ユーティリティのセットアップ
  6. PBXのセットアップ
  7. ソフトウェアモデムのセットアップ
  8. FAXのセットアップ
  9. 自動再起動
  10. ステータスLEDの接続
  11. ▶ケースに収納・設置
  12. トラブルと対応

Raspberry PiでPBXとFAXの構築 - ステータスLEDの接続

投稿 水 6/26 14:46:49 2024 | パソコン | hotall

RaspberryPiには、現在の状況を示す表示器は電源ランプとアクセスランプのみです。

PBXを運用していると、特に気になるのが子機との接続状況です。
そこで、LEDを外付けし、子機の状態を表示することにしました。

この文書は個人的なものであり、内容について一切の責任を負いかねます。



LEDのドライブ回路

回路設計




手元に、以前購入した2色LEDがあったので、これを活用することにしました。
各ランプは黄緑と赤の2色のLEDで構成されています。単純にON/OFFで駆動すると、消灯、赤、黄緑、オレンジの4つの状態を表せます。

カソードコモンなので、正論理となり、今回はRaspberryPiのIOポートから直接電力を供給します。

回路組立




手元の部品のみで、組み立てました。
RaspberryPiのIOポートに接続して完成です。

LEDの点灯プログラム
  • 4つのLEDに4つのエンドポイント(親機、子機)を割り当てます。
  • 各エンドポイントについて、4つの状態を表示します。
    • 消灯:未接続/未登録
    • 黄緑:接続中/待機中
    • 赤:呼出中
    • オレンジ:通話中
  • エンドポイントの状態はAsteriskのコマンドで問い合わせます。
ファイルパス:/usr/share/asterisk/custom-bin/endpointstat.sh

プログラム:
#!/bin/bash
#===================================================================================
#
# @(#) endpointstat.sh ver.1.0
# /usr/share/asterisk/custom-bin
#
# Description:
# Asteriskの端末の状態を調べ、LEDの点灯/消灯を制御します。
# This program must be executed by bash.
#
# Created: 2023/09/26 by Yasuaki Nojiri
#
#===================================================================================
set -e

#=== FUNCTION ==================================================================
# Name : IOポートの初期化
# Description : 指定した緑LEDと赤LEDのポートを初期化します。
# Parameter 1 : 赤LEDのポート
# 2 : 緑LEDのポート
#===============================================================================
init_port () {

# 赤LEDのポートを初期化
echo "$1" > /sys/class/gpio/export
echo out > "/sys/class/gpio/gpio$1/direction"

# 緑LEDのポートを初期化
echo "$2" > /sys/class/gpio/export
echo out > "/sys/class/gpio/gpio$2/direction"

return 0
}

#=== FUNCTION ==================================================================
# Name : エンドポイントの状態を表示
# Description : 指定したエンドポイントの状態を調べ、指定したLEDポートに出力します
# Parameter 1 : Asteriskから取得したステータス情報
# 2 : エンドポイントのCID
# 3 ; 赤LEDのポート
# 4 : 緑LEDのポート
#===============================================================================
show_endpointstat () {

# 指定したCIDの行を取得
local endpoint_stat=$(echo "$1" | grep "$2")

# ステータスを解析
if [ "$endpoint_stat" == "" ]; then
# Not define
echo 0 > "/sys/class/gpio/gpio$3/value"
echo 0 > "/sys/class/gpio/gpio$4/value"
elif [[ "$endpoint_stat" =~ "Unavailable" ]]; then
# Unavailable
echo 0 > "/sys/class/gpio/gpio$3/value"
echo 0 > "/sys/class/gpio/gpio$4/value""
elif [[ "$endpoint_stat" =~ "Not in use" ]]; then
# Not in use
echo 0 > "/sys/class/gpio/gpio$3/value"
echo 1 > "/sys/class/gpio/gpio$4/value"
elif [[ "$endpoint_stat" =~ "Ringing" ]]; then
# Ringing
echo 1 > "/sys/class/gpio/gpio$3/value"
echo 0 > "/sys/class/gpio/gpio$4/value"
elif [[ "$endpoint_stat" =~ "In use" ]]; then
# In use
echo 1 > "/sys/class/gpio/gpio$3/value"
echo 1 > "/sys/class/gpio/gpio$4/value"
else
# other
echo 0 > "/sys/class/gpio/gpio$3/value"
echo 0 > "/sys/class/gpio/gpio$4/value"
fi

return 0
}

#=== FUNCTION ==================================================================
# Name : main
# Description : Main routine
# Parameters : Program arguments
#===============================================================================
main () {
local ret=0
local stat1_cid="1001"
local stat2_cid="1002"
local stat3_cid="1003"
local stat4_cid="hikari-trunk"

local stat11_io=6
local stat12_io=12

local stat21_io=13
local stat22_io=16

local stat31_io=19
local stat32_io=20

local stat41_io=21
local stat42_io=26

local endpoints_stat=""

if [ ! -d "/sys/class/gpio/gpio$stat11_io" ]; then

# Initialize io ports
init_port "$stat11_io" "$stat12_io"
init_port "$stat21_io" "$stat22_io"
init_port "$stat31_io" "$stat32_io"
init_port "$stat41_io" "$stat42_io"

fi

# retreave endpoints status
endpoints_stat=$(sudo asterisk -x "pjsip show endpoints" | grep Endpoint:)

# endpoint #1 status
show_endpointstat "$endpoints_stat" "$stat1_cid" "$stat11_io" "$stat12_io"

# endpoint #2 status
show_endpointstat "$endpoints_stat" "$stat2_cid" "$stat21_io" "$stat22_io"

# endpoint #3 status
show_endpointstat "$endpoints_stat" "$stat3_cid" "$stat31_io" "$stat32_io"

# endpoint #4 status
show_endpointstat "$endpoints_stat" "$stat4_cid" "$stat41_io" "$stat42_io"

return 0
}

# Call the main routine
main "$@"

exit $ret
stat?_cidに設定している1001から1003は子機、hikari-trunkは親機(外線)です。表示したい端末を設定してください。

プログラムファイルの属性設定

cd /usr/share/asterisk/custom-bin
sudo chmod 755 endpointstat.sh

起動はcronを使い、毎分、実行します。

cronのコンフィギュレーション

sudo crontab -e

設定内容:
* * * * * sudo bash /usr/share/asterisk/custom-bin/endpointstat.sh



■ 目次 ■
  1. 構成
  2. ひかり電話RV-230SEの設定
  3. OSのセットアップ
  4. LANアダプタの接続
  5. ユーティリティのセットアップ
  6. PBXのセットアップ
  7. ソフトウェアモデムのセットアップ
  8. FAXのセットアップ
  9. 自動再起動
  10. ▶ステータスLEDの接続
  11. ケースに収納・設置
  12. トラブルと対応

Raspberry PiでPBXとFAXの構築 - 自動再起動

投稿 土 6/22 15:56:41 2024 | パソコン | hotall

ソフトウェアは複雑になればなるほど、連続稼働が難しくなります。

今回セットアップしたソフトウェアも、例外ではなく、連続稼働していると、色々と不具合が発生します。
その都度、ネットの情報から、解決策を探して対応していく訳ですが、すべてを解決することはできません(たぶん)。

そんな時の、究極のワークアラウンドは、再起動です。

この文書は個人的なものであり、内容について一切の責任を負いかねます。



OS、アプリケーションの再起動

不具合が発生する前に、定期的に再起動します。
再起動はcronを使います。

cronのコンフィギュレーション

crontabを使ってスケジュールを設定します。

sudo crontab -e

設定内容:
  • 3日毎、AM 4:15にOSを再起動します。
  • OS再起動時に一定時間経過後(30秒)、Asteriskを再起動します。
    OS起動後、たまに内線子機あるいは外線親機の登録が失敗することがあります。
    通信の前提となるサービスの何かとの連携の問題かもしれません。
    取りあえず、OS起動後PBXを再起動しています。
  • 毎日、AM 4:10:30にPBX(Asterisk)を再起動します。
  • 毎日、AM 4:11:00にFAX(hfaxd)を再起動します。
#  OS regurarly restart
15 4 */3 * * sudo reboot
@reboot sleep 30; sudo service asterisk restart
# Service regurarly restart
10 4 * * * sleep 30; sudo service asterisk restart
11 4 * * * sudo systemctl restart hfaxd



■ 目次 ■
  1. 構成
  2. ひかり電話RV-230SEの設定
  3. OSのセットアップ
  4. LANアダプタの接続
  5. ユーティリティのセットアップ
  6. PBXのセットアップ
  7. ソフトウェアモデムのセットアップ
  8. FAXのセットアップ
  9. ▶自動再起動
  10. ステータスLEDの接続
  11. ケースに収納・設置
  12. トラブルと対応

Raspberry PiでPBXとFAXの構築 - FAXのセットアップ

投稿 金 6/21 16:02:25 2024 | パソコン | hotall




RaspberryPiにインストールするソフトウェアの、最後のピースはFAXサーバーです。
IAXmodemとの連携があるので、少々面倒です。

この文書は個人的なものであり、内容について一切の責任を負いかねます。



HylaFaxのインストール

sudo apt-get install hylafax-server hylafax-client

HylaFaxのコンフィギュレーション

セットアッププログラムの実行

モデムの自動コンフィギュレーションは、IAXmodemが応答せず処理がハングアップするため、これを行わず、それ以外はデフォルト値とします。

sudo faxsetup
[1] Init script starts faxq: yes
[2] Init script starts hfaxd yes
[3] Start paging protocol: no
Are these ok [yes]? ⏎
Should I restart the HylaFAX server processes [yes]? ⏎
Do you want to run faxaddmodem to configure a modem [yes] no⏎

モデムの定義

モデムの自動コンフィギュレーションを行なわなかったため、手動で定義します。

ファイルパス:/etc/hylafax/config.ttyIAX

設定内容:

サンプルファイル(SourceForgeサイトのiaxmodemプロジェクト)を参考に作成します。

CountryCode:		81
AreaCode: <自局の市外局番:前ゼロなし>
FAXNumber: +81.<自局の電話番号:前ゼロなし、区切り記号は".">
LongDistancePrefix: 0
InternationalPrefix: 010
DialStringRules: etc/dialrules
ServerTracing: 0xFFF
SessionTracing: 0xFFF
RecvFileMode: 0666
LogFileMode: 0666
DeviceMode: 0600
RingsBeforeAnswer: 1
SpeakerVolume: off
GettyArgs: "-h %l dx_%s"
LocalIdentifier: "IAXmodem"
TagLineFont: etc/lutRS18.pcf
TagLineFormat: "From %%l|%c|Page %%P of %%T"
MaxRecvPages: 200

ModemType: Class1 # use this to supply a hint

Class1AdaptRecvCmd: AT+FAR=1
Class1TMConnectDelay: 400 # counteract quick CONNECT response

Class1RMQueryCmd: "!24,48,72,96" # enable this to disable V.17 receiving
Class1TMQueryCmd: "!24,48,72,96" # enable this to disable V.17 sending

ModemResetCmds: AT+VCID=1 # enables CallID display

PagerTTYParity: none

CallIDPattern: "NMBR="
CallIDPattern: "NAME="
CallIDPattern: "ANID="
CallIDPattern: "NDID="

FAX送信の定義

ファイルパス:/etc/hylafax/sendfax.conf

設定内容:
MaxTries: 2
MaxDials: 2

FAXデーモンの定義

ファイルパス:/etc/hylafax/hfaxd.conf

設定内容:
LogFacility:            daemon          # syslog facility (want this 1st))
ServerTracing: 0x003 # just server operation
JobFmt: "%-5j %1a %-12.12e %5P %5D %Y %.27s"
TimeZone: local

ユーザーの登録

HylaFaxにアクセスするユーザーを登録します。

admin
faxadduser -a <パスワード> root

user
faxadduser -p <パスワード> <任意のユーザーID>

ユーザーの確認

ファイルパス: /etc/hylafax/hosts.hfaxd
  • 最終行に追加されていることを確認
  • 不要な登録があれば、その行を削除

ログファイルのアクセス権を変更

ディレクトリパス:/var/spool/hylafax/log

sudo chmod 644 seqf
sudo chmod 644 xferfaxlog
これを変更しないと、ログにエラーが出ます。

ファックス受信通知メールの送信定義

ファイルパス:/etc/hylafax/FaxDispatch

定義内容:
ファイルを新規に作成します。
FILETYPE=pdf;
SENDTO=<送信先メールアドレス>;
TEMPLATE=custom;

ファックス送信通知メールの送信定義

ファイルパス: /etc/hylafax/FaxNotify

定義内容:
ファイルを新規に作成します。
FILETYPE=pdf;
SENDTO=<送信先メールアドレス>;
TEMPLATE=custom;

通知メールのフォーマット(TEMPLATE)定義

ディレクトリパス:/etc/hylafax/templates

このディレクトリ上に言語ごとのサブフォルダがあり、インストール時に指定した言語のサブディレクトリのテンプレートが使用されます。
ところが、日本語のサブディレクトリはありません。
そこで、雛形としてenフォルダをコピーし、新しくサブディレクトリ(custom)を作成します。

cd /etc/hylafax/templates
sudo cp -r en custom

customディレクトリ上の各テンプレートファイルを編集します。文字コードはUTF-8です。

削除通知メールの定義

ファイル名:notify-killed.txt

定義内容:
To: $SENDTO
Subject: Faxの送信要求が削除されました - $DESTINATION
From: HylaFAX Agent <$FROMADDR>
Content-type: text/plain; charset=UTF-8
Content-Transfer-Encoding: Quoted-Printable

自宅のFAX電話(Hylafax)からのお知らせです。:

Faxの送信要求が削除されました。
送信宛先:$DESTINATION
試行回数:$totdials
ページ数:$npages
ページ幅:$pagewidth(mm)
ページ長:$pagelength(mm)
画像品質:$resolution(dpi) / $dataformat
処理時間:$JTIME ($signalrate)
要求元 :$client / $CALLID1
処理番号:$jobid / $groupid - $commid
処理情報:$JOBINFO

Faxは送信されませんでした。

送信失敗通知メールの定義

ファイル名:notify-killed.txt

定義内容:
To: $SENDTO
Subject: Faxの送信が失敗しました - $DESTINATION
From: HylaFAX Agent <$FROMADDR>
Content-type: text/plain; charset=UTF-8
Content-Transfer-Encoding: Quoted-Printable

自宅のFAX電話(Hylafax)からのお知らせです。:

Faxの送信が失敗しました。
失敗理由:$faxstatus

送信宛先:$DESTINATION
試行回数:$totdials
ページ数:$npages
ページ幅:$pagewidth(mm)
ページ長:$pagelength(mm)
画像品質:$resolution(dpi) / $dataformat
処理時間:$JTIME ($signalrate)
要求元 :$client / $CALLID1
処理番号:$jobid / $groupid - $commid
処理情報:$JOBINFO

原因を解決し、再度、送信してください。

送信完了通知メールの定義

ファイル名:notify-done.txt

定義内容:
From: HylaFAX Agent <$FROMADDR>
To: $SENDTO
Subject: Faxの送信が完了しました - $DESTINATION
From: HylaFAX Agent <$FROMADDR>
Content-type: text/plain; charset=UTF-8
Content-Transfer-Encoding: Quoted-Printable

自宅のFAX電話(Hylafax)からのお知らせです。:

Faxの送信が完了しました。
送信宛先:$DESTINATION
試行回数:$totdials
ページ数:$npages
ページ幅:$pagewidth(mm)
ページ長:$pagelength(mm)
画像品質:$resolution(dpi) / $dataformat
処理時間:$JTIME ($signalrate)
要求元 :$client / $CALLID1
処理番号:$jobid / $groupid - $commid
処理情報:$JOBINFO


受信完了通知メールの定義

ファイル名:faxrcvd-success.txt

定義内容:
From: HylaFAX Agent <$FROMADDR>
To: $SENDTO
Subject: Faxに新着メッセージが入りました - "$SENDER"
Content-type: text/plain; charset=UTF-8
Content-Transfer-Encoding: Quoted-Printable

自宅のFAX電話(Hylafax)からのお知らせです。:

新しいメッセージが入りました。
着信日時:$RECEIVED
ページ数:$PAGES
処理正常:$ERRCORRECT
画像品質:$QUALITY / $DATAFORMAT
受信時間:$TIMETORECV ($SIGNALRATE)
発信元 :$SENDER / $CALLID1


--- $FILE (ftp://$HOSTNAME:$PORT/$FILE) ---

モデムハンドラサービスの定義の変更

HylaFaxを構成する3つのサービス(デーモン)の1つであるfaxgettyは、モデムデバイスの後に起動するように定義されています。

ところが、モデムの自動コンフィギュレーションの問題で分かる通り、iaxmodemは完全にアナログモデムデバイスをエミュレートできていません。
起動についても、iaxmodemの起動がデバイスの起動として認識されない問題があります。

したがって、faxgettyのサービス定義を変更する必要があります。

ファイルパス:/lib/systemd/system/faxgetty@.service

設定内容:

◦前提条件をモデムデバイスからiaxmodemサービスに変更します。

BindTo=iaxmodem.service
After=iaxmodem.service

各サービスの自動起動登録

代表する仮想サービスhylafaxと構成する3つのサービスの自動起動登録をします。

sudo systemctl daemon-reload
sudo systemctl enable faxq
sudo systemctl enable hfaxd
sudo systemctl enable hylafax
sudo systemctl enable faxgetty@ttyIAX

Faxクライアントのインストール

FAXの受信や送信するには、別途クライアントソフトをインストールすると便利です。

YajHFCはJAVAで作られたマルチプラットフォームのHylaFaxクライアントソフトウェアです。
普段使っているPCで、受信したFAXを確認したり、FAXを簡単に送信できます。

私のPCはWindowsなので、Windows用のパッケージをインストールしました。

YajHFCのインストール

取得先:YajHFC Current version ダウンロードサイト
ダウンロードファイル:Windows installer exe(32+64bit)

ダウンロードしたインストーラーを実行します。

YajHFCのコンフィギュレーション

メニューバーから、[Extras]-[Options]

[General]の設定




[Servers]-[Default]の設定

Hylafaxサーバーの設定をします。
Defaultの設定を変更するか、新規に追加登録します。




項目設定値
Name for this server任意の名前
Character serUTF-8
Host nameRaspberry PiのIPアドレス
Username上記「ユーザーの登録」で登録したuserのユーザーID
Password上記「ユーザーの登録」で登録したuserのパスワード
User passive mode to fetch faxesチェックしてFTPをパッシブモードにする



■ 目次 ■
  1. 構成
  2. ひかり電話RV-230SEの設定
  3. OSのセットアップ
  4. LANアダプタの接続
  5. ユーティリティのセットアップ
  6. PBXのセットアップ
  7. ソフトウェアモデムのセットアップ
  8. ▶FAXのセットアップ
  9. 自動再起動
  10. ステータスLEDの接続
  11. ケースに収納・設置
  12. トラブルと対応

Raspberry PiでPBXとFAXの構築 - ソフトウェアモデムのセットアップ

投稿 火 6/18 17:15:15 2024 | パソコン | hotall




FAXサーバーソフトは通信インターフェースとしてアナログモデムを想定しています。
Asterisk(PBX)にとって、FAXサーバーは子機の位置づけになりますので、Asteriskがサポートする子機とのプロトコルを、アナログモデムのプロトコルに変換する必要があります。

IAXmodemはこの目的で作られたソフトウェアモデムです。AsteriskからはIAXインターフェースの子機として見え、FAXサーバーからはアナログモデムに見えるアダプターソフトです。

この文書は個人的なものであり、内容について一切の責任を負いかねます。



IAXmodemのインストール

sudo apt-get install iaxmodem

IAXmodemのコンフィギュレーション

デバイス定義ファイルを新規に作成します。

ファイルパス : /etc/iaxmodem/ttyIAX

設定内容:

device          /dev/ttyIAX
owner uucp:uucp
mode 660
port 4570
refresh 300
server 127.0.0.1
peername iaxmodem
secret <接続認証用の任意のパスワード>
cidname <自局の任意の名前>
cidnumber <自局の電話番号>
codec ulaw

IAXmodemの起動(再起動)

sudo service iaxmodem restart

IAXmodemの起動確認

sudo service iaxmodem status
active (running)であれば起動しています。

/dev/上にデバイス"ttyIAX"が作成されていることを確認します。

IAXmodemの自動起動登録

sudo systemctl enable iaxmodem



■ 目次 ■
  1. 構成
  2. ひかり電話RV-230SEの設定
  3. OSのセットアップ
  4. LANアダプタの接続
  5. ユーティリティのセットアップ
  6. PBXのセットアップ
  7. ▶ソフトウェアモデムのセットアップ
  8. FAXのセットアップ
  9. 自動再起動
  10. ステータスLEDの接続
  11. ケースに収納・設置
  12. トラブルと対応

Raspberry PiでPBXとFAXの構築 - PBXのセットアップ

投稿 日 6/16 18:02:43 2024 | パソコン | hotall

すべての機器を接続して、以降のインストールをしていきます。




さて、いよいよ電話システムの中核となるPBXをインストールします。




PBXとしてセットアップするのはAsteriskです。
オープンソースのPBXとしては最も使われているソフトウエアなので、ネットを検索すれば多くの情報を得ることができます。

インストールは他のLinuxソフトウェアと同様にAPTリポジトリからダウンロード・インストールできます。

インストール後は、各コンフィギュレーションファイルに必要な定義を行います。

この文書は個人的なものであり、内容について一切の責任を負いかねます。



Asteriskのインストール

sudo apt-get install asterisk

Asteriskのコンフィギュレーション

言語・ロケールの定義
ローカライズの指定を行います。
留守録(VoiceMail)で日本語のファイル(ディレクトリ)が使われるよう指定します。

ファイルパス:/etc/asterisk/asterisk.conf

設定内容:
[options]
languageprefix = yes
defaultlanguage = ja

SIPの定義
親SIPサーバーや子機との通信パラメーターを定義します。

ファイルパス:/etc/asterisk/pjsip.conf

設定内容:
・ひかりモデムSIPサーバーとの接続定義:
[hikari-trans]
type=transport
protocol=udp
bind=192.168.1.10:5060

[hikari-denwa]
type=registration
transport=hikari-trans
outbound_auth=hikari-trunk
server_uri=sip:192.168.1.1
client_uri=sip:3@192.168.1.1
retry_interval=60

[hikari-trunk]
type=auth
auth_type=userpass
password=<ひかりモデムに登録したパスワード>
username=0003

[hikari-trunk]
type=aor
contact=sip:192.168.1.1

[hikari-trunk]
type=endpoint
transport=my-transport
context=from-hikari
disallow=all
allow=ulaw
outbound_auth=hikari-trunk
aors=hikari-trunk
direct_media=no
from_user=3
from_domain=192.168.1.1
dtmf_mode=inband

[hikari-trunk]
type=identify
endpoint=hikari-trunk
match=192.168.1.1
192.168.1.10はRaspberryPiのひかりモデム側のIPアドレスに合わせてください。
3@192.168.1.1はひかり電話RV-230SEの設定で定義した内線番号@SIPサーバーに合わせてください。
0003はひかり電話RV-230SEの設定で定義したユーザーIDに合わせてください。


・子機共通のトランスポート定義:既存の定義のコメントアウトを外します。
[internal-trans]
type=transport
protocol=udp ;udp,tcp,tls,ws,wss
bind=192.168.0.10:5060
192.168.0.10はRaspberryPiのLAN側のIPアドレスに合わせてください。

・子機の定義:transport以外のendpoint,auth,aorの3つを定義します。
  • 接続する子機(スマホやIP電話機)毎に定義します。
  • 下記は子機(1001)1台を定義しています。
[1001]
type=endpoint
context=from-internal
disallow=all
allow=ulaw
transport=internal-trans
auth=1001
aors=1001
rtp_symmetric = yes
rewrite_contact = yes
direct_media = no
fax_detect=yes

[1001]
type=auth
auth_type=userpass
password=<子機接続認証用の任意のパスワード>
username=1001

[1001]
type=aor
max_contacts=1
remove_existing=yes
1001は子機の内線番号に合わせてください。

ダイヤルプランの定義
発信・着信時の動作を定義します。

ファイルパス:/etc/asterisk/extensions.conf

設定内容:

・定数の定義
[globals]
NTTNUMBER=<自局電話番号>
SPEAKINGCLOCK=3117
ECHOTEST=3333
VOICEMAILMENU=5000
5000は留守電の内線番号で、後述「留守電の定義」の内容に合わせてください。
3117は時刻、3333はエコーテストの任意の内線番号を設定してください。


・ひかり電話(外線)からの着信
  • 全ての子機を一斉に20秒間呼び出します。
  • 何れの子機も受話しない場合、留守電を起動します。
  • FAXを検出した場合、これを受信します。
; Receive from hikari
[from-hikari]
exten => s,1,Dial(PJSIP/1001&PJSIP/1002,20,Tt)
same => n,Answer()
same => n,Wait(1)
same => n,Voicemail(5000)
same => n,Hangup
; Receive fax data
exten => fax,1,Dial(IAX2/iaxmodem)
same => n,Hangup
1001と1002は子機名で、実際の構成に合わせてください。前述”子機の定義”のセクション名に対応します。
iaxmodemは後述"FAXサーバー/IAXmodemとの通信(iax)の定義"のセクション名に対応します。


・内線から発信(内戦、外線、その他機能)
  • 要求先に応じた子機を呼び出します。
  • 国際電話は無視します。
  • 0から始まる番号は外線に対して呼び出します。
  • その他の機能(時刻読上げ、エコーテスト、留守電操作)に対応する番号については、これを行います。
; Receive from internal
[from-internal]
exten => 1001,1,Dial(PJSIP/1001,,Tt)
same => n,Hangup
exten => 1002,1,Dial(PJSIP/1002,,Tt)
same => n,Hangup

; Disable international call
exten => _001,1,Playback(vm-goodbye)
same => n,Hangup

; to outer
exten => _0.,1,Set(CALLERID(num)=${NTTNUMBER})
same => n,Set(CALLERID(name)=${NTTNUMBER})
same => n,Dial(PJSIP/${EXTEN}@hikari-trunk)

; Speaking Clock
exten => ${SPEAKINGCLOCK},1,Answer()
same => n,Wait(1)
same => n,Set(FutureTime=$[${EPOCH} + 5])
same => n,SayUnixTime(${FutureTime},Japan,bdAPIM)
same => n,Playback(jp-desu)
same => n,playback(beep)
same => n,Hangup

; Echo Test
exten => ${ECHOTEST},1,Answer()
same => n,Wait(1)
same => n,Playback(demo-echotest)
same => n,Playback(beep)
same => n,Echo
same => n,Playback(demo-echodone)
same => n,Playback(vm-goodbye)

; VoiceMail Menu
exten => ${VOICEMAILMENU},1,Answer()
same => n,Wait(1)
same => n,VoicemailMain(5000,s)
same => n,Hangup
5000は留守電の内線番号で、後述「留守電の定義」の内容に合わせてください。
ここでは子機は1001と1002ついて定義していますが、実際の運用に合わせてください。


・FAX送信
  • 国際電話は無視します。
  • 0から始まる番号は外線に対して呼び出します。
[fax-out]
; Disable international call
exten => _001,1,Playback(vm-goodbye)
same => n,Hangup
exten => _0.,1,Set(CALLERID(num)=${NTTNUMBER})
same => n,Set(CALLERID(name)=${NTTNUMBER})
same => n,Dial(PJSIP/${EXTEN}@hikari-trunk,300,T)
same => n,Hangup

通話操作/取次転送の定義
ファイルパス:features.conf

設定内容:
  • 通話中に"*1"ボタンを押すと、直後に指定した内線にブラインド(転送先と会話なしに)転送します。
  • 通話中に"#"ボタンを押すと、直後に指定した内線に仲介転送します。
[featuremap]
blindxfer => *1 ; direct transfer
atxfer => # ; transfer

FAXサーバー/IAXmodemとの通信(iax)の定義

ファイルパス:/etc/asterisk/iax.conf

定義内容:

・一般定義
[general]
bindport=4569
iaxcompat=yes
language=jp
bandwidth=medium
disallow=all
allow=ulaw
allow=alaw
allow=slinear
allow=gsm
jitterbuffer=no
maxregexpire=300
autokill=yes
"maxregexpire"はソフトウェアモデムのセットアップのIAXmodemのコンフィギュレーション"refresh"に合わせてください。

・FAX用ソフトウェアモデム(IAXmodem)との通信の定義
[iaxmodem]
type=friend
username=iaxmodem
secret=iaxmodemの認証パスワード
host=dynamic
disallow=all
allow=ulaw
allow=alaw
;allow=slinear
allow=gsm
requirecalltoken=no
context=fax-out
iaxmodemはIAXmodemの認証用ユーザーIDです。secretと同様にソフトウェアモデムのセットアップIAXmodemのコンフィギュレーションに合わせてください。

モジュールロード抑制の定義
使用しない機能のモジュールをロードしないように定義します。
これをしないと、廃止されたモジュールをロードしようとしたり、使用しないプロトコルを使おうとしたりでログにエラーが出力されます。

ファイルパス:/etc/asterisk/modules.conf

設定内容:

下記定義を追加します。
[modules]
・・・
noload => res_config_ldap.so
noload => chan_sip.so
noload => chan_mgcp.so
noload => res_monitor.so
noload => res_adsi.so
noload => app_adsiprog.so
noload => app_url.so
noload => app_nbscat.so
noload => app_getcpeid.so
noload => app_macro.so
noload => app_ices.so
noload => app_image.so
noload => res_pjsip_publish_asterisk.so
noload => chan_skinny.so
noload => cel_sqlite3_custom.so
noload => cdr_sqlite3_custom.so
noload => cel_tds.so
noload => cdr_pgsql.so
noload => cdr_radius.so
noload => cel_radius.so
noload => cdr_tds.so
noload => chan_unistim.so
noload => pbx_dundi.so
noload => res_hep_rtcp.so
noload => res_hep_pjsip.so

留守電の定義
留守電(VoiceMail)の動作を指定します。

ファイルパス:/etc/asterisk/voicemail.conf

設定内容:

下記定義を追加します。
[general]
format=wav49
attach=yes
maxmsg=100
maxsecs=120
maxgreet=60
skipms=3000
maxsilence=10
silencethreshold=128
maxlogons=3
charset=UTF-8
emailsubject=[PBX]: 留守電に新着メッセージが入りました。--- ${VM_NAME}/${VM_MAILBOX} ---
emailbody=自宅の留守番電話(${VM_NAME})からのお知らせです。:\n\n\t新しいメッセージが入りました。\n\t\t着信日時:${VM_DATE}\n\t\t録音時間:${VM_DUR}\n\t\t発信元:${VM_CALLERID}\n\n\tメールボックス(内線:${VM_MAILBOX})には${VM_MSGNUM}件のメッセージがあります。\n\t--- ${VM_NAME}/${VM_MAILBOX} ---
${VM_MSGNUM})\nin mailbox ${VM_MAILBOX} from ${VM_CALLERID}, on ${VM_DATE},\n${IF($["${VM_CIDNUM}" = "${ORIG_VM_CIDNUM}"]?so:(originally sent by ${ORIG_VM_CALLERID} on ${ORIG_VM_DATE})\nso)} you might want to check it when you get a chance. Thanks!\n\n\t\t\t\t--Asterisk\n
emaildateformat=%Y/%m/%d %r
pagerdateformat=%A, %B %d, %Y at %r
mailcmd=/usr/sbin/sendmail -t
sendvoicemail=yes ; Allow the user to compose and send a voicemail while inside

[zonemessages]
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
central=America/Chicago|'vm-received' Q 'digits/at' IMp
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'
european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM
japan=Japan|Q PHM 'jp-ni' 'vm-received'

[default]
5000 => 1234,Rusuden,<通知先メールアドレス>,,attach=yes|tz=japan|locale=ja_JP.UTF-8
5000は留守電に付ける任意の内線番号で、ダイヤルプランの定義で指定します。
emailsubject、emailbodyは通知メールの件名や本文を自由に定義します。


日本語音声のインストール

留守電の日本語音声メッセージは、Asteriskのインストールに含まれていません。
決められたファイル名、フォーマットであれば、自身で用意して置き換えることが可能です。
asteriskのサイトには日本語のファイルがアップされていますので、今回はこれを使用します。

音声データ入手先
サイトアドレス:http://downloads.asterisk.org/pub/telephony/sounds/
ファイル名:asterisk-core-sounds-ja-gsm-current.tar.gz

解凍して配置
配置先:/usr/share/asterisk/sounds/にjaディレクトリを作成して、解凍したすべてのファイルを配置
フォルダ名:jaは前述「言語・ロケールの定義」で指定した値に対応します。

コマンド
cd usr/share/asterisk/sounds
sudo mkdir ja
cd ja
sudo wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-ja-gsm-current.tar.gz
sudo tar xvzf asterisk-core-sounds-ja-gsm-current.tar.gz

Asteriskの起動(再起動)

sudo service asterisk restart

Asteriskの起動の確認

sudo service asterisk status
active (running)になっていれば、無事起動しています。

Asteriskの自動起動登録

sudo systemctl enable asterisk

SIPクライアント(子機)のセットアップ
PBXのセットアップが終わると、後はSIPクライアントをセットアップすれば、これを使って通話ができます。

私は、Androidスマートホンと固定電話タイプのVoIP機器を繋ぎました。

当初はスマートホンだけでもいいかなと思っていましたが、AndroidOSがディープスリープするようになって、その間はアプリも完全に無反応になり、着信できない問題が発生しました。
アプリの設定で、ディープスリープを抑制することもできますが、バッテリーの持ちと引き換えになってしまいます。

外で自宅の電話を受ける必要性もあまりないので、スマホでの着信の確実性をあきらめ、自宅に固定電話タイプの機器を設置するのが最善と判断しました。

Android SIPクライアントアプリのセットアップ
無料で使えるSIPクライアントアプリはいくつかあります。わたしはMIZUDROIDを使いました。
他のアプリでも同様に設定できると思います。

・ログイン情報を設定します。


192.168.0.10はRaspberryPiのLAN側のIPアドレスに合わせてください。
1002とPasswordは子機のusername, passwordに合わせてください。


・アプリの活動頻度を設定します。


項目を設定すると、それに合わせた複数の項目が自動的に設定されます。
私は通常、"Auto-adapt"を設定していますが、これだとディープスリープを抑制できないので、着信を取りこぼすことがあります。
必用に応じて、"Always Runninng"に切り替えています。着信の取りこぼしはなくなりますが、バッテリーは消費します。


固定電話タイプのVoIP機器のセットアップ
わたしはPanasonicのKX-123Nを使いました。
他の機器も同様に設定できると思います。

webサーバーを有効([設定]モードで#534をキーイン)にして、PC等のブラウザーから接続(KX-123NのIPアドレス)します。


192.168.0.10はRaspberryPiのLAN側のIPアドレスに合わせてください。
1001とパスワードは子機のユーザ名、パスワードに合わせてください。




■ 目次 ■
  1. 構成
  2. ひかり電話RV-230SEの設定
  3. OSのセットアップ
  4. LANアダプタの接続
  5. ユーティリティのセットアップ
  6. ▶PBXのセットアップ
  7. ソフトウェアモデムのセットアップ
  8. FAXのセットアップ
  9. 自動再起動
  10. ステータスLEDの接続
  11. ケースに収納・設置
  12. トラブルと対応

Raspberry PiでPBXとFAXの構築 - ユーティリティのセットアップ

投稿 水 6/12 15:29:18 2024 | パソコン | hotall

PBX及びFAXをセットアップするにあたり、これらの動作に必要なソフトウェアをセットアップします。




必要なソフトウェアとはファイアウォールとメール送信です。

この文書は個人的なものであり、内容について一切の責任を負いかねます。



ファイアウォールのセットアップ
RaspberryPiを直接的・間接的にインターネットに繋ぐ前に、まずファイアウォールをセットアップするのが安全です。

私の場合、ufw/iptabesとFail2Banをセットアップしました。
ufwはOS標準のパケットフィルタ"iptables"をコンフィギュレーションするフロントエンドです。
Fail2Banは認証が一定回数失敗した場合に、通信を一定時間遮断します。

ufwのインストール
sudo apt install ufw

ufwを使ってパケットフィルタをコンフィグレーション
以下のポート以外は閉じます。
  • LAN側のSSHポート
  • LAN側とひかりモデム・ルーター側のSIPポート
  • LAN側とひかりモデム・ルーター側の音声通信(RTP)ポート
  • LAN側のFAXサービスポート
  • LAN側のFAXで使用するFTPパッシブモードのポート(ユーザーポート)
ufwコマンドで定義します。
sudo ufw disable
sudo ufw reset
sudo ufw default deny
sudo ufw allow from 192.168.0.0/24 to any port 22
sudo ufw allow from 192.168.1.1 to any port 5060
sudo ufw allow from 192.168.0.0/24 to any port 5060
sudo ufw allow from 192.168.1.1 to any port 10000:20000 proto udp
sudo ufw allow from 192.168.0.0/24 to any port 10000:20000 proto udp
sudo ufw allow from 192.168.0.0/24 to any port 4559 proto tcp
sudo ufw allow from 192.168.0.0/24 to any port 1024:65535 proto tcp
sudo ufw enable
192.168.0.0はLAN側のネットワークアドレスに合わせてください。
192.168.1.1はひかりモデム・ルータのSIPサーバーアドレスです。


fail2banのインストール
sudo apt install fail2ban

fail2banのコンフィギュレーション
コンフィギュレーションファイルはテンプレートをコピーして行います。
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

ファイルパス:/etc/fail2ban/jail.local

定義内容:
SSHログの監視:3回リトライ10分遮断

ファイル内の[sshd]セクションに以下の定義を追加します。
enabled = true
filter = sshd
banaction = iptables-multiport
bantime = 600
maxretry = 3

fail2banサービスの再起動
sudo service fail2ban restart

fail2banサービスの起動確認

sudo service fail2ban status
active (running)であれば起動しています。

fail2banサービスの自動起動登録

sudo systemctl enable fail2ban

メール送信のセットアップ
留守電やFAXの通知をメールで行うため、メール送信ソフトウェアをセットアップします。

sSMTPのインストール
sudo apt-get install -y ssmtp

sSMTPのコンフィギュレーション
ファイルパス:/etc/ssmtp/ssmtp.conf
定義内容:
root=<送信元アカウントアドレス>
mailhub=<送信に利用するSMTPサーバURL>:<ポート番号:587または465>
hostname=<自身のホスト名(FQDN):OSのセットアップで入力した値(hostnameコマンドで確認できます)>
FromLineOverride=YES
RewriteDomain=<送信に利用するSMTPサーバのドメイン(メールアドレスの@より後の部分)>
AuthUser=<アカウントユーザー名:SMTPサーバの認証に使用する値>
Authpass=<アカウントパスワード:SMTPサーバの認証に使用する値>
UseSTARTTLS=YES



■ 目次 ■
  1. 構成
  2. ひかり電話RV-230SEの設定
  3. OSのセットアップ
  4. LANアダプタの接続
  5. ▶ユーティリティのセットアップ
  6. PBXのセットアップ
  7. ソフトウェアモデムのセットアップ
  8. FAXのセットアップ
  9. 自動再起動
  10. ステータスLEDの接続
  11. ケースに収納・設置
  12. トラブルと対応

Raspberry PiでPBXとFAXの構築 - LANアダプタの接続

投稿 金 6/ 7 17:07:02 2024 | パソコン | hotall

ひかり電話モデム・ルーターのSIPサーバーとRaspberryPi上のPBXを接続するにあたり、ルーターを経由するとNAT越えの問題が発生します。

NAT機能で動的にIPアドレスを書き換えるのはパケットヘッダーだけです。
しかし、SIPパケットのアプリケーション層にはIPアドレスが含まれており、NATはこれらのアドレスを変換しません。

最近のルーターにはSIPパケット内のアドレスを変換する機能があります。
私のルーターにもこの機能があり、パケットモニターを見る限り正常に変換が行われているのですが、ひかり電話モデム・ルーターのSIPサーバーは、同一ネットワーク内のクライアントにしか応答しないようになっているため、ルーター(NAT)経由でSIPサーバーに接続することを諦めました。

そこで、RaspberryPiにLANアダプタを追加接続し、ここから直接、ひかり電話モデム・ルーター内のSIPサーバーにアクセスします。

この文書は個人的なものであり、内容について一切の責任を負いかねます。






ハードウェアの導入

今ではイーサネットインターフェースはほとんどのPCに標準装備されていますが、かつてはLANアダプターを別途購入してPCに接続していました。
我家には、PCを買い替えて不要になったLANアダプターが眠っていたので、これを使用します。

機種
PLANEX:GU-1000T

デバイスドライバ
このLANアダプタの内部はAX88178というチップであり、デバイスドライバはOSにプリインストールされています。
したがって、usbに挿すだけで自動認識します。

確認:
$ lsusb
Bus 001 Device 004: ID 0b95:1780 ASIX Electronics Corp. AX88178
Bus 001 Device 003: ID 0424:ec00 Microchip Technology, Inc. (formerly SMSC) SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Microchip Technology, Inc. (formerly SMSC) SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

インターフェースの設定

IPアドレス
ひかり電話モデム・ルーターのSIPサーバーと同じネットワーク(192.168.1.0/24)上でSIPサーバー(192.168.1.1)とは異なるアドレスを割り当てます。
例えば192.168.1.10などです。

固定IPアドレスの定義
ファイルパス:/etc/dhcpcd.conf

定義内容:
interface eth1
static ip_address=192.168.1.10/24
static routers=192.168.1.1
192.168.1.10は割当てたアドレスに合わせてください。

確認:
$ ifconfig
eth0: flags=4163 mtu 1500
inet 192.168.0.10 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 feb3::17e8:b07e:db46:c4b4 prefixlen 64 scopeid 0x20
ether b8:4f:4b:89:4f:7e txqueuelen 1000 (Ethernet)
RX packets 74873 bytes 7960358 (7.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 36719 bytes 6047777 (5.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth1: flags=4163 mtu 1500
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 7f80::b47f:4732:804f:4047 prefixlen 64 scopeid 0x20
inet6 2405:657f:40:7f00:a97f:b4a4:8e4a:898e prefixlen 64 scopeid 0x0
ether 00:f7:90:cc:b0:c0 txqueuelen 1000 (Ethernet)
RX packets 797 bytes 419185 (409.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1001 bytes 119610 (116.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 828 bytes 55622 (54.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 828 bytes 55622 (54.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0



■ 目次 ■
  1. 構成
  2. ひかり電話RV-230SEの設定
  3. OSのセットアップ
  4. ▶LANアダプタの接続
  5. ユーティリティのセットアップ
  6. PBXのセットアップ
  7. ソフトウェアモデムのセットアップ
  8. FAXのセットアップ
  9. 自動再起動
  10. ステータスLEDの接続
  11. ケースに収納・設置
  12. トラブルと対応

Raspberry PiでPBXとFAXの構築 - OSのセットアップ

投稿 火 6/ 4 16:00:38 2024 | パソコン | hotall

RaspberryPiを使用するには、まず、OSのインストールが必要です。
最近ではいくつかのOSが選べるようになりましたが、もっとも歴史の古い"Raspberry Pi OS"(旧名Raspbian)を使います。
この文書は個人的なものであり、内容について一切の責任を負いかねます。



RaspberryPi OSのインストール




Raspberry pi Imagerのダウンロード
本家のサイトからダウンロードします。
私のPCはWindowsなので、"Download for Windows"をクリックしてダウンロードしました。

Raspberry pi Imagerの実行
このImagerはSDカードにインストールに必要なファイルを書き込むソフトです。
RaspberryPiに挿入するSDカードをPCに挿入し、ダウンロードしたImagerを実行します。




デバイス、OS、ストレージを選択します。
項目設定値
デバイスRASPBERRY PI 3
OSRaspberry pi os(32bit)
ストレージSDHC CARD
PCに挿入したSDカードを選択




"設定を編集"します。




一般設定情報を編集します。
項目設定値
ホスト名このRaspberryPiに付ける名前。
raspipbxなど
ユーザー名とパスワード初期ユーザとそのパスワード。
最初にSSHで接続する際の認証情報になります。
ロケール設定をするタイムゾーンとキーボードレイアウトを設定。
Asia/Tokyo
jp




サービス設定情報を編集します。
項目設定値
SSHを有効化する以降の作業はSSHで行いたいので、これを有効化します。
まずはパスワード認証とします。
以上を設定後、SDカードに書き込みます。

インストーラーの実行

書込んだSDカードをRaspberryPiに挿入し、インストール作業用のPCと同じネットワークに接続します。
インストール作業は外部レポジトリサーバーと通信しますので、インターネットに繋がっている必要があります。

RaspberryPiに電源を入れると、自動的にインストールが始まります。
アクセスランプが落ち着くまで待ちます。数十分かかります。

リモート環境の構築

PC上のターミナルソフトでRaspberryPiに接続し、以降のインストール/コンフィギュレーション操作を行います。
私はRLoginを使用しました。



ターミナルソフトに接続情報を設定し、RaspberryPiに接続します。
項目設定値
ホスト名RaspberryPiのIPアドレス。
ルーターの履歴などから調べます。
あるいはコマンド(※1)で調べます。
TCPポートssh
ログインユーザー名Imagerに設定した認証情報
パスワード
デフォルト文字セットUTF-8
(※1)IPアドレスの調べ方
for /L %i in (0,1,32) do ping -n 1 -w 1 192.168.0.%i
arp -a
"192.168.0.%i"はネットワークアドレス(マスク)合わせてください。
"(0,1,32)"はIネットワークのIPアドレスの末尾の範囲に合わせてください。
表示されたリストからRaspberryPiのMACアドレスに一致するものを探します。


OSのアップグレード

OSを最新の状態にします。

レポジトリキャッシュのアップデート
sudo apt update

OSのアップグレード
sudo apt upgrade

IPアドレスの固定化

RaspberryPiのデフォルトのIPアドレスは、DHCPサーバーによる動的割当てになっています。
SSH接続において、また、今後SIPクライアントと接続する際、IPアドレスが変わってしまうと不便ですので、ルーターあるいはRasberryPi側でIPアドレスを固定化します。

RasberryPi側でIPアドレスを固定化する場合
コンフィギュレーションファイルを変更します。
ファイルパス:/etc/dhcpcd.conf
変更内容:
interface eth0
static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
"192.168.0.10/24"は固定化したいアドレスに合わせてください。
"192.168.0.1"はルーターのアドレスに合わせてください。




■ 目次 ■
  1. 構成
  2. ひかり電話RV-230SEの設定
  3. ▶OSのセットアップ
  4. LANアダプタの接続
  5. ユーティリティのセットアップ
  6. PBXのセットアップ
  7. ソフトウェアモデムのセットアップ
  8. FAXのセットアップ
  9. 自動再起動
  10. ステータスLEDの接続
  11. ケースに収納・設置
  12. トラブルと対応

Raspberry PiでPBXとFAXの構築 - ひかり電話RV-230SEの設定

投稿 日 6/ 2 12:54:32 2024 | パソコン | hotall

このフレッツ光・ひかり電話のモデム・ルーター:RV-230SEには、SIPサーバー機能が含まれており、追加機器なしで、SIPクライアント(IP電話機)が接続できます。
しかしながら、RV-230SEには留守電機能とFAX機能が無いので、RaspberryPiにPBXと、これらの機能を構築し、子機としてRV-230SEに接続します。
各IP電話機はRaspberryPi上のPBXと接続します。

RV-230SEとRaspberryPiを接続するにあたり、まず、RV-230SE側にRaberryPi-PBXとの接続情報を設定します。
この文書は個人的なものであり、内容について一切の責任を負いかねます。




RV-230SEにパソコンを接続し、WebブラウザでWeb設定画面"http://192.168.1.1"を開き、[電話設定]-[内線設定]を表示します。


デフォルトでは、IP電話は内線3から7まで登録できます。登録したい番号を編集します。
私は内線3を選択しました。



接続情報を設定します。

項目設定値
端末属性音声専用端末
MACアドレスRaspberryPiのイーサネットMACアドレスを設定
ダイジェスト認証チェックを外す
ユーザーID4桁の数字
内線番号に前ゼロをつけたものが分かりやすい。
RaspberryPiの認証で使用します。
パスワード任意のパスワード
RaspberryPiの認証で使用します。






■ 目次 ■
  1. 構成
  2. ▶ひかり電話RV-230SEの設定
  3. OSのセットアップ
  4. LANアダプタの接続
  5. ユーティリティのセットアップ
  6. PBXのセットアップ
  7. ソフトウェアモデムのセットアップ
  8. FAXのセットアップ
  9. 自動再起動
  10. ステータスLEDの接続
  11. ケースに収納・設置
  12. トラブルと対応