mirror of
https://github.com/moparisthebest/xeps
synced 2024-12-22 07:38:52 -05:00
XEP-0343 v0.2 - Add optional explicit signaling of channels to the transport element.
This commit is contained in:
parent
127c14d14f
commit
4289a95cf1
59
xep-0343.xml
59
xep-0343.xml
@ -4,13 +4,14 @@
|
|||||||
<!ENTITY SCTPMAP "<sctpmap/>">
|
<!ENTITY SCTPMAP "<sctpmap/>">
|
||||||
<!ENTITY FINGERPRINT "<fingerprint/>">
|
<!ENTITY FINGERPRINT "<fingerprint/>">
|
||||||
<!ENTITY webrtc-protocol "<span class='ref'><link url='http://tools.ietf.org/html/draft-jesup-rtcweb-data-protocol-04'>WebRTC Data Channel Protocol</link></span> <note>WebRTC Data Channel Protocol <<link url='http://tools.ietf.org/html/draft-jesup-rtcweb-data-protocol-04'>http://tools.ietf.org/html/draft-jesup-rtcweb-data-protocol-04</link>>.</note>" >
|
<!ENTITY webrtc-protocol "<span class='ref'><link url='http://tools.ietf.org/html/draft-jesup-rtcweb-data-protocol-04'>WebRTC Data Channel Protocol</link></span> <note>WebRTC Data Channel Protocol <<link url='http://tools.ietf.org/html/draft-jesup-rtcweb-data-protocol-04'>http://tools.ietf.org/html/draft-jesup-rtcweb-data-protocol-04</link>>.</note>" >
|
||||||
|
<!ENTITY w3-webrtc-draft "<span class='ref'><link url='http://www.w3.org/TR/2013/WD-webrtc-20130910/'>WebRTC 1.0: Real-time Communication Between Browsers</link></span> <note>WebRTC 1.0: Real-time Communication Between Browsers <<link url='http://www.w3.org/TR/2013/WD-webrtc-20130910/'>http://www.w3.org/TR/2013/WD-webrtc-20130910/</link>>.</note>" >
|
||||||
<!ENTITY rfc3758 "<span class='ref'><link url='http://tools.ietf.org/html/rfc3758'>RFC 3758</link></span> <note>RFC 3758: Stream Control Transmission Protocol (SCTP) Partial Reliability Extension <<link url='http://tools.ietf.org/html/rfc3758'>http://tools.ietf.org/html/rfc3758</link>>.</note>" >
|
<!ENTITY rfc3758 "<span class='ref'><link url='http://tools.ietf.org/html/rfc3758'>RFC 3758</link></span> <note>RFC 3758: Stream Control Transmission Protocol (SCTP) Partial Reliability Extension <<link url='http://tools.ietf.org/html/rfc3758'>http://tools.ietf.org/html/rfc3758</link>>.</note>" >
|
||||||
%ents;
|
%ents;
|
||||||
]>
|
]>
|
||||||
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
|
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
|
||||||
<xep>
|
<xep>
|
||||||
<header>
|
<header>
|
||||||
<title>Use of DTLS/SCTP in Jingle ICE-UDP</title>
|
<title>Signaling WebRTC datachannels in Jingle</title>
|
||||||
<abstract>This specification defines how to use the ICE-UDP Jingle transport method to send media data using WebRTC DataChannels, so technically uses DTLS/SCTP on top of the Interactive Connectivity Establishment (ICE) methodology, which provides robust NAT traversal for media traffic.</abstract>
|
<abstract>This specification defines how to use the ICE-UDP Jingle transport method to send media data using WebRTC DataChannels, so technically uses DTLS/SCTP on top of the Interactive Connectivity Establishment (ICE) methodology, which provides robust NAT traversal for media traffic.</abstract>
|
||||||
&LEGALNOTICE;
|
&LEGALNOTICE;
|
||||||
<number>0343</number>
|
<number>0343</number>
|
||||||
@ -24,12 +25,18 @@
|
|||||||
</dependencies>
|
</dependencies>
|
||||||
<supersedes/>
|
<supersedes/>
|
||||||
<supersededby/>
|
<supersededby/>
|
||||||
<shortname>NOT_YET_ASSIGNED</shortname>
|
<shortname>jingle-webrtc-datachannels</shortname>
|
||||||
<author>
|
<author>
|
||||||
<firstname>Jens</firstname>
|
<firstname>Jens</firstname>
|
||||||
<surname>Bavendiek</surname>
|
<surname>Bavendiek</surname>
|
||||||
<email>bavendiek@dbis.rwth-aachen.de</email>
|
<email>bavendiek@dbis.rwth-aachen.de</email>
|
||||||
</author>
|
</author>
|
||||||
|
<revision>
|
||||||
|
<version>0.2</version>
|
||||||
|
<date>2014-07-15</date>
|
||||||
|
<initials>ph</initials>
|
||||||
|
<remark><p>Add optional explicit signaling of channels to the transport element.</p></remark>
|
||||||
|
</revision>
|
||||||
<revision>
|
<revision>
|
||||||
<version>0.1</version>
|
<version>0.1</version>
|
||||||
<date>2014-01-23</date>
|
<date>2014-01-23</date>
|
||||||
@ -123,10 +130,22 @@
|
|||||||
</iq>
|
</iq>
|
||||||
]]></example>
|
]]></example>
|
||||||
<p>As seen in the example, there is no notion about DataChannel internals. The only things negotiated here are the port on which the SCTP Stream runs and the name of the DataChannel. Further negotiation is happening through the &webrtc-protocol;, thus the DataChannel is identified through the content name.</p>
|
<p>As seen in the example, there is no notion about DataChannel internals. The only things negotiated here are the port on which the SCTP Stream runs and the name of the DataChannel. Further negotiation is happening through the &webrtc-protocol;, thus the DataChannel is identified through the content name.</p>
|
||||||
|
<p>For some uses like negotiated datachannels, it might be required to explicitly signal the channel properties. This is done by including a <channel/> element qualified by the 'urn:xmpp:jingle:transports:webrtc-datachannel:0' namespace &VNOTE; as child of the &TRANSPORT; for each channel that has to be signaled. An abbreviated example follows:</p>
|
||||||
|
<example caption="Initiation (with explicit channel signaling)"><![CDATA[
|
||||||
|
[...]
|
||||||
|
<transport xmlns='urn:xmpp:jingle:transports:ice-udp:1'
|
||||||
|
pwd='asd88fgpdd777uzjYhagZg'
|
||||||
|
ufrag='8hhy'>
|
||||||
|
<sctpmap xmlns='urn:xmpp:jingle:transports:dtls-sctp:1' number='5000' protocol='webrtc-datachannel' streams='1024'/>
|
||||||
|
<channel xmlns='urn:xmpp:jingle:transports:webrtc-datachannel:0' id="1" negotiated="true"/>
|
||||||
|
<channel xmlns='urn:xmpp:jingle:transports:webrtc-datachannel:0' id="3" negotiated="true"/>
|
||||||
|
<fingerprint mlns='urn:xmpp:jingle:apps:dtls:0' hash='sha-256' setup='actpass'>
|
||||||
|
[...]
|
||||||
|
]]></example>
|
||||||
</section2>
|
</section2>
|
||||||
<section2 topic='Syntax' anchor='protocol-syntax'>
|
<section2 topic='Syntax' anchor='protocol-syntax'>
|
||||||
<p>The values and names for the &SCTPMAP; element are taken from the corresponding SDP. The attributes of the <sctpmap/> element are as follows.</p>
|
<p>The values and names for the &SCTPMAP; element are taken from the corresponding SDP. The attributes of the <sctpmap/> element are as follows.</p>
|
||||||
<table caption='Sctmpap Attributes'>
|
<table caption='Sctpmap Attributes'>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Name</th>
|
<th>Name</th>
|
||||||
<th>Description</th>
|
<th>Description</th>
|
||||||
@ -152,6 +171,7 @@
|
|||||||
<td>16</td>
|
<td>16</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
<p>The attributes of the <channel/> element map directly to the attributes of the <link url="http://www.w3.org/TR/2013/WD-webrtc-20130910/#dictionary-rtcdatachannelinit-members">RTCDataChannelInit</link> dictionary as defined in &w3-webrtc-draft;.</p>
|
||||||
</section2>
|
</section2>
|
||||||
<section2 topic='Response' anchor='protocol-response'>
|
<section2 topic='Response' anchor='protocol-response'>
|
||||||
<p>As described in <cite>XEP-0166</cite>, to acknowledge receipt of the session initiation request, the responder immediately returns an IQ-result.</p>
|
<p>As described in <cite>XEP-0166</cite>, to acknowledge receipt of the session initiation request, the responder immediately returns an IQ-result.</p>
|
||||||
@ -258,6 +278,7 @@
|
|||||||
<p>This specification defines the following XML namespace:</p>
|
<p>This specification defines the following XML namespace:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>urn:xmpp:jingle:transports:dtls-sctp:1</li>
|
<li>urn:xmpp:jingle:transports:dtls-sctp:1</li>
|
||||||
|
<li>urn:xmpp:jingle:transports:webrtc-datachannel:0</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>The ®ISTRAR; includes the foregoing namespace in its registry at &NAMESPACES;, as governed by &xep0053;.</p>
|
<p>The ®ISTRAR; includes the foregoing namespace in its registry at &NAMESPACES;, as governed by &xep0053;.</p>
|
||||||
</section2>
|
</section2>
|
||||||
@ -290,7 +311,7 @@
|
|||||||
<xs:annotation>
|
<xs:annotation>
|
||||||
<xs:documentation>
|
<xs:documentation>
|
||||||
The protocol documented by this schema is defined in
|
The protocol documented by this schema is defined in
|
||||||
XEP-xxxx: http://www.xmpp.org/extensions/xep-xxxx.html
|
XEP-0343: http://www.xmpp.org/extensions/xep-0343.html
|
||||||
</xs:documentation>
|
</xs:documentation>
|
||||||
</xs:annotation>
|
</xs:annotation>
|
||||||
|
|
||||||
@ -305,7 +326,35 @@
|
|||||||
</xs:simpleContent>
|
</xs:simpleContent>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
</xs:schema>
|
||||||
|
|
||||||
|
<xs:schema
|
||||||
|
xmlns:xs='http://www.w3.org/2001/XMLSchema'
|
||||||
|
targetNamespace='urn:xmpp:jingle:transports:webrtc-datachannel:0'
|
||||||
|
xmlns='urn:xmpp:jingle:transports:webrtc-datachannel:0'
|
||||||
|
elementFormDefault='qualified'>
|
||||||
|
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
The protocol documented by this schema is defined in
|
||||||
|
XEP-0343: http://www.xmpp.org/extensions/xep-0343.html
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
|
||||||
|
<xs:element name='channel'>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base='xs:string'>
|
||||||
|
<xs:attribute name='id' type='xs:unsignedShort' use='optional'/>
|
||||||
|
<xs:attribute name='maxPacketLifeTime' type='xs:unsignedShort' use='optional'/>
|
||||||
|
<xs:attribute name='maxRetransmits' type='xs:unsignedShort' use='optional'/>
|
||||||
|
<xs:attribute name='negotiated' type='xs:boolean' use='optional' default='false'/>
|
||||||
|
<xs:attribute name='ordered' type='xs:boolean' use='optional' default='true'/>
|
||||||
|
<xs:attribute name='protocol' type='xs:string' use='optional'/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
</xs:schema>
|
</xs:schema>
|
||||||
]]></code>
|
]]></code>
|
||||||
</section1>
|
</section1>
|
||||||
|
Loading…
Reference in New Issue
Block a user