diff options
author | mattf <mattf@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-10-27 00:43:59 +0000 |
---|---|---|
committer | mattf <mattf@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-10-27 00:43:59 +0000 |
commit | 744b434989f7512efa213c5a32bf4012e2c443c3 (patch) | |
tree | 5ad6e17c1c60c0a2a8837734b9f4bfec77d61848 /channels | |
parent | b548833b6cf9f4a3553c8f3c2d16736e3a8d9217 (diff) |
Make sure we turn on the DSP when we answer the call
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@87231 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_zap.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/channels/chan_zap.c b/channels/chan_zap.c index 9428a4359..0b2fb8885 100644 --- a/channels/chan_zap.c +++ b/channels/chan_zap.c @@ -5604,7 +5604,7 @@ static struct ast_channel *zt_new(struct zt_pvt *i, int state, int startpbx, int i->dsp = NULL; if (i->dsp) { i->dsp_features = features & ~DSP_PROGRESS_TALK; -#ifdef HAVE_PRI +#if defined(HAVE_PRI) || defined(HAVE_SS7) /* We cannot do progress detection until receives PROGRESS message */ if (i->outgoing && ((i->sig == SIG_PRI) || (i->sig == SIG_SS7))) { /* Remember requested DSP features, don't treat @@ -8699,6 +8699,10 @@ static void *ss7_linkset(void *data) ast_debug(1, "Queuing frame PROGRESS on CIC %d\n", p->cic); zap_queue_frame(p, &f, linkset); p->progress = 1; + if (p->dsp && p->dsp_features) { + ast_dsp_set_features(p->dsp, p->dsp_features); + p->dsp_features = 0; + } } break; default: @@ -8978,6 +8982,10 @@ static void *ss7_linkset(void *data) p = linkset->pvts[chanpos]; ast_mutex_lock(&p->lock); p->subs[SUB_REAL].needanswer = 1; + if (p->dsp && p->dsp_features) { + ast_dsp_set_features(p->dsp, p->dsp_features); + p->dsp_features = 0; + } zt_enable_ec(p); ast_mutex_unlock(&p->lock); } |