rfc-4749

RTP Payload Format for the G.729.1 Audio Codec

A. Sollaud
date2006-10 streamIETF arearai wgavt statusPROPOSED STANDARD pages14 canonicalhttps://www.rfc-editor.org/rfc/rfc4749 doi10.17487/RFC4749
This document specifies a Real-time Transport Protocol (RTP) payload format to be used for the International Telecommunication Union (ITU-T) G.729.1 audio codec. A media type registration is included for this payload format. [STANDARDS-TRACK]

updated by

Extracted elements (26)

design-rationale §7

Packing multiple audio frames per RTP packet reduces header overhead and the number of packets sent, but at the cost of increased end-to-end delay and reduced error robustness; the tradeoff is governed by the ptime and maxptime parameters.

rtp, realtime, congestion

design-rationale §3

The MBS (Maximum Bit rate Supported) in-band signalling field was introduced so that a receiver can request the remote sender to reduce its sending bit rate, enabling bidirectional bandwidth adjustment without external signalling. This is specifically useful for fixed-bandwidth links shared among multiple simultaneous calls.

rtp, realtime, congestion

design-rationale §4

The RTP clock rate is fixed at 16 kHz regardless of the actual encoder/decoder sampling configuration (8 or 16 kHz) because the bitstream itself is unaffected by the I/O sampling rate and the decoder needs no a priori knowledge about the encoder's input sample rate.

rtp, realtime

interoperability-note §6.2.1

G.729.1 at 8 kbps produces a bitstream bitstream-compatible with G.729 and G.729A. Offerers SHOULD announce G.729 support alongside G.729.1 in SDP to allow interoperability with G.729-only peers. When operating at 8 kbps, the G.729.1 decoder also supports G.729 Annex B.

rtp, realtime, voip

normative-requirement §4 MUST

A 16 kHz RTP clock rate MUST always be used for G.729.1, regardless of whether the encoder input or decoder output is configured at 8 kHz.

rtp, realtime

normative-requirement §7 REQUIRED

Congestion control for RTP SHALL be used in accordance with RFC 3550 and an appropriate profile (e.g., RFC 3551).

rtp, realtime, congestion

normative-requirement §6.2.2 MUST NOT

For declarative SDP (SAP, RTSP), the mbs parameter MUST NOT be used, and the maxbitrate parameter is declarative and SHALL be used as provided.

rtp, realtime

normative-requirement §6.2.1 MUST NOT

For multicast sessions, the mbs SDP parameter MUST NOT be used, and the maxbitrate parameter becomes declarative and MUST NOT be negotiated; participants MUST use the provided configuration.

rtp, realtime, multicast

normative-requirement §5.3 MUST

If a payload with a reserved FT value (12–14) is received, the whole payload MUST be ignored.

rtp, realtime

normative-requirement §5.2 MUST

If a payload with a reserved MBS value (12–14) is received, the MBS field MUST be ignored.

rtp, realtime

normative-requirement §6.2.1 MUST NOT

In offer-answer, one party MUST NOT start sending frames at a bit rate higher than the mbs parameter of the other party. If a received mbs value is below 8000, the session MUST be rejected.

rtp, realtime, sip

normative-requirement §6.2.1 MUST

In offer-answer, the maxbitrate parameter is bidirectional: if the offerer sets a value, the answerer MUST reply with a smaller or equal value, and the session maximum is the minimum of the two. If a received value is outside 8000–32000, the session MUST be rejected.

rtp, realtime, sip

normative-requirement §6.1 MUST NOT

The bit rates indicated by the FT and MBS fields in RTP packets MUST NOT exceed the negotiated maxbitrate session parameter.

rtp, realtime

normative-requirement §5.2 MUST NOT

The encoder MUST NOT exceed the sending bit rate indicated by the received MBS field. The MBS received is valid until a new MBS is received; a newly received value overrides the previous one.

rtp, realtime, congestion

normative-requirement §6.2.1 MUST

The maxptime SDP parameter MUST be handled in the same way as ptime (as specified in RFC 3264). Any unknown parameter in an offer MUST be ignored by the receiver and MUST NOT be included in the answer.

rtp, realtime

normative-requirement §5.2 MUST

The MBS field MUST be set to 15 (NO_MBS) for packets sent to a multicast group, and MUST be ignored on packets received from a multicast group.

rtp, realtime, multicast

normative-requirement §6.2 MUST

The RTP clock rate in the SDP a=rtpmap attribute MUST be 16000 for G.729.1.

rtp, realtime

normative-requirement §4 MUST

The RTP M bit MUST be set to zero in all G.729.1 RTP packets.

rtp, realtime

protocol-element §5.4

Audio data contains one or more consecutive frames at the same bit rate, packed oldest-first. The number of frames is inferred by dividing the audio data size by the per-frame size given by the FT table; any remainder bytes MUST be ignored.

rtp, realtime

protocol-element §5.3

The FT value 15 (NO_DATA) indicates no audio data in the payload; the payload is reduced to the 1-octet header alone. This mechanism allows updating the MBS value when there is no audio frame to transmit.

rtp, realtime

registry §9

IANA registered the media subtype audio/G7291 for G.729.1 RTP payloads, with optional parameters maxbitrate, mbs, ptime, and maxptime. This registration is defined in Section 6.1 of RFC 4749.

registry, rtp, realtime

security-consideration §8

G.729.1 decoding exhibits no significant non-uniformity in receiver-end computational load, making denial-of-service attacks via pathological datagrams unlikely.

security, rtp, realtime

security-consideration §8

The payload format has no built-in security mechanisms; confidentiality, integrity, and authentication of audio content must be provided by external means such as SRTP (RFC 3711). General RTP security considerations from RFC 3550 apply.

security, rtp, realtime

wire-format §5.3

The FT field is 4 bits and encodes the frame type/encoding rate for all frames in the packet, with values 0–11 mapping to 8–32 kbps (20–80 octets per frame), values 12–14 reserved, and value 15 (NO_DATA) indicating an empty audio payload used only to update MBS.

rtp, realtime

wire-format §5.1

The G.729.1 RTP payload consists of a 1-octet payload header followed by zero or more consecutive audio frames at the same bit rate. The header contains a 4-bit MBS field and a 4-bit FT field.

rtp, realtime

wire-format §5.2

The MBS field is 4 bits and encodes the maximum bit rate supported by the receiver, with values 0–11 mapping to 8–32 kbps in 2 kbps steps, values 12–14 reserved, and value 15 meaning NO_MBS (no constraint signaled).

rtp, realtime, congestion