FreePBX17(Beta)をセットアップしてみた話

# 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のインストールイメージ作成
https://www.debian.or.jp/cdimage/

兎にも角にもDebian本体を公式サイトからダウンロードしてUSBかDVDにイメージを書き込んでください。
書き込み手順は色々知見がインターネットに転がっておりますので、この記事では割愛させていただきます。

:::note warn
なお、今回のDebianインストールについてはスクリーンショットの都合上、全てHyper-V上の仮想マシンへのインストールという形で行いました。
:::

### OS本体のインストール
Debianのインストールに慣れている方はこの項目はぶっ飛ばしていただいて構いません。飽く迄もFreePBX Distroの自動インストールに慣れている方向けに掲載しています。
以下、空欄だと進められない箇所はお好きな値(構築要件に合致する設定)で進めてください。
それ以外のラジオボタンやチェックボックスについてはスクリーンショットの指定通りを推奨します。
今回は（あまり深く考えずに）GUI（GNOME）付きの環境でインストールしました。
![スクリーンショット 2024-03-14 7.58.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/bd07dd55-8a7b-9ab3-72ce-7a95be861fc6.png)
![スクリーンショット 2024-03-14 7.59.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/18851203-0148-4264-70cb-61da64f4f3dd.png)
![スクリーンショット 2024-03-14 7.59.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/b1ad1451-46af-1337-c53a-90be1d114787.png)
![スクリーンショット 2024-03-14 7.59.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/a1684f84-aeac-fffd-687f-3230b5cabce9.png)
![スクリーンショット 2024-03-14 8.00.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/fba3853e-b7d4-6060-6568-757abdd7d687.png)
### ドメインの設定
![スクリーンショット 2024-03-14 8.01.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/8b1115fd-66a7-65d1-f4df-a628702f7a5d.png)

:::note warn
ここでは例示として私の独自ドメインを指定してしまっていますが、**お好きなドメイン(構築要件に合致するドメイン)を指定してもらって構いません。**
:::
![スクリーンショット 2024-03-14 8.01.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/265b9226-346f-9ef4-b5ce-1ab1d0146d2c.png)
![スクリーンショット 2024-03-14 8.01.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/3c339ca4-bd8a-fa4c-7690-e2a7804835b2.png)
![スクリーンショット 2024-03-14 8.03.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/bed409c4-5dc8-af27-cf01-b908698608c4.png)
![スクリーンショット 2024-03-14 8.03.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/79a2be3f-2102-b64c-79c5-f5fb4762d256.png)
![スクリーンショット 2024-03-14 8.04.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/b83a0b09-042c-6223-b5c3-2169bab833f0.png)
![スクリーンショット 2024-03-14 8.04.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/a6290249-0126-b156-4f00-464aecea913a.png)
![スクリーンショット 2024-03-14 8.05.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/dcd8c8d0-8be7-e7c0-7c7f-be289b194834.png)
![スクリーンショット 2024-03-14 8.05.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/17752172-2ac8-508a-4bab-05bf712ee71d.png)
![スクリーンショット 2024-03-14 8.05.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/57fab017-36af-0c7a-5c98-f3a332573935.png)
![スクリーンショット 2024-03-14 8.08.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/16764a32-f7b0-2fc3-f512-61cba17bd714.png)
![スクリーンショット 2024-03-14 8.08.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/8613ab25-60c9-6bae-7969-628b4b3307b1.png)
![スクリーンショット 2024-03-14 8.08.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/20fc840a-ef81-118e-5e18-e48201b06ad8.png)
![スクリーンショット 2024-03-14 8.08.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/7c3e5df1-e1db-a972-ffc8-1d0192ef1ad8.png)
![スクリーンショット 2024-03-14 8.09.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/76c4fa42-64c8-9bed-974f-47900ec8c3e1.png)
### プリインストールソフトウェアの選択
![スクリーンショット 2024-03-14 8.10.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/a64cf2f5-9003-a40b-f6ad-307e8013da97.png)

