RFC 4855
Media Type Registration of RTP Payload Formats
RFC 4855 π Media Type Registration of RTP Payload Formats
Okay bestie, here's the title block tea β. This is RFC 4855, written by S. Casner from Packet Design in February 2007 under the Network Working Group. It's on the Standards Track π₯. It obsoletes RFC 3555, and the header doesn't list any updates.
Status of This Memo β¨
This is an Internet standards track protocol for the Internet community, and it's asking for discussion and suggestions for improvements π. For the standardization state and status of this protocol, check the current edition of "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited πΈ.
Copyright Notice π
The copyright line says: Copyright (C) The IETF Trust (2007).
Abstract π¦
This doc is all about the procedure for registering RTP payload formats as audio, video, or other media subtype names π§. It's super useful in a text-based format description or control protocol, because it helps identify the type of an RTP transmission. Lowkey iconic π.
Table of Contents π
1. Introduction ....................................................2
1.1. Terminology ................................................2
2. Procedure For Registering Media Types for RTP Payload Types .....2
2.1. Example Media Type Registration ............................4
2.2. Restrictions on Sharing a Subtype Name .....................5
3. Mapping to SDP Parameters .......................................6
4. Changes from RFC 3555 ...........................................7
5. Security Considerations .........................................8
6. IANA Considerations .............................................9
7. References .....................................................10
7.1. Normative References ......................................10
7.2. Informative References ....................................10
1. Introduction β¨
Okay so RFC 4288 [1] is the one that defines how media type specs and registrations work, with the Internet Assigned Numbers Authority (IANA) as the central registry ποΈ. That doc covers the general stuff that applies no matter the application environment or transport mode. This doc is the one with the specific rules for registering media types used with the Real-time Transport Protocol (RTP), RFC 3550 [2], to identify RTP payload formats π§.
1.1. Terminology π
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be read as described in RFC 2119 [3]. They tell you the requirement levels for implementations that are compliant with this spec π₯.
2. Procedure For Registering Media Types for RTP Payload Types π
Registering an RTP payload type as a media type follows the same procedures as RFC 4288 [1], and it uses the registration template shown in Section 10 of that RFC. To spell out how the payload format gets carried over RTP, a few extra bits of info are needed in these parts of that template π:
- Required parameters: If the payload format doesn't have a fixed RTP timestamp clock rate, then a
rateparameter is required to specify the RTP timestamp clock rate. A payload format may also have additional required parameters. - Optional parameters: Most audio payload formats can have an optional
channelsparameter to say how many audio channels are in the transmission πΆ. The default channel order is the one in RFC 3551 [4]. Any payload format can have these optional parameters, but audio formats are most likely to use them:ptime(the recommended length of time in milliseconds of media in a packet) and/ormaxptime(the maximum amount of media that can fit in each packet, as time in milliseconds). Bothptimeandmaxptimeare defined in the Session Description Protocol (SDP) [5] π«Ά.
A payload format may have extra optional parameters too. As Section 4.3 of [1] allows, new parameters MAY be added to RTP media types that were defined before, but the new parameters MUST NOT change existing functionality. It MUST also be possible for existing implementations to ignore the additional parameters without breaking anything π‘οΈ.
- Encoding considerations: Most RTP payload formats include binary or framed data, as described in Section 4.8 of [1]. The appropriate encoding considerations MUST be noted π.
- Published specification: A description of the media encoding and a spec for the payload format must be provided, usually by pointing to an RTP payload format spec RFC π. That RFC can be separate, or the media type registration can be folded into the payload format spec RFC. The payload format specification MUST include the RTP timestamp clock rate (or multiple rates for audio encodings that have multiple sampling rates) β±οΈ.
A reference to a further description of the data compression format itself should be provided, if it's available π.
- Restrictions on usage: The fact that the media type is defined for transfer via RTP MUST be noted. This matters most if the transfer depends on RTP framing, which means the media type is only defined for transfer via RTP π«.
Depending on whether the type has already been registered for transfer with a non-RTP protocol (for example MIME mail or HTTP), a few different cases can happen π:
- a) Not yet registered as a media type: A new registration should be built with the media type registration template. The registration may also specify transfer by other means, in addition to RTP, if that's feasible and wanted. The appropriate encoding considerations must be specified, and the restrictions on usage must say whether the type is only defined for transfer via RTP or via other modes too.
Optional parameters may be defined as needed, and it must be clearly stated which transfer mode(s) those parameters apply to π .
- b) Media type exists for a non-RTP protocol: The restrictions on usage of the existing type should be changed (if they're there) or added (if they're not), to show that the type can also be transferred via RTP β¨.
RTP-specific parameters may be added, and it must be clearly stated that these are only to be used when the media type is transmitted via RTP transport π.
- c) Update an existing media type for RTP to be used for a non-RTP protocol: The restrictions on usage of the existing type should be changed to show that the type can also be transferred via a non-RTP protocol (for example SMTP or HTTP) π¦.
Non-RTP-specific parameters can be added, and it must be clearly stated that these are only to be used when the media type is transmitted via a non-RTP transport πΈ.
2.1. Example Media Type Registration π§
This sample registration of a fake media type, audio/example, shows examples for some of the required text π. Anywhere it says RFC nnnn, you'd swap in a reference to the RFC that has the payload format spec and the media type registration.
Type name: audio
Subtype name: example
Required parameters:
rate: RTP timestamp clock rate, which is equal to the sampling
rate. The typical rate is 8000; other rates may be specified.
Optional parameters:
channels: number of interleaved audio streams, either 1 for
mono or 2 for stereo, and defaults to 1 if omitted.
Interleaving takes place between on a frame-by-frame basis,
with the left channel followed by the right channel.
ptime: recommended length of time in milliseconds represented
by the media in a packet (see RFC 4566).
maxptime: maximum amount of media that can be encapsulated in
each packet, expressed as time in milliseconds (see RFC 4566).
Encoding considerations:
This media type is framed binary data (see RFC 4288, Section
4.8).
Security considerations: See Section n of RFC nnnn
Interoperability considerations:
Some receivers may only be capable of receiving single-channel
audio.
Published specification: RFC nnnn
Applications that use this media type:
Audio and video streaming and conferencing tools.
Additional information: none
Person & email address to contact for further information:
Fred Audio <fred@example.com>
Intended usage: COMMON
Restrictions on usage:
This media type depends on RTP framing, and hence is only
defined for transfer via RTP (RFC 3550). Transfer within
other framing protocols is not defined at this time.
Author:
Fred Audio
Change controller:
IETF Audio/Video Transport working group delegated from the
IESG.
2.2. Restrictions on Sharing a Subtype Name π§
The same media subtype name MUST NOT be shared between RTP and non-RTP (file-based) transfer methods, unless the data format is the same for both methods. The data format counts as the same if the file format is equivalent to a concatenated sequence of payloads from RTP packets, not including the RTP header or any RTP payload-format header π.
The file format MAY include a magic number or other header at the start of the file, as long as that isn't included when the data is transferred via RTP πͺ.
A second requirement for sharing a media subtype name is that the sets of required parameters must be the same for both methods π.
For cases where the data format or required parameters can't be the same for RTP and non-RTP transfer methods, the data formats MUST be registered as separate types. It is RECOMMENDED that the subtype names be related, like by using a common root plus a suffix. When a suffix gets applied to the subtype name for the RTP transfer method, the suffix +rtp is suggested π.
3. Mapping to SDP Parameters β¨
okay so bestie, this is where a media type string gets translated into SDP lines π The syntax comes from the Content-Type header field in RFC 2045 [6], and it looks like this:
type "/" subtype *(";" parameter)
Parameters can be required or optional depending on the type or subtype π For RTP payload formats, "rate", "channels", "ptime", and "maxptime" are the general ones (we covered them up above), and they can pop up across a bunch of different types and subtypes π¦ Each parameter follows RFC 2045's format:
attribute "=" value
Here, attribute is the parameter name, and every parameter gets its own list of allowed values πΈ RFC 2045 says a value MUST be present, and if the value has any of the special characters listed in that RFC, it MUST be a quoted string π«Ά
The info in the media type string maps onto specific fields in the Session Description Protocol (SDP) [5], which is the thing everyone uses to describe RTP sessions. Here's how it lines up:
- The media type (e.g., audio) goes in SDP
m=as the media name. - The media subtype (payload format) goes in SDP
a=rtpmapas the encoding name. - The general (possibly optional) parameters
rateandchannelsalso go ina=rtpmap, as the clock rate and encoding parameters, respectively. - The general (and optional) parameters
ptimeandmaxptimego in the SDPa=ptimeanda=maxptimeattributes, respectively. - Any payload-format-specific parameters go in the SDP
a=fmtpattribute. The set of allowed parameters is defined by the RFC that specifies the payload format, and it MUST NOT be extended by the media type registration without a corresponding revision of the payload format specification. The format and syntax of these parameters may also be defined by the payload format specification, but it's suggested that the parameters get copied straight from the media type string as a semicolon separated list of parameter=value pairs. For payload formats that use some other syntax for the fmtp parameters, the registration of that payload format as a media type must specify what the parameters are in MIME format and how to map them to thea=fmtpattribute.
Here's an example mapping π
audio/L16; rate=48000; channels=2; ptime=5; emphasis=50-15
m=audio 49170 RTP/AVP 97
a=rtpmap:97 L16/48000/2
a=fmtp:97 emphasis=50-15
a=ptime:5
Quick heads up: payload format (encoding) names defined in the RTP Profile [4] are usually written in upper case, and media subtype names are usually written in lower case. Both are case-insensitive in either spot. Parameter names are case-insensitive too, both in media type strings and in the default mapping to the SDP a=fmtp attribute π
4. Changes from RFC 3555 π¦
okay so this document updates RFC 3555 so it lines up with the newer media type registration procedures in RFC 4288 [1] β¨ Back in RFC 3555, the encoding considerations had to spell out transfer via RTP. That now lives under restrictions on usage instead π This document also sets out the conditions under which new optional parameters can be added to a previously defined RTP media type, and it adds a new Section 2.2 to clarify the requirements for sharing a media type between RTP and non-RTP transfer methods π«Ά
RFC 3555 had media type registrations for the RTP payload formats in the RTP Profile for Audio and Video Conferences, RFC 3551 [4]. Those registrations have been taken out of this document. Some of them got bundled into a separate companion RFC, RFC 4856 [8], and the ones that have been, or are planned to be, registered in revisions of their own payload format specification RFCs were left out π
Huge thanks to Philipp Hoschka, co-author of RFC 3555, whose contributions are the foundation of this document πΈ
5. Security Considerations π
okay bestie, this part is serious, so let's get into it π The media type registration procedure in this memo doesn't impose any security considerations on its own. Registrations that follow this procedure don't create security risks by themselves either. BUT using the media type being registered could very well come with security risks:
- Any media type that contains "active content" carries the risk of malicious side-effects, unless running that content is adequately constrained.
- Several audio and video encodings are perfect for hiding data using steganography.
- The RTP specification, RFC 3550, covers security considerations for sending audio and video data over RTP, including using encryption where confidentiality is required.
So, each media type registration is required to state any security considerations that apply to using that type π₯ The rest of this section is copied from RFC 4288 [1], which covers media type registration procedures in general.
An analysis of security issues MUST be done for all types registered in the standards tree. A similar analysis for media types registered in the vendor or personal trees is encouraged but not required. However, no matter what security analysis has or hasn't been done, all descriptions of security issues MUST be as accurate as possible, regardless of registration tree. In particular, a statement that there are "no security issues associated with this type" MUST NOT be confused with "the security issues associated with this type have not been assessed" π
There's absolutely no requirement that media types registered in any tree be secure or totally free from risks. Still, all known security risks MUST be identified in the registration of a media type, again regardless of registration tree π
The security considerations section of all registrations is subject to continuing evaluation and modification. In particular, it MAY be extended through the "comments on media types" mechanism described in RFC 4288, Section 6 β¨
Some of the things that should be looked at in a security analysis of a media type are:
- Complex media types may include provisions for directives that institute actions on a recipient's files or other resources. In many cases, originators are allowed to specify arbitrary actions in an unrestricted fashion that may then have devastating effects. See the registration of the application/postscript media type in RFC 2046 [7] for an example of such directives and how they should be described in a media type registration.
- All registrations MUST state whether or not they employ such "active content", and if they do, they MUST state what steps have been taken to protect users of the media type from harm.
- Complex media types may include provisions for directives that institute actions that, while not directly harmful to the recipient, may result in disclosure of information that either facilitates a subsequent attack or violates a recipient's privacy in some way. Again, the registration of the application/postscript media type shows how such directives can be handled.
- A media type that uses compression may give an attacker a chance to send a small amount of data that, once received and evaluated, expands enormously to consume all of the recipient's resources. All media types SHOULD state whether or not they employ compression, and if they do, they should discuss what steps need to be taken to avoid such attacks.
- A media type might be targeted at applications that need some sort of security assurance but don't provide the necessary security mechanisms themselves. For example, a media type could be defined for storing confidential medical information that in turn requires an external confidentiality service, or is designed for use only within a secure environment.
6. IANA Considerations π
the purpose of this document is to lay out the requirements and procedures for registering RTP payload formats in the IANA media type registry π· No registrations are defined here, so nothing new gets added to the registry in this document π§
7. References π
7.1. Normative References
- [1] Freed, N. and J. Klensin, "Media Type Specifications and Registration Procedures", BCP 13, RFC 4288, December, 2005.
- [2] Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", RFC 3550, July 2003.
- [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
- [4] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and Video Conferences with Minimal Control", RFC 3551, July 2003.
- [5] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session Description Protocol", RFC 4566, July 2006.
- [6] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996.
- [7] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types", RFC 2046, November 1996.
7.2. Informative References
- [8] Casner, S., "Media Type Registration of Payload Formats in the RTP Profile for Audio and Video Conferences", RFC 4856, February 2007.
Author's Address π
Stephen L. Casner
Packet Design
3400 Hillview Avenue, Building 3
Palo Alto, CA 94304
United States
Phone: +1 650 739-1843
EMail: casner@acm.org
Full Copyright Statement π
Copyright (C) The IETF Trust (2007).
This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.
This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property β¨
okay so the IETF is like, not picking a side π«£ π It takes no position on whether any Intellectual Property Rights (or other rights) that someone might claim over the tech in this doc are valid or how far they reach. It also doesn't say whether any license for those rights is even available, and it hasn't gone hunting for rights holders on its own either π If you want the rules on rights for RFC docs, check out BCP 78 and BCP 79 π
Copies of IPR disclosures sent to the IETF Secretariat are a thing π¬ So are any assurances that licenses will be available, plus the results of anyone trying to get a general license or permission to use those proprietary rights for implementers or users of this spec. You can find all of that in the IETF online IPR repository at http://www.ietf.org/ipr π
The IETF also really wants to hear from you π«Ά If you know of any copyrights, patents, patent applications, or other proprietary rights that might cover tech you'd need to implement this standard, send it to the IETF at ietf-ipr@ietf.org π Tell them everything, bestie!
Acknowledgement πΈ
Shoutout to the Internet Society π Right now, they're the ones funding the RFC Editor function β¨
π¦ where this page comes from
- ietf: rfc4855 2007-02
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms