From d40a9193e6538bbeccea4122d0418ccb4c4651ec Mon Sep 17 00:00:00 2001 From: DanB Date: Mon, 11 Apr 2016 20:31:01 +0200 Subject: [PATCH] SMG SessionTimers considering LastUsed, generating also CDR --- sessionmanager/data_it_test.go | 2 +- sessionmanager/smgeneric.go | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/sessionmanager/data_it_test.go b/sessionmanager/data_it_test.go index 75e927719..6944fdd8b 100644 --- a/sessionmanager/data_it_test.go +++ b/sessionmanager/data_it_test.go @@ -426,7 +426,7 @@ func TestSMGDataTTLExpired(t *testing.T) { t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.DATA].GetTotalValue()) } time.Sleep(50 * time.Millisecond) - eAcntVal = 49999897600.000000 + eAcntVal = 49999887360.000000 if err := smgRPC.Call("ApierV2.GetAccount", attrs, &acnt); err != nil { t.Error(err) } else if acnt.BalanceMap[utils.DATA].GetTotalValue() != eAcntVal { diff --git a/sessionmanager/smgeneric.go b/sessionmanager/smgeneric.go index 1dcbe7508..fd086efbf 100644 --- a/sessionmanager/smgeneric.go +++ b/sessionmanager/smgeneric.go @@ -65,7 +65,12 @@ func (self *SMGeneric) indexSession(uuid string, s *SMGSession) { go func() { select { case <-timer.C: - self.sessionEnd(uuid, 0) + totalUsage := s.TotalUsage() + self.cgrCfg.SmGenericConfig.SessionTTL + self.sessionEnd(uuid, totalUsage) + cdr := s.eventStart.AsStoredCdr(self.cgrCfg, self.timezone) + cdr.Usage = totalUsage + var reply string + self.cdrsrv.ProcessCdr(cdr, &reply) case <-endChan: timer.Stop() }