Virtual Rooms の概要

Virtual Rooms は、仮想予約やグループ コミュニケーションなどの適切に構造化されたコミュニケーション エクスペリエンスを構築するために、重要なセキュリティと制御機能を開発者に提供します。 開発者は、仮想ルームを使用して音声、ビデオ、PSTN 通話を行うことができます。 ルームのセキュリティと制御は、次のように分類できます。

  • ユーザー アクセスのセキュリティと制御は通話参加者に適用され、通話に参加できるユーザーと通話中に実行できるアクションが制御されます。 たとえば、医師との患者の仮想予約中は、承認された病院スタッフと患者のみが通話に参加できます。 参加者を制限すると、患者のプライバシーが維持され、参加者が割り当てられたロールと特権を超えて進行中の通話を中断することはありません。

  • ルーム レベルのセキュリティと制御は、通話を行うことができるタイミングと通話中に使用できる機能を制御するために、通話レベルで適用されます。 たとえば、学生は割り当てられた時間内にクラスルーム通話に参加する権限のみを持ちますが、PSTN 通話者は同じクラスルーム通話に参加できません。

Virtual Rooms でサポートされる機能の概要

機能 Rooms 通話でのサポート
音声 (VoIP) ✔️
ビデオ ✔️
クライアントが開始する PSTN 番号へのダイヤルアウト ✔️
サーバーが開始する PSTN 番号へのダイヤルアウト** ✔️
サーバー側の通話管理 (Call Automation)* ✔️
PSTN ダイヤルイン
非同期メッセージング (チャット)
Microsoft Teams との相互運用性

* 一部の例外が適用されます。 このドキュメントでは、サポートされている Call Automation 機能の完全な一覧が示されています。

** 現在、パブリック プレビューの段階にあります。

Virtual Rooms を使用するタイミング

次の表には、Virtual Rooms を使用するタイミングが示されています。

条件 Rooms を使用する
通話に参加できるユーザーを制御することが重要な場合 (招待のみエクスペリエンス)。 ✔️
通話の開始と終了を制御することが重要な場合。 ✔️
適切に管理されたコミュニケーションを行うためにユーザー ロールとアクセス許可が必要な場合。 ✔️
ソリューションで Teams の相互運用性が必要な場合。*

* ソリューションで Teams と Azure Communication Services の相互運用性が必要な場合は、Teams 相互運用性通話を使用します

Virtual Rooms で通話を行う方法

大まかに言えば、Virtual Rooms で通話を行うには、ルームを作成して管理する必要があります。 次の表では、参加者が通話に参加し、クライアント側とサーバー側で Calling SDK からの通話内操作を実行できるようにする方法について説明します。

機能 ACS SDK クライアントとサーバーの SDK 説明
Virtual Rooms を作成および管理する Virtual Rooms SDK [サーバー] Virtual Rooms SDK を使用すると、開発者は Virtual Rooms の作成と管理、ユーザーの追加/削除、ユーザー ロールの割り当て/更新、Virtual Rooms のスケジュールの設定/更新を行うことができます。 開発者は、Rooms からの PSTN ダイヤルアウトを制限するなど、セキュリティ制限を設定することもできます。
音声、ビデオ、または PSTN を使用して Virtual Rooms 通話に参加し、クライアントが開始する通話内操作を実行する Calling SDK クライアント Calling Client SDK を使用すると、ユーザーは Virtual Rooms 通話に参加し、割り当てられたユーザー ロールで許可されているクライアント側の操作を実行できます。 Virtual Rooms 通話のセキュリティは、Virtual Rooms の作成と管理によって設定された名簿、スケジュール、ユーザー ロール、および制御制限の適用によって保証されます。 Client Calling SDK を使用して、開発者は、通話参加者がミュート/ミュート解除、画面の共有、ビデオのオン/オフ、PSTN 参加者へのダイヤルアウトなどの通話内操作を実行するのをサポートします。
通話内操作のサーバー側管理 Call Automation SDK [サーバー] Call Automation SDK を使用すると、開発者はサーバー側から通話内操作を実行できます。 通話内操作には、PSTN 番号へのサーバー開始ダイヤルアウト、通話記録、DTMF の送受信、特定のユーザーへのアナウンスの送信などがあります。 サーバー側の通話内操作の実行はユーザーとは独立しており、開発者によって制御されるため、これらのアクションはユーザー ロールによって制御されません。

