Automatic Gain Control is a mechanism used in VoIP solutions to keep the volume level of the audio captured from the microphone stable.

Such an approach was introduced to deal with two common scenarios:

  1. Multiple people in a meeting room talking with a microphone installed in the room. If the people sit in different distances from the microphone, their volume level will be different and the voice quality will be perceived as degraded by remote listeners. The solution is to change the volume level of the various speakers to match each other using AGC
  2. Using a non-headset microphone, where movement of the head or the person changes the distance between his mouth and the microphone causes a change in volume level. This again causes listeners a degraded experience, with the solution being the use of AGC

The downside of using an AGC is that it reduces the dynamic range of the audio, limiting it to certain volume levels. Trying to pass music through AGC for example, would ruin the experience altogether due to the volume changes that are found in music. Another challenge is the inability of the sender to increase the volume of his microphone – such a step would automatically be negated by the function of AGC.

When using a headset with a fixed microphone in it, or when using an external audio source (such as prerecorded music or sound), AGC can be safely disabled.AGC can be configured in WebRTC using the autoGainControl property.

Looking to learn more about WebRTC? 

Check my WebRTC training courses

About WebRTC Glossary

The WebRTC Glossary is an ongoing project where users can learn more about WebRTC related terms. It is maintained by Tsahi Levent-Levi of BlogGeek.me.