Merge "chan_pjsip: Fix crash on reINVITE before initial INVITE completes." into 13

This commit is contained in:
Joshua Colp
2015-10-08 13:48:14 -05:00
committed by Gerrit Code Review
2 changed files with 16 additions and 11 deletions

View File

@@ -2085,7 +2085,8 @@ static int chan_pjsip_incoming_request(struct ast_sip_session *session, struct p
return 0;
}
if (session->inv_session->state >= PJSIP_INV_STATE_CONFIRMED) {
/* Check for a to-tag to determine if this is a reinvite */
if (rdata->msg_info.to->tag.slen) {
/* Weird case. We've received a reinvite but we don't have a channel. The most
* typical case for this happening is that a blind transfer fails, and so the
* transferer attempts to reinvite himself back into the call. We already got
@@ -2132,8 +2133,9 @@ static int call_pickup_incoming_request(struct ast_sip_session *session, pjsip_r
struct ast_features_pickup_config *pickup_cfg;
struct ast_channel *chan;
/* We don't care about reinvites */
if (session->inv_session->state >= PJSIP_INV_STATE_CONFIRMED) {
/* Check for a to-tag to determine if this is a reinvite */
if (rdata->msg_info.to->tag.slen) {
/* We don't care about reinvites */
return 0;
}
@@ -2180,8 +2182,9 @@ static int pbx_start_incoming_request(struct ast_sip_session *session, pjsip_rx_
{
int res;
/* We don't care about reinvites */
if (session->inv_session->state >= PJSIP_INV_STATE_CONFIRMED) {
/* Check for a to-tag to determine if this is a reinvite */
if (rdata->msg_info.to->tag.slen) {
/* We don't care about reinvites */
return 0;
}