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
   224   225   226   227   228   229   230   231   232   233   234