Troubleshooting
There are many troubleshooting steps that can generally be taken if you have one of our analog or digital cards, such as the TDM, AEX, or TE series cards. First, be sure you have upgraded to the latest DAHDI version, see
http://downloads.digium.com/pub/telephony/dahdi-linux-complete for the latest version. Since both the software and hardware echo cancelers are enabled in DAHDI, using the latest version is crucial to successful echo cancellation.
Once the latest DAHDI version is installed, enable the echo canceler in /etc/dahdi/system.conf. The format of the echocanceller directive is as follows:
echocanceller=<echo canceler name>,<channel(s)>[,<channel(s)>[,...]]
Here are some examples:
echocanceller=hwec,1-4 # e.g. a AEX410 with VPMADT032 or VPMOCT032
echocanceller=mg2,25-47 # e.g. second span of TE220 (T1)
echocanceller=kb1,1-15,17-31 # e.g. span of a TE122 (E1)
Next, ensure that echo cancellation is enabled in Asterisk. In /etc/asterisk/chan_dahdi.conf, ensure the echocancel line appears
above the channel definition, like so:
echocancel=yes
channel=>1-4
An alternate value besides "yes" can be given for the echocancel directive. It must be a power of two (i.e., 16, 32, 64, 128,256,512,1024). The value "yes" is equivalent to 128. This number indicates the number of taps the echo canceler will use. Each millisecond of echo cancellation is equivalent to 8 taps, so 128 taps is 16ms of echo cancellation. You may need to perform a trial and error process to determine which echocancel value is appropriate for your system.
The echotraining parameter can also be tweaked to achieve better echo results. This is only available for the software echo cancelers. In some instances, the echo canceller doesn't train quickly enough and there is echo at the beginning of a call. Enabling echo training will cause DAHDI to briefly mute the channel, send an impulse, and use the impulse response to pre-train the echo canceler so it can start out with a much closer idea of the actual echo. The values may be "yes," "no," or a number of milliseconds to delay before training (default is 400, equivalent to "yes").
echotraining=yes
echotraining=600
WARNING: In some cases the echotraining option can make echo worse. If you are trying to debug an echo problem, it is worth checking to see if your echo is better with the option set to yes or no. Use whatever setting gives the best results.
Analog Card (FXO)
If you have one of the TDM or AEX analog devices with an FXO module attached, the first step in troubleshooting echo on your FXO lines is to run an echo calibration. This is done using the fxotune command. See the output of fxotune with no options for its usage summary. Here is an example command to use for a four-port analog card with four FXO modules (AEX410 or TDM410):
fxotune -i 3 -b 1 -e 4 -vvv -p
See the page
how-to-basic-fxotune for more details.
Hardware Echo Canceler (VPMOCT series)
The VPMOCT032 can be attached to the TDM and AEX analog adapters (series 410, 800, and 2400), and the single-span T1/E1 adapters (TE120 series). The VPMOCT064 can be attached to the TE200 series T1/E1 adapters, and likewise the VPMOCT128 can be attached to the quad-span TE400 series adapters. There are no troubleshooting steps that can be taken with the VPMOCT series hardware echo cancelers. Simply make sure that DAHDI is up to date (thus ensuring the latest VPMOCT firmware is loaded), and that echo cancellation is enabled in system.conf (echocanceller) and chan_dahdi.conf (echocancel).
Hardware Echo Canceler (VPMADT032)
The VPMADT032 can be attached to the TDM and AEX cards, series 410, 800, and 2400, as well as the single-span TE120 series cards. As before, make sure that you upgrade DAHDI to the latest available version. The latest DAHDI version contains the latest shipping VPM firmware and will be loaded when DAHDI loads.
There are several kernel module parameters for the VPMADT032 that can be tweaked to reduce echo. Please see the knowledge base article
http://support.digium.com/articles/Configuration/VPMADT032-NLP-settings for details on how to do this.