[Standards-JIG] Client Capabilities (rant)

Ralph Meijer jabber.org at ralphm.ik.nu
Sun Nov 20 19:47:03 UTC 2005

On Sun, Nov 20, 2005 at 11:41:18AM -0800, Chris Mullins wrote:
> Agreed. Mostly. 
> The client I typically use, Pandion, support XHTML messaging. In fact it
> supports it so well, there's no way I can turn it off. 
> Because it's an "always on" feature, the EXT node in the client
> capabilities would not include "xhtml", right? It's not an optional
> feature. 
> "In addition, the client MAY send an 'ext' attribute if it has one or
> more feature bundles to advertise. A feature bundle is any non-standard
> addition or extension to the core application, such as a client plugin."
> In this case, the xhtml support in Pandion is not a feature bundle, a
> non-standard plugin, or client plugin.  
> With 'xhtml' not listed in the EXT, I wouldn't disco the client and
> check for it. Using this mechanism, I would never detect that Pandion
> has support for xhtml. 

This is false.

When you get a caps element in a presence packet and this is the first time
you get this combination of node/ver attribute values, you do a disco
request as in example 3. If the XHTML feature is non-optional it should
appear in the result of this query, like all 'standard' features of the
client. So, at this point you know that this version of this client
always supports XHTML and cache this information indefinitely (across

Now, for all optional features (plugins and/or features you can
enable/disable), the client will have announced extensions. For example,
it might have a plugin that implements both TINS and file transfer. It
will insert an identifier to this end in the 'ext' attribute. For
example 'coolplugin'. You can then send an additional disco query to the
client that you got this extension identifier from (node#coolplugin,
where node is the node of the caps element. Now, you should also cache
/this/ information: coolplugin of the client node/version supports TINS
and file transfer.

By the way. The JEP does mention random, but 'the first client from
which you received a particular combination of node/ver (and/or ext)' is
also random. The traffic is only there the very first time you discover
something new.



More information about the Standards mailing list