RFC 4102 PROPOSED STANDARD MULTIMEDIA · MIME · REAL-TIME

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.

On rfc-editor.org ↗
PUBLISHED
June 2005
AUTHORS
P. Jones
STREAM
IETF
UPDATED BY
RFC 6354 — Forward-Shifted RTP Redundancy Payload Support
MIME SUBTYPE
RED
TYPICAL CLOCK RATE
1000
REQUIRED PARAMETERS
rate and pt
OPTIONAL PARAMETERS
ptime and maxptime
USAGE RESTRICTION
Transfer via RTP only, not a storage format
PACKETISATION SPECIFIED IN
RFC 2198
DOI
10.17487/RFC4102
ERRATA
Reported errata

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
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
PROBLEMText sent over a real-time transport can be lost like any other packet, and the RFC for redundant audio does not itself tell applications how to label redundant text.
MECHANISMThe RFC registers the MIME sub-type text/red, whose name stands for redundant, with a rate parameter for the clock rate and a pt parameter listing the primary and secondary payload types, and it shows how those fields map into a Session Description Protocol session description.
WHY IT MATTERSText streaming and conferencing tools gained a registered media type that says a stream carries redundant copies, with the packetisation itself left to RFC 2198.

§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.

THE PARAMETERS OF THE text/red MEDIA TYPE
  • 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.

WHERE EACH MEDIA TYPE FIELD GOES IN A SESSION DESCRIPTION
Field of the media typeWhere it goes in SDP
Media type: textThe m= media name
Subtype: REDThe a=rtpmap encoding name
ratea=rtpmap
ptimea=ptime
maxptimea=maxptime
pta=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.

THE EXAMPLE SESSION DESCRIPTION FROM RFC 4102 SECTION 4
Example SDP
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.

§7References