01acfa3b40
Type checking / changes (push) Has been cancelled
Type checking / test (push) Has been cancelled
Type checking / typescript-summary (push) Has been cancelled
Node tests / changes (push) Has been cancelled
Node tests / test (push) Has been cancelled
Node tests / test-summary (push) Has been cancelled
Источник: https://github.com/nextcloud/spreed/archive/refs/tags/v22.0.12.tar.gz С этого коммита ветка официального Nextcloud Talk отрезана (решение владельца 2026-07-06). Все дальнейшие изменения — только наши; версии релизов: 22.0.12-f7.N.
195 lines
9.2 KiB
Markdown
195 lines
9.2 KiB
Markdown
# Breakout rooms management
|
||
|
||
Group and public conversations can be used to host breakout rooms.
|
||
|
||
* Only moderators can configure and remove breakout rooms
|
||
* Only moderators can start and stop breakout rooms
|
||
* Moderators in the parent conversation are added as moderators to all breakout rooms and remove from all on demotion
|
||
|
||
## Base endpoint
|
||
|
||
* API v1: Base endpoint `/ocs/v2.php/apps/spreed/api/v1`: since Nextcloud 26
|
||
|
||
## Configure breakout rooms
|
||
|
||
* Required capability: `breakout-rooms-v1`
|
||
* Method: `POST`
|
||
* Endpoint: `/breakout-rooms/{token}`
|
||
* Data:
|
||
|
||
| field | type | Description |
|
||
|---------------|--------|-------------------------------------------------------------------------------------------------------|
|
||
| `mode` | int | Participant assignment mode (see [constants list](constants.md#breakout-room-modes)) |
|
||
| `amount` | int | Number of breakout rooms to create (Minimum `1`, maximum `20`) |
|
||
| `attendeeMap` | string | A json encoded Map of attendeeId => room number (0 based) (Only considered when the mode is "manual") |
|
||
|
||
* Response:
|
||
- Status code:
|
||
+ `200 OK`
|
||
+ `400 Bad Request` Error `config`: When breakout rooms are disabled on the server
|
||
+ `400 Bad Request` Error `mode`: When breakout rooms are already configured
|
||
+ `400 Bad Request` Error `room`: When the conversation is not a group conversation
|
||
+ `400 Bad Request` Error `room`: When the conversation is a breakout room itself
|
||
+ `400 Bad Request` Error `mode`: When the mode is invalid
|
||
+ `400 Bad Request` Error `amount`: When the amount is below the minimum or above the maximum
|
||
+ `400 Bad Request` Error `attendeeMap`: When the attendee map contains an invalid room number or moderator
|
||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||
+ `404 Not Found` When the conversation could not be found for the participant
|
||
- Data: Array of conversations (breakout rooms and parent)
|
||
See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations) (API v4)
|
||
|
||
## Create additional breakout room
|
||
|
||
In order to create an additional breakout room, create a conversation with object type `room` and object ID being the parent token.
|
||
See [Creating a new conversation](conversation.md#creating-a-new-conversation) for more information.
|
||
|
||
## Delete individual breakout room
|
||
|
||
The normal deletion API can be used.
|
||
See [Delete a conversation](conversation.md#delete-a-conversation) for more information.
|
||
|
||
## Remove breakout rooms
|
||
|
||
* Required capability: `breakout-rooms-v1`
|
||
* Method: `DELETE`
|
||
* Endpoint: `/breakout-rooms/{token}`
|
||
|
||
* Response:
|
||
- Status code:
|
||
+ `200 OK`
|
||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||
+ `404 Not Found` When the conversation could not be found for the participant
|
||
- Data: Parent conversation
|
||
See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations) (API v4)
|
||
|
||
## Start breakout rooms
|
||
|
||
* Required capability: `breakout-rooms-v1`
|
||
* Method: `POST`
|
||
* Endpoint: `/breakout-rooms/{token}/rooms`
|
||
|
||
* Response:
|
||
- Status code:
|
||
+ `200 OK`
|
||
+ `400 Bad Request` Error `mode`: When breakout rooms are not configured
|
||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||
+ `404 Not Found` When the conversation could not be found for the participant
|
||
- Data: Array of conversations (breakout rooms and parent)
|
||
See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations) (API v4)
|
||
|
||
## Stop breakout rooms
|
||
|
||
* Required capability: `breakout-rooms-v1`
|
||
* Method: `DELETE`
|
||
* Endpoint: `/breakout-rooms/{token}/rooms`
|
||
|
||
* Response:
|
||
- Status code:
|
||
+ `200 OK`
|
||
+ `400 Bad Request` Error `mode`: When breakout rooms are not configured
|
||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||
+ `404 Not Found` When the conversation could not be found for the participant
|
||
- Data: Array of conversations (breakout rooms and parent)
|
||
See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations) (API v4)
|
||
|
||
## Broadcast message to breakout rooms
|
||
|
||
* Required capability: `breakout-rooms-v1`
|
||
* Method: `POST`
|
||
* Endpoint: `/breakout-rooms/{token}/broadcast`
|
||
* Data:
|
||
|
||
| field | type | Description |
|
||
|-----------|--------|----------------------------------------------------------------------------------------------------------------|
|
||
| `message` | string | A chat message to be posted in all breakout rooms in the name of the moderator |
|
||
| `token` | string | **Note:** The token in the URL is the parent room. The message will appear in all breakout rooms automatically |
|
||
|
||
* Response:
|
||
- Status code:
|
||
+ `201 Created`
|
||
+ `400 Bad Request` Error `mode`: When the room does not have breakout rooms configured
|
||
+ `403 Forbidden` When the participant is not a moderator
|
||
+ `404 Not Found` When the conversation could not be found for the participant
|
||
+ `413 Payload Too Large` When the message was longer than the allowed limit of 32000 characters (check the `spreed => config => chat => max-length` capability for the limit)
|
||
- Data: Array of conversations (breakout rooms and parent)
|
||
See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations) (API v4)
|
||
|
||
## Reorganize attendees
|
||
|
||
* Required capability: `breakout-rooms-v1`
|
||
* Method: `POST`
|
||
* Endpoint: `/breakout-rooms/{token}/attendees`
|
||
* Data:
|
||
|
||
| field | type | Description |
|
||
|---------------|--------|-------------------------------------------------------------------------------------------------------|
|
||
| `attendeeMap` | string | A json encoded Map of attendeeId => room number (0 based) (Only considered when the mode is "manual") |
|
||
|
||
* Response:
|
||
- Status code:
|
||
+ `200 OK`
|
||
+ `400 Bad Request` Error `config`: When breakout rooms are disabled on the server
|
||
+ `400 Bad Request` Error `mode`: When breakout rooms are not configured
|
||
+ `400 Bad Request` Error `attendeeMap`: When the attendee map contains an invalid room number or moderator
|
||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||
+ `404 Not Found` When the conversation could not be found for the participant
|
||
- Data: Array of conversations (breakout rooms and parent)
|
||
See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations) (API v4)
|
||
|
||
## Request assistance
|
||
|
||
This endpoint allows participants to raise their hand (token is the breakout room) and moderators will see it in any of the breakout rooms as well as the parent room.
|
||
|
||
* Required capability: `breakout-rooms-v1`
|
||
* Method: `POST`
|
||
* Endpoint: `/breakout-rooms/{token}/request-assistance`
|
||
* Response:
|
||
- Status code:
|
||
+ `200 OK`
|
||
+ `400 Bad Request` Error `room`: When the room is not a breakout room or breakout rooms are not started
|
||
+ `404 Not Found` When the conversation could not be found for the participant
|
||
- Data: Breakout room
|
||
See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations) (API v4)
|
||
|
||
## Reset request for assistance
|
||
|
||
* Required capability: `breakout-rooms-v1`
|
||
* Method: `DELETE`
|
||
* Endpoint: `/breakout-rooms/{token}/request-assistance`
|
||
* Response:
|
||
- Status code:
|
||
+ `200 OK`
|
||
+ `400 Bad Request` Error `room`: When the room is not a breakout room or breakout rooms are not started
|
||
+ `404 Not Found` When the conversation could not be found for the participant
|
||
- Data: Breakout room
|
||
See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations) (API v4)
|
||
|
||
## List all breakout rooms
|
||
|
||
See [conversation API](conversation.md#get-breakout-rooms))
|
||
|
||
## Switch to a different breakout room (as non moderator)
|
||
|
||
This endpoint allows participants to switch between breakout rooms when they are allowed to choose the breakout room and not are automatically or manually assigned by the moderator.
|
||
|
||
* Required capability: `breakout-rooms-v1`
|
||
* Method: `POST`
|
||
* Endpoint: `/breakout-rooms/{token}/switch`
|
||
* Data:
|
||
|
||
| field | type | Description |
|
||
|----------|--------|-------------------------------------------------------------------------------|
|
||
| `token` | string | (In the URL) Conversation token of the parent room hosting the breakout rooms |
|
||
| `target` | string | Conversation token of the target breakout room |
|
||
|
||
* Response:
|
||
- Status code:
|
||
+ `200 OK`
|
||
+ `400 Bad Request` Error `moderator`: When the participant is a moderator in the conversation
|
||
+ `400 Bad Request` Error `mode`: When breakout rooms are not configured in `free` mode
|
||
+ `400 Bad Request` Error `status`: When breakout rooms are not started
|
||
+ `400 Bad Request` Error `target`: When the target room is not breakout room of the parent
|
||
+ `404 Not Found` When the conversation could not be found for the participant
|
||
- Data: Target breakout room
|
||
See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations) (API v4)
|