mirror of
https://github.com/moparisthebest/xeps
synced 2024-12-21 23:28:51 -05:00
0.2
This commit is contained in:
parent
8b8d7e2f7f
commit
be5ba27ad1
129
xep-0262.xml
129
xep-0262.xml
@ -10,7 +10,7 @@
|
||||
<abstract>This specification defines a Jingle application type for negotiating one or more sessions that use the Real-time Transport Protocol (RTP) to exchange media such as voice or video. The application type includes a straightforward mapping to Session Description Protocol (SDP) for interworking with SIP media endpoints.</abstract>
|
||||
&LEGALNOTICE;
|
||||
<number>0262</number>
|
||||
<status>Deferred</status>
|
||||
<status>Experimental</status>
|
||||
<type>Standards Track</type>
|
||||
<sig>Standards</sig>
|
||||
<approver>Council</approver>
|
||||
@ -25,6 +25,12 @@
|
||||
<shortname>jingle-zrtp</shortname>
|
||||
<discuss>jingle</discuss>
|
||||
&stpeter;
|
||||
<revision>
|
||||
<version>0.2</version>
|
||||
<date>2010-08-09</date>
|
||||
<initials>psa</initials>
|
||||
<remark><p>In harmony with the ZRTP spec, moved communication of <zrtp-hash/> element from Jingle session-info message to jingle-invite, specifically as a child of the <encryption/> element from XEP-0167; increased protocol version from zero to one.</p></remark>
|
||||
</revision>
|
||||
<revision>
|
||||
<version>0.1</version>
|
||||
<date>2009-02-25</date>
|
||||
@ -55,46 +61,113 @@ a=zrtp-hash:zrtp-version zrtp-hash-value
|
||||
<code>
|
||||
a=zrtp-hash:1.10 fe30efd02423cb054e50efd0248742ac7a52c8f91bc2df881ae642c371ba46df
|
||||
</code>
|
||||
<p>This SDP attribute can be translated into Jingle as a <zrtp-hash/> element, as shown below.</p>
|
||||
<p>This SDP attribute can be translated into Jingle as a <zrtp-hash/> element qualified by the 'urn:xmpp:jingle:apps:rtp:zrtp:1' namespace, as shown below.</p>
|
||||
<code><![CDATA[
|
||||
<zrtp-hash version='zrtp-version'>zrtp-hash-value</zrtp-hash>
|
||||
<zrtp-hash version='zrtp-version' xmlns='urn:xmpp:jingle:apps:rtp:zrtp:1'>zrtp-hash-value</zrtp-hash>
|
||||
]]></code>
|
||||
<p>An example follows.</p>
|
||||
<code><![CDATA[
|
||||
<zrtp-hash version='1.10'>fe30efd02423cb054e50efd0248742ac7a52c8f91bc2df881ae642c371ba46df</zrtp-hash>
|
||||
<zrtp-hash version='1.10' xmlns='urn:xmpp:jingle:apps:rtp:zrtp:1'>
|
||||
fe30efd02423cb054e50efd0248742ac7a52c8f91bc2df881ae642c371ba46df
|
||||
</zrtp-hash>
|
||||
]]></code>
|
||||
<p>If either party to a Jingle RTP session wishes to use ZRTP, the party SHOULD send a Jingle session-info message that includes a <zrtp-hash/> element qualified by the 'urn:xmpp:jingle:apps:rtp:zrtp:0' namespace, as shown in the following example.</p>
|
||||
<example caption="Initiator sends session-info message with zrtp-hash"><![CDATA[
|
||||
<p>The <zrtp-hash/> element is sent as a child of the <encryption/> element defined in &xep0167;.</p>
|
||||
<p>If the Jingle initiator wishes to use ZRTP, it includes the <zrtp-hash/> element in its session invitation (where it hashes over its own Hello message as described in the ZRTP specification).</p>
|
||||
<example caption="Initiator sends session invitation with zrtp-hash"><![CDATA[
|
||||
<iq from='romeo@montague.lit/orchard'
|
||||
id='vna13b9a'
|
||||
from='juliet@capulet.lit/balcony'
|
||||
id='uz61v4m4'
|
||||
to='juliet@capulet.lit/balcony'
|
||||
type='set'>
|
||||
<jingle xmlns='urn:xmpp:jingle:0'
|
||||
action='session-info'
|
||||
<jingle xmlns='urn:xmpp:jingle:1'
|
||||
action='session-initiate'
|
||||
initiator='romeo@montague.lit/orchard'
|
||||
sid='a73sjjvkla37jfea'>
|
||||
<zrtp-hash xmlns='urn:xmpp:jingle:apps:rtp:zrtp:0'
|
||||
version='1.10'>fe30efd02423cb054e50efd0248742ac7a52c8f91bc2df881ae642c371ba46df</zrtp-hash>
|
||||
<content creator='initiator' name='voice'>
|
||||
<description xmlns='urn:xmpp:jingle:apps:rtp:1' media='audio'>
|
||||
<payload-type id='96' name='speex' clockrate='16000'/>
|
||||
<payload-type id='97' name='speex' clockrate='8000'/>
|
||||
<payload-type id='18' name='G729'/>
|
||||
<payload-type id='103' name='L16' clockrate='16000' channels='2'/>
|
||||
<payload-type id='98' name='x-ISAC' clockrate='8000'/>
|
||||
<encryption required='true'>
|
||||
<zrtp-hash xmlns='urn:xmpp:jingle:apps:rtp:zrtp:1' version='1.10'>
|
||||
fe30efd02423cb054e50efd0248742ac7a52c8f91bc2df881ae642c371ba46df
|
||||
</zrtp-hash>
|
||||
</encryption>
|
||||
</description>
|
||||
<transport xmlns='urn:xmpp:jingle:transports:ice-udp:1'
|
||||
pwd='asd88fgpdd777uzjYhagZg'
|
||||
ufrag='8hhy'>
|
||||
<candidate component='1'
|
||||
foundation='1'
|
||||
generation='0'
|
||||
id='el0747fg11'
|
||||
ip='10.0.1.1'
|
||||
network='1'
|
||||
port='8998'
|
||||
priority='2130706431'
|
||||
protocol='udp'
|
||||
type='host'/>
|
||||
<candidate component='1'
|
||||
foundation='2'
|
||||
generation='0'
|
||||
id='y3s2b30v3r'
|
||||
ip='192.0.2.3'
|
||||
network='1'
|
||||
port='45664'
|
||||
priority='1694498815'
|
||||
protocol='udp'
|
||||
rel-addr='10.0.1.1'
|
||||
rel-port='8998'
|
||||
type='srflx'/>
|
||||
</transport>
|
||||
</content>
|
||||
</jingle>
|
||||
</iq>
|
||||
]]></example>
|
||||
<p>In accordance with <cite>XEP-0166</cite>, if the receiving party does not understand the payload of the session-info message then it MUST return a &feature; error.</p>
|
||||
<example caption="Receiver returns feature-not-implemented error"><![CDATA[
|
||||
<p>If the receiving party wishes to proceed with ZRTP negotiation, it also includes the <zrtp-hash/> element in its session-accept message (where it hashes over its own Hello message as described in the ZRTP specification).</p>
|
||||
<example caption="Responder sends session-accept"><![CDATA[
|
||||
<iq from='juliet@capulet.lit/balcony'
|
||||
id='ringing1'
|
||||
id='pn2va48j'
|
||||
to='romeo@montague.lit/orchard'
|
||||
type='error'>
|
||||
<error type='modify'>
|
||||
<feature-not-implemented xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
|
||||
<unsupported-info xmlns='urn:xmpp:jingle:errors:0'/>
|
||||
</error>
|
||||
type='set'>
|
||||
<jingle xmlns='urn:xmpp:jingle:1'
|
||||
action='session-accept'
|
||||
initiator='romeo@montague.lit/orchard'
|
||||
responder='juliet@capulet.lit/balcony'
|
||||
sid='a73sjjvkla37jfea'>
|
||||
<content creator='initiator' name='voice'>
|
||||
<description xmlns='urn:xmpp:jingle:apps:rtp:1' media='audio'>
|
||||
<payload-type id='97' name='speex' clockrate='8000'/>
|
||||
<payload-type id='18' name='G729'/>
|
||||
<encryption>
|
||||
<zrtp-hash xmlns='urn:xmpp:jingle:apps:rtp:zrtp:1' version='1.10'>
|
||||
badfbe66ff87fe135750377509b09b0babd1c3ec25fa4314565e2bf7ccc30299
|
||||
</zrtp-hash>
|
||||
</encryption>
|
||||
</description>
|
||||
<transport xmlns='urn:xmpp:jingle:transports:ice-udp:1'
|
||||
pwd='YH75Fviy6338Vbrhrlp8Yh'
|
||||
ufrag='9uB6'>
|
||||
<candidate component='1'
|
||||
foundation='1'
|
||||
generation='0'
|
||||
id='or2ii2syr1'
|
||||
ip='192.0.2.1'
|
||||
network='0'
|
||||
port='3478'
|
||||
priority='2130706431'
|
||||
protocol='udp'
|
||||
type='host'/>
|
||||
</transport>
|
||||
</content>
|
||||
</jingle>
|
||||
</iq>
|
||||
]]></example>
|
||||
<p>However, if the receiving party also supports and wishes to use ZRTP, it too SHOULD send a session-info message containing a zrtp-hash element.</p>
|
||||
</section1>
|
||||
|
||||
<section1 topic='Determining Support' anchor='disco'>
|
||||
<p>If an entity supports the zrtp-hash session-info message, it MUST advertise that fact in its responses to &xep0030; information ("disco#info") requests by returning a feature of "urn:xmpp:jingle:apps:rtp:zrtp:0":</p>
|
||||
<p>If an entity supports the zrtp-hash session-info message, it MUST advertise that fact in its responses to &xep0030; information ("disco#info") requests by returning a feature of "urn:xmpp:jingle:apps:rtp:zrtp:1":</p>
|
||||
<example caption='A disco#info query'><![CDATA[
|
||||
<iq type='get'
|
||||
from='calvin@usrobots.lit/lab'
|
||||
@ -109,7 +182,7 @@ a=zrtp-hash:1.10 fe30efd02423cb054e50efd0248742ac7a52c8f91bc2df881ae642c371ba46d
|
||||
to='calvin@usrobots.lit/lab'
|
||||
id='disco1'>
|
||||
<query xmlns='http://jabber.org/protocol/disco#info'>
|
||||
<feature var='urn:xmpp:jingle:apps:rtp:zrtp:0'/>
|
||||
<feature var='urn:xmpp:jingle:apps:rtp:zrtp:1'/>
|
||||
</query>
|
||||
</iq>
|
||||
]]></example>
|
||||
@ -125,11 +198,15 @@ a=zrtp-hash:1.10 fe30efd02423cb054e50efd0248742ac7a52c8f91bc2df881ae642c371ba46d
|
||||
<p>This document requires no interaction with &IANA;.</p>
|
||||
</section1>
|
||||
|
||||
<section1 topic='Acknowledgements' anchor='acks'>
|
||||
<p>Thanks to Werner Dittmann and Emil Ivov for their implementation feedback.</p>
|
||||
</section1>
|
||||
|
||||
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
|
||||
<section2 topic='Protocol Namespaces' anchor='registrar-ns'>
|
||||
<p>This specification defines the following XML namespace:</p>
|
||||
<ul>
|
||||
<li>urn:xmpp:jingle:apps:rtp:zrtp:0</li>
|
||||
<li>urn:xmpp:jingle:apps:rtp:zrtp:1</li>
|
||||
</ul>
|
||||
<p>Upon advancement of this specification from a status of Experimental to a status of Draft, the ®ISTRAR; shall add the foregoing namespace to the registry located at &NAMESPACES;, as described in Section 4 of &xep0053;.</p>
|
||||
</section2>
|
||||
@ -144,8 +221,8 @@ a=zrtp-hash:1.10 fe30efd02423cb054e50efd0248742ac7a52c8f91bc2df881ae642c371ba46d
|
||||
|
||||
<xs:schema
|
||||
xmlns:xs='http://www.w3.org/2001/XMLSchema'
|
||||
targetNamespace='urn:xmpp:jingle:apps:rtp:zrtp:0'
|
||||
xmlns='urn:xmpp:jingle:apps:rtp:zrtp:0'
|
||||
targetNamespace='urn:xmpp:jingle:apps:rtp:zrtp:1'
|
||||
xmlns='urn:xmpp:jingle:apps:rtp:zrtp:1'
|
||||
elementFormDefault='qualified'>
|
||||
|
||||
<xs:element name='zrtp-hash'>
|
||||
|
Loading…
Reference in New Issue
Block a user