move the processing of SDP data to after determining the user (bug #3660)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/v1-0@5096 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.0
Russell Bryant 21 years ago
parent a004c5ca9e
commit f1c93a8ff3

@ -18,6 +18,9 @@ Asterisk 1.0.6
-- Asterisk was not sending the same From: line in SIP messages during certain times.
Fixed to make sure it stays the same. This makes some providers happier, to a working state.
-- Certain circumstances involving a blank callerid caused asterisk to segmentation fault.
-- There was a problem incorrectly matching codec availablity when global preferences were
different from that of the user. To fix this, processing of SDP data has been moved
to after determining who the call is coming from.
-- chan_zap:
-- During a certain scenario when using flash and '#' transfers you would hear the
other person and the music they were hearing. This has been fixed.

@ -7257,7 +7257,6 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc
/* We do NOT destroy p here, so that our response will be accepted */
return 0;
}
/* Process the SDP portion */
if (!ignore) {
/* Use this as the basis */
if (debug)
@ -7269,16 +7268,6 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc
p->pendinginvite = seqno;
copy_request(&p->initreq, req);
check_via(p, req);
if (!ast_strlen_zero(get_header(req, "Content-Type"))) {
if (process_sdp(p, req))
return -1;
} else {
p->jointcapability = p->capability;
ast_log(LOG_DEBUG, "Hm.... No sdp for the moment\n");
}
/* Queue NULL frame to prod ast_rtp_bridge if appropriate */
if (p->owner)
ast_queue_frame(p->owner, &af);
} else if (debug)
ast_verbose("Ignoring this request\n");
if (!p->lastinvite && !ignore && !p->owner) {
@ -7295,6 +7284,17 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc
}
return 0;
}
/* Process the SDP portion */
if (!ast_strlen_zero(get_header(req, "Content-Type"))) {
if (process_sdp(p, req))
return -1;
} else {
p->jointcapability = p->capability;
ast_log(LOG_DEBUG, "Hm.... No sdp for the moment\n");
}
/* Queue NULL frame to prod ast_rtp_bridge if appropriate */
if (p->owner)
ast_queue_frame(p->owner, &af);
/* Initialize the context if it hasn't been already */
if (ast_strlen_zero(p->context))
strncpy(p->context, default_context, sizeof(p->context) - 1);

Loading…
Cancel
Save