From 8a29557984a3bfdce4802ba37eeddc39cb795fe9 Mon Sep 17 00:00:00 2001 From: Brian West Date: Fri, 26 Sep 2008 18:21:42 +0000 Subject: [PATCH] MODENDP-131 with minor mods git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9665 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_sofia/mod_sofia.h | 1 + src/mod/endpoints/mod_sofia/sofia.c | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.h b/src/mod/endpoints/mod_sofia/mod_sofia.h index f738ad396a..9f53371a7c 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.h +++ b/src/mod/endpoints/mod_sofia/mod_sofia.h @@ -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; diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index 1659346df9..489162ff08 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -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;