[Freeswitch-svn] [commit] r1600 - in freeswitch/branches/mishehu/src: include mod/applications/mod_rss mod/loggers/mod_cdr
Author: mishehu Date: Sun Jun 11 18:13:20 2006 New Revision: 1600 Modified: freeswitch/branches/mishehu/src/include/switch_core.h freeswitch/branches/mishehu/src/mod/applications/mod_rss/mod_rss.c freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/anthmcdr.cpp freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/anthmcdr.h freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/basecdr.cpp freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/basecdr.h freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/baseregistry.h freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/cdrcontainer.cpp freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/cdrcontainer.h freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/mysqlcdr.cpp freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/mysqlcdr.h freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/syslogcdr.cpp Log: Refactored some more code, cleaned up param passing, created struct switch_mod_cdr_newchannel_t and use that now in all ctors of BaseCDR and derivatives. Merged up to trunk r1599. Modified: freeswitch/branches/mishehu/src/include/switch_core.h ============================================================================== --- freeswitch/branches/mishehu/src/include/switch_core.h (original) +++ freeswitch/branches/mishehu/src/include/switch_core.h Sun Jun 11 18:13:20 2006 @@ -111,7 +111,7 @@ /*! \brief Initilize the core \param console optional FILE stream for output - \param a pointer to set any errors to + \param err a pointer to set any errors to \note to be called at application startup */ SWITCH_DECLARE(switch_status_t) switch_core_init(char *console, const char **err); Modified: freeswitch/branches/mishehu/src/mod/applications/mod_rss/mod_rss.c ============================================================================== --- freeswitch/branches/mishehu/src/mod/applications/mod_rss/mod_rss.c (original) +++ freeswitch/branches/mishehu/src/mod/applications/mod_rss/mod_rss.c Sun Jun 11 18:13:20 2006 @@ -53,7 +53,7 @@ #define TTS_DEFAULT_ENGINE "cepstral" #define TTS_DEFAULT_VOICE "david" -struct shashdot_entry { +struct rss_entry { uint8_t inuse; char *title_txt; char *description_txt; @@ -82,7 +82,7 @@ /* dtmf handler function you can hook up to be executed when a digit is dialed during playback - if you return anything but SWITCH_STATUS_SUCCESS the playback will stop. + if you return anything but SWITCH_STATUS_SUCCESS the playback will stop. */ static switch_status_t on_dtmf(switch_core_session_t *session, char *dtmf, void *buf, unsigned int buflen) { @@ -154,7 +154,7 @@ const char *err = NULL; struct dtmf_buffer dtb = {0}; switch_xml_t xml = NULL, item, xchannel = NULL; - struct shashdot_entry entries[TTS_MAX_ENTRIES] = {{0}}; + struct rss_entry entries[TTS_MAX_ENTRIES] = {{0}}; uint32_t i = 0; char *title_txt = "", *description_txt = "", *rights_txt = ""; switch_codec_t speech_codec, *codec = switch_core_session_get_read_codec(session); @@ -287,6 +287,7 @@ filename = NULL; len = idx = 0; *cmd = '\0'; + title_txt = description_txt = rights_txt = ""; if (jumpto > -1) { snprintf(cmd, sizeof(cmd), "%d", jumpto); @@ -333,7 +334,7 @@ /* Hmmm... I know there are no more matches so I don't *need* them to press pound but I already told them to press it. Will this confuse people or not? Let's make em press pound unless this define is enabled for now. - */ + */ } else if (match_count(cmd, feed_index) > 1) { #else } else { @@ -407,6 +408,8 @@ item = switch_xml_child(xchannel, "item"); } } + + memset(entries, 0, sizeof(entries)); for (i = 0; item; item = item->next) { switch_xml_t title, description, subject, dept; Modified: freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/anthmcdr.cpp ============================================================================== --- freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/anthmcdr.cpp (original) +++ freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/anthmcdr.cpp Sun Jun 11 18:13:20 2006 @@ -10,7 +10,7 @@ memset(formattedcallendate,0,100); } -AnthmCDR::AnthmCDR(switch_channel *channel) : BaseCDR(channel) +AnthmCDR::AnthmCDR(switch_mod_cdr_newchannel_t *newchannel) : BaseCDR(newchannel) { memset(formattedcallstartdate,0,100); memset(formattedcallanswerdate,0,100); Modified: freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/anthmcdr.h ============================================================================== --- freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/anthmcdr.h (original) +++ freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/anthmcdr.h Sun Jun 11 18:13:20 2006 @@ -12,8 +12,8 @@ class AnthmCDR : public BaseCDR { public: AnthmCDR(); - AnthmCDR(switch_channel_t *channel); - AnthmCDR(const AnthmCDR& copyFrom); + AnthmCDR(switch_mod_cdr_newchannel_t *newchannel); + //AnthmCDR(const AnthmCDR& copyFrom); virtual ~AnthmCDR(); virtual bool process_record(); virtual void connect(switch_xml_t *cfg, switch_xml_t *xml, switch_xml_t *settings, switch_xml_t *param); // connect and disconnect need to be static because we're persisting connections until shutdown Modified: freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/basecdr.cpp ============================================================================== --- freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/basecdr.cpp (original) +++ freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/basecdr.cpp Sun Jun 11 18:13:20 2006 @@ -20,7 +20,7 @@ errorstate = 0; } -BaseCDR::BaseCDR(switch_channel *channel,switch_channel_timetable_t *temptimes,switch_caller_extension_t *tempcallerextension,switch_caller_profile_t *tempcallerprofile, switch_caller_profile_t *temporiginateprofile,bool& temporiginate) +BaseCDR::BaseCDR(switch_mod_cdr_newchannel_t *newchannel) { if(channel != 0) { @@ -30,6 +30,7 @@ memset(destuuid,0,37); memset(dialplan,0,80); memset(&hangupcause,0,sizeof(hangupcause)); + memset(hangupcause_text,0,80); memset(src,0,80); memset(dst,0,80); memset(srcchannel,0,80); @@ -46,42 +47,64 @@ */ } - callstartdate= temptimes->created; - callanswerdate = temptimes->answered; - callenddate = temptimes->hungup; + callstartdate= newchannel->timetable->created; + 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," ",1); + if(newchannel->callerprofile->caller_id_number != 0 ) + strncat(clid,newchannel->callerprofile->caller_id_number,strlen(clid)+strlen(newchannel->callerprofile->caller_id_number)); + } - strncpy(clid,tempcallerprofile->caller_id_name,strlen(tempcallerprofile->caller_id_name)); - strncat(clid," ",1); - strncat(clid,tempcallerprofile->caller_id_number,strlen(clid)+strlen(tempcallerprofile->caller_id_number)); - // Get the ANI information if it's set - if(tempcallerprofile->ani != 0) - strncpy(ani,tempcallerprofile->ani,strlen(tempcallerprofile->ani)); - if(tempcallerprofile->ani2 != 0) - strncpy(ani2,tempcallerprofile->ani2,strlen(tempcallerprofile->ani2)); + if(newchannel->callerprofile->ani != 0) + strncpy(ani,newchannel->callerprofile->ani,strlen(newchannel->callerprofile->ani)); + if(newchannel->callerprofile->ani2 != 0) + strncpy(ani2,tempcallerprofile->ani2,strlen(newchannel->callerprofile->ani2)); - if(tempcallerprofile->dialplan != 0) - strncpy(dialplan,tempcallerprofile->dialplan,strlen(tempcallerprofile->dialplan)); + if(newchannel->callerprofile->dialplan != 0) + strncpy(dialplan,tempcallerprofile->dialplan,strlen(newchannel->callerprofile->dialplan)); - if(tempcallerprofile->network_addr != 0) - strncpy(network_addr,tempcallerprofile->network_addr,strlen(tempcallerprofile->network_addr)); + if(newchannel->callerprofile->network_addr != 0) + strncpy(network_addr,newchannel->callerprofile->network_addr,strlen(newchannel->callerprofile->network_addr)); - switch_console_printf(SWITCH_CHANNEL_CONSOLE, "BaseCDR::BaseCDR(switch_channel*) - Channel caller_profile loaded.\n"); + switch_console_printf(SWITCH_CHANNEL_CONSOLE, "BaseCDR::BaseCDR(switch_mod_cdr_newchannel*) - Channel caller_profile loaded.\n"); - originated = temporiginate; + originated = newchannel->originate; - strncpy(destuuid,temporiginateprofile->uuid,strlen(temporiginateprofile->uuid)); - strncpy(dst,tempcallerprofile->caller_id_number,strlen(tempcallerprofile->caller_id_number)); - strncpy(src,tempcallerprofile->caller_id_number,strlen(tempcallerprofile->caller_id_number)); - strncpy(dstchannel,temporiginateprofile->chan_name,strlen(temporiginateprofile->chan_name)); + if(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) + 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) + strncpy(dstchannel,newchannel->originateprofile->chan_name,strlen(newchannel->originateprofile->chan_name)); + } - strncpy(myuuid,tempcallerprofile->uuid,strlen(tempcallerprofile->uuid)); - strncpy(srcchannel,tempcallerprofile->chan_name,strlen(tempcallerprofile->chan_name)); + strncpy(myuuid,newchannel->callerprofile->uuid,strlen(newchannel->callerprofile->uuid)); + strncpy(srcchannel,newchannel->callerprofile->chan_name,strlen(newchannel->callerprofile->chan_name)); - if(switch_channel_test_flag(channel,CF_ANSWERED)) + if(switch_channel_test_flag(newchannel->channel,CF_ANSWERED)) { disposition=1; - billusec = temptimes->hungup - temptimes->answered; + billusec = newchannel->timetable->hungup - newchannel->timetable->answered; } else { @@ -90,19 +113,19 @@ } // What was the hangup cause? - hangupcause = switch_channel_get_cause(channel); + hangupcause = switch_channel_get_cause(newchannel->channel); hangupcause_text = switch_channel_cause2str(hangupcause); - switch_console_printf(SWITCH_CHANNEL_CONSOLE, "BaseCDR::BaseCDR(switch_channel*) - Call state & length calculated.\n"); + switch_console_printf(SWITCH_CHANNEL_CONSOLE, "BaseCDR::BaseCDR(switch_mod_cdr_newchannel*) - Call state & length calculated.\n"); - if(tempcallerextension != 0) - if(tempcallerextension->last_application != 0) - { - if(tempcallerextension->last_application->application_name != 0) - strncpy(lastapp,tempcallerextension->last_application->application_name,strlen(tempcallerextension->last_application->application_name)); - if(tempcallerextension->last_application->application_data != 0) - strncpy(lastdata,tempcallerextension->last_application->application_data,strlen(tempcallerextension->last_application->application_data)); - } + if(newchannel->callerextension != 0) + if(newchannel->callerextension->last_application != 0) + { + if(newchannel->callerextension->last_application->application_name != 0) + strncpy(lastapp,newchannel->callerextension->last_application->application_name,strlen(newchannel->callerextension->last_application->application_name)); + if(newchannel->callerextension->last_application->application_data != 0) + strncpy(lastdata,newchannel->callerextension->last_application->application_data,strlen(newchannel->callerextension->last_application->application_data)); + } amaflags=0; // For future use I guess? I don't see anything in the docs about this /* @@ -110,7 +133,7 @@ strncpy(uniqueid," ",1); // I don't see any of the user stuff in the docs yet strncpy(userfield," ",1); // So we can't add these yet */ - switch_console_printf(SWITCH_CHANNEL_CONSOLE, "BaseCDR::BaseCDR(switch_channel*) - Processing completed.\n"); + switch_console_printf(SWITCH_CHANNEL_CONSOLE, "BaseCDR::BaseCDR(switch_mod_cdr_newchannel*) - Processing completed.\n"); } Modified: freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/basecdr.h ============================================================================== --- freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/basecdr.h (original) +++ freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/basecdr.h Sun Jun 11 18:13:20 2006 @@ -20,11 +20,22 @@ #include <sys/stat.h> #include <fcntl.h> +struct switch_mod_cdr_newchannel_t +{ + switch_channel_t *channel; + switch_channel_timetable_t *timetable; + switch_caller_extension_t *callerextension; + switch_caller_profile_t *callerprofile; + switch_caller_profile_t *originateprofile; + bool originate; +}; + + class BaseCDR { public: BaseCDR(); virtual ~BaseCDR(); - BaseCDR(switch_channel_t *channel,switch_channel_timetable_t *temptimes,switch_caller_extension_t *tempcallerextension,switch_caller_profile_t *tempcallerprofile, switch_caller_profile_t *temporiginateprofile,bool& temporiginate); + BaseCDR(switch_mod_cdr_newchannel_t *newchannel); //BaseCDR(const BaseCDR& copyFrom); virtual void connect(switch_xml_t *cfg, switch_xml_t *xml, switch_xml_t *settings, switch_xml_t *param) = 0; virtual void disconnect() = 0; @@ -65,8 +76,6 @@ */ bool errorstate; // True if there is an error writing the log }; - - #endif #endif Modified: freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/baseregistry.h ============================================================================== --- freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/baseregistry.h (original) +++ freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/baseregistry.h Sun Jun 11 18:13:20 2006 @@ -6,12 +6,12 @@ #ifdef __cplusplus #include <vector> -template<class T> BaseCDR* basecdr_factory(channel,temptimes,tempcallerextension,tempcallerprofile, temporiginateprofile,temporiginate) +template<class T> BaseCDR* basecdr_factory(newchannel) { - return new T(channel,temptimes,tempcallerextension,tempcallerprofile,temporiginateprofile,temporiginate); + return new T(newchannel); } -typedef BaseCDR* (*basecdr_creator)(switch_channel_t *channel,switch_channel_timetable_t *temptimes,switch_caller_extension_t *tempcallerextension,switch_caller_profile_t *tempcallerprofile, switch_caller_profile_t *temporiginateprofile,bool& temporiginate); +typedef BaseCDR* (*basecdr_creator)(switch_mod_cdr_newchannel_t *newchannel); class BaseRegistry { Modified: freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/cdrcontainer.cpp ============================================================================== --- freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/cdrcontainer.cpp (original) +++ freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/cdrcontainer.cpp Sun Jun 11 18:13:20 2006 @@ -17,19 +17,10 @@ char *configfile = "mod_cdr.conf"; switch_xml_t cfg, xml, settings, param; - switch_channel_timetable_t *temptimetable = new switch_channel_timetable_t; - memset(0,temptimetable,sizeof(*temptimetable)); + switch_mod_cdr_newchannel_t *newchannel = new switch_mod_cdr_newchannel_t; + memset(0,newchannel,sizeof(newchannel)); - switch_channel_caller_extension_t *tempcallerextension = new switch_channel_caller_extension_t; - memset(0,tempcallerextension,sizeof(*tempcallerextension)); - switch_channel_caller_profile_t *tempcallerprofile, *temporiginateprofile; - tempcallerprofile = new switch_channel_caller_profile; - temporiginateprofile = new switch_channel_caller_profile; - memset(0,tempcallerprofile,sizeof(*tempcallerprofile)); - memset(0,temporiginateprofile,sizeof(*temporiginateprofile)); - bool temporiginate = 0; - if (!(xml = switch_xml_open_cfg(cf, &cfg, NULL))) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "open of %s failed\n", cf); else @@ -46,10 +37,7 @@ switch_xml_free(xml); - delete temptimetable; - delete tempcallerextension; - delete tempcallerprofile; - delete temporiginateprofile; + delete newchannel; } CDRContainer::~CDRContainer() @@ -73,59 +61,60 @@ void CDRContainer::add_cdr(switch_channel_t *channel) { + switch_mod_cdr_newchannel_t *newchannel = new switch_mod_cdr_newchannel_t; + memset(0,newchannel,sizeof(*newchannel)); + + newchannel->timetable = switch_channel_get_timetables(channel); + newchannel->callerextension = switch_channel_get_caller_extension(channel); + newchannel->callerprofile = switch_channel_get_caller_profile(channel); + newchannel->originateprofile = switch_channel_get_originator_caller_profile(channel); + BaseRegistry& registry(BaseRegistry::get()); for(BaseRegistry::iterator it = registry.begin(); it != registry.end(); ++it) { - // Since we are now tracking transfers, etc, a call may have additional records in it - // Get out the channel stuff that is a linked list - switch_channel_timetable_t *temptimes; - temptimes = switch_channel_get_timetable(channel); - - switch_caller_extension *tempcallerextension; - tempcallerextension = switch_channel_get_caller_extension(channel); - - switch_caller_profile *tempcallerprofile = switch_channel_get_caller_profile(channel); - - switch_caller_profile *temporiginateprofile; // This is a temp pointer for either originator_caller_profile or originatee_caller_profile - temporiginateprofile = switch_channel_get_originator_caller_profile(channel); - /* First time it might be originator profile, or originatee. Second and after is always going to be originatee profile. */ - - bool temporiginate = 0; - if(temporiginateprofile != 0) + + basecdr_creator func = *it; + + if(newchannel->originateprofile != 0 ) { - add_to_queue(channel,temptimes,tempcallerextension,tempcallerprofile,temporiginateprofile,temporiginate); - if(timetables->next != 0) + BaseCDR* newloggerobject = func(newchannel); + switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Adding a new logger object to the queue.\n"); + switch_queue_push(cdrqueue,newloggerobject); + + if(newchannel->timetable->next != 0) { - temporiginateprofile = switch_channel_get_originatee_profile(channel); - temporiginate = 1; - }; + newchannel->originateprofile = switch_channel_get_originatee_profile(channel); + newchannel->originate = 1; + } } else { - temporiginateprofile = switch_channel_get_originatee_profile(channel); - temporiginate = 1; - add_to_queue(channel,temptimes,tempcallerextension,tempcallerprofile,temporiginateprofile,temporiginate); + newchannel->originateprofile = switch_channel_get_originatee_profile(channel); + newchannel->originate = 1; + + BaseCDR* newloggerobject = func(newchannel); + switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Adding a new logger object to the queue.\n"); + switch_queue_push(cdrqueue,newloggerobject); } - while (temptimes->next != 0 && tempcallerextension->next != 0 && tempcallerprofile->next != 0 && temporiginateprofile->next != 0 ) + while (newchannel->timetable->next != 0 && newchannel->callerextension->next != 0 && newchannel->callerprofile->next != 0 && newchannel->originateprofile->next != 0 ) { - temptimes = temptimes->next; - tempcallerprofile = tempcallerprofile->next; + newchannel->timetable = newchannel->timetable->next; + newchannel->callerprofile = newchannel->callerprofile->next; + newchannel->callerextension = newchannel->callerextension->next; + newchannel->originateprofile = newchannel->originateprofile->next; + BaseCDR* newloggerobject = func(newchannel); + switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Adding a new logger object to the queue.\n"); + switch_queue_push(cdrqueue,newloggerobject); } - } -} - -void CDRContainer::add_to_queue(switch_channel_t *channel,switch_channel_timetable_t *temptimes,switch_caller_extension_t *tempcallerextension,switch_caller_profile_t *tempcallerprofile, switch_caller_profile_t *temporiginateprofile,bool& temporiginate); -{ - basecdr_creator func = *it; - BaseCDR* newloggerobject = func(channel,temptimes,tempcallerextension,tempcallerprofile,temporiginateprofile,temporiginate); - switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Adding a new logger object to the queue.\n"); - switch_queue_push(cdrqueue,newloggerobject); + } + + delete newchannel; } void CDRContainer::process_records() Modified: freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/cdrcontainer.h ============================================================================== --- freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/cdrcontainer.h (original) +++ freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/cdrcontainer.h Sun Jun 11 18:13:20 2006 @@ -18,8 +18,8 @@ #include <iostream> #endif #include <switch.h> +#include "basecdr.h" - /* The CDRContainer Class will serve as a central receptacle for all CDR methods. CDRContainer::CDRContainer() will initialize the system, and CDRContainer::add_cdr() will add a new object of each CDR type to a queue for "later processing" by the other thread. CDRContainer::process_records() will iterate thru the queue and commit the records to the respective backends. @@ -36,20 +36,12 @@ CDRContainer(); CDRContainer(switch_memory_pool *module_pool); ~CDRContainer(); - void add_cdr(switch_channel *channel); + void add_cdr(switch_channel_t *channel); void process_records(); protected: private: switch_queue_t *cdrqueue; - //list<std::string> cdrformats; // What formats are we going to use? std::string tempfilepath; - void add_to_queue(switch_channel_t *channel,switch_channel_timetable_t *temptimes,switch_caller_extension_t *tempcallerextension,switch_caller_profile_t *tempcallerprofile, switch_caller_profile_t *temporiginateprofile,bool& temporiginate); - /* Old factory method, dirty and icky - list<std::string>::iterator cdrformatsBeg, cdrformatsEnd, cdrformatsItr; // Iterators for cdrformats - map<std::string,BaseCDR* (*)(switch_channel*) > logging_factory; // This is the factory for creation of objects - map<std::string,BaseCDR* (*)()> logging_connectors; // This map will associate each logging method with its connect() method - map<std::string,BaseCDR* (*)()> logging_disconnectors; // This will do the opposite of above, close up connections and cleanup - */ }; #ifdef __cplusplus Modified: freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/mysqlcdr.cpp ============================================================================== --- freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/mysqlcdr.cpp (original) +++ freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/mysqlcdr.cpp Sun Jun 11 18:13:20 2006 @@ -9,7 +9,7 @@ } -MysqlCDR::MysqlCDR(switch_channel *channel) : BaseCDR(channel) +MysqlCDR::MysqlCDR(switch_mod_cdr_newchannel_t *newchannel) : BaseCDR(newchannel) { clid_length = strlen(clid); src_length = strlen(src); Modified: freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/mysqlcdr.h ============================================================================== --- freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/mysqlcdr.h (original) +++ freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/mysqlcdr.h Sun Jun 11 18:13:20 2006 @@ -7,8 +7,8 @@ class MysqlCDR : public BaseCDR { public: MysqlCDR(); - MysqlCDR(switch_channel_t *channel); - MysqlCDR(const MysqlCDR& copyFrom); + MysqlCDR(switch_mod_cdr_newchannel_t *newchannel); + //MysqlCDR(const MysqlCDR& copyFrom); virtual ~MysqlCDR(); virtual bool process_record(); virtual void connect(switch_xml_t *cfg, switch_xml_t *xml, switch_xml_t *settings, switch_xml_t *param); Modified: freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/syslogcdr.cpp ============================================================================== --- freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/syslogcdr.cpp (original) +++ freeswitch/branches/mishehu/src/mod/loggers/mod_cdr/syslogcdr.cpp Sun Jun 11 18:13:20 2006 @@ -7,7 +7,7 @@ { } -SyslogCDR::SyslogCDR(switch_channel *channel) : BaseCDR(channel) +SyslogCDR::SyslogCDR(switch_mod_cdr_newchannel *newchannel) : BaseCDR(newchannel) { if(channel != 0) {
participants (1)
-
mishehuï¼ freeswitch.org