RFC 6064

SDP and RTSP Extensions Defined for 3GPP Packet-Switched Streaming Service and Multimedia Broadcast/Multicast Service

πŸ“… published January 2011, from ietf

RFC 6064 πŸŽ€ SDP and RTSP Extensions for 3GPP Streaming ✨

Okay bestie, this one is an Informational doc from the IETF 🧁 It's not a Standards Track spec, so think of it as a super-organized cheat sheet, not a rulebook. It's written by M. Westerlund and P. Frojdh, both from Ericsson, and it was published in January 2011 πŸ“… The ISSN is 2070-1721. The title block doesn't list any obsoletes or updates entries, so this doc doesn't replace or change any other RFC πŸ’–

The full title is SDP and RTSP Extensions Defined for 3GPP Packet-Switched Streaming Service and Multimedia Broadcast/Multicast Service πŸ¦‹


Abstract πŸ“

The Packet-switched Streaming Service (PSS) and the Multimedia Broadcast/Multicast Service (MBMS), both defined by 3GPP, use the Session Description Protocol (SDP) and the Real Time Streaming Protocol (RTSP), plus some extensions 🌈 This doc gives you the info about those extensions and registers the RTSP and SDP extensions with IANA ✨


Status of This Memo πŸ’…

This doc is NOT an Internet Standards Track spec. It's just published for informational purposes 🌸

It's a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community, got public review, and was approved for publication by the Internet Engineering Steering Group (IESG). Not every doc the IESG approves is a candidate for any level of Internet Standard, so check Section 2 of RFC 5741 for more on that 🧚

Want the latest status, errata, or a way to send feedback? Go to http://www.rfc-editor.org/info/rfc6064 πŸ’œ


Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved. 🫢

This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info), as in effect on the date it was published. Please read these carefully, because they explain your rights and restrictions for this doc. Code components pulled out of this doc must include the Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Simplified BSD License πŸ“


Table of Contents πŸ“‹

1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
  1.1.  Requirements Language  . . . . . . . . . . . . . . . . . .  4
2.  Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . .  4
3.  Applicability Statement  . . . . . . . . . . . . . . . . . . .  5
4.  PSS SDP Extensions . . . . . . . . . . . . . . . . . . . . . .  5
  4.1.  Video Buffering Attributes . . . . . . . . . . . . . . . .  5
  4.2.  Video Frame Size Attribute . . . . . . . . . . . . . . . .  6
  4.3.  Integrity-Protection Configuration Attributes  . . . . . .  6
  4.4.  The Alternative Attributes . . . . . . . . . . . . . . . .  7
  4.5.  Adaptation Attribute . . . . . . . . . . . . . . . . . . .  7
  4.6.  Quality of Experience Attribute  . . . . . . . . . . . . .  7
  4.7.  Asset Information Attribute  . . . . . . . . . . . . . . .  8
5.  MBMS SDP Extensions  . . . . . . . . . . . . . . . . . . . . .  8
  5.1.  MBMS Bearer Mode Declaration Attribute . . . . . . . . . .  8
  5.2.  FEC Flow ID Attribute  . . . . . . . . . . . . . . . . . .  8
  5.3.  MBMS Repair Attribute  . . . . . . . . . . . . . . . . . .  8
  5.4.  SDP Protocol Identifiers for FEC . . . . . . . . . . . . .  8
    5.4.1.  RTP Protocol Identifiers . . . . . . . . . . . . . . .  9
    5.4.2.  FEC Repair Data Identifier . . . . . . . . . . . . . .  9
  5.5.  Video Buffering Attribute  . . . . . . . . . . . . . . . .  9
6.  SDP Offer/Answer Consideration . . . . . . . . . . . . . . . .  9
7.  PSS RTSP Extensions  . . . . . . . . . . . . . . . . . . . . . 10
  7.1.  3GPP-Link-Char Header  . . . . . . . . . . . . . . . . . . 10
  7.2.  3GPP-Adaptation Header . . . . . . . . . . . . . . . . . . 10
  7.3.  3GPP-QoE-Metrics Header  . . . . . . . . . . . . . . . . . 10
  7.4.  3GPP-QoE-Feedback Header . . . . . . . . . . . . . . . . . 11
  7.5.  Video Buffer Headers . . . . . . . . . . . . . . . . . . . 11
  7.6.  Integrity Protection . . . . . . . . . . . . . . . . . . . 11
  7.7.  RTSP URI Extension . . . . . . . . . . . . . . . . . . . . 11
  7.8.  Fast Start-Up and Content Switching  . . . . . . . . . . . 12
8.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 12
  8.1.  SDP Registrations  . . . . . . . . . . . . . . . . . . . . 12
  8.2.  RTSP Registrations . . . . . . . . . . . . . . . . . . . . 17
9.  Security Considerations  . . . . . . . . . . . . . . . . . . . 20
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 20
  10.1. Normative References . . . . . . . . . . . . . . . . . . . 20
  10.2. Informative References . . . . . . . . . . . . . . . . . . 21

