[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