RFC 4102
Registration of the text/red MIME Sub-Type
RFC 4102: Registration of the text/red MIME Sub-Type π
Okay, title block first, bestie π«Ά This is RFC 4102 from the Network Working Group. Paul E. Jones at Cisco Systems, Inc. wrote it, it's on the Standards Track, and the date is June 2005. The title block has no Obsoletes or Updates lines, so it doesn't obsolete or update anything. π
Status of This Memo β¨
Okay so this doc is an Internet standards track protocol for the Internet community, and it's basically begging for discussion and suggestions for improvements π If you want the official standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited, so share it with everyone π
Copyright Notice
Copyright (C) The Internet Society (2005).
Abstract
This document defines the text/red MIME sub-type. "Red" is short for redundant π The actual RTP packetization for this MIME type is specified in RFC 2198.
1. Introduction β¨
Text is a huge deal in any multimedia communication system, bestie π Just like audio, text transport can get a glow-up from redundancy, which improves reliability and the end-user experience πΈ
RFC 2198 [1] defines an RTP [2] payload format for redundant audio data. That format is a perfect fit for redundancy for text too, not just audio π¦
RFC 4103 [8] specifies one usage of RFC 2198 and the text/red MIME type for transporting redundant text data π§
This memo gives you the MIME sub-type registration info for text/red. The doc mostly focuses on using this MIME sub-type in SDP [5], but it isn't restricted to SDP, so it's giving flexibility π
2. Conventions Used in This Document
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 [3] π
3. IANA Considerations π
IANA registered exactly one new MIME sub-type, and it's the main character of this whole doc π
MIME media type name: text
MIME subtype name: RED
Now the required parameters, the stuff you really can't skip π
- rate: this is the RTP clock rate of the payload carried within the RTP packet. Typically it's 1000, but other rates MAY be specified. This parameter MUST be set equal to the clock rate of the text payload format carried as the primary encoding β±οΈ
- pt: this is a comma-separated, ordered list of RTP payload types that lists the primary, secondary, and so on, following RFC 2198. Comma is a special character, so the list MUST be a quoted-string (enclosed in double quotes). For static payload types, each element is just the type number. For dynamic payload types, each element maps the dynamic payload type number to an embedded MIME content-type specification for the matching payload format. The mapping looks like this:
dynamic-payload-type "=" content-type
If the content-type string includes a comma, then the content-type string MUST be a quoted-string. If it doesn't include a comma, it MAY still be quoted, which is very choice-coded of it π Because it's part of the list, which has to be a quoted-string itself, the quotation marks MUST be quoted with backslash quoting as specified in RFC 2045 [4]. If the content-type string contains a quoted-string, the backslash quoting requirement gets applied recursively π
The rest of the registration template goes like this:
Optional parameters: ptime, maxptime (these attributes are originally
defined in RFC 2327 [5] and RFC 3267 [6], respectively)
Restrictions on Usage:
This type is defined only for transfer via RTP.
It shall not be defined for a storage format.
Encoding considerations:
See restrictions on Usage above; this section is included per
the requirements in RFC 3555 [7].
Security considerations: Refer to section 5 of RFC 4102.
Interoperability considerations: none
Published specification: RFC 2198
Applications which use this media type:
Text streaming and conferencing tools.
Additional information: none
Person & email address to contact for further information:
Paul E. Jones
E-mail: paulej@packetizer.com
Intended usage: COMMON
Author:
Paul E. Jones
paulej@packetizer.com
Change Controller:
AVT Working Group delegated from the IESG
Quick vibe check: the ptime and maxptime attributes come from RFC 2327 [5] and RFC 3267 [6]. Restrictions say this type is only for RTP transfer and it shall not be defined for a storage format π« Security points to section 5 of RFC 4102. The Change Controller is the AVT Working Group, delegated from the IESG π
4. Mapping to SDP Parameters πΊοΈ
Okay, so the MIME type info maps onto fields in the Session Description Protocol (SDP) [5], which describes RTP sessions. When you use SDP to set up sessions using RFC 2198 in a text session, the mapping goes like this π
- The MIME type ("text") goes in SDP
m=as the media name. - The value of the "rate" parameter goes in SDP
a=rtpmap. - The MIME subtype (RED) goes in SDP
a=rtpmapas the encoding name. - The "ptime" and "maxptime" parameters go in the SDP
a=ptimeanda=maxptimeattributes, respectively. - The pt parameter maps to an
a=fmtpattribute. You drop the parameter name (pt) and swap the commas for slashes. For example,'pt="101,102"'maps to'a=fmtp:99 101/102', where '99' is the payload type of the redundancy frames. The single quote marks (') in this example aren't in the actual message encoding, they're just there so you can read it easily π The number of elements in the payload type list shows the level of redundancy.
Any dynamic payload type in the list MUST be represented by its payload type number and not by its content-type. The mapping of payload types to content-type happens through the normal SDP procedures with a=rtpmap π―
An example SDP looks like this:
m=text 11000 RTP/AVP 98 100
a=rtpmap:98 t140/1000
a=rtpmap:100 red/1000
a=fmtp:100 98/98
For each redundancy payload type you define, the ordering of the primary and redundancy encodings is fixed. If you want more than one combination of primary and redundancy encodings, you need to define multiple redundancy payload types π
5. Security Considerations π
Okay, the security stuff is serious, so pay attention π± The security considerations listed in RFC 2198 apply. Further, text data is even more vulnerable to unwanted modification than audio data, and that can lead to undesired results π To stop anyone from modifying the primary, secondary, or header information, payload integrity protection over at least the complete RTP packet is RECOMMENDED. SRTP [9] is one example of how to do it π‘οΈ
6. Normative References β¨
[1] Perkins, C., Kouvelas, I., Hodson, O., Hardman, V., Handley, M., Bolot, J., Vega-Garcia, A., and S. Fosse-Parisis, "RTP Payload for Redundant Audio Data", RFC 2198, September 1997.
[2] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 2003.
[3] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[4] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996.
[5] Handley, M., Jackson, V., "SDP: Session Description Protocol", RFC 2327, April 1998.
[6] Sjoberg, J., Westerlund, M., Lakaniemi, A., and Q. Xie, "Real-Time Transport Protocol (RTP) Payload Format and File Storage Format for the Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband (AMR-WB) Audio Codecs", RFC 3267, June 2002.
[7] Casner, S. and P. Hoschka, "MIME Type Registration of RTP Payload Formats", RFC 3555, July 2003.
7. Informative References π
[8] Hellstrom, G. and P. Jones, "RTP Payload for Text Conversation", RFC 4103, June 2005.
[9] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. Norrman, "The Secure Real-time Transport Protocol (SRTP)", RFC 3711, March 2004.
Author's Address π¦
Paul E. Jones
Cisco Systems, Inc.
7025 Kit Creek Rd.
Research Triangle Park, NC 27709, USA
Phone: +1 919 392 6948
EMail: paulej@packetizer.com
Full Copyright Statement
Copyright (C) The Internet Society (2005).
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 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
The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document, or the extent to which any license under such rights might or might not be available. It also doesn't represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat, any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.
Acknowledgement π«Ά
Funding for the RFC Editor function is currently provided by the Internet Society. π
π¦ where this page comes from
- ietf: rfc4102 2005-06
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms