From: Matthew Fredrickson Date: Wed, 25 Oct 2006 19:24:40 +0000 (+0000) Subject: Send CPG when we get a CONTROL_PROGRESS frame and make sure that it sends ACM (not... X-Git-Tag: 1.6.0-beta1~3^2~4270 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6cc9d20b98dc6819f663bb30572e2bfe4b0df984;p=thirdparty%2Fasterisk.git Send CPG when we get a CONTROL_PROGRESS frame and make sure that it sends ACM (not CPG) when we get CONTROL_PROCEEDING. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46256 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_zap.c b/channels/chan_zap.c index e64c8bb5d5..09b005fa28 100644 --- a/channels/chan_zap.c +++ b/channels/chan_zap.c @@ -5359,7 +5359,7 @@ static int zt_indicate(struct ast_channel *chan, int condition, const void *data if (!p->proceeding && p->sig==SIG_SS7 && p->ss7 && !p->outgoing) { if (p->ss7->ss7) { ss7_grab(p, p->ss7); - isup_cpg(p->ss7->ss7, p->ss7call, CPG_EVENT_INBANDINFO); + isup_acm(p->ss7->ss7, p->ss7call); p->proceeding = 1; ss7_rel(p->ss7); @@ -5385,6 +5385,17 @@ static int zt_indicate(struct ast_channel *chan, int condition, const void *data } p->progress = 1; } +#endif +#ifdef HAVE_SS7 + if (!p->progress && p->sig==SIG_SS7 && p->ss7 && !p->outgoing) { + if (p->ss7->ss7) { + ss7_grab(p, p->ss7); + isup_cpg(p->ss7->ss7, p->ss7call, CPG_EVENT_INBANDINFO); + p->progress = 1; + ss7_rel(p->ss7); + + } + } #endif /* don't continue in ast_indicate */ res = 0; @@ -8358,6 +8369,7 @@ static void ss7_start_call(struct zt_pvt *p, struct zt_ss7 *linkset) if (res < 0) ast_log(LOG_WARNING, "Unable to set law on channel %d\n", p->channel); + p->proceeding = 1; isup_acm(ss7, p->ss7call); ast_mutex_unlock(&linkset->lock); @@ -8602,7 +8614,6 @@ static void *ss7_linkset(void *data) zt_loopback(p, 0); - isup_acm(ss7, p->ss7call); ss7_start_call(p, linkset); break; case ISUP_EVENT_REL: