diff --git a/agents/libagents.go b/agents/libagents.go index 4f991874d..cfe39659b 100644 --- a/agents/libagents.go +++ b/agents/libagents.go @@ -189,16 +189,20 @@ func processRequest(ctx *context.Context, reqProcessor *config.RequestProcessor, return true, nil } - // Clone is needed to prevent data races if requests are sent - // asynchronously. - ev := cgrEv.Clone() - - ev.Event[utils.ReplyState] = replyState - ev.Event[utils.StartTime] = startTime - ev.Event[utils.EndTime] = endTime - ev.Event[utils.ProcessingTime] = endTime.Sub(startTime) - ev.Event[utils.Source] = agentName - ev.APIOpts[utils.MetaEventType] = utils.ProcessTime + ev := &utils.CGREvent{ + Tenant: cgrEv.Tenant, + ID: utils.GenUUID(), + Event: map[string]any{ + utils.ReplyState: replyState, + utils.StartTime: startTime, + utils.EndTime: endTime, + utils.ProcessingTime: endTime.Sub(startTime), + utils.Source: agentName, + }, + APIOpts: map[string]any{ + utils.MetaEventType: utils.ProcessTime, + }, + } if rawStatIDs != "" { statIDs := strings.Split(rawStatIDs, utils.ANDSep) diff --git a/agents/radagent.go b/agents/radagent.go index 66c343f74..4ecf72812 100644 --- a/agents/radagent.go +++ b/agents/radagent.go @@ -467,16 +467,20 @@ func (ra *RadiusAgent) processRequest(req *radigo.Packet, reqProcessor *config.R return true, nil } - // Clone is needed to prevent data races if requests are sent - // asynchronously. - ev := cgrEv.Clone() - - ev.Event[utils.ReplyState] = replyState - ev.Event[utils.StartTime] = startTime - ev.Event[utils.EndTime] = endTime - ev.Event[utils.ProcessingTime] = endTime.Sub(startTime) - ev.Event[utils.Source] = utils.RadiusAgent - ev.APIOpts[utils.MetaEventType] = utils.ProcessTime + ev := &utils.CGREvent{ + Tenant: cgrEv.Tenant, + ID: utils.GenUUID(), + Event: map[string]any{ + utils.ReplyState: replyState, + utils.StartTime: startTime, + utils.EndTime: endTime, + utils.ProcessingTime: endTime.Sub(startTime), + utils.Source: utils.RadiusAgent, + }, + APIOpts: map[string]any{ + utils.MetaEventType: utils.ProcessTime, + }, + } if rawStatIDs != "" { statIDs := strings.Split(rawStatIDs, utils.ANDSep) diff --git a/agents/sipagent.go b/agents/sipagent.go index e7c73b232..9c4515fc2 100644 --- a/agents/sipagent.go +++ b/agents/sipagent.go @@ -465,16 +465,20 @@ func (sa *SIPAgent) processRequest(reqProcessor *config.RequestProcessor, return true, nil } - // Clone is needed to prevent data races if requests are sent - // asynchronously. - ev := cgrEv.Clone() - - ev.Event[utils.ReplyState] = replyState - ev.Event[utils.StartTime] = startTime - ev.Event[utils.EndTime] = endTime - ev.Event[utils.ProcessingTime] = endTime.Sub(startTime) - ev.Event[utils.Source] = utils.SIPAgent - ev.APIOpts[utils.MetaEventType] = utils.ProcessTime + ev := &utils.CGREvent{ + Tenant: cgrEv.Tenant, + ID: utils.GenUUID(), + Event: map[string]any{ + utils.ReplyState: replyState, + utils.StartTime: startTime, + utils.EndTime: endTime, + utils.ProcessingTime: endTime.Sub(startTime), + utils.Source: utils.SIPAgent, + }, + APIOpts: map[string]any{ + utils.MetaEventType: utils.ProcessTime, + }, + } if rawStatIDs != "" { statIDs := strings.Split(rawStatIDs, utils.ANDSep) diff --git a/ers/ers.go b/ers/ers.go index 93b647407..841028ea7 100644 --- a/ers/ers.go +++ b/ers/ers.go @@ -207,16 +207,20 @@ func (erS *ERService) processEvent(cgrEv *utils.CGREvent, return } - // Clone is needed to prevent data races if requests are sent - // asynchronously. - ev := cgrEv.Clone() - - ev.Event[utils.ReplyState] = replyState - ev.Event[utils.StartTime] = startTime - ev.Event[utils.EndTime] = endTime - ev.Event[utils.ProcessingTime] = endTime.Sub(startTime) - ev.Event[utils.Source] = utils.ERs - ev.APIOpts[utils.MetaEventType] = utils.ProcessTime + ev := &utils.CGREvent{ + Tenant: cgrEv.Tenant, + ID: utils.GenUUID(), + Event: map[string]any{ + utils.ReplyState: replyState, + utils.StartTime: startTime, + utils.EndTime: endTime, + utils.ProcessingTime: endTime.Sub(startTime), + utils.Source: utils.ERs, + }, + APIOpts: map[string]any{ + utils.MetaEventType: utils.ProcessTime, + }, + } if rawStatIDs != "" { statIDs := strings.Split(rawStatIDs, utils.ANDSep)