]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add sip_require_timer=true variable to enable require timer on session refresh that...
authorAnthony Minessale <anthm@freeswitch.org>
Thu, 26 Apr 2012 15:35:02 +0000 (10:35 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Thu, 26 Apr 2012 15:35:02 +0000 (10:35 -0500)
libs/sofia-sip/.update
libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c
src/mod/endpoints/mod_sofia/sofia_glue.c

index cf78cb49ef3892db7ca9a4bf4f74b5c6a8b0f59a..a02df0320905899cec3d5eec34e43a8c5dec1b6c 100644 (file)
@@ -1 +1 @@
-Tue Apr 10 16:19:10 CDT 2012
+Thu Apr 26 10:23:33 CDT 2012
index cc857a37169b5c666d5e34f4d8e2ad055e890c20..751b1cfff8793c04ca9e3d39cf5540ba9706b3e6 100644 (file)
@@ -4498,7 +4498,7 @@ session_timer_add_headers(struct session_timer *t,
                                        /* Min-SE: 0 is optional with initial INVITE */
                                        || !initial,
                                        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());
 
   return 1;
index 37f840cdddf101e853516dc5e066f7a4b017d621..09b599cfbbe7fff3123b39f3c49399f89100bce8 100644 (file)
@@ -2057,6 +2057,8 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
        char *mp = NULL, *mp_type = NULL;
        char *record_route = NULL;
        const char *recover_via = NULL;
+       int require_timer = 0;
+
 
        if (sofia_test_flag(tech_pvt, TFLAG_RECOVERING)) {
                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_num = caller_profile->caller_id_number;
        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_SELECT(SOA_RTP_SELECT_ALL)),
                                   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());
        } else {
                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(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(!require_timer, NUTAG_TIMER_AUTOREQUIRE(0)),
                                   TAG_IF(cseq, SIPTAG_CSEQ(cseq)),
                                   NUTAG_MEDIA_ENABLE(0),
                                   SIPTAG_CONTENT_TYPE_STR(mp_type ? mp_type : "application/sdp"),