This document describes how to troubleshoot and eliminate echo where possible in IP Telephony networks with Cisco IOS® gateways.
There are two sources of echo:
Hybrid echo
Acoustic echo
Hybrid echo is caused by an impedance mismatch in the hybrid circuit, such as a two-wire to four-wire interface. This mismatch causes the Tx signal to appear on the Rx signal.
Acoustic echo is caused by poor acoustic isolation between the earpiece and the microphone in handsets and hands-free devices.
Echo is perceived as annoying when all of these conditions are true:
Signal leakage between the analog Tx and Rx paths.
Sufficient delay in echo return.
Sufficient echo amplitude.
Echo in Packet Voice Networks
The packet segment of the voice connection introduces a significant delay (typically 30 ms in each direction). The introduction of delay causes echoes (from analog tail circuits), that were normally indistinguishable from the side tone, to be now perceived by the user.
The delay introduced by packet voice is unavoidable. Therefore, the voice gateways must prevent the echo. This diagram illustrates how the gateway can reduce the echo before it can enter the packet voice network with the use of an echo canceler.
Refer to Echoed Voice for more information on echo in voice networks.
There are no specific prerequisites for this document.
This document is not restricted to specific software and hardware versions.
Refer to Cisco Technical Tips Conventions for more information on document conventions.
The problem exists when the PSTN phone user hears echo which is caused by acoustic coupling between the earpiece and the microphone in the IP phone handset.
The solution is to use a load ID on the IP phone, which includes echo suppression on the handset and headset. Currently, available load IDs only include echo cancellation on the speaker phone. However, there are some known issues such as talker echo and acoustic echo from IP phone to IP phone with an older load ID. Refer to Release Notes for Cisco IP CallManager Firmware for 7960, 7940, and 7910 Series Phones if you experience such issues in order to decide if an upgrade to the latest load ID can resolve the issue.
The problem exists when IP phone users hear echo caused by hybrids in a PSTN network.
The solution is to configure and verify echo cancellation operation on a Cisco IOS gateway. The echo canceler in the voice gateway cancels the echo heard by the IP phone user.
Intermittent echo can be heard on voice gateways that run Cisco IOS Software Release 12.4 with DSPWare 4.4.13 or 4.4.14. This is a known issue documented in Cisco bug ID CSCsd54344 (registered customers only) . In order to resolve this issue, you need to downgrade DSPware to 4.4.12 or earlier. Contact the Cisco Systems Technical Assistance Center (TAC) in order to obtain assistance in downloading the DSPware image.
Hardware ECAN (MFT-EC-32/MFT-EC-64) on VWIC2-xMFT-T1E1 does not cancel voice echo. This is a known issue documented in Cisco bug ID CSCsb59252 (registered customers only) .
Check the delay (DSP/DL) and R-factor (DSP/RF) statistics. You can potentially find perceptible delay between when the originating signal is transmitted and when the echo returns. In most telephones, sidetone helps mask some of the echo. Echos must be delayed by at least 20 milliseconds in order to be perceived.
Check the level (DSP/LE) statitstic for sufficient echo amplitude. If the amplitude of the echo is low, it can go unnoticed.
It is important to make sure that the echo canceler has enough information to distinguish between echo and voice conversation. The available parameters to control the distinction are:
Input Level—Input gain of a signal is performed before the echo canceler sees the echo.
Output Level—Output attenuation of a signal is performed after the echo canceler sees the original output signal.
Echo Canceler Coverage—The amount of time the echo canceler remembers a signal that has been output. This parameter must be set to a value greater than the time the echo needs to return to the gateway.
Complete these steps to eliminate echo.
Verify that echo cancellation is enabled on the voice port. Echo cancellation is enabled by default.
Gateway(config-voiceport)#echo-cancel coverage Echo Cancel Coverage enable Echo Cancel Enable
Note: You must shut, then no shut the voice port for the changes to take effect.
Configure the echo canceler coverage to a value greater than the time the echo needs to return to the gateway, so that it is long enough to cover the worst case for your environment, but not longer.
Gateway(config-voiceport)#echo-cancel coverage 16 16 milliseconds echo canceler coverage 24 24 milliseconds echo canceler coverage 32 32 milliseconds echo canceler coverage 8 8 milliseconds echo canceler coverage
Note: You must shut, then no shut the voice port for the changes to take effect.
Note: The default coverage is set to 8 ms, but you can increase it up to 32 ms. If the PSTN delay (tail length) is more than 32 ms, current echo cancelers in Cisco IOS gateways are not able to cancel the echo. In Cisco IOS Software Release 12.2.13T and later, the echo coverage can be configured up to 64 ms. See the Echo Canceler Enhancements in Cisco IOS releases 12.2.11T and 12.2.13T section of this document.
Measure the echo and adjust the echo signal level as required.
Insufficient echo return loss (ERL) to handle the echo might cause these problems:
Echo canceler does not cancel, but not enough to make echo inaudible.
If the ERL value is too low, the total echo return loss seen by the IP network (ACOM) might be insufficient to suppress the echo. ERL needs to be approximately 20 dB (at least 15 dB).
Note: Acombined (ACOM) is the total echo return loss seen across the incoming and outgoing terminals of the echo canceler (incoming terminal = signal into the ECAN toward the PSTN (voice), and outgoing terminal = signal out of the ECAN toward the IP network (echo)). ACOM is the sum of ERL + ERLE, or the total echo return loss seen by the network.
Note: ACOM (Total loss) = ERL (Tail loss) + ERLE (ECAN loss)
Echo canceler does not cancel.
If the ERL value is too low, the echo signal that returns to the gateway might be too loud (within 6 dB of the talker signal). This causes the echo canceler to consider it as voice (double-talk) instead of echo. As a consequence, the echo canceler does not cancel it. ERL needs to be approximately 6 dB or higher for the echo canceler to engage. In Cisco IOS Software Release 12.2.13T, you can configure this ERL level. See the Echo Canceler Enhancements in Cisco IOS Software Releases 12.2.11T and 12.2.13T section of this document.
In order to prevent these problems, measure the ERL and signal levels. Then adjust the signal levels on the Cisco IOS gateway based on the results. Configure positive values for output attenuation and negative values for input gain to adjust these levels. Input gain is performed before the echo canceler sees the echo signal, and output attenuation is performed after the echo canceler sees the original output signal.
voice-port 1/1:15 input gain -3 output attenuation 3
Note: You must shut, then no shut the voice port for the changes to take effect.
Note: In Cisco IOS Software Release 12.2(1) and later, output attenuation can be set to a negative value which actually amplifies the output signal.
Echo can also be caused by an impedance mismatch if both sides are not configured identically. Verify, and modify if needed, the impedance configured in the voice port. A default of 600 ohms is consistent with most lines on the PSTN and PBXs.
Gateway(config-voiceport)#impedance 600c 600 Ohms complex 600r 600 Ohms real 900c 900 Ohms complex complex1 complex 1 complex2 complex 2
Enable echo suppressor to reduce the echo during the first two to three seconds of a call, while the echo canceler converges.
gateway(config-voiceport)#echo-cancel ? coverage Echo Cancel Coverage enable Echo Cancel Enable suppressor echo suppressor
Echo suppressor is supported in Cisco IOS Software Releases 12.2(11)T, 12.2(12), and 12.2(8)T5. The echo suppressor can only be used on T1 digital signal processors (DSPs) when the default Cisco G.165 EC is used. The echo suppressor cannot be used with the extended EC or on NextPort (Cisco AS5350 and Cisco AS5400) platforms. Except for the extended EC or on NextPort (Cisco AS5350 and Cisco AS5400) platforms, echo suppressor is supported in all platforms and all complexities (c549, c542 and c5409).
In addition to the default echo canceler used in the Cisco voice gateways (G.165 compliant), a new echo canceler is available in some of the platforms (G.168 compliant). The extended echo canceler provides:
Tail coverage of up to 64 ms.
Enable the extended echo canceler to eliminate the echo when the tail coverage is greater than 32 ms.
Faster convergence.
Enable the extended echo canceler to reduce the echo during the first two to three seconds of a call, while the echo canceler converges. Echo suppressor is not required anymore when you enable the extended echo canceler.
ERL can be tuned.
Enable the extended echo canceler to eliminate the echo when ERL cannot be tuned lower than 6 dBm.
Extended echo cancellation is configured differently based on the version of Cisco IOS software you use. If you use Cisco IOS Software Release 12.3(4)XD or later, you do not have to use any Cisco IOS commands to enable the Enhanced ITU-T standard G.168 Echo Cancellation feature because the extended G.168 EC is the only available echo canceller. You have the option to disable the extended EC, but Cisco highly recommends that you leave it enabled.
The Cisco Enhanced ITU-T G.168 ECAN feature can be run either on the dedicated ECAN modules or the general voice resources that reside on the platform, network module, or advanced integration module. For example, Cisco 2800 Series and 3800 Series integrated services routers can use either the packet voice DSP modules (PVDM2s) mounted in the router chassis or the digital signal processor (DSP) resources on network modules to run the G.168 ECAN feature. When the G.168 ECAN feature is run on general voice resources, processing and memory constraints limit it to have at most 64-ms echo tailcoverage. Although this is adequate in most network conditions, a largerecho tail coverage is sometimes required. In these situations, the dedicated ECAN modules, attached to the appropriate MFT VWIC2, can be used. The processing and memory resources of the dedicated ECAN modules enable the echo canceller to be configured with predefined settings and an extended 128-ms echo tail buffer, which provides robust echo cancellation performance.
Table 1—Cisco IOS Commands for the Selection of Extended E.168 EC by Platform and Cisco IOS Software ReleaseCisco Software IOS Release | Cisco IOS Command |
---|---|
Cisco 1700 series and Cisco ICS 7750 | |
12.2(13)T | Router(config)#voice echo-canceller extended |
12.2(13)ZH,12.2(15)ZJ, 12.3(1) | Router(voice-card)#codec complexity medium |
12.3(4)T and later | No configuration is necessary. G.168 EC is enabled by default. |
Cisco 2600, 3600, 3700, MC3810, and VG200 | |
12.2(13)T, 12.2(13)ZH, 12.3(1) | Router(voice-card)#codec complexity medium ecan-extended or Router(voice-card)#codec complexity high ecan-extended |
12.2(15)ZJ, 12.3(4)T | Router(voice-card)#codec complexity medium |
12.3(4)XD and later | No configuration is necessary. G.168 EC is enabled by default. |
Cisco 7200 and 7500 series | |
12.2(13)T | Router(config-dspfarm)#codec complexity medium ecan-extended |
12.2(13)ZH and later | No configuration is necessary. G.168 EC is enabled by default. |
Cisco AS5300 | |
12.2(13)T | Router(config)#voice echo-canceller extended codec small codec large codec |
12.3(3) | Router(config)#voice echo-canceller extended [codec small codec large codec] |
Cisco Catalyst 4000 AGM | |
12.3(4)T and later | No configuration is necessary. G.168 EC is enabled by default. |
These options are available under the voice port once extended echo canceler is enabled:
tauro(config-voiceport)#echo-cancel coverage ? 24 24 milliseconds echo canceler coverage 32 32 milliseconds echo canceler coverage 48 48 milliseconds echo canceler coverage 64 64 milliseconds echo canceler coverage tauro(config-voiceport)#echo-cancel erl ? worst-case Echo Cancel worst-case Echo Return Loss tauro(config-voiceport)#echo-cancel erl worst-case ? 0 Worst case echo canceler operation is 0 dB ERL 3 Worst case echo canceler operation is 3 dB ERL 6 Worst case echo canceler operation is 6 dB ERL
Note: Refer to Configuring Voice Ports for more information.
Table 2 lists the support for the extended G.168 EC by platform, network module, high-complexity and medium-complexity codecs, and minimum Cisco IOS Software Release.
Table 2—Extended Echo Canceller Algorithm Coverage by PlatformPlatform | Module | High Complexity | Medium Complexity | Comments | ||
---|---|---|---|---|---|---|
Analog | Digital | Analog | Digital | |||
Cisco 1700 series | — | 12.2(8)YN, 12.2(13)T | 12.2(8)YN, 12.2(13)T | 12.2(8)YN, 12.3(2)T | 12.2(8)YN, 12.3(2)T | Flexi6 support in Cisco IOS Software Release 12.2(8)YN. |
Cisco 2600, 2600XM, 3600, 3700, and VG200 series | NM-HDV (C549) | — | 12.2(13)T and later | — | 12.2(13)T and later | Full support |
Cisco 2600, 2691, 3600, 3700, and VG200 series | NM-1V, NM-2V (C542) | No | — | No | — | Not supported |
Cisco 2600XM, 2691, 3640, 3660, and 3700 series | NM-HDxx | 12.3(4)XD and later | 12.3(4)XD and later | 12.3(4)XD and later | 12.3(4)XD and later | — |
Cisco 2600XM, 2691, 3640, 3660, and 3700 series | AIM-Voice (C5421), AIM-Voice-30 (C542) | — | 12.2(15)ZJ, 12.3(4)T and later | — | 12.2(15)ZJ, 12.3(4)T and later | Advanced Integration Module (AIM). |
Cisco 2600XM, 2691, 3640, 3660, and 3700 series | NM-HDA (C5421) | 12.2(15)ZJ, 12.3(4)T and later | — | 12.2(15)ZJ, 12.3(4)T and later | 12.2(15)ZJ, 12.3(4)T and later | High-Density Analog Voice Network Modules (NM-HDA). Note: G.728 high complexity is not supported. |
Cisco 2600 series | NM-HDA (C5421) | 12.3(9) and later | — | 12.3(9) and later | — | — |
Cisco 2600 series | AIM-Voice (C5421) | — | 12.3(9) and later | — | 12.3(9) and later | — |
Cisco 7200 series | PA-VXx-2TE1+, PA-MCX-nTE1 | — | 12.2(13)T and later | — | 12.2(13)T and later | PA-MCX-nTE1 port adapters do not have their own DSPs, so they use the DSPs of PA-VXx-2TE1+ port adapters. |
Cisco 7500 series | — | — | 12.2(13)T and later | — | No | No medium complexity. |
Cisco AS5300 | — | — | 12.2(13)T (restricted), 12.3(3) (unrestricted) and later | — | No | One-channel DSP on C549 with extended EC, any codec (unrestricted). |
Cisco AS5350, AS5400, and AS5850 | — | — | — | — | — | Different DSP with its own 128 ms-coverage EC. |
Cisco Catalyst 4000 | AGM | 12.3(4)T and later | No | No | 12.3(4)T and later | High-complexity analog and medium-complexity digital is planned. |
Cisco Catalyst 6000 | Cisco 6624 | A002040- 00002 | — | A002040- 00002 | — | — |
Cisco 6608 | — | A004040- 00002 | — | A004040- 00002 | — | |
Cisco IAD2420 | — | 12.2(13)T and later | 12.2(13)T and later | 12.3(1) mainline and later | 12.3(1) mainline and later | — |
Cisco IAD243x | VIC2-4FXO onboard T1 | 12.3(4)XD and later | 12.3(4)XD and later | 12.3(4)XD and later | 12.3(4)XD and later | — |
Cisco ICS 7750 | — | 12.2(13)T and later | 12.2(13)T and later | 12.2(13)T and later | 12.2(13)T and later | Flexi6 support |
Cisco MC3810 | HCM 549 | 12.2(13)T and later | 12.2(13)T and later | 12.3(1) mainline and later | 12.3(1) mainline and later | — |
Note: Refer to Configuring Voice Ports for more information.
There are no configuration tasks for this feature. However, you can verify that the Voice Call Tuning feature operates on your system. In order to do so, complete these tasks:
Use the show vfc version command in order to show the version of the software that resides on your voice feature card (VFC). This command shows information in the output of the show vfc version vcware and show vfc version dspware commands that indicates whether the Cisco VCWare or DSPWare is compatible with the Cisco IOS image.
Use the test call id command in order to manipulate echo canceller and jitter-buffer parameters in real time. You can use this command with the extended G.168 echo canceller, which allows you to configure the voice card in a router individually, or with the Cisco G.165 echo canceller, which allows you to configure the router as a whole. Messages are visible in the command output when either an extended-only or a standard-only echo cancellation is requested, as in this example:
Extended echo canceller not active for CallID callID
Basic echo canceller not active for CallID callID
Revision | Publish Date | Comments |
---|---|---|
1.0 |
02-Apr-2008 |
Initial Release |