diff --git a/engine/cdr.go b/engine/cdr.go index c0ba04750..838d17623 100644 --- a/engine/cdr.go +++ b/engine/cdr.go @@ -434,11 +434,13 @@ func (cdr *CDR) AsExportRecord(exportFields []*config.FCTemplate, if !strings.HasPrefix(cfgFld.Path, utils.MetaExp+utils.NestingSep) { continue } - if pass, err := filterS.Pass(cdr.Tenant, - cfgFld.Filters, nM); err != nil { - return []string{}, err - } else if !pass { - continue + if cfgFld.Type != utils.META_COMBIMED { // *combimed will apply it's filters lazy + if pass, err := filterS.Pass(cdr.Tenant, + cfgFld.Filters, nM); err != nil { + return []string{}, err + } else if !pass { + continue + } } fmtOut, err := cdr.formatField(cfgFld, httpSkipTLSCheck, groupedCDRs, filterS) if err != nil { diff --git a/engine/filters.go b/engine/filters.go index a3828900b..b4cb5be6f 100644 --- a/engine/filters.go +++ b/engine/filters.go @@ -52,9 +52,9 @@ type FilterS struct { // receives the event as DataProvider so we can accept undecoded data (ie: HttpRequest) func (fS *FilterS) Pass(tenant string, filterIDs []string, ev utils.DataProvider) (pass bool, err error) { - defer func() { + /*defer func() { fmt.Printf("Pass event: %+v with filters: %+v, pass: %+v, err: %+v", utils.ToIJSON(ev), utils.ToIJSON(filterIDs), pass, err) - }() + }() */ var fieldNameDP utils.DataProvider var fieldValuesDP []utils.DataProvider if len(filterIDs) == 0 {