Configure microphone processing for IllyVoIP SDK calls

Set browser microphone-processing preferences for IllyVoIP SDK calls and compare actual behavior without treating constraints as guaranteed audio quality.

The IllyVoIP SDK’s JavaScript runtime accepts audioConstraints for echo cancellation, noise suppression and automatic gain control. Set them before call media is created, then compare one change at a time on the same microphone and browser.

This guide targets the official Webphone SDK 1.4.2 browser distribution. Start with the installation guide, one managed phone owner and an authenticated backend that authorizes the user’s SIP identity. Keep permanent API keys and SIP passwords out of browser code.

In the reviewed 1.4.2 package, these runtime options are not listed in the TypeScript option declarations. This is a version-scoped JavaScript example; do not assume the type definitions expose every browser setting or silence a type error with a broad cast.

1. Record a useful baseline

  1. Note the SDK and browser versions, input device, headset and current settings.
  2. Describe the actual problem: echo heard by the other party, background noise, clipped words or changing loudness.
  3. Check microphone permission, app mute and physical headset mute first.
  4. Keep the same network and endpoints for a comparison. Use agreed test calls and review charges.

If the wrong microphone is selected, a processing change may obscure the symptom without fixing it. A headset can also reduce acoustic feedback without needing an application-wide change.

2. Put the preferences in creation options

const audioConstraints = {
  echoCancellation: true,
  noiseSuppression: true,
  autoGainControl: true
};
const optionsWithProcessing = {
  ...managedOptions,
  media: { audio: true, video: false },
  audioConstraints
};

These values match the runtime defaults. To compare one setting, change only that boolean in a new deliberately initialized idle session. For example, test autoGainControl set to false if your evidence suggests unwanted gain changes; do not disable all processing as a universal fix.

Keep the existing input-device selection workflow. The SDK combines its selected input device with these three boolean processing preferences when constructing call media. Do not add a second getUserMedia stream and assume it changes the SDK’s actual call track.

3. Check browser support and actual media separately

const supported = navigator.mediaDevices.getSupportedConstraints();
const supportSummary = {
  echoCancellation: supported.echoCancellation === true,
  noiseSuppression: supported.noiseSuppression === true,
  autoGainControl: supported.autoGainControl === true
};

This reports recognized constraint names, not what a particular call achieved. Browser constraints express requests and behavior varies. If your diagnostic tooling legitimately exposes the actual local call track, inspect its getSettings result; the public SDK guide does not promise a track getter. A separate microphone probe describes that probe only.

4. Compare the received speech

  1. Make a short authorized baseline call and have the other person describe what they hear.
  2. Finish the call before recreating the owner with one changed preference.
  3. Use the same microphone, position and test phrases, including ordinary pauses.
  4. Compare intelligibility and missing syllables as well as noise level.
  5. Keep the change only if it helps the intended use; otherwise restore the saved baseline.

Do not mutate the options object during a live call and assume existing tracks were reconfigured. A quieter background is not automatically better if the beginning of each word disappears. Call statistics help assess the media path but do not measure whether a sentence sounded natural.

5. Investigate a result that does not improve

If echo follows loudspeaker use, compare an appropriate headset. If distortion follows one device, inspect that device and its operating-system processing. If dropouts follow network load, use the connection and RTP diagnostics rather than repeatedly toggling microphone filters. Keep the exact comparison, time and public call reference for Support, without recording private conversation content unnecessarily.

Related guides

Reference

Current instructions and technical reference: MDN: echo cancellation constraints.

Reviewed 12 October 2026 against the current IllyVoIP controls, implementation and applicable references. Available options depend on account permissions and service state.