On Thu, Jun 28, 2012 at 1:33 PM, Lance Stout <[email protected]> wrote:

> XEP-0045 section 7.2.9. MUC participants who are not allowed to see the
> actual JIDs of other participants will have issues recognizing the
> situation. There would be two interleaved RTT streams, both from the full
> JID "[email protected]/user" and so the RTT buffers in the receivers
> would become garbled until a reset, and then only a single RTT session
> would "win." Again, the use of a <thread /> element or an optional sid
> attribute would remedy the issue.
>
> Done properly, XEP-0301* never gets garbled* because of the error
detection found in Section 4.6
XEP-0301 is designed to be corruption-resistant, with automatic recovery:
http://xmpp.org/extensions/xep-0301.html#automatic_recovery_of_realtime_text

Now, the scenario you describe, does have some interesting noteworthy
effects:
During conflicting real time text, a "stall" occurs (Section 4.6.2, the
message freezes on receiving end)
Eventually, within 10 seconds the "dominant buffer" will win because of
Message Reset (section 4.6.4)
This is acceptable for most situations because usually there is only one
active typist from the same JID.

Result of a common scenario of someone switching computers during MUC:

- A sender types on one computer, then pauses typing.
....The MUC channel sees the real-time typing.
- Sender switches computer.  Starts typing or resumes typing.
....The MUC channel still sees the original text.  (conflicting <rtt/>'s
are ignored)
....Within 10 seconds, the MUC channel suddenly sees the old text replaced
by the new partially-composed text, thanks to a message reset according to
section 4.6.4 recommending regular retransmission every 10 seconds.  Real
time text of the typing instantly resumes immediately after that message
reset.
....Everything's back to normal within 10 seconds.  No corrupted characters.

Beyond XEP-0301, there can be additional creativity on part of the
developer (i.e. intelligence in software clients to handle thrashing
between multiple simultaneous typists coming from the same JID, such a
whole family logged onto the same JID .... or logging issues .... or fixing
the software to add <thread/> and distinguishing the streams via <thread/>
as you mentioned.

The question is: What to mention in XEP-0301?
Most of these are not spec-related issues...

Mark Rejhon

Reply via email to