You are here

Entity Capabilities

Entity Capabilities is a method to reduce traffic by adding a compressed variant of disco info results in presence elements. Recently the XEP-0115 got an update which unfortunately breaks backwards compatibility.

With version 1.3, clients used a presence stanza of the form

<presence>
  <c xmlns='http://jabber.org/protocol/caps'
     node='http://exodus.jabberstudio.org/caps'
     ver='0.9'/>
</presence> 

where it was possible to use the node attribute to identify a particular client, your own, for instance.

However, with version 1.4 a presence element

<presence from='romeo@montague.lit/orchard'>
  <c xmlns='http://jabber.org/protocol/caps' 
     node='http://exodus.jabberstudio.org/#0.9.1'
     ver='8RovUdtOmiAjzj+xI7SK5BCw3A8='/>
</presence> 

where the actual client version has been appended to the node attribute, and the ver attribute has got a new meaning as a hashed version of the entities disco info result, see the XEP. The new protocol is much more practical than the old one, but a side effect is that already released client versions wont understand the new node attribute since the additional "#0.9.1" node part confuses them. It therefore takes a few release cycles before it is possible to make a complete switch to Entity Capabilities version 1.4.