[asterisk-dev] Tuning Software Echo Cancellers

Rich Adamson radamson at routers.com
Tue Aug 8 06:45:24 MST 2006


Andrew Kohlsmith wrote:
> On Sunday 06 August 2006 22:36, Rich Adamson wrote:
>> The echotraining parameter was originally created for analog pstn lines,
>> adding a delay (in the above example, 800 milliseconds) to allow analog
>> central office equipment to settle down before the s/w echo can routines
>> pulsed the line. The reflective energy from the pulse was then used to
>> preload the echo can routines.  Doubtful this parameter should be
>> anything other then =yes on a PRI.
> 
> I was under the impression that echo training in zaptel was used at the 
> beginning of a call to help the echo cancellers train more quickly by muting 
> audio from Asterisk, sending an impulse down the line and measuring the 
> response before unmuting audio and allowing the parties to speak.  Having a 
> known and simple impulse helps the echo canceller train more quickly, which 
> has the effect of reducing the length of time needed to converge.

That's my understanding as well. However, echotraining=800 means "wait" 
for 800 milliseconds before doing the above (allowing time for the 
analog line & CO equipment to settle down after going off-hook). Mark 
and I actually implemented that feature back in the x100p days as a 
result of my echo training issues with Alltel facilities. Since the OP 
is using a PRI, I wouldn't think that parameter has any usefulness given 
digital facilities are not typically subjected to the same 
off-hook-startup issues as analog lines have.

In fact, I'd have to wonder what the status of a PRI call is 800 
milliseconds after initialing a PRI call (from an echo training 
perspective), and, what are we truly training against from the audio 
path perspective.

>> The rxgain and txgain values need only be expressed in units; the
>> numbers after the decimal point have no practical value.
> 
> Again, I thought that integer values were interpreted as percentages, while 
> real numbers were interpreted as decibel values?  Has this changed?  The code 
> seems to indicate that it does indeed accept and use decimal values, but that 
> the use of percentages in gain setting is no longer available.

I'm not positive on this, but I seem to remember that percentage values 
were never acceptable; someone jumped to that conclusion when 
documentation was rather thin on the topic. A percentage number doesn't 
make any sense from a pure transmission engineering / measurement 
perspective.

The point of that (initially) was the OP was tweaking gain values using 
the hundredth of a db, and he's looking for improvements that really 
belong in the units digit (of gain). The intent was to make changes such 
as 1.0, 2.0, or whatever value as opposed to 1.21, 1.22, etc.





More information about the asterisk-dev mailing list