Hi, With this XEP approaching its way to draft status, I gave it a full review. All in all it was quite readable and from a protocol/logic point of view it doesn't look that hard to implement.
First off some editorial points: * It'd be nice if the glossary used definition lists (<dl/>). This would improved rendering in XHTML and PDF and would make it consistent with other XEPs. * The introductory sentence of section 5 is missing an ending period. Next my remaining points: * The last point of section 4.6.2 ( http://xmpp.org/extensions/xep-0301.html#attribute_values ) mentions behavior in case a client receives forbidden values for attributes. Why not just ignore the RTT message, if it violates the standard? Would be easier to describe and to implement I think. If the other side send illegal values there, clipping them to 0 there would hardly make it interoperate as expected, or would it? * Regarding section 6.1, Activating RTT: While I'm okay for only *RECOMMENDING* (not REQUIRING) explicit discovery via disco/caps for 1-to-1 chats, I'm not at all when it comes to RTT within MUCs. Matt pointed me to XEP-0045, section 17.1.1 ( http://xmpp.org/extensions/xep-0045.html#impl-service-traffic ), which describes a way to discover what extended namespaces are allowed within a room. I think the XEP should REQUIRE discovering the supported extended namespaces and if RTT is among them, before RTT is send to a room. What an RTT client is allowed to do if the MUC component doesn't support discovery of allowed extended namespaces (i.e. returning <feature-not-implemented/>) is up for debate. In addition, if sending RTT without explicit discovery is allowed, the protocol should provide a way to signal the sender of these RTT messages to refrain from further sending RTT messages to the other side. I can imagine in some scenarios, i.e. really low bandwidth or high latency scenarios, you simply don't want this excessive traffic. To sum up, it's a nicely written XEP which covers a lot different angles including internationalization, privacy, relation to other XEPs. When I get around, I'll try to implement it, at least experimentally, in Swift. Cheers, Tobi PS: I noticed some glitches in its PDF rendering, mostly due to missing support of strong, em and <br/>. I'll try to fix those.
