WebRTC Metrics

A comprehensive overview of WebRTC statistics, derived indicators, and observable signals, to better understand call quality, connectivity, and user experience in rtcStats

Back
peripheralaudioconfigurationoutbound

AEC intentionally disabled

The browser will not cancel the acoustic echo between the microphone and the speakers, which can produce an audible echo to remote participants.

Description

WebRTC applications can request access to audio devices via getUserMedia. By default, the browser applies several audio processing steps to the captured audio, including Acoustic Echo Cancellation (AEC). AEC removes the sound that is played back through the speakers from what the microphone picks up, which prevents remote participants from hearing their own voice back.

When the constraint echoCancellation is explicitly set to false, AEC is turned off for the capture. Any sound coming out of the speakers and captured by the microphone is sent back to remote participants, which can cause echo or even a feedback loop.

What do we do here?

We look at every getUserMedia call parse the provided audio constraints. We mark an observation if we found the property echoCancellation set to false.

Notes

Disabling AEC can be a deliberate choice, for example when the application requires unmodified, raw audio, when the audio path does not involve a speaker (recording from a line-in), or when a dedicated external audio device already performs echo cancellation on-device. In all other cases, it is usually a mistake.

Our suggestions

  • Make sure the decision to disable echo cancellation is intentional.
  • Otherwise, remove echoCancellation: false from the constraints and let the browser handle echo cancellation.