XEP-0353 v0.1: Initial published version approved by XMPP Council

This commit is contained in:
Matthew A. Miller 2014-10-02 11:44:17 -06:00
parent 82044132e4
commit 2e69a36269
2 changed files with 15 additions and 8 deletions

View File

@ -9,8 +9,8 @@
<title>Jingle Message Initiation</title>
<abstract>This specification provides a way for the initiator of a Jingle session to propose sending an invitation in an XMPP message stanza, thus taking advantage of message delivery semantics instead of sending IQ stanzas to all of the responder's online resources or choosing a particular online resource.</abstract>
&LEGALNOTICE;
<number>xxxx</number>
<status>ProtoXEP</status>
<number>0353</number>
<status>Experimental</status>
<type>Standards Track</type>
<sig>Standards</sig>
<approver>Council</approver>
@ -22,6 +22,12 @@
<shortname>jingle-message</shortname>
&fippo;
&stpeter;
<revision>
<version>0.1</version>
<date>2014-10-02</date>
<initials>XEP Editor (mam)</initials>
<remark><p>Initial published version approved by the XMPP Council.</p></remark>
</revision>
<revision>
<version>0.0.2</version>
<date>2014-08-28</date>
@ -36,7 +42,7 @@
</revision>
</header>
<section1 topic='Introduction' anchor='intro'>
<p>Because &xep0166; uses &IQ; stanzas for all interactions between the parties to a session, when sending an invitation the initiator needs to either pick one of the responder's resources (e.g., based on &xep0115; information) or send the invitation to all of the responder's resources that support Jingle. The first method is prone to error (e.g., in cases where more than one resource supports Jingle) and the second method requires sending a separate invitation to each resource. Neither of these is ideal. Although &xep0276; proposed a way to overcome the problem, it too has issues (e.g., dependency on a presence service and the need to reveal all supported XMPP features) and in any case has not been widely implemented.</p>
<p>Because &xep0166; uses &IQ; stanzas for all interactions between the parties to a session, when sending an invitation the initiator needs to either pick one of the responder's resources (e.g., based on &xep0115; information) or send the invitation to all of the responder's resources that support Jingle. The first method is prone to error (e.g., in cases where more than one resource supports Jingle) and the second method requires sending a separate invitation to each resource. Neither of these is ideal. Although &xep0276; proposed a way to overcome the problem, it too has issues (e.g., dependency on a presence service and the need to reveal all supported XMPP features) and in any case has not been widely implemented.</p>
<p>This document proposes an alternative solution: exchanging a &MESSAGE; stanza before sending the Jingle invitation in an &IQ; stanza. (Indeed, in the early discussions leading up to the Jingle protocol the authors considered using &MESSAGE; stanzas instead of &IQ; stanzas, but chose the latter for their deterministic handling semantics.) This method effectively results in a kind of decloaking for Jingle purposes.</p>
</section1>
<section1 topic='Requirements' anchor='reqs'>
@ -91,7 +97,7 @@
<example caption="Initiator Sends Directed Presence"><![CDATA[
<presence to='romeo@montague.example/orchard'
from='juliet@capulet.example'>
<c xmlns='http://jabber.org/protocol/caps'
<c xmlns='http://jabber.org/protocol/caps'
hash='sha-1'
node='http://psi-im.org'
ver='q07IKJEyjvHSyhy//CH0CxmKi8w='/>
@ -145,7 +151,7 @@
<presence from='juliet@capulet.example/phone'
to='romeo@montague.example/orchard'>
<c xmlns='http://jabber.org/protocol/caps'
<c xmlns='http://jabber.org/protocol/caps'
hash='sha-1'
node='http://code.google.com/p/exodus'
ver='QgayPKawpkPSDYmwT/WM94uAlu0='/>

View File

@ -1,9 +1,9 @@
<!--
This file contains common entities for use in XMPP
Extension Protocols (XEPs):
Extension Protocols (XEPs):
http://xmpp.org/extensions/
This file is maintained by the XMPP Extensions Editor:
http://xmpp.org/about-xmpp/xsf/xsf-people/#editor
@ -537,7 +537,7 @@ THE SOFTWARE.
<!ENTITY rfc4119 "<span class='ref'><link url='http://tools.ietf.org/html/rfc4119'>RFC 4119</link></span> <note>RFC 4119: A Presence-based GEOPRIV Location Object Format &lt;<link url='http://tools.ietf.org/html/rfc4119'>http://tools.ietf.org/html/rfc4119</link>&gt;.</note>" >
<!ENTITY rfc4120 "<span class='ref'><link url='http://tools.ietf.org/html/rfc4120'>RFC 4120</link></span> <note>RFC 4120: The Kerberos Network Authentication Service (V5) &lt;<link url='http://tools.ietf.org/html/rfc4120'>http://tools.ietf.org/html/rfc4120</link>&gt;.</note>" >
<!ENTITY rfc4122 "<span class='ref'><link url='http://tools.ietf.org/html/rfc4122'>RFC 4122</link></span> <note>RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace &lt;<link url='http://tools.ietf.org/html/rfc4122'>http://tools.ietf.org/html/rfc4122</link>&gt;.</note>" >
<!ENTITY rfc4145 "<span class='ref'><link url='http://tools.ietf.org/html/rfc4145'>RFC 4145</link></span> <note>RFC 4145: TCP-Based Media Transport in the Session Description Protocol (SDP) &lt;<link url='http://tools.ietf.org/html/rfc4145'>http://tools.ietf.org/html/rfc4145</link>&gt;.</note>" >
<!ENTITY rfc4145 "<span class='ref'><link url='http://tools.ietf.org/html/rfc4145'>RFC 4145</link></span> <note>RFC 4145: TCP-Based Media Transport in the Session Description Protocol (SDP) &lt;<link url='http://tools.ietf.org/html/rfc4145'>http://tools.ietf.org/html/rfc4145</link>&gt;.</note>" >
<!ENTITY rfc4227 "<span class='ref'><link url='http://tools.ietf.org/html/rfc4227'>RFC 4227</link></span> <note>RFC 4227: Using the Simple Object Access Protocol (SOAP) in Blocks Extensible Exchange Protocol (BEEP) &lt;<link url='http://tools.ietf.org/html/rfc4227'>http://tools.ietf.org/html/rfc4227</link>&gt;.</note>" >
<!ENTITY rfc4251 "<span class='ref'><link url='http://tools.ietf.org/html/rfc4251'>RFC 4251</link></span> <note>RFC 4251: The Secure Shell (SSH) Protocol Architecture &lt;<link url='http://tools.ietf.org/html/rfc4251'>http://tools.ietf.org/html/rfc4251</link>&gt;.</note>" >
<!ENTITY rfc4252 "<span class='ref'><link url='http://tools.ietf.org/html/rfc4252'>RFC 4252</link></span> <note>RFC 4252: The Secure Shell (SHS) Authentication Protocol &lt;<link url='http://tools.ietf.org/html/rfc4252'>http://tools.ietf.org/html/rfc4252</link>&gt;.</note>" >
@ -1333,3 +1333,4 @@ IANA Service Location Protocol, Version 2 (SLPv2) Templates</link></span> <note>
<!ENTITY xep0350 "<span class='ref'><link url='http://xmpp.org/extensions/xep-0350.html'>Data Forms Geolocation Element (XEP-0350)</link></span> <note>XEP-0350: Data Forms Geolocation Element &lt;<link url='http://xmpp.org/extensions/xep-0350.html'>http://xmpp.org/extensions/xep-0350.html</link>&gt;.</note>" >
<!ENTITY xep0351 "<span class='ref'><link url='http://xmpp.org/extensions/xep-0351.html'>Recipient Server Side Notifications Filtering (XEP-0351)</link></span> <note>XEP-0351: Recipient Server Side Notifications Filtering &lt;<link url='http://xmpp.org/extensions/xep-0351.html'>http://xmpp.org/extensions/xep-0351.html</link>&gt;.</note>" >
<!ENTITY xep0352 "<span class='ref'><link url='http://xmpp.org/extensions/xep-0352.html'>Client State Indication (XEP-0352)</link></span> <note>XEP-0352: Client State Indication &lt;<link url='http://xmpp.org/extensions/xep-0352.html'>http://xmpp.org/extensions/xep-0352.html</link>&gt;.</note>" >
<!ENTITY xep0353 "<span class='ref'><link url='http://xmpp.org/extensions/xep-0353.html'>Jingle Message Initiation (XEP-0353)</link></span> <note>XEP-0353: Jingle Message Initiation &lt;<link url='http://xmpp.org/extensions/xep-0353.html'>http://xmpp.org/extensions/xep-0353.html</link>&gt;.</note>" >