1. Introduction ✨

3GPP made the Packet-switched Streaming Service (PSS), which uses both RTSP [RFC2326] and SDP [RFC4566] 🎬 The service is specified in the technical specifications TS 26.233 [PSS-233] and TS 26.234 [PSS-234], starting in Release 4 and continuing in later releases. Release 4 is the base, Release 5 adds capability exchange, and Release 6 adds a bunch of features, like adaptation, digital rights management (DRM), progressive download, and a streaming server file format defined in [PSS-3GP] πŸ”₯ Fast start-up and content switching came along in Release 7 ⭐

3GPP also made the Multimedia Broadcast/Multicast Service (MBMS), which uses SDP. The IP-layer protocols for this service are in technical specification TS 26.346 Release 6 [MBMS]. Release 7 extends the MBMS User Service so it also works with unicast bearers for interactive and streaming traffic classes 🌸

Along the way, there's been a need to extend both SDP and RTSP. Those extensions are mostly SDP attributes and RTSP headers and option tags 🧁 3GPP calls them "feature tags" (so RTSP 2.0 uses what RTSP 1.0 calls "option tags"), but this doc uses the name "option tag". The point of this informational doc is to register these SDP and RTSP extensions, so we avoid future conflicts, and also to make the IETF aware they exist πŸ¦‹

In Section 5.4, this doc defines three SDP protocol identifiers that MBMS uses to enable block-based FEC. The SDP protocol identifiers require an RFC to be defined and registered. Because this is an RFC from the IETF stream, any semantic change will require a new IETF-approved RFC πŸ‘‘ The other SDP and RTSP extensions registered by this doc aren't normatively defined here. Instead, the normative definitions are referenced by the registrations. 3GPP can update the normative definition in future versions of their specs. However, to make sure such a change is visible in the IETF, at minimum IANA should be notified and the reference to the 3GPP spec updated, and preferably an updated version of this RFC should be published πŸ’–

The doc starts with two sections on the SDP extensions for PSS and MBMS. Then there's a section explaining that offer/answer considerations don't apply here. The next section covers the RTSP extensions for PSS. The IANA registrations for SDP attributes and protocol identifiers are in Section 8.1, and the RTSP headers and option tags are in Section 8.2. For normative descriptions of all the SDP and RTSP extensions, check TS 26.234 [PSS-234] and TS 26.346 [MBMS] 🫢

1.1. Requirements Language πŸ—οΈ

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119] πŸ’…


2. Glossary πŸ“–

  • 3GP: 3GPP file format, a multimedia file format based on the ISO base media file format. It exists in different profiles for multimedia messages, direct playback on clients, progressive download, use on servers to deliver on-demand multimedia sessions in PSS, or servers sending MBMS sessions 🎞️
  • 3GPP: Third Generation Partnership Project. See http://www.3gpp.org for more info about this organization 🌍
  • FEC: Forward Error Correction πŸ›‘οΈ
  • MBMS: Multimedia Broadcast/Multicast Service, a service defined by 3GPP that uses broadcast or multicast technology together with unicast to deliver a wide range of content to mobile terminals πŸ“‘
  • PSS: Packet-switched Streaming Service, a unicast-based streaming service for delivering on-demand or live streaming multimedia content to mobile terminals πŸŽ₯
  • RTSP: Real Time Streaming Protocol; see [RFC2326] 🎞️
  • SDP: Session Description Protocol; see [RFC4566] πŸ“„
  • SRTP: Secure Real-time Transport Protocol; see [RFC3711] πŸ”
  • QoE: Quality of Experience, the quality level of the user's experience of a service. In PSS, this is estimated by a combination of application-level metrics πŸ’«
  • QoS: Quality of Service, the quality (properties) the network provides toward the upper-layer service πŸ“Ά

3. Applicability Statement 🎯

This doc describes the 3GPP-defined extensions to SDP [RFC4566] and RTSP [RFC2326]. It registers attributes that are normatively defined in the 3GPP technical specifications 26.234, 26.244, and 26.346, up to the referenced versions of those docs πŸ“š

These SDP and RTSP extensions were only defined with the 3GPP service in mind. Their use outside of these services hasn't been considered or addressed. Using these attributes in other contexts may need further definitions or clarifications. For example, all SDP attributes lack offer/answer usage rules [RFC3264], which currently makes it impossible to use them with offer/answer πŸ™ˆ Please note that change control of these SDP and RTSP extensions belongs to 3GPP 🧚


4. PSS SDP Extensions πŸŽ€

The PSS specification [PSS-234] defines a number of different SDP attributes for different purposes. They're listed below, grouped by purpose 🌈 The text is intentionally not specific enough to let you implement from this document, so the normative definition lives in the 3GPP technical specification cited ✨

Heads up: don't try to build from this doc alone 😭 Go to the 3GPP spec for the real definitions.

4.1. Video Buffering Attributes ✨

