]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
MODENDP-131 with minor mods
authorBrian West <brian@freeswitch.org>
Fri, 26 Sep 2008 18:21:42 +0000 (18:21 +0000)
committerBrian West <brian@freeswitch.org>
Fri, 26 Sep 2008 18:21:42 +0000 (18:21 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9665 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_sofia/mod_sofia.h
src/mod/endpoints/mod_sofia/sofia.c

index f738ad396a97ef577ce747996742901e025c93c3..9f53371a7c213df3ac247c8cd9e32f194cdf91d6 100644 (file)
@@ -368,6 +368,7 @@ struct sofia_profile {
        uint32_t inuse;
        time_t started;
        uint32_t session_timeout;
+       uint32_t minimum_session_expires;
        uint32_t max_proceeding;
        uint32_t rtp_timeout_sec;
        uint32_t rtp_hold_timeout_sec;
index 1659346df9b9e9b9d1e13f284d92ee4fcf997936..489162ff08f623bc105310ee742b6ff6f2b34acc 100644 (file)
@@ -575,6 +575,7 @@ void *SWITCH_THREAD_FUNC sofia_profile_thread_run(switch_thread_t *thread, void
                                   NUTAG_ALLOW("NOTIFY"),
                                   NUTAG_ALLOW_EVENTS("talk"),
                                   NUTAG_SESSION_TIMER(profile->session_timeout),
+                                  TAG_IF(profile->minimum_session_expires, NUTAG_MIN_SE(profile->minimum_session_expires)),
                                   NTATAG_MAX_PROCEEDING(profile->max_proceeding),
                                   TAG_IF(profile->pres_type, NUTAG_ALLOW("PUBLISH")),
                                   TAG_IF(profile->pres_type, NUTAG_ALLOW("SUBSCRIBE")),
@@ -1682,6 +1683,12 @@ switch_status_t config_sofia(int reload, char *profile_name)
                                                if (!switch_true(val)) {
                                                        profile->pflags |= PFLAG_DISABLE_TIMER;
                                                }
+                                       } else if (!strcasecmp(var, "minimum-session-expires")) {
+                                               profile->minimum_session_expires = atoi(val);
+                                               /* per RFC 4028: minimum_session_expires must be > 90 */
+                                               if (profile->minimum_session_expires < 90) {
+                                                       profile->minimum_session_expires = 90;
+                                               }
                                        } else if (!strcasecmp(var, "enable-100rel")) {
                                                if (!switch_true(val)) {
                                                        profile->pflags |= PFLAG_DISABLE_100REL;