[Freeswitch-svn] [commit] r2279 - freeswitch/trunk/src/mod/event_handlers/mod_cdr

Freeswitch SVN mikej at freeswitch.org
Sun Aug 13 00:41:41 EDT 2006


Author: mikej
Date: Sun Aug 13 00:41:40 2006
New Revision: 2279

Modified:
   freeswitch/trunk/src/mod/event_handlers/mod_cdr/basecdr.cpp
   freeswitch/trunk/src/mod/event_handlers/mod_cdr/csvcdr.cpp
   freeswitch/trunk/src/mod/event_handlers/mod_cdr/pddcdr.cpp

Log:
make mod cdr work on windows, and make it segfault less.

Modified: freeswitch/trunk/src/mod/event_handlers/mod_cdr/basecdr.cpp
==============================================================================
--- freeswitch/trunk/src/mod/event_handlers/mod_cdr/basecdr.cpp	(original)
+++ freeswitch/trunk/src/mod/event_handlers/mod_cdr/basecdr.cpp	Sun Aug 13 00:41:40 2006
@@ -82,49 +82,55 @@
 		callanswerdate = newchannel->timetable->answered;
 		callenddate = newchannel->timetable->hungup;
 	
-		if(newchannel->callerprofile->caller_id_name != 0)
-		{
-			strncpy(clid,newchannel->callerprofile->caller_id_name,strlen(newchannel->callerprofile->caller_id_name));
-			strncat(clid," <",2);
-			if(newchannel->callerprofile->caller_id_number != 0 )
-				strncat(clid,newchannel->callerprofile->caller_id_number,strlen(clid)+strlen(newchannel->callerprofile->caller_id_number));
-			strncat(clid,">",1);
-		}
+		if (newchannel->callerprofile) {
+			if(newchannel->callerprofile->caller_id_name != 0)
+			{
+				strncpy(clid,newchannel->callerprofile->caller_id_name,strlen(newchannel->callerprofile->caller_id_name));
+				strncat(clid," <",2);
+				if(newchannel->callerprofile->caller_id_number != 0 )
+					strncat(clid,newchannel->callerprofile->caller_id_number,strlen(clid)+strlen(newchannel->callerprofile->caller_id_number));
+				strncat(clid,">",1);
+			}
+			
+			// Get the ANI information if it's set
+			if(newchannel->callerprofile->ani != 0)
+				strncpy(ani,newchannel->callerprofile->ani,strlen(newchannel->callerprofile->ani));
+			if(newchannel->callerprofile->ani2 != 0)
+				strncpy(ani2,newchannel->callerprofile->ani2,strlen(newchannel->callerprofile->ani2));
 		
-		// Get the ANI information if it's set
-		if(newchannel->callerprofile->ani != 0)
-			strncpy(ani,newchannel->callerprofile->ani,strlen(newchannel->callerprofile->ani));
-		if(newchannel->callerprofile->ani2 != 0)
-			strncpy(ani2,newchannel->callerprofile->ani2,strlen(newchannel->callerprofile->ani2));
-	
-		if(newchannel->callerprofile->dialplan != 0)
-			strncpy(dialplan,newchannel->callerprofile->dialplan,strlen(newchannel->callerprofile->dialplan));
-	
-		if(newchannel->callerprofile->network_addr != 0)
-			strncpy(network_addr,newchannel->callerprofile->network_addr,strlen(newchannel->callerprofile->network_addr));
-				
+			if(newchannel->callerprofile->dialplan != 0)
+				strncpy(dialplan,newchannel->callerprofile->dialplan,strlen(newchannel->callerprofile->dialplan));
+		
+			if(newchannel->callerprofile->network_addr != 0)
+				strncpy(network_addr,newchannel->callerprofile->network_addr,strlen(newchannel->callerprofile->network_addr));
+		}
+
 		originated = newchannel->originate;
 	
