Peter Saint-Andre wrote:
On 12/19/12 2:50 PM, Dave Cridland wrote:
> So, when I've been thinking about this, I've generally come to the
> conclusion that MUC has a fairly chunky design flaw, which is that
> we conflated the addressing, and display, of occupants.
>
> The "right" way of doing this would be to randomly assign the
> resource, and then have a distinct nickname, which might be
> non-unique.
>
> But I have no idea how to get there from where we are.
Choose a random resourcepart and use XEP-0172:
<presence from='[email protected]/foo'
to='[email protected]/2n183bdg36avc64'>
<nick xmlns='http://jabber.org/protocol/nick'>Ishmael</nick>
</presence>
That would work, but only if the clients expected something entirely different from the status quo.
> I can solve the second problem for anonymous rooms by giving them a
> jid; that could either be an in-room style jid or some other shadow
> jid on the MUC server. If it's an in-room jid, that allows us to
> not only track the different occupants using the same jid, but it
> also allows us to address them independently, which seems handy.
> It's halfway to the "right" design I outlined above.
>
> To put it another way, you make the anonymous case work by making
> all rooms non-anonymous, but the jid so revealed might itself be
> anonymized.
>
So what I meant by this was to have the MUC send:
</presence>
</presence>
So while we (the receiver) don't know who Ishmael really is, we do know there's actually two of them and can address them independently if needs be, via "in-room" style jids that are hidden. If you include the real jids, instead, then obviously that works too.
> The first issue needs an extension to solve; I think we need some
> additional gunk in the join for clients to indicate they'll be
> unfazed by having multiple occupants for the same nickname.
Unfazed on the sending side (my own occupant JID), the receiving side
(other occupants), or both?
So in the proposal I didn't really make very clear, I was assuming that in showing both the nick-share occupants during the initial room presence (the occupant listing) that would probably break clients that don't expect it, whereas it's a simple enough thing to signal during the client's own joining presence.
> Seems reasonable?
Something along those lines, yes. 
Does this make it clearer?