populate cdr Usage

This commit is contained in:
Radu Ioan Fericean
2016-03-24 17:39:47 +02:00
parent 73286e3c71
commit 4ff66e0883
14 changed files with 63 additions and 51 deletions

View File

@@ -225,7 +225,6 @@ func (self *SMGSession) saveOperations() error {
}
firstCC := self.callCosts[0] // was merged in close method
firstCC.Round()
self.totalUsage = time.Duration(firstCC.RatedUsage) // save final usage
//utils.Logger.Debug("Saved CC: " + utils.ToJSON(firstCC))
roundIncrements := firstCC.GetRoundIncrements()
if len(roundIncrements) != 0 {
@@ -242,6 +241,7 @@ func (self *SMGSession) saveOperations() error {
CgrId: self.eventStart.GetCgrId(self.timezone),
Source: utils.SESSION_MANAGER_SOURCE,
RunId: self.runId,
Usage: float64(self.totalUsage),
CallCost: firstCC,
CheckDuplicate: true,
}, &reply)

View File

@@ -117,6 +117,7 @@ func (self *SMGeneric) sessionEnd(sessionId string, usage time.Duration) error {
return nil, nil // Did not find the session so no need to close it anymore
}
for idx, s := range ss {
s.totalUsage = usage // save final usage as totalUsage
//utils.Logger.Info(fmt.Sprintf("<SMGeneric> Ending session: %s, runId: %s", sessionId, s.runId))
if idx == 0 && s.stopDebit != nil {
close(s.stopDebit) // Stop automatic debits
@@ -333,18 +334,8 @@ func (self *SMGeneric) ChargeEvent(gev SMGenericEvent, clnt *rpc2.Client) (maxDu
}
func (self *SMGeneric) ProcessCdr(gev SMGenericEvent) error {
cdr := gev.AsStoredCdr(self.cgrCfg, self.timezone)
if cdr.Usage == 0 {
var s *SMGSession
for _, s = range self.getSession(gev.GetUUID()) {
break
}
if s != nil {
cdr.Usage = s.TotalUsage()
}
}
var reply string
if err := self.cdrsrv.ProcessCdr(cdr, &reply); err != nil {
if err := self.cdrsrv.ProcessCdr(gev.AsStoredCdr(self.cgrCfg, self.timezone), &reply); err != nil {
return err
}
return nil