Revision
17382
Author
anthm
Date
2010-04-23 15:53:30 -0500 (Fri, 23 Apr 2010)

Log Message

cleanup whitespace and add some logging

Modified Paths

Diff

Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c (17381 => 17382)


--- freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c	2010-04-23 18:02:50 UTC (rev 17381)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c	2010-04-23 20:53:30 UTC (rev 17382)
@@ -160,22 +160,29 @@
 
 
 	if (sofia_test_flag(tech_pvt, TFLAG_RECOVERING_BRIDGE)) {
-		switch_core_session_t *other_session;
+		switch_core_session_t *other_session = NULL;
 		const char *uuid = switch_core_session_get_uuid(session);
 
 		if (switch_channel_test_flag(channel, CF_BRIDGE_ORIGINATOR)) {
 			const char *other_uuid = switch_channel_get_variable(channel, SWITCH_SIGNAL_BOND_VARIABLE);
+			int x = 0;
 
-			if (other_uuid && (other_session = switch_core_session_locate(other_uuid))) {
+			if (other_uuid) {
+				for(x = 0; other_session == NULL && x < 5; x++) {
+					other_session = switch_core_session_locate(other_uuid);
+					switch_yield(100000);
+				}
+			}
+
+			if (other_session) {
 				switch_channel_t *other_channel = switch_core_session_get_channel(other_session);
-
 				switch_channel_clear_flag(channel, CF_BRIDGE_ORIGINATOR);
 				switch_channel_wait_for_state_timeout(other_channel, CS_RESET, 5000);
 				switch_channel_wait_for_flag(channel, CF_REQ_MEDIA, SWITCH_FALSE, 10000, NULL);
 				switch_channel_wait_for_flag(channel, CF_MEDIA_ACK, SWITCH_TRUE, 10000, NULL);
 				switch_channel_wait_for_flag(other_channel, CF_REQ_MEDIA, SWITCH_FALSE, 10000, NULL);
 				switch_channel_wait_for_flag(other_channel, CF_MEDIA_ACK, SWITCH_TRUE, 10000, NULL);
-
+				
 				if (switch_channel_test_flag(channel, CF_PROXY_MODE) && switch_channel_test_flag(other_channel, CF_PROXY_MODE)) {
 					switch_ivr_signal_bridge(session, other_session);
 				} else {

Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c (17381 => 17382)


--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c	2010-04-23 18:02:50 UTC (rev 17381)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c	2010-04-23 20:53:30 UTC (rev 17382)
@@ -3571,6 +3571,18 @@
 					match = 0;
 					got_audio = 0;
 				}
+				
+				for (map = m->m_rtpmaps; map; map = map->rm_next) {
+					if ((zstr(map->rm_encoding) || (tech_pvt->profile->ndlb & PFLAG_NDLB_ALLOW_BAD_IANANAME)) && map->rm_pt < 96) {
+						match = (map->rm_pt == tech_pvt->agreed_pt) ? 1 : 0;
+					} else {
+						match = strcasecmp(map->rm_encoding, tech_pvt->rm_encoding) ? 0 : 1;
+					}					
+				}
+
+				if (match) {
+					switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Existing codec is already acceptable, using that.\n");
+				}
 			}
 
 			for (map = m->m_rtpmaps; map; map = map->rm_next) {
@@ -4247,7 +4259,7 @@
 			}
 
 			if ((tmp = switch_channel_get_variable(channel, "sip_use_pt"))) {
-				tech_pvt->agreed_pt = atoi(tmp);
+				tech_pvt->pt = tech_pvt->agreed_pt = atoi(tmp);
 			}
 
 			sofia_glue_tech_set_codec(tech_pvt, 1);