1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445
|
<pre>Internet Engineering Task Force (IETF) M. Perumal
Request for Comments: 7261 Cisco Systems
Category: Standards Track P. Ravindran
ISSN: 2070-1721 NSN
May 2014
<span class="h1">Offer/Answer Considerations for G723 Annex A and G729 Annex B</span>
Abstract
This document provides the offer/answer considerations for the annexa
parameter of G723 and the annexb parameter of G729, G729D, and G729E
when the value of the annexa or annexb parameter does not match in
the Session Description Protocol (SDP) offer and answer.
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in <a href="./rfc5741#section-2">Section 2 of RFC 5741</a>.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
<a href="http://www.rfc-editor.org/info/rfc7261">http://www.rfc-editor.org/info/rfc7261</a>.
Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to <a href="https://www.rfc-editor.org/bcp/bcp78">BCP 78</a> and the IETF Trust's Legal
Provisions Relating to IETF Documents
(<a href="http://trustee.ietf.org/license-info">http://trustee.ietf.org/license-info</a>) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
<span class="grey">Perumal & Ravindran Standards Track [Page 1]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-2" ></span>
<span class="grey"><a href="./rfc7261">RFC 7261</a> Offer/Answer G723 AnnexA and G729 AnnexB May 2014</span>
Table of Contents
<a href="#section-1">1</a>. Introduction . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-2">2</a>
<a href="#section-2">2</a>. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-3">3</a>
<a href="#section-3">3</a>. Offer/Answer Considerations . . . . . . . . . . . . . . . . . <a href="#page-3">3</a>
<a href="#section-3.1">3.1</a>. Considerations for Use of Comfort Noise Frames . . . . . <a href="#page-3">3</a>
<a href="#section-3.2">3.2</a>. Offer/Answer Considerations for G723 Annex A . . . . . . <a href="#page-3">3</a>
3.3. Offer/Answer Considerations for G729 Annex B, G729D Annex
B, and G729E Annex B . . . . . . . . . . . . . . . . . . <a href="#page-4">4</a>
<a href="#section-4">4</a>. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-5">5</a>
4.1. Offer with G729 annexb=yes and Answer with G729 annexb=no 5
4.2. Offer with G729 annexb=yes and Answer with G729 and No
annexb Parameter . . . . . . . . . . . . . . . . . . . . <a href="#page-5">5</a>
4.3. Offer with G729 and No annexb Parameter and Answer with
G729 annexb=no . . . . . . . . . . . . . . . . . . . . . <a href="#page-6">6</a>
<a href="#section-5">5</a>. Security Considerations . . . . . . . . . . . . . . . . . . . <a href="#page-6">6</a>
<a href="#section-6">6</a>. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-7">7</a>
<a href="#section-7">7</a>. Normative References . . . . . . . . . . . . . . . . . . . . <a href="#page-7">7</a>
<span class="h2"><a class="selflink" id="section-1" href="#section-1">1</a>. Introduction</span>
[<a id="ref-RFC4856">RFC4856</a>] describes the annexa parameter for G723 as follows:
annexa: indicates that Annex A, voice activity detection, is used
or preferred. Permissible values are "yes" and "no" (without the
quotes); "yes" is implied if this parameter is omitted.
Also, [<a href="./rfc4856" title=""Media Type Registration of Payload Formats in the RTP Profile for Audio and Video Conferences"">RFC4856</a>] describes the annexb parameter for G729, G729D, and
G729E as follows:
annexb: indicates that Annex B, voice activity detection, is used
or preferred. Permissible values are "yes" and "no" (without the
quotes); "yes" is implied if this parameter is omitted.
However, a problem arises when the value of the annexa or annexb
parameter does not match in the SDP [<a href="./rfc4566" title=""SDP: Session Description Protocol"">RFC4566</a>] offer and answer.
For example, if the offer has G729 with annexb=yes and the answer has
G729 with annexb=no, it can be interpreted in two different ways:
o The offerer and answerer proceed as if G729 is negotiated with
annexb=yes, or
o The offerer and answerer proceed as if G729 is negotiated with
annexb=no.
<span class="grey">Perumal & Ravindran Standards Track [Page 2]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-3" ></span>
<span class="grey"><a href="./rfc7261">RFC 7261</a> Offer/Answer G723 AnnexA and G729 AnnexB May 2014</span>
Since this is not clear in the existing specifications, various
implementations have interpreted the offer/answer in their own ways,
resulting in a different codec being chosen to call failure, when the
parameter value does not match in the offer and answer.
[<a id="ref-RFC3264">RFC3264</a>] requires SDP extensions that define new fmtp parameters to
specify their proper interpretation in offer/answer. This document
specifies the proper interpretation for the annexa and annexb
parameters in offer/answer.
<span class="h2"><a class="selflink" id="section-2" href="#section-2">2</a>. Terminology</span>
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 [<a href="./rfc2119" title=""Key words for use in RFCs to Indicate Requirement Levels"">RFC2119</a>].
<span class="h2"><a class="selflink" id="section-3" href="#section-3">3</a>. Offer/Answer Considerations</span>
The general objective of the offer/answer considerations is to make
sure that if the offerer or answerer indicates it does not support
Annex A or Annex B, then Annex A or Annex B is not used.
<span class="h3"><a class="selflink" id="section-3.1" href="#section-3.1">3.1</a>. Considerations for Use of Comfort Noise Frames</span>
[<a id="ref-RFC3551">RFC3551</a>] states that:
Receivers MUST accept comfort noise frames if restriction of their
use has not been signaled. The MIME registration for G729 in <a href="./rfc3555">RFC</a>
<a href="./rfc3555">3555</a> specifies a parameter that MAY be used with MIME or SDP to
restrict the use of comfort noise frames.
Hence, if the SDP offer or answer indicates that comfort noise is not
supported, comfort noise frames MUST NOT be used.
<span class="h3"><a class="selflink" id="section-3.2" href="#section-3.2">3.2</a>. Offer/Answer Considerations for G723 Annex A</span>
When the offer or answer has G723 and the annexa parameter is absent,
the offerer or answerer knows that it has implied the default
"annexa=yes". This is because the annexa attribute is part of the
original registration of audio/G723 [<a href="./rfc4856" title=""Media Type Registration of Payload Formats in the RTP Profile for Audio and Video Conferences"">RFC4856</a>]. All implementations
that support G723 understand the annexa attribute. Hence, this case
MUST be considered as if the offer or answer has G723 with
annexa=yes.
When the offer has G723 with annexa=yes and the answer has G723 with
annexa=no, the offerer and answerer MUST proceed as if G723 is
negotiated with annexa=no.
<span class="grey">Perumal & Ravindran Standards Track [Page 3]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-4" ></span>
<span class="grey"><a href="./rfc7261">RFC 7261</a> Offer/Answer G723 AnnexA and G729 AnnexB May 2014</span>
When the offer has G723 with annexa=no, after the offer/answer
completion the offerer and answerer MUST proceed as if G723 is
negotiated with annexa=no.
When the offer has G723 with annexa=no, the reason for not
mandating that the answer MUST have annexa=no for G723 is that
there are implementations that omit the annexa parameter in
answer. In such cases, the offerer and answerer proceed as if
G723 is negotiated with annexa=no.
When the offer has G723 with no annexa parameter and the answer has
G723 with annexa=yes, the offerer and answerer MUST proceed as if
G723 is negotiated with annexa=yes.
<span class="h3"><a class="selflink" id="section-3.3" href="#section-3.3">3.3</a>. Offer/Answer Considerations for G729 Annex B, G729D Annex B, and</span>
<span class="h3"> G729E Annex B</span>
In this section, G729 represents any of G729 or G729D or G729E.
When the offer or answer has G729 and the annexb parameter is absent,
the offerer or answerer knows that it has implied the default
"annexb=yes". This is because the annexb attribute is part of the
original registration of audio/G729 [<a href="./rfc4856" title=""Media Type Registration of Payload Formats in the RTP Profile for Audio and Video Conferences"">RFC4856</a>]. All implementations
that support G729 understand the annexb attribute. Hence, this case
MUST be considered as if the offer or answer has G729 with
annexb=yes.
When the offer has G729 with annexb=yes and the answer has G729 with
annexb=no, the offerer and answerer MUST proceed as if G729 is
negotiated with annexb=no.
When the offer has G729 with annexb=no, after the offer/answer
completion the offerer and answerer MUST proceed as if G729 is
negotiated with annexb=no.
When the offer has G729 with annexb=no, the reason for not
mandating that the answer MUST have annexb=no for G729 is that
there are implementations that omit the annexb parameter in the
answer. In such cases, the offerer and answerer proceed as if
G729 is negotiated with annexb=no.
When the offer has G729 with no annexb parameter and the answer has
G729 with annexb=yes, the offerer and answerer MUST proceed as if
G729 is negotiated with annexb=yes.
<span class="grey">Perumal & Ravindran Standards Track [Page 4]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-5" ></span>
<span class="grey"><a href="./rfc7261">RFC 7261</a> Offer/Answer G723 AnnexA and G729 AnnexB May 2014</span>
<span class="h2"><a class="selflink" id="section-4" href="#section-4">4</a>. Examples</span>
<span class="h3"><a class="selflink" id="section-4.1" href="#section-4.1">4.1</a>. Offer with G729 annexb=yes and Answer with G729 annexb=no</span>
[Offer with G729 annexb=yes]
v=0
o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com
s=
c=IN IP4 host.atlanta.example.com
t=0 0
m=audio 49170 RTP/AVP 18
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=yes
[Answer with G729 annexb=no]
v=0
o=bob 1890844326 1890844326 IN IP4 host.bangalore.example.com
s=
c=IN IP4 host.bangalore.example.com
t=0 0
m=audio 19140 RTP/AVP 18
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
In the above example, the offerer and answerer proceed as if G729 is
negotiated with annexb=no.
<span class="h3"><a class="selflink" id="section-4.2" href="#section-4.2">4.2</a>. Offer with G729 annexb=yes and Answer with G729 and No annexb</span>
<span class="h3"> Parameter</span>
[Offer with G729 annexb=yes]
v=0
o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com
s=
c=IN IP4 host.atlanta.example.com
t=0 0
m=audio 49170 RTP/AVP 18
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=yes
<span class="grey">Perumal & Ravindran Standards Track [Page 5]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-6" ></span>
<span class="grey"><a href="./rfc7261">RFC 7261</a> Offer/Answer G723 AnnexA and G729 AnnexB May 2014</span>
[Answer with G729 and no annexb parameter]
v=0
o=bob 1890844326 1890844326 IN IP4 host.bangalore.example.com
s=
c=IN IP4 host.bangalore.example.com
t=0 0
m=audio 19140 RTP/AVP 18
a=rtpmap:18 G729/8000
In the above example, the offerer and answerer proceed as if G729 is
negotiated with annexb=yes.
<span class="h3"><a class="selflink" id="section-4.3" href="#section-4.3">4.3</a>. Offer with G729 and No annexb Parameter and Answer with G729</span>
<span class="h3"> annexb=no</span>
[Offer with G729 and no annexb parameter]
v=0
o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com
s=
c=IN IP4 host.atlanta.example.com
t=0 0
m=audio 49170 RTP/AVP 18
a=rtpmap:18 G729/8000
[Answer with G729 annexb=no]
v=0
o=bob 1890844326 1890844326 IN IP4 host.bangalore.example.com
s=
c=IN IP4 host.bangalore.example.com
t=0 0
m=audio 19140 RTP/AVP 18
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
In the above example, the offerer and answerer proceed as if G729 is
negotiated with annexb=no.
<span class="h2"><a class="selflink" id="section-5" href="#section-5">5</a>. Security Considerations</span>
The guidelines described in [<a href="./rfc6562" title=""Guidelines for the Use of Variable Bit Rate Audio with Secure RTP"">RFC6562</a>] are to be followed for Use of
Voice Activity Detection (i.e., Annex A or Annex B) with the Secure
Real-time Transport Protocol (SRTP).
<span class="grey">Perumal & Ravindran Standards Track [Page 6]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-7" ></span>
<span class="grey"><a href="./rfc7261">RFC 7261</a> Offer/Answer G723 AnnexA and G729 AnnexB May 2014</span>
<span class="h2"><a class="selflink" id="section-6" href="#section-6">6</a>. Acknowledgments</span>
Thanks to Flemming Andreasen (Cisco), Miguel A. Garcia (Ericsson),
Ali C. Begen (Cisco), Paul Kyzivat (Huawei), Roni Even (Huawei),
Kevin Riley (Sonus), Ashish Sharma (Sonus), Kevin P. Fleming
(Digium), Dale Worley (Avaya), Cullen Jennings (Cisco), Ari Keranen
(Ericsson), Harprit S. Chhatwal (InnoMedia), Aurelien Sollaud
(Orange), SM, Stephen Casner, Keith Drage (Alcatel-Lucent), Stephen
Farrell, Barry Leiba, and Ted Lemon for their valuable input and
comments. Martin Dolly (ATT) and Hadriel Kaplan (Acme Packet)
provided useful suggestions at the mic at IETF 83.
<span class="h2"><a class="selflink" id="section-7" href="#section-7">7</a>. Normative References</span>
[<a id="ref-RFC2119">RFC2119</a>] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", <a href="https://www.rfc-editor.org/bcp/bcp14">BCP 14</a>, <a href="./rfc2119">RFC 2119</a>, March 1997.
[<a id="ref-RFC3264">RFC3264</a>] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
with Session Description Protocol (SDP)", <a href="./rfc3264">RFC 3264</a>, June
2002.
[<a id="ref-RFC3551">RFC3551</a>] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and
Video Conferences with Minimal Control", STD 65, <a href="./rfc3551">RFC 3551</a>,
July 2003.
[<a id="ref-RFC4566">RFC4566</a>] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
Description Protocol", <a href="./rfc4566">RFC 4566</a>, July 2006.
[<a id="ref-RFC4856">RFC4856</a>] Casner, S., "Media Type Registration of Payload Formats in
the RTP Profile for Audio and Video Conferences", <a href="./rfc4856">RFC</a>
<a href="./rfc4856">4856</a>, February 2007.
[<a id="ref-RFC6562">RFC6562</a>] Perkins, C. and JM. Valin, "Guidelines for the Use of
Variable Bit Rate Audio with Secure RTP", <a href="./rfc6562">RFC 6562</a>, March
2012.
<span class="grey">Perumal & Ravindran Standards Track [Page 7]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-8" ></span>
<span class="grey"><a href="./rfc7261">RFC 7261</a> Offer/Answer G723 AnnexA and G729 AnnexB May 2014</span>
Authors' Addresses
Muthu Arul Mozhi Perumal
Cisco Systems
Cessna Business Park
Sarjapur-Marathahalli Outer Ring Road
Bangalore, Karnataka 560103
India
EMail: mperumal@cisco.com
Parthasarathi Ravindran
NSN
Manyata Embassy Business park
Bangalore, Karnataka 560045
India
EMail: partha@parthasarathi.co.in
Perumal & Ravindran Standards Track [Page 8]
</pre>
|