aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authormattf <mattf@f38db490-d61c-443f-a65b-d21fe96a405b>2006-10-25 19:24:40 +0000
committermattf <mattf@f38db490-d61c-443f-a65b-d21fe96a405b>2006-10-25 19:24:40 +0000
commit4f3a6ce4fabc652ee894358a8653a3f7ba681165 (patch)
tree027f9db91bc1d97573f8458cf579d7071d4b6789 /channels
parent75a46b803d5e1f381d8b58260649120575571c4a (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')
-rw-r--r--channels/chan_zap.c15
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: