Types of chat¶
There are two kinds of multi-user chat. Private group chats, and public channels1.
|JIDs revealed||Yes (*)||No|
|Publicly listed||No (*)||Yes|
(*) Immutable for group chats.
People in the group chat / channel: Participants
Roles are not displayed and cannot be modified through the UI.
|Affiliations||In group chats||In channels|
(*) A group chat will display an existing admin as such but it will not encourage/allow someone to be promoted to admin. UI options in group chats only allow a member to become an owner but not admin. So admins are discouraged by the UI but will be displayed as such if they end up being one for some reason.
(**) Everybody is a member in group chats
Clients MAY create an 'advanced view' that displays roles as well.
When joining a group chat, a client needs to select a nickname to use. There are multiple sources from which this name may be selected. The client should use the following sources in order:
- If the chat is present in the user's bookmarks and has a nickname present (as the resource).
- Reserved name
- A chat may be queried to fetch the name that is registered by the user for that chat.
- User nickname (PEP)
- The name stored in the user's account according to XEP-0172.
- User nickname (vCard)
- The name stored in the user's vCard as
- Local nickname
- (Optional, not recommended2) A nickname previously configured by the user in this client instance.
- JID username
- The username portion of the user's JID (i.e. before the '@').
Other user's names¶
The display of other user's names is covered in the general UI recommendations.
Bookmark management logic
Clients must always use real JIDs for messaging privately within a group chat if (and only if) JIDs are publicly visible to all participants.3
To avoid requiring the user to configure a nickname manually on each device, shared cross-device stores such as PEP and vCard should be preferred. ↩
If real JIDs are known to all participants, it is preferable to use that for private communication to avoid confusion. Through-MUC PMs have the following disadvantages:
- Only work while connected to the group chat
- Do not interact well with multiple devices (e.g. not all of a recipient's devices may be in a group chat)
- Can cause confusion if talking to the same person through different views (e.g. if the person is already a contact in your roster, and you already have a chat open with them)
However if the sending user is an admin of a room where JIDs are hidden, using a real JID will reveal the admin's private JID to the recipient. Either warn the sender that their JID will be revealed, or always use the in-room JID in such channels. ↩