[Freeswitch-svn] [commit] r3959 - in freeswitch/branches/mishehu/src/mod: endpoints/mod_opal event_handlers/mod_cdr

Freeswitch SVN mishehu at freeswitch.org
Sat Jan 13 16:04:57 EST 2007


Author: mishehu
Date: Sat Jan 13 16:04:56 2007
New Revision: 3959

Modified:
   freeswitch/branches/mishehu/src/mod/endpoints/mod_opal/baseopal.cpp
   freeswitch/branches/mishehu/src/mod/endpoints/mod_opal/baseopal.h
   freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/basecdr.cpp
   freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/mysqlcdr.cpp
   freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/sqlitecdr.cpp
   freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/sqlitecdr.h

Log:
Fixed a minor assumption in basecdr.cpp, few other minor issues.  Also cleaning up the skeleton of mod_opal in order to make heads and tails out of it.

Modified: freeswitch/branches/mishehu/src/mod/endpoints/mod_opal/baseopal.cpp
==============================================================================
--- freeswitch/branches/mishehu/src/mod/endpoints/mod_opal/baseopal.cpp	(original)
+++ freeswitch/branches/mishehu/src/mod/endpoints/mod_opal/baseopal.cpp	Sat Jan 13 16:04:56 2007
@@ -20,9 +20,8 @@
 
 BaseOPAL::BaseOPAL()
 {
-#if OPAL_H323
 	h323EP = NULL;
-#endif
+	/*
 #if OPAL_SIP
 	sipEP = NULL;
 #endif
@@ -31,7 +30,7 @@
 #if P_EXPAT
 	ivrEP = NULL;
 #endif
-	
+	*/
 	autoStartReceiveVideo = autoStartTransmitVideo = FALSE;
 }
 
@@ -48,11 +47,10 @@
 
 	// Create all the endpoints
 	
-#if OPAL_H323
 	if (h323EP == NULL)
 		h323EP = new H323EndPoint(*this);
-#endif
 
+	/*
 #if OPAL_SIP
 	if (sipEP == NULL)
 		sipEP = new SIPEndPoint(*this);
@@ -68,7 +66,7 @@
 	if (ivrEP == NULL)
 		ivrEP = new OpalIVREndPoint(*this);
 #endif
-
+	*/
 	// General parameters for all endpoint types
 	fieldArray = new PHTTPFieldArray(new PHTTPStringField(PreferredMediaKey, 25), TRUE);
 	PStringArray formats = fieldArray->GetStrings(cfg);

Modified: freeswitch/branches/mishehu/src/mod/endpoints/mod_opal/baseopal.h
==============================================================================
--- freeswitch/branches/mishehu/src/mod/endpoints/mod_opal/baseopal.h	(original)
+++ freeswitch/branches/mishehu/src/mod/endpoints/mod_opal/baseopal.h	Sat Jan 13 16:04:56 2007
@@ -17,11 +17,13 @@
 typedef PHTTPServiceProcess OpalGwProcessAncestor;
 #endif
 
-class SIPEndPoint;
+//class SIPEndPoint;
 class H323EndPoint;
