aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authormattf <mattf@f38db490-d61c-443f-a65b-d21fe96a405b>2007-10-27 00:43:59 +0000
committermattf <mattf@f38db490-d61c-443f-a65b-d21fe96a405b>2007-10-27 00:43:59 +0000
commit744b434989f7512efa213c5a32bf4012e2c443c3 (patch)
tree5ad6e17c1c60c0a2a8837734b9f4bfec77d61848 /channels
parentb548833b6cf9f4a3553c8f3c2d16736e3a8d9217 (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.c10
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);
}