Hi Kev, many thanks for updating XEP-0289. I'll need to take some time to review it completely, and will reply after I've done that.
On 5/30/12 6:42 AM, Kevin Smith wrote: > Answering based on the recent update to 289 and the rest of the > changes that are pending me having the energy to do another round. > > On Wed, Feb 8, 2012 at 2:10 AM, Peter Saint-Andre <stpe...@stpeter.im> wrote: >> - from the perspective of a far user, is the mirror room just a standard >> MUC room? if not, why not (and exactly how)? > > Entirely standard. > >> - do mirror rooms support all the usual MUC features (history, room >> administration etc.)? if not, why not? > > A subset. History will work. Kicks will work in a suitably trusted > environment, as will bans. Subjects will be fine. Configuration in > general won't cross over nodes - e.g. configuring a history storage of > 2 messages on one node and 500 on another means that users joining a > node won't be able to request more history than the node is willing to > keep. > >> - in particular, can the mirror room be administered? if not, why not? > > As above. > >> - does / can the mirror room retrieve history on joining the source room? > > Yes. Using the usual MUC history control. > >> - are there distinct disco identities for source rooms and mirror rooms? > > Each node exists, as far as addressing and disco are concerned, as an > isolated entity, just as if it wasn't federating with another room. > >> - does the source room config indicate that the room is (can be) mirrored? >> - does the mirror room config indicate what the source room is? > > I've deliberately sidestepped the issue. I suggest these things are a > matter of room configuration in the normal manner and not specified > formally. > >> - can mirror rooms themselves be mirrored? (ick) > > Yes, that's fine (and not particularly ick - you just naturally end up > with a tree-like structure that falls out of the wash). > >> - do / can mirror rooms / services communicate with each other? > > Only in as much as they talk to the room to which they may be joined, > and any rooms that may be joined to them. One could reconfigure the > graph to route around networking issues, but it's not automatic. > >> - does the mirror room wait for presence fan-out from the source room >> before sending presence to far users? > > Only if run in master-slave mode. > >> - does or should the mirror room include delayed delivery info in the >> messages that it sends to far users? > > I hadn't intended doing so. I can see mileage in it. > >> - 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 > > No. > >> - what happens if a near user tries to join a mirror room? is that user >> redirected from the mirror room to the source room? > > No. > >> - 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)? > > They could - although if this is a constrained network environment > 'good luck' to them. No. > >> - 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 > > I think I've now covered this. > >> - 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've elided master/slave config in the newer version - I need to add it back > in. > >> - I'm not really convinced about nomirror for messages, but I am open to >> being convinced > > Multi-master/peer to peer/whatever (not master/slave) mode costs you > consistent message ordering between nodes. Conversely it gains you the > ability to work while netsplit and potentially *hugely* reduced > latency in communication. I'm led to believe that there are > environments where this is important. > >> - 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! > > I've completely rewritten everything, so this may or may not still apply. > >> - must the far user's roomnick be the same in the source room and the >> mirror room? > > Yes. > >> - 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) > > I think that a rogue mirroring service doesn't gain anything by doing > so - this seems to be a security concern of -45 rather than of -289. > I've got an example reserved for the error, but I've not put it in > yet. 289v0.3 will have it. > >> - 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'd suggest using PSA for this. > >> - I don't mind the JID\20Escaping stuff for room names, but I suppose >> others might consider it ugly > > I've removed it and it'll be relegated to a 'you could do this if you > really wanted'. > >> Kev, I'd be happy to work with you on improving XEP-0289. > > Thanks. > > /K