diff options
author | markster <markster@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2003-06-26 15:31:27 +0000 |
---|---|---|
committer | markster <markster@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2003-06-26 15:31:27 +0000 |
commit | 57259a61fe1f92cd56c2e4b4d31ddf23bf42a013 (patch) | |
tree | 576c3dcfb1c57a85e7844b51ff1064ec91386deb /zaptel.c | |
parent | 92af76d7b7ef1f7963cedf17656f8b2573eadeca (diff) |
Fix conferencing mode when soft echo can is in place
git-svn-id: http://svn.digium.com/svn/zaptel/trunk@202 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'zaptel.c')
-rwxr-xr-x | zaptel.c | 16 |
1 files changed, 13 insertions, 3 deletions
@@ -4190,11 +4190,21 @@ static inline void __zt_process_getaudio_chunk(struct zt_chan *ss, unsigned char txb[x] = ZT_LIN2X(getlin[x], ms); break; case ZT_CONF_DIGITALMON: - /* Add monitored channel */ + /* Real digital monitoring, but still echo cancel if desired */ if (chans[ms->confna]->flags & ZT_FLAG_PSEUDO) { - memcpy(txb, chans[ms->confna]->getraw, ZT_CHUNKSIZE); + if (ms->ec) { + for (x=0;x<ZT_CHUNKSIZE;x++) + txb[x] = ZT_LIN2X(chans[ms->confna]->getlin[x], ms); + } else { + memcpy(txb, chans[ms->confna]->getraw, ZT_CHUNKSIZE); + } } else { - memcpy(txb, chans[ms->confna]->putraw, ZT_CHUNKSIZE); + if (ms->ec) { + for (x=0;x<ZT_CHUNKSIZE;x++) + txb[x] = ZT_LIN2X(chans[ms->confna]->putlin[x], ms); + } else { + memcpy(txb, chans[ms->confna]->putraw, ZT_CHUNKSIZE); + } } break; } |