Page 229 - Asterisk™: The Future of Telephony
P. 229
beyond a certain amount of delay (possibly as low as 20 milliseconds for some people).
This echo will become annoying as the delay increases.
In a cheap telephone, it is possible for echo to be generated in the body of the handset.
This is why some cheap IP phones can cause echo even when the entire end-to-end
§
connection does not contain an analog circuit. In the VoIP world, echo is usually
introduced either by an analog circuit somewhere in the connection, or by a cheap
endpoint reflecting back some of the signal (e.g., feedback through a hands-free or
poorly designed handset or headset). The greater the latency on the network, the more
annoying this echo can be.
Managing Echo on Zaptel Channels
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.
§ Actually, the handset in any phone, be it traditional or VoIP, is an analog connection.
Echo | 201