diff --git a/res/res_pjsip_dtmf_info.c b/res/res_pjsip_dtmf_info.c index b6a0b4a1ec..78d529c30b 100644 --- a/res/res_pjsip_dtmf_info.c +++ b/res/res_pjsip_dtmf_info.c @@ -89,7 +89,13 @@ static int dtmf_info_incoming_request(struct ast_sip_session *session, struct pj char event = '\0'; unsigned int duration = 100; - char is_dtmf = is_media_type(rdata, "dtmf"); + char is_dtmf; + + if (!session->channel) { + return 0; + } + + is_dtmf = is_media_type(rdata, "dtmf"); if (!is_dtmf && !is_media_type(rdata, "dtmf-relay")) { return 0; diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c index 91e3abed8a..bbd74eeb58 100644 --- a/res/res_pjsip_session.c +++ b/res/res_pjsip_session.c @@ -2627,6 +2627,10 @@ static pjsip_redirect_op session_inv_on_redirected(pjsip_inv_session *inv, const struct ast_sip_session *session = inv->mod_data[session_module.id]; const pjsip_sip_uri *uri; + if (!session->channel) { + return PJSIP_REDIRECT_STOP; + } + if (session->endpoint->redirect_method == AST_SIP_REDIRECT_URI_PJSIP) { return PJSIP_REDIRECT_ACCEPT; }