:::note warn
~~後々面倒なので~~ここで**SSHサーバだけはチェックを入れておいてください。**
その他、デスクトップ環境は**好みのものを選んでおいてください。**
:::
:::note warn
**WebサーバについてはFreePBX17本体のインストール時に自動でインストールされますのでここではチェックを入れなくても構いません。**
:::
:::note info
**「続ける」をクリックしたら、あとは自動でインストールが始まります。**
:::

### Debianインストールの完了
![スクリーンショット 2024-03-14 8.25.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/00b1b2f5-d8e6-4c5a-3ca8-f5af83b575a1.png)

:::note info
この画面が表示されたら「続ける」をクリックしてください。
自動的にディスクがアンマウントされ、インストールしたマシンが再起動します。
:::
![スクリーンショット 2024-03-14 8.26.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/54ee63d2-9d0c-a282-a138-57d2b45f805c.png)

:::note info
再起動後、ログイン画面になります(情報保護のためスクリーンショットではユーザー名をマスクしてあります)。
インストール時に設定したユーザーパスワードでログインしてください。
:::

### Debianの初期設定
![スクリーンショット 2024-03-14 8.28.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/39239037-25ca-3c64-0f7b-3c6c47d525b4.png)
![スクリーンショット 2024-03-14 8.28.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/ad322f12-91bb-2204-3bea-a3c2f4e71e24.png)
![スクリーンショット 2024-03-14 8.29.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/7a0ae141-453d-f0e4-df7a-a8b327002b23.png)
![スクリーンショット 2024-03-14 8.29.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/2bd29cfb-4bc3-2184-1e90-2e70edf65c72.png)
![スクリーンショット 2024-03-14 8.29.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/d488c6b5-e7db-945c-6c9b-a79ba2540a2f.png)

### ネットワークアドレスを固定する
![スクリーンショット 2024-03-14 8.30.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/cf78c0dc-b9bf-c645-a3d8-5be88daa99c8.png)

:::note info
右上のアイコンをクリックしたらメニューが開きますので、その中から「有線」を選びます。
:::
![スクリーンショット 2024-03-14 8.30.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/2c10bcb8-0fcc-fee2-3e9f-32e4e90f1d7b.png)
![スクリーンショット 2024-03-14 8.31.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/edc82dbb-ce63-d7db-78ee-fadd153bec87.png)

:::note info
トグルスイッチの右のギヤのマークをクリックします。
:::
![スクリーンショット 2024-03-14 8.31.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/9e788dfb-245d-8047-ecaf-75d5c1c37f91.png)

:::note warn
IPアドレスがDHCPで自動取得になっていますので、これを固定にしてやる必要があります。「IPv4」「IPv6」のタブを開きます。
:::
![スクリーンショット 2024-03-14 8.32.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/9479494d-6e6d-3b58-34ef-2eec1de815e9.png)

:::note warn
それぞれ設定したい任意の値または「無効」を選んでください。
:::
:::note info
以上でDebian側の初期設定は終了です。
:::

### DebianにSSH接続して設定
インストールが完了したDebianに作成したユーザーとパスワードでログインし、徐にrootになります。

:::note warn
rootユーザーを禁止にしている場合はsudo出来るユーザーでの実行に読み替えてください。
:::
```
User@FreePBX:~$ su -
```
初期状態ではcurlが入っていませんのでインストールします。
```
root@FreePBX:~# apt update
root@FreePBX:~# apt upgrade
root@FreePBX:~# apt install curl
```
ここまで完了したら、FreePBXの公式サイトの記事に飛んでインストールスクリプトの実行コマンドをコピーします。

https://www.freepbx.org/freepbx-17-official-debian-install-beta/

```
root@FreePBX:~# curl https://raw.githubusercontent.com/FreePBX/sng_freepbx_debian_install/master/sng_freepbx_debian_install.sh | bash
```

:::note info
インストールが自動で始まりますので完了までコーラでも飲んでまったりと待機してください。
:::

