[Freeswitch-svn] [commit] r13285 - freeswitch/trunk/src

FreeSWITCH SVN anthm at freeswitch.org
Tue May 12 07:54:34 PDT 2009


Author: anthm
Date: Tue May 12 09:54:34 2009
New Revision: 13285

Log:
FSCORE-357

Modified:
   freeswitch/trunk/src/switch_channel.c
   freeswitch/trunk/src/switch_ivr_originate.c

Modified: freeswitch/trunk/src/switch_channel.c
==============================================================================
--- freeswitch/trunk/src/switch_channel.c	(original)
+++ freeswitch/trunk/src/switch_channel.c	Tue May 12 09:54:34 2009
@@ -796,7 +796,7 @@
 															 uint32_t to,
 															 switch_channel_t *super_channel)
 {
-
+	
 	if (to) {
 		to++;
 	}
@@ -2314,6 +2314,12 @@
 	char dtstr[SWITCH_DTMF_LOG_LEN+1] = "";
 	int x = 0;
 
+	if (switch_channel_test_flag(channel, CF_TIMESTAMP_SET)) {
+		return SWITCH_STATUS_FALSE;
+	}
+	
+	switch_channel_set_flag(channel, CF_TIMESTAMP_SET);
+
 	if (!(caller_profile = switch_channel_get_caller_profile(channel)) || !channel->variables) {
 		return SWITCH_STATUS_FALSE;
 	}
@@ -2506,8 +2512,6 @@
 
 	switch_snprintf(tmp, sizeof(tmp), "%" SWITCH_TIME_T_FMT, legbillusec);
 	switch_channel_set_variable(channel, "flow_billusec", tmp);
-
-	switch_channel_set_flag(channel, CF_TIMESTAMP_SET);
 	
 	return status;
 }

Modified: freeswitch/trunk/src/switch_ivr_originate.c
==============================================================================
--- freeswitch/trunk/src/switch_ivr_originate.c	(original)
+++ freeswitch/trunk/src/switch_ivr_originate.c	Tue May 12 09:54:34 2009
@@ -2056,16 +2056,12 @@
 
 						channel = switch_core_session_get_channel(originate_status[i].peer_session);
 						
-						switch_channel_wait_for_flag(channel,
-													 CF_TIMESTAMP_SET,
-													 SWITCH_TRUE,
-													 5000,
-													 NULL);
-
-						if (!switch_channel_test_flag(channel, CF_TIMESTAMP_SET) || !switch_core_session_running(originate_status[i].peer_session)) {
-							switch_core_session_reporting_state(originate_status[i].peer_session);
+						switch_channel_wait_for_state_timeout(channel, CS_REPORTING, 5000);
+						
+						if (!switch_channel_test_flag(channel, CF_TIMESTAMP_SET)) {
+							switch_channel_set_timestamps(channel);
 						}
-
+						
 						if (switch_ivr_generate_xml_cdr(originate_status[i].peer_session, &cdr) == SWITCH_STATUS_SUCCESS) {
 							if ((xml_text = switch_xml_toxml(cdr, SWITCH_FALSE))) {
 								switch_snprintf(buf, sizeof(buf), "%s_%d", cdr_var, ++cdr_total);



More information about the Freeswitch-svn mailing list