You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

195 lines
18 KiB

  1. # Capabilities
  2. ## 3.0 (Initial Talk release)
  3. * `audio` - audio is supported
  4. * `video` - video + screensharing is supported
  5. * `chat` - simple text chat is supported, superseded by `chat-v2`
  6. ## 3.1
  7. * `guest-signaling` - Guests can do signaling via api endpoints
  8. * `empty-group-room` - Group conversations can be created without inviting a Nextcloud user group by default
  9. ## 3.2
  10. * `guest-display-names` - Display names of guests are stored in the database, can be set via API (not WebRTC only) and are used on returned comments/participants/etc.
  11. * `multi-room-users` - Users can be in multiple conversations at the same time now, therefor signaling now also requires the conversation token on the URL.
  12. * `chat-v2` - Chat messages are now [Rich Object Strings](https://github.com/nextcloud/server/issues/1706) and pagination is available, the previous `chat` is not available anymore.
  13. ## 4.0
  14. * `favorites` (local) - Conversations can be marked as favorites which will pin them to the top of the conversation list.
  15. * `last-room-activity` - Conversations have the `lastActivity` attribute and should be sorted by that instead of the last ping of the user.
  16. * `no-ping` - The ping endpoint has been removed. Ping is updated with a call to fetch the signaling or chat messages instead.
  17. * `system-messages` - Chat messages have a `systemMessage` attribute and can be generated by the system
  18. * `mention-flag` - The conversation list populates the boolean `unreadMention` when the user was mentioned since their last visit
  19. * `in-call-flags` - A new flag `participantFlags` has been introduced and is replacing the `participantInCall` boolean.
  20. ## 5.0
  21. * `invite-by-mail` - *Replaced by `invite-groups-and-mails`* Guests can be invited with their email address
  22. * `notification-levels` - Users can select when they want to be notified in conversations
  23. * `invite-groups-and-mails` - Groups can be added to existing conversations via the add participant endpoint
  24. ## 6.0
  25. * `locked-one-to-one-rooms` - One-to-one conversations are now locked to the users. Neither guests nor other participants can be added, so the options to do that should be hidden as well. Also a user can only leave a one-to-one conversation (not delete). It will be deleted when the other participant left too. If the other participant posts a new chat message or starts a call, the left-participant will be re-added.
  26. * `read-only-rooms` - Conversations can be in `read-only` mode which means people can not do calls or write chat messages.
  27. ## 7.0
  28. * `chat-read-marker` - The chat can be optionally marked read by clients manually, independent from the loading of the chat messages.
  29. * `webinary-lobby` - See [Webinary management](webinar.md) for technical details.
  30. * `start-call-flag` - Only moderators or users might be able to start calls.
  31. * `config => chat => max-length` - Maximum length of chat messages
  32. ## 8.0
  33. * `chat-replies` - Normal chat messages can now be replied to. Check the `isReplyable` parameter on the message object.
  34. * `circles-support` - Conversations can be created for circles and all circle members can be added to existing conversations
  35. ## 9.0
  36. * `config => attachments => allowed` (local) - Whether the user can upload files into a chat
  37. * `config => attachments => folder` (local) - User defined folder where items should be uploaded to
  38. * `config => conversations => can-create` (local) - Whether the user can create public and group conversations, if not only one-to-one conversations are allowed
  39. * `force-mute` - "forceMute" signaling messages can be sent to mute other participants.
  40. * `conversation-v2` - ~~The conversations API v2 is less load heavy and should be used by clients when available. Check the difference in the [Conversation API documentation](conversation.md).~~ Replaced by API v4 when `conversation-v4` is set.
  41. * `chat-reference-id` - a referenceId can be sent with a chat message to be able to identify it in parallel get requests to earlier fade out a temporary message. This feature is always enabled since Nextcloud 29
  42. ## 10.1
  43. * `conversation-v3` - ~~Whether conversations API v3 is available~~ Replaced by API v4 when `conversation-v4` is set.
  44. * `sip-support` - Whether SIP can be configured and enabled by moderators. The conversations API will come with some new values `sipEnabled` which signals whether this conversation has SIP configured as well as `canEnableSIP` to see if a user can enable it. When it is enabled `attendeePin` will contain the unique dial-in code for this user.
  45. ## 11.0
  46. * `chat-read-status` (local) - On conversation API v3 and the chat API the last common read message is exposed which can be used to update the "read status" flag of own chat messages. The info should be shown only when the user also shares their read status. The user's value can be found in `config => chat => read-privacy`.
  47. * `listable-rooms` (local) - Conversations can searched for even when not joined. A "listable" attribute set on rooms defines the scope of who can find it.
  48. * `phonebook-search` (local) - Is present when the server has the endpoint to search for phone numbers to find matches in the accounts list
  49. * `raise-hand` - Participants can raise or lower hand, the state change is sent through signaling messages.
  50. * `room-description` - A description can be get and set for conversations.
  51. * `config => chat => read-privacy` (local) - See `chat-read-status`
  52. * `config => previews => max-gif-size` (local) - Maximum size in bytes below which a GIF can be embedded directly in the page at render time. Bigger files will be rendered statically using the preview endpoint instead. Can be set with `occ config:app:set spreed max-gif-size --value=X` where X is the new value in bytes. Defaults to 3 MB.
  53. ## 11.1
  54. * `delete-messages` - Allows to delete chat messages up to 6 hours for your own messages or when being a moderator. On deleting the message text will be replaced and a follow up system message will make sure clients and users update it in their cache and storage.
  55. * `rich-object-sharing` - Rich objects can be shared to chats. See [OCP\RichObjectStrings\Definitions](https://github.com/nextcloud/server/blob/master/lib/public/RichObjectStrings/Definitions.php) for more details on supported rich objects and required data.
  56. * `conversation-call-flags` - Whether the room api provides the `callFlag` to tell apart video and audio calls
  57. * `temp-user-avatar-api` (local) - Whether a temporary api is available to allow users to upload an avatar to their profile via an OCS endpoint.
  58. ## 12.0
  59. * `conversation-v4` - Whether conversations API v4 is available. This also means that v1, v2 and v3 are **not** available anymore. The changes on API v4 allow a user to have multiple sessions in the same conversation on different devices which is incompatible with the data structure that was used by the previous APIs.
  60. * `signaling-v3` - Whether signaling API v3 is available. This also means that v1 and v2 are **not** available anymore. The TURN and STUN server data is now returning all defined servers instead of a random one. Multiple entries for the same server are combined and using the urls array correctly now.
  61. * `geo-location-sharing` - Whether the `geo-location` rich object is defined and can be shared to the rich-object sharing endpoint.
  62. * `voice-message-sharing` - Shared files can be flagged as voice messages and are then presented differently in the interface
  63. * `publishing-permissions` - Whether the publishing permissions can be set for the attendees.
  64. ## 12.1
  65. * `clear-history` - Whether chat API has the endpoint so moderators can clear the complete history of a chat
  66. ## 13
  67. * `direct-mention-flag` - The conversation list populates the boolean `unreadMentionDirect` when the user was mentioned directly (ignoring @all mentions) since their last visit
  68. * `notification-calls` - Whether the API to opt out of call notifications is available
  69. * `conversation-permissions` - Whether the default and custom permissions can be set for attendees.
  70. ## 14
  71. * `chat-unread` - Whether the API to mark a conversation as unread is available
  72. * `reactions` - Api reactions to chat message
  73. * `rich-object-list-media` - When the API to get the chat messages for shared media is available
  74. * `rich-object-delete` - When the API allows to delete chat messages which are file or rich object shares
  75. ## 15
  76. * `unified-search` (local) - When the extended attributes of unified search results are there
  77. * `chat-permission` - When permission 128 is required to post chat messages, reaction or share items to the conversation
  78. * `silent-send` - Whether the chat API allows to send chat messages without triggering notifications
  79. * `message-expiration` - Message expiration time for a conversation
  80. * `sip-support-nopin` - Whether SIP can be configured to not require a custom attendee PIN
  81. * `send-call-notification` - When the API allows to resend call notifications for individual users that did not join yet
  82. * `silent-call` - Allow to start calls without sending notification
  83. * `talk-polls` - Polls feature is available to use in the chat
  84. * `config => call => enabled` - Whether calling is enabled on the instance or not
  85. * `config => signaling => session-ping-limit` (local) - Number of sessions the HPB is allowed to ping in the same request
  86. * `config => signaling => hello-v2-token-key` (local) - Public key to use when verifying JWT auth tokens for hello V2.
  87. ## 16
  88. * `breakout-rooms-v1` - Whether breakout-rooms API v1 is available
  89. * `recording-v1` - Call recording is available.
  90. * `chat-get-context` - Whether the message context API endpoint is available
  91. * `config => call => breakout-rooms` - Whether breakout rooms are enabled on this instance
  92. * `config => call => recording` - Whether calls can be recorded (requires the High-performance backend server)
  93. * `single-conversation-status` - When the response of a single conversation can also return the user status
  94. * `chat-keep-notifications` - Whether messages can be retrieved without marking notifications as read
  95. ## 17
  96. * `avatar` (local) - Avatar of conversation
  97. * ~~`config => chat => translations` - List of translations tuples, JSON encoded sample `{"from":"de","fromLabel":"German","to":"en","toLabel":"English"}`. Those tuples should be provided as options when translating chat messages.~~ Due to some providers the list was too big causing issues in various clients. So the capability was replaced by boolean `config => chat => has-translation-providers` in Talk 18.
  98. * `config => call => predefined-backgrounds` (local) - List of predefined virtual backgrounds. The files are in Talks img/ folder, accessible via the normal image path methods. The list is cached for 5 minutes.
  99. * `config => call => can-upload-background` (local) - Boolean flag whether the user can upload a custom virtual background (requires an account and non-zero quota). Uploads should be done to Talk/Backgrounds/ (respecting the user's attachment directory setting).
  100. * `config => call => supported-reactions` - A list of emojis supported as call reactions. If the list is absent or empty, clients should not show the emoji reaction option in calls.
  101. * `config => chat => typing-privacy` (local) - User defined numeric value to enable 1 or disable 0 the typing indicator to other users
  102. * `typing-privacy` - Support toggle typing privacy
  103. ## 17.1
  104. * `remind-me-later` (local) - Support for "Remind me later" for chat messages exists
  105. * `bots-v1` - Support of the first version for Bots and Webhooks is available
  106. * `markdown-messages` - Chat messages support markdown and are rendered automatically
  107. ## 18
  108. * `media-caption` - Whether media caption can be added to shared files
  109. * `session-state` - Sessions can mark themselves as inactive, so the participant receives notifications again
  110. * `note-to-self` (local) - Support for "Note-to-self" conversation exists
  111. * `recording-consent` - Whether admins and moderators can require recording consent before joining a call
  112. * `sip-support-dialout` - Whether admins can enable SIP dial-out
  113. * `config => chat => has-translation-providers` (local) - When true, translation tuples can be loaded from the [OCS Translation API](https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-translation-api.html#get-available-translation-options).
  114. * `config => call => recording-consent` - Whether users need to consent into call recording before joining a call (see [constants list](constants.md#recording-consent-required))
  115. * `config => call => sip-enabled` - Whether SIP is configured on the server allowing for SIP dial-in
  116. * `config => call => sip-dialout-enabled` - Whether SIP dial-out is configured on the server, additionally requires `config => call => sip-enabled`
  117. * `config => call => can-enable-sip` - Whether the current user is a member of the groups that are allowed to enable SIP dial-in on a conversation or use SIP dial-out
  118. ## 19
  119. * `delete-messages-unlimited` - Whether messages can be deleted at any time (used to be restricted to 6 hours after posting)
  120. * `edit-messages` - Whether messages can be edited (restricted to 24 hours after posting)
  121. * `silent-send-state` - Whether messages contain a flag that they were sent silently
  122. * `chat-read-last` - Whether chat can be marked read without giving a message ID (will fall back to the conversations last message ID)
  123. * `federation-v1` - Whether basic chatting is possible with federation
  124. * `config => federation => enabled` (local) - Boolean, whether federation is enabled on instance
  125. * `config => federation => incoming-enabled` (local) - Boolean, whether users are allowed to be invited into federated conversations on other servers
  126. * `config => federation => outgoing-enabled` (local) - Boolean, whether users are allowed to invited federated users of other servers into conversations
  127. * `config => federation => only-trusted-servers` (local) - Boolean, whether federation invites are limited to trusted servers
  128. ## 20
  129. * `ban-v1` - Whether the API to ban attendees is available
  130. * `mention-permissions` - Whether non-moderators are allowed to mention `@all`
  131. * `federation-v2` - Whether federated session ids are used and calls are possible with federation
  132. * `edit-messages-note-to-self` - Messages in note-to-self conversations can be edited indefinitely
  133. ## 20.1
  134. * `archived-conversations-v2` (local) - Conversations can be marked as archived which will hide them from the conversation list by default
  135. * `talk-polls-drafts` - Whether moderators can store and retrieve poll drafts
  136. * `download-call-participants` - Whether the endpoints for moderators to download the call participants is available
  137. * `chat-summary-api` (local) - Whether the endpoint to get summarized chat messages in a conversation is available
  138. * `email-csv-import` - Whether the endpoint to import a CSV email list as participants exists
  139. * `config => chat => summary-threshold` (local) - Number of unread messages that should exist to show a "Generate summary" option
  140. * `config => call => start-without-media` (local) - Boolean, whether media should be disabled when starting or joining a conversation
  141. * `config => call => max-duration` - Integer, maximum call duration in seconds. Please note that this should only be used with system cron and with a reasonable high value, due to the expended duration until the background job ran.
  142. * `config => call => blur-virtual-background` (local) - Boolean, whether blur background is set by default when joining a conversation
  143. ## 21
  144. * `config => conversations => force-passwords` - Whether passwords are enforced for public rooms
  145. * `conversation-creation-password` - Whether the endpoints for creating public conversations or making a conversation public support setting a password
  146. * `call-notification-state-api` (local) - Whether the endpoints exist for checking if a call notification should be dismissed
  147. * `schedule-meeting` (local) - Whether logged-in participants can schedule meetings
  148. * `config => chat => has-translation-task-providers` (local) - When true, translations can be done using the [OCS TaskProcessing API](https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-taskprocessing-api.html).
  149. * `config => conversations => list-style` (local) - Whether conversation list should appear in certain way
  150. * `config => conversations => description-length` (local) - The maximum length for conversation descriptions, currently 2000. Before this config was added the implicit limit was 500, since the existance of the feature capability `room-description`.
  151. * `call-end-to-end-encryption` - Signaling support of the server for the end-to-end encryption of calls
  152. * `config => call => end-to-end-encryption` - Whether calls should be end-to-end encrypted (currently off by default, until all Talk mobile clients support it)
  153. + `edit-draft-poll` - Whether moderators can edit draft polls
  154. ## 21.1
  155. * `conversation-creation-all` (local) - Whether the conversation creation endpoint allows to specify all attributes of a conversation
  156. * `sip-direct-dialin` (local) - Whether the SIP bridge can create conversations when an external participant calls a mapped phone number
  157. * `important-conversations` (local) - Whether important conversations are supported
  158. * `unbind-conversation` (local) - Whether the API exists to make an event and phone conversation persistent
  159. * `config => conversations => retention-event` (local) - Number of days before an inactive event conversation is deleted (`0` = disabled)
  160. * `config => conversations => retention-instant-meetings` (local) - Number of days before an instant meeting conversation is deleted (`0` = disabled)
  161. * `config => conversations => retention-phone` (local) - Number of days before an inactive incoming or outgoing phone conversation is deleted (`0` = disabled)
  162. * `config => call => predefined-backgrounds-v2` (local) - Whether virtual backgrounds should be read from the theming directory
  163. * `config => experiments => enabled` (local) - Bit flag of enabled experiments for clients
  164. * `dashboard-event-rooms` (local) - Whether Talk APIs offer functionality for Dashboard requests
  165. * `mutual-calendar-events` (local) - Whether Talk APIs offer mutual calendar events for 1:1 rooms
  166. * `upcoming-reminders` (local) - Whether the API to list upcoming reminders exists
  167. * `sensitive-conversations` (local) - Whether sensitive conversations are supported