diff --git a/engine/calldesc.go b/engine/calldesc.go index 187435743..c1b6c9c6f 100644 --- a/engine/calldesc.go +++ b/engine/calldesc.go @@ -415,6 +415,7 @@ func (cd *CallDescriptor) GetMaxSessionDuration() (time.Duration, error) { if cd.CallDuration == 0 { cd.CallDuration = cd.TimeEnd.Sub(cd.TimeStart) } + Logger.Debug(fmt.Sprintf("MAX SESSION cd: %+v", cd)) err := cd.LoadRatingPlans() if err != nil { Logger.Err(fmt.Sprintf("error getting cost for key %v: %v", cd.GetUserBalanceKey(), err)) @@ -422,7 +423,6 @@ func (cd *CallDescriptor) GetMaxSessionDuration() (time.Duration, error) { } var availableDuration time.Duration availableCredit := 0.0 - // Logger.Debug(fmt.Sprintf("cd: %+v", cd)) if userBalance, err := cd.getUserBalance(); err == nil && userBalance != nil { if userBalance.Type == UB_TYPE_POSTPAID { return -1, nil @@ -434,6 +434,7 @@ func (cd *CallDescriptor) GetMaxSessionDuration() (time.Duration, error) { Logger.Err(fmt.Sprintf("Could not get user balance for %s: %s.", cd.GetUserBalanceKey(), err.Error())) return 0, err } + Logger.Debug(fmt.Sprintf("availableDuration: %v, availableCredit: %v", availableDuration, availableCredit)) // check for zero balance if availableCredit == 0 { return availableDuration, nil @@ -443,7 +444,7 @@ func (cd *CallDescriptor) GetMaxSessionDuration() (time.Duration, error) { // there are enough minutes for requested interval return initialDuration, nil } - + Logger.Debug(fmt.Sprintf("initial Duration: %v", initialDuration)) // we must move the timestart for the interval with the available duration because // that was already checked cd.TimeStart = cd.TimeStart.Add(availableDuration) @@ -455,6 +456,7 @@ func (cd *CallDescriptor) GetMaxSessionDuration() (time.Duration, error) { // now let's check how many increments are covered with the avilableCredit for _, ts := range cc.Timespans { ts.createIncrementsSlice() + Logger.Debug(fmt.Sprintf("TS: %+v", ts)) for _, incr := range ts.Increments { if incr.Cost <= availableCredit { availableCredit -= incr.Cost