Send CPG when we get a CONTROL_PROGRESS frame and make sure that it sends ACM (not...
authorMatthew Fredrickson <creslin@digium.com>
Wed, 25 Oct 2006 19:24:40 +0000 (19:24 +0000)
committerMatthew Fredrickson <creslin@digium.com>
Wed, 25 Oct 2006 19:24:40 +0000 (19:24 +0000)
we get CONTROL_PROCEEDING.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46256 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_zap.c

index e64c8bb..09b005f 100644 (file)
@@ -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: