At the XMPP Summit, I finally had a chance to chat with Kevin Smith
about XEP-0289, and on the plane back from Brussels I've reviewed that
spec in more detail. Herewith some feedback, which is terse because I'm
running out of battery power and my plane going to land soon.

First, I like the XEP-0289 approach and in general I prefer it to what I
wrote up in XEP-0281 (especially the more natural use of presence from
one room to join the other room, instead of the IQ-ish approach in 281).

However, much is left unspecified in XEP-0289 and I have a lot of
questions. :)

First, terminology. I like "MUC mirroring" instead of "federated MUC"
(because there's confusion with server federation -- you could argue
that our current model already is federated MUC). I would change things
as follows (you can figure out particular terminology I use below from
the parts of the JIDs):

sou...@home.near.tld (the source room)
source\40home.near....@mirror.far.tld (the mirror room)

Questions:

- from the perspective of a far user, is the mirror room just a standard
MUC room? if not, why not (and exactly how)?

- do mirror rooms support all the usual MUC features (history, room
administration etc.)? if not, why not?

- in particular, can the mirror room be administered? if not, why not?

- does / can the mirror room retrieve history on joining the source room?

- are there distinct disco identities for source rooms and mirror rooms?

- does the source room config indicate that the room is (can be) mirrored?

- does the mirror room config indicate what the source room is?

- can mirror rooms themselves be mirrored? (ick)

- do / can mirror rooms / services communicate with each other?

- does the mirror room wait for presence fan-out from the source room
before sending presence to far users?

- does or should the mirror room include delayed delivery info in the
messages that it sends to far users?

- can the source service explicitly request that the mirror service
shall mirror a particular room (as in XEP-0281)? probably not needed,
but good to make it clear

- what happens if a near user tries to join a mirror room? is that user
redirected from the mirror room to the source room?

- can a far user join the source room directly? can the source room
redirect a far user to the mirror room (as in XEP-0281)?

- we need to show examples of room joins from far users other than the
first one -- in particular, I would assume that the source room sends
only one presence notification to the mirror room, which is then fanned
out to all of the far users

- can / should the mirror room assume the equivalent of "nomirror" for
the presence of near and far users? that would save quite a bit of bandwidth

- I'm not really convinced about nomirror for messages, but I am open to
being convinced

- example 2 seems strange, because the 'from' address is the room JID of
the mirror room, not the occupant JID of the far user -- note that in
example 5 the source room seems to know the occupant JID of the far user
in the mirror room, but currently there's no way for it to know that!

- must the far user's roomnick be the same in the source room and the
mirror room?

- what error would the source room return to the mirror room on join if
the mirroring service is not trusted? (a rogue mirroring service could
simply include the MUC namespace and thus join as a normal occupant,
instead of including the special mirroring extension -- that's something
for the security considerations)

- what error or status notification would the mirror room return to the
far user if s2s is down? would it return any status at all?

- I don't mind the JID\20Escaping stuff for room names, but I suppose
others might consider it ugly

Kev, I'd be happy to work with you on improving XEP-0289.

Peter

--
Peter Saint-Andre
https://stpeter.im/


Reply via email to