[Freeswitch-svn] [commit] r9617 - freeswitch/trunk/src/mod/endpoints/mod_sofia

Freeswitch SVN anthm at freeswitch.org
Mon Sep 22 15:14:55 EDT 2008


Author: anthm
Date: Mon Sep 22 15:14:54 2008
New Revision: 9617

Modified:
   freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c
   freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h
   freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c
   freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c

Log:
<param name="challenge-realm" value="auto_from|auto_to|<hardcoded_val>"/>

Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c	(original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c	Mon Sep 22 15:14:54 2008
@@ -1291,6 +1291,8 @@
 				stream->write_function(stream, "Pres Hosts    \t\t%s\n", switch_str_nil(profile->presence_hosts));
 				stream->write_function(stream, "Dialplan      \t\t%s\n", switch_str_nil(profile->dialplan));
 				stream->write_function(stream, "Context       \t\t%s\n", switch_str_nil(profile->context));
+				stream->write_function(stream, "Challenge Realm\t\t%s\n", 
+									   switch_strlen_zero(profile->challenge_realm) ? "auto_to" : profile->challenge_realm);
 				stream->write_function(stream, "RTP-IP        \t\t%s\n", switch_str_nil(profile->rtpip));
 				if (profile->extrtpip) {
 					stream->write_function(stream, "Ext-RTP-IP    \t\t%s\n", profile->extrtpip);

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 Sep 22 15:14:54 2008
@@ -336,6 +336,7 @@
 	char *user_agent;
 	char *record_template;
 	char *presence_hosts;
+	char *challenge_realm;
 	sofia_dtmf_t dtmf_type;
 	int sip_port;
 	int tls_sip_port;

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 Sep 22 15:14:54 2008
@@ -1240,6 +1240,8 @@
 						profile->max_calls = atoi(val);
 					} else if (!strcasecmp(var, "codec-prefs")) {
 						profile->codec_string = switch_core_strdup(profile->pool, val);
+					} else if (!strcasecmp(var, "challenge-realm")) {
+						profile->challenge_realm = switch_core_strdup(profile->pool, val);
 					} else if (!strcasecmp(var, "dtmf-duration")) {
 						int dur = atoi(val);
 						if (dur > 10 && dur < 8000) {
@@ -1726,13 +1728,16 @@
 						profile->max_calls = atoi(val);
 					} else if (!strcasecmp(var, "codec-prefs")) {
 						profile->codec_string = switch_core_strdup(profile->pool, val);
+					} else if (!strcasecmp(var, "challenge-realm")) {
+						profile->challenge_realm = switch_core_strdup(profile->pool, val);
 					} else if (!strcasecmp(var, "dtmf-duration")) {
 						int dur = atoi(val);
 						if (dur > 10 && dur < 8000) {
 							profile->dtmf_duration = dur;
 						} else {
 							profile->dtmf_duration = SWITCH_DEFAULT_DTMF_DURATION;
-							switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Duration out of bounds, using default of %d!\n", SWITCH_DEFAULT_DTMF_DURATION);
+							switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Duration out of bounds, using default of %d!\n", 
+											  SWITCH_DEFAULT_DTMF_DURATION);
 						}
 
 						/*

Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c	(original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c	Mon Sep 22 15:14:54 2008
@@ -734,7 +734,14 @@
 				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Requesting Registration from: [%s@%s]\n", to_user, to_host);
 			}
 		} else {
-			sofia_reg_auth_challenge(nua, profile, nh, regtype, from_host, stale);
+			const char *realm = profile->challenge_realm;
+
+			if (switch_strlen_zero(realm) || !strcasecmp(realm, "auto_to")) {
+				realm = to_host;
+			} else if (!strcasecmp(realm, "auto_from")) {
+				realm = from_host;
+			}
+			sofia_reg_auth_challenge(nua, profile, nh, regtype, realm, stale);
 		}
 		return 1;
 	}



More information about the Freeswitch-svn mailing list