diff --git a/inbox/rtcp-fb.xml b/inbox/rtcp-fb.xml new file mode 100644 index 00000000..a706446f --- /dev/null +++ b/inbox/rtcp-fb.xml @@ -0,0 +1,339 @@ + + +%ents; +]> + + +
+ Jingle RTP Feedback Negotiation + This specification defines an XMPP extension to negotiate + the use of the Extended RTP Profile for Real-time Transport Control + Protocol (RTCP)-Based Feedback (RTP/AVPF) with Jingle RTP + sessions + &LEGALNOTICE; + xxxx + ProtoXEP + Standard + Standards + Council + + XEP-0167 + RFC 4585 + + + Olivier + CrĂȘte + olivier.crete@collabora.co.uk + olivier.crete@collabora.co.uk + + jingle + + 0.0.1 + 2011-01-10 + oc +

First draft.

+
+
+ + +

This documents specifies how to negotiate the use of the Extended + RTP Profile for Real-time Transport Control Protocol (RTCP)-Based + Feedback (RTP/AVPF) with Jingle RTP sessions.

+
+ + +

The Jingle extension defined herein is designed to meet the following requirements:

+
    +
  1. Enable negotiations of the required parameters for the + transmissions of RTP Feedback messages as defined in RFC + 4585.
  2. +
  3. Map these parameters to Session Description Protocol (SDP; see + &rfc4566;) to enable interoperability.
  4. +
+
+ + +

This specification defines two new elements, <rtcp-fb/> and + <rtcp-fb-trr-int/>, that can be inserted in the + <description/> or the <payload-type/> elements of a + XEP-0167 RTP session. The presence of any of these elements in a + content's description means that the RTP/AVPF profile should be used + for the whole content. If any of these elements are inside the + <payload-type/> element, the parameters specified apply only to + that payload type, if they are directly inside the + <description/> tag, then the specified parameters apply to the + whole content.

+ +

The attributes of the <rtcp-fb/> element are:

+ + + + + + + + + + + + + + + + + + + +
AttributeDescriptionInclusionPossible values
typeThe type of feedbackREQUIREDack, nack, ccm, app, etc..
subtypeThe subtype (depends on the type)OPTIONAL (possibly REQUIRED depending on the type) + ack: rpsi, app
+ nack: sli, pli, rpsi, app, rai
+ ccm: fir, tmmbr, tstr, vbcm
+ app: depends on the application
+
+ +

Any type or subtype of feedback message that requires extra +parameters in the a=b form can use the <parameter/> element to +describe it. Any other form of parameter can be store in the CDATA +inside the <rtcp-fb/> element.

+ +

The element <rtcp-fb-trr-int/> is used to specify the minimum +interval between two Regular (full compound) RTCP packets in +milliseconds for this media session. It corresponds to the +"a=rtcp-fb:* trr-int" line in SDP. The attributes of the +<rtcp-fb-trr-int/> element are:

+ + + + + + + + + + + + + +
AttributeDescriptionInclusionPossible values
valueNumber of milliseconds between regular RTCP reportsREQUIRED0 to MAXUINT (default to 0)
+
+ + + + +

Feedback messages are negotiated along the codecs. They follow + the same Offer/Answer mechanism based on SDP Offer/Answer. The + initiator signals which feedback messages it wants to send or + receive in the the <session-initiate/> iq stanza. If the + responder does not understand the type or subtype of a feedback + message, it MUST remove the element from the reply. If the responder + does not wish to provide or receive some kind of feedback, it MUST + remove the relevant element. It MUST then send the remaining + elements it wants to keep as-is without modifying them in the + <session-accept/>

+ +