okay so these attributes give you the parameters for the video buffer model in Annex G and Section 5.3.3.2 of [PSS-234] πŸŽ€. back in Release 5 they were called "X-" attributes and nobody thought to register them. ngl, in hindsight they really should've been registered, and the registration rules of SDP [RFC4566] point that out πŸ™ˆ. renaming them now is impossible because millions of mobile handsets already support PSS, so they're registered in their current form πŸ’….

All attributes are defined at media level.

  • The a=X-predecbufsize attribute provides the size of the pre-decoder buffer in bytes.
  • The a=X-initpredecbufperiod attribute provides the time during which a receiver should initially buffer, in 90 kHz ticks, before starting to consume the data in the buffer in order to ensure that underflow does not occur, assuming correct data delivery πŸ¦‹.
  • The a=X-initpostdecbufperiod attribute provides the initial buffering period, in 90 kHz ticks, for the post-decoder buffer present in H.263 and MPEG-4 Visual.
  • The a=X-decbyterate attribute indicates the maximum peak byte-decoding rate used in the verification of the Annex G buffer model, expressed in bytes per second.
  • The a=3gpp-videopostdecbufsize attribute is used to indicate the value used in determining the H.264 video post-decoder buffer size.

Note that complete descriptions of these attributes can be found in Section 5.3.3.2 of [PSS-234] 🧚.

4.2. Video Frame Size Attribute 🌸

this media-level attribute tells the receiver the biggest picture size that a specific H.263 payload type will carry within the session. the attribute looks like this (see Section 5.3.3.2 of [PSS-234]):

"a=framesize:<payload type number> <width>-<height>"

4.3. Integrity-Protection Configuration Attributes πŸ”

all of these attributes are used to configure the integrity-protection mechanism defined in Annex K (Sections K.2.2.1, K.2.2.2, and K.2.2.3) of [PSS-234] πŸ’œ.

  • The session-level attribute a=3GPP-Integrity-Key carries the integrity key used to derive SRTP master keys for integrity protection. the key gets protected in different ways depending on a method identifier. when using Open Mobile Alliance (OMA) DRM key management, the key is encrypted using AES [AES] before it is base64 encoded [RFC4648] 🫢.
  • The media-level attribute a=3GPP-SRTP-Config is used to configure SRTP for integrity protection. it contains an integrity nonce, a key salt used in deriving the SRTP master key from the integrity key, and any SRTP configuration parameters, such as the integrity tag length.
  • The session-level attribute a=3GPP-SDP-Auth is used to carry an authentication tag calculated over certain parts of the SDP, to prevent manipulation of the security attributes πŸ›‘οΈ.

4.4. The Alternative Attributes πŸ¦‹

two media-level attributes and one session-level attribute work together in a mechanism for providing alternative SDP lines. one or more SDP lines at media level can be swapped out, if desired, for alternatives. it's backwards compatible, because a receiver that doesn't support the attributes just gets the default configuration ✨. the different alternatives can be grouped using different attributes, which can be specified hierarchically with a top level and a lower level. 3GPP Release 6 supports grouping based on bit-rate, according to the SDP bandwidth modifiers AS [RFC4566] and TIAS [RFC3890], and based on language 🌈.

The SDP attributes (see Sections 5.3.3.3 and 5.3.3.4 of [PSS-234]) are:

  • The media-level attribute a=alt:<id>:<SDP-Line> carries any SDP line and an alternative identifier.
  • The media-level attribute a=alt-default-id:<id> identifies the default configuration to be used in groupings.
  • The session-level attribute a=alt-group is used to group different recommended media alternatives. this allows providing aggregated properties for the whole group, according to the grouping type. language and bit-rate are the two defined grouping types πŸ’….

4.5. Adaptation Attribute πŸ“‘

the media-level SDP attribute a=3GPP-Adaptation-Support (see Section 5.3.3.5 in [PSS-234]) is defined as part of the negotiation procedure of the PSS adaptation mechanism. the attribute carries a single value indicating how often the RTCP "Next Application Data Unit" (NADU) APP packet shall be included in sent RTCP compound packets. the adaptation mechanism lets the client give the server info on the available transmission bit-rate and the receiver buffer status πŸ“.

4.6. Quality of Experience Attribute πŸ“Š

the session- and media-level attribute a=3GPP-QoE-Metrics (see Section 5.3.3.6 of [PSS-234]) is used to negotiate the usage of the QoE metrics. the included parameters say which metrics should be used, over what duration there should be measurements, and how often reports should be sent πŸ”₯.

4.7. Asset Information Attribute 🎬

the session- and media-level attribute a=3GPP-Asset-Information (see Section 5.3.3.7 of [PSS-234]) can show up in multiple instances in a description, and it describes different types of asset information. the asset classes defined in Release 6 are Title, Description, Copyright, Performer, Author, Genre, Rating, Classification, Keywords, Location, Album, and Recording Year 🎡. the different assets are described with a base64-encoded asset box from the 3GP file format [PSS-3GP] ✨.


