Entity Capabilities

All Volity entities (referees, parlors, clients, the bookkeeper) should identify their Volity role using the JEP-0115 extension to the <presence> stanza.

The <c> tag should have a node of http://volity.org/protocol/caps. The ver should be the Volity protocol version -- 1.0 at present. The ext should contain the Volity role, which will be one of:

This is not exactly the way that JEP-0115 is supposed to be used. The node is supposed to describe the specific client software, and the ext should not have any semantic meaning. We're forcing all Volity clients to use the same "software" version, and relying on a common meaning for ext codes. It's not illegal, but it's hinky, and we may want to change it someday.

Example

<presence xmlns="jabber:client" to="zarf@volity.net/Gamut1234" from="belford@volity.net/volity">
  <c xmlns="http://jabber.org/protocol/caps"
    node="http://volity.org/protocol/caps"
    ext="parlor"
    ver="1.0" />
</presence>

Disco Requirements

JEP-0115 requires that the entity also respond to two disco#info nodes.

http://volity.org/protocol/caps#1.0 -- must return the same reply as a disco#info query with no node. (The identity, features, and extended result must match.)

http://volity.org/protocol/caps#ROLE -- must return a <feature> with var="volity_role.html" class=wikipagelink>Volity role strings above. For example, the query

<iq xmlns="jabber:client"
    to="zarf-werewolf@volity.net/volity" 
    type="get" id="jc1s4" 
    from="zarf-volity-test0@volity.net/zymb">
  <query xmlns="http://jabber.org/protocol/disco#info" 
    node="http://volity.org/protocol/caps#parlor" />
</iq>

...gets the reply:

<iq xmlns="jabber:client" 
    to="zarf-volity-test0@volity.net/zymb" 
    from="zarf-werewolf@volity.net/volity" 
    id="jc1s4" type="result">
  <query xmlns="http://jabber.org/protocol/disco#info">
    <feature var="http://volity.org/protocol/caps#parlor" />
  </query>
</iq>

External Link