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

FreeSWITCH SVN anthm at freeswitch.org
Sat Mar 7 07:59:01 PST 2009


Author: anthm
Date: Sat Mar  7 09:59:01 2009
New Revision: 12510

Log:
add contact_user param for rare cases when provider makes you say a certian contact user 'LAME'

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

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	Sat Mar  7 09:59:01 2009
@@ -1085,6 +1085,7 @@
 				*extension = NULL,
 				*proxy = NULL,
 				*context = profile->context,
+				*contact_user = NULL,
 				*expire_seconds = "3600",
 				*retry_seconds = "30",
 				*from_user = "", *from_domain = "", *register_proxy = NULL, *contact_params = NULL, *params = NULL, *register_transport = NULL;
@@ -1164,6 +1165,8 @@
 					realm = val;
 				} else if (!strcmp(var, "username")) {
 					username = val;
+				} else if (!strcmp(var, "contact-username")) {
+					contact_user = val;
 				} else if (!strcmp(var, "auth-username")) {
 					auth_username = val;
 				} else if (!strcmp(var, "password")) {
@@ -1294,12 +1297,21 @@
 			gateway->register_from = switch_core_sprintf(gateway->pool, "<sip:%s@%s;transport=%s>", from_user, from_domain, register_transport);
 
 			sipip = profile->extsipip ?  profile->extsipip : profile->sipip;
-			format = strchr(sipip, ':') ? "<sip:gw+%s@[%s]:%d%s>" : "<sip:gw+%s@%s:%d%s>";
+			if (contact_user) {
+				format = strchr(sipip, ':') ? "<sip:%s@[%s]:%d%s>" : "<sip:%s@%s:%d%s>";
+				gateway->register_contact = switch_core_sprintf(gateway->pool, format, contact_user,
+																sipip,
+																sofia_glue_transport_has_tls(gateway->register_transport) ?
+																profile->tls_sip_port : profile->sip_port, params);
+			} else {
+				format = strchr(sipip, ':') ? "<sip:gw+%s@[%s]:%d%s>" : "<sip:gw+%s@%s:%d%s>";
+				gateway->register_contact = switch_core_sprintf(gateway->pool, format, gateway->name,
+																sipip,
+																sofia_glue_transport_has_tls(gateway->register_transport) ?
+																profile->tls_sip_port : profile->sip_port, params);
+			}
 			gateway->extension = switch_core_strdup(gateway->pool, extension);
-			gateway->register_contact = switch_core_sprintf(gateway->pool, format, gateway->name,
-															sipip,
-															sofia_glue_transport_has_tls(gateway->register_transport) ?
-															profile->tls_sip_port : profile->sip_port, params);
+			
 			
 			if (!strncasecmp(proxy, "sip:", 4)) {
 				gateway->register_proxy = switch_core_strdup(gateway->pool, proxy);



More information about the Freeswitch-svn mailing list