FreePBX #とは
概要
FreePBXとは米国Sangoma社が開発しているAsteriskという電話システムソフトウェアをWebインターフェイスから設定するためのWeb管理インターフェイスです。
Asteriskは現在Sangoma社が保有・管理し、FreePBXはAsteriskと不可分なものとなりつつあるため、実質的にはFreePBXイコールAsterisk電話交換システムである、と思っていただいて構いません。
前史
従来、Sangoma社はこのFreePBXの運用に特化したLinuxディストリビューション「FreePBX Distro」を提供してきましたが、これはCentOS 7をベースとした大変古いディストリビューションでした。
そしてCentOSがCentOS 8からCentOSのベースOSであるRed Hat Enterprise Linuxを開発しているレッドハット社の陰謀により2020年末にサポート方針が変更され、長期間のサポートが打ち切られることが決まると、CentOSの後裔となるディストリビューションが乱立したため、FreePBX Distroの開発はどのOSを採用するかについて迷走することになります。
この間、CentOS 7ベースのFreePBX Distroは最新世代のハードウェアにインストール出来ない(正確には、インストールは出来ているようだがディスプレイ表示もキーボード操作も受け付けない)という状況が長期間続きました。
FreePBX17(Beta)
そして約3年の紆余曲折を経て、ようやく次のバージョンであるFreePBX17から、インプレースアップグレードが可能な(つまり、OSの再インストールを行わずに次のバージョンへのアップグレードが可能で、最新ハードウェアへのインストールもちゃんと追随できている)Debian上に、Debianとは別個のソフトウェアモジュールとしてインストールを行い、専用ディストリビューションの新しい開発は行わないという指針が2023年末に示され、2024年3月12日、ついにBeta版が公開されました。
今回はそのFreePBX17 Betaを日本最速(多分?)でインストールして実働環境まで持って行った話です。
インストール
Debianのインストールイメージ作成
兎にも角にもDebian本体を公式サイトからダウンロードしてUSBかDVDにイメージを書き込んでください。
書き込み手順は色々知見がインターネットに転がっておりますので、この記事では割愛させていただきます。
なお、今回のDebianインストールについてはスクリーンショットの都合上、全てHyper-V上の仮想マシンへのインストールという形で行いました。
OS本体のインストール
Debianのインストールに慣れている方はこの項目はぶっ飛ばしていただいて構いません。飽く迄もFreePBX Distroの自動インストールに慣れている方向けに掲載しています。
以下、空欄だと進められない箇所はお好きな値(構築要件に合致する設定)で進めてください。
それ以外のラジオボタンやチェックボックスについてはスクリーンショットの指定通りを推奨します。
今回は(あまり深く考えずに)GUI(GNOME)付きの環境でインストールしました。
ドメインの設定
ここでは例示として私の独自ドメインを指定してしまっていますが、お好きなドメイン(構築要件に合致するドメイン)を指定してもらって構いません。
プリインストールソフトウェアの選択
後々面倒なのでここでSSHサーバだけはチェックを入れておいてください。
その他、デスクトップ環境は好みのものを選んでおいてください。
WebサーバについてはFreePBX17本体のインストール時に自動でインストールされますのでここではチェックを入れなくても構いません。
「続ける」をクリックしたら、あとは自動でインストールが始まります。
Debianインストールの完了
この画面が表示されたら「続ける」をクリックしてください。
自動的にディスクがアンマウントされ、インストールしたマシンが再起動します。
再起動後、ログイン画面になります(情報保護のためスクリーンショットではユーザー名をマスクしてあります)。
インストール時に設定したユーザーパスワードでログインしてください。
Debianの初期設定
ネットワークアドレスを固定する
右上のアイコンをクリックしたらメニューが開きますので、その中から「有線」を選びます。
トグルスイッチの右のギヤのマークをクリックします。
IPアドレスがDHCPで自動取得になっていますので、これを固定にしてやる必要があります。「IPv4」「IPv6」のタブを開きます。
それぞれ設定したい任意の値または「無効」を選んでください。
以上でDebian側の初期設定は終了です。
DebianにSSH接続して設定
インストールが完了したDebianに作成したユーザーとパスワードでログインし、徐にrootになります。
rootユーザーを禁止にしている場合はsudo出来るユーザーでの実行に読み替えてください。
User@FreePBX:~$ su -
初期状態ではcurlが入っていませんのでインストールします。
root@FreePBX:~# apt update
root@FreePBX:~# apt upgrade
root@FreePBX:~# apt install curl
ここまで完了したら、FreePBXの公式サイトの記事に飛んでインストールスクリプトの実行コマンドをコピーします。
root@FreePBX:~# curl https://raw.githubusercontent.com/FreePBX/sng_freepbx_debian_install/master/sng_freepbx_debian_install.sh | bash
インストールが自動で始まりますので完了までコーラでも飲んでまったりと待機してください。
2024-03-14 09:00:31 - Executing fwconsole reload/restart ..
root@FreePBX:~#
上記の表示になったら、念の為Apache2がインストールされた時に自動生成されるインデックスファイルを削除してから、Debianを再起動します。
root@FreePBX:~# rm /var/www/html/index.html
root@FreePBX:~# shutdown -r now
FreePBXのWebUIに接続して設定
ブラウザに「http://(Debianに設定した固定IP)/」を入力します。
見慣れたFreePBXのいつもの初期設定画面が表示されました。
ここからはいつものFreePBXのお作法で操作が可能ですので、設定方法の解説は他の知見に譲るものとして、注意点だけ書いておきたいと思います。
注意点
(公式提供のプログラムで進めているのに)アクティベーションが通らない
ウィザードの通りに進めていくと、なぜかアクティベーションが失敗することがあります。
諦めずに二度三度とチャレンジしましょう。
再起動する度にアクティベーションが外れることがある
もしかして(仮想)マシンのMACアドレスが動的になっていませんか?
FreePBX Distroの頃にそういう問題が起きていました。
MACアドレスを固定にしてみてください。
アクティベーションしたらダッシュボードがアラートでいっぱいなんだけど!?
そういう仕様です。
.htaccessがどうとか色々表示されていますが、Firewall以外は通知の「×」か「-」をクリックすれば消えます。
UCPが走ってないんですが……
多分まだ未解決のバグです。
root@FreePBX:~# fwconsole start ucp
root@FreePBX:~# shutdown -r now
これで再起動から10分経ってからアクセスしてみてください。
治ってなければSangoma社のGitHubのFreePBX公式リポジトリに報告を上げてみてください。
Asterisk Infoの画面でAsteriskの状態が取得できてないんですが?
高度な設定 -> Asterisk REST Interface -> Enable the Asterisk REST Interface
と進んで、「いいえ(No)」を「はい(Yes)」に変えてください。
画面が英語なんですけど……
初期設定画面が英語なのは仕様です。途中で使用言語を選ぶところがありますのでそこで日本語を選んでください。
ちなみにそこで日本語を選んでも、「高度な設定」で「表示言語」と「インジゲーショントーン」と「デフォルト言語」と「PHP Timezone」を設定してやる必要があります。
みんなバラバラで連動してないので頑張って項目探して日本の設定に合わせましょう。
それでも日本語になってない部分があるんですけど……
そういう仕様です。
バックアップデータから復元できないんですけど……
FreePBX17に書き込めるのはFreePBXの16 or 17のバックアップデータです。
FreePBX15からアップグレードしてデータをインポートするには、FreePBX15をFreePBX16に上げる必要があります。
それが出来ない場合は、一つ一つコピペしていく必要があります(白目)。
Chan_Sip使いたいんですけど……
Chan_Sipは非推奨になりました。
Pj_Sipで頑張ってください。
UFWインストールしてたのに消えたんですけど……
インストールスクリプトで削除される仕様です。諦めてください。
インストールしてみて感じた所感
Debianにインストール出来るようになったのでDebian系のお作法が使える
覚えるLinuxのお作法をDebian系に統一することが出来るメリットがある
インプレースアップグレードが出来る様になる
以前(FreePBX Distroが動かないハードウェアに)UbuntuをインストールしてFreePBX16を入れた時は、Asteriskのビルドからやるハメになって心が折れたので、Debianで(エラー表示が消えないとは言え)インストールスクリプト一本でFreePBXがほぼほぼ完全に機能しているっぽいのは素直に褒めても良いと思う。
コロナ禍からこちら、専らテレワークだのセキュリティだのFreePBX Distroがどうなるのか二転三転しただのAsteriskがSangomaの財産になっただのPBX as a Serviceみたいな感じで野良PBXは下火になった(※個人の主観です)だの、色々ある(あった)けど、FreePBX17が本リリースになったらまた盛り上がると良いなあ、みたいな