5. MBMS SDP Extensions 🌟

the MBMS specification [MBMS] defines a bunch of different SDP attributes for different purposes. they're listed below for information only πŸ’–.

5.1. MBMS Bearer Mode Declaration Attribute πŸ“»

the session- and media-level attribute a=mbms-mode (see Section 7.3.2.7 of [MBMS]) is used to describe MBMS broadcast mode media. it can be used at session level to set the default for all media, and at media level to specify differences between media. however, it's never used at session level when the session includes MBMS multicast mode media, and never used at media level to describe MBMS multicast mode media πŸ™…β€β™€οΈ.

5.2. FEC Flow ID Attribute πŸ”‘

the media-level attribute a=mbms-flowid (see Section 8.3.1.9 of [MBMS]) maps one or more FEC source block flow IDs to their matching destination IP addresses and UDP port numbers. it's present in each SDP media block for repair packet streams 🧩.

5.3. MBMS Repair Attribute 🩹

the session- and media-level attribute a=mbms-repair (see Section 8.3.1.8 of [MBMS]) is used to give FEC repair packets non-FEC-specific parameters. for Release 6, one such parameter is defined, to specify the required minimum receiver buffer time ⏱️.

5.4. SDP Protocol Identifiers for FEC 🧁

MBMS defines a way to provide block-based FEC for UDP-based traffic. this solution uses the SDP protocol "proto" identifier to identify the media streams that use the FEC shim layer. the media streams can be source streams or repair streams. as required by SDP [RFC4566], these protocol identifiers are normatively defined in this document, in line with how 3GPP specifies their usage 🌸.

5.4.1. RTP Protocol Identifiers πŸŽ€

for FEC-protected RTP streams, these two "proto" identifiers are defined:

  • UDP/MBMS-FEC/RTP/AVP
  • UDP/MBMS-FEC/RTP/SAVP

they indicate the usage of UDP [RFC0768] with MBMS FEC source packet formats, as defined in Section 8.2.2.4 of [MBMS], that carry RTP packets following the AVP [RFC3551] or SAVP (Secure RTP) [RFC3711] profiles, respectively. these protocol identifiers SHALL use the media formats ("fmt") namespace rules that are used for RTP/AVP and RTP/SAVP, respectively πŸ’….

5.4.2. FEC Repair Data Identifier 🧰

a media stream carrying MBMS FEC repair information over UDP needs its own "proto" identifier. the protocol identifier UDP/MBMS-REPAIR identifies the FEC repair packet containing the protocol combo of UDP [RFC0768], FEC repair payload ID, and repair symbols, as specified in Section 8.2.2.5 of [MBMS]. the "fmt" namespace is not used and SHALL be set to "*" πŸ™ˆ.

5.5. Video Buffering Attribute πŸŽ₯

the PSS media-level buffer attribute a=X-initpredecbufperiod (see Section 4.1) that specifies an initial buffering time is also used for MBMS in Release 7 🎞️. it's mainly intended for video streams, but it may be used for other media types as well (see Section 8.3.1.1 of [MBMS]).

6. SDP Offer/Answer Consideration 🀝

the usage of these SDP attributes in an offer/answer [RFC3264] context is not defined. these SDP attributes are defined for use in a declarative context, and for PSS specifically, in the RTSP [RFC2326] context πŸ“.

7. PSS RTSP Extensions 🎧

the RTSP extensions for PSS consist of a number of new RTSP headers and option tags, plus a narrowing of URI usage in regards to 3GP files. the headers and option tags are described here for information only; see [PSS-234] for the normative declaration πŸ’«.

the 3GPP-Link-Char header (see Section 5.3.2.1 of [PSS-234]) is used by clients to give the server QoS information about the wireless link they're currently using. the header can provide the server with three different QoS parameters:

  • Guaranteed Bandwidth
  • Maximum Bandwidth
  • Maximum Transfer Delay

the header may be included in RTSP requests using any of the methods SETUP, PLAY, OPTIONS, or SET_PARAMETER πŸš€.

7.2. 3GPP-Adaptation Header πŸ”„

the 3GPP-Adaptation header (see Section 5.3.2.2 of [PSS-234]) is used by the client to give the server adaptation-related parameters and to indicate support for the adaptation function. the header carries the resource identification as a URI, the client's buffer size, and the desired target time 🎯.

the header may be included in requests using the methods SETUP, PLAY, OPTIONS, and SET_PARAMETER. the response to a request using this method shall include this header 🫧.

7.3. 3GPP-QoE-Metrics Header πŸ“ˆ

the 3GPP-QoE-Metrics header (see Section 5.3.2.3.1 of [PSS-234]) is used to negotiate the usage of the QoE metrics (see Section 11 of [PSS-234]) 🌷.

the header may be included in requests and responses using the SETUP, SET_PARAMETER, OPTIONS, or PLAY method πŸ’œ.

7.4. 3GPP-QoE-Feedback Header πŸ’Œ

