RasPBXの導入（概要と準備）

# RasPBXとは

[FreePBX](https://www.freepbx.org/)というAsterisk（IP-PBXソフトウェア）をWebブラウザで操作できるようにしたディストリビューションがあります。
このFreePBXを、ボード・コンピュータの[Respberry Pi](https://www.raspberrypi.org/)（以下、ラズパイ）で動作するようにしたものが[RasPBX](http://www.raspberry-asterisk.org/)です。

- 以下のラズパイを対象としています。
 - Raspberry Pi 1 Model B+
 - Raspberry Pi 2 Model B（動作確認済み）
 - Raspberry Pi 3 Model B

---

# 動作環境
![RasPBX概念図.png](https://qiita-image-store.s3.amazonaws.com/0/166435/3f102ae0-561e-d2b0-8ed7-2f701b4b2e02.png)

- ウチのRasPBX環境の概念図です。（自宅に設置しているひかり電話ルータを含めて、４つのIP電話サービスを使っています。）
- この構成で、内線電話同士の内線通話や、IP電話サービスを使っての外線通話ができています。
 - 例えば、内線１を使ってぷららからひかり電話に電話をかけて内線３で受けたり、といったような。（結局は内線通話なのですが、ウチみたいにほとんど電話をかけない場合、意外と[意味](https://www.plala.or.jp/option/phone_flets/tokuwari/)（2021/8/2 URLが変わっていることに気づいたので修正）があったりします。）

---

# RasPBXのインストール準備

- ラズパイは、MicroSDカードをストレージとして稼働しています。
 - ディスクイメージが書き込まれたMicroSDカードをラズパイに差し込み、電源を入れればRasPBXが起動します。
- インストールに必要なもの
 - MicroSDカード（2017/2/25現在の情報では、4GB以上のMicroSDカードが必要であるようです。）
 - PCとMicroSDカードリーダライタ（ディスクイメージをMicroSDカードに書き込むため）
 - ラズパイ本体とACアダプタ（ウィキペディアによると、Pi1で600mA、Pi2で900mA、Pi3で1400mAが必要であるようです。）

---

# RasPBXのインストール手順

- ディスクイメージを、[ここ](http://www.raspberry-asterisk.org/downloads/)から入手します。ZIP圧縮されているので、解凍しておきます。

```
MacBook-Air:raspbx user$ ls
raspbx-06-03-2016.img	raspbx-06-03-2016.zip
```

- PCにMicroSDカードを差し込んで、デバイス名を確認します。（ここの例では、/dev/disk2となっています。）

```
MacBook-Air:raspbx user$ diskutil list
 :
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *4.0 GB     disk2
   1:               Windows_NTFS Windows10_32bit         4.0 GB     disk2s1
 :
``` 

- MicroSDカードをアンマウントします。

```
MacBook-Air:raspbx user$ diskutil unmountdisk /dev/disk2
Unmount of all volumes on disk2 was successful
```

- ディスクイメージを、MicroSDカードに書き込みます。
 - デバイス名は、「/dev/disk2」ではなく「/dev/rdisk2」とします。
 - 「Permission denied」が出る場合は、カードリーダライタを変えると良いかもしれません。
 - 書き込み終了まで時間がかかりますが、ctrl＋Tで状況を確認できます。

```
MacBook-Air:raspbx user$ sudo dd if=./raspbx-06-03-2016.img of=/dev/rdisk2 bs=1m
dd: /dev/rdisk2: Permission denied
MacBook-Air:raspbx user$ sudo dd if=./raspbx-06-03-2016.img of=/dev/rdisk2 bs=1m
Password:
load: 2.02  cmd: dd 53189 uninterruptible 0.00u 0.03s
18+0 records in
17+0 records out
17825792 bytes transferred in 5.639169 secs (3161067 bytes/sec)
load: 1.94  cmd: dd 53189 uninterruptible 0.00u 0.04s
31+0 records in
30+0 records out
31457280 bytes transferred in 9.630719 secs (3266348 bytes/sec)
load: 2.41  cmd: dd 53189 uninterruptible 0.01u 1.85s
1961+0 records in
1960+0 records out
2055208960 bytes transferred in 418.069361 secs (4915952 bytes/sec)
load: 5.15  cmd: dd 53189 uninterruptible 0.01u 3.40s
3611+0 records in
3610+0 records out
3785359360 bytes transferred in 766.799570 secs (4936569 bytes/sec)
3724+0 records in
3724+0 records out
3904897024 bytes transferred in 790.836238 secs (4937681 bytes/sec)
MacBook-Air:raspbx user$
```
- MicroSDカードをラズパイに差し込んで電源を入れます。IPアドレスを適当に調べて、Webブラウザで開きます。（IPアドレスは、DHCPによる自動取得となっています。）

![RasPBX1.png](https://qiita-image-store.s3.amazonaws.com/0/166435/9aa1eec6-f89a-e8d3-f9f3-2c47e7038361.png)

- ここまで、2016-03-06版をインストールした時の情報を記述しましたが、最新の2017-01-28版では、含まれるAsteriskのバージョンが11から13に変わっているようです。
    - ブラステルを使うためには、PJSIPというSIPドライバが必要であり、PJSIPを組み込むためにはAsterisk13が必要です。
    - 2016−03−06版時点でapt-getで取得できるAsterisk13にはPJSIPは組み込まれていませんでしたので、ビルドし直す必要がありました。
    - 2017−01-28版に含まれるAsterisk13にPJSIPが組み込まれているかは不明です。少なくとも、FreePBXの設定画面ではPJSIPは確認できませんでした。