diff --git a/sessionmanager/smg_it_test.go b/sessionmanager/smg_it_test.go index e42be764a..cc4ddda11 100644 --- a/sessionmanager/smg_it_test.go +++ b/sessionmanager/smg_it_test.go @@ -618,13 +618,13 @@ func TestSMGSessionTTL(t *testing.T) { t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MONETARY].GetTotalValue()) } smgEv := SMGenericEvent{ - utils.EVENT_NAME: "TEST_EVENT", + utils.EVENT_NAME: "TEST_EVENT_SESSION_TTL", utils.TOR: utils.VOICE, - utils.ACCID: "12349", + utils.ACCID: "12350", utils.DIRECTION: utils.OUT, utils.ACCOUNT: "1001", utils.SUBJECT: "1001", - utils.DESTINATION: "1006", + utils.DESTINATION: "1008", utils.CATEGORY: "call", utils.TENANT: "cgrates.org", utils.REQTYPE: utils.META_PREPAID, @@ -646,13 +646,13 @@ func TestSMGSessionTTL(t *testing.T) { t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MONETARY].GetTotalValue()) } smgEv = SMGenericEvent{ - utils.EVENT_NAME: "TEST_EVENT", + utils.EVENT_NAME: "TEST_EVENT_SESSION_TTL", utils.TOR: utils.VOICE, - utils.ACCID: "12349", + utils.ACCID: "12350", utils.DIRECTION: utils.OUT, utils.ACCOUNT: "1001", utils.SUBJECT: "1001", - utils.DESTINATION: "1006", + utils.DESTINATION: "1008", utils.CATEGORY: "call", utils.TENANT: "cgrates.org", utils.REQTYPE: utils.META_PREPAID, @@ -680,4 +680,18 @@ func TestSMGSessionTTL(t *testing.T) { } else if acnt.BalanceMap[utils.MONETARY].GetTotalValue() != eAcntVal { t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.MONETARY].GetTotalValue()) } + var cdrs []*engine.ExternalCDR + req := utils.RPCCDRsFilter{RunIDs: []string{utils.META_DEFAULT}, DestinationPrefixes: []string{"1008"}} + if err := smgRPC.Call("ApierV2.GetCdrs", req, &cdrs); err != nil { + t.Error("Unexpected error: ", err.Error()) + } else if len(cdrs) != 1 { + t.Error("Unexpected number of CDRs returned: ", len(cdrs)) + } else { + if cdrs[0].Usage != "30.01" { + t.Errorf("Unexpected CDR Usage received, cdr: %+v ", cdrs[0]) + } + if cdrs[0].Cost != 1.2 { + t.Errorf("Unexpected CDR Cost received, cdr: %+v ", cdrs[0]) + } + } } diff --git a/sessionmanager/smgeneric.go b/sessionmanager/smgeneric.go index 4e8b33730..5c4089e99 100644 --- a/sessionmanager/smgeneric.go +++ b/sessionmanager/smgeneric.go @@ -78,9 +78,9 @@ func (self *SMGeneric) resetTerminatorTimer(uuid string, ttl time.Duration, ttlL // Called when a session timeouts func (self *SMGeneric) ttlTerminate(s *SMGSession, tmtr *smgSessionTerminator) { - evUpdate := s.eventStart - evUpdate[utils.USAGE] = 0.0 totalSessionUsage := s.TotalUsage() + tmtr.ttl + evUpdate := s.eventStart + evUpdate[utils.USAGE] = tmtr.ttl.Seconds() if tmtr.ttlUsage != nil { totalSessionUsage = s.TotalUsage() + *tmtr.ttlUsage evUpdate[utils.USAGE] = tmtr.ttlUsage.Seconds()