the 3GPP-QoE-Feedback header (see Section 5.3.2.3.2 of [PSS-234]) is used to carry QoE metrics from the client to the server when it reports, which happens either during or at the end of the media delivery πŸ“¬.

the header may be included in requests using the SET_PARAMETER, PAUSE, or TEARDOWN method 🌟.

7.5. Video Buffer Headers 🎞️

PSS uses several headers to give the client the different buffer parameters. they show the buffer status at the point of a stream from which a PLAY request plays. these headers may only be used in PLAY responses. see Section 5.3.2.4 and Annex G of [PSS-234] for normative definitions 🍭.

the three "x-" headers were defined in 3GPP Release 5. when people realized they shouldn't have been given "x-" names, it was too late to rename them because they were already deployed πŸ™ƒ.

The RTSP headers are:

  • x-predecbufsize
  • x-initpredecbufperiod
  • x-initpostdecbufperiod
  • 3gpp-videopostdecbufsize

7.6. Integrity Protection πŸ”

okay so the integrity-protection mechanism in PSS Annex K is giving main character energy πŸ’…. It uses the 3GPP-Freshness-Token RTSP header (see Section K.2.2.4 of [PSS-234]) to carry a freshness token in DESCRIBE requests 🧚

7.7. RTSP URI Extension πŸŽ€

bestie, PSS also defines syntax for referencing tracks inside 3GP files [PSS-3GP]. 3GP is built on the ISO base media file format, and it has several profiles, including a streaming-server profile, in Release 6 πŸ“Ό

this syntax is fully contained in the generic URI syntax for RTSP URIs. It's really just a syntax restriction that server manufacturers follow, so clients or proxies can tell which part of the URI encodes the track number. This is provided for information only πŸ™ˆ

to identify a track inside a 3GP file, the last URI segment has to contain a structure that looks like <alpha string>=<track nr> ✨ (See Section 5.3.3.1 of [PSS-234].)

7.8. Fast Start-Up and Content Switching πŸš€

Release 7 of PSS brings a bunch of extensions, with headers and option tags (see Section 5.5 of [PSS-234]), for fast start-up and content switching. This works for on-demand and live apps built on top of PSS πŸ“ Clients can reuse the existing RTSP control session and RTP resources while switching to new content, which is so efficient it's iconic πŸ‘‘

the RTSP headers are:

  • Switch-Stream
  • SDP-Requested
  • Pipelined-Requests

the RTSP option tags are:

  • 3gpp-pipelined
  • 3gpp-switch
  • 3gpp-switch-req-sdp
  • 3gpp-switch-stream

8. IANA Considerations πŸ“‹

8.1. SDP Registrations πŸ’œ

IANA has registered the SDP attributes listed below in the "Session Description Protocol (SDP) Parameters" registry, which is available from http://www.iana.org/ ✨

the contact person for this registration is Magnus Westerlund (email: magnus.westerlund@ericsson.com; phone: +46 8 719 0000) πŸ“ž

here are the SDP protocol identifiers ("proto") that got registered:

  SDP Protocol Identifiers ("proto"):

     Name:               UDP/MBMS-FEC/RTP/AVP
     Long form:          3GPP MBMS FEC-protected RTP/AVP over UDP
     Type of name:       proto
     Purpose:            3GPP MBMS defines a mechanism to provide block-
                         based FEC for UDP-based traffic.  This solution
                         uses the SDP protocol "proto" identifier to
                         identify the media streams that use the FEC
                         shim layer.  This protocol identifier indicates
                         that the FEC-protected data is RTP using the
                         AVP profile.
     Reference:          RFC 6064, 3GPP TS 26.346

     Name:               UDP/MBMS-FEC/RTP/SAVP
     Long form:          3GPP MBMS FEC-protected RTP/SAVP over UDP
     Type of name:       proto
     Purpose:            3GPP MBMS defines a mechanism to provide block-
                         based FEC for UDP-based traffic.  This solution
                         uses the SDP protocol "proto" identifier to
                         identify the media streams that use the FEC
                         shim layer.  This protocol identifier indicates
                         that the FEC-protected data is RTP using the
                         Secure AVP profile (SAVP).
     Reference:          RFC 6064, 3GPP TS 26.346

     Name:               UDP/MBMS-REPAIR
     Long form:          3GPP MBMS FEC repair symbols over UDP
     Type of name:       proto
     Purpose:            3GPP MBMS defines a mechanism to provide block-
                         based FEC for UDP-based traffic.  This solution
                         uses the SDP protocol "proto" identifier to
                         identify the media streams that use the FEC
                         shim layer.  This protocol identifier indicates
                         that the FEC repair data is sent over UDP.
     Reference:          RFC 6064, 3GPP TS 26.346

