diff --git a/cmd/cgr-engine/cgr-engine.go b/cmd/cgr-engine/cgr-engine.go index 3d5b90f71..9c461fbec 100644 --- a/cmd/cgr-engine/cgr-engine.go +++ b/cmd/cgr-engine/cgr-engine.go @@ -339,7 +339,8 @@ func startCDRS(logDb engine.LogStorage, cdrDb engine.CdrStorage, responder *engi cdrSrv := v1.CdrsV1{CdrSrv: cdrServer} server.RpcRegister(&cdrSrv) server.RpcRegister(&v2.CdrsV2{CdrsV1: cdrSrv}) - responder.CdrSrv = cdrServer // Make the cdrserver available for internal communication + // Make the cdr servers available for internal communication + responder.CdrSrv = cdrServer close(doneChan) } diff --git a/engine/calldesc.go b/engine/calldesc.go index 9aeb4d7f3..8988e04a2 100644 --- a/engine/calldesc.go +++ b/engine/calldesc.go @@ -656,7 +656,7 @@ func (cd *CallDescriptor) Clone() *CallDescriptor { } } -func (cd *CallDescriptor) GetLCR() (*LCRCost, error) { +func (cd *CallDescriptor) GetLCR(stats StatsInterface) (*LCRCost, error) { lcr, err := dataStorage.GetLCR(cd.GetLCRKey(""), false) if err != nil || lcr == nil { // try the *any customer @@ -719,7 +719,7 @@ func (cd *CallDescriptor) GetLCR() (*LCRCost, error) { } if ts.Entry.Strategy == LCR_STRATEGY_QOS_WITH_THRESHOLD { // get stats and filter suppliers by qos thresholds - + //stats.GetValues() } if cc, err := lcrCD.debit(cd.account, true, true); err != nil || cc == nil { ts.SupplierCosts = append(ts.SupplierCosts, &LCRSupplierCost{ diff --git a/engine/responder.go b/engine/responder.go index c95a68c83..6d349a313 100644 --- a/engine/responder.go +++ b/engine/responder.go @@ -44,6 +44,7 @@ type Responder struct { Bal *balancer2go.Balancer ExitChan chan bool CdrSrv *CdrServer + Stats StatsInterface } /* @@ -241,6 +242,12 @@ func (rs *Responder) ProcessCdr(cdr *StoredCdr, reply *string) error { return nil } +func (rs *Responder) GetLCR(cd *CallDescriptor, reply *LCRCost) error { + lcrCost, err := cd.GetLCR(rs.Stats) + *reply = *lcrCost + return err +} + func (rs *Responder) FlushCache(arg CallDescriptor, reply *float64) (err error) { if rs.Bal != nil { *reply, err = rs.callMethod(&arg, "Responder.FlushCache")