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 | 328cd0fbc6b35cdbb069cd0f309e45bd7320ca1c (patch) | |
tree | 7e39ed167071582a8c6b88044b5e2d174fdb223f | |
parent | 5d00107afa202e2de98dd1c24af7565686603f89 (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
-rw-r--r-- | drivers/dahdi/dahdi-base.c | 4 | ||||
-rw-r--r-- | include/dahdi/dahdi_config.h | 7 |
2 files changed, 11 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) diff --git a/include/dahdi/dahdi_config.h b/include/dahdi/dahdi_config.h index a487e4f..befe845 100644 --- a/include/dahdi/dahdi_config.h +++ b/include/dahdi/dahdi_config.h @@ -119,6 +119,13 @@ */ #define CONFIG_DAHDI_CORE_TIMER +/* + * Define CONFIG_DAHDI_NO_ECHOCAN_DISABLE to prevent the 2100Hz tone detector + * from disabling any installed software echocan. + * + */ +/* #define CONFIG_DAHDI_NO_ECHOCAN_DISABLE */ + /* * Uncomment if you happen have an early TDM400P Rev H which * sometimes forgets its PCI ID to have wcfxs match essentially all |