Hi,
every time I send a broadcast presence to Openfire with XEP-115 Entity Capabilites attached, Openfire "responds" with a Service Discovery info request. My client then of course responds with its features and identities.
I don't know why Openfire sends the request in the first place. Maybe he's interested in my client's capabilities but I don't why it should be. The specification of XEP-115 doesn't explicitly mention that the server should discover a client's capabilities. Of course it can, but I understand it more of a client-to-client protocol.
Further more Openfire does not advertise support for XEP-115 in its Service Discovery response.
But the bad thing about all this, is that Openfire asks my client for its capabilities, every time it sends a Presence (e.g. with another <show> element). The verfication string and hash is always the same! So actually Openfire should cache the capabilities.
So the whole point of XEP-115, namely less network activity, seems to be invalidated.
Sample:
Client sends:
<presence><c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="URL" ver="QgayPKawpkPSDYmwT/WM94uAlu0="></c></presence>
Openfire sends:
<iq type="get" id="213-75" to="111@dev/test" from="dev"><query xmlns="http://jabber.org/protocol/disco#info"/></iq>
Client responds:
<iq from="111@dev/test" id="213-75" to="dev" type="result">
<query xmlns="http://jabber.org/protocol/disco#info">
<identity category="client" name="Exodus 0.9.1" type="pc"></identity>
<feature var="http://jabber.org/protocol/disco#items"></feature>
<feature var="http://jabber.org/protocol/muc"></feature>
<feature var="http://jabber.org/protocol/disco#info"></feature>
</query>
</iq>
I first thought, maybe my verfication string is wrong, but then I tried it with the example in XEP-115 (see above) and it still behaves the same.
Comments?