diff --git a/apier/v1/cdrs.go b/apier/v1/cdrs.go index 05ef3afed..b6dbcb806 100644 --- a/apier/v1/cdrs.go +++ b/apier/v1/cdrs.go @@ -89,6 +89,11 @@ func (cdrSv1 *CDRsV1) ProcessCDR(cdr *engine.CDR, reply *string) error { return cdrSv1.CDRs.V1ProcessCDR(cdr, reply) } +// ProcessCDR will process a CDR in CGRateS internal format +func (cdrSv1 *CDRsV1) ProcessEvent(arg *engine.ArgV1ProcessEvent, reply *string) error { + return cdrSv1.CDRs.V1ProcessEvent(arg, reply) +} + // ProcessExternalCDR will process a CDR in external format func (cdrSv1 *CDRsV1) ProcessExternalCDR(cdr *engine.ExternalCDR, reply *string) error { return cdrSv1.CDRs.V1ProcessExternalCDR(cdr, reply) diff --git a/apier/v2/cdrs.go b/apier/v2/cdrs.go index ab4e0d4b3..41389446c 100644 --- a/apier/v2/cdrs.go +++ b/apier/v2/cdrs.go @@ -71,7 +71,3 @@ type CDRsV2 struct { func (cdrSv2 *CDRsV2) StoreSessionCost(args *engine.ArgsV2CDRSStoreSMCost, reply *string) error { return cdrSv2.CDRs.V2StoreSessionCost(args, reply) } - -func (cdrSv2 *CDRsV2) ProcessCDR(arg *engine.ArgV2ProcessCDR, reply *string) error { - return cdrSv2.CDRs.V2ProcessCDR(arg, reply) -} diff --git a/cdrc/cdrc.go b/cdrc/cdrc.go index 33c5c4fd4..28fc815f3 100644 --- a/cdrc/cdrc.go +++ b/cdrc/cdrc.go @@ -220,8 +220,8 @@ func (self *Cdrc) processFile(filePath string) error { utils.Logger.Info(fmt.Sprintf(" DryRun CDR: %+v", storedCdr)) continue } - if err := self.cdrs.Call(utils.CDRsV2ProcessCDR, - &engine.ArgV2ProcessCDR{CGREvent: *storedCdr.AsCGREvent()}, &reply); err != nil { + if err := self.cdrs.Call(utils.CDRsV1ProcessEvent, + &engine.ArgV1ProcessEvent{CGREvent: *storedCdr.AsCGREvent()}, &reply); err != nil { utils.Logger.Err(fmt.Sprintf(" Failed sending CDR, %+v, error: %s", storedCdr, err.Error())) } else if reply != "OK" { utils.Logger.Err(fmt.Sprintf(" Received unexpected reply for CDR, %+v, reply: %s", storedCdr, reply)) diff --git a/cdrc/partial_cdr.go b/cdrc/partial_cdr.go index b2597b3a5..f5d9b6f92 100644 --- a/cdrc/partial_cdr.go +++ b/cdrc/partial_cdr.go @@ -104,8 +104,8 @@ func (prc *PartialRecordsCache) postCDR(originID string) { cdr := prc.partialRecords[originID].MergeCDRs() cdr.Partial = false // force completion var reply string - if err := prc.cdrs.Call(utils.CDRsV2ProcessCDR, - &engine.ArgV2ProcessCDR{CGREvent: *cdr.AsCGREvent()}, &reply); err != nil { + if err := prc.cdrs.Call(utils.CDRsV1ProcessEvent, + &engine.ArgV1ProcessEvent{CGREvent: *cdr.AsCGREvent()}, &reply); err != nil { utils.Logger.Err(fmt.Sprintf(" Failed sending CDR %+v from partial cache, error: %s", cdr, err.Error())) } else if reply != utils.OK { utils.Logger.Err(fmt.Sprintf(" Received unexpected reply for CDR, %+v, reply: %s", cdr, reply)) diff --git a/engine/action.go b/engine/action.go index 49da69106..c862cb610 100644 --- a/engine/action.go +++ b/engine/action.go @@ -210,8 +210,8 @@ func cdrLogAction(acc *Account, a *Action, acs Actions, extraData interface{}) ( cdrs = append(cdrs, cdr) var rply string // After compute the CDR send it to CDR Server to be processed - if err := schedCdrsConns.Call(utils.CDRsV2ProcessCDR, - &ArgV2ProcessCDR{CGREvent: *cdr.AsCGREvent()}, &rply); err != nil { + if err := schedCdrsConns.Call(utils.CDRsV1ProcessEvent, + &ArgV1ProcessEvent{CGREvent: *cdr.AsCGREvent()}, &rply); err != nil { return err } } diff --git a/engine/cdrs.go b/engine/cdrs.go index fa12c38d4..ff71668c4 100644 --- a/engine/cdrs.go +++ b/engine/cdrs.go @@ -486,7 +486,7 @@ func (cdrS *CDRServer) V1ProcessCDR(cdr *CDR, reply *string) (err error) { return } -type ArgV2ProcessCDR struct { +type ArgV1ProcessEvent struct { utils.CGREvent AttributeS *bool // control AttributeS processing RALs *bool // control if we rate the event @@ -498,13 +498,13 @@ type ArgV2ProcessCDR struct { } // V2ProcessCDR will process the CDR out of CGREvent -func (cdrS *CDRServer) V2ProcessCDR(arg *ArgV2ProcessCDR, reply *string) (err error) { +func (cdrS *CDRServer) V1ProcessEvent(arg *ArgV1ProcessEvent, reply *string) (err error) { if arg.CGREvent.ID == "" { arg.CGREvent.ID = utils.GenUUID() } // RPC caching if config.CgrConfig().CacheCfg()[utils.CacheRPCResponses].Limit != 0 { - cacheKey := utils.ConcatenatedKey(utils.CDRsV2ProcessCDR, arg.CGREvent.ID) + cacheKey := utils.ConcatenatedKey(utils.CDRsV1ProcessEvent, arg.CGREvent.ID) refID := guardian.Guardian.GuardIDs("", config.CgrConfig().GeneralCfg().LockingTimeout, cacheKey) // RPC caching needs to be atomic defer guardian.Guardian.UnguardIDs(refID) diff --git a/sessions/sessions.go b/sessions/sessions.go index 98d5d4709..3cc34cb90 100644 --- a/sessions/sessions.go +++ b/sessions/sessions.go @@ -390,8 +390,9 @@ func (sS *SessionS) forceSTerminate(s *Session, extraDebit time.Duration, lastUs } else { var reply string for _, cgrEv := range cgrEvs { - if err = sS.cdrS.Call(utils.CDRsV2ProcessCDR, - &engine.ArgV2ProcessCDR{CGREvent: *cgrEv, + if err = sS.cdrS.Call(utils.CDRsV1ProcessEvent, + &engine.ArgV1ProcessEvent{ + CGREvent: *cgrEv, ChargerS: utils.BoolPointer(false), AttributeS: utils.BoolPointer(false)}, &reply); err != nil { utils.Logger.Warning( @@ -2308,7 +2309,8 @@ func (sS *SessionS) BiRPCv1ProcessCDR(clnt rpcclient.RpcClientConnection, } } if s == nil { // no cached session, CDR will be handled by CDRs - return sS.cdrS.Call(utils.CDRsV2ProcessCDR, &engine.ArgV2ProcessCDR{CGREvent: *cgrEv}, rply) + return sS.cdrS.Call(utils.CDRsV1ProcessEvent, + &engine.ArgV1ProcessEvent{CGREvent: *cgrEv}, rply) } // Use previously stored Session to generate CDRs @@ -2328,14 +2330,15 @@ func (sS *SessionS) BiRPCv1ProcessCDR(clnt rpcclient.RpcClientConnection, var withErrors bool for _, cgrEv := range cgrEvs { - argsProc := &engine.ArgV2ProcessCDR{CGREvent: *cgrEv, + argsProc := &engine.ArgV1ProcessEvent{ + CGREvent: *cgrEv, ChargerS: utils.BoolPointer(false), AttributeS: utils.BoolPointer(false)} if unratedReqs.HasField( // order additional rating for unrated request types engine.NewMapEvent(cgrEv.Event).GetStringIgnoreErrors(utils.RequestType)) { argsProc.RALs = utils.BoolPointer(true) } - if err = sS.cdrS.Call(utils.CDRsV2ProcessCDR, + if err = sS.cdrS.Call(utils.CDRsV1ProcessEvent, argsProc, rply); err != nil { utils.Logger.Warning( fmt.Sprintf("<%s> error <%s> posting CDR with CGRID: <%s>", diff --git a/utils/consts.go b/utils/consts.go index d8c9db551..cdf1713a3 100755 --- a/utils/consts.go +++ b/utils/consts.go @@ -837,7 +837,7 @@ const ( CDRsV1GetCDRs = "CDRsV1.GetCDRs" CDRsV1ProcessCDR = "CDRsV1.ProcessCDR" CDRsV1StoreSessionCost = "CDRsV1.StoreSessionCost" - CDRsV2ProcessCDR = "CDRsV2.ProcessCDR" + CDRsV1ProcessEvent = "CDRsV1.ProcessEvent" CDRsV2StoreSessionCost = "CDRsV2.StoreSessionCost" )