From 28fc399e37aa7d60891c0840df6e96513fc2e120 Mon Sep 17 00:00:00 2001
From: Anthony Minessale <anthony.minessale@gmail.com>
Date: Tue, 8 May 2007 20:17:27 +0000
Subject: [PATCH] update

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5107 d0543943-73ff-0310-b7d9-9358b9ac24b2
---
 conf/sofia.conf.xml                     | 2 ++
 src/mod/endpoints/mod_sofia/mod_sofia.h | 1 +
 src/mod/endpoints/mod_sofia/sofia.c     | 8 ++++++++
 3 files changed, 11 insertions(+)

diff --git a/conf/sofia.conf.xml b/conf/sofia.conf.xml
index 2db5511918..22c55188ba 100644
--- a/conf/sofia.conf.xml
+++ b/conf/sofia.conf.xml
@@ -44,6 +44,8 @@
 	<param name="rtp-timer-name" value="soft"/>
 	<param name="rtp-ip" value="$${bind_server_ip}"/>
 	<param name="sip-ip" value="$${bind_server_ip}"/>
+	<!-- if you want to send any special bind params of your own -->
+	<!--<param name="bind-params" value="transport=udp"/>-->
 
 	<!--If you don't want to pass through timestampes from 1 RTP call to another (on a per call basis with rtp_rewrite_timestamps chanvar)-->
 	<!--<param name="rtp-rewrite-timestampes" value="true"/>-->
diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.h b/src/mod/endpoints/mod_sofia/mod_sofia.h
index 854dddaeed..b26d8654d6 100644
--- a/src/mod/endpoints/mod_sofia/mod_sofia.h
+++ b/src/mod/endpoints/mod_sofia/mod_sofia.h
@@ -214,6 +214,7 @@ struct sofia_profile {
 	char *sipdomain;
 	char *timer_name;
 	char *hold_music;
+	char *bind_params;
 	int sip_port;
 	char *codec_string;
 	int running;
diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c
index ac5918d1ba..67df402ef3 100644
--- a/src/mod/endpoints/mod_sofia/sofia.c
+++ b/src/mod/endpoints/mod_sofia/sofia.c
@@ -748,6 +748,8 @@ switch_status_t config_sofia(int reload, char *profile_name)
 							}
 						}
 
+					} else if (!strcasecmp(var, "bind-params")) {
+						profile->bind_params = switch_core_strdup(profile->pool, val);
 					} else if (!strcasecmp(var, "sip-domain")) {
 						profile->sipdomain = switch_core_strdup(profile->pool, val);
 					} else if (!strcasecmp(var, "rtp-timer-name")) {
@@ -870,6 +872,12 @@ switch_status_t config_sofia(int reload, char *profile_name)
 					profile->url = switch_core_sprintf(profile->pool, "sip:mod_sofia@%s:%d", profile->sipip, profile->sip_port);
 					profile->bindurl = profile->url;
 				}
+
+				if (profile->bind_params) {
+					char *url = profile->bindurl;
+					profile->bindurl = switch_core_sprintf(profile->pool, "%s;%s", url, profile->bind_params);
+				}
+				
 			}
 			if (profile) {
 				switch_xml_t aliases_tag, alias_tag;