The new version is much improved. Some points are still a bit nebulous, but the general direction is clear. Looking forward to v0.3.
On 5/30/12 11:03 AM, Peter Saint-Andre wrote: > 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