and now the SDP attributes (att-field) πŸ¦‹

  SDP Attribute ("att-field"):

      Attribute name:     X-predecbufsize
      Long form:          Pre-decoder buffer size
      Type of name:       att-field
      Type of attribute:  Media level only
      Subject to charset: No
      Purpose:            See Section 4.1
      Reference:          3GPP TS 26.234, Section 5.3.3.2
      Values:             See Reference
      Attribute name:     X-initpredecbufperiod
      Long form:          Pre-decoder initial buffering period
      Type of name:       att-field
      Type of attribute:  Media level only
      Subject to charset: No
      Purpose:            See Section 4.1
      Reference:          3GPP TS 26.234, Section 5.3.3.2
      Values:             See Reference

      Attribute name:     X-initpostdecbufperiod
      Long form:          Post-decoder initial buffering period
      Type of name:       att-field
      Type of attribute:  Media level only
      Subject to charset: No
      Purpose:            See Section 4.1
      Reference:          3GPP TS 26.234, Section 5.3.3.2
      Values:             See Reference

      Attribute name:     X-decbyterate
      Long form:          Peak decoding rate in bytes per second
      Type of name:       att-field
      Type of attribute:  Media level only
      Subject to charset: No
      Purpose:            See Section 4.1
      Reference:          3GPP TS 26.234, Section 5.3.3.2
      Values:             See Reference

      Attribute name:     3gpp-videopostdecbufsize
      Long form:          Post decoder buffer size
      Type of name:       att-field
      Type of attribute:  Media level only
      Subject to charset: No
      Purpose:            See Section 4.1
      Reference:          3GPP TS 26.234, Section 5.3.3.2
      Values:             See Reference

      Attribute name:     framesize
      Long form:          Maximum Video Frame Size
      Type of name:       att-field
      Type of attribute:  Media level only
      Subject to charset: No
      Purpose:            See Section 4.2
      Reference:          3GPP TS 26.234, Section 5.3.3.2
      Values:             See Reference
      Attribute name:     3GPP-Integrity-Key
      Long form:          3GPP DRM Integrity Key
      Type of name:       att-field
      Type of attribute:  Session level only
      Subject to charset: No
      Purpose:            See Section 4.3
      Reference:          3GPP TS 26.234, Sections 5.3.3.2 and K.2.2.1
      Values:             See Reference

      Attribute name:     3GPP-SRTP-Config
      Long form:          3GPP DRM SRTP Configuration
      Type of name:       att-field
      Type of attribute:  Media level only
      Subject to charset: No
      Purpose:            See Section 4.3
      Reference:          3GPP TS 26.234, Sections 5.3.3.2 and K.2.2.2
      Values:             See Reference

      Attribute name:     3GPP-SDP-Auth
      Long form:          3GPP DRM Integrity SDP Authentication
      Type of name:       att-field
      Type of attribute:  Session level only
      Subject to charset: No
      Purpose:            See Section 4.3
      Reference:          3GPP TS 26.234, Sections 5.3.3.2 and K.2.2.3
      Values:             See Reference

      Attribute name:     alt
      Long form:          Alternative SDP line
      Type of name:       att-field
      Type of attribute:  Media level only
      Subject to charset: No
      Purpose:            See Section 4.4
      Reference:          3GPP TS 26.234, Section 5.3.3.3
      Values:             See Reference

      Attribute name:     alt-default-id
      Long form:          Default alternative ID
      Type of name:       att-field
      Type of attribute:  Media level only
      Subject to charset: No
      Purpose:            See Section 4.4
      Reference:          3GPP TS 26.234, Section 5.3.3.3
      Values:             See Reference
      Attribute name:     alt-group
      Long form:          Grouping of SDP Line alternatives
      Type of name:       att-field
      Type of attribute:  Session level only
      Subject to charset: No
      Purpose:            See Section 4.4
      Reference:          3GPP TS 26.234, Section 5.3.3.4
      Values:             See Reference

      Attribute name:     3GPP-Adaptation-Support
      Long form:          3GPP Adaptation Support
      Type of name:       att-field
      Type of attribute:  Media level only
      Subject to charset: No
      Purpose:            See Section 4.5
      Reference:          3GPP TS 26.234, Section 5.3.3.5
      Values:             See Reference

      Attribute name:     3GPP-QoE-Metrics
      Long form:          3GPP Quality of Experience Metrics
      Type of name:       att-field
      Type of attribute:  Session and Media level
      Subject to charset: No
      Purpose:            See Section 4.6
      Reference:          3GPP TS 26.234, Section 5.3.3.6
      Values:             See Reference

      Attribute name:     3GPP-Asset-Information
      Long form:          3GPP Asset Information
      Type of name:       att-field
      Type of attribute:  Session and Media level
      Subject to charset: No
      Purpose:            See Section 4.7
      Reference:          3GPP TS 26.234, Section 5.3.3.7
      Values:             See Reference

      Attribute name:     mbms-mode
      Long form:          MBMS Bearer Mode Declaration
      Type of name:       att-field
      Type of attribute:  Session and Media level
      Subject to charset: No
      Purpose:            See Section 5.1
      Reference:          3GPP TS 26.346, Section 7.3.2.7
      Values:             See Reference
      Attribute name:     mbms-flowid
      Long form:          FEC Flow ID
      Type of name:       att-field
      Type of attribute:  Media level
      Subject to charset: No
      Purpose:            See Section 5.2
      Reference:          3GPP TS 26.346, Section 8.3.1.9
      Values:             See Reference

      Attribute name:     mbms-repair
      Long form:          MBMS Repair
      Type of name:       att-field
      Type of attribute:  Session and Media level
      Subject to charset: No
      Purpose:            See Section 5.3
      Reference:          3GPP TS 26.346, Section 8.3.1.8
      Values:             See Reference

