diff --git a/agents/libagents.go b/agents/libagents.go index ccd04a187..566ae886b 100644 --- a/agents/libagents.go +++ b/agents/libagents.go @@ -257,16 +257,21 @@ 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(), + Time: utils.TimePointer(time.Now()), + 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 22eefad43..527ca1178 100644 --- a/agents/radagent.go +++ b/agents/radagent.go @@ -526,16 +526,21 @@ 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(), + Time: utils.TimePointer(time.Now()), + 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 a4c89978b..36d7bce60 100644 --- a/agents/sipagent.go +++ b/agents/sipagent.go @@ -493,16 +493,21 @@ 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(), + Time: utils.TimePointer(time.Now()), + 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 17fa6ad1f..bbec14671 100644 --- a/ers/ers.go +++ b/ers/ers.go @@ -250,16 +250,21 @@ 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(), + Time: utils.TimePointer(time.Now()), + 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)