diff options
-rw-r--r-- | res/res_pjsip_session.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c index d548d29b8..a00299ebb 100644 --- a/res/res_pjsip_session.c +++ b/res/res_pjsip_session.c @@ -895,9 +895,16 @@ static pj_bool_t session_reinvite_on_rx_request(pjsip_rx_data *rdata) } if (!(sdp_info = pjsip_rdata_get_sdp_info(rdata)) || - (sdp_info->sdp_err != PJ_SUCCESS) || - !sdp_info->sdp || - !sdp_requires_deferral(session, sdp_info->sdp)) { + (sdp_info->sdp_err != PJ_SUCCESS)) { + return PJ_FALSE; + } + + if (!sdp_info->sdp) { + ast_queue_unhold(session->channel); + return PJ_FALSE; + } + + if (!sdp_requires_deferral(session, sdp_info->sdp)) { return PJ_FALSE; } |