-		if(newchannel->originateprofile->uuid != 0)
+		if(newchannel->originateprofile && newchannel->originateprofile->uuid != 0)
 			strncpy(destuuid,newchannel->originateprofile->uuid,strlen(newchannel->originateprofile->uuid));
 	
 		// We still need to check if this is originated or not
 		if(originated == 0)
 		{
-			if(newchannel->callerprofile->destination_number != 0)
-				strncpy(src,newchannel->callerprofile->destination_number,strlen(newchannel->callerprofile->destination_number));
-			if(newchannel->callerprofile->caller_id_number != 0)
-				strncpy(dst,newchannel->callerprofile->caller_id_number,strlen(newchannel->callerprofile->caller_id_number));
-			if(newchannel->originateprofile->chan_name != 0)
+			if (newchannel->callerprofile) {
+				if(newchannel->callerprofile->destination_number != 0)
+					strncpy(src,newchannel->callerprofile->destination_number,strlen(newchannel->callerprofile->destination_number));
+				if(newchannel->callerprofile->caller_id_number != 0)
+					strncpy(dst,newchannel->callerprofile->caller_id_number,strlen(newchannel->callerprofile->caller_id_number));
+			}
+			if(newchannel->originateprofile && newchannel->originateprofile->chan_name != 0)
 				strncpy(dstchannel,newchannel->originateprofile->chan_name,strlen(newchannel->originateprofile->chan_name));
 		}
 		else
 		{
-			if(newchannel->callerprofile->caller_id_number != 0)
-				strncpy(src,newchannel->callerprofile->caller_id_number,strlen(newchannel->callerprofile->caller_id_number));
-			if(newchannel->callerprofile->destination_number != 0)
-				strncpy(dst,newchannel->callerprofile->destination_number,strlen(newchannel->callerprofile->destination_number));
-			if(newchannel->originateprofile->chan_name != 0)
+			if (newchannel->callerprofile) {
+				if(newchannel->callerprofile->caller_id_number != 0)
+					strncpy(src,newchannel->callerprofile->caller_id_number,strlen(newchannel->callerprofile->caller_id_number));
+				if(newchannel->callerprofile->destination_number != 0)
+					strncpy(dst,newchannel->callerprofile->destination_number,strlen(newchannel->callerprofile->destination_number));
+			}
+			if(newchannel->originateprofile && newchannel->originateprofile->chan_name != 0)
 				strncpy(dstchannel,newchannel->originateprofile->chan_name,strlen(newchannel->originateprofile->chan_name));
 		}
 		

Modified: freeswitch/trunk/src/mod/event_handlers/mod_cdr/csvcdr.cpp
==============================================================================
--- freeswitch/trunk/src/mod/event_handlers/mod_cdr/csvcdr.cpp	(original)
+++ freeswitch/trunk/src/mod/event_handlers/mod_cdr/csvcdr.cpp	Sun Aug 13 00:41:40 2006
@@ -65,7 +65,7 @@
 		
 		// Format the times
 		apr_size_t retsizecsd, retsizecad, retsizeced;  //csd == callstartdate, cad == callanswerdate, ced == callenddate, ceff == callenddate_forfile
-		char format[] = "%F %T";
+		char format[] = "%Y-%m-%d-%H-%M-%S";
 		switch_strftime(formattedcallstartdate,&retsizecsd,sizeof(formattedcallstartdate),format,&tempcallstart);
 		switch_strftime(formattedcallanswerdate,&retsizecad,sizeof(formattedcallanswerdate),format,&tempcallanswer);
 		switch_strftime(formattedcallenddate,&retsizeced,sizeof(formattedcallenddate),format,&tempcallend);
@@ -193,7 +193,7 @@
 	switch_time_exp_lt(&now_converted,now);
 		
 	apr_size_t retsize;		
-	char format[] = "%F %T";
+	char format[] = "%Y-%m-%d-%H-%M-%S";
 	char formatteddate[100];
 	memset(formatteddate,0,100);
 	switch_strftime(formatteddate,&retsize,100,format,&now_converted);

Modified: freeswitch/trunk/src/mod/event_handlers/mod_cdr/pddcdr.cpp
==============================================================================
--- freeswitch/trunk/src/mod/event_handlers/mod_cdr/pddcdr.cpp	(original)
+++ freeswitch/trunk/src/mod/event_handlers/mod_cdr/pddcdr.cpp	Sun Aug 13 00:41:40 2006
@@ -60,7 +60,7 @@
 		
 		// Format the times
 		size_t retsizecsd, retsizecad, retsizeced; //csd == callstartdate, cad == callanswerdate, ced == callenddate, ceff == callenddate_forfile
-		char format[] = "%F %T";
+		char format[] = "%Y-%m-%d-%H-%M-%S";
 		switch_strftime(formattedcallstartdate,&retsizecsd,sizeof(formattedcallstartdate),format,&tempcallstart);
 		switch_strftime(formattedcallanswerdate,&retsizecad,sizeof(formattedcallanswerdate),format,&tempcallanswer);
 		switch_strftime(formattedcallenddate,&retsizeced,sizeof(formattedcallenddate),format,&tempcallend);



More information about the Freeswitch-svn mailing list