how to using speex lib to cancel echo in IP phone?

kafeikejian
Joined: Fri 03 of Sep, 2010

how to using speex lib to cancel echo in IP phone?

Posted:Fri 03 of Sep, 2010 (11:41 UTC)
Hi:
I am developing an IP Phone on ARM(samsung 6410; CPU:667MHZ), and use lib mediastreamer.2.6.0 for audio communication,
but now the echo occur while talking. In the lib mediastreamer.2.6.0, I find a filter can do echo Cancellation by calling lib speex.
I active it to filter the collected voice, but the telephone receiver can't hear any voice. Maybe I setup parameters wrong, the parameters
are as follow:

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

int ec_tail_len = 100;
int ec_delay = 20;
int ec_framesize = 0;
if (use_ec) {
stream->ec=ms_filter_new(MS_NEW_SPEEX_EC_ID);
ms_filter_call_method(stream->ec,MS_FILTER_NEW_SET_SAMPLE_RATE,&pt->clock_rate);
//inec_tail_len = 100;
//ec_delay = ;
if (ec_tail_len!=0)
ms_filter_call_method(stream->ec,MS_ECHO_CANCELLER_SET_TAIL_LENGTH,&ec_tail_len);
if (ec_delay!=0)
ms_filter_call_method(stream->ec,MS_ECHO_CANCELLER_SET_DELAY,&ec_delay);
if (ec_framesize!=0)
ms_filter_call_method(stream->ec,MS_ECHO_CANCELLER_SET_FRAMESIZE,&ec_framesize);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Expecting anybody can give me some advices to cancel the hateful echo.
Best regards!