00001 // OSB library ************************************************ -*- C++ -*- 00010 /* 00011 AUTHOR(S): Venkatesan (vn) 00012 00013 RCS information 00014 $Name: OSB_060808 $ 00015 $Revision: 1.8 $ 00016 00017 License 00018 OSB rating and billing library for communication networks 00019 Copyright (C) 2004, 2005, 2006 OSB systems 00020 00021 This file may be distributed and/or modify under the terms of the 00022 GNU General Public License (GPL) as published by the Free Software 00023 Foundation which is provided in the file LICENSE.GPL included in the 00024 packaging of this file. 00025 00026 The file is distributed in the hope that it will be useful, but WITHOUT 00027 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00028 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00029 for more details. 00030 00031 Holders of a OSB Commercial License may use this file under the terms 00032 and conditions of this commercial license. 00033 */ 00034 #ifndef _SOFTVIEWPROCESSOR_H_ 00035 #define _SOFTVIEWPROCESSOR_H_ 00036 00037 // ************************************************************************ 00038 // included header files 00039 // + standard includes 00040 00041 // + local headers 00042 #include "cdrpostprocessor.h" 00043 00044 // ************************************************************************ 00045 // namespace extensions 00046 namespace OSB_LIB { 00047 00048 // ************************************************************************ 00049 // forward declarations 00050 class SoftviewProcessor; 00051 00052 // ************************************************************************ 00053 // class definitions 00059 struct SoftviewCdr 00060 { 00061 std::string callId_; 00062 std::string callingPartyNo_; 00063 std::string calledPartyNo_; 00064 Id2<NetworkElement> elementId_; 00065 std::string inTrunkGroup_; 00066 long inTrunkNo_; 00067 std::string outTrunkGroup_; 00068 long outTrunkNo_; 00069 long callLeg_; 00070 DateTime startTime_; 00071 DateTime connectTime_; 00072 long callDuration_; 00073 long releaseCause_; 00074 }; 00075 00082 class SoftviewProcessor: public CdrPostProcessor { 00083 public: 00085 SoftviewProcessor(); 00087 ~SoftviewProcessor(); 00091 void startTransaction(); 00100 CdrPostProcessor::ProcessStatus processCdr(Cdr& cdr); 00105 void stopTransaction(OSB_DB::Session& session); 00106 private: 00108 std::string transactionId_; 00110 std::vector<SoftviewCdr> softviewCdrs_; 00111 }; 00112 } // namespace OSB_LIB 00113 #endif // #ifndef _SOFTVIEWPROCESSOR_H_