add sip_require_timer=true variable to enable require timer on session refresh that breaks finicky endpoints
This commit is contained in:
parent
b123214eff
commit
b553d62fbd
|
@ -1 +1 @@
|
||||||
Tue Apr 10 16:19:10 CDT 2012
|
Thu Apr 26 10:23:33 CDT 2012
|
||||||
|
|
|
@ -4498,7 +4498,7 @@ session_timer_add_headers(struct session_timer *t,
|
||||||
/* Min-SE: 0 is optional with initial INVITE */
|
/* Min-SE: 0 is optional with initial INVITE */
|
||||||
|| !initial,
|
|| !initial,
|
||||||
SIPTAG_MIN_SE(min_se)),
|
SIPTAG_MIN_SE(min_se)),
|
||||||
TAG_IF(0 && autorequire && refresher == nua_remote_refresher && expires != 0, SIPTAG_REQUIRE_STR("timer")),
|
TAG_IF(autorequire && refresher == nua_remote_refresher && expires != 0, SIPTAG_REQUIRE_STR("timer")),
|
||||||
TAG_END());
|
TAG_END());
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -2057,6 +2057,8 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
|
||||||
char *mp = NULL, *mp_type = NULL;
|
char *mp = NULL, *mp_type = NULL;
|
||||||
char *record_route = NULL;
|
char *record_route = NULL;
|
||||||
const char *recover_via = NULL;
|
const char *recover_via = NULL;
|
||||||
|
int require_timer = 0;
|
||||||
|
|
||||||
|
|
||||||
if (sofia_test_flag(tech_pvt, TFLAG_RECOVERING)) {
|
if (sofia_test_flag(tech_pvt, TFLAG_RECOVERING)) {
|
||||||
const char *recover_contact = switch_channel_get_variable(tech_pvt->channel, "sip_recover_contact");
|
const char *recover_contact = switch_channel_get_variable(tech_pvt->channel, "sip_recover_contact");
|
||||||
|
@ -2087,6 +2089,11 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ((val = switch_channel_get_variable(channel, "sip_require_timer")) && switch_true(val)) {
|
||||||
|
require_timer = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
cid_name = caller_profile->caller_id_name;
|
cid_name = caller_profile->caller_id_name;
|
||||||
cid_num = caller_profile->caller_id_number;
|
cid_num = caller_profile->caller_id_number;
|
||||||
sofia_glue_tech_prepare_codecs(tech_pvt);
|
sofia_glue_tech_prepare_codecs(tech_pvt);
|
||||||
|
@ -2607,6 +2614,7 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
|
||||||
TAG_IF(!zstr(tech_pvt->local_sdp_str), SOATAG_RTP_SORT(SOA_RTP_SORT_REMOTE)),
|
TAG_IF(!zstr(tech_pvt->local_sdp_str), SOATAG_RTP_SORT(SOA_RTP_SORT_REMOTE)),
|
||||||
TAG_IF(!zstr(tech_pvt->local_sdp_str), SOATAG_RTP_SELECT(SOA_RTP_SELECT_ALL)),
|
TAG_IF(!zstr(tech_pvt->local_sdp_str), SOATAG_RTP_SELECT(SOA_RTP_SELECT_ALL)),
|
||||||
TAG_IF(rep, SIPTAG_REPLACES_STR(rep)),
|
TAG_IF(rep, SIPTAG_REPLACES_STR(rep)),
|
||||||
|
TAG_IF(!require_timer, NUTAG_TIMER_AUTOREQUIRE(0)),
|
||||||
TAG_IF(!zstr(tech_pvt->local_sdp_str), SOATAG_HOLD(holdstr)), TAG_END());
|
TAG_IF(!zstr(tech_pvt->local_sdp_str), SOATAG_HOLD(holdstr)), TAG_END());
|
||||||
} else {
|
} else {
|
||||||
nua_invite(tech_pvt->nh,
|
nua_invite(tech_pvt->nh,
|
||||||
|
@ -2632,6 +2640,7 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
|
||||||
TAG_IF(!zstr(route), SIPTAG_ROUTE_STR(route)),
|
TAG_IF(!zstr(route), SIPTAG_ROUTE_STR(route)),
|
||||||
TAG_IF(!zstr(invite_route_uri), NUTAG_INITIAL_ROUTE_STR(invite_route_uri)),
|
TAG_IF(!zstr(invite_route_uri), NUTAG_INITIAL_ROUTE_STR(invite_route_uri)),
|
||||||
TAG_IF(tech_pvt->profile->minimum_session_expires, NUTAG_MIN_SE(tech_pvt->profile->minimum_session_expires)),
|
TAG_IF(tech_pvt->profile->minimum_session_expires, NUTAG_MIN_SE(tech_pvt->profile->minimum_session_expires)),
|
||||||
|
TAG_IF(!require_timer, NUTAG_TIMER_AUTOREQUIRE(0)),
|
||||||
TAG_IF(cseq, SIPTAG_CSEQ(cseq)),
|
TAG_IF(cseq, SIPTAG_CSEQ(cseq)),
|
||||||
NUTAG_MEDIA_ENABLE(0),
|
NUTAG_MEDIA_ENABLE(0),
|
||||||
SIPTAG_CONTENT_TYPE_STR(mp_type ? mp_type : "application/sdp"),
|
SIPTAG_CONTENT_TYPE_STR(mp_type ? mp_type : "application/sdp"),
|
||||||
|
|
Loading…
Reference in New Issue