Registration of the text/red MIME Sub-Type
The MIME type for sending redundant copies of text, so a lost packet does not lose the words.
Jones, P., "Registration of the text/red MIME Sub-Type", RFC 4102, DOI 10.17487/RFC4102, June 2005, <https://www.rfc-editor.org/info/rfc4102>.
@misc{rfc4102,
series = {Request for Comments},
number = 4102,
howpublished = {RFC 4102},
publisher = {RFC Editor},
doi = {10.17487/RFC4102},
url = {https://www.rfc-editor.org/info/rfc4102},
author = {P. Jones},
title = {{Registration of the text/red MIME Sub-Type}},
pagetotal = 6,
year = 2005,
month = jun,
} RFC text
Contents
Network Working Group P. Jones
Request for Comments: 4102 Cisco Systems, Inc.
Category: Standards Track June 2005
Registration of the text/red MIME Sub-Type
Status of This Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
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 an important component of any multimedia communication
system. Like audio, the transport of text can benefit from the use
of redundancy in order to improve reliability and end-user
experience.
RFC 2198 [1] defines an RTP [2] payload format for redundant audio
data. The format defined in that document is quite suitable for
providing redundancy for text, as well as audio.
RFC 4103 [8] specifies one usage of RFC 2198 and the text/red MIME
type for the transport of redundant text data.
This memo provides the MIME sub-type registration information for
text/red. While this document focuses on the use of this MIME sub-
type in SDP [5], the application of this MIME sub-type is not
restricted to SDP.
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
One new MIME sub-type has been registered by the IANA, as described
below:
MIME media type name: text
MIME subtype name: RED
Required parameters:
rate: the RTP clock rate of the payload carried within the RTP
packet. Typically, this rate is 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: a comma-separated ordered list of RTP payload types
enumerating the primary, secondary, etc., in accordance with RFC
2198. Because comma is a special character, the list MUST be a
quoted-string (enclosed in double quotes). For static payload
types, each list element is simply the type number. For dynamic
payload types, each list element is a mapping of the dynamic
payload type number to an embedded MIME content-type specification
for the payload format corresponding to the dynamic payload type.
The format of the mapping is:
dynamic-payload-type "=" content-type
If the content-type string includes a comma, then the content-
type string MUST be a quoted-string. If the content-type string
does not include a comma, it MAY still be quoted. Because it is
part of the list, which must itself be a quoted-string, the
quotation marks MUST be quoted with backslash quoting as specified
in RFC 2045 [4]. If the content-type string itself contains a
quoted-string, then the requirement for backslash quoting is
recursively applied.
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
4. Mapping to SDP Parameters
The information carried in the MIME media type specification has a
specific mapping to fields in the Session Description Protocol (SDP)
[5], which is commonly used to describe RTP sessions. When SDP is
used to specify sessions employing the RFC 2198 in a text session,
the mapping is as follows:
- The MIME type ("text") goes in SDP "m=" as the media name.
- The value of the parameter "rate" goes in SDP "a=rtpmap".
- The MIME subtype (RED) goes in SDP "a=rtpmap" as the encoding
name.
- The parameters "ptime" and "maxptime" go in the SDP "a=ptime" and
"a=maxptime" attributes, respectively.
- The pt parameter is mapped to an a=fmtp attribute by eliminating
the parameter name (pt) and changing the commas to slashes. For
example, 'pt="101,102"' maps to 'a=fmtp:99 101/102', where = '99'
is the payload type of the redundancy frames. Note that the
single quote marks (') used in this example are not present in the
actual message encoding, but are present here only for
readability. The level of redundancy is shown by the number of
elements in the payload type list.
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 the content-type is done using the normal SDP
procedures with "a=rtpmap".
An example of SDP is:
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 defined, the ordering of the primary
and redundancy encoding(s) is fixed. If more than one combination of
primary and redundancy encoding(s) is desired, multiple redundancy
payload types needs to be defined.
5. Security Considerations
The security considerations listed in RFC 2198 apply. Further, it
should be understood that text data, perhaps even more so than audio
data, is susceptible to unwanted modification that may lead to
undesired results. To prevent modification of the primary,
secondary, or header information, payload integrity protection over
at least the complete RTP packet is RECOMMENDED, for example using
SRTP [9].
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; nor does it 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 and 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.
ISO Plain Language
On this page
§1Introduction
Text is an important component of any multimedia communication system. Like audio, the transport of text can benefit from the use of redundancy in order to improve reliability and the end-user experience.
RFC 2198 defines an RTP payload format for redundant audio data, and the format defined there is quite suitable for providing redundancy for text as well as audio. RFC 4103 specifies one usage of RFC 2198 and the text/red MIME type for the transport of redundant text data.
This memo provides the MIME sub-type registration information for text/red. While it focuses on the use of this MIME sub-type in the Session Description Protocol, the application of the sub-type is not restricted to SDP. The abstract is explicit that red is short for redundant and that the actual RTP packetisation for this MIME type is specified in RFC 2198, so this document adds the naming, not the format.
Redundant text means sending a smaller copy of the text alongside the real thing, so a lost packet can be rebuilt. The format for that was already defined for audio; this RFC only adds the media type name for text.
§3The text/red Registration
One new MIME sub-type has been registered by IANA. The MIME media type name is text and the MIME subtype name is RED. The registration also records that interoperability considerations are none, that the published specification is RFC 2198, that the applications which use this media type are text streaming and conferencing tools, and that the intended usage is COMMON. The change controller is the AVT Working Group, delegated from the IESG.
Two restrictions govern how the type may be used. It is defined only for transfer via RTP, and it shall not be defined for a storage format. The encoding considerations section is included only because of the requirements in RFC 3555, and points back to those restrictions on usage.
The registration says the type is called text/red, that it is meant for live streaming over RTP, and that it is not a file format. RFC 2198 remains the document that says how the packets are built.
§3Required and Optional Parameters
The registration defines two required parameters. The first is rate, the RTP clock rate of the payload carried within the RTP packet. Typically this rate is 1000, but other rates may be specified, and it must be set equal to the clock rate of the text payload format carried as the primary encoding.
The second required parameter is pt, a comma-separated ordered list of RTP payload types enumerating the primary, secondary and further encodings in accordance with RFC 2198. Because a comma is a special character, the list must be a quoted string. For static payload types each list element is simply the type number. For dynamic payload types each list element maps the dynamic payload type number to an embedded MIME content-type specification for the payload format, using the format dynamic-payload-type "=" content-type.
If the content-type string includes a comma it must be a quoted string, and it may be quoted even when it does not include a comma. Because the content-type string is part of a list that must itself be a quoted string, the quotation marks must be quoted with backslash quoting as specified in RFC 2045, and that requirement is applied recursively if the content-type string itself contains a quoted string.
The optional parameters are ptime and maxptime, which are originally defined in RFC 2327 and RFC 3267 respectively.
Two parameters must always be given. The rate says how fast the text is clocked, usually 1000. The pt parameter lists, in order, the payload type of the main encoding and then the payload types of the redundant copies.
- rate (required)The RTP clock rate of the payload. Typically 1000, and it must equal the clock rate of the primary text encoding.
- pt (required)A quoted, comma-separated ordered list of payload types: the primary encoding first, then the redundant ones.
- ptime (optional)The time each packet is generated, originally defined in RFC 2327.
- maxptime (optional)The longest gap between packets, originally defined in RFC 3267.
§4Mapping to SDP Parameters
The information carried in the MIME media type specification has a specific mapping to fields in the Session Description Protocol, which is commonly used to describe RTP sessions. When SDP is used to specify a session employing the RFC 2198 format in a text session, the mapping is as follows. The MIME type, text, goes in the SDP m= line as the media name. The value of the parameter rate goes in a=rtpmap. The MIME subtype, RED, goes in a=rtpmap as the encoding name. The parameters ptime and maxptime go in the a=ptime and a=maxptime attributes respectively.
The pt parameter is mapped to an a=fmtp attribute by eliminating the parameter name and changing the commas to 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 used in that example are not present in the actual message encoding, but are present in the document only for readability. The level of redundancy is shown by the number of elements in the payload type list.
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 the content-type is done using the normal SDP procedures with a=rtpmap. For each redundancy payload type defined, the ordering of the primary and redundancy encodings is fixed; if more than one combination of primary and redundancy encodings is desired, multiple redundancy payload types need to be defined.
A session description says what media a stream carries. This section maps each part of the media type onto the right line of that description, and shows that the list of payload types becomes a slash-separated list in the format line.
| Field of the media type | Where it goes in SDP |
|---|---|
| Media type: text | The m= media name |
| Subtype: RED | The a=rtpmap encoding name |
| rate | a=rtpmap |
| ptime | a=ptime |
| maxptime | a=maxptime |
| pt | a=fmtp, with the commas changed to slashes |
§4An Example Session Description
The RFC gives a complete example of an SDP session that carries a redundant text stream. The media line announces a text session on port 11000 using RTP with two payload types. The first a=rtpmap line gives payload type 98 as the t140 text encoding at 1000 Hz. The second gives payload type 100 as the red encoding at 1000 Hz, and the a=fmtp line states that the redundancy stream uses payload type 98 as its own copy.
Read together, the example describes a session whose primary text is sent in payload type 98 and whose redundant copy is carried in payload type 100.
This short session description shows the whole mechanism: one payload type carries the text, another carries the redundant copy of it, and the format line says which one to copy.
m=text 11000 RTP/AVP 98 100
a=rtpmap:98 t140/1000
a=rtpmap:100 red/1000
a=fmtp:100 98/98§5Security Considerations
The security considerations listed in RFC 2198 apply. The RFC adds that text data, perhaps even more so than audio data, is susceptible to unwanted modification that may lead to undesired results. To prevent modification of the primary, secondary or header information, payload integrity protection over at least the complete RTP packet is recommended, for example using SRTP as specified in RFC 3711.
Text can be altered in ways that cause real harm, so the RFC recommends protecting the whole packet, for example with SRTP. The rest of the security guidance comes from the redundant audio document it builds on.