はじめに
Teams 電話を検証するにあたり、障壁となるのが Teams と 公衆電話回線網 (PSTN) との接続です。PSTN と接続するにはキャリアとの契約が必要となり、また電話料金も発生します。
そこで別の方法として、Azure 上に疑似的な PSTN 環境を構築し、Direct Routing で Teams と接続する方法があります。この方法では実際の PSTN を利用する訳ではないため、キャリアとの契約が不要で、電話料金も発生しません。
※ Azure 仮想マシンや証明書などの費用は発生します。
以下で、Azure 上に疑似的な PSTN 環境を構築し、 Teams 電話を検証する手順をご紹介します。
前提事項
- Azure サブスクリプションを持っていること
- Microsoft 365 E5 など、Teams と Teams 電話を使用できるライセンスを持っていること
- 独自のドメインを契約していて、テナントにカスタムドメインを構成していること
- SBC に設定する証明書を発行していること
上記は @carol0226 さんの以下の記事に詳しい手順が記載されています。
- 1, 2 について
もし MCT を保持していれば、特典の Azure サブスクリプション、Microsoft E5 Developer ライセンスを利用できます。
- 3, 4 について
ドメインと証明書は Azure サブスクリプションを使用して、Azure 上で取得することもできます。
証明書は Microsoft が提示している信頼された CA 一覧に含まれているプロバイダーから発行する必要があります。
(参考:SBC のパブリック信頼証明書)
https://learn.microsoft.com/ja-jp/microsoftteams/direct-routing-plan#public-trusted-certificate-for-the-sbc
Teams 電話 検証環境
構成図
Azure 上に疑似 PSTN 環境を構築し、Direct Routing で Teams と接続します。設定した外線電話番号を使用して、Teams クライアントから Teams 電話を使用することができます。
※ 実際の PSTN と接続しているわけではないため、電話番号は任意の適当な番号を設定します。
構築手順
- SBC の構築
1-1. SBC のデプロイ
1-2. DNS レコードの登録
1-3. SBC の設定 - Teams の設定
2-1. SBC の追加
2-2. 音声ルートの設定
2-3. 音声ルーティングポリシーの設定
2-4. ユーザーへの電話番号の割り当て
2-5. SBC から Teams への発信テスト - ソフトフォンの構築
3-1. 仮想マシンのデプロイ
3-2. MicroSIP の設定
3-3. OS の設定
3-4. 外線通話のテスト
1. SBC の構築
初めに、Azure に SBC を構築します。
SBC は Session Border Controller の略で、Teams と PSTN は SBC を介して接続されます。
1-1. SBC のデプロイ
今回は Ribbon Communications 社の SBC SWe Edge Quick Launch を使用します。このイメージを使用すると、必要最小限の設定で Teams と接続することができます。SBC SWe Edge は Microsoft の認定 SBC です。
SBC SWe Edge はデプロイ後、評価版ライセンスで動作します。評価版ライセンスの期限は 30 日間となっています。期限が切れても再度デプロイすればまた 30 日間利用できます。
※ 恒久的な評価版ライセンスも用意されていますが、こちらの取得には Ribbon Communications 社の営業にコンタクトをとる必要があります。試しに連絡してみたところ、英語のメールで用途などを説明しなければならず、簡単には入手できなさそうでした。
[リソースの作成] から [SBC SWe Edge Quick Launch] を選択します。
以降のウィザードでは赤枠で示した箇所以外は既定のままで問題ありません。
リソースグループ、リージョン、同時通話数を入力します。今回はリージョンを Japan East、同時通話数は最小の 1-10 を選択しています。
[SBC SWe Edge Settings] タブで、SBC の管理コンソールのログイン情報、SBC に使用するホスト名とドメインを入力します。ここで設定したホスト名を後の手順で DNS ゾーンの A レコードに登録します。
[作成] からデプロイを行います。デプロイが完了したら、[出力] からパブリック IP を確認し、コピーしておきます。
1-2. DNS レコードの登録
SBC の FQDN がパブリック IP に名前解決されるように、自身がドメインを契約している DNS プロバイダーの DNS ゾーンに A レコードを追加します。
以下は Azure DNS ゾーンでドメインを契約している場合の例です。
1-3. SBC の設定
1-3-1. 管理画面にログイン
以下の URL にブラウザからアクセスします。
※ DNS レコードの反映に時間がかかるため、IP アドレスでアクセスしています。
https://【SBC のパブリック IP】
ブラウザの警告が表示されますが、今は無視します。後の手順で証明書をインポートすれば表示されなくなります。
ログイン画面が表示されたら、1-1 のリソース作成時のウィザードで設定した情報を入力してログインします。
※ 初回ログインの際にはパスワードの変更が求められます。変更後、再度ログインします。
1-3-2. 証明書のインポート
SBC には以下の 2 種類の証明書をインポートする必要があります。
- ルート証明書
- サーバ証明書
ルート証明書
以下のルート証明書をインポートします。
-
DigiCert Global Root G2
Teams 側で使用されている証明書の CA です。以下の URL からダウンロードします。
https://www.digicert.com/kb/digicert-root-certificates.htm -
サーバ証明書の CA
SBC に設定する証明書が信頼しているルート証明書、中間証明書です。
App Service 証明書では Go Daddy が CA となっていました。以下の URL からダウンロードします。
https://certs.godaddy.com/repository/
各ルート証明書をダウンロードしたら、SBC 管理画面の [SBC Easy Setup] - [Certificates] をクリックし、[Trusted CAs] のインポートボタンからアップロードします。
正常にインポートされると、以下のように表示されます。
サーバ証明書
SBC に設定するサーバ証明書をインポートします。[SBC Primary Certificate] - [Import] から行います。
パスフレーズを入力し、証明書ファイルアップロードします
App Service 証明書の場合、既定ではパスフレーズが設定されていないためか、そのままではインポートすることができませんでした。以下の方法でパスフレーズを設定すると、インポートすることができました。
(参考:Export App Service Certificate and set up a password)
https://techcommunity.microsoft.com/blog/appsonazureblog/export-app-service-certificate-and-set-up-a-password/3731559
正常にインポートされると、以下のように表示されます。
1-3-3. Teams との接続
SBC と Teams を接続します。[Easy Config Wizard] をクリックします。
Step 1 では以下のように入力します。
※ 疑似環境なので [Scenario Description] と [Telephone Country] は適当でも問題ありません。
Step 2 では以下のように入力します。
[SIP Trunk: Other SIP Tunk] に設定する IP アドレスは、後述の手順で作成する仮想マシンの IP アドレスです。[NAT Public IP] は SBC のパブリック IP を入力します。
※ 仮想マシンはまだデプロイしていませんが問題ありません。
設定後、[Monitor] タブに Teams との接続状態が表示されます。表示が緑 (Up) になっていることを確認します。
2. Teams の設定
次に、Teams 側に SBC へ接続する設定を追加します。
以下の手順は [Teams 管理者] 権限が付与されているユーザで Teams 管理センター へサインインして行います。
2-1. SBC の追加
[音声] - [ダイレクト ルーティング] から [+ 追加] をクリックします。
名前には SBC の FQDN、SIP シグナリングポートは 5061 を設定し、作成します。
作成後、TLS 接続 と SIP オプションの状態が [アクティブ] になっていることを確認します。
名前 | 説明 |
---|---|
TLS 接続の状態 | トランスポートレイヤ (L4) 接続の状態です。 |
SIP オプションの状態 | アプリケーションレイヤ (L7) 接続の状態です。 |
作成直後はネットワーク有効性が 0 % と表示されますが問題ありません。
2-2. 音声ルートの設定
[音声ルート] タブへ移動し、[+追加] をクリックします。
任意の名前とダイヤルする番号のパターンを正規表現で入力します。
[ダイヤルする番号のパターン] の設定は、ユーザーが入力した電話番号のパターンによって転送先の SBC を制御するための設定です。今回はすべての番号を同じ SBC へ転送するのですべての電話番号にマッチするパターン「.*」を設定します。
[セッションボーダーコントローラー] をクリックし、2-1 で追加した SBC を選択します。
[PSTN 使用法レコードを追加] をクリックし、[+追加] ボタンから任意の名前で追加します。
PSTN 使用法レコードはユーザーと音声ルートを関連付けるための設定です。次に設定する音声ルーティングポリシーでも同様に設定します。
設定を保存して、音声ルートが追加されたことを確認します。
2-3. 音声ルーティングポリシーの設定
[音声] - [音声ルーティングポリシー] からグローバル ポリシーを選択し、[編集] をクリックします。
音声ルーティングポリシーをユーザーに割り当てることで、ユーザーに音声ルートが反映されます。今回はすべてのユーザーの既定のポリシーであるグローバル ポリシーを編集しています。
[PSTN 使用法レコードを追加] をクリックし、2-2 で作成した PSTN 使用法レコードを選択し、保存します。
2-4. ユーザーへの電話番号の割り当て
最後に、テスト用のユーザーに電話番号を割り当てます。[ユーザー] - [ユーザー管理] からユーザー名をクリックします。
ここで割り当てる電話番号は疑似 PSTN 環境のみで使用できる番号です。そのため適当な番号を自由に設定して問題ありません。実際に本物の PSTN へ接続する際には、キャリアから発行された電話番号を設定します。
[アカウント] - [プライマリ電話番号を割り当てる] から割り当てる電話番号を入力します。
電話番号は国コードを含めた E.164 形式 で設定します。
電話番号を割り当てたユーザーで Teams クライアントへサインインします。以下のように [通話] タブを開くと、ダイヤルパッドと割り当てた電話番号が表示されています。
割り当てた電話番号が Teams クライアントに表示されるまでに時間のかかる場合があります。その場合は、Web 版 Teams から確認したり、デスクトップクライアントのキャッシュクリアを試してみてください。
ダイヤルパッドが表示されない場合は、ユーザーに Teams 電話の利用に必要なライセンス が割り当てられていることを確認してください。
2-5. SBC から Teams への発信テスト
SBC から Teams ユーザーへ割り当てた電話番号に対してテスト通話を発信して、Teams ユーザーへ着信することを確認します。
あらかじめテスト用のユーザーで Teams クライアントにサインインしておきます。
SBC の管理画面で [Diagnostics] タブから [Tool] - [Test a Call] をクリックします。
[Destination Number] に 2-4 で Teams ユーザーへ割り当てた電話番号を入力します。2 行目の番号は適当な番号で問題ありません。[Call Routing Table] は [Teams Direct Routing From SIP Trunk] を選択します。
[OK] を押すと発信が行われ、Teams クライアントに正常に着信することを確認します。
3. ソフトフォンの構築
ここまでの手順で SBC から Teams へ通話を発信できる状態になりましたが、まだ Teams から外線電話の発信が行えません。仮想マシンをデプロイして、ソフトフォン (MicroSIP) をインストールすることで、Teams からの発信も検証することができます。
(参考:MicroSIP)
https://www.microsip.org/
3-1. 仮想マシンのデプロイ
[リソースの作成] - [仮想マシン] から [作成] をクリックします。
リソースグループ、インスタンスの詳細、管理者アカウントの情報を入力します。
ネットワークタブでサブネットを [SBCSWeLite-Subnet-pk0] に変更し、仮想マシンを作成します。
3-2. MicroSIP の設定
3-2-1. 仮想マシンへのログイン
仮想マシンのパブリック IP へリモートデスクトップで接続します。
3-2-2. MicroSIP のダウンロード
以下の URL から MicroSIP をダウンロードし、インストールします。
https://www.microsip.org/downloads/current
3-2-3. ini ファイルの編集
MicroSIP を一度終了し、エクスプローラーで以下のフォルダを開きます。
%appdata%\MicroSIP
MicroSIP.ini ファイルを開き、以下の行を修正し、保存します。
(修正前)
sourcePort=0
(修正後)
sourcePort=5060
MicroSIP が起動していると ini ファイルを修正できないため、起動している場合は閉じてから修正してください。
3-2-4. アカウントの追加
MicroSIP を起動し、右上のメニューから [アカウントの追加] をクリックします。
以下の例のように入力します。[SIP プロキシ] は SBC のプライベート IP です。[ユーザー名] が MicroSIP 側の電話番号になります。[あなたの名前] が発信した際に相手へ通知される名前です。
3-3. OS の設定
3-3-1. Windows Firewall の設定
Windows Defender Firewall で UDP 5060 ポートの受信を許可するルールを作成します。
3-3-2. 音声サービスの有効化
デプロイした仮想マシンは音声が無効になっているため、以下のように音声サービスを有効化します。
3-4. 外線通話のテスト
ここまで終えれば、Teams クライアントから外線電話の発信も行えます。
- Teams クライアントからソフトフォンへ発信
- ソフトフォンから Teams クライアントへ発信
通話の音声を確認するときはスマホから Teams へサインインして PC から MicoSIP で受話すると確認しやすいです。
おまけ
この環境を利用すれば、Teams 電話の外線電話に関する様々な機能を検証することができます。一例として、以下のように Teams 管理センターで通話履歴を確認することができます。
-
ユーザーごとの通話履歴
[ユーザー] - [ユーザーを管理] からユーザーを選択し、[会議と通話] タブから確認できます。
-
全ユーザーの通話履歴
[使用状況レポート] から [PSTN/SMS(プレビュー)の使用状況] を選択し、レポートを実行します。
[ダイレクト ルーティング] タブに全ユーザーの通話履歴が表示されます。
参考
- Ribbon SBC Edge ドキュメント
- SBC Edge トライアル ライセンス