RasPBX（ひかり電話のマイナンバーとFAX対応）

### はじめに

- [RasPBX の導入（ひかり電話編）](https://qiita.com/katsumin/items/419e00d80f02c30522f0)以来、通話はひかり電話、FAX は[IP 電話サービス](https://smart.fusioncom.co.jp/sfkr/mypage/)と使い分けてきました
- 今回、フレッツからの転用（PPPoE から IPv4 over IPv6 への切り替え）に伴い、FAX の見直しが必要になりました
  - FAX番号を提供しているfusionのためにポート開放していましたが、IPv4 over IPv6によりポート開放が不可となりました
    ![変更前.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/166435/7386a0f0-28b2-834f-5e4e-391f39c8e948.png)

---

### IP 電話サービスからの移行

- いくつか検討しましたが、FAX 用のひかり電話番号を追加（`マイナンバー`）することにしました。
  1. [メッセージプラス](https://www.messageplus.jp/)
     - 月額 1,045 円、年払いで 10,450 円
     - メリットは一番面倒がないところ
  1. PPPoE を併用

     - HGW 配下に設置したルータで PPPoE 接続を行う
     - メリットは追加料金がかからないところ
     - 二重ルータ構成になるなど、ネットワーク構成が複雑になるのがデメリット
  1. [ひかり電話のマイナンバー](https://flets.com/hikaridenwa/service/mynumber.html)（ 採用した方法）
     - 月額 110 円
     - SIP サーバが LAN 内にあるため、ルータのポート開放が不要
     - 変更後の構成
       ![変更後.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/166435/133da8db-c3a0-64fd-e4b3-8a5ccb20ee18.png)


---
### RasPBXの設定

- 基本的に[RasPBX の導入（ひかり電話編）](https://qiita.com/katsumin/items/419e00d80f02c30522f0)と同じ
  - 追加番号に対するアウトバウンドルート／インバウンドルート／着信グループを追加
  - 構成イメージは、こんな感じ
  ![raspbx.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/166435/d224b3a7-0606-1b9f-b61f-86ee980c756a.png)


---

- トランク
  ![trunk.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/166435/61943341-3633-5ffb-bfb5-a4932a1e3ce7.png)
  ![trunk_pjsip.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/166435/e0d59548-1bfc-922a-5bd7-fc11acc3e690.png)
---
- アウトバウンドルート
  - 基本番号
  ![out_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/166435/9ec28ae4-b50b-89b5-d13c-52c0e190bc3c.png)
  ![out_1_dial.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/166435/fc605e08-1b71-71d7-4a9d-80182796e87a.png)
  - 追加番号
  ![out_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/166435/7fc39d6d-9a91-172b-4a9e-3c4090fc8e3d.png)
  ![out_2_dial.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/166435/fdab974a-f411-be2a-db4a-b0118264673c.png)
---
- インバウンドルート
  - 基本番号
  ![in_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/166435/be12b044-2dd8-776e-865a-0184a66c7696.png)
  - 追加番号
  ![in_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/166435/68b32dfd-0838-73d1-d7ce-c971840d01ee.png)
---
- 着信グループ
  - 内線202と内線203は音声用、 内線150はFAX用
![recv_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/166435/dbd992ec-c3fc-0721-a21b-882573fca6da.png)
![recv_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/166435/8e2ba983-b1b5-6f03-f163-9939c07f899a.png)
---
- 発信番号を指定できるように
  - extensions_custom.conf に追記（PPIヘッダで発信番号を指定する）
  ```conf
  [macro-dialout-trunk-predial-hook]
  exten => s,1,Set(HASH(_SIPHEADERS,P-Preferred-Identity)=<sip:${CALLERID(num)}@ntt-east.ne.jp>)
  exten => s,n,MacroExit()
  ```
---
### HylaFAX

- FAX が使えるプリンタ複合機を使用していましたが、[HylaFAX](http://www.raspbx.org/documentation/#fax)をインストールしてみました。（ラズパイのみで FAX 送受信可能）
- また、[Postfix](https://www.postfix.org/)をインストールし、FAX 受信時にメールを送信するように設定しています
  - 色々な smtp サーバを試行錯誤しましたが、結局 Gmail にしました

#### ssh コンソール操作

- FAX 送信
  ```sh
  sendfax -n -d <送信先電話番号> <送信ファイル>
  ```
- FAX 送信確認
  ```sh
  faxstat -s
  ```
- FAX 受信確認
  ```sh
  faxstat -r
  ```

#### ブラウザ操作

- ssh 接続してコマンド操作するのが面倒なので、REST API 化しました
  - [fax_api](https://github.com/katsumin/fax_api)をGitHubで公開しています
  - ブラウザ上の SwaggerUI から操作できます
  ![swaggerui.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/166435/26035bee-3212-13ce-00d1-60d9ef481807.png)
- 簡易なものですが、フロントエンドを作成しました
  - [fax_app](https://github.com/katsumin/fax_app)をGitHubで公開しています 
  - FAX送信画面
    ![fax_snd.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/166435/934dc9cf-69ea-f068-9ca2-77cb52159843.png)
  - FAX受信画面
    ![fax_rcv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/166435/25af654f-e45b-c80d-abf0-65ea4a6202cd.png)