aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-07-14 11:10:05 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-07-14 11:10:05 +0000
commit11732cd6d95a5d940b4e3fafd50d6ee0fa26e9da (patch)
tree60680f599d2be7fad03ab0872383564aea6b0198 /channels
parent41b711b64e10228e60312cf16610f5f5e67ecd91 (diff)
If we get 200 OK back on INVITE after we send CANCEL, send ACK *and* send BYE
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3434 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rwxr-xr-xchannels/chan_sip.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index bd743000f..cc6bd5868 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -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);
}
- }
+ } 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);