/* * FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application Call Detail Recorder module * Copyright 2006, Author: Yossi Neiman of Cartis Solutions, Inc. * * Version: MPL 1.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application Call Detail Recorder module * * The Initial Developer of the Original Code is * Yossi Neiman * Portions created by the Initial Developer are Copyright (C) * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Yossi Neiman * * Description: This C++ header file describes the PddCDR class which handles formatting a CDR out to * individual text files in a Perl Data Dumper format. * * pddcdr.h * */ #include "baseregistry.h" #include #include #include #include #include #ifndef PDDCDR #define PDDMCDR class PddCDR : public BaseCDR { public: PddCDR(); PddCDR(switch_mod_cdr_newchannel_t *newchannel); virtual ~PddCDR(); 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 virtual void disconnect(); virtual bool is_activated(); virtual void tempdump_record(); virtual void reread_tempdumped_records(); private: static bool activated; // Is this module activated? static bool connectionstate; // What is the status of the connection? static bool logchanvars; static std::string outputfile_path; // The directory we'll dump these into static std::list chanvars_fixed_list; // Normally this would be used, but not in this class static std::list chanvars_supp_list; // This will hold the list for all chanvars here char formattedcallstartdate[100]; char formattedcallanswerdate[100]; char formattedcallenddate[100]; std::string outputfile_name; std::ofstream outputfile; }; #endif /* For Emacs: * Local Variables: * mode:c * indent-tabs-mode:nil * tab-width:4 * c-basic-offset:4 * End: * For VIM: * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab: */