draft-ietf-avt-rtp-g729-scal-wb-ext-03.txt   draft-ietf-avt-rtp-g729-scal-wb-ext-04.txt 
Network Working Group A. Sollaud Network Working Group A. Sollaud
Internet-Draft France Telecom Internet-Draft France Telecom
Expires: September 2, 2006 March 1, 2006 Expires: October 26, 2006 April 24, 2006
RTP payload format for the G.729EV audio codec RTP payload format for the G.729EV audio codec
draft-ietf-avt-rtp-g729-scal-wb-ext-03 draft-ietf-avt-rtp-g729-scal-wb-ext-04
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware 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 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. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 33 skipping to change at page 1, line 33
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on September 2, 2006. This Internet-Draft will expire on October 26, 2006.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2006). Copyright (C) The Internet Society (2006).
Abstract Abstract
This document specifies a real-time transport protocol (RTP) payload This document specifies a real-time transport protocol (RTP) payload
format to be used for the International Telecommunication Union format to be used for the International Telecommunication Union
(ITU-T) G.729EV audio codec. A media type registration is included (ITU-T) G.729EV audio codec. A media type registration is included
for this payload format. for this payload format.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Background . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Background . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Embedded bit rates considerations . . . . . . . . . . . . . . 4 3. Embedded bit rates considerations . . . . . . . . . . . . . . 4
4. RTP header usage . . . . . . . . . . . . . . . . . . . . . . . 4 4. RTP header usage . . . . . . . . . . . . . . . . . . . . . . . 4
5. Payload format . . . . . . . . . . . . . . . . . . . . . . . . 5 5. Payload format . . . . . . . . . . . . . . . . . . . . . . . . 5
5.1. Payload structure . . . . . . . . . . . . . . . . . . . . 5 5.1. Payload structure . . . . . . . . . . . . . . . . . . . . 5
5.2. Payload Header: MBS field . . . . . . . . . . . . . . . . 5 5.2. Payload Header: MBS field . . . . . . . . . . . . . . . . 6
5.3. Payload Header: FT field . . . . . . . . . . . . . . . . . 7 5.3. Payload Header: FT field . . . . . . . . . . . . . . . . . 7
5.4. Audio data . . . . . . . . . . . . . . . . . . . . . . . . 7 5.4. Audio data . . . . . . . . . . . . . . . . . . . . . . . . 7
6. Payload format parameters . . . . . . . . . . . . . . . . . . 8 6. Payload format parameters . . . . . . . . . . . . . . . . . . 8
6.1. Media type registration . . . . . . . . . . . . . . . . . 8 6.1. Media type registration . . . . . . . . . . . . . . . . . 8
6.2. Mapping to SDP parameters . . . . . . . . . . . . . . . . 10 6.2. Mapping to SDP parameters . . . . . . . . . . . . . . . . 10
6.3. Offer-answer model considerations . . . . . . . . . . . . 10 6.2.1. Offer-answer model considerations . . . . . . . . . . 10
6.2.2. Declarative SDP considerations . . . . . . . . . . . . 12
7. Congestion control . . . . . . . . . . . . . . . . . . . . . . 12 7. Congestion control . . . . . . . . . . . . . . . . . . . . . . 12
8. Security considerations . . . . . . . . . . . . . . . . . . . 12 8. Security considerations . . . . . . . . . . . . . . . . . . . 13
9. IANA considerations . . . . . . . . . . . . . . . . . . . . . 13 9. IANA considerations . . . . . . . . . . . . . . . . . . . . . 13
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13
10.1. Normative references . . . . . . . . . . . . . . . . . . . 13 10.1. Normative references . . . . . . . . . . . . . . . . . . . 13
10.2. Informative references . . . . . . . . . . . . . . . . . . 13 10.2. Informative references . . . . . . . . . . . . . . . . . . 14
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 15 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 15
Intellectual Property and Copyright Statements . . . . . . . . . . 16 Intellectual Property and Copyright Statements . . . . . . . . . . 16
1. Introduction 1. Introduction
The International Telecommunication Union (ITU-T) recommendation The International Telecommunication Union (ITU-T) recommendation
G.729EV [1] is a scalable and wideband extension of the G.729EV [1] is a scalable and wideband extension of the
recommendation G.729 [9] audio codec. This document specifies the recommendation G.729 [9] audio codec. This document specifies the
payload format for packetization of G.729EV encoded audio signals payload format for packetization of G.729EV encoded audio signals
into the real-time transport protocol (RTP). into the real-time transport protocol (RTP).
skipping to change at page 3, line 23 skipping to change at page 3, line 23
The payload format itself is described in Section 5. A media type The payload format itself is described in Section 5. A media type
registration and the details for the use of G.729EV with SDP are registration and the details for the use of G.729EV with SDP are
given in Section 6. given in Section 6.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT","RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT","RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [2]. document are to be interpreted as described in RFC 2119 [2].
2. Background 2. Background
G.729EV is mainly designed to be used as a speech codec, but it can G.729EV is a 8-32 kbps scalable wideband (50-7000 Hz) speech and
be used for music at the highest bit rates. The sampling frequency audio coding algorithm interoperable with G.729, G.729 Annex A, and
is 16000 Hz and the frame size is 20 ms. G.729 Annex B. It provides a standardized solution for packetized
voice applications that allows a smooth transition from narrowband to
This G.729-based codec produces an embedded bitstream providing an wideband telephony.
improved narrow band quality [300, 3400 Hz] at 12 kbps, and an
enhanced and gracefully improving wideband quality [50, 7000 Hz] from
14 kbps to 32 kbps, by steps of 2 kbps. At 8 kbps it generates a
G.729 bitstream.
It has been mainly designed for packetized wideband voice
applications (Voice over IP or ATM, Telephony over IP, private
networks...) and particularly for those requiring scalable bandwidth,
enhanced quality above G.729, and easy integration into existing
infrastructures.
G.729EV is also designed to cope with other services like high The most important services addressed are IP telephony and
quality audio/video conferencing, archival, messaging, etc. videoconferencing, either for enterprise corporate networks or for
mass market (like PSTN emulation over DSL or wireless access).
Target devices can be IP phones or other VoIP handsets, home
gateways, media gateways, IPBX, trunking equipment, voice messaging
servers, etc.
For all those applications, the scalability feature allows to tune For all those applications, the scalability feature allows to tune
the bit rate versus quality trade-off, possibly in a dynamic way the bit rate versus quality trade-off, possibly in a dynamic way
during a session, taking into account service requirements and during a session, taking into account service requirements and
network transport constraints. network transport constraints.
G.729EV produces frames that are said embedded because they are The G.729EV coder produces an embedded bitstream structured in 12
composed of embedded layers. The first layer is called the core layers corresponding to 12 available bit rates between 8 and 32 kbps.
layer and is bitstream compatible with the ITU-T G.729 with annex B The first layer, at 8 kbps, is called the core layer and is bitstream
coder. Upper layers are added while bit rate increases, to improve compatible with the ITU-T G.729/G.729A coder. At 12 kbps, a second
quality and enlarge audio bandwidth from narrowband to wideband. As layer improves the narrowband quality. Upper layers provides
a result, a received frame can be decoded at its original bit rate or wideband audio (50-7000 Hz) between 14 and 32 kbps, with a 2 kbps
at any lower bit rate corresponding to lower layers which are granularity allowing graceful quality improvements. Only the core
embedded. Only the core layer is mandatory to decode understandable layer is mandatory to decode understandable speech, upper layers
speech, upper layers provide quality enhancement and wideband provide quality enhancement and wideband enlargement.
enlargement.
The codec operates on 20 ms frames, and the default sampling rate is
16 kHz. Input and output at 8 kHz is also supported, at all bit
rates.
Audio codecs often support voice activity detection (VAD) and comfort Audio codecs often support voice activity detection (VAD) and comfort
noise generation (CNG). During silence periods, the coder may noise generation (CNG). During silence periods, the coder may
significantly decrease the transmitted bit rate by sending only significantly decrease the transmitted bit rate by sending only
comfort noise parameters in special small frames called silence comfort noise parameters in special small frames called silence
insertion descriptors (SID). The receiver's decoder will generate insertion descriptors (SID). The receiver's decoder will generate
comfort noise according to the SID information. This operation of comfort noise according to the SID information. This operation of
sending low bit rate comfort noise parameters during silence periods sending low bit rate comfort noise parameters during silence periods
is usually called discontinuous transmission (DTX). is usually called discontinuous transmission (DTX).
skipping to change at page 4, line 40 skipping to change at page 4, line 37
congestion, since the bandwidth can be adjusted by selecting another congestion, since the bandwidth can be adjusted by selecting another
bit rate. bit rate.
It may also help to share a fixed bandwidth dedicated to voice calls, It may also help to share a fixed bandwidth dedicated to voice calls,
for example in a residential or trunking gateway. In that case, the for example in a residential or trunking gateway. In that case, the
system can change the bit rates depending on the number of system can change the bit rates depending on the number of
simultaneous calls. Since it only impacts the sending bandwidth, we simultaneous calls. Since it only impacts the sending bandwidth, we
introduce an in-band signalling to request the other party to change introduce an in-band signalling to request the other party to change
its own sending bit rate, in order to adjust the receiving bandwidth its own sending bit rate, in order to adjust the receiving bandwidth
as well. This in-band request is called MBS, for Maximum Bit rate as well. This in-band request is called MBS, for Maximum Bit rate
Supported, and is described in the following payload format (see Supported, is described in the following payload format (see
Section 5.2). Note that it is only useful for two-way G.729EV Section 5.2). Note that it is only useful for two-way unicast
traffic, since the MBS request is piggy-backed over the speech frames G.729EV traffic, because when A sends an in-band MBS to B, it is to
in the reverse direction. request B to modify its sending bit rate, that is for the stream from
B to A. If there is no G.729EV stream in the reverse direction, the
MBS will have no effect.
4. RTP header usage 4. RTP header usage
The format of the RTP header is specified in RFC 3550 [3]. This The format of the RTP header is specified in RFC 3550 [3]. This
payload format uses the fields of the header in a manner consistent payload format uses the fields of the header in a manner consistent
with that specification. with that specification.
The RTP timestamp clock frequency is the same as the sampling The RTP timestamp clock frequency is the same as the default sampling
frequency, that is 16 kHz. So the timestamp unit is in samples. frequency, that is 16 kHz.
The duration of one frame is 20 ms, corresponding to 320 samples per G.729EV has also the capability to operate with 8 kHz sampled input/
frame. Thus the timestamp is increased by 320 for each consecutive output signals at all bit rates. It does not affect the bitstream
and the decoder does not require a priori knowledge about the
sampling rate of the original signal at the input of the encoder.
Therefore, depending on the implementation and the audio 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 duration of one frame is 20 ms, corresponding to 320 samples at
16 kHz. Thus the timestamp is increased by 320 for each consecutive
frame. frame.
If DTX is used, the first packet of a talkspurt, that is, the first If DTX is used, the first packet of a talkspurt, that is, the first
packet after a silence period during which packets have not been packet after a silence period during which packets have not been
transmitted contiguously, SHOULD be distinguished by setting the transmitted contiguously, SHOULD be distinguished by setting the
marker bit (M) in the RTP data header to one. The marker bit in all marker bit (M) in the RTP data header to one. The marker bit in all
other packets is zero. The beginning of a talkspurt MAY be used to other packets is zero. The beginning of a talkspurt MAY be used to
adjust the playout delay to reflect changing network delays. adjust the playout delay to reflect changing network delays.
If DTX is not used, the M bit MUST be set to zero in all packets. If DTX is not used, the M bit MUST be set to zero in all packets.
skipping to change at page 5, line 32 skipping to change at page 5, line 41
outside the scope of the document, and will not be specified here. outside the scope of the document, and will not be specified here.
It is expected that the RTP profile under which this payload format 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 is being used will assign a payload type for this codec or specify
that the payload type is to be bound dynamically (see Section 6.2). that the payload type is to be bound dynamically (see Section 6.2).
5. Payload format 5. Payload format
5.1. Payload structure 5.1. Payload structure
The complete payload consists of a payload header of 1 octet, The complete payload consists of a payload header of 1 octet,
followed by audio data representing one or more consecutive frames at generally followed by audio data representing one or more consecutive
the same bit rate. frames at the same bit rate.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MBS | FT | | | MBS | FT | |
+-+-+-+-+-+-+-+-+ + +-+-+-+-+-+-+-+-+ +
: one ore more frames at the same bit rate : : zero or more frames at the same bit rate :
: : : :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5.2. Payload Header: MBS field 5.2. Payload Header: MBS field
MBS (4 bits): maximum bit rate supported. Indicates a maximum bit MBS (4 bits): maximum bit rate supported. Indicates a maximum bit
rate to the encoder at the site of the receiver of this payload. The rate to the encoder at the site of the receiver of this payload. The
value of the MBS field is set according to the following table: value of the MBS field is set according to the following table:
+-------+--------------+ +-------+--------------+
skipping to change at page 6, line 31 skipping to change at page 6, line 37
| 15 | NO_MBS | | 15 | NO_MBS |
+-------+--------------+ +-------+--------------+
The MBS is used to tell the other party the maximum bit rate one can The MBS is used to tell the other party the maximum bit rate one can
receive. The encoder MUST NOT exceed the sending rate indicated by receive. The encoder MUST NOT exceed the sending rate indicated by
the received MBS. Thanks to the embedded property of the coding the received MBS. Thanks to the embedded property of the coding
scheme, note that it can send frames at the MBS rate or any lower scheme, note that it can send frames at the MBS rate or any lower
rate. As long as it does not exceed the MBS, it can change its bit rate. As long as it does not exceed the MBS, it can change its bit
rate at any time without previous notice. rate at any time without previous notice.
Note that the MBS is a codec bit rate, the actual network bit rate is
higher and depends on the overhead of the underlying protocols.
The MBS received is valid until the next MBS is received, i.e. a The MBS received is valid until the next MBS is received, i.e. a
newly received MBS value overrides the previous one. newly received MBS value overrides the previous one.
If a payload with an invalid MBS value is received, the MBS MUST be If a payload with an invalid MBS value is received, the MBS MUST be
ignored. ignored.
Note that the MBS is a codec bit rate, the actual network bit rate is
higher and depends on the overhead of the underlying protocols.
The MBS field MUST be set to 15 for packets sent to a multicast The MBS field MUST be set to 15 for packets sent to a multicast
group, and MUST be ignored on packets received from a multicast group, and MUST be ignored on packets received from a multicast
group. group.
The MBS field MUST be set to 15 in all packets when the actual MBS The MBS field MUST be set to 15 in all packets when the actual MBS
value is sent through non-RTP means. This is out of the scope of value is sent through non-RTP means. This is out of the scope of
this specification. this specification.
See Section 7 for more details on the use of MBS for congestion See Section 3 and Section 7 for more details on the use of MBS for
control. congestion control.
5.3. Payload Header: FT field 5.3. Payload Header: FT field
FT (4 bits): Frame type of the frame(s) in this packet, as per the FT (4 bits): Frame type of the frame(s) in this packet, as per the
following table: following table:
+-------+---------------+------------+ +-------+---------------+------------+
| FT | encoding rate | frame size | | FT | encoding rate | frame size |
+-------+---------------+------------+ +-------+---------------+------------+
| 0 | 8 kbps | 20 octets | | 0 | 8 kbps | 20 octets |
skipping to change at page 7, line 43 skipping to change at page 7, line 46
If a payload with an invalid FT value is received, the whole payload If a payload with an invalid FT value is received, the whole payload
MUST be ignored. MUST be ignored.
5.4. Audio data 5.4. Audio data
Audio data of a payload contains one or more consecutive audio frames Audio data of a payload contains one or more consecutive audio frames
at the same bit rate. The audio frames are packed in order of time, at the same bit rate. The audio frames are packed in order of time,
that is the older first. that is the older first.
The actual number of frame is easy to infer from the size of the The size of one frame is given by the FT field, as per the table in
audio data part: Section 5.3, and the actual number of frame is easy to infer from the
size of the audio data part:
nb_frames = (size_of_audio_data) / (size_of_one_frame). nb_frames = (size_of_audio_data) / (size_of_one_frame).
This is compatible with DTX, with the restriction that the SID frame This is compatible with DTX, with the restriction that the SID frame
MUST be at the end of the payload (it is consistent with the payload MUST be at the end of the payload (it is consistent with the payload
format of G.729 described in section 4.5.6 of RFC 3551 [4]). Since format of G.729 described in section 4.5.6 of RFC 3551 [4]). Since
the SID frame is much smaller than any other frame, it will not the SID frame is much smaller than any other frame, it will not
hinder the calculation of the number of frames at the receiver side hinder the calculation of the number of frames at the receiver side
and can be easily detected. Actually the presence of a SID frame and can be easily detected. Actually the presence of a SID frame
will be inferred by the result of the above division not being an will be inferred by the result of the above division not being an
skipping to change at page 9, line 20 skipping to change at page 9, line 20
indicated by FT and MBS fields in the RTP packets MUST NOT exceed indicated by FT and MBS fields in the RTP packets MUST NOT exceed
maxbitrate. maxbitrate.
mbs: the current maximum codec bit rate supported as a receiver, in mbs: the current maximum codec bit rate supported as a receiver, in
bits per second. Permissible values are in the same set as for bits per second. Permissible values are in the same set as for
the maxbitrate parameter, with the constraint that mbs MUST be the maxbitrate parameter, with the constraint that mbs MUST be
lower or equal to maxbitrate. If the mbs parameter is omitted, it lower or equal to maxbitrate. If the mbs parameter is omitted, it
is set to the maxbitrate value. So if both mbs and maxbitrate are is set to the maxbitrate value. So if both mbs and maxbitrate are
omitted, they are both set to 32000. The mbs parameter omitted, they are both set to 32000. The mbs parameter
corresponds to a MBS value in the RTP packets as per table in corresponds to a MBS value in the RTP packets as per table in
Section 5.2 of RFC XXXX. Note that this parameter will be Section 5.2 of RFC XXXX. Note that this parameter may be
dynamically updated by the MBS field of the RTP packets sent, it dynamically updated by the MBS field of the RTP packets sent, it
is not an absolute value for the session. The goal is to announce is not an absolute value for the session.
this value, prior to the sending of any packet, to avoid the
remote sender to exceed the MBS at the beginning of the session.
ptime: the recommended length of time in milliseconds represented by ptime: the recommended length of time in milliseconds represented by
the media in a packet. See Section 6 of RFC YYYY [5]. the media in a packet. See Section 6 of RFC YYYY [5].
maxptime: the maximum length of time in milliseconds which can be maxptime: the maximum length of time in milliseconds which can be
encapsulated in a packet. See Section 6 of RFC YYYY [5] encapsulated in a packet. See Section 6 of RFC YYYY [5]
Encoding considerations: This media type is framed and contains Encoding considerations: This media type is framed and contains
binary data, see section 4.8 of RFC 4288 [6]. binary data, see section 4.8 of RFC 4288 [6].
skipping to change at page 10, line 39 skipping to change at page 10, line 36
separated list of parameter=value pairs. separated list of parameter=value pairs.
Some example SDP session descriptions utilizing G.729EV encodings Some example SDP session descriptions utilizing G.729EV encodings
follow. follow.
Example 1: default parameters Example 1: default parameters
m=audio 53146 RTP/AVP 98 m=audio 53146 RTP/AVP 98
a=rtpmap:98 G729EV/16000 a=rtpmap:98 G729EV/16000
Example 2: recommended packet duration of 40 ms (=2 frames), DTX off, Example 2: recommended packet duration of 40 ms (=2 frames), maximum
and initial MBS set to 26 kbps bit rate is 12 kbps, and initial MBS set to 8 kbps. It could be a
loaded PSTN gateway which can operate at 12 kbps but asks to
initially reduce the bit rate at 8 kbps.
m=audio 51258 RTP/AVP 99 m=audio 51258 RTP/AVP 99
a=rtpmap:99 G729EV/16000 a=rtpmap:99 G729EV/16000
a=fmtp:99 dtx=0; mbs=26000 a=fmtp:99 maxbitrate=12000; mbs=8000
a=ptime:40 a=ptime:40
6.3. Offer-answer model considerations 6.2.1. Offer-answer model considerations
The following considerations apply when using SDP offer-answer The following considerations apply when using SDP offer-answer
procedures to negotiate the use of G.729EV payload in RTP: procedures [8] to negotiate the use of G.729EV payload in RTP:
o Since G.729EV is an extension of G.729, the offerer SHOULD o Since G.729EV is an extension of G.729, the offerer SHOULD
announce G.729 support in its "m=audio" line, with G.729EV announce G.729 support in its "m=audio" line, with G.729EV
preferred. This will allow interoperability with both G.729EV and preferred. This will allow interoperability with both G.729EV and
G.729-only capable parties. G.729-only capable parties.
Below is an example of such an offer: Below is an example of such an offer:
m=audio 55954 RTP/AVP 98 18 m=audio 55954 RTP/AVP 98 18
a=rtpmap:98 G729EV/16000 a=rtpmap:98 G729EV/16000
a=rtpmap:18 G729/8000 a=rtpmap:18 G729/8000
If the answerer supports G.729EV, it will keep the payload type 98 If the answerer supports G.729EV, it will keep the payload type 98
in its answer and the conversation will be done using G.729EV. in its answer and the conversation will be done using G.729EV.
Else, if the answerer supports only G.729, it will leave only the Else, if the answerer supports only G.729, it will leave only the
payload type 18 in its answer and the conversation will be done payload type 18 in its answer and the conversation will be done
using G.729 (the payload format for G.729 is defined in RFC 3551 using G.729 (the payload format for G.729 is defined in Section
[4]). 4.5.6 of RFC 3551 [4]).
Note that when used at 8 kbps in G.729-compatible mode, the
G.729EV decoder supports G.729 Annex B. Therefore Annex B can be
advertised (by default annexb=yes for G729 media type, see Section
4.1.9 of RFC 3555 [7]).
o The "dtx" parameter concerns both sending and receiving, so both o The "dtx" parameter concerns both sending and receiving, so both
sides of a bi-directional session MUST use the same "dtx" value. sides of a bi-directional session MUST use the same "dtx" value.
If one party indicates it does not support DTX, DTX must be If one party indicates it does not support DTX, DTX must be
deactivated both ways. deactivated both ways.
o The "maxbitrate" parameter is bi-directional. If the offerer sets o The "maxbitrate" parameter is bi-directional. If the offerer sets
a maxbitrate value, the answerer MUST reply with a smaller or a maxbitrate value, the answerer MUST reply with a smaller or
equal value. The actual maximum bit rate for the session will be equal value. The actual maximum bit rate for the session will be
the minimum. the minimum.
o If the received value for "maxbitrate" is between 8000 and 32000 o If the received value for "maxbitrate" is between 8000 and 32000
but not in the permissible values set, it SHOULD be read as the but not in the permissible values set, it SHOULD be read as the
closest lower valid value. If the received value is lower than closest lower valid value. If the received value is lower than
8000 or greater than 32000, the session MUST be rejected. 8000 or greater than 32000, the session MUST be rejected.
o The "mbs" parameter is not symmetric. Values in the offer and the o The "mbs" parameter is not symmetric. Values in the offer and the
answer are independent and take into account local constraints. answer are independent and take into account local constraints.
Anyway, one party MUST NOT start sending frames at a bit rate Anyway, one party MUST NOT start sending frames at a bit rate
higher than the "mbs" of the other party. higher than the "mbs" of the other party. The parameter allows to
announce this value, prior to the sending of any packet, to avoid
the remote sender to exceed the MBS at the beginning of the
session.
o If the received value for "mbs" is greater or equal to 8000 but o If the received value for "mbs" is greater or equal to 8000 but
not in the permissible values set, it SHOULD be read as the not in the permissible values set, it SHOULD be read as the
closest lower valid value. If the received value is lower than closest lower valid value. If the received value is lower than
8000, the session MUST be rejected. 8000, the session MUST be rejected.
o The parameters "ptime" and "maxptime" will in most cases not o The parameters "ptime" and "maxptime" will in most cases not
affect interoperability. The SDP offer-answer handling of the affect interoperability. The SDP offer-answer handling of the
"ptime" parameter is described in RFC 3264 [8]. The "maxptime" "ptime" parameter is described in RFC 3264 [8]. The "maxptime"
parameter MUST be handled in the same way. parameter MUST be handled in the same way.
skipping to change at page 12, line 17 skipping to change at page 12, line 23
o For sendonly streams, the "mbs" parameter is useless and SHOULD o For sendonly streams, the "mbs" parameter is useless and SHOULD
NOT be used. NOT be used.
o For recvonly streams, the "mbs" parameter is the only way to o For recvonly streams, the "mbs" parameter is the only way to
communicate the MBS to the sender, since there is no RTP stream communicate the MBS to the sender, since there is no RTP stream
towards it. So to request a bit rate change, the receiver will towards it. So to request a bit rate change, the receiver will
need to use an out-of-band mechanism, like a SIP RE-INIVTE. need to use an out-of-band mechanism, like a SIP RE-INIVTE.
Some special rules apply for multicast: Some special rules apply for multicast:
o The "mbs" parameter is useless and SHOULD NOT be used. o The "mbs" parameter MUST NOT be used.
o The "maxbitrate" and "dtx" parameter become declarative and MUST o The "maxbitrate" and "dtx" parameter become declarative and MUST
NOT be negotiated. These parameters are fixed, and a participant NOT be negotiated. These parameters are fixed, and a participant
MUST use the configuration that is provided for the session. MUST use the configuration that is provided for the session.
6.2.2. Declarative SDP considerations
For declarative use of SDP such as in SAP [10] and RTSP [11], the
following considerations apply:
o The "mbs" parameter MUST NOT be used.
o The "maxbitrate" and "dtx" parameters are declarative and provide
the parameters that SHALL be used when receiving and/or sending
the configured stream.
7. Congestion control 7. Congestion control
Congestion control for RTP SHALL be used in accordance with RFC 3550 Congestion control for RTP SHALL be used in accordance with RFC 3550
[3] and any appropriate profile (for example, RFC 3551 [4]). The [3] and any appropriate profile (for example, RFC 3551 [4]). The
embedded and variable bit rates capability of G.729EV provides a embedded and variable bit rates capability of G.729EV provides a
mechanism that may help to control congestion, see Section 3. mechanism that may help to control congestion, see Section 3.
The number of frames encapsulated in each RTP payload influences the The number of frames encapsulated in each RTP payload influences the
overall bandwidth of the RTP stream, due to the header overhead. overall bandwidth of the RTP stream, due to the header overhead.
Packing more frames in each RTP payload can reduce the number of Packing more frames in each RTP payload can reduce the number of
packets sent and hence the header overhead, at the expense of packets sent and hence the header overhead, at the expense of
increased delay and reduced error robustness. increased delay and reduced error robustness.
8. Security considerations 8. Security considerations
RTP packets using the payload format defined in this specification RTP packets using the payload format defined in this specification
are subject to the general security considerations discussed in the are subject to the general security considerations discussed in the
RTP specification [3] and any appropriate profile (for example, RFC RTP specification [3] and any appropriate profile (for example, RFC
3551 [4]). 3551 [4]).
skipping to change at page 12, line 47 skipping to change at page 13, line 20
RTP packets using the payload format defined in this specification RTP packets using the payload format defined in this specification
are subject to the general security considerations discussed in the are subject to the general security considerations discussed in the
RTP specification [3] and any appropriate profile (for example, RFC RTP specification [3] and any appropriate profile (for example, RFC
3551 [4]). 3551 [4]).
As this format transports encoded speech/audio, the main security As this format transports encoded speech/audio, the main security
issues include confidentiality, integrity protection, and issues include confidentiality, integrity protection, and
authentication of the speech/audio itself. The payload format itself authentication of the speech/audio itself. The payload format itself
does not have any built-in security mechanisms. Any suitable does not have any built-in security mechanisms. Any suitable
external mechanisms, such as SRTP [10], MAY be used. external mechanisms, such as SRTP [12], MAY be used.
This payload format and the G.729EV encoding do not exhibit any This payload format and the G.729EV encoding do not exhibit any
significant non-uniformity in the receiver-end computational load and significant non-uniformity in the receiver-end computational load and
thus in unlikely to pose a denial-of-service threat due to the thus in unlikely to pose a denial-of-service threat due to the
receipt of pathological datagrams. receipt of pathological datagrams.
9. IANA considerations 9. IANA considerations
It is requested that one new media subtype (audio/G729EV) is It is requested that one new media subtype (audio/G729EV) is
registered by IANA, see Section 6.1. registered by IANA, see Section 6.1.
10. References 10. References
10.1. Normative references 10.1. Normative references
[1] International Telecommunications Union, "TBD", ITU- [1] International Telecommunications Union, "An 8-32 kbit/s scalable
T Recommendation TBD, 2006. wideband speech and audio coder bitstream interoperable with
G.729", ITU-T Draft Recommendation G.729EV, April 2006.
[2] Bradner, S., "Key words for use in RFCs to Indicate Requirement [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997. Levels", BCP 14, RFC 2119, March 1997.
[3] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, [3] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson,
"RTP: A Transport Protocol for Real-Time Applications", STD 64, "RTP: A Transport Protocol for Real-Time Applications", STD 64,
RFC 3550, July 2003. RFC 3550, July 2003.
[4] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and Video [4] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and Video
Conferences with Minimal Control", STD 65, RFC 3551, July 2003. Conferences with Minimal Control", STD 65, RFC 3551, July 2003.
skipping to change at page 13, line 49 skipping to change at page 14, line 24
[8] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with [8] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with
Session Description Protocol (SDP)", RFC 3264, June 2002. Session Description Protocol (SDP)", RFC 3264, June 2002.
10.2. Informative references 10.2. Informative references
[9] International Telecommunications Union, "Coding of speech at 8 [9] International Telecommunications Union, "Coding of speech at 8
kbit/s using conjugate-structure algebraic-code-excited linear- kbit/s using conjugate-structure algebraic-code-excited linear-
prediction (CS-ACELP)", ITU-T Recommendation G.729, March 1996. prediction (CS-ACELP)", ITU-T Recommendation G.729, March 1996.
[10] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. [10] Handley, M., Perkins, C., and E. Whelan, "Session Announcement
Protocol", RFC 2974, October 2000.
[11] Schulzrinne, H., Rao, A., and R. Lanphier, "Real Time Streaming
Protocol (RTSP)", RFC 2326, April 1998.
[12] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
Norrman, "The Secure Real-time Transport Protocol (SRTP)", Norrman, "The Secure Real-time Transport Protocol (SRTP)",
RFC 3711, March 2004. RFC 3711, March 2004.
Author's Address Author's Address
Aurelien Sollaud Aurelien Sollaud
France Telecom France Telecom
2 avenue Pierre Marzin 2 avenue Pierre Marzin
Lannion Cedex 22307 Lannion Cedex 22307
France France
 End of changes. 34 change blocks. 
69 lines changed or deleted 104 lines changed or added

This html diff was produced by rfcdiff 1.29, available from http://www.levkowetz.com/ietf/tools/rfcdiff/