[Freeswitch-users] Hardware echo cancellation.

Steve Underwood steveu at coppice.org
Thu Nov 19 08:15:15 PST 2009

On 11/19/2009 11:54 PM, David Knell wrote:
> Hi Brian,
>> It just doesn't belong in user space or kernel space in the machine
>> for true performance you should do it in hardware... I'm pretty sure
>> the poor box would die if you tried it on 32 E1's at the same time.
> Disagree somewhat.  The challenge that echo cancellers further from the
> hardware face is having some idea of the size of the buffers between the
> canceller and the wire; provided that this is known, or is small in
> comparison to the canceller's tail length, it can, in principle, go
> anywhere.  All other things being equal, the right place for a software
> EC is in user space: can be done in a cross-platform way, can use
> FPU/MMX/SSE without guilt and voodoo, etc.  And there is no reason why
> the same algorithm would perform differently if implemented in
> "hardware" or on the host CPU.
> And the OP only needed four E1s..
The audio path between kernel and user space is not stable with any 
current PC based telephony system. At some point in the day the odd 
chunk of data is lost here and there, whether you use asterisk, 
callweaver, yate or FS, with dahdi or sangoma. This is the key problem 
for user space echo cancellation. When the path hiccups, the EC goes 
crazy, and howls. So far kernel space EC has been the only way to keep 
the path length rock solid.

There is an Intel development platform which tries to do EC with OSLEC 
in user space. That's the only delivered system I know that tries to do 
this. Its very quirky.


More information about the FreeSWITCH-users mailing list