aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authoroej <oej@f38db490-d61c-443f-a65b-d21fe96a405b>2007-05-18 18:18:59 +0000
committeroej <oej@f38db490-d61c-443f-a65b-d21fe96a405b>2007-05-18 18:18:59 +0000
commitda13ecec36a3b613009a7821f972f06b72421bef (patch)
tree20150a944b68f8f2dd89859c499ab697d5cfc5b2 /channels
parentba701081563bb92027a2036a97f9e33591952355 (diff)
Related to issue #9235 btw.
Merged revisions 65123 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ................ r65123 | oej | 2007-05-18 20:16:09 +0200 (Fri, 18 May 2007) | 10 lines Merged revisions 65122 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r65122 | oej | 2007-05-18 20:10:46 +0200 (Fri, 18 May 2007) | 2 lines Not getting an ACK to a 200 OK in the initial invite is critical to the call. ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@65124 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index cdb24875d..42ad3630f 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -14052,6 +14052,7 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
const char *required;
unsigned int required_profile = 0;
struct ast_channel *c = NULL; /* New channel */
+ int reinvite = 0;
/* Find out what they support */
if (!p->sipoptions) {
@@ -14354,6 +14355,7 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
else
ast_log(LOG_DEBUG, "Got a SIP re-transmit of INVITE for call %s\n", p->callid);
}
+ reinvite = 1;
c = p->owner;
}
@@ -14525,7 +14527,8 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
}
/* Respond to normal re-invite */
if (sendok)
- transmit_response_with_sdp(p, "200 OK", req, ast_test_flag(req, SIP_PKT_IGNORE) ? XMIT_UNRELIABLE : XMIT_CRITICAL);
+ /* If this is not a re-invite or something to ignore - it's critical */
+ transmit_response_with_sdp(p, "200 OK", req, (reinvite || ast_test_flag(req, SIP_PKT_IGNORE)) ? XMIT_UNRELIABLE : XMIT_CRITICAL);
}
p->invitestate = INV_TERMINATED;
break;