diff --git a/ees/ees.go b/ees/ees.go index 831968bbe..f298d433e 100644 --- a/ees/ees.go +++ b/ees/ees.go @@ -108,7 +108,8 @@ func (eeS *EventExporterS) attrSProcessEvent(cgrEv *utils.CGREvent, attrIDs []st } cgrEv.APIOpts[utils.Subsys] = utils.MetaEEs cgrEv.APIOpts[utils.OptsAttributesProfileIDs] = attrIDs - cgrEv.APIOpts[utils.OptsContext] = ctx + cgrEv.APIOpts[utils.OptsContext] = utils.FirstNonEmpty(ctx, + utils.IfaceAsString(cgrEv.APIOpts[utils.OptsContext]), utils.MetaEEs) if err = eeS.connMgr.Call(eeS.cfg.EEsNoLksCfg().AttributeSConns, nil, utils.AttributeSv1ProcessEvent, cgrEv, &rplyEv); err == nil && len(rplyEv.AlteredFields) != 0 { *cgrEv = *rplyEv.CGREvent diff --git a/engine/cdrs.go b/engine/cdrs.go index b98919c7b..5e5ce4db6 100644 --- a/engine/cdrs.go +++ b/engine/cdrs.go @@ -374,9 +374,9 @@ func (cdrS *CDRServer) attrSProcessEvent(cgrEv *utils.CGREvent) (err error) { cgrEv.APIOpts = make(map[string]interface{}) } cgrEv.APIOpts[utils.Subsys] = utils.MetaCDRs - if cgrEv.APIOpts[utils.OptsContext] == utils.EmptyString { - cgrEv.APIOpts[utils.OptsContext] = utils.MetaCDRs - } + cgrEv.APIOpts[utils.OptsContext] = utils.FirstNonEmpty( + utils.IfaceAsString(cgrEv.APIOpts[utils.OptsContext]), + utils.MetaCDRs) if err = cdrS.connMgr.Call(cdrS.cgrCfg.CdrsCfg().AttributeSConns, nil, utils.AttributeSv1ProcessEvent, cgrEv, &rplyEv); err == nil && len(rplyEv.AlteredFields) != 0 { diff --git a/engine/chargers.go b/engine/chargers.go index 97840f426..d7ea9055a 100644 --- a/engine/chargers.go +++ b/engine/chargers.go @@ -124,9 +124,9 @@ func (cS *ChargerService) processEvent(tnt string, cgrEv *utils.CGREvent) (rply continue // AttributeS disabled } clonedEv.APIOpts[utils.OptsAttributesProfileIDs] = cP.AttributeIDs - if clonedEv.APIOpts[utils.OptsContext] == utils.EmptyString { - clonedEv.APIOpts[utils.OptsContext] = utils.MetaChargers - } + clonedEv.APIOpts[utils.OptsContext] = utils.FirstNonEmpty( + utils.IfaceAsString(clonedEv.APIOpts[utils.OptsContext]), + utils.MetaChargers) var evReply AttrSProcessEventReply if err = cS.connMgr.Call(cS.cfg.ChargerSCfg().AttributeSConns, nil, utils.AttributeSv1ProcessEvent, clonedEv, &evReply); err != nil { diff --git a/engine/routes.go b/engine/routes.go index f6c357717..5d35f468a 100644 --- a/engine/routes.go +++ b/engine/routes.go @@ -575,9 +575,8 @@ func (rpS *RouteService) V1GetRoutes(args *utils.CGREvent, reply *SortedRoutesLi args.APIOpts = make(map[string]interface{}) } args.APIOpts[utils.Subsys] = utils.MetaRoutes - if args.APIOpts[utils.OptsContext] == utils.EmptyString { - args.APIOpts[utils.OptsContext] = utils.MetaRoutes - } + context := utils.GetStringOpts(args, rpS.cgrcfg.RouteSCfg().Opts.Context, utils.OptsContext) + args.APIOpts[utils.OptsContext] = utils.FirstNonEmpty(context, utils.MetaRoutes) var rplyEv AttrSProcessEventReply if err := rpS.connMgr.Call(rpS.cgrcfg.RouteSCfg().AttributeSConns, nil, utils.AttributeSv1ProcessEvent, args, &rplyEv); err == nil && len(rplyEv.AlteredFields) != 0 { diff --git a/sessions/sessions.go b/sessions/sessions.go index 7436b0f98..c3758b3b1 100644 --- a/sessions/sessions.go +++ b/sessions/sessions.go @@ -3846,9 +3846,9 @@ func (sS *SessionS) processAttributes(cgrEv *utils.CGREvent, attrIDs []string, } cgrEv.APIOpts[utils.Subsys] = utils.MetaSessionS cgrEv.APIOpts[utils.OptsAttributesProfileIDs] = attrIDs - if cgrEv.APIOpts[utils.OptsContext] == utils.EmptyString { - cgrEv.APIOpts[utils.OptsContext] = utils.MetaSessionS - } + cgrEv.APIOpts[utils.OptsContext] = utils.FirstNonEmpty( + utils.IfaceAsString(cgrEv.APIOpts[utils.OptsContext]), + utils.MetaSessionS) cgrEv.SetCloneable(clnb) err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().AttrSConns, nil, utils.AttributeSv1ProcessEvent, cgrEv, &rplyEv)