開発者は、Virtual Rooms SDK、Calling Client SDK、Call Automation SDK を使用して、通話をセキュリティで保護し、通話内クライアント側/サーバー側操作をトリガーします。

機能 Rooms Server SDK Calling Client SDK Call Automation Server SDK
Virtual Rooms 管理 - Virtual Rooms を作成/取得/更新/一覧表示/削除する ✔️
Virtual Rooms 名簿管理 - Virtual Rooms のユーザーを追加/更新/削除する ✔️
Virtual Rooms 通話参加者のアクセス許可管理 - ユーザー ロールの割り当て/更新を行う ✔️
Virtual Rooms のスケジュール管理 - Virtual Rooms の許可スケジュールを設定/更新する ✔️
Virtual Rooms のセキュリティ制御管理 - 特定の Virtual Rooms からの PSTN ダイヤルアウトを許可するようにフラグを設定/更新する ✔️
Virtual Room に参加するように招待されたユーザーの一覧を取得する ✔️
ユーザーが Virtual Rooms 通話を開始するか、進行中の通話に参加する ✔️
PSTN ユーザーへのダイヤルアウト ✔️ ✔️*
進行中の通話の VoIP 参加者を追加/削除する ✔️ ✔️*
進行中の通話に参加した参加者の一覧を取得する ✔️ ✔️*
通話のキャプションを開始/停止し、キャプション言語を変更する ✔️*
通話記録を管理する ✔️*
PSTN 参加者間で DTMF を送受信する ✔️*
参加者にオーディオ プロンプトを再生する ✔️*

Calling Client SDK では、クライアント側の通話内操作の完全な一覧が提供され、その使用方法について説明されます。

* 現在、パブリック プレビュー段階です。

Call Automation Server SDK を使用したサーバー側からの Virtual Rooms 通話の管理

Call Automation SDK を使用すると、開発者はサーバー側からの Virtual Rooms 通話を管理し、通話内操作を実行できます。 Virtual Rooms 通話では、Call Automation 機能が段階的に有効になっています。 次の表に、これらの機能の現在の状態を示します。 開発者は、通話参加者の特権よりも高いレベルで動作する、Call Automation 機能をサーバー側から管理および制御します。 そのため、Call Automation 機能は、ユーザー ロールとアクセス許可によって制御されません。

Call Automation 機能 Rooms 通話でのサポート
PSTN 参加者へのダイヤルアウト * ✔️
PSTN 参加者間で DTMF を送受信する * ✔️
特定の通話参加者にアナウンスを送信する * ✔️
進行中の通話の VoIP 参加者を追加/削除する ✔️
すべてのユーザーの通話を終了する ✔️
通話の文字起こし
オーディオ メディア ストリーミング

* 現在、パブリック プレビュー段階です。

この図は、ルームの管理と参加の概念を示しています。

ルームの管理を示す図。

Call Automation Server SDK を使用したサーバー開始 PSTN ダイヤルアウト

開発者は、Room 固有の pstnDialoutEnabled フラグを設定することで、PSTN 参加者にダイヤルアウトする機能をアクティブ化または非アクティブ化できます。 開発者が Room に pstnDialoutEnabled=TRUE を設定すると、開発者は、クライアント側の参加を必要とせずに、Call Automation を使用してサーバー側から PSTN 参加者にダイヤルアウトできます。

