If we get 200 OK back on INVITE after we send CANCEL, send ACK *and* send BYE
authorMark Spencer <markster@digium.com>
Wed, 14 Jul 2004 11:10:05 +0000 (11:10 +0000)
committerMark Spencer <markster@digium.com>
Wed, 14 Jul 2004 11:10:05 +0000 (11:10 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3434 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index bd74300..cc6bd58 100755 (executable)
@@ -6423,7 +6423,9 @@ static void handle_response(struct sip_pvt *p, int resp, char *rest, struct sip_
                                                struct ast_frame af = { AST_FRAME_NULL, };
                                                ast_queue_frame(p->owner, &af);
                                        }
                                                struct ast_frame af = { AST_FRAME_NULL, };
                                                ast_queue_frame(p->owner, &af);
                                        }
-                               }
+                               } else /* It's possible we're getting an ACK after we've tried to disconnect
+                                                 by sending CANCEL */
+                                       p->pendingbye = 1;
                                p->authtries = 0;
                                /* If I understand this right, the branch is different for a non-200 ACK only */
                                transmit_request(p, "ACK", seqno, 0, 1);
                                p->authtries = 0;
                                /* If I understand this right, the branch is different for a non-200 ACK only */
                                transmit_request(p, "ACK", seqno, 0, 1);