diff options
author | mattf <mattf@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-10-25 19:24:40 +0000 |
---|---|---|
committer | mattf <mattf@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-10-25 19:24:40 +0000 |
commit | 4f3a6ce4fabc652ee894358a8653a3f7ba681165 (patch) | |
tree | 027f9db91bc1d97573f8458cf579d7071d4b6789 /channels/chan_zap.c | |
parent | 75a46b803d5e1f381d8b58260649120575571c4a (diff) |
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: http://svn.digium.com/svn/asterisk/trunk@46256 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_zap.c')
-rw-r--r-- | channels/chan_zap.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/channels/chan_zap.c b/channels/chan_zap.c index e64c8bb5d..09b005fa2 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); @@ -5386,6 +5386,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; break; @@ -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: |