From a981242f5f0b66d2038fce5eb5e9132673b70d14 Mon Sep 17 00:00:00 2001 From: Trial97 Date: Thu, 8 Jul 2021 12:56:19 +0300 Subject: [PATCH] Updated *sipcid --- engine/attributes.go | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/engine/attributes.go b/engine/attributes.go index a026b16d7..ece735b5e 100644 --- a/engine/attributes.go +++ b/engine/attributes.go @@ -542,12 +542,24 @@ func ParseAttribute(dp utils.DataProvider, attrType, path string, value config.R } return usedCCTime + time.Duration(debitItvl.Nanoseconds()*reqNr), nil case utils.MetaSIPCID: - values := make([]string, len(value)) - for i, val := range value { - if values[i], err = val.ParseDataProvider(dp); err != nil { + values := make([]string, 1, len(value)) + if len(value) < 1 { + return nil, fmt.Errorf("invalid number of arguments <%s> to %s", + utils.ToJSON(value), utils.MetaSIPCID) + } + if values[0], err = value[0].ParseDataProvider(dp); err != nil { + return + } + for _, val := range value[1:] { + var valStr string + if valStr, err = val.ParseDataProvider(dp); err != nil && err != utils.ErrNotFound { return } + if len(valStr) != 0 && err != utils.ErrNotFound { + values = append(values, valStr) + } } + sort.Strings(values[1:]) out = strings.Join(values, utils.InfieldSep) default: