This repository
This repository
All repositories
  • Watch
    Notification status
  • Fork

public / customxeps Octocat-spinner-32

branch: gh-pages
Switch branches/tags
Nothing to show
Nothing to show
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 176 lines (173 sloc) 7.862 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
<?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>Source-Specific Media Attributes in Jingle</title>
  <abstract>This specification provides an XML mapping for translating the RFC 5766 Source-Specific Media Attributes from SDP to Jingle</abstract>
  &LEGALNOTICE;
  <number>xxxx</number>
  <status>ProtoXEP</status>
  <type>Standards Track</type>
  <sig>Standards</sig>
  <approver>Council</approver>
  <dependencies>
    <spec>XEP-0166</spec>
  </dependencies>
  <supersedes/>
  <supersededby/>
  <shortname>NOT_YET_ASSIGNED</shortname>
  <revision>
    <version>0.0.1</version>
    <date>2013-11-25</date>
    <initials>ph</initials>
    <remark><p>First draft.</p></remark>
  </revision>
  &fippo;
</header>
<section1 topic="Introduction" anchor="intro">
  <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>
</section1>
<section1 topic='Mapping to Session Description Protocol' anchor='sdp'>
  <section2 topic='The ssrc attribute' anchor='sdp-ssrc'>
    <p>The SDP format defined in <cite>RFC 5576</cite> is shown below.</p>
    <code>
a=ssrc:&lt;ssrc-id&gt; &lt;attribute&gt;
a=ssrc:&lt;ssrc-id&gt; &lt;attribute&gt;:&lt;value&gt;
    </code>
    <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>
    <code><![CDATA[
<source ssrc='ssrc-id' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'>
<parameter name='attribute'/>
<parameter name='attribute' value='value'/>
</source>
]]></code>
    <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>
    <p>An example follows:</p>
    <code>
a=ssrc:1656081975 cname:Yv/wvbCdsDW2Prgd
a=ssrc:1656081975 msid:MLTJKIHilGn71fNQoszkQ4jlPTuS5vJyKVIv MLTJKIHilGn71fNQoszkQ4jlPTuS5vJyKVIva0
a=ssrc:1656081975 mslabel:MLTJKIHilGn71fNQoszkQ4jlPTuS5vJyKVIv
a=ssrc:1656081975 label:MLTJKIHilGn71fNQoszkQ4jlPTuS5vJyKVIva0
    </code>
    <code><![CDATA[
<source ssrc='1656081975' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'>
<parameter name='cname' value='Yv/wvbCdsDW2Prgd'/>
<parameter name='msid' value='MLTJKIHilGn71fNQoszkQ4jlPTuS5vJyKVIv MLTJKIHilGn71fNQoszkQ4jlPTuS5vJyKVIva0'/>
<parameter name='mslabel' value='MLTJKIHilGn71fNQoszkQ4jlPTuS5vJyKVIv'/>
<parameter name='label' value='MLTJKIHilGn71fNQoszkQ4jlPTuS5vJyKVIva0'/>
</source>
]]></code>
  </section2>
  <section2 topic='The ssrc-group attribute' anchor='sdp-ssrc-group'>
    <p>The SDP format defined in <cite>RFC 5576</cite> is shown below.</p>
    <code>
a=ssrc-group:&lt;semantics&gt; &lt;ssrc-id&gt; ...
    </code>
    <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 type attribute (for consistency with <cite>FIXME jingle-grouping FIXME</cite>) and the list of ssrc-ids is mapped to &lt;source/&gt; elements whole 'ssrc' attribute is set to the ssrc-id.</p>
    <code><![CDATA[
<ssrc-group xmlns='urn:xmpp:jingle:apps:rtp:ssma:0' type='semantics'>
<source ssrc='ssrc-id'/>
[...]
</ssrc-group>
]]></code>
  </section2>
</section1>
<section1 topic='Example' anchor='example'>
  <p>The following example is taken from <cite>RFC 5576</cite>.</p>
    <code>
m=video 49174 RTP/AVPF 96 98
a=rtpmap:96 H.264/90000
a=rtpmap:98 rtx/90000
a=fmtp:98 apt=96;rtx-time=3000
a=ssrc-group:FID 11111 22222
a=ssrc:11111 cname:user3@example.com
a=ssrc:22222 cname:user3@example.com
a=ssrc-group:FID 33333 44444
a=ssrc:33333 cname:user3@example.com
a=ssrc:44444 cname:user3@example.com
    </code>
    <p>This is mapped to Jingle as follows:</p>
    <code><![CDATA[
<content creator='initiator' name='webcam'>
<description xmlns='urn:xmpp:jingle:apps:rtp:1' media='video'>
<payload-type id='96' name='H.264' clockrate='90000'/>
<payload-type id='98' name='rtx' clockrate='90000'>
<parameter name='apt' value='96'/>
<parameter name='rtx-time' value='3000'/>
</payload-type>
<ssrc-group xmlns='urn:xmpp:jingle:apps:rtp:ssma:0' type='FID'>
<source ssrc='11111'/>
<source ssrc='22222'/>
</ssrc-group>
<ssrc-group xmlns='urn:xmpp:jingle:apps:rtp:ssma:0' type='FID'>
<source ssrc='33333'/>
<source ssrc='44444'/>
</ssrc-group>
<source ssrc='11111' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'>
<parameter name='cname' value='user3@example.com'/>
</source>
<source ssrc='22222' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'>
<parameter name='cname' value='user3@example.com'/>
</source>
<source ssrc='33333' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'>
<parameter name='cname' value='user3@example.com'/>
</source>
<source ssrc='44444' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'>
<parameter name='cname' value='user3@example.com'/>
</source>
</description>
</content>
]]></code>
</section1>
<section1 topic='Determining Support' anchor='disco'>
  <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>
  <example caption='A disco#info query'><![CDATA[
<iq type='get'
from='calvin@usrobots.lit/lab'
to='herbie@usrobots.lit/home'
id='disco1'>
<query xmlns='http://jabber.org/protocol/disco#info'/>
</iq>
]]></example>
  <example caption='A disco#info response'><![CDATA[
<iq type='result'
from='herbie@usrobots.lit/home'
to='calvin@usrobots.lit/lab'
id='disco1'>
<query xmlns='http://jabber.org/protocol/disco#info'>
<feature var='urn:xmpp:jingle:1'/>
<feature var='urn:ietf:rfc:5576'/>
</query>
</iq>
]]></example>
  <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>
</section1>
<section1 topic='Acknowledgements' anchor='acks'>
  <p>The SDP syntax examples are taken from <cite>RFC 5576</cite>.</p>
</section1>
<section1 topic='Security Considerations' anchor='security'>
  <p>This document introduces no additional security considerations above and beyond those defined in the documents on which it depends.</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'>
  <section2 topic='Protocol Namespaces' anchor='registrar-ns'>
    <p>This specification defines the following XML namespace:</p>
    <ul>
      <li>urn:xmpp:jingle:apps:rtp:ssma:0</li>
    </ul>
    <p>The &REGISTRAR; includes the foregoing namespace to the registry located at &NAMESPACES;, as described in Section 4 of &xep0053;.</p>
  </section2>
  <section2 topic='Protocol Versioning' anchor='registrar-versioning'>
    &NSVER;
  </section2>
</section1>
<section1 topic='XML Schema' anchor='schema'>
  <p>TODO</p>
</section1>
</xep>
Something went wrong with that request. Please try again.