Network Working Group H. Desineni Internet-Draft Qualcomm Updates: 4788 (if approved) Q. Xie Expires: July 15, 2007 Motorola January 11, 2007 RTP payload format for EVRC-WB codec and MIME updates for EVRC-B codec draft-ietf-avt-rtp-evrc-wb-00.txt Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on July 15, 2007. Copyright Notice Copyright (C) The Internet Society (2007). Abstract This document specifies real-time transport protocol (RTP) payload formats to be used for the EVRC wideband codec (EVRC-WB) and updates the MIME registrations for EVRC-B codec. Several media type registrations are included for EVRC-WB RTP payload formats. In addition, a file format is specified for transport of EVRC-WB speech data in storage mode applications such as e-mail. Desineni & Xie Expires July 15, 2007 [Page 1] Internet-Draft EVRC-WB RTP Payload Format January 2007 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Background . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4. EVRC-WB codec . . . . . . . . . . . . . . . . . . . . . . . . 6 5. RTP header usage . . . . . . . . . . . . . . . . . . . . . . . 7 6. Payload format . . . . . . . . . . . . . . . . . . . . . . . . 8 7. Congestion Control Considerations . . . . . . . . . . . . . . 9 8. Storage format for EVRC-WB Codec . . . . . . . . . . . . . . . 10 9. Media type definitions . . . . . . . . . . . . . . . . . . . . 11 9.1. Registration of Media Type EVRCWB . . . . . . . . . . . . 11 9.2. Registration of Media Type EVRCWB0 . . . . . . . . . . . . 13 9.3. Registration of Media Type EVRCWB1 . . . . . . . . . . . . 15 9.4. Updated Registration of Media Type EVRCB . . . . . . . . . 17 9.5. Updated Registration of Media Type EVRCB0 . . . . . . . . 19 9.6. Updated Registration of Media Type EVRCB1 . . . . . . . . 20 10. EVRC-B RFC XXXX Interoperability with legacy EVRC-B (RFC 4788) implementations . . . . . . . . . . . . . . . . . . . . 23 11. Mapping MIME Parameters into SDP . . . . . . . . . . . . . . . 24 12. Offer-Answer Model Considerations for EVRC-WB . . . . . . . . 25 13. Offer-Answer Model Considerations for EVRC-B . . . . . . . . . 27 14. Declarative SDP Considerations . . . . . . . . . . . . . . . . 28 15. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 16. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33 17. Security Considerations . . . . . . . . . . . . . . . . . . . 34 18. References . . . . . . . . . . . . . . . . . . . . . . . . . . 35 18.1. Normative References . . . . . . . . . . . . . . . . . . . 35 18.2. Informative References . . . . . . . . . . . . . . . . . . 35 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 37 Intellectual Property and Copyright Statements . . . . . . . . . . 38 Desineni & Xie Expires July 15, 2007 [Page 2] Internet-Draft EVRC-WB RTP Payload Format January 2007 1. Introduction This document specifies the payload formats for packetization of EVRC-WB encoded speech signals into the real-time transport protocol (RTP).It defines support for the header-free, interleaved/bundled and compact bundle packet formats for the EVRC-WB codec as well as discontinuous transmission (DTX) support for EVRC-WB encoded speech transported via RTP.EVRC-WB codec offers better speech quality than EVRC and EVRC-B codecs. EVRC-WB belongs to the EVRC family of codecs.This document also updates the MIME registrations for EVRC-B codec. Desineni & Xie Expires July 15, 2007 [Page 3] Internet-Draft EVRC-WB RTP Payload Format January 2007 2. Conventions 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 [1]. Desineni & Xie Expires July 15, 2007 [Page 4] Internet-Draft EVRC-WB RTP Payload Format January 2007 3. Background EVRC-WB is a wideband extension of EVRC-B [4] speech codec developed in 3GPP2 with support for discontinuous transmission (DTX). It provides enhanced (wideband) voice quality. EVRC-WB codec operates on 20 ms frames, and the default sampling rate is 16 kHz. Input and output at 8 kHz sampling rate is also supported. EVRC-WB modes are defined in [5]. EVRC-WB mode 4 is interoperable with EVRC-B. EVRC-WB provides a standardized solution for packetized voice applications that allow transitions between narrowband and wideband telephony. The most important service addressed is IP telephony. Target devices can be IP phones or VoIP handsets, media gateways, voice messaging servers, etc. Desineni & Xie Expires July 15, 2007 [Page 5] Internet-Draft EVRC-WB RTP Payload Format January 2007 4. EVRC-WB codec EVRC-WB codec operates on 20 ms frames. It produces output frames of one of the three different sizes: 171 bits, 80 bits or 16 bits. In addition, there are two zero bit codec frame types: null frames and erasure frames. The default sampling rate is 16 kHz. Input and output at 8 kHz sampling rate is also supported. The frame type values and size of the associated codec data frame are listed in the table below: Value Rate Total codec data frame size (in octets) -------------------------------------------------------------------- 0 Blank 0 (0 bit) 1 1/8 2 (16 bits) 2 1/4 5 (40 bits; not valid for EVRC-WB) 3 1/2 10 (80 bits) 4 1 22 (171 bits; 5 bits padded at the end) 5 Erasure 0 (SHOULD NOT be transmitted by sender) Desineni & Xie Expires July 15, 2007 [Page 6] Internet-Draft EVRC-WB RTP Payload Format January 2007 5. RTP header usage The format of the RTP header is specified in RFC 3550 [6]. The EVRC-WB payload formats (Section 6) use the fields of the RTP header in a manner consistent with RFC 3550. EVRC-WB has also the capability to operate with 8 kHz sampled input/ output signals. The decoder does not require a priori knowledge about the sampling rate of the original signal at the input of the encoder. The decoder output can be at 8kHz or 16kHz regardless of the sampling rate used at the encoder. Therefore, depending on the implementation and the audio electro acoustic capabilities of the devices, the input of the encoder and/or the output of the decoder can be configured at 8 kHz; however, a 16 kHz RTP clock rate MUST always be used. The RTP timestamp is increased by 320 for each 20 milliseconds. The assignment of an RTP payload type for the payload formats described in Section 6 is outside the scope of the document, and will not be specified here. It is expected that the RTP profile under which this payload format is being used will assign a payload type for this codec or specify that the payload type is to be bound dynamically (see Section 11). Desineni & Xie Expires July 15, 2007 [Page 7] Internet-Draft EVRC-WB RTP Payload Format January 2007 6. Payload format Three RTP packet formats are supported for the EVRC-WB codec - the interleaved/bundled packet format, the header-free packet format and the compact bundled packet format. For all these formats, the operational details and capabilities, such as ToC, interleaving, DTX, and bundling, of EVRC-WB are exactly the same as those of EVRC-B, as defined in [4], except that the mode change request field in the ToC MUST be interpreted according to the definition of the RATE_REDUC parameter as defined in EVRC-WB [5]. Desineni & Xie Expires July 15, 2007 [Page 8] Internet-Draft EVRC-WB RTP Payload Format January 2007 7. Congestion Control Considerations Congestion control for RTP SHALL be used in accordance with RFC 3550 [6], and with any applicable RTP profile; e.g., RFC 3551 [13]. Due to the header overhead, the number of frames encapsulated in each RTP packet influences the overall bandwidth of the RTP stream. Packing more frames in each RTP packet can reduce the number of packets sent and hence the header overhead, at the expense of increased delay and reduced error robustness. Desineni & Xie Expires July 15, 2007 [Page 9] Internet-Draft EVRC-WB RTP Payload Format January 2007 8. Storage format for EVRC-WB Codec The storage format is used for storing EVRC-WB encoded speech frames, e.g., as a file or e-mail attachment. The file begins with a magic number to identify the vocoder that is used. The magic number for EVRC-WB corresponds to the ASCII character string "#!EVCWB\n", i.e., "0x23 0x21 0x45 0x56 0x43 0x57 0x42 0x0A". The codec data frames are stored in consecutive order, with a single TOC entry field, extended to one octet, prefixing each codec data frame. The ToC field is extended to one octet by setting the four most significant bits of the octet to zero. For example, a ToC value of 4 (a full-rate frame) is stored as 0x04. See Section 4 for the mapping from frame type to ToC value. Speech frames lost in transmission and non-received frames MUST be stored as erasure frames to maintain synchronization with the original media. Desineni & Xie Expires July 15, 2007 [Page 10] Internet-Draft EVRC-WB RTP Payload Format January 2007 9. Media type definitions 9.1. Registration of Media Type EVRCWB Type name: audio Subtype names: EVRCWB Required parameters: none Optional parameters: mode-set-recv: A subset of EVRC-WB modes. Possible values are a comma separated list of modes from the set: 0,4,7 (see Table XX [5]). A decoder can use this to signal an encoder to limit its modes to the specified subset. Absence of this parameter signals a set of all EVRC-WB modes. sendmode: A mode of EVRC-WB codec. Encoder can use this to signal its current mode of operation. Possible values are a comma separated list of modes from the set: 0,4,7 (see Table XX [5]). ptime: see RFC 4566 [10]. maxptime: The maximum amount of media which can be encapsulated in each packet, expressed as time in milliseconds. The time MUST be calculated as the sum of the time the media present in the packet represents. The time SHOULD be a multiple of the duration of a single codec data frame (20 msec). If not signaled, the default maxptime value MUST be 200 milliseconds. maxinterleave: Maximum number for interleaving length (field LLL in the Interleaving Octet). The interleaving lengths used in the entire session MUST NOT exceed this maximum value. If not signaled, the maxinterleave length MUST be 5. silencesupp: see Section 6.1 in [2] dtxmax: see Section 6.1 in [2] dtxmin: see Section 6.1 in [2] hangover: see Section 6.1 in [2] Encoding considerations: This media type is framed binary data (see RFC 4288, Section 4.8) and is defined for transfer of EVRC-WB encoded data via RTP using the Desineni & Xie Expires July 15, 2007 [Page 11] Internet-Draft EVRC-WB RTP Payload Format January 2007 Interleaved/Bundled packet format specified in RFC 3558 [14]. Security considerations: See Section 17 of RFC XXXX. Interoperability considerations: none Published specification: The EVRC-WB vocoder is specified in 3GPP2 C.S0014-C [5]. Transfer method with Interleaved/Bundled packet format via RTP is specified in RFC 3558 and RFC XXXX. 3GPP2 C.S0050-A, 3GPP2 File Formats for Multimedia Services. 3GPP2 specifications are publicly accessible at http://www.3gpp2.org Applications that use this media type: It is expected that many VoIP applications (as well as mobile applications) will use this type. Additional information: The following information applies for storage format only. Magic number: #!EVCWB\n (see Section 8 of RFC XXXX) File extensions: evw, EVW Macintosh file type code: none Object identifier or OID: none EVRC-WB speech frames may also be stored in the file format "3g2" defined in 3GPP2 C.S0050-A, which is identified using the media types "audio/3gpp2" or "video/3gpp2" registered by RFC4393. Person & email address to contact for further information: Harikishan Desineni Intended usage: COMMON Restrictions on usage: This media type may be used with RTP framing (RFC 3550 [6]) and as a storage format. When used with RTP, the procedures in Section 6 MUST be followed. In all other contexts, the storage format defined in Desineni & Xie Expires July 15, 2007 [Page 12] Internet-Draft EVRC-WB RTP Payload Format January 2007 Section 8 MAY be used. Author: Harikishan Desineni Change controller: IETF Audio/Video Transport working group delegated from the IESG. 9.2. Registration of Media Type EVRCWB0 Type name: audio Subtype names: EVRCWB0 Required parameters: Optional parameters: mode-set-recv: A subset of EVRC-WB modes. Possible values are a comma separated list of modes from the set: 0,4,7 (see Table XX [5]). A decoder can use this to signal an encoder to limit its modes to the specified subset. Absence of this parameter signals a set of all EVRC-WB modes. sendmode: A mode of EVRC-WB codec. Encoder can use this to signal its current mode of operation. Possible values are a comma separated list of modes from the set: 0,4,7 (see Table XX [5]). ptime: see RFC 4566 [10]. silencesupp: see Section 6.1 in [2] dtxmax: see Section 6.1 in [2] dtxmin: see Section 6.1 in [2] hangover: see Section 6.1 in [2] Encoding considerations: This media type is framed binary data (see RFC 4288, Section 4.8) and is defined for transfer of EVRC-WB encoded data via RTP using the Header-Free packet format specified in RFC 3558. Security considerations: See Section 17 of RFC XXXX. Desineni & Xie Expires July 15, 2007 [Page 13] Internet-Draft EVRC-WB RTP Payload Format January 2007 Interoperability considerations: none Published specification: The EVRC-WB vocoder is specified in 3GPP2 C.S0014-C [5]. Transfer method with header free packet format via RTP is specified in RFC 3558 and RFC XXXX. 3GPP2 C.S0050-A, 3GPP2 File Formats for Multimedia Services. 3GPP2 specifications are publicly accessible at http://www.3gpp2.org Applications that use this media type: It is expected that many VoIP applications (as well as mobile applications) will use this type. Additional information: The following information applies for storage format only. Magic number: #!EVCWB\n (see Section 8 of RFC XXXX) File extensions: evw, EVW Macintosh file type code: none Object identifier or OID: none EVRC-WB speech frames may also be stored in the file format "3g2" defined in 3GPP2 C.S0050-A, which is identified using the media types "audio/3gpp2" or "video/3gpp2" registered by RFC4393. Person & email address to contact for further information: Harikishan Desineni Intended usage: COMMON Restrictions on usage: This media type may be used with RTP framing (RFC 3550) and as a storage format. When used with RTP, the procedures in Section 6 MUST be followed. In all other contexts, the storage format defined in Section 8 MAY be used. Author: Desineni & Xie Expires July 15, 2007 [Page 14] Internet-Draft EVRC-WB RTP Payload Format January 2007 Harikishan Desineni Change controller: IETF Audio/Video Transport working group delegated from the IESG. 9.3. Registration of Media Type EVRCWB1 Type name: audio Subtype names: EVRCWB1 Required parameters: Optional parameters: mode-set-recv: A subset of EVRC-WB modes. Possible values are a comma separated list of modes from the set: 0,4,7 (see Table XX [5]). A decoder can use this to signal an encoder to limit its modes to the specified subset. Absence of this parameter signals a set of all EVRC-WB modes. sendmode: A mode of EVRC-WB codec. Encoder can use this to signal its current mode of operation. Possible values are a comma separated list of modes from the set: 0,4,7 (see Table XX [5]). ptime: see RFC 4566 [10]. maxptime: The maximum amount of media which can be encapsulated in each packet, expressed as time in milliseconds. The time MUST be calculated as the sum of the time the media present in the packet represents. The time SHOULD be an integer multiple of the duration of a single codec data frame (20 msec). If not signaled, the default maxptime value MUST be 200 milliseconds. fixedrate: Indicates the EVRC-WB rate of the session while in single rate operation. Valid values include: 0.5 and 1, where a value of 0.5 indicates the 1/2 rate while a value of 1 indicates the full rate. If this parameter is not present, 1/2 rate is assumed. silencesupp: see Section 6.1 in [2] dtxmax: see Section 6.1 in [2] dtxmin: see Section 6.1 in [2] hangover: see Section 6.1 in [2] Desineni & Xie Expires July 15, 2007 [Page 15] Internet-Draft EVRC-WB RTP Payload Format January 2007 Encoding considerations: This media type is framed binary data (see RFC 4288, Section 4.8) and is defined for transfer of EVRC-WB encoded data via RTP using the compact bundle packet format specified in RFC 4788. Security considerations: See Section 17 of RFC XXXX. Interoperability considerations: none Published specification: The EVRC-WB vocoder is specified in 3GPP2 C.S0014-C. Transfer method with compact bundled packet format via RTP is specified in RFC 4788 and RFC XXXX. 3GPP2 C.S0050-A, 3GPP2 File Formats for Multimedia Services. 3GPP2 specifications are publicly accessible at http://www.3gpp2.org Applications that use this media type: It is expected that many VoIP applications (as well as mobile applications) will use this type. Additional information: The following information applies for storage format only. Magic number: #!EVCWB\n (see Section 8 of RFC XXXX) File extensions: evw, EVW Macintosh file type code: none Object identifier or OID: none EVRC-WB speech frames may also be stored in the file format "3g2" defined in 3GPP2 C.S0050-A, which is identified using the media types "audio/3gpp2" or "video/3gpp2" registered by RFC 4393. Person & email address to contact for further information: Harikishan Desineni Intended usage: COMMON Restrictions on usage: Desineni & Xie Expires July 15, 2007 [Page 16] Internet-Draft EVRC-WB RTP Payload Format January 2007 This media type may be used with RTP framing (RFC 3550 [6]) and as a storage format. When used with RTP, the procedures in Section 6 MUST be followed. In all other contexts, the storage format defined in Section 8 MAY be used. Author: Harikishan Desineni Change controller: IETF Audio/Video Transport working group delegated from the IESG. 9.4. Updated Registration of Media Type EVRCB Type name: audio Subtype names: EVRCB Required parameters: none Optional parameters: recvmode: A mode of EVRC-B codec. A decoder can use this to signal an encoder to operate in the specified mode. Possible values are a comma separated list of modes from the set: 0..7 (see encoder operating point column in Table 2-6 [4]). sendmode: A mode of EVRC-B codec. An encoder can use this to signal its current mode of operation. Possible values are a comma separated list of modes from the set: 0..7 (see encoder operating point column in Table 2-6 [4]). ptime: see RFC 4566 maxptime: The maximum amount of media which can be encapsulated in each packet, expressed as time in milliseconds. The time MUST be calculated as the sum of the time the media present in the packet represents. The time SHOULD be a multiple of the duration of a single codec data frame (20 msec). If not signaled, the default maxptime value MUST be 200 milliseconds. maxinterleave: Maximum number for interleaving length (field LLL in the Interleaving Octet). The interleaving lengths used in the entire session MUST NOT exceed this maximum value. If not signaled, the maxinterleave length MUST be 5. silencesupp: see Section 6.1 for definition. If this parameter is Desineni & Xie Expires July 15, 2007 [Page 17] Internet-Draft EVRC-WB RTP Payload Format January 2007 not present, the default value 1 MUST be assumed. dtxmax: see Section 6.1 of [2] dtxmin: see Section 6.1 of [2] hangover: see Section 6.1 of [2] Encoding considerations: This media type is framed binary data (see RFC 4288, Section 4.8) and is defined for transfer of EVRC-B encoded data via RTP using the Interleaved/Bundled packet format specified in RFC 3558. Security considerations: See Section 9 of RFC 4788. Interoperability considerations: none Published specification: The EVRC-B vocoder is specified in 3GPP2 C.S0014-B. Transfer method with Interleaved/Bundled packet format via RTP is specified in RFC 3558,RFC XXXX and RFC 4788. Applications that use this media type: It is expected that many VoIP applications (as well as mobile applications) will use this type. Additional information: The following information applies for storage format only. Magic number: #!EVRC-B\n (see Section 5 of RFC 4788) File extensions: evb, EVB Macintosh file type code: none Object identifier or OID: none Person & email address to contact for further information: Harikishan Desineni 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: Desineni & Xie Expires July 15, 2007 [Page 18] Internet-Draft EVRC-WB RTP Payload Format January 2007 Qiaobing Xie / Harikishan Desineni Change controller: IETF Audio/Video Transport working group delegated from the IESG. 9.5. Updated Registration of Media Type EVRCB0 Type name: audio Subtype names: EVRCB0 Required parameters: none Optional parameters: recvmode: A mode of EVRC-B codec. A decoder can use this to signal an encoder to operate in the specified mode. Possible values are a comma separated list of modes from the set: 0..7 (see encoder operating point column in Table 2-6 [4]). sendmode: A mode of EVRC-B codec. An encoder can use this to signal its current mode of operation. Possible values are a comma separated list of modes from the set: 0..7 (see encoder operating point column in Table 2-6 [4]). silencesupp: see Section 6.1 for definition. If this parameter is not present, the default value 1 MUST be assumed. dtxmax: see Section 6.1 of [2] dtxmin: see Section 6.1 of [2] hangover: see Section 6.1 of [2] Encoding considerations: This media type is framed binary data (see RFC 4288, Section 4.8) and is defined for transfer of EVRC-B encoded data via RTP using the Header-Free packet format specified in RFC 3558. Security considerations: See Section 9 of RFC 4788. Interoperability considerations: none Published specification: The EVRC-B vocoder is specified in 3GPP2 C.S0014-B. Transfer method Desineni & Xie Expires July 15, 2007 [Page 19] Internet-Draft EVRC-WB RTP Payload Format January 2007 with Header-Free packet format via RTP is specified in RFC 3558, RFC 4788 and RFC XXXX. Applications that use this media type: It is expected that many VoIP applications (as well as mobile applications) will use this type. Additional information: none Person & email address to contact for further information: Harikishan Desineni 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: Qiaobing Xie / Harikishan Desineni Change controller: IETF Audio/Video Transport working group delegated from the IESG. 9.6. Updated Registration of Media Type EVRCB1 Type name: audio Subtype names: EVRCB1 Required parameters: none Optional parameters: recvmode: A mode of EVRC-B codec. A decoder can use this to signal an encoder to operate in the specified mode. Possible values are a comma separated list of modes from the set: 0..7 (see encoder operating point column in Table 2-6 [4]). sendmode: A mode of EVRC-B codec. An encoder can use this to signal its current mode of operation. Possible values are a comma separated list of modes from the set: 0..7 (see encoder operating point column Desineni & Xie Expires July 15, 2007 [Page 20] Internet-Draft EVRC-WB RTP Payload Format January 2007 in Table 2-6 [4]). silencesupp: see Section 6.1 for definition. If this parameter is not present, the default value 1 MUST be assumed. dtxmax: see Section 6.1 of [2] dtxmin: see Section 6.1 of [2] hangover: see Section 6.1 of [2] Encoding considerations: This media type is framed binary data (see RFC 4288, Section 4.8) and is defined for transfer of EVRC-B encoded data via RTP using the compact bundle packet format specified in RFC 4788. Security considerations: See Section 9 of RFC 4788. Interoperability considerations: none Published specification: The EVRC-B vocoder is specified in 3GPP2 C.S0014-B. Transfer method with compact bundle packet format via RTP is specified in RFC 4788 and RFC XXXX. Applications that use this media type: It is expected that many VoIP applications (as well as mobile applications) will use this type. Additional information: none Person & email address to contact for further information: Harikishan Desineni 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: Desineni & Xie Expires July 15, 2007 [Page 21] Internet-Draft EVRC-WB RTP Payload Format January 2007 Qiaobing Xie / Harikishan Desineni Change controller: IETF Audio/Video Transport working group delegated from the IESG. Desineni & Xie Expires July 15, 2007 [Page 22] Internet-Draft EVRC-WB RTP Payload Format January 2007 10. EVRC-B RFC XXXX Interoperability with legacy EVRC-B (RFC 4788) implementations This document adds new optional parameters "recvmode" and "sendmode" to the original EVRC-B payload subtypes "EVRCB", "EVRCB0" and "EVRCB1" defined in RFC 4788. Since the new parameters are receiver options, the existing RFC 4788 implementations will not send these parameters in SDP and will ignore if they are received. This will allow interoperability between RFC 4788 and RFC XXXX implementations of EVRC-B. For an example offer and answer exchange, see Section 15. Desineni & Xie Expires July 15, 2007 [Page 23] Internet-Draft EVRC-WB RTP Payload Format January 2007 11. Mapping MIME Parameters into SDP Information carried in the MIME media type specification has a specific mapping to fields in the Session Description Protocol (SDP) [10], which is commonly used to describe RTP sessions. When SDP is used to specify sessions employing EVRC-WB encoded speech, the mapping is as follows: The MIME type ("audio") goes in SDP "m=" as the media name. o The MIME subtype ("EVRCWB", "EVRCWB0" or "EVRCWB1") goes in SDP "a=rtpmap" as the encoding name. o The optional parameters "mode-set-recv" and "sendmode" (for subtypes EVRCWB, EVRCWB0 and EVRCWB1) go in the SDP "a=fmtp" attribute by copying them directly from the MIME media type string. o The optional parameters "ptime" and "maxptime" (for subtypes EVRCWB, EVRCWB1) go in the SDP "a=ptime" and "a=maxptime" attributes, respectively. o The optional parameter "maxinterleave" for subtype EVRCWB goes in the SDP "a=fmtp" attribute by copying it directly from the MIME media type string as "maxinterleave=value". o The optional parameter "fixedrate" for subtypes EVRCWB1 goes in "a=fmtp" attribute by copying it directly from the MIME media type string as "fixedrate=value". o The optional parameters "silencesupp", "dtxmax", "dtxmin", and "hangover" go in "a=fmtp" attribute by copying them directly from the MIME media type string as "silencesupp=value", "dtxmax=value", "dtxmin=value", and "hangover=value", respectively. o The optional parameters "recvmode" and "sendmode" (for subtypes EVRCB, EVRCB0 and EVRCB1) go in the SDP "a=fmtp" attribute by copying them directly from the MIME media type string. Desineni & Xie Expires July 15, 2007 [Page 24] Internet-Draft EVRC-WB RTP Payload Format January 2007 12. Offer-Answer Model Considerations for EVRC-WB The following considerations apply when using SDP offer-answer procedures [7] to negotiate the use of EVRC-WB payload in RTP: o Since EVRC-WB is an extension of EVRC-B, the offerer SHOULD announce EVRC-B support in its "m=audio" line, with EVRC-WB as the preferred codec. This will allow interoperability with an answerer which supports only EVRC-B. Below is an example of such an offer: m=audio 55954 RTP/AVP 98 99 a=rtpmap:98 EVRCWB0/16000 a=rtpmap:99 EVRCB0/8000 a=fmtp:98 mode-set-recv=0,4 sendmode=0 a=fmtp:99 recvmode=0 sendmode=4 If the answerer supports EVRC-WB then the answerer can keep the payload type 98 in its answer and the conversation can be done using EVRC-WB. Else, if the answerer supports only EVRC-B then the answerer will leave only the payload type 99 in its answer and the conversation will be done using EVRC-B. An example answer for the above offer: m=audio 55954 RTP/AVP 98 a=rtpmap:98 EVRCWB0/16000 a=fmtp:98 mode-set-recv=4 sendmode=4 o "mode-set-recv" is a uni-directional receive only parameter. o "sendmode" is a uni-directional send only parameter. o Using "sendmode", a sender can signal its current mode of operation. o An offerer can use "mode-set-recv" to request that the remote sender's encoder be limited to the list of modes signaled in "mode-set-recv". A remote sender MAY ignore "mode-set-recv" requests. o The parameters "maxptime" and "ptime" will in most cases not affect interoperability, however the setting of the parameters can affect the performance of the application. The SDP offer-answer handling of the "ptime" parameter is described in RFC3264 [7]. The "maxptime" parameter MUST be handled in the same way. Desineni & Xie Expires July 15, 2007 [Page 25] Internet-Draft EVRC-WB RTP Payload Format January 2007 o For a sendonly stream, "mode-set-recv" parameter is not useful and SHOULD NOT be used. o For a recvonly stream, "sendmode" parameter is not useful and SHOULD NOT be used. o For additional rules which MUST be followed while negotiating DTX parameters, see Section 6.8 in [2]. o Any unknown parameter in an SDP offer MUST be ignored by the receiver and MUST NOT be included in the SDP answer. Desineni & Xie Expires July 15, 2007 [Page 26] Internet-Draft EVRC-WB RTP Payload Format January 2007 13. Offer-Answer Model Considerations for EVRC-B See Section 6.8 of [2] for offer-answer usage of EVRC-B. The following are several additional considerations for EVRC-B. o "recvmode" is a uni-directional receive only parameter. o "sendmode" is a uni-directional send only parameter. o Using "recvmode", a receiver can signal the remote sender to operate its encoder in the specified mode. A remote sender MAY ignore "recvmode" requests. o Using "sendmode", a sender can signal its current mode of operation. o For a sendonly stream, "recvmode" parameter is not useful and SHOULD NOT be used. o For a recvonly stream, "sendmode" parameter is not useful and SHOULD NOT be used. Desineni & Xie Expires July 15, 2007 [Page 27] Internet-Draft EVRC-WB RTP Payload Format January 2007 14. Declarative SDP Considerations For declarative use of SDP in SAP [15] and RTSP [16] , the following considerations apply: o Any "maxptime" and "ptime" values should be selected with care to ensure that the session's participants can achieve reasonable performance. o The payload format configuration parameters are all declarative and a participant MUST use the configuration(s) that is provided for the session. More than one configuration may be provided if necessary by declaring multiple RTP payload types, however the number of types should be kept small. Desineni & Xie Expires July 15, 2007 [Page 28] Internet-Draft EVRC-WB RTP Payload Format January 2007 15. Examples Some example SDP session descriptions utilizing EVRC-WB and EVRC-B encodings follow. In these examples, long a=fmtp lines are folded to meet the column width constraints of this document. The backslash ("\") at the end of a line and the carriage return that follows it should be ignored. Note that MIME subtype names are case- insensitive. Parameter names are case-insensitive both in MIME types and in the mapping to the SDP a=fmtp attribute. Example usage of EVRCWB: m=audio 49120 RTP/AVP 97 98 a=rtpmap:97 EVRCWB/16000 a=rtpmap:98 EVRCB0/8000 a=fmtp:97 mode-set-recv=0,4 sendmode=0 a=fmtp:98 recvmode=0 sendmode=0 a=maxptime:120 Example usage of EVRCWB0: m=audio 49120 RTP/AVP 97 98 a=rtpmap:97 EVRCWB0/16000 a=rtpmap:98 EVRCB0/8000 a=fmtp:97 mode-set-recv=0,4 sendmode=0 a=fmtp:98 recvmode=0 sendmode=0 Example SDP answer from a media gateway requesting a terminal to limit its encoder operation to EVRC-WB mode 4. m=audio 49120 RTP/AVP 97 a=rtpmap:97 EVRCWB0/16000 a=fmtp:97 mode-set-recv=4 sendmode=4 Example usage of EVRCWB1: m=audio 49120 RTP/AVP 97 98 a=rtpmap:97 EVRCWB1/16000 a=rtpmap:98 EVRCB0/8000 a=fmtp:97 fixedrate=0.5 mode-set-recv=4 sendmode=7 a=fmtp:98 recvmode=7 sendmode=7 a=maxptime:100 Desineni & Xie Expires July 15, 2007 [Page 29] Internet-Draft EVRC-WB RTP Payload Format January 2007 Example usage of EVRCWB with DTX with silencesupp=1: m=audio 49120 RTP/AVP 97 98 a=rtpmap:97 EVRCWB/16000 a=rtpmap:98 EVRCB0/8000 a=fmtp:97 silencesupp=1 dtxmax=32 dtxmin=12 hangover=1 \ mode-set-recv=0,4 sendmode=0 a=fmtp:98 recvmode=0 sendmode=0 a=maxptime:120 Examples usage of EVRCWB with DTX with silencesupp=0: m=audio 49120 RTP/AVP 97 98 a=rtpmap:97 EVRCWB/16000 a=rtpmap:98 EVRCB0/8000 a=fmtp:97 silencesupp=0 dtxmax=32 dtxmin=12 hangover=1 \ mode-set-recv=0,4 sendmode=0 a=fmtp:98 recvmode=0 sendmode=0 a=maxptime:120 Example usage of EVRCB: m=audio 49120 RTP/AVP 97 a=rtpmap:97 EVRCB/8000 a=fmtp:97 recvmode=0 sendmode=4 a=maxptime:120 Example usage of EVRCB0: m=audio 49120 RTP/AVP 97 a=rtpmap:97 EVRCB0/8000 a=fmtp:97 recvmode=0 sendmode=4 Example usage of EVRCB1: m=audio 49120 RTP/AVP 97 a=rtpmap:97 EVRCB1/8000 a=fmtp:97 fixedrate=0.5 recvmode=7 sendmode=7 a=maxptime:100 Desineni & Xie Expires July 15, 2007 [Page 30] Internet-Draft EVRC-WB RTP Payload Format January 2007 Example offer answer exchange between EVRC-WB and legacy EVRC-B (RFC 4788): Offer: m=audio 55954 RTP/AVP 98 99 a=rtpmap:98 EVRCWB0/16000 a=rtpmap:99 EVRCB0/8000 a=fmtp:98 mode-set-recv=0,4 sendmode=0 a=fmtp:99 recvmode=0 sendmode=0 Answer: m=audio 55954 RTP/AVP 99 a=rtpmap:99 EVRCB0/8000 Example offer answer exchange between EVRC-WB and updated EVRC-B (RFC XXXX): Offer: m=audio 55954 RTP/AVP 98 99 a=rtpmap:98 EVRCWB0/16000 a=rtpmap:99 EVRCB0/8000 a=fmtp:98 mode-set-recv=0,4 sendmode=0 a=fmtp:99 recvmode=0 sendmode=0 Answer: m=audio 55954 RTP/AVP 99 a=rtpmap:99 EVRCB0/8000 a=fmtp:99 recvmode=0 sendmode=4 Desineni & Xie Expires July 15, 2007 [Page 31] Internet-Draft EVRC-WB RTP Payload Format January 2007 Example offer answer exchanges for interoperability between legacy (RFC XXXX) and updated EVRC-B(RFC 4788) implementations: Offer from an offer which supports updated EVRC-B (RFC XXXX) implementation: m=audio 55954 RTP/AVP 99 a=rtpmap:99 EVRCB0/8000 a=fmtp:99 recvmode=0 sendmode=4 Answer from an answerer which supports only legacy EVRC-B (RFC 4788) implementation: m=audio 55954 RTP/AVP 99 a=rtpmap:99 EVRCB0/8000 Offer from an offer which supports only legacy EVRC-B (RFC 4788) implementation: m=audio 55954 RTP/AVP 99 a=rtpmap:99 EVRCB0/8000 Answer from an answerer which supports updated EVRC-B (RFC XXXX) implementation: m=audio 55954 RTP/AVP 99 a=rtpmap:99 EVRCB0/8000 a=fmtp:99 recvmode=0 sendmode=4 Desineni & Xie Expires July 15, 2007 [Page 32] Internet-Draft EVRC-WB RTP Payload Format January 2007 16. IANA Considerations Three new MIME subtype registrations ("EVRCWB", "EVRCWB0" and "EVRCWB1") are defined in this document. The MIME subtype registrations "EVRCB","EVRCB0" and "EVRCB1" originally defined in [2] are updated with optional "recvmode" and "sendmode" parameters (See Section 9.4, Section 9.5 and Section 9.6). [-- RFC Editor: Please replace all instances of "RFC XXXX" in this document with the RFC number of this document prior to IANA registration and RFC publication, and remove this note.] [-- RFC Editor:Please add MIME subtypes "EVRCWB","EVRCWB0", and "EVRCWB1" to the IANA registry for "RTP Payload Format MIME types" at http://www.iana.org/assignments/rtp-parameters, and remove this note.] Desineni & Xie Expires July 15, 2007 [Page 33] Internet-Draft EVRC-WB RTP Payload Format January 2007 17. Security Considerations Implementations using the payload defined in this specification are subject to the security considerations discussed in RFC3558 [14], RFC3550 [6], and any appropriate profile (for example RFC3551 [13]). This payload does not specify any different security services. Desineni & Xie Expires July 15, 2007 [Page 34] Internet-Draft EVRC-WB RTP Payload Format January 2007 18. References 18.1. Normative References [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [2] Xie, Q., "Enhancements to RTP Payload Formats for EVRC Family Codecs", RFC 4788, January 2007. [3] "Enhanced Variable Rate Codec, Speech Service Option 3 for Wideband Spread Spectrum Digital Systems", 3GPP2 C.S0014 , January 1997. [4] "Enhanced Variable Rate Codec, Speech Service Option 3 and 68 for Wideband Spread Spectrum Digital Systems", 3GPP2 C.S0014-B v1.0 , May 2006. [5] "Enhanced Variable Rate Codec, Speech Service Option 3,68 and 70 for Wideband Spread Spectrum Digital Systems", 3GPP2 Work in Progress, October 2006. [6] Schulzrinne, H., "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, March 1997. [7] Rosenberg, J., "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002. [8] Narten, T., "Guidelines for Writing an IANA Considerations Section in RFCs", RFC 2434, October 1998. [9] Johnston, A., "SDP Offer/Answer Examples", RFC 4317, December 2005. [10] Handley, M., "SDP: Session Description Protocol", RFC 4566, July 2006. [11] Garudadri, H., "3GPP2 Multimedia Registrations", RFC 4393, March 2006. [12] "3GPP2 File Formats for Multimedia Services", 3GPP2 C.S0050-A , March 2006. 18.2. Informative References [13] Schulzrinne, H., "RTP Profile for Audio and Video Conferences with Minimal Control", STD 65, RFC 3551, July 2003. Desineni & Xie Expires July 15, 2007 [Page 35] Internet-Draft EVRC-WB RTP Payload Format January 2007 [14] Li, A., "RTP Payload Format for Enhanced Variable Rate Codecs (EVRC) and Selectable Mode Vocoders (SMV)", RFC 3558, July 2003. [15] Handley, M., "Session Announcement Protocol", RFC 2974, October 2000. [16] Schulzrinne, H., "Real Time Streaming Protocol (RTSP)", RFC 2326, April 1998. [17] Westerlund, M., "How to Write an RTP Payload Format", draft-ietf-avt-rtp-howto-01.txt(Work in Progress) , Dec 2006. Desineni & Xie Expires July 15, 2007 [Page 36] Internet-Draft EVRC-WB RTP Payload Format January 2007 Authors' Addresses Harikishan Desineni Qualcomm 5775 Morehouse Drive San Diego, CA 92126 USA Phone: +1 858 845 8996 Email: hd@qualcomm.com URI: http://www.qualcomm.com Qiaobing Xie Motorola 1501 W. Shure Drive, 2-F9 Arlington Heights, IL 60004 USA Phone: +1-847-632-3028 Email: Qiaobing.Xie@Motorola.com URI: http://www.motorola.com Desineni & Xie Expires July 15, 2007 [Page 37] Internet-Draft EVRC-WB RTP Payload Format January 2007 Intellectual Property Statement 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. Disclaimer of Validity 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. Copyright Statement Copyright (C) The Internet Society (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. Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society. Desineni & Xie Expires July 15, 2007 [Page 38]