FreePBX16+Asterisk19+Linux11(Bullseye)をRaspberryPiに導入

raspi版freepbxアップデートはひとまず15で終わり!

freePBX15を永らく使用してきましたが、定期的なバージョンアップを期待して更新ページをチェックしていました。過日iso版のアップデートが無いかとwebリンクを見に行くと、これまでのアップデートと様相が違った表記が...。
翻訳して見ると「残念ながら、最新のPi 4ハードウェアリビジョンをサポートするために、元のRasPBXを再度更新することはできません。」と記述があります。
ただ今までのようなisoアップデートはraspbxは15で終わりですが、別の方法でfreepbx16を作ることができる様です。
早速やってみました。

アップグレードの流れ

freepbx16用のISOフアイルはアップされていません。代わりにOSをインストールしてからスクリプトを実行することでfreepbx16システムが出来上がると言う説明+リンクが記されています。
私の方でアップグレードを3方式やってみたパターンと結論を書きます。

パターン1 失敗

現在使用しているFreepbx15をraspi-cloneで複製してraspi2号機上で、推奨スクリプトを実行してみました。 → アップグレード中にエラーで停止。aptリポリトジが更新されない。

パターン2 失敗

freepbxの最新バージョンISOraspbx-10-10-2020.zipをSDカードに焼いて推奨スクリプトを実行してみました → アップグレード中にエラーで停止

パターン1・2とも、スクリプト実行中のオプションを変えてみたりしましたがうまく動作させることは出来ませんでした。結論としてこのwebページの説明通りに操作することがベストでした。

パターン3 (成功)

rapberryPiシステム作成ユティリティーでBullseye(64bit)を書き込み(何故かbalenaEtcherはだめ) → 推奨スクリプトを実行 → 手動でFreepbxの各項目を設定で完全動作しました。

成功したパターン3の操作について説明します

rapberryPiシステム作成ユティリティーは必ず最新バージョンを使うようにしてください。
(Raspberry Pi Imagerver1.7.1)
私のものは、バージョンが古かったせいでBullseye(64bit)がメニューに出てきませんでした。
通常のSDカードにイメージを書き込みます。今はこれにフォーマッターもついているので64Gのカードでも面倒なことをせず使えます。

あっさりRaspbian 11 Bullseyeが書き込めました。

最初だけRaspberryPiにそのSDカードをセットしてネットワーク・HDMI・キーボードを接続してから電源を接続します。初期ログイン方法は
id: pi
password: raspberry
です。
最初は、DHCP接続でネットワークが接続された状態で起動しますので
ifconfig -a
でipアドレスを確認しておきます。
cat /etc/os-release
でブルズアイが確認できます。

raspi-configを実行

raspiのコンソールで「raspi-config」を実行し最低SSHだけは「enable」にしておきます。
私はいつもの癖で、ついでにロケール・タイムゾーン・も設定しました。
ロケール等の設定オプションはスクリプト実行中にraspi-configが実行されますのでそこで設定する事も出来ます。もちろんここでやっておいても問題ありません。

スクリプトファイルの配置と実行

windowsでfreepbxのページにアクセスして記事の一番上あたりにある
https://www.dslreports.com/forum/r30661088-PBX-FreePBX-for-the-Raspberry-Pi
にアクセスしますとスクリプトファイルのダウンロードページにジャンプします。
上部のFreePBX-Rasp···ryPi.zip 658,073 bytesのリンクをクリックして、ZIPファイルをダウンロードし適当な場所に保存して、解凍しておきますます。
install,install.tar.gz等のファイルができると思いいます。

次にwindowsでFTPソフト(私はWinSCP等)を立ち上げて、先程 ifconfig -a で調べたIPアドレスに接続します。
/home ディレクトリの下にディレクトリ pi を作ったら。その中にダウンロードした「install他」のファイルを全部コピーします。

次にraspiのコンソールでもSSHコンソール(先程調べたip)でもいいので
スクリプトの実行ディレクトリに入ります。
cd /home/pi
ここからは解凍して出来上がったファイルのREADME.TXTの通りにすすめていきます。
日本語訳を書きます。
スクリプトファイルに実行権限を設定します。
$ chmod +x install
スクリプトファイルを実行します。
$ sudo ./install

各メニューに答える

途中メニュー画面でrootパスワードの設定や
freepbx15 or 16
asterisk 19
など質問されますが、どうせ最初から作るのなら新しいものということで ^^;
freepbx16
asterisk19
エッジモード はい
ipv6 はい
というセッティングにしました。エッジ有効は最新のリポリトジ(update server)を使うかどうかを選択するオプションです。商用モジュールを使っている人は「N」がおすすめのようです。
説明はここに記載されています。後でfreepbxGUIから変更できます。ipv6「y」でもV4も使えます。

ルートパスワードは覚えておきましょう。
このあとフェーズ1~フェーズ4 まで
再起動を伴ってかなりの時間作業します。40分くらいだったかな....。

途中raspi-configが起動しますので、ロケール・タイムゾーン設定などが行なえます。
またaptで各ファイルのアップデートも自動実行されます。
PHP7.4の導入も自動で行ってくれます。

raspiのコンソールでダイレクトに操作したりSSHで操作する際も同様ですが、
再起動後 大事なのは「毎回ルートでログインすること」です。
ルートログインしないと、スクリプトの継続が正常に進みません。
(そうでないと何事もなかったようにプロンプトが表示されるだけです)
途中SSL・TSLの鍵ファイルの管理を現在の従来型にするかパッケージメンテナの新型にするか聞かれますが、私は従来型のままにしましたので、
pemファイルは「/etc/ssl/certs/ssl-cert-snakeoil.pem」に
keyファイルは「/etc/ssl/private/ssl-cert-snakeoil.key」に保存されていました。今思えばせっかくなので新型にしておけば良かったと思っています。

