diff options
author | mattf <mattf@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-05-09 17:25:21 +0000 |
---|---|---|
committer | mattf <mattf@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-05-09 17:25:21 +0000 |
commit | 5912d3d79c6b98c6dac96a56e20de68a1f8a4d7c (patch) | |
tree | 822894bf28c677c18e32d329366da4910a8e6328 /channels/chan_zap.c | |
parent | bb2608c817815697bf5eec6ee94eeac1d04855e1 (diff) |
Merged revisions 63653 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r63653 | mattf | 2007-05-09 12:20:20 -0500 (Wed, 09 May 2007) | 2 lines
Make sure we only create a DSP if it's requested on SUB_REAL
........
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@63654 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_zap.c')
-rw-r--r-- | channels/chan_zap.c | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/channels/chan_zap.c b/channels/chan_zap.c index 602fa486e..bcf823451 100644 --- a/channels/chan_zap.c +++ b/channels/chan_zap.c @@ -5216,26 +5216,28 @@ static struct ast_channel *zt_new(struct zt_pvt *i, int state, int startpbx, int i->subs[index].linear = 0; zt_setlinear(i->subs[index].zfd, i->subs[index].linear); features = 0; - if (i->busydetect && CANBUSYDETECT(i)) - features |= DSP_FEATURE_BUSY_DETECT; - if ((i->callprogress & 1) && CANPROGRESSDETECT(i)) - features |= DSP_FEATURE_CALL_PROGRESS; - if ((!i->outgoing && (i->callprogress & 4)) || - (i->outgoing && (i->callprogress & 2))) { - features |= DSP_FEATURE_FAX_DETECT; - } + if (index == SUB_REAL) { + if (i->busydetect && CANBUSYDETECT(i)) + features |= DSP_FEATURE_BUSY_DETECT; + if ((i->callprogress & 1) && CANPROGRESSDETECT(i)) + features |= DSP_FEATURE_CALL_PROGRESS; + if ((!i->outgoing && (i->callprogress & 4)) || + (i->outgoing && (i->callprogress & 2))) { + features |= DSP_FEATURE_FAX_DETECT; + } #ifdef ZT_TONEDETECT - x = ZT_TONEDETECT_ON | ZT_TONEDETECT_MUTE; - if (ioctl(i->subs[index].zfd, ZT_TONEDETECT, &x)) { + x = ZT_TONEDETECT_ON | ZT_TONEDETECT_MUTE; + if (ioctl(i->subs[index].zfd, ZT_TONEDETECT, &x)) { #endif - i->hardwaredtmf = 0; - features |= DSP_FEATURE_DTMF_DETECT; + i->hardwaredtmf = 0; + features |= DSP_FEATURE_DTMF_DETECT; #ifdef ZT_TONEDETECT - } else if (NEED_MFDETECT(i)) { - i->hardwaredtmf = 1; - features |= DSP_FEATURE_DTMF_DETECT; - } + } else if (NEED_MFDETECT(i)) { + i->hardwaredtmf = 1; + features |= DSP_FEATURE_DTMF_DETECT; + } #endif + } if (features) { if (i->dsp) { ast_log(LOG_DEBUG, "Already have a dsp on %s?\n", tmp->name); |