たとえば、患者は、医師との今後の仮想予約の通訳サービスを要求する場合があります。 ほとんどの場合、通訳サービスへの電話番号は、バックエンド プロセスを通じて動的に決定されます。 このサーバー側 PSTN ダイヤルアウト機能を使用すると、開発者は、クライアント側の操作を必要とせずに、ターゲットの電話番号を決定し、通話を開始し、患者の仮想予約通話に追加できます。

Call Automation SDK を使用してルーム通話に PSTN 番号を追加するには、次の手順に従います。

  1. pstnDialoutEnabled フラグが True に設定されたルームを作成する
  2. 参加者がルーム通話を開始する
  3. Call Automation SDK を使用し、ルーム ID を使ってルーム通話に接続する
  4. Call Automation SDK を使用して PSTN 番号にダイヤルアウトする
  5. PSTN ユーザーがルーム通話を受け入れて参加する

クライアント側 Calling SDK からの Virtual Rooms 通話の管理

[SDK の呼び出し] を使用してルーム コールに参加します。 ルーム通話には、Web、iOS、または Android Calling SDK を使用して参加できます。 ルームコールに参加するためのクイック スタート サンプルについては、 こちらを参照してください。

ルームには、Azure Communication Services UI ライブラリを使用してアクセスすることもできます。 この UI ライブラリによって、開発者は Rooms で有効な通話クライアントをわずか数行のコードでアプリケーションに追加できます。

Calling Client SDK を使用したクライアント開始 PSTN ダイヤルアウト

開発者は、Room 固有の pstnDialoutEnabled フラグを設定することで、通話参加者が PSTN 参加者にダイヤルアウトする機能を許可または禁止できます。 開発者が Room に pstnDialoutEnabled=TRUE を設定すると、発表者ロールを持つ通話参加者は、通話クライアントから PSTN 参加者にダイヤルアウトできます。 次の手順は、Calling Client SDK を使用してルーム通話に PSTN 番号を追加するために使用されます。

  1. pstnDialoutEnabled フラグが True に設定されたルームを作成する
  2. 参加者がルーム通話を開始する
  3. 発表者ロールを持つ参加者が PSTN 番号を通話に追加する
  4. PSTN ユーザーがルーム通話を受け入れて参加する

Virtual Rooms API/SDK

ルームは、ルーム API または SDK を使用して作成および管理されます。 room 操作には、ルームのサーバー アプリケーションで次の Rooms API/SDK を使用します。

  • 作成
  • 変更
  • 削除
  • 参加者のリストを設定および更新する
  • ルームの有効性を設定および変更する
  • ユーザーにロールとアクセス許可を割り当てる
Virtual Rooms SDK バージョン 都道府県
Virtual Rooms SDK 2024-04-15 一般提供 - 完全サポート
Virtual Rooms SDK 2023-06-14 一般提供 - 完全サポート
Virtual Rooms SDK 2023-10-30 パブリック プレビュー - 完全サポート
Virtual Rooms SDK 2023-03-31 2024 年 4 月 30 日に廃止される予定です
Virtual Rooms SDK 2022-02-01 2024 年 4 月 30 日に廃止される予定です
Virtual Rooms SDK 2021-04-07 2024 年 4 月 30 日に廃止される予定です

Virtual Rooms 通話の定義済みの参加者ロールとアクセス許可

ルーム参加者には、発表者出席者コンシューマーのいずれかのロールを割り当てることができます。

次の表に、ロールにマップされる詳細な機能を示します。 大まかに言うと、発表者のロールは完全に制御でき、出席者の機能はオーディオとビデオに限定され、コンシューマーはオーディオ、ビデオ、スクリーン共有のみを受け取ることができるということです。

