No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

xep-0339.xml 7.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <!DOCTYPE xep SYSTEM 'xep.dtd' [
  3. <!ENTITY % ents SYSTEM 'xep.ent'>
  4. %ents;
  5. ]>
  6. <?xml-stylesheet type='text/xsl' href='xep.xsl'?>
  7. <xep>
  8. <header>
  9. <title>Source-Specific Media Attributes in Jingle</title>
  10. <abstract>This specification provides an XML mapping for translating the RFC 5766 Source-Specific Media Attributes from SDP to Jingle</abstract>
  11. &LEGALNOTICE;
  12. <number>0339</number>
  13. <status>Deferred</status>
  14. <type>Standards Track</type>
  15. <sig>Standards</sig>
  16. <approver>Council</approver>
  17. <dependencies>
  18. <spec>XEP-0166</spec>
  19. </dependencies>
  20. <supersedes/>
  21. <supersededby/>
  22. <shortname>NOT_YET_ASSIGNED</shortname>
  23. &fippo;
  24. <revision>
  25. <version>0.3</version>
  26. <date>2017-09-11</date>
  27. <initials>XEP Editor (jwi)</initials>
  28. <remark>Defer due to lack of activity.</remark>
  29. </revision>
  30. <revision>
  31. <version>0.2</version>
  32. <date>2015-11-09</date>
  33. <initials>ph</initials>
  34. <remark><p>remove obsolete mslabel and label lines.</p></remark>
  35. </revision>
  36. <revision>
  37. <version>0.1</version>
  38. <date>2014-01-08</date>
  39. <initials>psa</initials>
  40. <remark><p>Initial published version approved by the XMPP Council.</p></remark>
  41. </revision>
  42. <revision>
  43. <version>0.0.1</version>
  44. <date>2013-11-25</date>
  45. <initials>ph</initials>
  46. <remark><p>First draft.</p></remark>
  47. </revision>
  48. </header>
  49. <section1 topic="Introduction" anchor="intro">
  50. <p>&rfc5576; provides a mechanism to describe attributes of individual media sources (identified by their synchronization source) within a media stream. A mapping to Jingle as an extension to &xep0167; is defined in this document.</p>
  51. </section1>
  52. <section1 topic='Mapping to Session Description Protocol' anchor='sdp'>
  53. <section2 topic='The ssrc attribute' anchor='sdp-ssrc'>
  54. <p>The SDP format defined in <cite>RFC 5576</cite> is shown below.</p>
  55. <code>
  56. a=ssrc:&lt;ssrc-id&gt; &lt;attribute&gt;
  57. a=ssrc:&lt;ssrc-id&gt; &lt;attribute&gt;:&lt;value&gt;
  58. </code>
  59. <p>This maps to Jingle as a &lt;source/&gt; element qualified by the 'urn:xmpp:jingle:apps:rtp:ssma:0' namespace. Since 'ssrc' is a media attribute in SDP, the &lt;source/&gt; element is included as child of the Jingle &lt;description/&gt; element.</p>
  60. <code><![CDATA[
  61. <source ssrc='ssrc-id' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'>
  62. <parameter name='attribute'/>
  63. <parameter name='attribute' value='value'/>
  64. </source>
  65. ]]></code>
  66. <p>Each ssrc-id maps to a &lt;source/&gt; element whose 'ssrc' attribute is set to the ssrc-id. The associated attributes map to &lt;parameter/&gt; children with 'name' and 'value' attributes. If there is no value in the SDP, the value parameter shall be omitted.</p>
  67. <p>An example follows:</p>
  68. <code>
  69. a=ssrc:1656081975 cname:Yv/wvbCdsDW2Prgd
  70. a=ssrc:1656081975 msid:MLTJKIHilGn71fNQoszkQ4jlPTuS5vJyKVIv MLTJKIHilGn71fNQoszkQ4jlPTuS5vJyKVIva0</code>
  71. <code><![CDATA[
  72. <source ssrc='1656081975' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'>
  73. <parameter name='cname' value='Yv/wvbCdsDW2Prgd'/>
  74. <parameter name='msid' value='MLTJKIHilGn71fNQoszkQ4jlPTuS5vJyKVIv MLTJKIHilGn71fNQoszkQ4jlPTuS5vJyKVIva0'/>
  75. </source>]]></code>
  76. </section2>
  77. <section2 topic='The ssrc-group attribute' anchor='sdp-ssrc-group'>
  78. <p>The SDP format defined in <cite>RFC 5576</cite> is shown below.</p>
  79. <code>
  80. a=ssrc-group:&lt;semantics&gt; &lt;ssrc-id&gt; ...</code>
  81. <p>This maps to Jingle as a &lt;ssrc-group/&gt; element qualified by the 'urn:xmpp:jingle:apps:rtp:ssma:0' namespace. Like the &lt;source/&gt; element, this is included as child of the Jingle &lt;description/&gt; element. The SDP 'semantics' parameter is mapped to the semantics attribute (for consistency with &xep0338;) and the list of ssrc-ids is mapped to &lt;source/&gt; elements whole 'ssrc' attribute is set to the ssrc-id.</p>
  82. <code><![CDATA[
  83. <ssrc-group xmlns='urn:xmpp:jingle:apps:rtp:ssma:0' semantics='semantics'>
  84. <source ssrc='ssrc-id'/>
  85. [...]
  86. </ssrc-group>]]></code>
  87. </section2>
  88. </section1>
  89. <section1 topic='Example' anchor='example'>
  90. <p>A minimal example follows:</p>
  91. <code>
  92. m=video 1 RTP/SAVPF 100 116 117
  93. a=rtpmap:100 VP8/90000
  94. a=ssrc-group:FID 2301230316 386328120
  95. a=ssrc:2301230316 cname:T5qvrIZj42v//eYQ
  96. a=ssrc:386328120 cname:uEYgNtStZyTF74sM
  97. a=ssrc-group:FID 3139499595 2613715171
  98. a=ssrc:3139499595 cname:re8jhxkly9bxzuxr
  99. a=ssrc:2613715171 cname:f83avsiw6n1m7vi
  100. </code>
  101. <p>This is mapped to Jingle as follows:</p>
  102. <code><![CDATA[
  103. <content creator='initiator' name='webcam'>
  104. <description xmlns='urn:xmpp:jingle:apps:rtp:1' media='video'>
  105. <payload-type id='100' name='VP8' clockrate='90000'/>
  106. <ssrc-group xmlns='urn:xmpp:jingle:apps:rtp:ssma:0' semantics='FID'>
  107. <source ssrc='2301230316'/>
  108. <source ssrc='386328120'/>
  109. </ssrc-group>
  110. <ssrc-group xmlns='urn:xmpp:jingle:apps:rtp:ssma:0' semantics='FID'>
  111. <source ssrc='3139499595'/>
  112. <source ssrc='2613715171'/>
  113. </ssrc-group>
  114. <source ssrc='2301230316' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'>
  115. <parameter name='cname' value='T5qvrIZj42v//eYQ'/>
  116. </source>
  117. <source ssrc='386328120' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'>
  118. <parameter name='cname' value='uEYgNtStZyTF74sM'/>
  119. </source>
  120. <source ssrc='3139499595' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'>
  121. <parameter name='cname' value='re8jhxkly9bxzuxr'/>
  122. </source>
  123. <source ssrc='2613715171' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'>
  124. <parameter name='cname' value='f83avsiw6n1m7vi'/>
  125. </source>
  126. </description>
  127. </content>
  128. ]]></code>
  129. </section1>
  130. <section1 topic='Determining Support' anchor='disco'>
  131. <p>If an entity supports source specific media attributes as described in <cite>RFC 5576</cite>, it MUST advertise that fact in its responses to &xep0030; information ("disco#info") requests by returning a feature of 'urn:ietf:rfc:5576':</p>
  132. <example caption='A disco#info query'><![CDATA[
  133. <iq type='get'
  134. from='calvin@usrobots.lit/lab'
  135. to='herbie@usrobots.lit/home'
  136. id='disco1'>
  137. <query xmlns='http://jabber.org/protocol/disco#info'/>
  138. </iq>
  139. ]]></example>
  140. <example caption='A disco#info response'><![CDATA[
  141. <iq type='result'
  142. from='herbie@usrobots.lit/home'
  143. to='calvin@usrobots.lit/lab'
  144. id='disco1'>
  145. <query xmlns='http://jabber.org/protocol/disco#info'>
  146. <feature var='urn:xmpp:jingle:1'/>
  147. <feature var='urn:ietf:rfc:5576'/>
  148. </query>
  149. </iq>
  150. ]]></example>
  151. <p>In order for an application to determine whether an entity supports this protocol, where possible it SHOULD use the dynamic, presence-based profile of service discovery defined in &xep0115;. However, if an application has not received entity capabilities information from an entity, it SHOULD use explicit service discovery instead.</p>
  152. </section1>
  153. <!--
  154. <section1 topic='Acknowledgements' anchor='acks'>
  155. </section1>
  156. -->
  157. <section1 topic='Security Considerations' anchor='security'>
  158. <p>This document introduces no additional security considerations above and beyond those defined in the documents on which it depends.</p>
  159. </section1>
  160. <section1 topic='IANA Considerations' anchor='iana'>
  161. <p>This document requires no interaction with &IANA;.</p>
  162. </section1>
  163. <section1 topic='XMPP Registrar Considerations' anchor='registrar'>
  164. <section2 topic='Protocol Namespaces' anchor='registrar-ns'>
  165. <p>This specification defines the following XML namespace:</p>
  166. <ul>
  167. <li>urn:xmpp:jingle:apps:rtp:ssma:0</li>
  168. </ul>
  169. <p>The &REGISTRAR; includes the foregoing namespace to the registry located at &NAMESPACES;, as described in Section 4 of &xep0053;.</p>
  170. </section2>
  171. <section2 topic='Protocol Versioning' anchor='registrar-versioning'>
  172. &NSVER;
  173. </section2>
  174. </section1>
  175. <section1 topic='XML Schema' anchor='schema'>
  176. <p>TODO</p>
  177. </section1>
  178. </xep>