aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_sip.c
diff options
context:
space:
mode:
authorautomerge <automerge@f38db490-d61c-443f-a65b-d21fe96a405b>2007-05-18 19:21:46 +0000
committerautomerge <automerge@f38db490-d61c-443f-a65b-d21fe96a405b>2007-05-18 19:21:46 +0000
commitba6356fbc0383d5104e9414f525bad297e7d5075 (patch)
tree399b838d69a0b50ed24f861a4f0fe17cd63896ec /channels/chan_sip.c
parent0e1b23b7d9562609bfea7ce25263027959edd1ad (diff)
automerge commit
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2-netsec@65167 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_sip.c')
-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 8188168a8..16b1097d1 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -10690,6 +10690,7 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
char *supported;
char *required;
unsigned int required_profile = 0;
+ int reinvite = 0;
/* Find out what they support */
if (!p->sipoptions) {
@@ -10843,6 +10844,7 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
} else {
if (option_debug > 1 && sipdebug)
ast_log(LOG_DEBUG, "Got a SIP re-invite for call %s\n", p->callid);
+ reinvite = 1;
c = p->owner;
}
if (!ignore && p)
@@ -10919,7 +10921,8 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
transmit_response(p, "180 Ringing", req);
break;
case AST_STATE_UP:
- transmit_response_with_sdp(p, "200 OK", req, 1);
+ /* If this is not a re-invite or something to ignore - it's critical */
+ transmit_response_with_sdp(p, "200 OK", req, (ignore || reinvite) ? 1 : 2);
break;
default:
ast_log(LOG_WARNING, "Don't know how to handle INVITE in state %d\n", c->_state);