In the zconfig.h configuration file, you can choose from one of several echo-canceller algorithms, with the default being MARK2. Experiment with the various echo cancel- lers on your network to determine the best one for your environment. Asterisk also has an option in the zconfig.h file to make the echo cancellation more aggressive. You can enable it by uncommenting the following line: |
#define AGGRESSIVE_SUPPRESSOR |
Note that aggressive echo cancellation can create a walkie-talkie, half-duplex effect. It should be enabled only if all other methods of reducing echo have failed. Enable echo cancellation for Zaptel interfaces in the zapata.conf file. The default con- figuration enables echo cancellation with echocancel=yes. echocancelwhenbridged=yes |
will enable echo cancellation for TDM bridged calls. While bridged calls should not require echo cancellation, this may improve call quality. When echo cancellation is enabled, the echo canceller learns of echo on the line by listening for it for the duration of the call. Consequently, echo may be heard at the beginning of a call and eventually lessen after a period of time. To avoid this situation, you can employ a method called echo training, which will mute the line briefly at the beginning of a call, and then send a tone from which the amount of echo on the line can be determined. This allows Asterisk to deal with the echo more quickly. Echo training can be enabled with echotraining=yes. |
Hardware Echo Cancellation |
The most effective way to handle echo cancellation is not in software. If you are plan- ning on deploying a good quality system, spend the extra money and purchase cards for the system that have onboard hardware echo cancellation. These cards are some- what more expensive, but they quickly pay for themselves in terms of reduced load on the CPU, as well as reduced load on you due to less user complaints. |