mirror of
https://github.com/moparisthebest/xeps
synced 2024-11-28 12:12:22 -05:00
a037ddd440
git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@598 4b5297f7-1745-476d-ba37-a9c6900126ab
142 lines
6.7 KiB
XML
142 lines
6.7 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<!DOCTYPE xep SYSTEM 'xep.dtd' [
|
|
<!ENTITY % ents SYSTEM 'xep.ent'>
|
|
%ents;
|
|
]>
|
|
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
|
|
<xep>
|
|
<header>
|
|
<title>Software Version</title>
|
|
<abstract>This specification provides canonical documentation of an XMPP protocol extension for retrieving information about the software version associated with another XMPP entity.</abstract> &LEGALNOTICE;
|
|
<number>0092</number>
|
|
<status>Draft</status>
|
|
<type>Standards Track</type>
|
|
<sig>Standards</sig>
|
|
<dependencies>
|
|
<spec>XMPP Core</spec>
|
|
</dependencies>
|
|
<supersedes/>
|
|
<supersededby/>
|
|
<shortname>iq-version</shortname>
|
|
<schemaloc>
|
|
<url>http://www.xmpp.org/schemas/iq-version.xsd</url>
|
|
</schemaloc>
|
|
&stpeter;
|
|
<revision>
|
|
<version>1.1</version>
|
|
<date>2007-02-15</date>
|
|
<initials>psa</initials>
|
|
<remark><p>Per a vote of the XMPP Council, changed from Historical and Active to Standards Track and Draft; recommended use of Entity Capabilities instead of Software Version when presence information is available; added proviso to security considerations regarding disclosure of operating system information; added section on Service Discovery.</p></remark>
|
|
</revision>
|
|
<revision>
|
|
<version>1.0</version>
|
|
<date>2003-10-08</date>
|
|
<initials>psa</initials>
|
|
<remark><p>Per a vote of the Jabber Council, changed status to Active.</p></remark>
|
|
</revision>
|
|
<revision>
|
|
<version>0.1</version>
|
|
<date>2003-05-22</date>
|
|
<initials>psa</initials>
|
|
<remark><p>Initial version.</p></remark>
|
|
</revision>
|
|
</header>
|
|
<section1 topic='Introduction' anchor='intro'>
|
|
<p>The Jabber protocols have long included a method for discovering version information about the software running at another entity's JID. This method makes use of the 'jabber:iq:version' namespace and has been documented variously in Internet-Drafts and elsewhere. Because this protocol is not required by &rfc2779;, the 'jabber:iq:version' namespace was removed from &xmppim;. This specification fills the void for canonical documentation.</p>
|
|
<p><em>Note Well: The jabber:iq:version protocol SHOULD NOT be used to determine the identity of entities from which an application receives presence (e.g., contacts in a user's roster and certain kinds of gateways); &xep0115; SHOULD be used instead. However, the jabber:iq:version protocol MAY be used to determine the identity of entities from which an application does not receive presence (e.g., servers and many kinds of components). The jabber:iq:version protocol MAY also be used to determine information available only via jabber:iq:version (e.g., operating system information) for contacts from which a user receives presence, but only if the user specifically requests such information for a particular contact.</em></p>
|
|
</section1>
|
|
<section1 topic='Protocol' anchor='protocol'>
|
|
<p>The 'jabber:iq:version' namespace provides a standard way for Jabber entities to exchange information about the software version used by the entities. The information is communicated in a request/response pair using an <iq/> element that contains a <query/> scoped by the 'jabber:iq:version' namespace. The following children of the <query/> are allowed in an IQ result:</p>
|
|
<ul>
|
|
<li><name/> -- The natural-language name of the software. This element is REQUIRED in a result.</li>
|
|
<li><version/> -- The specific version of the software. This element is REQUIRED in a result.</li>
|
|
<li><os/> -- The operating system of the queried entity. This element is OPTIONAL in a result (see also the <link url='#security'>Security Considerations</link>).</li>
|
|
</ul>
|
|
</section1>
|
|
<section1 topic='Examples' anchor='examples'>
|
|
<example caption='Querying Another Entity for its Software Version'><![CDATA[
|
|
<iq
|
|
type='get'
|
|
from='romeo@montague.net/orchard'
|
|
to='juliet@capulet.com/balcony'
|
|
id='version_1'>
|
|
<query xmlns='jabber:iq:version'/>
|
|
</iq>
|
|
]]></example>
|
|
<example caption='Receiving a Reply Regarding Software Version'><![CDATA[
|
|
<iq
|
|
type='result'
|
|
to='romeo@montague.net/orchard'
|
|
from='juliet@capulet.com/balcony'
|
|
id='version_1'>
|
|
<query xmlns='jabber:iq:version'>
|
|
<name>Exodus</name>
|
|
<version>0.7.0.4</version>
|
|
<os>Windows-XP 5.01.2600</os>
|
|
</query>
|
|
</iq>
|
|
]]></example>
|
|
<p>The standard error conditions described in &xep0086; apply (e.g., service unavailable if the entity does not support the namespace).</p>
|
|
</section1>
|
|
<section1 topic='Determining Support' anchor='disco'>
|
|
<p>In order for a requesting entity to determine if a responding entity supports result set management, it SHOULD send a &xep0030; information request to the responding entity:</p>
|
|
<example caption='Requesting entity queries responding entity regarding protocol support'><![CDATA[
|
|
<iq from='stpeter@jabber.org/roundabout'
|
|
to='conference.jabber.org'
|
|
id='disco1'>
|
|
<query xmlns='http://jabber.org/protocol/disco#info'/>
|
|
</iq>
|
|
]]></example>
|
|
<example caption='Responding entity communicates protocol support'><![CDATA[
|
|
<iq from='conference.jabber.org'
|
|
to='stpeter@jabber.org/roundabout'
|
|
id='disco1'>
|
|
<query xmlns='http://jabber.org/protocol/disco#info'>
|
|
...
|
|
<feature var='jabber:iq:version'/>
|
|
...
|
|
</query>
|
|
</iq>
|
|
]]></example>
|
|
</section1>
|
|
<section1 topic='Security Considerations' anchor='security'>
|
|
<p>Revealing the application's underlying operating system may open the user or system to attacks directed against that operating system; therefore, an application MUST provide a way for a human user or administrator to disable sharing of information about the operating system.</p>
|
|
</section1>
|
|
<section1 topic='IANA Considerations' anchor='iana'>
|
|
<p>This document requires no interaction with &IANA;.</p>
|
|
</section1>
|
|
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
|
|
<p>The 'jabber:iq:version' namespace is registered in the protocol namespaces registry maintained by the ®ISTRAR;.</p>
|
|
</section1>
|
|
<section1 topic='XML Schema' anchor='schema'>
|
|
<code><![CDATA[
|
|
<?xml version='1.0' encoding='UTF-8'?>
|
|
|
|
<xs:schema
|
|
xmlns:xs='http://www.w3.org/2001/XMLSchema'
|
|
targetNamespace='jabber:iq:version'
|
|
xmlns='jabber:iq:version'
|
|
elementFormDefault='qualified'>
|
|
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
The protocol documented by this schema is defined in
|
|
XEP-0092: http://www.xmpp.org/extensions/xep-0092.html
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
|
|
<xs:element name='query'>
|
|
<xs:complexType>
|
|
<xs:sequence minOccurs='0'>
|
|
<xs:element name='name' type='xs:string' minOccurs='1'/>
|
|
<xs:element name='version' type='xs:string' minOccurs='1'/>
|
|
<xs:element name='os' type='xs:string' minOccurs='0'/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
</xs:schema>
|
|
]]></code>
|
|
</section1>
|
|
</xep>
|