[Standards] MIX: The Nick Name Problem (TM) aka The Identity Crisis (TM)

Ralph Meijer ralphm at ik.nu
Thu Nov 29 12:36:08 UTC 2018

On 29/11/2018 13.09, Daniel Gultsch wrote:
> Hi,
> [..]
> So let me paint you a picture of my use case. In WhatsApp the user
> creates an account; usually tied to a phone number - but that’s not
> the point; and sets a Name and an Avatar. That name isn’t unique. It
> would be pretty stupid if WhatsApp would prevent me from calling
> myself 'Daniel' and would force me to call myself 'Daniel12345'. That
> name and avatar is my identity on that chat system. When I’m in a
> group chat with someone I’m still holding on to that identity. People
> in that group chat expect to see that name and that avatar.
> So when it comes to MUC my 'Identity Name' doesn’t map to MUC nick
> names. MUC Nick names are unique. My identity name might not be. So
> usually when I create WhatsApp-like group chats I set the nick to
> something unique (most of the times the local part of my JID) and then
> simply never display it but gather the 'true identity' by other means.
> (Those other means can become pretty complicated and hacky)
> So MIX in that regard is pretty close to MUC in that nick names are
> unique for example. At least they are are somewhat optional. They are
> not as much second class citizens as I would hope they would be - but
> at least they are optional enough that I can ignore them.
> But if I ignore them I have to discover the true identity of a JID
> somehow. (That is display name (stored in a PEP node for example) and
> avatar.

I'm working on something similar. In our case, we:

  * Have no explicit roster, but instead rely on phone address books.
  * Use vCards for retrieving names.
  * Have the local address book entry override vCard.
  * Don't have private channels.

So, instead of relying on MIX for nicks, we use the local address book 
entry (or vCard) based on the real JID of a participant.

We do the same for avatars.

> In previous talks about MIX we have discussed creating 'avatar' and
> other nodes on the mix channel. However even if we have those it would
> basically mean that if I change something on my avatar or display name
> I would then need to change them on every MIX channel I’m joined in.

Note that MIX has several ways of dealing with nicks. As mentioned in 
7.1.4 Setting a Nick:

   * The nick is registered with the user account in some way, for 
example as part of user provisioning with nick configured as an 
attribute in a directory service. For example, this could be chosen by 
corporate services that wish to ensure consistent nick values for a set 
of users and channels.
   * The nick is registered with the MIX service, as described in 
Registering a Nick .
   * The user explicitly sets the nick, as described in this section.
   * The MIX service generates the nick.

So instead of every room, you could potentially register the nick with 
the service, not every channel. Also, I don't think there's a 
requirement for them to be unique from a protocol point of view.


More information about the Standards mailing list