Previous: Providing info, Up: Extending service discovery
jabber.el has a facility for requesting disco items and info. All positive responses are cached.
To request disco items or info from an entity, user one of these functions:
Get disco information for jid and node. A request is sent asynchronously on the connection jc. When the response arrives, callback is called with three arguments: jc, closure-data, and the result. The result may be retrieved from the cache, unless force is non-nil.
If the request was successful, or retrieved from cache, it looks like
(
identities features)
, where identities and features are lists. Each identity is["
name" "
category" "
type"]
, and each feature is a string denoting the namespace of the feature.If the request failed, the result is an
<error/>
node.
Get disco information for jid and node. A request is sent asynchronously on the connection jc. When the response arrives, callback is called with three arguments: jc, closure-data, and the result. The result may be retrieved from the cache, unless force is non-nil.
If the request was successful, or retrieved from cache, the result is a list of items, where each item is
["
name" "
jid" "
node"]
. The values are either strings or nil.If the request failed, the result is an
<error/>
node.
If you only want to see what is in the cache, use one of the following functions. They don't use a callback, but return the result directly.
Return cached disco information for jid and node, or nil if the cache doesn't contain this information. The result is the same as for
jabber-disco-get-info
.
Return cached disco items for jid and node, or nil if the cache doesn't contain this information. The result is the same as for
jabber-disco-get-items
.
In the future, this facility will be expanded to provide information
acquired through XEP-0115, Entity capabilities, which is a protocol
for sending disco information in <presence/>
stanzas.