that's the whole registry, and it's a lot of attributes! 🌸 the bit at the bottom with mbms-repair wraps up Section 8.1 🫢

8.2. RTSP Registrations ✨

okay so IANA registered a whole bunch of RTSP headers in the RTSP/1.0 Headers table of the "Real Time Streaming Protocol (RTSP)/1.0 Parameters" registry πŸŽ€ (you can find it at http://www.iana.org/).

ngl this part is a lot of details but it's giving organized πŸ“‹. Each header's definition lives in 3GPP TS 26.234, so the entries below just point back to it.

Quick heads up on the registry itself: it wants a Standards document, ideally an IETF RFC. The headers are defined in a technical standards document from 3GPP, but this RFC is being used to submit the registration so more people inside the IETF can find out about them πŸ¦‹.

The contact person for this registration is Magnus Westerlund (email: magnus.westerlund@ericsson.com; phone: +46 8 719 0000) πŸ’Œ.

Here's the full list of headers, exactly as registered:

   Header Name:     3GPP-Freshness-Token
   Purpose:         See Section K.2 of 3GPP TS 26.234
   Methods:         DESCRIBE Requests
   Reference:       Section K.2.2.4 of 3GPP TS 26.234
   Values:          See Reference

   Header Name:     3GPP-Link-Char
   Purpose:         See Section 5.3.2.1 of 3GPP TS 26.234
   Methods:         SETUP, PLAY, OPTIONS, or SET_PARAMETER Requests
   Reference:       Section 5.3.2.1 of 3GPP TS 26.234
   Values:          See Reference
   Header Name:     3GPP-Adaptation
   Purpose:         See Section 5.3.2.2 of 3GPP TS 26.234
   Methods:         SETUP, PLAY, OPTIONS, or SET_PARAMETER Requests
                    and Responses
   Reference:       Section 5.3.2.2 of 3GPP TS 26.234
   Values:          See Reference

   Header Name:     3GPP-QoE-Metrics
   Purpose:         See Section 5.3.2.3.1 of 3GPP TS 26.234
   Methods:         SETUP, PLAY, OPTIONS, or SET_PARAMETER Requests
                    and Responses
   Reference:       Section 5.3.2.3.1 of 3GPP TS 26.234
   Values:          See Reference

   Header Name:     3GPP-QoE-Feedback
   Purpose:         See Section 5.3.2.3.2 of 3GPP TS 26.234
   Methods:         SET_PARAMETER, PAUSE, or TEARDOWN Requests
   Reference:       Section 5.3.2.3.2 of 3GPP TS 26.234
   Values:          See Reference

   Header Name:     Switch-Stream
   Purpose:         See Section 5.5.4.2 of 3GPP TS 26.234
   Methods:         PLAY Requests and Responses
   Reference:       Section 5.5.4.2 of 3GPP TS 26.234
   Values:          See Reference

   Header Name:     SDP-Requested
   Purpose:         See Section 5.5.4.4 of 3GPP TS 26.234
   Methods:         PLAY Requests
   Reference:       Section 5.5.4.4 of 3GPP TS 26.234
   Values:          See Reference

   Header Name:     Pipelined-Requests
   Purpose:         See Section 5.5.3 of 3GPP TS 26.234
   Methods:         SETUP and PLAY Requests
   Reference:       Section 5.5.3 of 3GPP TS 26.234
   Values:          See Reference

   Header Name:     x-predecbufsize
   Purpose:         See Section 5.3.2.4 of 3GPP TS 26.234
   Methods:         PLAY Response
   Reference:       Section 5.3.2.4 of 3GPP TS 26.234
   Values:          See Reference
   Header Name:     x-initpredecbufperiod
   Purpose:         See Section 5.3.2.4 of 3GPP TS 26.234
   Methods:         PLAY Response
   Reference:       Section 5.3.2.4 of 3GPP TS 26.234
   Values:          See Reference

   Header Name:     x-initpostdecbufperiod
   Purpose:         See Section 5.3.2.4 of 3GPP TS 26.234
   Methods:         PLAY Response
   Reference:       Section 5.3.2.4 of 3GPP TS 26.234
   Values:          See Reference

   Header Name:     3gpp-videopostdecbufsize
   Purpose:         See Section 5.3.2.4 of 3GPP TS 26.234
   Methods:         PLAY Response
   Reference:       Section 5.3.2.4 of 3GPP TS 26.234
   Values:          See Reference

   Header Name:     Supported
   Purpose:         See Section 5.5.2.2.2 of 3GPP TS 26.234
   Methods:         Any Request and Response
   Reference:       Section 5.5.2.2.2 of 3GPP TS 26.234
   Values:          See Reference

Next up, the option tags 🧚. IANA registered these in the RTSP/1.0 Option Tags table of the same "Real Time Streaming Protocol (RTSP)/1.0 Parameters" registry, also at http://www.iana.org/ 🌸.

   Option tag:      3gpp-pipelined
   Purpose:         See Section 5.5.3 of 3GPP TS 26.234
   Applies to:      Client and Server
   Reference:       Section 5.5.3 of 3GPP TS 26.234
   Values:          See Reference

   Option tag:      3gpp-switch
   Purpose:         See Section 5.5.4.2 of 3GPP TS 26.234
   Applies to:      Client and Server
   Reference:       Section 5.5.4.2 of 3GPP TS 26.234
   Values:          See Reference

   Option tag:      3gpp-switch-req-sdp
   Purpose:         See Section 5.5.4.4 of 3GPP TS 26.234
   Applies to:      Client and Server
   Reference:       Section 5.5.4.4 of 3GPP TS 26.234
   Values:          See Reference

   Option tag:      3gpp-switch-stream
   Purpose:         See Section 5.5.4.5 of 3GPP TS 26.234
   Applies to:      Client and Server
   Reference:       Section 5.5.4.5 of 3GPP TS 26.234
   Values:          See Reference

9. Security Considerations πŸ”

this section is seriously important, bestie, so read it properly 🚨

SDP attributes can be changed by an attacker unless they're integrity protected and authenticated 😱. For this, the security considerations of the SDP specification [RFC4566] should be reviewed. The registered SDP attributes are open to modification or removal attacks, and those can cause serious problems, like failing to use the service or getting reduced quality πŸ’€.

The registered RTSP headers are also open to insertion, deletion, or modification attacks, kind of like SDP attributes. In this case too, the attacks can make the service fail or make the streamed content look worse πŸ“‰.

The three SDP protocol identifiers don't add any new security threats by themselves compared to other protocol identifiers in SDP πŸ™Œ. That said, the media stream and the protocols that the SDP protocol identifier identifies and configures can have security issues of their own 🫠.


10. References πŸ“š

10.1. Normative References

[MBMS]     3GPP TS 26.346 version 7.10.0 (2009-03), "Multimedia
           Broadcast/Multicast Service (MBMS); Protocols and codecs".

[PSS-234]  3GPP TS 26.234 version 7.7.0 (2009-03), "Transparent end-
           to-end Packet-switched Streaming Service (PSS); Protocols
           and codecs".

[PSS-3GP]  3GPP TS 26.244 version 7.3.0 (2007-12), "Transparent end-
           to-end packet switched streaming service (PSS); 3GPP file
           format (3GP)".

[RFC0768]  Postel, J., "User Datagram Protocol", STD 6, RFC 768,
           August 1980.

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC3551]  Schulzrinne, H. and S. Casner, "RTP Profile for Audio and
           Video Conferences with Minimal Control", STD 65, RFC 3551,
           July 2003.

