# Configuring the echo canceller

To implement DCE transport, configure the echo canceller so that the echo suppressor is disabled, or so that the echo canceller is disabled and operates in bypass mode.

The following table shows the actions the application must take depending on the type of signal detected:

Signal | Frequency | Amplitude modulation | Phase reversals | Action to take on both ends
ANS | 2100 +/- 15 Hz | 0 | 0 | Disable echo suppressor
ANS/ | 2100 +/- 15 Hz | 0 | 450 +/- 25 ms | Disable echo canceller and echo suppressor
ANSam | 2100 +/- 1 Hz | 15 +/- 0.1 Hz | 0 | Disable echo suppressor
ANSam/ | 2100 +/- 1 Hz | 15 +/- 0.1 Hz | 450 +/- 25 ms | Disable echo canceller and echo suppressor

The following sample code shows how to configure the echo canceller with echo suppression disabled and to disable the echo canceller so that it operates in bypass mode:

If (nEchoSuppress)
{
EchoParms[chn].size = sizeof(ADI_ECHOCANCEL_PARMS);
EchoParms[chn].mode |= ADI_ECHOCANCEL_SUPPRESS;
ret = adiModifyEchoCanceller(hPstnCallCtl[chn],&EchoParms[chn]);
}
else if (nEchoBypass)
{
EchoParms[ichn].size = sizeof(ADI_ECHOCANCEL_PARMS);
EchoParms[chn].mode |= ADI_ECHOCANCEL_BYPASS;
ret = adiModifyEchoCanceller(hPstnCallCtl[chn],&EchoParms[chn]);
}