+/*
 class OpalPOTSEndPoint;
 class OpalPSTNEndPoint;
 class OpalIVREndPoint;
+*/
 
 class BaseOPAL : public OpalManager {
 	public:
@@ -29,12 +31,14 @@
 		~BaseOPAL();
 	protected:
 		H323EndPoint     * h323EP;
+		/*
 		SIPEndPoint      * sipEP;
 		OpalPOTSEndPoint * potsEP;
 		OpalPSTNEndPoint * pstnEP;
 #if P_EXPAT
 		OpalIVREndPoint  * ivrEP;
 #endif
+		*/
 	private:
 		switch_xml_t cfg, xml, settings, param;
 		static char *configfile;

Modified: freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/basecdr.cpp
==============================================================================
--- freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/basecdr.cpp	(original)
+++ freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/basecdr.cpp	Sat Jan 13 16:04:56 2007
@@ -60,6 +60,7 @@
 	if(newchannel != 0)
 	{
 		errorstate = 0;
+		originated=1; // One-legged calls are always considered the originator
 		memset(clid,0,80);
 		memset(dialplan,0,80);
 		memset(myuuid,0,37);
@@ -132,7 +133,6 @@
 			// Or were we maybe we were the caller?
 			if(newchannel->callerprofile->originatee_caller_profile)
 			{
-				originated = 1;
 				if (newchannel->callerprofile) {
 					if(newchannel->callerprofile->caller_id_number != 0)
 						strncpy(src,newchannel->callerprofile->caller_id_number,strlen(newchannel->callerprofile->caller_id_number));

Modified: freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/mysqlcdr.cpp
==============================================================================
--- freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/mysqlcdr.cpp	(original)
+++ freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/mysqlcdr.cpp	Sat Jan 13 16:04:56 2007
@@ -335,13 +335,13 @@
 	set_mysql_time(tm1,my_callstartdate);
 	set_mysql_time(tm2,my_callanswerdate);
 	set_mysql_time(tm3,my_calltransferdate);
-	set_mysql_time(tm4,my_calltransferdate);
+	set_mysql_time(tm4,my_callenddate);
 	
 	// Why is this out of order?  I don't know, it doesn't make sense.
 	add_parameter(my_callstartdate,MYSQL_TYPE_DATETIME);
 	add_parameter(my_callanswerdate,MYSQL_TYPE_DATETIME);
-	add_parameter(my_callenddate,MYSQL_TYPE_DATETIME);
 	add_parameter(my_calltransferdate,MYSQL_TYPE_DATETIME);
+	add_parameter(my_callenddate,MYSQL_TYPE_DATETIME);
 	
 	add_parameter(originated,MYSQL_TYPE_TINY);
 	add_string_parameter(clid,clid_length,MYSQL_TYPE_VAR_STRING,0);

Modified: freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/sqlitecdr.cpp
==============================================================================
--- freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/sqlitecdr.cpp	(original)
+++ freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/sqlitecdr.cpp	Sat Jan 13 16:04:56 2007
@@ -75,6 +75,7 @@
 switch_core_db_stmt_t* SqliteCDR::stmt_chanvars=0;
 switch_core_db_stmt_t* SqliteCDR::stmt_begin=0;
 switch_core_db_stmt_t* SqliteCDR::stmt_commit=0;
+bool SqliteCDR::use_utc_time = 0;
 std::string SqliteCDR::display_name = "SqliteCDR - The sqlite3 cdr logging backend";
 
 void SqliteCDR::connect(switch_xml_t& cfg, switch_xml_t& xml, switch_xml_t& settings, switch_xml_t& param)
@@ -132,6 +133,18 @@
 						repeat_fixed_in_supp = 1;
 				}
 			}
+			else if(!strcmp(var,"timezone"))
+			{
+				if(!strcmp(val,"utc"))
+					use_utc_time = 1;
+				else if(!strcmp(val,"local"))
+					use_utc_time = 0;
+				else
+				{
+					switch_console_printf(SWITCH_CHANNEL_LOG,"Invalid configuration parameter for timezone.  Possible values are utc and local.  You entered: %s\nDefaulting to local.\n",val);
+					use_utc_time = 0;
+				}
+			}
 		}
 		
 		if (count_config_params==1)
@@ -409,13 +422,39 @@
 
 bool SqliteCDR::process_record()
 {
+	if(use_utc_time)
+	{
+		switch_time_exp_t tm1, tm2, tm3, tm4;
+		memset(&tm1,0,sizeof(tm1));
+		memset(&tm2,0,sizeof(tm2));
+		memset(&tm3,0,sizeof(tm3));
+		memset(&tm4,0,sizeof(tm4));
+	
+		switch_time_exp_gmt(&tm1,callstartdate);
+		switch_time_exp_gmt(&tm2,callanswerdate);
+		switch_time_exp_gmt(&tm3,calltransferdate);
+		switch_time_exp_gmt(&tm4,calltransferdate);
+		
+		switch_time_exp_gmt_get(&sqlite_callstartdate,&tm1);
+		switch_time_exp_gmt_get(&sqlite_callanswerdate,&tm2);
+		switch_time_exp_gmt_get(&sqlite_calltransferdate,&tm3);
+		switch_time_exp_gmt_get(&sqlite_callenddate,&tm4);
+	}
+	else
+	{
+		sqlite_callstartdate = callstartdate;
+		sqlite_callanswerdate = callanswerdate;
+		sqlite_calltransferdate = calltransferdate;
+		sqlite_callenddate = callenddate;
+	}
+	
 	int column = 1;
 	switch_core_db_step(stmt_begin);
 	switch_core_db_reset(stmt_begin);
-	switch_core_db_bind_int64(stmt, column++, (sqlite_int64) callstartdate);
-	switch_core_db_bind_int64(stmt, column++, (sqlite_int64) callanswerdate);
-	switch_core_db_bind_int64(stmt, column++, (sqlite_int64) calltransferdate);
-	switch_core_db_bind_int64(stmt, column++, (sqlite_int64) callenddate);
+	switch_core_db_bind_int64(stmt, column++, (sqlite_int64) sqlite_callstartdate);
+	switch_core_db_bind_int64(stmt, column++, (sqlite_int64) sqlite_callanswerdate);
+	switch_core_db_bind_int64(stmt, column++, (sqlite_int64) sqlite_calltransferdate);
+	switch_core_db_bind_int64(stmt, column++, (sqlite_int64) sqlite_callenddate);
 	switch_core_db_bind_int(stmt, column++, (int) originated);
 	switch_core_db_bind_text(stmt, column++, clid,-1,SQLITE_STATIC);
 	switch_core_db_bind_text(stmt, column++, src,-1,SQLITE_STATIC);

Modified: freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/sqlitecdr.h
==============================================================================
--- freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/sqlitecdr.h	(original)
+++ freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/sqlitecdr.h	Sat Jan 13 16:04:56 2007
@@ -59,6 +59,11 @@
 		static std::string tmp_sql_query; // Object must exist to bind the statement, this used for generating the sql
 		static char sql_query_chanvars[100];
 		static std::string db_filename;
+		static bool use_utc_time;
+		switch_time_t sqlite_callstartdate;
+		switch_time_t sqlite_callanswerdate;
+		switch_time_t sqlite_calltransferdate;
+		switch_time_t sqlite_callenddate;
 		static switch_core_db_t *db;
 		static switch_core_db_stmt_t *stmt;
 		static switch_core_db_stmt_t *stmt_chanvars;



More information about the Freeswitch-svn mailing list