不要になったスマホを内線電話として利用してみる

本記事では不要になったスマホを内線電話として活用したいという方向けに作成しています。

今回はMiracleLinux8上にasteriskサーバを構築して、内線電話を利用できるようにします。
大まかな手順としては以下3つになります。

* asteriskをインストール（リポジトリで用意されているrpmを利用）
* confファイルの編集
* SIPアプリ設定

# 環境情報
* MIRACLE LINUX release 8.10 (Peony) 4.18.0-553.16.1.el8_10.x86_64
* asteriskバージョン　18.12.1-1

最新版を利用する場合、ソースからビルドする必要がありますが、その手順は後日別の記事で紹介します。
# 構築準備
### パッケージのアップデート

```
# yum -y update
```
### epelリポジトリを有効化
```
# yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
```

### パッケージの適用

```
# yum -y install asterisk
```

# 設定ファイルを編集
以下の2つのファイルの内容をすべて消して、設定していきます。

* アカウント設定
/etc/asterisk/pjsip.conf

* 着信設定用
/etc/asterisk/extensions.conf

例として100と101の2つアカウントを作成します。
```
# vim /etc/asterisk/pjsip.conf
[global]
type=global
user_agent=Asterisk PBX
debug=yes
nat=yes

[udp]
type=transport
protocol=udp
bind=0.0.0.0:5060

[100]
type=endpoint
context=from-internal
disallow=all
allow=alaw,ulaw
allow=h264,vp8
auth=100
aors=100
callerid=100
identify_by=username,auth_username

[100]
type=auth
auth_type=userpass
password=100
username=100

[100]
type=aor
max_contacts=1

[101]
type=endpoint
context=from-internal
disallow=all
allow=alaw,ulaw
allow=h264,vp8
auth=101
aors=101
callerid=101
identify_by=username,auth_username

[101]
type=auth
auth_type=userpass
password=101
username=101

[101]
type=aor
max_contacts=1
```

着信設定

```
[from-internal]

# 100がコールされたらSIPの100を呼び出す
exten = 100,1,Dial(PJSIP/100,30,r)
same = n.Hangup()

# 101がコールされたらSIPの101を呼び出す
exten = 101,1,Dial(PJSIP/101,30,r)
same = n.Hangup()
```
# サービスを起動
```
# systemctl enable asterisk
# systemctl start asterisk
```
# 起動確認
```
# systemctl status asterisk
● asterisk.service - Asterisk PBX and telephony daemon.
   Loaded: loaded (/usr/lib/systemd/system/asterisk.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2024-10-19 04:09:59 JST; 1 day 9h ago
 Main PID: 756 (asterisk)
    Tasks: 76 (limit: 22193)
   Memory: 78.8M
   CGroup: /system.slice/asterisk.service
           └─756 /usr/sbin/asterisk -f -C /etc/asterisk/asterisk.conf
```

# スマホにSIPアプリをダウンロード
AGEphoneを例に設定していきます。
* iOSの方　→　https://apps.apple.com/jp/app/agephone/id395440596
* Androidの方　→　https://play.google.com/store/apps/details?id=com.ageet.AGEphone&hl=ja&gl=US

![Screenshot_2024-10-20-14-07-49-50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1066166/76e06e72-b3a9-6cd2-d4d6-fe228d0d2539.png)

# アプリを開いてプロファイルの設定

新規プロファイルを選択
![Screenshot_2024-10-20-14-18-29-66_f409fd372d403144a923b0649d80c483.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1066166/c7c2d118-fb47-4a4b-431e-e1ec7c7767f9.png)

標準のSIPクライントを選択
![Screenshot_2024-10-20-14-18-33-62_f409fd372d403144a923b0649d80c483.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1066166/d65a4841-4aed-52f7-7dd4-677d869a4d5f.png)

今回はユーザID、認証ID、パスワードはすべて同じに設定しています。
変更したい場合は適宜pjsip.confで変更してください。
ドメイン：IPアドレス
ユーザID:100
認証ID:100
パスワード:100
入力を終えたら、左上の戻る矢印を押してください。
![Screenshot_2024-10-20-14-18-46-84_f409fd372d403144a923b0649d80c483.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1066166/fb50a3f7-6126-8ecf-e0b7-452b99f15610.png)

以下のように「ダイヤルできます」が表示されれば、asteriskへの接続は完了です。
101のスマホも同様の設定をしてください。
![Screenshot_2024-10-20-14-08-13-29_f409fd372d403144a923b0649d80c483 - コピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1066166/2b068d3c-edbe-c201-7055-2d05910daa96.png)

# 通話
101に電話をかけてみます。
![Screenshot_2024-10-20-14-38-03-70_f409fd372d403144a923b0649d80c483.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1066166/f0eef205-2b04-2fec-e226-b3dd5c969a8a.png)

以下のようになり、101側が着信できていれば設定は完了です。
![Screenshot_2024-10-20-14-38-11-61_f409fd372d403144a923b0649d80c483.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1066166/4f7d040c-36dd-fd26-3586-1e29e5ebc790.png)