diff --git a/sessions/sessions.go b/sessions/sessions.go index a626f61cc..45cbaa2ea 100644 --- a/sessions/sessions.go +++ b/sessions/sessions.go @@ -1335,6 +1335,8 @@ func (smg *SMGeneric) BiRPCV1InitiateSession(clnt rpcclient.RpcClientConnection, } if authUsage != time.Duration(-1) { *maxUsage = authUsage.Seconds() + } else { + *maxUsage = smg.cgrCfg.SessionSCfg().MaxCallDuration.Seconds() // Force max since -1 is not supported by OpenSIPS 2.1 } } else { *maxUsage = minMaxUsage.Seconds() diff --git a/utils/slice.go b/utils/slice.go index b7f77e1ba..c15f75630 100644 --- a/utils/slice.go +++ b/utils/slice.go @@ -32,6 +32,18 @@ func IsSliceMember(ss []string, s string) bool { return false } +// SliceHasMember is a simpler mode to match inside a slice +// useful to search in shared vars (no slice sort) +func SliceHasMember(ss []string, s string) (has bool) { + for _, mbr := range ss { + if mbr == s { + has = true + break + } + } + return +} + func SliceWithoutMember(ss []string, s string) []string { sort.Strings(ss) if i := sort.SearchStrings(ss, s); i < len(ss) && ss[i] == s {