diff options
author | Shaun Ruffell <sruffell@digium.com> | 2010-02-27 01:16:23 +0000 |
---|---|---|
committer | Shaun Ruffell <sruffell@digium.com> | 2010-02-27 01:16:23 +0000 |
commit | 8804d528fc2b71baeb104b6a15b1eb1c121a8ce7 (patch) | |
tree | 7e39ed167071582a8c6b88044b5e2d174fdb223f /drivers | |
parent | ebe1377699bc01f76f9488f5c65a427397f3e885 (diff) |
dahdi: Add option to disable the EC disable tone detection algorithm.
Define CONFIG_DAHDI_NO_ECHOCAN_DISABLE in include/dahdi/dahdi_config.h in
order to prevent the tone detector from disabling software echocan.
I slightly modified the noechodisable.patch.
(closes issue #16805)
Reported by: sles
Patches:
noechodisable.patch uploaded by sles (license 991)
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8162 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/dahdi/dahdi-base.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/dahdi/dahdi-base.c b/drivers/dahdi/dahdi-base.c index 34eddd5..673b84e 100644 --- a/drivers/dahdi/dahdi-base.c +++ b/drivers/dahdi/dahdi-base.c @@ -6181,6 +6181,7 @@ static inline void __dahdi_process_getaudio_chunk(struct dahdi_chan *ss, unsigne for (x=0;x<DAHDI_CHUNKSIZE;x++) getlin[x] = DAHDI_XLAW(txb[x], ms); +#ifndef CONFIG_DAHDI_NO_ECHOCAN_DISABLE if (ms->ec_state && (ms->ec_state->status.mode == ECHO_MODE_ACTIVE) && !ms->ec_state->features.CED_tx_detect) { for (x = 0; x < DAHDI_CHUNKSIZE; x++) { if (echo_can_disable_detector_update(&ms->ec_state->txecdis, getlin[x])) { @@ -6190,6 +6191,7 @@ static inline void __dahdi_process_getaudio_chunk(struct dahdi_chan *ss, unsigne } } } +#endif if ((!ms->confmute && !ms->dialing) || (ms->flags & DAHDI_FLAG_PSEUDO)) { /* Handle conferencing on non-clear channel and non-HDLC channels */ @@ -7213,6 +7215,7 @@ static inline void __dahdi_process_putaudio_chunk(struct dahdi_chan *ss, unsigne putlin[x] = DAHDI_XLAW(rxb[x], ms); } +#ifndef CONFIG_DAHDI_NO_ECHOCAN_DISABLE if (ms->ec_state && (ms->ec_state->status.mode == ECHO_MODE_ACTIVE) && !ms->ec_state->features.CED_rx_detect) { for (x = 0; x < DAHDI_CHUNKSIZE; x++) { if (echo_can_disable_detector_update(&ms->ec_state->rxecdis, putlin[x])) { @@ -7222,6 +7225,7 @@ static inline void __dahdi_process_putaudio_chunk(struct dahdi_chan *ss, unsigne } } } +#endif /* if doing rx tone decoding */ if (ms->rxp1 && ms->rxp2 && ms->rxp3) |