AsteriskをWSL2でセットアップした手順ー３

## 原因分析(RCA)

- Asteriskのレジスト失敗なので原因を構成要素ごとに想定

| 構成要素     | 想定原因                               |
| -------- | ---------------------------------- |
| Ubuntu   | FW、もしくは他アプリ（含むコンフィグ）の影響            |
| Win11    | Win11/WSL2のホストorネットワーク影響、デフォルトFW影響 |
| Asetrisk | ポート5060で待受けてない、コンフィグ不正             |
| Zoiper   | インストール不完全、ポート5060でAsetriskへ通信してない  |

## RCA : Ubuntu

- UbuntuのFWが原因か切り分け
  
  - firewalldのステータス確認

```
# systemctl status firewalld
Unit firewalld.service could not be found
```

- サービス見つからないと返るのでFWなし＝原因でない（そもそもインストールなし）

- 他アプリが原因でAsteriskやZoiperへ影響の可能性ほぼなく後回し

## RCA : Win11、WSL2

- Win11/WSL2のホストorネットワークが原因か切り分け

:::note
ネットを調べると・・
Win10のWSLは同じホスト上にUbuntuがサブシステムで提供・・だったのがWSL2ではHyper-Vの仮想ホストでWin11とUbuntuが提供される仕様とのこと （別々のホストとして）
:::

- ホスト/ネットワーク構成を再整理、当初認識は・・

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/97381/11e46184-3067-0e4c-9c6a-393835edfc09.png)

- 判明した仕様からWSL2はHyper-Vの仮想ホストと仮想ネットワークで構成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/97381/5ff21ce4-4903-5d08-dc14-6add5f3fd0b1.png)

- 従いAsterisk/Ubuntuは別仮想ホストで仮想ネットワークのIPアドレス

- つまりWin11のClass C Private address: **192.168.1.84**でははない

- Asterisk/UbuntuのIPアドレスを確認

```
root@DESKTOP:/etc/asterisk#ip a show dev eth0
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/97381/21b61b30-8d72-9ecd-c499-f22a12d9bb3d.png)

- Class B Private address:  **172.25.27.195/20**
  
  - よくよく見るとWSL起動時にも表示あり **IPv4 addrfess for eth0: 172.25.27.195**

![screen shot - WSL to Ubuntu2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/97381/4e3ca93c-db04-d59d-dbd1-5a520f8de057.jpeg)

## 仮想ホスト/ネットワーク対応

:::note
Hyper-Vの仮想ネットワーク172.25.16.0とDesktopやUserPCの物理ネットワーク192.168.1.0は別セグメントなのでUserPCとAsterisk/Ubuntuは直接通信できない
従いWin11/WSL2がアドレス変換（パケットフォワーディング）するようnetsh設定が必要
:::

- netshのportproxyでパケットフォワーディングを設定

```
root@DESKTOP# netsh.exe interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=5060 coneectaddress=172.25.27.195 connectport=5060
```

- listenaddressは他にグローバル設定やlocalhostもあるようで念のため追加設定

```
root@DESKTOP# netsh.exe interface portproxy add v4tov4 listenaddress=* listenport=5060 coneectaddress=172.25.27.195 connectport=5060
root@DESKTOP# netsh.exe interface portproxy add v4tov4 listenaddress=localhost listenport=5060 coneectaddress=172.25.27.195 connectport=5060
root@DESKTOP# netsh.exe interface portproxy show v4tov4
```

- portproxy設定されたか確認

```
root@DESKTOP# netsh.exe interface portproxy show v4tov4
```

![Screen 08portproxy Qiita.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/97381/e3a2eafd-e887-ca1d-eaba-8e6df594bc3a.jpeg)

![Screen 09portproxy Qiita.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/97381/2e0f0d74-35c9-44f5-e2ae-abad9d1113a6.jpeg)

:::note alert
しかし、
UserPC/Zoiperから**192.168.1.84**へレジストリを再トライするが失敗
:::

## RCA : Asetrisk

- Asteriskのポート5060待受けが原因か切り分け
  - lsofでAsteriskが利用のポートを確認

```
root@DESKTOP# lsof -i | grep asterisk
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/97381/73abc2ad-2430-4f2e-8d7b-58e20d8af6f3.png)

- asterisk（PID=1145）がIPv4、UDP、SIPでListenなので原因でない
- コンフィグ不正の原因切り分けは次のZoiperで 

## RCA : Zoiper

- インストール不完全、ポート5060でAsetriskへ通信してないが原因か切り分け
  - 仮想ホスト/ネットワーク構成からUserPCでなくDESKTOP/Win11もSIPクライアントが可
  - 従い、DESKTOP/Win11にZoiperインストールしAsteriskレジストリをトライ

![Screen zoiper of hostos SIP UDP found.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/97381/70378acd-8160-b65e-9300-4b1d6efa13a7.jpeg)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/97381/01eb1edb-4698-4f17-c572-67bf3639198a.png)

![Screen zoiper configured success.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/97381/757d911b-ea49-1a3d-a8ca-24a6fc948d5c.jpeg)

- Asteriskレジスト成功、マイク/スピーカー設定、Zoiper利用可に
- これでZoiperが原因でない、とAsteriskのコンフィグ不正も原因でないと判明

## RCA : 結果

- 纏めると・・
- UserPC/ZoiperからAsteriskへレジストリを再トライするが依然失敗
- Ubutntu、Asterisk、Zoiperが原因ではない
- WSL2が原因の可能性が高い
　　　

- 従いWin11/WSL2を除外しUbuntuマシンにAsteriskセットアップをやってみる

[AsteriskをWSL2でセットアップした手順ー４](https://qiita.com/ihopeyouallhavefun/items/8aa019387011b8090995)・・に続く
[AsteriskをWSL2でセットアップした手順ー２](https://qiita.com/ihopeyouallhavefun/items/b5d1d0b0c2958c4c88cf)・・に戻る