diff --git a/engine/rateinterval.go b/engine/rateinterval.go index 5e76e6693..8c9d521fc 100644 --- a/engine/rateinterval.go +++ b/engine/rateinterval.go @@ -376,8 +376,7 @@ func (il RateIntervalList) Swap(i, j int) { // we need higher weights earlyer in the list func (il RateIntervalList) Less(j, i int) bool { - return il[i].Weight < il[j].Weight || - il[i].Timing.StartTime > il[j].Timing.StartTime + return il[i].Weight < il[j].Weight //|| il[i].Timing.StartTime > il[j].Timing.StartTime } func (il RateIntervalList) Sort() { diff --git a/sessionmanager/session.go b/sessionmanager/session.go index a7cb64aae..09f539db7 100644 --- a/sessionmanager/session.go +++ b/sessionmanager/session.go @@ -86,6 +86,7 @@ func (s *Session) debitLoop(runIdx int) { //engine.Logger.Debug(fmt.Sprintf("NEXTCD: %s", utils.ToJSON(nextCd))) nextCd.DurationIndex += debitPeriod // first presumed duration cc := new(engine.CallCost) + nextCd.account = nil // make sure it is not cached if err := s.sessionManager.Rater().MaxDebit(nextCd, cc); err != nil { engine.Logger.Err(fmt.Sprintf("Could not complete debit opperation: %v", err)) s.sessionManager.DisconnectSession(s.eventStart, s.connId, SYSTEM_ERROR)