[RFC3711]  Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
           Norrman, "The Secure Real-time Transport Protocol (SRTP)",
           RFC 3711, March 2004.

10.2. Informative References

[AES]      NIST, "Advanced Encryption Standard (AES)", FIPS PUB 197,
           <http://www.nist.gov/itl/fipscurrent.cfm>.

[PSS-233]  3GPP TS 26.233 version 7.0.0 (2007-06), "Transparent end-
           to-end packet switched streaming service (PSS) General
           Description".

[RFC2326]  Schulzrinne, H., Rao, A., and R. Lanphier, "Real Time
           Streaming Protocol (RTSP)", RFC 2326, April 1998.

[RFC3264]  Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
           with Session Description Protocol (SDP)", RFC 3264,
           June 2002.

[RFC3890]  Westerlund, M., "A Transport Independent Bandwidth
           Modifier for the Session Description Protocol (SDP)",
           RFC 3890, September 2004.

[RFC4566]  Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
           Description Protocol", RFC 4566, July 2006.

[RFC4648]  Josefsson, S., "The Base16, Base32, and Base64 Data
           Encodings", RFC 4648, October 2006.

Authors' Addresses πŸŽ€

Magnus Westerlund
Ericsson
Farogatan 6
Stockholm  SE-164 80
SWEDEN

Phone: +46 10 7190000
Fax:   +46 10 757 55 50
EMail: magnus.westerlund@ericsson.com


Per Frojdh
Ericsson
Farogatan 6
Stockholm  SE-164 80
SWEDEN

Phone: +46 10 7190000
Fax:   +46 10 757 55 50
EMail: per.frojdh@ericsson.com
πŸ“¦ where this page comes from