You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/communication-services/how-tos/calling-sdk/breakoutrooms.md
+16-14Lines changed: 16 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: Tutorial - Integrate Microsoft Teams breakout rooms
3
3
titleSuffix: An Azure Communication Services tutorial
4
-
description: Use Azure Communication Services SDKs to access BreakoutRooms.
4
+
description: Use Azure Communication Services SDKs to implement Microsoft Teams breakout rooms.
5
5
author: sravanthivelidandla
6
6
ms.author: insravan
7
7
ms.service: azure-communication-services
@@ -11,35 +11,38 @@ ms.date: 07/15/2024
11
11
ms.custom: template-how-to
12
12
---
13
13
14
-
# BreakoutRooms
15
-
In this article, you learn how to implement Microsoft Teams breakout rooms with Azure Communication Services. This capability allows Azure Communication Services users in Teams meetings to participate in breakout rooms. Teams administrators control availability of breakout rooms in Teams meeting with Teams meeting policy. You can find additional information about breakout rooms in [Teams documentation](https://support.microsoft.com/office/use-breakout-rooms-in-microsoft-teams-meetings-7de1f48a-da07-466c-a5ab-4ebace28e461).
14
+
# Breakout rooms
15
+
16
+
This article describes how to implement Microsoft Teams breakout rooms with Azure Communication Services. This capability enables Azure Communication Services users in Teams meetings to participate in breakout rooms. Teams administrators control the availability of breakout rooms in Teams meeting with Teams meeting policy. You can find additional information about breakout rooms in [Teams documentation](https://support.microsoft.com/office/use-breakout-rooms-in-microsoft-teams-meetings-7de1f48a-da07-466c-a5ab-4ebace28e461).
- An Azure account with an active subscription.[Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
22
-
- A deployed Communication Services resource.[Create a Communication Services resource](../../quickstarts/create-communication-resource.md).
22
+
- An Azure account with an active subscription, see[Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
23
+
- A deployed Communication Services resource, see[Create a Communication Services resource](../../quickstarts/create-communication-resource.md).
23
24
- A user access token to enable the calling client. For more information, see [Create and manage access tokens](../../quickstarts/identity/access-tokens.md).
24
-
- Teams meeting organizer needs to assign Teams meeting policy that enables breakout rooms.[Teams meeting policy](/powershell/module/teams/set-csteamsmeetingpolicy?view=teams-ps&preserve-view=true)
25
-
- Optional: Complete the quickstart to [add voice calling to your application](../../quickstarts/voice-video-calling/getting-started-with-calling.md)
25
+
- Teams meeting organizer needs to assign Teams meeting policy that enables breakout rooms, see[Teams meeting policy](/powershell/module/teams/set-csteamsmeetingpolicy?view=teams-ps&preserve-view=true).
26
+
- Optional: Complete the quickstart to [add voice calling to your application](../../quickstarts/voice-video-calling/getting-started-with-calling.md).
26
27
27
28
Only Microsoft 365 Users with Organizer, Co-Organizer, or Breakout Room manager roles can manage the breakout rooms.
28
29
29
30
## Support
31
+
30
32
The following tables define support of breakout rooms in Azure Communication Services.
33
+
31
34
### Identities and call types
32
-
The following tables show support of breakout rooms for specific call type and identity.
35
+
36
+
The following table shows support in breakout rooms for specific call type and identity.
33
37
34
38
|Identities | Teams meeting | Room | 1:1 call | Group call | 1:1 Teams interop call | Group Teams interop call |
@@ -55,14 +58,13 @@ The following tables show support of individual APIs in calling SDK to individua
55
58
[2] Microsoft 365 users can use Graph API to participate in breakout room chat. The thread ID of the chat is provided in the assigned breakout room object.
56
59
57
60
### SDKs
58
-
The following tables show support of breakout rooms feature in individual Azure Communication Services SDKs.
61
+
62
+
The following tables show support for the breakout rooms feature in individual Azure Communication Services SDKs.
59
63
60
64
| Support status | Web | Web UI | iOS | iOS UI | Android | Android UI | Windows |
The `BreakoutRooms` API allows you to subscribe to `BreakoutRooms` events. A `breakoutRoomsUpdated` event comes from a `BreakoutRoomsCallFeature` instance and contains information about the created, updated and assigned breakout rooms.
28
+
The `BreakoutRooms` API enables you to subscribe to `BreakoutRooms` events. A `breakoutRoomsUpdated` event comes from a `BreakoutRoomsCallFeature` instance and contains information about the created, updated, and assigned breakout rooms.
29
+
30
+
To receive breakout room details, subscribe to the `breakoutRoomsUpdated` event.
24
31
25
-
To receive breakout room details, subscribe to the `breakoutRoomsUpdated` event.
Event **breakoutRoomsUpdated** provides instance of one of the following classes as an input parameter. You can use property `type` to distinguish between individual event types.
38
+
Event `breakoutRoomsUpdated` provides instance of one of the following classes as an input parameter. You can use property `type` to distinguish between individual event types.
39
+
40
+
1. Class `BreakoutRoomsEvent`: This event is triggered when a user with the role organizer, co-organizer, or breakout room manager creates or updates the breakout rooms. Microsoft 365 users with role organizer, co-organizer, or breakout room manager can receive this type of event. Developers can use the breakout rooms in property `data` to render details about all breakout rooms. This class has property `type` equal to `"breakoutRooms"`.
33
41
34
-
1. Class `BreakoutRoomsEvent`: This event is triggered when a user with a role organizer, co-organizer, or breakout room manager creates or updates the breakout rooms. Microsoft 365 users with role organizer, co-organizer or breakout room manager can receive this type of event. Developers can use the breakout rooms in property `data` to render details about all breakout rooms. This class has property `type` equal to `"breakoutRooms"`.
35
42
```js
36
43
exportinterfaceBreakoutRoomsEvent {
37
44
/**
@@ -45,7 +52,8 @@ Event **breakoutRoomsUpdated** provides instance of one of the following classes
45
52
}
46
53
```
47
54
48
-
2. Class `BreakoutRoomsSettingsEvent`: This event is triggered when a user with a role organizer, co-organizer, or breakout room manager updates the breakout room's settings. Developers can use this information to render the time when breakout room ends or decide whether to render button to join main room. This class has property `type` equal to `"breakoutRoomSettings"`.
55
+
2. Class `BreakoutRoomsSettingsEvent`: When a user with a role organizer, co-organizer, or breakout room manager updates the breakout room's settings, it triggers this event. Developers can use this information to render the time when breakout room ends or decide whether to render a button to join main room. This class has property `type` equal to `"breakoutRoomSettings"`.
56
+
49
57
```js
50
58
exportinterfaceBreakoutRoomSettingsEvent {
51
59
/**
@@ -59,7 +67,7 @@ Event **breakoutRoomsUpdated** provides instance of one of the following classes
59
67
}
60
68
```
61
69
62
-
3. Class `AssignedBreakoutRoomsEvent`: This event is triggered when user is assigned to a breakout room, or assigned breakout room is updated. Users can join the breakout room when property `state` is set to `open`, leave the breakout room when property `state` is set to `closed` or render details of the breakout room. This class has property `type` equal to `"assignedBreakoutRoom"`.
70
+
3. Class `AssignedBreakoutRoomsEvent`: This event is triggered when user is assigned to a breakout room, or assigned breakout room is updated. Users can join the breakout room when property `state` is set to `open`, leave the breakout room when property `state` is set to `closed`, or render details of the breakout room. This class has property `type` equal to `"assignedBreakoutRoom"`.
63
71
64
72
```js
65
73
exportinterfaceAssignedBreakoutRoomEvent {
@@ -74,7 +82,8 @@ Event **breakoutRoomsUpdated** provides instance of one of the following classes
74
82
}
75
83
```
76
84
77
-
4. Class `JoinBreakoutRoomsEvent` : This event is triggered when the participant is joining breakout room call. This event can happen when user is automatically moved to breakout room (that is, if `assignedBreakoutRoom` has property `state` set to `open` and `autoMoveParticipantToBreakoutRoom` is set to `true`) or when user explicitly joins breakout room (that is, calls method `join` on the instance `assignedBreakoutRoom` when `autoMoveParticipantToBreakoutRoom` is set to `false`). Property `data` contains the breakout room `call` instance, that developers can use to control breakout room call. This class has property `type` equal to `"join"`.
85
+
4. Class `JoinBreakoutRoomsEvent` : This event is triggered when the participant is joining a breakout room call. This event can happen when a user is automatically moved to breakout room (that is, if `assignedBreakoutRoom` has property `state` set to `open` and `autoMoveParticipantToBreakoutRoom` is set to `true`) or when a user explicitly joins a breakout room (that is, calls method `join` on the instance `assignedBreakoutRoom` when `autoMoveParticipantToBreakoutRoom` is set to `false`). Property `data` contains the breakout room `call` instance, that developers can use to control breakout room call. This class has property `type` equal to `"join"`.
86
+
78
87
```js
79
88
exportinterfaceJoinBreakoutRoomEvent {
80
89
/**
@@ -87,7 +96,9 @@ Event **breakoutRoomsUpdated** provides instance of one of the following classes
87
96
data: Call | TeamsCall;
88
97
}
89
98
```
90
-
The following code shows you valuable information received in the breakout room events:
99
+
100
+
The following code shows the useful information received in the breakout room events:
101
+
91
102
```js
92
103
constbreakoutRoomsUpdatedListener= (event) => {
93
104
switch(event.type) {
@@ -118,9 +129,11 @@ The following code shows you valuable information received in the breakout room
If the `assignedBreakoutRoom` has property `autoMoveParticipantToBreakoutRoom` set to `true`, then the user is automatically moved to the breakout room when the property `state` is set to `open`. If `autoMoveParticipantToBreakoutRoom` is set to `false`, then use the following code to join breakout room.
160
+
146
161
This triggers `breakoutRoomsUpdated` event with class `JoinBreakoutRoomsEvent` that has property `type` set as `join`. You can use the instance of a class `call` in property `data` to manage breakout room call.
147
162
148
163
```js
@@ -177,7 +192,8 @@ console.log(`Participants of the breakoutRoom : <br/>" + breakoutRoomParticipant
177
192
178
193
### Stop receiving breakout rooms events
179
194
180
-
Use the following code to stop receiving breakoutRooms events
195
+
Use the following code to stop receiving breakoutRooms events.
-`displayName` : Name of the breakout room. This property is read-only.
192
209
193
210
```js
194
211
const threadId :string=breakoutRoom.threadId;
195
212
```
213
+
196
214
-`threadId` : You can use chat thread ID to join chat of the breakout room. This property is read-only.
197
215
198
216
```js
199
217
const state :BreakoutRoomState=breakoutRoom.state;
200
218
```
219
+
201
220
-`state` : State of the breakout room. It can be either `open` or `closed`. Users would be able to join the breakout room only when the state is `open`. This property is read-only.
-`autoMoveParticipantToBreakoutRoom` : Boolean value, which indicates whether the users are moved to breakout rooms automatically when the `state` of `assignedBreakoutRoom` is set to `open`. This property is read-only. In the Teams UI settings for breakout rooms, the organizer, co-organizer, or breakout room manager can adjust this specific setting. By setting this option to `true`, participants will be automatically transferred to their designated breakout room. Conversely, if it's set to `false`, the `join` method must be manually invoked to move participants into the breakout room.
225
+
226
+
-`autoMoveParticipantToBreakoutRoom` : Boolean value, which indicates whether the users are moved to breakout rooms automatically when the `state` of `assignedBreakoutRoom` is set to `open`. This property is read-only. In the Teams UI settings for breakout rooms, the organizer, co-organizer, or breakout room manager can adjust this specific setting. By setting this option to `true`, participants are automatically transferred to their designated breakout room. Conversely, if you set this property to `false`, then you must manually call the `join` method to move participants into the breakout room.
207
227
208
228
```js
209
229
const call :Call | TeamsCall=breakoutRoom.call;
210
230
```
211
-
-`call` : Breakout room call object. This is returned when the user joins the breakout room call automatically or by calling `join` method on `assignedBreakoutRoom` object. This property is read-only.
231
+
232
+
-`call` : Breakout room call object. This object is returned when the user joins the breakout room call automatically or by calling `join` method on `assignedBreakoutRoom` object. This property is read-only.
212
233
213
234
```js
214
235
const invitees :Invitee[] =breakoutRoom.invitees;
215
236
```
237
+
216
238
-`invitees` : The list of invitees who are assigned to the breakout room. This property is read-only.
217
239
218
240
### Breakout room settings
241
+
219
242
Breakout rooms share setting that has the following properties:
-`disableReturnToMainMeeting` : Disable participants to return to the main meeting from the breakout room call. This property is read-only. In the Teams UI settings for breakout rooms, the organizer, co-organizer, or breakout room manager can adjust this specific setting to control when the participant of breakout rooms can return to the main meeting.
-`roomEndTime`: Breakout room end time set by the Microsoft 365 user with role organizer, co-organizer, or breakout room manager of the main meeting. This property is read-only.
|412 | 46256| ExpectedError | Unable to join Breakout Room as the room is closed. | Ensure that the `state` of `assignedBreakoutRoom` is `open` and call `breakoutRoomsFeature.assignedBreakoutRoom.join()` method explicitly.|
239
265
|412 | 46257| UnexpectedServerError | Unable to resume main meeting. | Follow the instructions defined in the section `Leave breakout room` for manual leaving of breakout room. If the issue persists, gather browser console logs and contact Azure Communication Services support. |
240
266
|412| 46258 | UnexpectedClientError | Unable to read breakout room details. | Gather browser console logs and contact Azure Communication Services support. |
241
-
|500 | 46259| UnexpectedServerError | Could not hang up the Breakout room call. | Follow the instructions defined in the section `Leave breakout room` for manual leaving of breakout room. |
242
-
|412| 46260 | UnexpectedClientError | Cannot join Breakout Room as it is not yet assigned. | Ensure that the `breakoutRoomsFeature.assignedBreakoutRoom` is having the details of the assigned breakout room. Ensure that the `state` of `assignedBreakoutRoom` is `open` and call `breakoutRoomsFeature.assignedBreakoutRoom.join()` method explicitly. |
243
-
244
-
267
+
|500 | 46259| UnexpectedServerError | Couldn't hang up the Breakout room call. | Follow the instructions defined in the section `Leave breakout room` for manual leaving of breakout room. |
268
+
|412| 46260 | UnexpectedClientError | Can't join Breakout Room as it isn't yet assigned. | Ensure that the `breakoutRoomsFeature.assignedBreakoutRoom` is having the details of the assigned breakout room. Ensure that the `state` of `assignedBreakoutRoom` is `open` and call `breakoutRoomsFeature.assignedBreakoutRoom.join()` method explicitly. |
0 commit comments