Skip to content

Commit 316ee15

Browse files
committed
Updated per review comments from documentation team
1 parent 95a12c6 commit 316ee15

File tree

1 file changed

+48
-42
lines changed

1 file changed

+48
-42
lines changed

articles/communication-services/concepts/rooms/room-concept.md

Lines changed: 48 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -12,52 +12,55 @@ ms.topic: conceptual
1212
ms.service: azure-communication-services
1313
---
1414
# Virtual Rooms overview
15-
Virtual Rooms empower developers with essential security and controls capabilities to build well-structured communication experiences such as virtual appointments and group communications. Developers can use Rooms to conduct voice, video and PSTN calls. Security and controls in Rooms can be classified as follows.
16-
1. User access security and controls are applied upon call participants to control who is allowed to join a call and which actions they are allowed to take in the call. For example, during a patient's virtual appointment with a doctor, it is necessary to ensure that only the authorized hospital staff and patients can join the call to preserve the patient's privacy and the participants don't exceed their assigned roles and privileges to disrupt the ongoing call.
17-
2. Room-level security and controls are applied at the call level to control when the call is allowed to be conducted and which capabilities are allowed for the call. For example, students are only authorized to join a classroom call during allocated time but PSTN user is not allowed to join for the same classroom call.
1815

19-
# High level capabilities supported in Virtual Rooms
16+
Virtual Rooms empower developers with essential security and control capabilities to build well-structured communication experiences such as virtual appointments and group communications. Developers can use virtual rooms to conduct voice, video, and PSTN calls. Security and controls in rooms can be classified as follows.
17+
18+
- User access security and controls are applied to call participants, controlling who can join a call and which actions they can take during the call. For example, during a patient's virtual appointment with a doctor, only the authorized hospital staff and patients can join the call. Limiting participants preserves the patient privacy and the participants don't exceed their assigned roles and privileges to disrupt the ongoing call.
19+
20+
- Room-level security and controls are applied at the call level to control when the call can be conducted and which capabilities are available during the call. For example, students are only authorized to join a classroom call during the allocated time but a PSTN caller can't join the same classroom call.
21+
22+
## High level capabilities supported in Virtual Rooms
2023

2124
| Capability | Supported in Rooms call |
2225
| ------ | :------: |
2326
| Voice (VoIP) | ✔️ |
2427
| Video | ✔️ |
2528
| Client initiated dial-out to a PSTN number | ✔️ |
26-
| Server-side call management (Call Automation) | ✔️* |
29+
| Server-side call management (Call Automation)* | ✔️ |
2730
| Server initiated dial-out to a PSTN number** | ✔️ |
2831
| PSTN Dial-in ||
2932
| Async Messaging (Chat) ||
3033
| Interoperability with Microsoft Teams ||
3134

32-
*Some exceptions apply. Full list supported Call Automation capabilities listed below in this document.
35+
\* Some exceptions apply. The full list of supported [Call Automation capabilities](#how-to-conduct-calls-in-virtual-rooms) are listed in this document.
3336

34-
** Currently in [public preview](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).
37+
\*\* Currently in [public preview](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).
38+
39+
## When to use Virtual Rooms
3540

36-
# When to use Virtual Rooms
3741
Following table shows when to use Virtual Rooms.
3842
| Condition | Use Rooms |
39-
| ------ | :------: |
40-
| When it is important to control who is allowed to join a call (invite-only experience) | ✔️ |
41-
| When it is important to control when the call is started and ended | ✔️ |
42-
| When user roles and permissions are needed to conduct well-managed communications | ✔️ |
43-
| When solution requires Teams interoperability |* |
43+
| ------ | ------ |
44+
| When it is important to control who is allowed to join a call (invite-only experience). | ✔️ |
45+
| When it is important to control when the call is started and ended. | ✔️ |
46+
| When user roles and permissions are needed to conduct well-managed communications. | ✔️ |
47+
| When solution requires Teams interoperability.* ||
4448

45-
*If the solution requires interoperability between Teams and Azure Communication Services, use [Teams interoperability calls](../voice-video-calling/teams-interop)
49+
\* If the solution requires interoperability between Teams and Azure Communication Services, use [Teams interoperability calls](../interop/calling-chat.md)
4650

47-
# How to conduct calls in Virtual Rooms
48-
At a high level, conducting calls in a Virtual Rooms involves the creation and management of Virtual Rooms, joining the Virtual Rooms calls and executing in-call operations from Calling SDK on client-side and server-side, as shown the table below.
51+
## How to conduct calls in Virtual Rooms
52+
53+
At a high level, to conduct calls in a Virtual Rooms you need to create and manage rooms. The following table describes how to enable participants to join calls and execute in-call operations from the Calling SDK on client-side and server-side.
4954

5055
| Capability | ACS SDK | Client vs Server SDK | Description |
5156
|----------------------------------------------|--------|--------|--------|
52-
| Create and manage Virtual Rooms | [Virtual Rooms SDK](../../quickstarts/rooms/join-rooms-call.md) | Server | Virtual Rooms SDK allows developers to create and manage Virtual Rooms, add/remove users, assign/update user roles, set/update Virtual Rooms schedules, and set security limits such as to restrict PSTN dial-out in Rooms.|
53-
| Join a Virtual Rooms call with voice, video or PSTN and execute the client-initiated in-call operations | [Calling SDK](../voice-video-calling/calling-sdk-features.md#detailed-capabilities) | Client | The Calling client SDK allows users to join a Virtual Rooms call and execute client-side operations as permitted by their assigned user roles. Security in a Virtual Rooms call is ensured through enforcement of roster, schedule, user roles and control limits set through creation and management of Virtual Rooms. Using The client Calling SDK, developers empower call participants to execute in-call operations like mute/unmute, share screen, turn video on/off and dial-out to a PSTN participant etc. |
54-
| Server-side management of in-call operations | [Call Automation SDK](../../how-tos/call-automation/actions-for-call-control?branch=pr-en-us-280574&tabs=csharp) | Server | The Call Automation SDK allows developers to execute in-call operations from server-side. This includes, server-initiated dial-out to a PSTN number, call recording, sending/receiving DTMF and sending announcements to specific users etc. Since server-side invocations of in-call operations are independent from users and are fully controlled by the developers, these actions are not controlled by user-roles. |
55-
56-
57-
<b>Developers will use Virtual Rooms SDK, Calling client SDK and Call Automation SDK to secure their calls and to trigger in-call client-side/server-side operations. Specifically the following. </b>
57+
| Create and manage Virtual Rooms | [Virtual Rooms SDK](../../quickstarts/rooms/join-rooms-call.md) | Server | The Virtual Rooms SDK enables developers to create and manage Virtual Rooms, add/remove users, assign/update user roles, set/update Virtual Rooms schedules. Developers can also set security limits such as to restrict PSTN dial-out from Rooms.|
58+
| Join a Virtual Rooms call with voice, video, or PSTN and execute the client-initiated in-call operations | [Calling SDK](../voice-video-calling/calling-sdk-features.md#detailed-capabilities) | Client | The Calling client SDK enables users to join a Virtual Rooms call and execute client-side operations as permitted by their assigned user roles. Security in a Virtual Rooms call is ensured through enforcement of roster, schedule, user roles, and control limits set through creation and management of Virtual Rooms. Using The client Calling SDK, developers empower call participants to execute in-call operations like mute/unmute, share screen, turn video on/off and dial-out to a PSTN participant, and so on. |
59+
| Server-side management of in-call operations | [Call Automation SDK](../../how-tos/call-automation/actions-for-call-control.md) | Server | The Call Automation SDK enables developers to execute in-call operations from the server-side. In-call operations include server-initiated dial-out to a PSTN number, call recording, sending/receiving DTMF, sending announcements to specific users, and so on. Because running server-side in-call operations are independent from users and are controlled by developers, these actions aren't controlled by user-roles. |
5860

61+
<b>Developers use Virtual Rooms SDK, Calling client SDK, and Call Automation SDK to secure their calls and to trigger in-call client-side/server-side operations. </b>
5962

60-
| Capability | Rooms Server SDK| Calling Client SDK | Call Automation Server SDK
63+
| Capability | Rooms Server SDK| Calling Client SDK | Call Automation Server SDK |
6164
|----------------------------------------------|--------|--------|----------|
6265
| Virtual Rooms management - Create/Get/Update/List/Delete Virtual Rooms | ✔️ |||
6366
| Virtual Rooms roster management - Add/Update/Remove user to a Virtual Room| ✔️ |||
@@ -79,7 +82,8 @@ At a high level, conducting calls in a Virtual Rooms involves the creation and m
7982
\* Currently in [public preview](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).
8083

8184
## Managing Virtual Rooms calls from the server-side using Call Automation Server SDK
82-
Call Automation SDK empowers developers to manage Virtual Rooms calls from the server-side and execute in-call operations. Call Automation capabilities are being progressively enabled in Virtual Rooms calls. The following table shows the current status of these capabilities. Since developers manage and control Call Automation capabilities from the server-side, which operate at a higher level than a call participant's privileges, these Call Automation capabilities are not controlled through user roles and permissions.
85+
86+
Call Automation SDK empowers developers to manage Virtual Rooms calls from the server-side and execute in-call operations. Call Automation capabilities are being progressively enabled in Virtual Rooms calls. The following table shows the current status of these capabilities. Developers manage and control Call Automation capabilities from the server-side, which operate at a higher level than a call participant's privileges. So Call Automation capabilities aren't controlled through user roles and permissions.
8387

8488
| Call Automation capability | Supported in Rooms call |
8589
| ------ | :------: |
@@ -93,25 +97,31 @@ Call Automation SDK empowers developers to manage Virtual Rooms calls from the s
9397

9498
\* Currently in [public preview](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).
9599

96-
The picture below illustrates the concept of managing and joining the rooms.
100+
This illustration shows the concepts for managing and joining the rooms.
97101

98102
:::image type="content" source="../media/rooms/rooms-join-call.png" alt-text="Diagram showing Rooms Management.":::
99103

100104
### Server initiated PSTN Dialout using Call Automation Server SDK
101-
Developers can allow/disallow the ability to dial-out to a PSTN participant, by setting the Room-specific pstnDialoutEnabled flag. Once the developer sets pstnDialoutEnabled=TRUE for a Room, developers can dial-out to a PSTN participant from the server-side using Call Automation, without needing any client-side participation. e.g. A patient might request interpretation service for their upcoming virtual appointment with their doctor. In most cases, the phone number to the interpretation service is determined dynamically through a backend process. This server-side PSTN dial-out capability allows developers to determine the target phone number, initiate the call and add it to patient's virtual appointment call, without requiring any client-side actions. The following steps are used to add a PSTN number to a room call using Call Automation SDK.
102-
1. Create a room with pstnDialoutEnabled flag set to True
105+
106+
Developers can activate/deactivate the ability to dial-out to a PSTN participant by setting the Room-specific pstnDialoutEnabled flag. Once the developer sets pstnDialoutEnabled=TRUE for a Room, developers can dial-out to a PSTN participant from the server-side using Call Automation, without needing any client-side participation.
107+
108+
For example, a patient might request interpretation service for their upcoming virtual appointment with their doctor. In most cases, the phone number to the interpretation service is determined dynamically through a backend process. This server-side PSTN dial-out capability allows developers to determine the target phone number, initiate the call and add it to patient's virtual appointment call, without requiring any client-side actions.
109+
110+
Follow these steps to add a PSTN number to a room call using Call Automation SDK:
111+
1. Create a room with pstnDialoutEnabled flag set to `True`
103112
1. Participants start a room call
104113
1. Use Call Automation SDK to connect to a room call using a room ID
105114
1. Use Call Automation SDK to dial-out to a PSTN number
106115
1. PSTN user accepts and joins a room call
107116

108117
## Managing Virtual Rooms calls from client-side Calling SDKs
109118

110-
Use the [Calling SDKs](../voice-video-calling/calling-sdk-features.md) to join the room call. Room calls can be joined using the Web, iOS or Android Calling SDKs. You can find quick start samples for joining room calls [here](../../quickstarts/rooms/join-rooms-call.md).
119+
Use the [Calling SDKs](../voice-video-calling/calling-sdk-features.md) to join the room call. Room calls can be joined using the Web, iOS, or Android Calling SDKs. You can find quick start samples for joining room calls [here](../../quickstarts/rooms/join-rooms-call.md).
111120

112121
Rooms can also be accessed using the [Azure Communication Services UI Library](https://azure.github.io/communication-ui-library/?path=/docs/rooms--page). The UI Library enables developers to add a call client that is Rooms-enabled into their application with only a couple lines of code.
113122

114123
### Client initiated PSTN Dial-out using Calling client SDK
124+
115125
Developers can allow/disallow the ability for call participants to dial-out to a PSTN participant, by setting the Room specific pstnDialoutEnabled flag. Once the developer sets pstnDialoutEnabled=TRUE for a Room, the call participants with the Presenter role can dial-out to a PSTN participant from their calling client. The following steps are used to add a PSTN number to a room call using Calling Client SDK.
116126
1. Create a room with pstnDialoutEnabled flag set to True
117127
1. Participants start a room call
@@ -127,13 +137,12 @@ Developers can allow/disallow the ability for call participants to dial-out to a
127137
| Virtual Rooms SDKs | 2022-02-01 | Will be retired on April 30, 2024 |
128138
| Virtual Rooms SDKs | 2021-04-07 | Will be retired on April 30, 2024 |
129139

130-
131-
132140
## Predefined participant roles and permissions in Virtual Rooms calls
141+
<a name="predefined-participant-roles-and-permissions"></a>
133142

134-
Room participants can be assigned one of the following roles: **Presenter**, **Attendee** and **Consumer**.
143+
Room participants can be assigned one of the following roles: **Presenter**, **Attendee**, and **Consumer**.
135144

136-
The tables below provide detailed capabilities mapped to the roles. At a high level, **Presenter** role has full control, **Attendee** capabilities are limited to audio and video, while **Consumer** can only receive audio, video and screen sharing.
145+
The following table provides detailed capabilities mapped to the roles. At a high level, **Presenter** role has full control, **Attendee** capabilities are limited to audio and video, while **Consumer** can only receive audio, video, and screen sharing.
137146

138147
| Capability | Role: Presenter | Role: Attendee | Role: Consumer
139148
|---------------------------------------------| :--------: | :--------: | :--------: |
@@ -180,7 +189,7 @@ The tables below provide detailed capabilities mapped to the roles. At a high le
180189

181190
\* Only available on the web calling SDK. Not available on iOS and Android calling SDKs
182191

183-
\** Currently in [public preview](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).
192+
\*\* Currently in [public preview](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).
184193

185194
## Event handling
186195

@@ -193,24 +202,21 @@ The tables below provide detailed capabilities mapped to the roles. At a high le
193202

194203
## Deprecated Features
195204

196-
Earlier public preview version of Rooms API supported two configurations for Rooms roster control, as follows:
205+
An earlier public preview version of Rooms API supported two configurations for Rooms roster control, as follows:
197206

198-
- An "Invite Only" room which only allows invited users to join the Rooms call.
199-
- An "Open Room" which is a less secure. In open rooms configuration, all Azure Communication Services users were allowed to join a call without being explicitly invited through the Room roster.
207+
- An *Invite Only* room that only allowed invited users to join the Rooms call.
208+
- An *Open Room* that was less secure. In open rooms configuration, all Azure Communication Services users were able to join a call without being explicitly invited through the Room roster.
200209

201-
The "Open Room" concept is now deprecated. Going forward, "Invite Only" rooms will be the only supported Room type.
210+
The *Open Room* concept is now deprecated. Going forward, *Invite Only* rooms are the only supported Room type.
202211

203212
## Known Limitations
204213

205-
- Azure Communication Services Call Automation capabilities currently do not support Rooms call.
214+
- Azure Communication Services Call Automation capabilities currently don't support Rooms call.
206215

207216
## Next steps:
208-
- Use the [QuickStart to create, manage and join a room](../../quickstarts/rooms/get-started-rooms.md).
217+
- Use the [QuickStart to create, manage, and join a room](../../quickstarts/rooms/get-started-rooms.md).
209218
- Learn how to [join a room call](../../quickstarts/rooms/join-rooms-call.md).
210219
- Review the [Network requirements for media and signaling](../voice-video-calling/network-requirements.md).
211220
- Analyze your Rooms data, see: [Rooms Logs](../Analytics/logs/rooms-logs.md).
212221
- Learn how to use the Log Analytics workspace, see: [Log Analytics Tutorial](../../../azure-monitor/logs/log-analytics-tutorial.md).
213222
- Create your own queries in Log Analytics, see: [Get Started Queries](../../../azure-monitor/logs/get-started-queries.md).
214-
215-
216-

0 commit comments

Comments
 (0)