Remove Contact header from BYE and CANCEL requests.
Per rfc3261 the Contact header is not applicable and MUST not appear in the request. FS-5868 #resolve
This commit is contained in:
parent
6bfc05b81e
commit
747322dcc6
|
@ -465,6 +465,7 @@ switch_status_t sofia_on_hangup(switch_core_session_t *session)
|
||||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Sending BYE to %s\n", switch_channel_get_name(channel));
|
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Sending BYE to %s\n", switch_channel_get_name(channel));
|
||||||
if (!sofia_test_flag(tech_pvt, TFLAG_BYE)) {
|
if (!sofia_test_flag(tech_pvt, TFLAG_BYE)) {
|
||||||
nua_bye(tech_pvt->nh,
|
nua_bye(tech_pvt->nh,
|
||||||
|
SIPTAG_CONTACT(SIP_NONE),
|
||||||
TAG_IF(!zstr(reason), SIPTAG_REASON_STR(reason)),
|
TAG_IF(!zstr(reason), SIPTAG_REASON_STR(reason)),
|
||||||
TAG_IF(call_info, SIPTAG_CALL_INFO_STR(call_info)),
|
TAG_IF(call_info, SIPTAG_CALL_INFO_STR(call_info)),
|
||||||
TAG_IF(!zstr(tech_pvt->user_via), SIPTAG_VIA_STR(tech_pvt->user_via)),
|
TAG_IF(!zstr(tech_pvt->user_via), SIPTAG_VIA_STR(tech_pvt->user_via)),
|
||||||
|
@ -478,6 +479,7 @@ switch_status_t sofia_on_hangup(switch_core_session_t *session)
|
||||||
}
|
}
|
||||||
if (!sofia_test_flag(tech_pvt, TFLAG_BYE)) {
|
if (!sofia_test_flag(tech_pvt, TFLAG_BYE)) {
|
||||||
nua_cancel(tech_pvt->nh,
|
nua_cancel(tech_pvt->nh,
|
||||||
|
SIPTAG_CONTACT(SIP_NONE),
|
||||||
TAG_IF(call_info, SIPTAG_CALL_INFO_STR(call_info)),
|
TAG_IF(call_info, SIPTAG_CALL_INFO_STR(call_info)),
|
||||||
TAG_IF(!zstr(reason), SIPTAG_REASON_STR(reason)), TAG_IF(!zstr(bye_headers), SIPTAG_HEADER_STR(bye_headers)), TAG_END());
|
TAG_IF(!zstr(reason), SIPTAG_REASON_STR(reason)), TAG_IF(!zstr(bye_headers), SIPTAG_HEADER_STR(bye_headers)), TAG_END());
|
||||||
}
|
}
|
||||||
|
|
|
@ -7750,6 +7750,7 @@ void sofia_handle_sip_i_refer(nua_t *nua, sofia_profile_t *profile, nua_handle_t
|
||||||
q850 = switch_core_session_sprintf(a_session, "Q.850;cause=16;text=\"normal_clearing\"");
|
q850 = switch_core_session_sprintf(a_session, "Q.850;cause=16;text=\"normal_clearing\"");
|
||||||
}
|
}
|
||||||
nua_bye(b_tech_pvt->nh,
|
nua_bye(b_tech_pvt->nh,
|
||||||
|
SIPTAG_CONTACT(SIP_NONE),
|
||||||
TAG_IF(!zstr(q850), SIPTAG_REASON_STR(q850)),
|
TAG_IF(!zstr(q850), SIPTAG_REASON_STR(q850)),
|
||||||
TAG_IF(!zstr(tech_pvt->user_via), SIPTAG_VIA_STR(tech_pvt->user_via)), TAG_END());
|
TAG_IF(!zstr(tech_pvt->user_via), SIPTAG_VIA_STR(tech_pvt->user_via)), TAG_END());
|
||||||
|
|
||||||
|
|
|
@ -2483,7 +2483,7 @@ void sofia_reg_handle_sip_r_challenge(int status,
|
||||||
if (session) {
|
if (session) {
|
||||||
switch_channel_hangup(switch_core_session_get_channel(session), SWITCH_CAUSE_MANDATORY_IE_MISSING);
|
switch_channel_hangup(switch_core_session_get_channel(session), SWITCH_CAUSE_MANDATORY_IE_MISSING);
|
||||||
} else {
|
} else {
|
||||||
nua_cancel(nh, TAG_END());
|
nua_cancel(nh, SIPTAG_CONTACT(SIP_NONE), TAG_END());
|
||||||
}
|
}
|
||||||
|
|
||||||
end:
|
end:
|
||||||
|
|
Loading…
Reference in New Issue