機能 役割: 発表者 ロール: 出席者 ロール: コンシューマー
通話中のコントロール
- ビデオをオン/オフにする ✔️ ✔️
- マイクをミュート/ミュート解除する ✔️ ✔️
- リモート ユーザーをミュートする ** ✔️
- カメラを切り替える ✔️ ✔️
- スピーカーをアクティブにする ✔️ ✔️ ✔️
- 通話用のスピーカーを選択する ✔️ ✔️ ✔️
- 通話用のマイクを選択する ✔️ ✔️
- 参加者の状態を表示する (アイドル、接続中、接続した、保留、切断中、切断した、など) ✔️ ✔️ ✔️
- 通話の状態を表示する (初期メディア、着信、接続中、呼び出し中、接続した、保留、切断中、切断した ✔️ ✔️ ✔️
- 参加者がミュートされているかどうかを表示する ✔️ ✔️ ✔️
- 参加者が通話を終了した理由を表示する ✔️ ✔️ ✔️
- 通話キャプションを開始する ** ✔️ ✔️ ✔️
- キャプションの言語を変更する ** ✔️ ✔️
- すべての参加者の会議を終了する ✔️
- Virtual Room 参加者が通話に参加するように招待する ✔️
画面共有
- スクリーンを共有する ✔️*
- アプリケーションを共有する ✔️*
- ブラウザー タブを共有する ✔️*
- 参加者は共有スクリーンを確認できる ✔️ ✔️ ✔️
名簿管理
- 参加者を削除する ✔️
デバイス管理
- オーディオおよび/またはビデオを使用するアクセス許可を求める ✔️ ✔️
- カメラのリストリストを取得する ✔️ ✔️
- カメラを設定する ✔️ ✔️
- 選択したカメラを取得する ✔️ ✔️
- マイクのリストを取得する ✔️* ✔️*
- マイクを設定する ✔️* ✔️*
- 選択されたマイクを取得する ✔️* ✔️*
- スピーカーのリストを取得する ✔️* ✔️* ✔️*
- スピーカーを設定する ✔️* ✔️* ✔️*
- 選択したスピーカーを取得する ✔️ ✔️ ✔️
ビデオのレンダリング
- 複数の場所で 1 つのビデオをレンダリングする (ローカル カメラまたはリモート ストリーム) ✔️ ✔️ ✔️
(リモートのみ)
- ビデオスケーリングモードの設定/更新 ✔️ ✔️ ✔️
(リモートのみ)
- リモート ビデオ ストリームをレンダリングする ✔️ ✔️ ✔️
クライアント側から PSTN 参加者へのダイヤルアウト
- Virtual Rooms 通話から PSTN 参加者にダイヤルアウトする ✔️

* Web 呼び出し元 SDK でのみ使用できます。 iOS および Android 呼び出し SDK では使用できません

** 現在、パブリック プレビューの段階にあります。

イベント処理

Event Grid を介して発行された音声通話イベントとビデオ通話イベントには、ルーム呼び出し情報に注釈が付けられます。

  • CallStarted は、ルーム呼び出しの開始時に発行されます。
  • CallEnded は、ルーム呼び出しの終了時に発行されます。
  • CallParticipantAdded は、新しい参加者がルーム呼び出しに参加したときに発行されます。
  • CallParticipantRemoved は、新しい参加者がルーム呼び出しを切断したときに発行されます。

非推奨の機能

以前のパブリック プレビュー バージョンの Rooms API では、次のように Rooms 名簿コントロールの 2 つの構成がサポートされました。

  • 招待されたユーザーのみが Rooms 通話に参加できるようにする "招待のみ" のルーム。
  • セキュリティが低い"オープン ルーム"。 オープン ルーム構成では、すべての Azure Communication Services ユーザーが Room 名簿を通じて明示的に招待されることなく、通話に参加できました。

"オープン ルーム" の概念は非推奨になりました。 今後、"招待のみ" のルームがサポートされている唯一の Room の種類になります。

既知の制限事項

  • Azure Communication Services の Call Automation 機能では、現在、Rooms 通話はサポートされていません。

次のステップ: