RFC 4040

RTP Payload Format for a 64 kbit/s Transparent Call

πŸ“… published April 2005, from ietf

RFC 4040 πŸŽ€

RFC 4040: RTP Payload Format for a 64 kbit/s Transparent Call πŸ’–

Okay bestie, this one is a whole vibe πŸ’… It's about carrying raw 64 kbit/s channel data through RTP without touching it, basically no edits, just vibes πŸ¦‹

  • Network Working Group 🌸
  • Request for Comments: 4040
  • Author: R. Kreuter, Siemens AG ✨
  • Category: Standards Track πŸ‘‘
  • Date: April 2005 🌈

Status of This Memo πŸ“œ

So this document is an Internet standards track protocol for the Internet community 🫢 It's also asking everyone 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 your whole group chat πŸ’œ

Copyright (C) The Internet Society (2005).

Abstract πŸ’–

This doc explains how to carry 64 kbit/s channel data transparently in RTP packets, using a pseudo-codec called "Clearmode" 🧚 It also registers a related MIME type called "audio/clearmode" πŸŽ€

"Clearmode" is a basic feature of VoIP Media Gateways, so it's a big deal 😭

Table of Contents 🌈

   1.  Introduction..................................................  2
   2.  Conventions Used in This Document.............................  2
   3.  64 kbit/s Data Stream Handling and RTP Header Parameters......  3
   4.  IANA Considerations...........................................  3
   5.  Mapping to Session Description Protocol (SDP) Parameters......  5
   6.  Security Considerations.......................................  5
   7.  References....................................................  6
       7.1. Normative References.....................................  6
       7.2. Informative References...................................  6
   8.  Acknowledgements..............................................  7

1. Introduction πŸŽ€

Okay so VoIP Media Gateways need to carry every possible data stream that analog terminals or integrated services digital network (ISDN) terminals make, and they need to do it over an IP network 🌸 In this doc, a VoIP Media Gateway is a device that converts a (digital or analog) linear data stream into a digital packetized data stream, or the other way around πŸ”„ If you want the basics of how a Media Gateway based network is built, check out RFC 2719 [10] πŸ¦‹

Usually a VoIP Media Gateway does some processing on the data it converts, besides packetization or depacketization. Think echo cancellation or dual tone multifrequency (DTMF) detection, and especially coding/decoding 🎢 But there's a whole class of data streams that doesn't rely on or allow any data processing inside the VoIP Media Gateway except for packetization or depacketization. ISDN data terminals, i.e., will produce data streams that are not compatible with a non-linear encoding as used for voice πŸ’€

So for these applications, there's a real need for a transparent relay of 64 kbit/s data streams in real-time transport protocol (RTP) [4] packets 🫢 People often call this "clear-channel data" or "64 kbit/s unrestricted" ✨ No encoder/decoder is needed in that case, but a unique RTP payload type is necessary, and a related MIME type is to be registered for signaling purposes πŸ”₯

Clearmode is not restricted to the examples above, honestly. It can be used by any application that doesn't need a special encoding/decoding for transfer via an RTP connection 🌈

This payload format document describes a pseudo-codec called "Clearmode", for sample oriented 64 kbit/s data streams with 8 bits per sample 🧚 It's in accordance with RFC 2736 [1], which gives a guideline for writing new RTP payload formats πŸ“œ

Examples of the current use of Clearmode are transferring "ISDN 7 kHz voice" and "ISDN data" in VoIP Media Gateways πŸŽ€

This document also serves as the MIME type registration according to RFC 2045 [2] and RFC 2048 [3], which defines the procedures for registering new MIME types within the IETF tree πŸ’…

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 [8] 🫢

3. 64 kbit/s Data Stream Handling and RTP Header Parameters πŸ¦‹

Clearmode doesn't use any encoding or decoding. It just does packetization 🌸

Clearmode assumes the data is sample oriented, with one octet (8 bits) per sample πŸ”₯ There's no restriction on the number of samples per packet other than the 64 kbyte limit imposed by the IP protocol πŸ’œ The number of samples SHOULD be less than the path maximum transmission unit (MTU) minus combined packet header length πŸ“ If the environment is expected to have tunnels or security encapsulation as part of operation, the number of samples SHOULD be reduced to make room for the extra header space πŸ™ˆ

The payload packetization/depacketization for Clearmode is similar to the Pulse Code Modulation (PCMU or PCMA) handling described in RFC 3551 [5] 🎢 Each Clearmode octet SHALL be octet-aligned in an RTP packet 🧚 The sign bit of each octet SHALL correspond to the most significant bit of the octet in the RTP packet πŸ’–

A sample rate of 8000 Hz MUST be used 🌈 This works out to a 64 kbit/s transmission rate per channel ✨

The Timestamp SHALL be set as described in RFC 3550 [4] ⏰

The marker bit is always zero, and silence suppression doesn't apply to Clearmode data streams 🀍

The payload type is dynamically assigned, so it isn't presented in this document πŸŽ€

RTP header fields not mentioned here SHALL be used as specified in RFC 3550 [4] and any applicable profile πŸ’…

