When a remote conversation is used by a local user, some capabilities need to be checked/respected from the remote server, while others need to be considered from the local server.
Here is a list with the current capabilities and my understanding where they should be read from. Having said that, some capabilities can be considered to "not diverge" at the moment, e.g. features that are available. But when a new API version would ever hit that requires us to remove a capability, the Server would say again whether remote or local controls it.
Details
Outdated list, refer to the docs/capabilties.md instead and check the actual capabilities.features-local and capabilities.config-local instead
features Flags
| Feature |
Server |
Comment |
audio |
▶️ Remote |
|
video |
▶️ Remote |
|
chat-v2 |
▶️ Remote |
|
conversation-v4 |
▶️ Remote |
|
guest-signaling |
▶️ Remote |
|
empty-group-room |
▶️ Remote |
|
guest-display-names |
▶️ Remote |
|
multi-room-users |
▶️ Remote |
|
favorites |
🏠 Local |
|
last-room-activity |
▶️ Remote |
|
no-ping |
▶️ Remote |
|
system-messages |
▶️ Remote |
|
delete-messages |
▶️ Remote |
|
mention-flag |
▶️ Remote |
|
in-call-flags |
▶️ Remote |
|
conversation-call-flags |
▶️ Remote |
|
notification-levels |
▶️ Remote |
|
invite-groups-and-mails |
▶️ Remote |
|
locked-one-to-one-rooms |
▶️ Remote |
|
read-only-rooms |
▶️ Remote |
|
listable-rooms |
🏠 Local |
|
chat-read-marker |
▶️ Remote |
|
chat-unread |
▶️ Remote |
|
webinary-lobby |
▶️ Remote |
|
start-call-flag |
▶️ Remote |
|
chat-replies |
▶️ Remote |
|
circles-support |
▶️ Remote |
|
force-mute |
▶️ Remote |
|
sip-support |
▶️ Remote |
|
sip-support-nopin |
▶️ Remote |
|
chat-read-status |
▶️ Remote |
|
phonebook-search |
🏠 Local |
|
raise-hand |
▶️ Remote |
|
room-description |
▶️ Remote |
|
rich-object-sharing |
▶️ Remote |
|
temp-user-avatar-api |
🏠 Local |
|
geo-location-sharing |
▶️ Remote |
|
voice-message-sharing |
▶️ Remote |
|
signaling-v3 |
▶️ Remote |
|
publishing-permissions |
▶️ Remote |
|
clear-history |
▶️ Remote |
|
direct-mention-flag |
▶️ Remote |
|
notification-calls |
▶️ Remote |
|
conversation-permissions |
▶️ Remote |
|
rich-object-list-media |
▶️ Remote |
|
rich-object-delete |
▶️ Remote |
|
unified-search |
🏠 Local |
|
chat-permission |
▶️ Remote |
|
silent-send |
▶️ Remote |
|
silent-call |
▶️ Remote |
|
send-call-notification |
▶️ Remote |
|
talk-polls |
▶️ Remote |
|
breakout-rooms-v1 |
▶️ Remote |
|
recording-v1 |
▶️ Remote |
|
avatar |
▶️ Remote |
Should use remote because we load the image from remote as well? |
chat-get-context |
▶️ Remote |
|
single-conversation-status |
▶️ Remote |
|
chat-keep-notifications |
▶️ Remote |
|
typing-privacy |
🏠 Local for setting / ▶️ Remote for whether we should send the signaling messages |
|
remind-me-later |
🏠 Local |
❓ I guess we would want to trigger the reminders on our own server? |
bots-v1 |
▶️ Remote |
|
markdown-messages |
▶️ Remote |
|
session-state |
▶️ Remote |
|
note-to-self |
🏠 Local |
|
recording-consent |
▶️ Remote |
|
message-expiration |
▶️ Remote |
|
reactions |
▶️ Remote |
|
chat-reference-id |
▶️ Remote |
|
config Flags
| Feature |
Server |
Comment |
attachments > allowed |
🏠 Local |
|
attachments > folder |
🏠 Local |
|
call > enabled |
▶️ Remote |
|
call > breakout-rooms |
▶️ Remote |
|
call > recording |
▶️ Remote |
|
call > recording-consent |
▶️ Remote |
|
call > supported-reactions |
▶️ Remote |
|
call > predefined-backgrounds |
🏠 Local |
|
call > can-upload-background |
🏠 Local |
|
chat > max-length |
▶️ Remote |
|
chat > read-privacy |
🏠 Local |
|
chat > has-translation-providers |
🏠 Local / ▶️ Remote |
Could check both and use the better matching one? |
chat > typing-privacy |
🏠 Local |
|
conversations > can-create |
🏠 Local |
|
previews > max-gif-size |
🏠 Local |
|
signaling > session-ping-limit |
⛔ Not for user land |
Used by the HPB only |
signaling > hello-v2-token-key |
▶️ Remote |
|
cc @Ivansss @SystemKeeper @mahibi @Antreesy In case you want to skim over it and leave a comment.
When a remote conversation is used by a local user, some capabilities need to be checked/respected from the remote server, while others need to be considered from the local server.
Here is a list with the current capabilities and my understanding where they should be read from. Having said that, some capabilities can be considered to "not diverge" at the moment, e.g. features that are available. But when a new API version would ever hit that requires us to remove a capability, the Server would say again whether remote or local controls it.
Details
Outdated list, refer to the docs/capabilties.md instead and check the actual capabilities.features-local and capabilities.config-local instead
featuresFlagsaudiovideochat-v2conversation-v4guest-signalingempty-group-roomguest-display-namesmulti-room-usersfavoriteslast-room-activityno-pingsystem-messagesdelete-messagesmention-flagin-call-flagsconversation-call-flagsnotification-levelsinvite-groups-and-mailslocked-one-to-one-roomsread-only-roomslistable-roomschat-read-markerchat-unreadwebinary-lobbystart-call-flagchat-repliescircles-supportforce-mutesip-supportsip-support-nopinchat-read-statusphonebook-searchraise-handroom-descriptionrich-object-sharingtemp-user-avatar-apigeo-location-sharingvoice-message-sharingsignaling-v3publishing-permissionsclear-historydirect-mention-flagnotification-callsconversation-permissionsrich-object-list-mediarich-object-deleteunified-searchchat-permissionsilent-sendsilent-callsend-call-notificationtalk-pollsbreakout-rooms-v1recording-v1avatarchat-get-contextsingle-conversation-statuschat-keep-notificationstyping-privacyremind-me-laterbots-v1markdown-messagessession-statenote-to-selfrecording-consentmessage-expirationreactionschat-reference-idconfigFlagsattachments > allowedattachments > foldercall > enabledcall > breakout-roomscall > recordingcall > recording-consentcall > supported-reactionscall > predefined-backgroundscall > can-upload-backgroundchat > max-lengthchat > read-privacychat > has-translation-providerschat > typing-privacyconversations > can-createpreviews > max-gif-sizesignaling > session-ping-limitsignaling > hello-v2-token-keycc @Ivansss @SystemKeeper @mahibi @Antreesy In case you want to skim over it and leave a comment.