Enhancements to RTP Payload Formats for EVRC Family Codecs
updated by
- rfc-5188 — RTP Payload Format for the Enhanced Variable Rate Wideband Codec (EVRC-WB) and the Media Subtype Updates for EVRC-B Codec
updates
- rfc-3558 — RTP Payload Format for Enhanced Variable Rate Codecs (EVRC) and Selectable Mode Vocoders (SMV)
Extracted elements (25)
DTX parameters are defined as receiver options rather than negotiated bilateral capabilities so that existing RFC 3558 implementations simply ignore them, enabling backward compatibility without requiring renegotiation or capability flags.
The compact bundled format was designed as an alternative to the header-free format that allows bundling multiple frames without extra headers, trading flexibility (single-rate only, no interleaving or mode change requests) for lower overhead compared to the interleaved/bundled format. This is targeted at low-bandwidth dial-up and wireless networks.
EVRC-B and EVRC codecs do not interoperate with each other because their speech frames are different. At RTP session initiation, sender and receiver must use separate MIME subtypes (e.g., EVRCB vs. EVRC) to indicate which codec is in use.
The new DTX parameters (silencesupp, dtxmax, dtxmin, hangover) are receiver options added to the existing EVRC and EVRC0 subtypes. Existing RFC 3558 implementations will not send these parameters and will ignore them on receipt; the adaptive DTX behavior of DTX-capable EVRC codecs ensures backward interoperability with non-DTX implementations.
Codec data frames in the compact bundled format MUST be generated following the procedure in RFC 3558 Section 5.2, and all MUST be of the same rate and size.
For a session using the compact bundled format, all EVRC/EVRC-B data frames in the session MUST be of the same rate, and this format may carry only full or half-rate frames.
If the RTP receiver indicates it is incapable of or unwilling to use silence suppression using DTX, silence suppression using DTX MUST NOT be used for the session.
In the interleaved/bundled and header-free formats for EVRC-B, the mode change request field in the ToC MUST be interpreted according to the definition of the RATE_REDUC parameter in EVRC-B (3GPP2 C.S0014-B).
Speech frames lost in transmission and non-received frames MUST be stored as erasure frames in the storage format to maintain synchronization with the original media.
The '\n' MUST be included in any comparison of the EVRC-B magic number '#!EVRC-B\n', since otherwise a prefix of the EVRC-B magic number could be mistaken for the EVRC magic number '#!EVRC\n'.
When negotiating DTX parameters in Offer/Answer: if any DTX parameter is absent, its default value MUST be assumed; if silencesupp=0 in either offer or answer, other DTX parameter values SHOULD be ignored; if dtxmin exceeds dtxmax, the sender MUST ignore the indicated values and fall back to defaults.
EVRC-B compresses 20ms of 8000Hz 16-bit speech into one of four frame sizes: Rate 1 (171 bits), Rate 1/2 (80 bits), Rate 1/4 (40 bits), or Rate 1/8 (16 bits), plus two zero-bit frame types (null and erasure). The use of 1/4-rate frames distinguishes EVRC-B from EVRC and provides lower average data rates.
SDP mapping: MIME type goes in 'm=', subtype in 'a=rtpmap', ptime/maxptime in 'a=ptime'/'a=maxptime', and maxinterleave, fixedrate, silencesupp, dtxmax, dtxmin, hangover all go in 'a=fmtp' as name=value pairs.
The dtxmax parameter (0–255 frames) indicates the maximum DTX update interval; default is 32 frames per 3GPP2 C.S0076. The dtxmin parameter (0–255 frames) indicates the minimum DTX update interval; default is 12 frames. Both MUST be ignored if DTX is not used.
The EVRC-B storage format begins with the magic number '#!EVRC-B\n' (0x2321 0x4556 0x5243 0x2d42 0x0a). Each codec data frame is prefixed by a one-octet ToC entry field (RFC 3558 ToC extended to one octet by setting the four most significant bits to zero).
The EVRC1 media subtype is defined for EVRC using the compact bundled format. Optional parameters include ptime, maxptime (default 200ms), fixedrate (0.5 or 1; default 0.5), silencesupp, dtxmax, dtxmin, and hangover.
The EVRCB media subtype is defined for EVRC-B using the interleaved/bundled packet format (RFC 3558). Optional parameters include ptime, maxptime (default 200ms), maxinterleave (default 5), silencesupp, dtxmax, dtxmin, and hangover.
The EVRCB0 media subtype is defined for EVRC-B using the header-free packet format (RFC 3558). Optional parameters are silencesupp, dtxmax, dtxmin, and hangover.
The EVRCB1 media subtype is defined for EVRC-B using the compact bundled format. Optional parameters include ptime, maxptime (default 200ms), fixedrate (0.5 or 1; default 0.5), silencesupp, dtxmax, dtxmin, and hangover.
The hangover parameter (0–255 frames) indicates the number of consecutive silence frames transmitted at the end of an active speech interval before DTX begins; default is 1 frame. It is RECOMMENDED that hangover be set to 1 or greater to help the receiver identify the start of the DTX period.
The silencesupp parameter (values 0 or 1) indicates DTX capability and willingness. A value of 1 means the sender can both send and receive silence-suppressed speech; a value of 0 means DTX will not be used. Default is 1 if the parameter is absent.
Three RTP packet formats are supported for EVRC-B: interleaved/bundled, header-free, and compact bundled. For interleaved/bundled and header-free formats, EVRC-B operational details are identical to EVRC as defined in RFC 3558, except the mode change request field in the ToC MUST be interpreted per the RATE_REDUC parameter definition in EVRC-B.
This document registers four new MIME subtypes with IANA: EVRC1 (EVRC compact bundled), EVRCB (EVRC-B interleaved/bundled), EVRCB0 (EVRC-B header-free), and EVRCB1 (EVRC-B compact bundled). It also updates existing registrations for EVRC and EVRC0 with optional DTX parameters.
Implementations using the payload formats defined in RFC 4788 are subject to the security considerations of RFC 3558, RFC 3550, and applicable profiles (e.g., RFC 3551). No additional security services beyond those references are specified.
The compact bundled packet format consists of an RTP header followed by a sequence of one or more consecutive EVRC/EVRC-B codec data frames of the same rate, with no Table of Contents. All frames in a single packet MUST be of the same rate and size.