[Freeswitch-branches] [commit] r3526 - freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr
Freeswitch SVN
mishehu at freeswitch.org
Sun Dec 3 23:06:04 EST 2006
Author: mishehu
Date: Sun Dec 3 23:06:03 2006
New Revision: 3526
Modified:
freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/cdrcontainer.cpp
freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/csvcdr.cpp
freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/pddcdr.cpp
freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/xmlcdr.cpp
Log:
Pausing and resuming pop on the queue works fine, made changes in all current loggers to support reloading. Also fixed it so that files are not created on pddcdr.cpp and xmlcdr.cpp until ::process_record() occurs.
Modified: freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/cdrcontainer.cpp
==============================================================================
--- freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/cdrcontainer.cpp (original)
+++ freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/cdrcontainer.cpp Sun Dec 3 23:06:03 2006
@@ -179,14 +179,9 @@
newchannel->channel = switch_core_session_get_channel(session);
assert(newchannel->channel != 0);
- // Need to fix this up a bit so that it reflects a change to switch_caller_profile_t
- // switch_channel_t will contain caller_profile, and caller_profile will contain
- // the originator and originatee profile
newchannel->session = session;
- //newchannel->timetable = switch_channel_get_timetable(newchannel->channel);
newchannel->callerextension = switch_channel_get_caller_extension(newchannel->channel);
newchannel->callerprofile = switch_channel_get_caller_profile(newchannel->channel);
- //newchannel->originateprofile = switch_channel_get_originator_caller_profile(newchannel->channel);
BaseRegistry& registry(BaseRegistry::get());
for(BaseRegistry::iterator it = registry.active_begin(); it != registry.active_end(); ++it)
@@ -199,8 +194,9 @@
switch_console_printf(SWITCH_CHANNEL_LOG,"Adding a new logger object to the queue.\n");
switch_queue_push(cdrqueue,newloggerobject);
newchannel->callerprofile = newchannel->callerprofile->next;
- newchannel->callerextension = newchannel->callerextension->next;
- } while (newchannel->callerprofile && newchannel->callerextension);
+ if(newchannel->callerextension)
+ newchannel->callerextension = newchannel->callerextension->next;
+ } while (newchannel->callerprofile);
}
Modified: freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/csvcdr.cpp
==============================================================================
--- freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/csvcdr.cpp (original)
+++ freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/csvcdr.cpp Sun Dec 3 23:06:03 2006
@@ -280,6 +280,13 @@
void CsvCDR::disconnect()
{
outputfile.close();
+ activated = 0;
+ logchanvars = 0;
+ repeat_fixed_in_supp = 0;
+ outfile_path.clear();
+ chanvars_fixed_list.clear();
+ chanvars_supp_list.clear();
+ connectionstate = 0;
switch_console_printf(SWITCH_CHANNEL_LOG,"Shutting down CsvCDR... Done!");
}
Modified: freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/pddcdr.cpp
==============================================================================
--- freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/pddcdr.cpp (original)
+++ freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/pddcdr.cpp Sun Dec 3 23:06:03 2006
@@ -74,10 +74,7 @@
outputfile_name.append(callenddate_forfile); // Make sorting a bit easier, kinda like Maildir does
outputfile_name.append(".");
outputfile_name.append(myuuid); // The goal is to have a resulting filename of "/path/to/myuuid"
- outputfile_name.append(".pdd"); // .pdd - "perl data dumper"
-
- outputfile.open(outputfile_name.c_str());
-
+ outputfile_name.append(".pdd"); // .pdd - "perl data dumper"
bool repeat = 1;
process_channel_variables(chanvars_supp_list,chanvars_fixed_list,newchannel->channel,repeat);
}
@@ -148,6 +145,8 @@
bool PddCDR::process_record()
{
+ outputfile.open(outputfile_name.c_str());
+
bool retval = 0;
if(!outputfile)
switch_console_printf(SWITCH_CHANNEL_LOG, "PddCDR::process_record(): Unable to open file %s to commit the call record to. Invalid path name, invalid permissions, or no space available?\n",outputfile_name.c_str());
Modified: freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/xmlcdr.cpp
==============================================================================
--- freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/xmlcdr.cpp (original)
+++ freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/xmlcdr.cpp Sun Dec 3 23:06:03 2006
@@ -76,9 +76,7 @@
outputfile_name.append(".");
outputfile_name.append(myuuid); // The goal is to have a resulting filename of "/path/to/myuuid"
outputfile_name.append(".xml"); // .xml - "XML Data Dumper"
-
- outputfile.open(outputfile_name.c_str());
-
+
bool repeat = 1;
process_channel_variables(chanvars_supp_list,chanvars_fixed_list,newchannel->channel,repeat);
}
@@ -150,6 +148,8 @@
bool XmlCDR::process_record()
{
bool retval = 0;
+ outputfile.open(outputfile_name.c_str());
+
if(!outputfile)
switch_console_printf(SWITCH_CHANNEL_LOG, "XmlCDR::process_record(): Unable to open file %s to commit the call record to. Invalid path name, invalid permissions, or no space available?\n",outputfile_name.c_str());
else
@@ -215,6 +215,11 @@
void XmlCDR::disconnect()
{
+ activated = 0;
+ connectionstate = 0;
+ logchanvars = 0;
+ outputfile_path.clear();
+ chanvars_supp_list.clear();
switch_console_printf(SWITCH_CHANNEL_LOG,"Shutting down XmlCDR... Done!");
}
More information about the Freeswitch-branches
mailing list