This document specifies the use of RTP over unicast and multicast UDP, as well as TCP 🌊 (This doesn't rule out using this definition when RTP is carried by other lower-layer protocols 🧚)

4. IANA Considerations πŸ“‹

This document registers the following MIME subtype: audio/clearmode πŸŽ€

Here's the registration template, copied exactly as written:

   To: ietf-types@iana.org

   Subject: Registration of MIME media type audio/clearmode

   MIME media type name: audio
   MIME subtype name: clearmode

   Required parameters: none

   Optional parameters: ptime, maxptime

             "ptime" gives the length of time in milliseconds
             represented by the media in a packet, as described in RFC
             2327 [6].

             "maxptime" represents the maximum amount of media, which
             can be encapsulated in each packet, expressed as time in
             milliseconds, as described in RFC 3267 [9].

   Encoding considerations:

             This type is only defined for transfer via RTP [4].

   Security considerations:

             See Section 6 of RFC 4040

   Interoperability considerations: none

   Published specification: RFC 4040

   Applications, which use this media type:

             Voice over IP Media Gateways, transferring "ISDN 64 kb/s
             data", "ISDN 7 kHz voice", or other 64 kbit/s data streams
             via an RTP connection

             Note: the choice of the "audio" top-level MIME type was
             made because the dominant uses of this pseudo-codec are
             expected to telephony and voice-gateway-related.  The
             "audio" type allows the use of sharing of the port in the
             SDP "m=" line with codecs such as audio/g711 [6], [7], for
             one example.  This sharing is an important application and
             would not be possible otherwise.

   Additional information: none

   Intended usage: COMMON

   Author/Change controller:

             IETF Audio/Video transport working group
             delegated from the IESG

5. Mapping to Session Description Protocol (SDP) Parameters 🎢

Parameters get mapped to SDP [6] in a standard way, so nothing too wild here ✨

  • The MIME type (audio) goes in SDP "m=" as the media name πŸŽ€
  • The MIME subtype (clearmode) goes in SDP "a=rtpmap" as the encoding name 🧚
  • The optional parameters "ptime" and "maxptime" go in the SDP "a=ptime" and "a=maxptime" attributes, respectively πŸ’–

Here's an example mapping:

audio/clearmode; ptime=10

m=audio 12345 RTP/AVP 97
a=rtpmap:97 CLEARMODE/8000
a=ptime:10

Also, the payload format (encoding) names defined in the RTP Profile are commonly shown in upper case, while MIME subtypes are commonly shown in lower case 🌈 Both names are case-insensitive in both places 🫢

6. Security Considerations πŸ”

Implementations using the payload format defined in this specification are subject to the security considerations discussed in RFC 3550 [4] πŸ”’ This payload format doesn't specify any different security services, because its main job is to add a transparent transport for a 64 kbit/s data stream πŸ’…

Confidentiality of the media streams is achieved by encryption, for example by applying the Secure RTP profile [11] πŸ”

As with any IP-based protocol, a receiver can get overloaded just from receiving too many packets, whether they're wanted or not 🚨

So, in some circumstances, a receiver may be overloaded simply by the receipt of too many packets, either desired or undesired 😭 Network-layer authentication MAY be used to discard packets from undesired sources, but the processing cost of the authentication itself may be too high πŸ’€ Overload can also happen if the sender chooses to use a smaller packetization period than the receiver can process πŸ™ˆ The ptime parameter can be used to negotiate an appropriate packetization during session setup 🀝

In general, RTP is not an appropriate transfer protocol for reliable octet streams, and TCP is better in those cases 🧚 Besides that, packet loss due to congestion is as much an issue for clearmode as it is for other payload formats 🌧️ For a discussion of this issue, refer to RFC 3551 [5], section 2 πŸ“š

Author's Address πŸŽ€

Okay bestie, the author is Ruediger Kreuter from Siemens AG, based in Munich, Germany. Here's the full mailing block so you can find him:

Ruediger Kreuter
Siemens AG
81730 Munich, Germany

EMail: ruediger.kreuter@siemens.com

Copyright (C) The Internet Society (2005). The vibes are very official, but the basics are simple. This document is subject to the rights, licenses and restrictions in BCP 78, and except as set forth there, the authors keep all their rights. πŸ“œ

The document and everything in it is provided on an "AS IS" basis. The contributor, the organization they represent or are sponsored by (if any), the Internet Society, and the Internet Engineering Task Force all say, in caps, so nobody can miss it:

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.

Basically, nobody is promising this is perfect or safe for every use. πŸ™ˆ


Intellectual Property πŸ¦‹

The IETF doesn't pick a side on whether any Intellectual Property Rights or other rights that someone might claim over the technology in this document are valid, how far they reach, or whether anyone can get a license for them. It also doesn't claim it has searched for those rights on its own. If you want the rules for rights in RFC documents, check BCP 78 and BCP 79. πŸ”

Copies of IPR disclosures sent to the IETF Secretariat, plus any assurances of licenses, and the results of any attempt to get a general license or permission for implementers or users, can be found in the IETF's online IPR repository at http://www.ietf.org/ipr. ✨

The IETF also invites anyone who knows about a copyright, patent, patent application, or other proprietary right that might cover technology needed to implement this standard to tell them. Send that info to the IETF at ietf-ipr@ietf.org. πŸ’…


Acknowledgement 🌸

Funding for the RFC Editor function is currently provided by the Internet Society. Thank you to the people keeping these documents running! 🫢

πŸ“¦ where this page comes from