[Freeswitch-svn] [commit] r8114 - in freeswitch/trunk: conf/sip_profiles src/mod/endpoints/mod_sofia

Freeswitch SVN mikej at freeswitch.org
Mon Apr 14 15:20:12 EDT 2008


Author: mikej
Date: Mon Apr 14 15:20:12 2008
New Revision: 8114

Modified:
   freeswitch/trunk/conf/sip_profiles/default.xml
   freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h
   freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c

Log:
add settings to disable timer and 100rel support by profile (MODENDP-102)

Modified: freeswitch/trunk/conf/sip_profiles/default.xml
==============================================================================
--- freeswitch/trunk/conf/sip_profiles/default.xml	(original)
+++ freeswitch/trunk/conf/sip_profiles/default.xml	Mon Apr 14 15:20:12 2008
@@ -34,6 +34,8 @@
     <!-- ip address to bind to -->
     <param name="sip-ip" value="$${local_ip_v4}"/>
     <param name="hold-music" value="$${moh_uri}"/>
+    <!--<param name="enable-timer" value="false"/>-->
+    <!--<param name="enable-100rel" value="false"/>-->
     <!--<param name="apply-inbound-acl" value="lan"/>-->
     <!--<param name="apply-register-acl" value="lan"/>-->
     <!--<param name="dtmf-type" value="info"/>-->

Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h	(original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h	Mon Apr 14 15:20:12 2008
@@ -138,7 +138,9 @@
 	PFLAG_SECURE = (1 << 15),
 	PFLAG_BLIND_AUTH = (1 << 16),
 	PFLAG_WORKER_RUNNING = (1 << 17),
-	PFLAG_UNREG_OPTIONS_FAIL = (1 << 18)
+	PFLAG_UNREG_OPTIONS_FAIL = (1 << 18),
+	PFLAG_DISABLE_TIMER = (1 << 19),
+	PFLAG_DISABLE_100REL = (1 << 20)
 } PFLAGS;
 
 typedef enum {

Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c	(original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c	Mon Apr 14 15:20:12 2008
@@ -497,6 +497,9 @@
 	sip_alias_node_t *node;
 	switch_event_t *s_event;
 	int tportlog = 0;
+	int use_100rel = !sofia_test_pflag(profile, PFLAG_DISABLE_100REL);
+	int use_timer = !sofia_test_pflag(profile, PFLAG_DISABLE_TIMER);
+	const char *supported = NULL;
 
 	switch_mutex_lock(mod_sofia_globals.mutex);
 	mod_sofia_globals.threads++;
@@ -517,6 +520,16 @@
 		tportlog = 1;
 	}
 
+	if (use_100rel && use_timer) {
+		supported = "100rel, precondition, timer";
+	} else if (use_100rel) {
+		supported = "100rel, precondition";
+	} else if (use_timer) {
+		supported = "timer, precondition";
+	} else {
+		supported = "precondition";
+	}
+
 	profile->nua = nua_create(profile->s_root,	/* Event loop */
 							sofia_event_callback,	/* Callback for processing events */
 							profile,	/* Additional data to pass to callback */
@@ -559,7 +572,7 @@
 				   TAG_IF((profile->pflags & PFLAG_PRESENCE), NUTAG_ALLOW_EVENTS("include-session-description")),
 				   TAG_IF((profile->pflags & PFLAG_PRESENCE), NUTAG_ALLOW_EVENTS("presence.winfo")),
 				   TAG_IF((profile->pflags & PFLAG_PRESENCE), NUTAG_ALLOW_EVENTS("message-summary")),
-				   SIPTAG_SUPPORTED_STR("100rel, precondition, timer"), SIPTAG_USER_AGENT_STR(profile->user_agent), TAG_END());
+				   SIPTAG_SUPPORTED_STR(supported), SIPTAG_USER_AGENT_STR(profile->user_agent), TAG_END());
 
 	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Set params for %s\n", profile->name);
 
@@ -579,7 +592,8 @@
 					   NUTAG_ALLOW("INFO"),
 					   TAG_IF((profile->pflags & PFLAG_PRESENCE), NUTAG_ALLOW("PUBLISH")),
 					   TAG_IF((profile->pflags & PFLAG_PRESENCE), NUTAG_ENABLEMESSAGE(1)),
-					   SIPTAG_SUPPORTED_STR("100rel, precondition"), SIPTAG_USER_AGENT_STR(profile->user_agent), TAG_END());
+					   SIPTAG_SUPPORTED_STR(supported), 
+					   SIPTAG_USER_AGENT_STR(profile->user_agent), TAG_END());
 	}
 
 	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "activated db for %s\n", profile->name);
@@ -1223,6 +1237,14 @@
 						if (switch_true(val)) {
 							profile->pflags |= PFLAG_CHECKUSER;
 						}
+					} else if (!strcasecmp(var, "enable-timer")) {
+						if (!switch_true(val)) {
+							profile->pflags |= PFLAG_DISABLE_TIMER;
+						}
+					} else if (!strcasecmp(var, "enable-100rel")) {
+						if (!switch_true(val)) {
+							profile->pflags |= PFLAG_DISABLE_100REL;
+						}
 					} else if (!strcasecmp(var, "bitpacking")) {
 						if (!strcasecmp(val, "aal2")) {
 							profile->codec_flags = SWITCH_CODEC_FLAG_AAL2;



More information about the Freeswitch-svn mailing list