diff --git a/engine/calldesc.go b/engine/calldesc.go index 5888c7854..113563757 100644 --- a/engine/calldesc.go +++ b/engine/calldesc.go @@ -532,16 +532,18 @@ func (origCD *CallDescriptor) getMaxSessionDuration(origAcc *Account) (time.Dura var totalCost float64 var totalDuration time.Duration defaultBalance := account.GetDefaultMoneyBalance(cd.Direction) - Logger.Debug("ORIG: " + utils.ToJSON(defaultBalance)) + Logger.Debug("DEFAULT_BALANCE: " + utils.ToJSON(defaultBalance)) cc.Timespans.Decompress() //log.Printf("ACC: %+v", account) for _, ts := range cc.Timespans { //if ts.RateInterval != nil { //log.Printf("TS: %+v", ts) + Logger.Debug("TS: " + utils.ToJSON(ts)) //} if cd.MaxRate > 0 && cd.MaxRateUnit > 0 { rate, _, rateUnit := ts.RateInterval.GetRateParameters(ts.GetGroupStart()) if rate/rateUnit.Seconds() > cd.MaxRate/cd.MaxRateUnit.Seconds() { + Logger.Debug(fmt.Sprintf("0_INIT DUR %v, TOTAL DUR: %v", initialDuration, totalDuration)) return utils.MinDuration(initialDuration, totalDuration), nil } } @@ -549,21 +551,24 @@ func (origCD *CallDescriptor) getMaxSessionDuration(origAcc *Account) (time.Dura ts.createIncrementsSlice() } for _, incr := range ts.Increments { + Logger.Debug("INCR: " + utils.ToJSON(incr)) totalCost += incr.Cost if defaultBalance.Value < 0 && incr.BalanceInfo.MoneyBalanceUuid == defaultBalance.Uuid { // this increment was payed with debt // TODO: improve this check + Logger.Debug(fmt.Sprintf("1_INIT DUR %v, TOTAL DUR: %v", initialDuration, totalDuration)) return utils.MinDuration(initialDuration, totalDuration), nil } totalDuration += incr.Duration if totalDuration >= initialDuration { // we have enough, return + Logger.Debug(fmt.Sprintf("2_INIT DUR %v, TOTAL DUR: %v", initialDuration, totalDuration)) return initialDuration, nil } } } - Logger.Debug(fmt.Sprintf("INIT DUR %v, TOTAL DUR: %v", initialDuration, totalDuration)) + Logger.Debug(fmt.Sprintf("3_INIT DUR %v, TOTAL DUR: %v", initialDuration, totalDuration)) return utils.MinDuration(initialDuration, totalDuration), nil }