I think the simplest way that satisfies most requirements is a pair of
switches in a client:
1) Request RTT sessions (default false)
2) Provide RTT session if requested (maybe default true)
I'm not yet sure if this is entirely sufficient, but it's pretty simple.
/K
I think the simplest way that satisfies most requirements is a pair of
switches in a client:
1) Request RTT sessions (default false)
2) Provide RTT session if requested (maybe default true)
I'm not yet sure if this is entirely sufficient, but it's pretty simple.
On Fri, Mar 2, 2012 at 8:45 AM, Kevin Smith <ke...@kismith.co.uk> wrote:I think the simplest way that satisfies most requirements is a pair ofswitches in a client:
1) Request RTT sessions (default false)
2) Provide RTT session if requested (maybe default true)
I'm not yet sure if this is entirely sufficient, but it's pretty simple.
[snip]
I think it is essentially your recommendation, with a variant:1) If RTT is supported, it is strongly RECOMMENDED to advertise RTT capability via disco#info (section 5 of XEP-0301)2) Request RTT sessionsConfigurable Preference: per-session | alwaysDefault: per-session (in mass-market clients)3) Accept RTT sessionConfigurable Preference: auto-accept | prompt-user-confirm-first | rejectDefault: prompt-user-confirm-first (in mass-market clients)
[snip]
That's very not-XMPPish, though - you're not likely to need to do any
work with xep30 or 115, the library/client will already be
implementing that, will have a easy way to add a feature and to check
that a remote contact supports a feature.
/K
I am seriously considering making disco#info section 5 optional, and making REQUIRED an alternate backup capabilities-detection mechanism:1. Clients that support XEP-0301, shall send one, single empty <rtt xmlns='urn:xmpp:rtt:0'/> element at the beginning of a chat session. This does not indicate an invitation to establish an RTT session, but merely to advertise a capability. No further <rtt> elements shall be transmitted unless the other client advertises RTT support too (either via disco#info or via having ever received <rtt>)This simplifies the programming of real-time libraries for Adium, Pidgin, Miranda, and any other instant messaging clients -- because 100% of the XEP-0301 protocol is solely confined to <rtt/> elements.
+1
A server that doesn't support <iq/> isn't coming anywhere close to
being a compliant XMPP implementation, though, and is likely to have
all sorts of other issues (like only passing the <body/> part of a
<message/> or similar japery).
/K
-- I remain concerned that not all platforms that I will be working on, provides an easy/trivial way to query for this feature. I also fear that I may run into XMPP implementations that isn't transparent to <iq> but lets through unfamiliar stanzas (such as <message> <rtt> </message> etc.) ... Although that hasn't happened yet, I've seen some XMPP implementations filter unfamiliar stanzas (i.e. Facebook XMPP server).
-- As long as section 5 is required, it means the server must have fully working <iq> transparency _AND_ transparency on <rtt/> elements. Two potential weak links in a 'half-hearted' XMPP implementation.
However, this can be revisited for subsequent revisions, if it becomes a pressing need. For now, I will attempt to comply with section 5 in all implementations, and see what the real-world experience is, first.