[Freeswitch-users] Hardware echo cancellation.

Steve Underwood steveu at coppice.org
Thu Nov 19 17:57:34 PST 2009


On 11/20/2009 05:15 AM, David Knell wrote:
> On Fri, 2009-11-20 at 00:15 +0800, Steve Underwood wrote:
>
>    
>> 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.
>>      
> Why do you think this is?  Getting data from kernel space to user space
> isn't something which it's difficult to do reliably: the disk system
> manages it.  Even if data is being lost, buffer overruns can be dealt
> with by using bigger buffers, or timestamping blocks of data on their
> way in so that missing blocks can be detected.
>    
Disk isn't audio. Audio is real time, and real time constraints are a 
harsh mistress. Big buffers are out of the question, due to latency. 
Some mitigation could be provided if you can detect where missing chunks 
occur and their exact size. Right now, the I/O schemes do not provide 
for that, and incorporating support would be tough. You'd need some out 
of band indication, like an ioctl or something, which would lead to more 
user space/kernel space exchanges, further increasing the problem.

Steve





More information about the FreeSWITCH-users mailing list