うまくスクリプトが最後まで実行されますと、このように表示されます。
これで
FreePBX16+Asterisk19+Linux11(Bullseye)がRaspberryPiに導入されました。
まずはめでたしめでたしです。

FreepbxのGUIでアクセスして設定する

ここまで来ますと、Freepbxでアクセスできます。
ブラウザからipアドレスを入力するとGUI画面が表示されます。
ここからPBXのセッティングに進みます。最初だけ現れる画面に所要の設定を書き入れます。

内 線
着信グループ
トランク
インバウンドルート
アウトバウンドルート
IVR
の設定と進んでいきます。

私はここで、旧freePBXのバックアップデータを利用できないかとバックアップファイルのエクスポート → インポート を使えないかと思い途中まで実行してみましたが、インポートの際モジュールのバージョンが「15」と表示されていたので、このままインポートするともしかして、これだけ時間をかけて「16」にアップグレードしたものが台無しになってしまうのでは?と感じたためfreePBXユーティリティーのバックアップと復元は使わないことにしました。15と16で微妙に設定項目が減ったり増えたりしていますので、問題なくそのまま移行できるような感じがしませんでした。

まあ元々内線が7回線トランク・インバウンド・アウトバウンドが1、IVRが1ですので大した設定項目ではありません。
バージョン15と比べてTLS設定項目部分がなくなったりしているので戸惑いもありましたが、旧来からの項目については愚直にそのまま設定しました。
その点では、piのIPアドレスが違うだけで現在稼働しているPBXをそのまま参照できるのは安心ですし楽でした。あとはIVR用の音声ファイルをドラッグアンドドロップしたり、電話用のプロビジョニングファイルを設置したり、各所の設定を日本語に変えたりとそれぞれ一回やっている作業なので念入りに全部チェックしても30分ほどで終了しました。

いよいよ本格稼働

全部の設定が終わったら、dhcpcd.confのeth0のipアドレスを書き換えて固定IPアドレス(現在稼働中のPBXのアドレス)に変更して
shutdown -h now
とやって電源off
現在稼働中のraspiについても
shutdown -h now
とやってとやって電源off
SDカードを抜いて今回アップグレードしたSDカードと交換後、
電源onします。問題なければ電話発信、着信ともうまくいくはずです。だめならシャットダウンして古い方のsdカードを装着して再稼働してから新しいsdカードのpbx設定を再確認します。

私の場合は今回もやらかしてしまいました。

freepbxの動作確認をする前に、ftpサーバー・sambaサーバーを設定してしまったためFTPのマウント失敗などのせいでなんとipアドレスも認識しないドツボpbxになってしまいました。
こんなことってあるかぁー?
必ずpbxの動作確認をして、その稼働状態でftp・sambaを導入設定したほうが安全です。旧機に戻してネットワークなし・HDMI接続+キーボードでftp・samba削除で復旧できました。 ^^;

他のサーバーはpbx完全作動後に

私の場合PBXに防振カメラの録画用FTPサーバー+sambaを導入していますの
そちらの導入も行いました。
設定方法は現在稼働中のものと、同等ですので参考にしてください。

その後の動作は

約1ヶ月ほど稼働していますが、これといった問題もなく正常動作しています。
PHP7.4+linux11 64bitになったことでモジュール更新やaptによるアップデート等が幾分体感スピードがアップしたように思います。
ただPHPは8.1が安定バージョンとなり更に高速処理しているそうなので、楽しみです。
pbxとしては所要の動作さえしていれば問題ないので旧バージョンでも良かったかもしれませんが、
さすがにPHP5.6での動作は気分的に時代遅れ感がありますよね。

Raspi本体がここに来て高騰

ただ気にかかる点は以前4500円ほどだったRaspi本体がここに来て高騰している事です。元は教育用という事で廉価で販売していたのですが...。
ユーロ圏では比較的安価なようですが、それでも1万円程度と初期の頃と比べると約2倍です。日本ではほぼ6倍ですよ!!!ビデオカードに至っては一時の10倍してます。これだけraspiが高額なら、intel系cpuのミニPCの方がraspi価格以下ですから得です。これにfreepbx distroを導入する手もあります。低消費電力・低騒音・高安定性の個体があれば乗り換えるのもありですね。
デバイス市場が安定して早く元に戻って欲しいです。

CHUWI ミニPC HeroBox 8GB+256GB SSD Celeron J4125 Windows10搭載 小型PC 高速Wi-Fi BT4.0 Type-C USB 3.0 ファンなし 静音 Mini PC Windows11対応
CHUWI
¥25,500(2022/04/16 16:57時点)
★8GBの高周波および高速メモリーを搭載し、システムのコンピューティング能力を解放する。256GB M.2 SSDにより、ハードディスクドライブに比べて読み取りと書き込みのパフォーマンスが速く、数秒間で起動しソフトウェアも高速に実行
wajun ミニPC Pro-X2(Win 11モデル)/MS Office 2019/Celeron N4500 1.1GHz/DDR4メモリー:8GB/SSD:128GB/USB 3.0/Type-C/HDMI/無線機能/Bluetooth/2022年モデル
wajun
¥23,800(2022/04/16 16:59時点)
超軽量・薄型、省電力の設計!! Jasper Lake世代Celeron N4500搭載!!超省スペース設計!!