Affected cards:
TDM|AEX410
TDM|AEX800
TDM|AEX2400
Hx8
TE12x
Introduction
The VPMADT032 hardware echo canceler Non-Linear Processor (NLP) can be adjusted to tweak the echo cancellation capabilities of this daughter module. There are three basic settings that can be adjusted: NLP Type (vpmnlptype), NLP Threshold (vpmnlpthresh), and NLP Max Suppression (vpmnlpmaxsupp). First, these parameters will be explained, and then how to set them will be described.
vpmnlptype
This option allows the user to specify the type of NLP they want applied to the post echo-cancelled audio reflections received from the far end. There are five NLP types that can be configured in the driver (either wctdm24xxp or wcte12xp).
- None: disables NLP processing and is not a recommended setting. Under most circumstances, users choosing 'None' will experience some residual echo. To use this type, set vpmnlptype=0
- Mute: causes the NLP to mute inbound audio streams while a user connected to the appliance is speaking. For users in quiet environments, 'Mute' may be acceptable. To use this type, set vpmnlptype=1
- Random Noise: causes the NLP to inject random noise to mask the echo reflection. For users in normal environments, 'Random Noise' may be acceptable. To use this type, set vpmnlptype=2
- Hoth Noise: causes the NLP to inject a low-end Gaussian noise with a frequency spectrum similar to voice. For users in normal environments, Hoth Noise may be acceptable. To use this type, set vpmnlptype=3
- Suppression: causes the NLP to suppress echo reflections by reducing the amplitude of their volume. 'Suppression' may be used in combination with the 'Max Suppression' option. For users in loud environments, 'Suppression' may be the best option. To use this type, set vpmnlptype=6
vpmnlpthresh
This option specifies the threshold, in dB (decibels) difference between the received audio post-echo echo cancellation and the transmitted audio, where the NLP will engage. If no user choice is specified, the default is 24dB.
vpmnlpmaxsupp
This option, only usable when the Echo Cancellation NLP Type is set to 'Suppression', specifies the maximum amount of dB that the NLP should attenuate the residual echo. Lower numbers mean that the NLP will provide less suppression, meaning the residual echo will sound louder. Higher values, especially those approaching or equaling the NLP Threshold option, will nearly mute the residual echo. If no user choice is specified, the default is 24dB.
Setting these values in the driver
The DAHDI drivers that accept the above NLP parameters are wctdm24xxp (TDM|AEX, Hx8 cards), and wcte12xp (TE12x cards). To change the setting temporarily, unload DAHDI, and load the driver manually like so:
service dahdi stop
modprobe wctdm24xxp vpmnlptype=3 vpmnlpthresh=28 #vpmnlpmaxsupp is only valid for vpmnlptype=6
modprobe wcte12xp vpmnlptype=6 vpmnlpthresh=32 vpmnlpmaxsupp=16
Be sure to run dahdi_cfg after loading the drivers manually in this fashion. It may take several iterations in order to find the values which work best for your location. We recommend that customers only change one value at a time, until the echo profile is reduced as much as possible. Once you've found values that work for you, you can make them permanent by adding the following lines to /etc/modprobe.d/dahdi.conf:
options wctdm24xxp vpmnlptype=6 vpmnlpthresh=32 vpmnlpmaxsupp=22
options wcte12xxp vpmnlptype=2 vpmnlpthresh=25
After saving that file in your text editor, issue the "service dahdi restart" or "service dahdi start" command. Please contact Digium Technical Support at +1.256.428.6161 if you continue to experience echo issues after tweaking these settings.