--- 1/draft-ietf-rtcweb-audio-09.txt 2016-02-09 13:20:28.381361018 -0800 +++ 2/draft-ietf-rtcweb-audio-10.txt 2016-02-09 13:20:28.489363723 -0800 @@ -1,19 +1,19 @@ Network Working Group JM. Valin Internet-Draft Mozilla Intended status: Standards Track C. Bran -Expires: May 8, 2016 Plantronics - November 5, 2015 +Expires: August 12, 2016 Plantronics + February 9, 2016 WebRTC Audio Codec and Processing Requirements - draft-ietf-rtcweb-audio-09 + draft-ietf-rtcweb-audio-10 Abstract This document outlines the audio codec and processing requirements for WebRTC endpoints. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. @@ -21,25 +21,25 @@ Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference 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 (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. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) 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 @@ -49,83 +49,87 @@ 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 3. Codec Requirements . . . . . . . . . . . . . . . . . . . . . 2 4. Audio Level . . . . . . . . . . . . . . . . . . . . . . . . . 3 5. Acoustic Echo Cancellation (AEC) . . . . . . . . . . . . . . 4 6. Legacy VoIP Interoperability . . . . . . . . . . . . . . . . 5 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 8. Security Considerations . . . . . . . . . . . . . . . . . . . 5 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5 - 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 + 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 10.1. Normative References . . . . . . . . . . . . . . . . . . 6 10.2. Informative References . . . . . . . . . . . . . . . . . 6 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 1. Introduction An integral part of the success and adoption of the Web Real Time Communications (WebRTC) will be the voice and video interoperability between WebRTC applications. This specification will outline the - audio processing and codec requirements for WebRTC endpoint - implementations. + audio processing and codec requirements for WebRTC endpoints. 2. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. 3. Codec Requirements To ensure a baseline level of interoperability between WebRTC endpoints, a minimum set of required codecs are specified below. If - other suitable audio codecs are available for the browser to use, it - is RECOMMENDED that they are also be included in the offer in order - to maximize the possibility to establish the session without the need - for audio transcoding. + other suitable audio codecs are available for the WebRTC endpoint to + use, it is RECOMMENDED that they are also be included in the offer in + order to maximize the possibility to establish the session without + the need for audio transcoding. WebRTC endpoints are REQUIRED to implement the following audio codecs: o Opus [RFC6716] with the payload format specified in [I-D.ietf-payload-rtp-opus]. o G.711 PCMA and PCMU with the payload format specified in section 4.5.14 of [RFC3551]. - o [RFC3389] comfort noise (CN). Receivers MUST support RFC3389 CN - for streams encoded with G.711 or any other supported codec that - does not provide its own CN. Since Opus provides its own CN - mechanism, the use of RFC3389 CN with Opus is NOT RECOMMENDED. - Use of DTX/CN by senders is OPTIONAL. + o [RFC3389] comfort noise (CN). WebRTC endpoints MUST support + RFC3389 CN for streams encoded with G.711 or any other supported + codec that does not provide its own CN. Since Opus provides its + own CN mechanism, the use of RFC3389 CN with Opus is NOT + RECOMMENDED. Use of DTX/CN by senders is OPTIONAL. o The audio/telephone-event media format as specified in [RFC4733]. - WebRTC endpoints are REQUIRED to be able to generate and consume - the following events: + The endpoints MAY send DTMF events at any time and SHOULD suppress + 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 | +------------+--------------------------------+-----------+ | 0 | DTMF digit "0" | RFC4733 | | 1 | DTMF digit "1" | RFC4733 | | 2 | DTMF digit "2" | RFC4733 | | 3 | DTMF digit "3" | RFC4733 | | 4 | DTMF digit "4" | RFC4733 | | 5 | DTMF digit "5" | RFC4733 | | 6 | DTMF digit "6" | RFC4733 | | 7 | DTMF digit "7" | RFC4733 | | 8 | DTMF digit "8" | RFC4733 | | 9 | DTMF digit "9" | RFC4733 | | 10 | 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 sampling rate higher than 8 kHz, it is RECOMMENDED that Opus be 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 implementer. Endpoints MAY use the offer/answer mechanism to signal a preference for a particular mode or ptime. For additional information on implementing codecs other than the @@ -171,21 +175,21 @@ 5. Acoustic Echo Cancellation (AEC) It is plausible that the dominant near to mid-term WebRTC usage model will be people using the interactive audio and video capabilities to communicate with each other via web browsers running on a notebook computer that has built-in microphone and speakers. The notebook-as- communication-device paradigm presents challenging echo cancellation problems, the specific remedy of which will not be mandated here. 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. WebRTC endpoints SHOULD include an AEC or some other form of echo control. On general purpose platforms (e.g. PC), it is common for 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 and a separate soundcard is used for playback, the sampling rates are likely to differ slightly. Endpoint AECs SHOULD be robust to such conditions, unless they are shipped along with hardware that guarantees capture and playback to be sampled from the same clock. @@ -196,22 +200,22 @@ typically used in NLPs. Similarly, endpoints SHOULD have the ability to detect the presence of a headset and disable echo cancellation. For some applications where the remote endpoint may not have an echo canceller, the local endpoint MAY include a far-end echo canceller, but if that is the case, it SHOULD be disabled by default. 6. Legacy VoIP Interoperability The codec requirements above will ensure, at a minimum, voice - interoperability capabilities between WebRTC endpoints applications - and legacy phone systems that support G.711. + interoperability capabilities between WebRTC endpoints and legacy + phone systems that support G.711. 7. IANA Considerations This document makes no request of IANA. Note to RFC Editor: this section may be removed on publication as an RFC. 8. Security Considerations