[Freeswitch-svn] [commit] r8112 -	freeswitch/branches/cseket/src/mod/endpoints/mod_sofia
    Freeswitch SVN 
    cseket at freeswitch.org
       
    Mon Apr 14 13:54:15 EDT 2008
    
    
  
Author: cseket
Date: Mon Apr 14 13:54:14 2008
New Revision: 8112
Added:
   freeswitch/branches/cseket/src/mod/endpoints/mod_sofia/mod_sofia.h
      - copied, changed from r8099, /freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h
Modified:
   freeswitch/branches/cseket/src/mod/endpoints/mod_sofia/sofia.c
Log:
"auto" port for tls. 
Don't break defaults, when port settings are missing or invalid use defaults.
(SFSIP-54)
-*-This line, and those below, will be ignored--
rt for tls. SFSIP-54"
M    sofia.c
A    mod_sofia.h
Copied: freeswitch/branches/cseket/src/mod/endpoints/mod_sofia/mod_sofia.h (from r8099, /freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h)
==============================================================================
--- /freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h	(original)
+++ freeswitch/branches/cseket/src/mod/endpoints/mod_sofia/mod_sofia.h	Mon Apr 14 13:54:14 2008
@@ -79,6 +79,7 @@
 #define SOFIA_SECURE_MEDIA_CONFIRMED_VARIABLE "sip_secure_media_confirmed"
 #define SOFIA_HAS_CRYPTO_VARIABLE "sip_has_crypto"
 #define SOFIA_CRYPTO_MANDATORY_VARIABLE "sip_crypto_mandatory"
+#define SOFIA_AUTO_PORT -1
 
 #include <sofia-sip/nua.h>
 #include <sofia-sip/sip_status.h>
Modified: freeswitch/branches/cseket/src/mod/endpoints/mod_sofia/sofia.c
==============================================================================
--- freeswitch/branches/cseket/src/mod/endpoints/mod_sofia/sofia.c	(original)
+++ freeswitch/branches/cseket/src/mod/endpoints/mod_sofia/sofia.c	Mon Apr 14 13:54:14 2008
@@ -1084,7 +1084,7 @@
 					} else if (!strcasecmp(var, "cng-pt")) {
 						profile->cng_pt = (switch_payload_t) atoi(val);
 					} else if (!strcasecmp(var, "sip-port")) {
-						profile->sip_port = strcasecmp(val, "auto") ? atoi(val) : 0;
+						profile->sip_port = strcasecmp(val, "auto") ? atoi(val) : SOFIA_AUTO_PORT;
 					} else if (!strcasecmp(var, "vad")) {
 						if (!strcasecmp(val, "in")) {
 							switch_set_flag(profile, TFLAG_VAD_IN);
@@ -1266,7 +1266,7 @@
 					} else if (!strcasecmp(var, "tls-bind-params")) {
 						profile->tls_bind_params = switch_core_strdup(profile->pool, val);
 					} else if (!strcasecmp(var, "tls-sip-port")) {
-						profile->tls_sip_port = atoi(val);
+						profile->tls_sip_port = strcasecmp(val, "auto") ? atoi(val) : SOFIA_AUTO_PORT;
 					} else if (!strcasecmp(var, "tls-cert-dir")) {
 						profile->tls_cert_dir = switch_core_strdup(profile->pool, val);
 					} else if (!strcasecmp(var, "tls-version")) {
@@ -1309,6 +1309,10 @@
 					profile->rtpip = switch_core_strdup(profile->pool, "127.0.0.1");
 				}
 
+				if (!profile->sip_port) {
+					profile->sip_port = atoi(SOFIA_DEFAULT_PORT);
+				}
+
 				if (!profile->dialplan) {
 					profile->dialplan = switch_core_strdup(profile->pool, "XML");
 				}
@@ -1317,14 +1321,14 @@
 					profile->sipdomain = switch_core_strdup(profile->pool, profile->sipip);
 				}
 				if (profile->extsipip) {
-					if (!profile->sip_port) {
+					if (profile->sip_port == SOFIA_AUTO_PORT) {
 						profile->url = switch_core_sprintf(profile->pool, "sip:mod_sofia@%s:*", profile->extsipip);
 					} else {
 						profile->url = switch_core_sprintf(profile->pool, "sip:mod_sofia@%s:%d", profile->extsipip, profile->sip_port);
 					}
 					profile->bindurl = switch_core_sprintf(profile->pool, "%s;maddr=%s", profile->url, profile->sipip);
 				} else {
-					if (!profile->sip_port) {
+					if (profile->sip_port == SOFIA_AUTO_PORT) {
 						profile->url = switch_core_sprintf(profile->pool, "sip:mod_sofia@%s:*", profile->sipip);
 					} else {
 						profile->url = switch_core_sprintf(profile->pool, "sip:mod_sofia@%s:%d", profile->sipip, profile->sip_port);
@@ -1346,11 +1350,21 @@
 					}
 
 					if (profile->extsipip) {
-						profile->tls_url = switch_core_sprintf(profile->pool, "sip:mod_sofia@%s:%d", profile->extsipip, profile->tls_sip_port);
-						profile->tls_bindurl = switch_core_sprintf(profile->pool, "sips:mod_sofia@%s:%d;maddr=%s", profile->extsipip, profile->tls_sip_port, profile->sipip);
+						if (profile->tls_sip_port == SOFIA_AUTO_PORT) {
+							profile->tls_url = switch_core_sprintf(profile->pool, "sip:mod_sofia@%s:*", profile->extsipip);
+							profile->tls_bindurl = switch_core_sprintf(profile->pool, "sips:mod_sofia@%s:*;maddr=%s", profile->extsipip, profile->sipip);
+						} else {
+							profile->tls_url = switch_core_sprintf(profile->pool, "sip:mod_sofia@%s:%d", profile->extsipip, profile->tls_sip_port);
+							profile->tls_bindurl = switch_core_sprintf(profile->pool, "sips:mod_sofia@%s:%d;maddr=%s", profile->extsipip, profile->tls_sip_port, profile->sipip);
+						}
 					} else {
-						profile->tls_url = switch_core_sprintf(profile->pool, "sip:mod_sofia@%s:%d", profile->sipip, profile->tls_sip_port);
-						profile->tls_bindurl = switch_core_sprintf(profile->pool, "sips:mod_sofia@%s:%d", profile->sipip, profile->tls_sip_port);
+						if (profile->tls_sip_port == SOFIA_AUTO_PORT) {
+							profile->tls_url = switch_core_sprintf(profile->pool, "sip:mod_sofia@%s:*", profile->sipip);
+							profile->tls_bindurl = switch_core_sprintf(profile->pool, "sips:mod_sofia@%s:*", profile->sipip);
+						} else {
+							profile->tls_url = switch_core_sprintf(profile->pool, "sip:mod_sofia@%s:%d", profile->sipip, profile->tls_sip_port);
+							profile->tls_bindurl = switch_core_sprintf(profile->pool, "sips:mod_sofia@%s:%d", profile->sipip, profile->tls_sip_port);
+						}
 					}
 
 					if (profile->tls_bind_params) {
    
    
More information about the Freeswitch-svn
mailing list