```
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)/」を入力します。
![スクリーンショット 2024-03-14 10.08.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861875/395b40fe-50bd-f036-8434-7717925eab62.png)

:::note info
見慣れたFreePBXのいつもの初期設定画面が表示されました。
ここからはいつものFreePBXのお作法で操作が可能ですので、設定方法の解説は他の知見に譲るものとして、注意点だけ書いておきたいと思います。
:::

## 注意点

### (公式提供のプログラムで進めているのに)アクティベーションが通らない
:::note warn
ウィザードの通りに進めていくと、なぜかアクティベーションが失敗することがあります。
**諦めずに二度三度とチャレンジしましょう。**
:::

### 再起動する度にアクティベーションが外れることがある
:::note warn
もしかして(仮想)マシンのMACアドレスが動的になっていませんか？
FreePBX Distroの頃にそういう問題が起きていました。
MACアドレスを固定にしてみてください。
:::

### アクティベーションしたらダッシュボードがアラートでいっぱいなんだけど!?
:::note warn
**そういう仕様です。**
.htaccessがどうとか色々表示されていますが、Firewall以外は通知の「×」か「-」をクリックすれば消えます。
:::

### UCPが走ってないんですが……
:::note warn
**多分まだ未解決のバグです。**
```
root@FreePBX:~# fwconsole start ucp
root@FreePBX:~# shutdown -r now
```
これで再起動から10分経ってからアクセスしてみてください。
治ってなければSangoma社のGitHubのFreePBX公式リポジトリに報告を上げてみてください。
:::

### Asterisk Infoの画面でAsteriskの状態が取得できてないんですが?
:::note warn
**高度な設定 -> Asterisk REST Interface -> Enable the Asterisk REST Interface
と進んで、「いいえ(No)」を「はい(Yes)」に変えてください。**
:::

### 画面が英語なんですけど……
:::note warn
**初期設定画面が英語なのは仕様です。途中で使用言語を選ぶところがありますのでそこで日本語を選んでください。**
ちなみにそこで日本語を選んでも、「高度な設定」で「表示言語」と「インジゲーショントーン」と「デフォルト言語」と「PHP Timezone」を設定してやる必要があります。
**みんなバラバラで連動してない**ので頑張って項目探して日本の設定に合わせましょう。
:::

### それでも日本語になってない部分があるんですけど……
:::note warn
**そういう仕様です。**
:::

### バックアップデータから復元できないんですけど……
:::note warn
**FreePBX17に書き込めるのはFreePBXの16 or 17のバックアップデータです。**
**FreePBX15からアップグレードしてデータをインポートするには、FreePBX15をFreePBX16に上げる必要があります。**
**それが出来ない場合は、一つ一つコピペしていく必要があります(白目)。**
:::

### Chan_Sip使いたいんですけど……
:::note warn
**Chan_Sipは非推奨になりました。**
**Pj_Sipで頑張ってください。**
:::

### UFWインストールしてたのに消えたんですけど……
:::note warn
**インストールスクリプトで削除される仕様です。諦めてください。**
:::

## インストールしてみて感じた所感
### Debianにインストール出来るようになったのでDebian系のお作法が使える
:::note info
**覚えるLinuxのお作法をDebian系に統一することが出来るメリットがある**
:::
:::note info
**インプレースアップグレードが出来る様になる**
:::
:::note info
**以前(FreePBX Distroが動かないハードウェアに)UbuntuをインストールしてFreePBX16を入れた時は、Asteriskのビルドからやるハメになって心が折れたので、Debianで（エラー表示が消えないとは言え）インストールスクリプト一本でFreePBXがほぼほぼ完全に機能しているっぽいのは素直に褒めても良いと思う。**
:::
:::note info
**コロナ禍からこちら、専らテレワークだのセキュリティだのFreePBX Distroがどうなるのか二転三転しただのAsteriskがSangomaの財産になっただのPBX as a Serviceみたいな感じで野良PBXは下火になった(※個人の主観です)だの、色々ある(あった)けど、FreePBX17が本リリースになったらまた盛り上がると良いなあ、みたいな**
:::