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

Freeswitch SVN anthm at freeswitch.org
Fri Oct 17 15:25:00 EDT 2008


Author: anthm
Date: Fri Oct 17 15:25:00 2008
New Revision: 10055

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

Log:
fix ip change detction code for proxy mode

Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c	(original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c	Fri Oct 17 15:25:00 2008
@@ -870,12 +870,18 @@
 		}
 	}
 
-	if (tech_pvt->remote_sdp_audio_ip && !strcmp(tech_pvt->remote_sdp_audio_ip, rip) && atoi(rp) == tech_pvt->remote_sdp_audio_port) {
-		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Remote address:port [%s:%d] has not changed.\n",
-						  tech_pvt->remote_sdp_audio_ip, tech_pvt->remote_sdp_audio_port);
-		return SWITCH_STATUS_SUCCESS;
-	}
+	if (rip && rp && switch_rtp_ready(tech_pvt->rtp_session)) {
+		char *remote_host = switch_rtp_get_remote_host(tech_pvt->rtp_session);
+		switch_port_t remote_port = switch_rtp_get_remote_port(tech_pvt->rtp_session), rpi = (switch_port_t) atoi(rp);
 
+		if (remote_host && remote_port && !strcmp(remote_host, rip) && remote_port == rpi) {
+			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Remote address:port [%s:%d] has not changed.\n",
+							  tech_pvt->remote_sdp_audio_ip, tech_pvt->remote_sdp_audio_port);
+			return SWITCH_STATUS_SUCCESS;
+		}
+
+	}
+	
 	if (switch_rtp_ready(tech_pvt->rtp_session)) {
 		if (switch_rtp_set_remote_address(tech_pvt->rtp_session, tech_pvt->remote_sdp_audio_ip, tech_pvt->remote_sdp_audio_port, SWITCH_TRUE, &err) !=
 			SWITCH_STATUS_SUCCESS) {



More information about the Freeswitch-svn mailing list