[Standards] MIX - an approach to JIDs that avoids the four into three problem
steve.kille at isode.com
Sat Jun 2 08:25:14 UTC 2018
We've been talking about a number of variants to deal with the problem of
encoding four pieces of information in a JID structure that only allows
encoding of three.
Here is an approach to avoid the problem.
These JIDs are mostly (exceptions discussed below) used in the "from" of
stanzas coming from a MIX channel.
There is no issue with messages from MIX, as there is no reason to encode
the sender's resource. So variant 2 gives a clean approach with from JIDs
of the form channel at domain/stable-participant-id . The resource is used
to identify the sender. A bit like MUC, but using a stable ID instead of
the nick. Information needed to display the sender is carried as elements
in the message, so no lookup is needed to correctly display the sender.
We can do the same with presence. Just have presence come from
channel at domain/stable-participant-id. This feels clean. Other
information is held as attributes in the presence. For JID Visible, this
includes the full JID of the sender. For JID Hidden, it includes the
anonymized resource. This feels clean.
The only problem to address is when in a JID Hidden channel, the recipient
wants to address a specific client (PM or vCard lookup). A solution here is
to is to use the channel at domain/stable-participant-id addressing to the
channel, and include the anoymized resource as an extension attribute to the
message/IQ, which the MIX channel can use in conjunction with the JID to
look up the correct full JID.
More information about the Standards