diff --git a/agents/kamagent.go b/agents/kamagent.go index 1c47dc8ba..272045c88 100644 --- a/agents/kamagent.go +++ b/agents/kamagent.go @@ -108,6 +108,8 @@ func (ka *KamailioAgent) onCgrAuth(evData []byte, connID string) { utils.KamailioAgent, kev[utils.OriginID])) return } + ipv4Addr := strings.Split(ka.conns[connID].RemoteAddr().String(), ":")[0] + authArgs.CGREvent.Event[utils.OriginHost] = ipv4Addr var authReply sessions.V1AuthorizeReply err = ka.sessionS.Call(utils.SessionSv1AuthorizeEvent, authArgs, &authReply) if kar, err := kev.AsKamAuthReply(authArgs, &authReply, err); err != nil { @@ -142,6 +144,8 @@ func (ka *KamailioAgent) onCallStart(evData []byte, connID string) { return } initSessionArgs.CGREvent.Event[EvapiConnID] = connID // Attach the connection ID so we can properly disconnect later + ipv4Addr := strings.Split(ka.conns[connID].RemoteAddr().String(), ":")[0] + initSessionArgs.CGREvent.Event[utils.OriginHost] = ipv4Addr var initReply sessions.V1InitSessionReply if err := ka.sessionS.Call(utils.SessionSv1InitiateSession, initSessionArgs, &initReply); err != nil { @@ -177,6 +181,8 @@ func (ka *KamailioAgent) onCallEnd(evData []byte, connID string) { return } var reply string + ipv4Addr := strings.Split(ka.conns[connID].RemoteAddr().String(), ":")[0] + tsArgs.CGREvent.Event[utils.OriginHost] = ipv4Addr if err := ka.sessionS.Call(utils.SessionSv1TerminateSession, tsArgs, &reply); err != nil { utils.Logger.Err( @@ -189,6 +195,8 @@ func (ka *KamailioAgent) onCallEnd(evData []byte, connID string) { if err != nil { return } + ipv4Addr := strings.Split(ka.conns[connID].RemoteAddr().String(), ":")[0] + cgrEv.Event[utils.OriginHost] = ipv4Addr if err := ka.sessionS.Call(utils.SessionSv1ProcessCDR, *cgrEv, &reply); err != nil { utils.Logger.Err(fmt.Sprintf("%s> failed processing CGREvent: %s, error: %s", utils.KamailioAgent, utils.ToJSON(cgrEv), err.Error())) diff --git a/data/tutorials/kamevapi/cgrates/etc/cgrates/cgrates.json b/data/tutorials/kamevapi/cgrates/etc/cgrates/cgrates.json index d9dc1734a..f8df73b4f 100644 --- a/data/tutorials/kamevapi/cgrates/etc/cgrates/cgrates.json +++ b/data/tutorials/kamevapi/cgrates/etc/cgrates/cgrates.json @@ -73,6 +73,12 @@ "attributes_conns": [ {"address": "127.0.0.1:2012", "transport": "*json"} ], + "stats_conns": [ + {"address": "127.0.0.1:2012", "transport": "*json"} + ], + "thresholds_conns": [ + {"address": "127.0.0.1:2012", "transport": "*json"} + ], "debit_interval": "10s", }, @@ -80,7 +86,7 @@ "kamailio_agent": { "enabled": true, "evapi_conns":[ // instantiate connections to multiple Kamailio servers - {"address": "127.0.0.1:8448", "reconnects": 5} + {"address": "192.168.56.203:8448", "reconnects": 5} ], "sessions_conns": [ {"address": "*internal"} // connection towards session service: <*internal> diff --git a/data/tutorials/kamevapi/kamailio/etc/kamailio/kamailio-cgrates.cfg b/data/tutorials/kamevapi/kamailio/etc/kamailio/kamailio-cgrates.cfg index c201b182b..c3d3e5adf 100644 --- a/data/tutorials/kamevapi/kamailio/etc/kamailio/kamailio-cgrates.cfg +++ b/data/tutorials/kamevapi/kamailio/etc/kamailio/kamailio-cgrates.cfg @@ -54,7 +54,7 @@ route[CGRATES_AUTH_REQUEST] { evapi_async_relay("{\"event\":\"CGR_AUTH_REQUEST\", \"tr_index\":\"$T(id_index)\", \"tr_label\":\"$T(id_label)\", - \"cgr_subsystems\":\"*attributes;*resources;*accounts;*suppliers\", + \"cgr_subsystems\":\"*attributes;*resources;*accounts;*suppliers;*stats;*thresholds\", \"RequestType\":\"$dlg_var(cgrReqType)\", \"Tenant\":\"$dlg_var(cgrTenant)\", \"Account\":\"$dlg_var(cgrAccount)\", @@ -100,7 +100,7 @@ route[CGR_CALL_START] { evapi_relay("{\"event\":\"CGR_CALL_START\", \"h_entry\":\"$dlg(h_entry)\", \"h_id\":\"$dlg(h_id)\", - \"cgr_subsystems\":\"*resources;*accounts\", + \"cgr_subsystems\":\"*attributes;*resources;*accounts;*stats;*thresholds\", \"OriginID\":\"$dlg_var(cgrOriginID)\", \"RequestType\":\"$dlg_var(cgrReqType)\", \"Tenant\":\"$dlg_var(cgrTenant)\", @@ -119,7 +119,7 @@ route[CGR_CALL_END] { } $var(callDur) = $TS - $dlg(start_ts); evapi_relay("{\"event\":\"CGR_CALL_END\", - \"cgr_subsystems\":\"*resources;*accounts\", + \"cgr_subsystems\":\"*resources;*accounts;*stats;*thresholds\", \"OriginID\":\"$dlg_var(cgrOriginID)\", \"RequestType\":\"$dlg_var(cgrReqType)\", \"Tenant\":\"$dlg_var(cgrTenant)\", diff --git a/data/tutorials/kamevapi/kamailio/etc/kamailio/kamailio.cfg b/data/tutorials/kamevapi/kamailio/etc/kamailio/kamailio.cfg index 7590f3518..ab3606d4e 100644 --- a/data/tutorials/kamevapi/kamailio/etc/kamailio/kamailio.cfg +++ b/data/tutorials/kamevapi/kamailio/etc/kamailio/kamailio.cfg @@ -61,7 +61,7 @@ loadmodule "outbound.so" # ----------------- setting module-specific parameters --------------- -modparam("evapi", "bind_addr", "127.0.0.1:8448") +modparam("evapi", "bind_addr", "192.168.56.203:8448") # ----- tm params ----- modparam("tm", "failure_reply_mode", 3) diff --git a/glide.lock b/glide.lock index f8f59b0d4..376e30f63 100644 --- a/glide.lock +++ b/glide.lock @@ -14,7 +14,7 @@ imports: - name: github.com/cgrates/fsock version: 5b60f0d72ff4f8885289bffab55435e5b8adfb55 - name: github.com/cgrates/kamevapi - version: e4dfe7d6cb5bb0872111fe7d61af0e1a19eda485 + version: 0e0d0379606fd8f12b53c6da6aeb28544f7bfa37 - name: github.com/cgrates/ltcache version: 72c7e248f205d81666842bf108384eec8d18f425 - name: github.com/cgrates/osipsdagram