The responder MUST send any <rtcp-fb/> element as-is if it + accepts it. It MUST NOT change any parameter to conform the the + negotiation defined in RFC 4585 Section 4. It MUST NOT add any + <rtcp-fb/> element that was not offered by the initiator. It + MUST NOT modify the 'value' of any >rtcp-fb-trr-int/< + element. It can only remove the >rtcp-fb-trr-int/< element or + reject the content. If all the feedback messages are removed but the + responder wants to stay in the RTP/AVPF profile, it MUST put a + <rtcp-fb-trr-int/> element with the same 'value' that it + received from the intiator, if the initiator did not provide a + <rtcp-fb-trr-int/> element, then this value is "0".

+ +

Example negotiation where the initiator requests Packet Loss + Indications (pli) as defined in RFC 4585 on both H.263 and H.264, + but also requests Slice Loss Indications for H.264 with a minimum + interval between regular full compound RTCP packets of 100 milliseconds.

+ + + + + + + + + + ]]> + +

Example reply where the responder rejects the "sli" but + accepts the "pli".

+ + + + + + + + + ]]> + +

Another reply to the same request where the responder wishes to + stay in the AVPF profile but rejects all specific feedback messages + by using the <rtcp-fb-trr-int/> with the default value.

+ + + + + + +]]> +
+ + +

The <rtcp-fb/> element maps to the a:rtcp-fb= SDP line with + the exception of the 'trr-int' parameter which is mapped into it's + own element (<rtcp-fb-trr-int/>) in XMPP. The payload types + are also not explicitly written in the <rtcp-fb/> and + <rtcp-fb-trr-int/> elements. Instead, each payload type has its own + set of <rtcp-fb/> and <rtcp-fb-trr-int/> elements if + they do not apply to the whole content.

+ +

Example conversion of a sample fragment of a SDP containing an + audio session using the RTP/AVP profile for audio and the RTP/AVPF + profile for video:

+ + + + action='session-initiate' + initiator='romeo@montague.lit/orchard' + sid='a73sjjvkla37jfea'> + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> +
+ + +

To advertise its support for Extended RTCP Feedback in Jingle RTP + Sessions and a minimum interval between regular RTCP packets, when + replying to &xep0030; information requests an entity MUST return the + following features:

+ +
    +
  1. URNs for any version of this protocol that the entity + supports -- e.g., "urn:xmpp:jingle:apps:rtp:rtcp-fb:0" for the + current version
  2. +
+ +

An example follows:

+ + + + + ]]> + + + + + + + + + + ]]> +
+ + +

This document requires no interaction with the Internet Assigned + Numbers Authority (IANA).

+
+ + + +

This specification defines the following XML namespaces:

+
    +
  • urn:xmpp:jingle:apps:rtp:rtcp-fb:0
  • +
+

The ®ISTRAR; includes the foregoing namespaces in its + registry at &NAMESPACES;, as governed by &xep0053;.

+
+ +

If the protocol defined in this specification undergoes a + revision that is not fully backwards-compatible with an older + version, the XMPP Registrar shall increment the protocol version + number found at the end of the XML namespaces defined herein, as + described in Section 4 of XEP-0053.

+
+
+ +

TODO: Write actual schema

+
+ +

Thanks to Youness Alaoui for his feedback.

+
+ +
\ No newline at end of file diff --git a/inbox/rtp-hdrext.xml b/inbox/rtp-hdrext.xml new file mode 100644 index 00000000..284902ca --- /dev/null +++ b/inbox/rtp-hdrext.xml @@ -0,0 +1,256 @@ + + +%ents; +]> + + +
+ Jingle RTP Header Extensions negotiation + This specification defines an XMPP extension to negotiate + the use of the use of RTP Header Extension as defined by RFC 5285 + with Jingle RTP sessions + &LEGALNOTICE; + xxxx + ProtoXEP + Standard + Standards + Council + + XEP-0167 + RFC 85 + + + Olivier + CrĂȘte + olivier.crete@collabora.co.uk + olivier.crete@collabora.co.uk + + jingle + + 0.0.1 + 2011-01-10 + oc +

First draft.

+
+
+ + +

This documents specifies how to negotiate the use of the RTP + Header Extensions as defined by RFC 5285 with Jingle RTP + sessions.

