From ee100d423da103b8f3f436f071b82a7bd61fca63 Mon Sep 17 00:00:00 2001 From: Tripon Alexandru-Ionut Date: Fri, 31 May 2019 14:48:16 +0300 Subject: [PATCH] Updated OriginHost to be used uniform --- agents/asterisk_event.go | 6 +++++- agents/kamagent.go | 8 ++++---- agents/kamevent.go | 3 +++ 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/agents/asterisk_event.go b/agents/asterisk_event.go index f1c0b002c..8dced0575 100644 --- a/agents/asterisk_event.go +++ b/agents/asterisk_event.go @@ -158,6 +158,10 @@ func (smaEv *SMAsteriskEvent) Subsystems() string { return smaEv.cachedFields[utils.CGRSubsystems] } +func (smaEv *SMAsteriskEvent) OriginHost() string { + return smaEv.cachedFields[utils.CGROriginHost] +} + func (smaEv *SMAsteriskEvent) DisconnectCause() string { cachedKey := utils.CGR_DISCONNECT_CAUSE cachedVal, hasIt := smaEv.cachedFields[cachedKey] @@ -235,7 +239,7 @@ func (smaEv *SMAsteriskEvent) AsMapStringInterface() (mp map[string]interface{}) if smaEv.Subject() != "" { mp[utils.Subject] = smaEv.Subject() } - mp[utils.OriginHost] = smaEv.OriginatorIP() + mp[utils.OriginHost] = utils.FirstNonEmpty(smaEv.OriginHost(), smaEv.OriginatorIP()) mp[utils.Account] = smaEv.Account() mp[utils.Destination] = smaEv.Destination() mp[utils.SetupTime] = smaEv.SetupTime() diff --git a/agents/kamagent.go b/agents/kamagent.go index 5d535a2ec..712abcb72 100644 --- a/agents/kamagent.go +++ b/agents/kamagent.go @@ -122,7 +122,7 @@ func (ka *KamailioAgent) onCgrAuth(evData []byte, connID string) { utils.KamailioAgent, kev[utils.OriginID])) return } - authArgs.CGREvent.Event[utils.OriginHost] = ka.conns[connID].RemoteAddr().String() + authArgs.CGREvent.Event[utils.OriginHost] = utils.FirstNonEmpty(authArgs.CGREvent.Event[utils.OriginHost].(string), ka.conns[connID].RemoteAddr().String()) authArgs.CGREvent.Event[EvapiConnID] = connID // Attach the connection ID var authReply sessions.V1AuthorizeReply err = ka.sessionS.Call(utils.SessionSv1AuthorizeEvent, authArgs, &authReply) @@ -158,7 +158,7 @@ func (ka *KamailioAgent) onCallStart(evData []byte, connID string) { return } initSessionArgs.CGREvent.Event[EvapiConnID] = connID // Attach the connection ID so we can properly disconnect later - initSessionArgs.CGREvent.Event[utils.OriginHost] = ka.conns[connID].RemoteAddr().String() + initSessionArgs.CGREvent.Event[utils.OriginHost] = utils.FirstNonEmpty(initSessionArgs.CGREvent.Event[utils.OriginHost].(string), ka.conns[connID].RemoteAddr().String()) var initReply sessions.V1InitSessionReply if err := ka.sessionS.Call(utils.SessionSv1InitiateSession, @@ -195,7 +195,7 @@ func (ka *KamailioAgent) onCallEnd(evData []byte, connID string) { return } var reply string - tsArgs.CGREvent.Event[utils.OriginHost] = ka.conns[connID].RemoteAddr().String() + tsArgs.CGREvent.Event[utils.OriginHost] = utils.FirstNonEmpty(tsArgs.CGREvent.Event[utils.OriginHost].(string), ka.conns[connID].RemoteAddr().String()) tsArgs.CGREvent.Event[EvapiConnID] = connID // Attach the connection ID in case we need to create a session and disconnect it if err := ka.sessionS.Call(utils.SessionSv1TerminateSession, tsArgs, &reply); err != nil { @@ -209,7 +209,7 @@ func (ka *KamailioAgent) onCallEnd(evData []byte, connID string) { if err != nil { return } - cgrEv.Event[utils.OriginHost] = ka.conns[connID].RemoteAddr().String() + cgrEv.Event[utils.OriginHost] = utils.FirstNonEmpty(cgrEv.Event[utils.OriginHost].(string), ka.conns[connID].RemoteAddr().String()) cgrArgs := cgrEv.ConsumeArgs(strings.Index(kev[utils.CGRSubsystems], utils.MetaDispatchers) != -1, false) if err := ka.sessionS.Call(utils.SessionSv1ProcessCDR, &utils.CGREventWithArgDispatcher{CGREvent: cgrEv, ArgDispatcher: cgrArgs.ArgDispatcher}, &reply); err != nil { diff --git a/agents/kamevent.go b/agents/kamevent.go index 69a781d72..8c4f215b2 100644 --- a/agents/kamevent.go +++ b/agents/kamevent.go @@ -118,6 +118,9 @@ func (kev KamEvent) AsMapStringInterface() (mp map[string]interface{}) { v += "s" // mark the Usage as seconds } if !utils.IsSliceMember(kamReservedEventFields, k) { // reserved attributes not getting into event + if k == utils.CGROriginHost { + mp[utils.OriginHost] = v + } mp[k] = v } }