draft-ietf-rtcweb-audio-09.txt   draft-ietf-rtcweb-audio-10.txt 
Network Working Group JM. Valin Network Working Group JM. Valin
Internet-Draft Mozilla Internet-Draft Mozilla
Intended status: Standards Track C. Bran Intended status: Standards Track C. Bran
Expires: May 8, 2016 Plantronics Expires: August 12, 2016 Plantronics
November 5, 2015 February 9, 2016
WebRTC Audio Codec and Processing Requirements WebRTC Audio Codec and Processing Requirements
draft-ietf-rtcweb-audio-09 draft-ietf-rtcweb-audio-10
Abstract Abstract
This document outlines the audio codec and processing requirements This document outlines the audio codec and processing requirements
for WebRTC endpoints. for WebRTC endpoints.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
skipping to change at page 1, line 32 skipping to change at page 1, line 32
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
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."
This Internet-Draft will expire on May 8, 2016. This Internet-Draft will expire on August 12, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at page 2, line 16 skipping to change at page 2, line 16
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Codec Requirements . . . . . . . . . . . . . . . . . . . . . 2 3. Codec Requirements . . . . . . . . . . . . . . . . . . . . . 2
4. Audio Level . . . . . . . . . . . . . . . . . . . . . . . . . 3 4. Audio Level . . . . . . . . . . . . . . . . . . . . . . . . . 3
5. Acoustic Echo Cancellation (AEC) . . . . . . . . . . . . . . 4 5. Acoustic Echo Cancellation (AEC) . . . . . . . . . . . . . . 4
6. Legacy VoIP Interoperability . . . . . . . . . . . . . . . . 5 6. Legacy VoIP Interoperability . . . . . . . . . . . . . . . . 5
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5
8. Security Considerations . . . . . . . . . . . . . . . . . . . 5 8. Security Considerations . . . . . . . . . . . . . . . . . . . 5
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 6
10.1. Normative References . . . . . . . . . . . . . . . . . . 6 10.1. Normative References . . . . . . . . . . . . . . . . . . 6
10.2. Informative References . . . . . . . . . . . . . . . . . 6 10.2. Informative References . . . . . . . . . . . . . . . . . 6
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7
1. Introduction 1. Introduction
An integral part of the success and adoption of the Web Real Time An integral part of the success and adoption of the Web Real Time
Communications (WebRTC) will be the voice and video interoperability Communications (WebRTC) will be the voice and video interoperability
between WebRTC applications. This specification will outline the between WebRTC applications. This specification will outline the
audio processing and codec requirements for WebRTC endpoint audio processing and codec requirements for WebRTC endpoints.
implementations.
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in RFC "OPTIONAL" in this document are to be interpreted as described in RFC
2119 [RFC2119]. 2119 [RFC2119].
3. Codec Requirements 3. Codec Requirements
To ensure a baseline level of interoperability between WebRTC To ensure a baseline level of interoperability between WebRTC
endpoints, a minimum set of required codecs are specified below. If endpoints, a minimum set of required codecs are specified below. If
other suitable audio codecs are available for the browser to use, it other suitable audio codecs are available for the WebRTC endpoint to
is RECOMMENDED that they are also be included in the offer in order use, it is RECOMMENDED that they are also be included in the offer in
to maximize the possibility to establish the session without the need order to maximize the possibility to establish the session without
for audio transcoding. the need for audio transcoding.
WebRTC endpoints are REQUIRED to implement the following audio WebRTC endpoints are REQUIRED to implement the following audio
codecs: codecs:
o Opus [RFC6716] with the payload format specified in o Opus [RFC6716] with the payload format specified in
[I-D.ietf-payload-rtp-opus]. [I-D.ietf-payload-rtp-opus].
o G.711 PCMA and PCMU with the payload format specified in section o G.711 PCMA and PCMU with the payload format specified in section
4.5.14 of [RFC3551]. 4.5.14 of [RFC3551].
o [RFC3389] comfort noise (CN). Receivers MUST support RFC3389 CN o [RFC3389] comfort noise (CN). WebRTC endpoints MUST support
for streams encoded with G.711 or any other supported codec that RFC3389 CN for streams encoded with G.711 or any other supported
does not provide its own CN. Since Opus provides its own CN codec that does not provide its own CN. Since Opus provides its
mechanism, the use of RFC3389 CN with Opus is NOT RECOMMENDED. own CN mechanism, the use of RFC3389 CN with Opus is NOT
Use of DTX/CN by senders is OPTIONAL. RECOMMENDED. Use of DTX/CN by senders is OPTIONAL.
o The audio/telephone-event media format as specified in [RFC4733]. o The audio/telephone-event media format as specified in [RFC4733].
WebRTC endpoints are REQUIRED to be able to generate and consume The endpoints MAY send DTMF events at any time and SHOULD suppress
the following events: in-band DTMF tones, if any. WebRTC endpoints are REQUIRED to be
able to generate and consume the following events:
+------------+--------------------------------+-----------+ +------------+--------------------------------+-----------+
|Event Code | Event Name | Reference | |Event Code | Event Name | Reference |
+------------+--------------------------------+-----------+ +------------+--------------------------------+-----------+
| 0 | DTMF digit "0" | RFC4733 | | 0 | DTMF digit "0" | RFC4733 |
| 1 | DTMF digit "1" | RFC4733 | | 1 | DTMF digit "1" | RFC4733 |
| 2 | DTMF digit "2" | RFC4733 | | 2 | DTMF digit "2" | RFC4733 |
| 3 | DTMF digit "3" | RFC4733 | | 3 | DTMF digit "3" | RFC4733 |
| 4 | DTMF digit "4" | RFC4733 | | 4 | DTMF digit "4" | RFC4733 |
| 5 | DTMF digit "5" | RFC4733 | | 5 | DTMF digit "5" | RFC4733 |
| 6 | DTMF digit "6" | RFC4733 | | 6 | DTMF digit "6" | RFC4733 |
| 7 | DTMF digit "7" | RFC4733 | | 7 | DTMF digit "7" | RFC4733 |
| 8 | DTMF digit "8" | RFC4733 | | 8 | DTMF digit "8" | RFC4733 |
| 9 | DTMF digit "9" | RFC4733 | | 9 | DTMF digit "9" | RFC4733 |
| 10 | DTMF digit "*" | RFC4733 | | 10 | DTMF digit "*" | RFC4733 |
| 11 | DTMF digit "#" | RFC4733 | | 11 | DTMF digit "#" | RFC4733 |
| 12 | DTMF digit "A" | RFC4733 |
| 13 | DTMF digit "B" | RFC4733 |
| 14 | DTMF digit "C" | RFC4733 |
| 15 | DTMF digit "D" | RFC4733 |
+------------+--------------------------------+-----------+ +------------+--------------------------------+-----------+
For all cases where the endpoint is able to process audio at a For all cases where the endpoint is able to process audio at a
sampling rate higher than 8 kHz, it is RECOMMENDED that Opus be sampling rate higher than 8 kHz, it is RECOMMENDED that Opus be
offered before PCMA/PCMU. For Opus, all modes MUST be supported on offered before PCMA/PCMU. For Opus, all modes MUST be supported on
the decoder side. The choice of encoder-side modes is left to the the decoder side. The choice of encoder-side modes is left to the
implementer. Endpoints MAY use the offer/answer mechanism to signal implementer. Endpoints MAY use the offer/answer mechanism to signal
a preference for a particular mode or ptime. a preference for a particular mode or ptime.
For additional information on implementing codecs other than the For additional information on implementing codecs other than the
skipping to change at page 4, line 40 skipping to change at page 4, line 45
5. Acoustic Echo Cancellation (AEC) 5. Acoustic Echo Cancellation (AEC)
It is plausible that the dominant near to mid-term WebRTC usage model It is plausible that the dominant near to mid-term WebRTC usage model
will be people using the interactive audio and video capabilities to will be people using the interactive audio and video capabilities to
communicate with each other via web browsers running on a notebook communicate with each other via web browsers running on a notebook
computer that has built-in microphone and speakers. The notebook-as- computer that has built-in microphone and speakers. The notebook-as-
communication-device paradigm presents challenging echo cancellation communication-device paradigm presents challenging echo cancellation
problems, the specific remedy of which will not be mandated here. problems, the specific remedy of which will not be mandated here.
However, while no specific algorithm or standard will be required by However, while no specific algorithm or standard will be required by
WebRTC compatible endpoints, echo cancellation will improve the user WebRTC-compatible endpoints, echo cancellation will improve the user
experience and should be implemented by the endpoint device. experience and should be implemented by the endpoint device.
WebRTC endpoints SHOULD include an AEC or some other form of echo WebRTC endpoints SHOULD include an AEC or some other form of echo
control. On general purpose platforms (e.g. PC), it is common for control. On general purpose platforms (e.g. PC), it is common for
the audio capture ADC and the audio playback DAC to use different the audio capture ADC and the audio playback DAC to use different
clocks. In these cases, such as when a webcam is used for capture clocks. In these cases, such as when a webcam is used for capture
and a separate soundcard is used for playback, the sampling rates are and a separate soundcard is used for playback, the sampling rates are
likely to differ slightly. Endpoint AECs SHOULD be robust to such likely to differ slightly. Endpoint AECs SHOULD be robust to such
conditions, unless they are shipped along with hardware that conditions, unless they are shipped along with hardware that
guarantees capture and playback to be sampled from the same clock. guarantees capture and playback to be sampled from the same clock.
skipping to change at page 5, line 18 skipping to change at page 5, line 22
typically used in NLPs. Similarly, endpoints SHOULD have the ability typically used in NLPs. Similarly, endpoints SHOULD have the ability
to detect the presence of a headset and disable echo cancellation. to detect the presence of a headset and disable echo cancellation.
For some applications where the remote endpoint may not have an echo For some applications where the remote endpoint may not have an echo
canceller, the local endpoint MAY include a far-end echo canceller, canceller, the local endpoint MAY include a far-end echo canceller,
but if that is the case, it SHOULD be disabled by default. but if that is the case, it SHOULD be disabled by default.
6. Legacy VoIP Interoperability 6. Legacy VoIP Interoperability
The codec requirements above will ensure, at a minimum, voice The codec requirements above will ensure, at a minimum, voice
interoperability capabilities between WebRTC endpoints applications interoperability capabilities between WebRTC endpoints and legacy
and legacy phone systems that support G.711. phone systems that support G.711.
7. IANA Considerations 7. IANA Considerations
This document makes no request of IANA. This document makes no request of IANA.
Note to RFC Editor: this section may be removed on publication as an Note to RFC Editor: this section may be removed on publication as an
RFC. RFC.
8. Security Considerations 8. Security Considerations
 End of changes. 12 change blocks. 
22 lines changed or deleted 26 lines changed or added

This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/