+
+ + +

The Jingle extension defined herein is designed to meet the following requirements:

+
    +
  1. Enable negotiations of the RTP Header extensions as defined in + RFC 5285.
  2. +
  3. Map these parameters to Session Description Protocol (SDP; see + &rfc4566;) to enable interoperability.
  4. +
+
+ + +

This specification defines a new element, <rtp-hdrext/>, + that can be inserted in the <description/> element of a + XEP-0167 RTP session.

+ +

The attributes of the <rtp-hdrext/> element are:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
AttributeDescriptionInclusionPossible values
idThe ID of the extensionsREQUIRED1-256, 4096-4351
uriThe URI that defines the extensionREQUIREDAny valid URI
sendersWhich party is allowed to send the negotiated RTP Header ExtensionsOPTIONAL (defaults to "both")"initiator", "responder", and "both"
+ +

Any type of RTP Header Extension that requires extra +parameters in the a=b form can embed <parameter/> elements to +describe it. Any other form of parameter can be stored in the CDATA +inside the <rtp-hdrext/> element.

+ +
+ + +

RTP header extensions are negotiated along the codecs. They + follow the same Offer/Answer mechanism based on SDP + Offer/Answer. The initiator signals which RTP header extensions it + wants to send or receive in the the <session-initiate/> iq + stanza. If the responder does not understand the type of header + extensions, it MUST remove the element from the reply. If the + responder does not wish to provide or receive some kind of RTP + header extension, it MUST remove the relevant element from the + reply. It MUST then send the remaining elements it wants to keep + as-is without modifying them in the <session-accept/> iq + stanza.

+ +

It MUST NOT add any <rtp-hdrext/> element that was not + offered by the initiator. The responder MAY downgrade the senders + field from "both" to "initator" or "responder", but MUST NOT modify it + if it is "initator" or "responder".

+ +

Example negotiation where the initiator offers to use the + timestamp offset header extension as defined in RFC 5450 and also + the requests synchronisation metadata header extension (RFC 6051) + with either the 56-bit or the 64-bit format.

+ + + + + + + + + ]]> + +

Example reply where the responder accepts the timestamp offset + and the 56-bit synchronisation metadata header extensions.

+ + + + + + +]]> + +

Another reply to the same request where the responder accepts only the synchronisation data header extension with the 64-bit format.

+ + + + + +]]> +
+ + +

The <rtp-hdrext/> element maps to the "a:extmap=" SDP line + defined in RFC 5285. The ID is mapped to the 'id' attribute, the + direction to the 'senders' attribute and the URI to the 'uri' + attribute.

+ +

Example conversion of a incomplete sample fragment of a SDP taken from RFC 5285 section 6 into equivalent XMPP:

+ + + + + + +]]> +
+ + +

To advertise its support for Generic Header extensions in Jingle + RTP Sessions, when replying to &xep0030; information requests an + entity MUST return the following features:

+ +
    +
  1. URNs for any version of this protocol that the entity + supports -- e.g., "urn:xmpp:jingle:apps:rtp:rtp-hdrext:0" for the + current version
  2. +
+ +

An example follows:

+ + + + + ]]> + + + + + + + + + + ]]> +
+ + +

This document requires no interaction with the Internet Assigned + Numbers Authority (IANA).

+
+ + + +

This specification defines the following XML namespaces:

+
    +
  • urn:xmpp:jingle:apps:rtp:rtp-hdrext:0
  • +
+

The ®ISTRAR; includes the foregoing namespaces in its + registry at &NAMESPACES;, as governed by &xep0053;.

+
+ +

If the protocol defined in this specification undergoes a + revision that is not fully backwards-compatible with an older + version, the XMPP Registrar shall increment the protocol version + number found at the end of the XML namespaces defined herein, as + described in Section 4 of XEP-0053.

+
+
+ +

TODO: Write actual schema

+
+ +

Thanks to Youness Alaoui for his feedback.

+
+ +