Echo cancelation

I have a Digium AEX800 card with a 4-port FXO card along with hardware echo cancelation board. I guess that would make the card an AEX804E.

Frequently when dialing out I get some echo for the first few seconds and then it goes away. I thought that I read somewhere that this could happen but I cannot seem to find where I read that.

Is this expected behavior? Is there anything I can do about it? I am getting complaints about the echo even though it does go away, it takes some time that makes the initial portion of phone calls a bit confusing.

The echo canceller needs to learn the specific echo characteristics of that call. That takes some time.

Typically the echo lasts for a few seconds. Occasionally it lasts for much longer. In some cases up to a minute. Maybe 1 in 20 calls it will last longer.

People must complain if they hear any echo at all. Even if it goes away within 5 seconds. I’m getting complaints where I installed Asterisk in a 12 phone setup.

Basically, you always get an echo, but without VoIP, the echo is so fast that people don’t notice it. With VoIP people do notice.

A SIP phone will do its own echo cancellation, and may well remember the settings between one call and another. This is to cancel the echo originating from that phone and its environment. For PSTN you need to do it yourself, and each call will have different echo characteristics, because you are calling different people.

It takes time for the echo canceller to measure those characteristics, and, as it has to do it using live speech, the echo will be noticeable until the calculation completes. In theory one ould speed this up by transmitting a special test signal when the line connects. This is what modems do, but such a signal would be rather annoying to a remote human party.

I don’t know what is considered the state of the art for echo canceller convergence, but it is certainly not zero.

What an echo canceller has to do is to predict the echo that will be produced by the outbound signal and subtract it, from the inbound signal. It needs to measure the echo to do this, with the added problem that it is not just receiving the echo, but also incoming speech.

Thank you for the response.

I do understand the concept behind echo cancelation. I am just surprised that it takes seconds (and in some cases a minute or more) to learn which makes me think there might be a bigger problem here. The DSP on the card should be fast enough to sample the outgoing and incoming signals, compare them to determine the delay and set the correct cancelation signal. I know there is a bit more to it but this should all take place very quickly. Seconds are an enormous unit of measurement with modern electronics.

Are there other factors that could affect how quickly echo is learned for each call? A lot of ambient noise in the background of the call? Real echo in the building being picked up by the phone? A sensitive phone (too much gain)? Adjustments in the callers voice (whispering and the yelling)?

Are there any configuration settings for the hardware cancelation that can be manipulated?

If we are to continue using this system, I have to reduce the amount of echo on calls.

A VOX type loudspeaking phone would be particularly difficult.

I think the reasons convergence takes time are:

  • one needs to measure for long enough that the incoming noise and speech can be averaged out - I suspect that noise rules apply here, i.e. 3dB (might be 6) improvement in SNR for every quadrupling of averaging time;

  • one needs to measure for long enough to get the echo at every frequency, but are relying on the talker to cover all the frequencies.

As this is a Digium hardware canceller, though, I have a feeling that the question is off charter, and you should be using Digium commercial product support channels.

Thanks David55. I did start a support issue with Digium. I also asked on this forum to see if others had noticed similar problems and if they had ideas for addressing these issues. I haven’t heard back from Digium at this point.

I’ll post back here if I get anything useful from Digium…

I may have had a misunderstanding about fxotune and echotraining=xxx

I thought I had read that these were for software cancellers. I was told by digium to try them. After reading fxotune, it makes sense. echotraining is supposed to send out a pulse before the line is connected to get a quicker idea of the characteristics of the line.

I will experiment with these later tonight and post my results.

Hi, have you been able to improve the “echo experience”?



I did have some success, although there is still a small amount of echo occasionally at the start of a call. It does go away after a few seconds and is not as severe as it was.

I used fxotune but also had to adjust rxgain and txgain. The values I used I believe were -9 and -5. I’m sorry I don’t remember if txgain was -9 or -5.

Because the phones are acceptable now, I’ve been spending my time on other IT related issues. I will revisit this when I have more time to spen on this issue.