From bbc2f5d90ac703d2ee3af3f0eded2c94b22d34f1 Mon Sep 17 00:00:00 2001 From: TeoV Date: Tue, 24 Apr 2018 08:45:57 -0400 Subject: [PATCH] Finish call test for Kamailio --- agents/kamevent.go | 1 + data/tutorials/kamevapi/cgrates/etc/cgrates/cgrates.json | 2 +- data/tutorials/kamevapi/kamailio/etc/kamailio/kamailio.cfg | 2 +- engine/resources.go | 4 ++-- general_tests/tut_fs_calls_test.go | 3 +++ sessions/sessions.go | 2 +- sessions/sevent.go | 1 + utils/coreutils.go | 3 ++- 8 files changed, 12 insertions(+), 6 deletions(-) diff --git a/agents/kamevent.go b/agents/kamevent.go index 202f17648..18718f054 100644 --- a/agents/kamevent.go +++ b/agents/kamevent.go @@ -124,6 +124,7 @@ func (kev KamEvent) AsMapStringInterface() (mp map[string]interface{}) { mp[k] = v } } + mp[utils.EVENT_NAME] = utils.KamailioAgent return } diff --git a/data/tutorials/kamevapi/cgrates/etc/cgrates/cgrates.json b/data/tutorials/kamevapi/cgrates/etc/cgrates/cgrates.json index f8df73b4f..25d2715ef 100644 --- a/data/tutorials/kamevapi/cgrates/etc/cgrates/cgrates.json +++ b/data/tutorials/kamevapi/cgrates/etc/cgrates/cgrates.json @@ -86,7 +86,7 @@ "kamailio_agent": { "enabled": true, "evapi_conns":[ // instantiate connections to multiple Kamailio servers - {"address": "192.168.56.203:8448", "reconnects": 5} + {"address": "127.0.0.1:8448", "reconnects": 5} ], "sessions_conns": [ {"address": "*internal"} // connection towards session service: <*internal> diff --git a/data/tutorials/kamevapi/kamailio/etc/kamailio/kamailio.cfg b/data/tutorials/kamevapi/kamailio/etc/kamailio/kamailio.cfg index ab3606d4e..7590f3518 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", "192.168.56.203:8448") +modparam("evapi", "bind_addr", "127.0.0.1:8448") # ----- tm params ----- modparam("tm", "failure_reply_mode", 3) diff --git a/engine/resources.go b/engine/resources.go index e18249257..dac0a1181 100644 --- a/engine/resources.go +++ b/engine/resources.go @@ -530,9 +530,9 @@ func (rS *ResourceService) processThresholds(r *Resource) (err error) { // V1ResourcesForEvent returns active resource configs matching the event func (rS *ResourceService) V1ResourcesForEvent(args utils.ArgRSv1ResourceUsage, reply *Resources) (err error) { - if missing := utils.MissingStructFields(args, []string{"Tenant", "ID"}); len(missing) != 0 { //Params missing + if missing := utils.MissingStructFields(&args.CGREvent, []string{"Tenant", "ID"}); len(missing) != 0 { //Params missing return utils.NewErrMandatoryIeMissing(missing...) - } else if args.CGREvent.Event == nil { + } else if args.Event == nil { return utils.NewErrMandatoryIeMissing("Event") } var mtcRLs Resources diff --git a/general_tests/tut_fs_calls_test.go b/general_tests/tut_fs_calls_test.go index 20fa6bc7b..9497b61d2 100755 --- a/general_tests/tut_fs_calls_test.go +++ b/general_tests/tut_fs_calls_test.go @@ -224,6 +224,7 @@ func testCallCheckResourceBeforeAllocation(t *testing.T) { args := &utils.ArgRSv1ResourceUsage{ CGREvent: utils.CGREvent{ Tenant: "cgrates.org", + ID: "ResourceEvent", Event: map[string]interface{}{ utils.Account: "1001", utils.Subject: "1001", @@ -346,6 +347,7 @@ func testCallCheckResourceAllocation(t *testing.T) { args := &utils.ArgRSv1ResourceUsage{ CGREvent: utils.CGREvent{ Tenant: "cgrates.org", + ID: "ResourceAllocation", Event: map[string]interface{}{ utils.Account: "1001", utils.Subject: "1001", @@ -456,6 +458,7 @@ func testCallCheckResourceRelease(t *testing.T) { args := &utils.ArgRSv1ResourceUsage{ CGREvent: utils.CGREvent{ Tenant: "cgrates.org", + ID: "ResourceRelease", Event: map[string]interface{}{ utils.Account: "1001", utils.Subject: "1001", diff --git a/sessions/sessions.go b/sessions/sessions.go index 021a3144a..252c84bf2 100644 --- a/sessions/sessions.go +++ b/sessions/sessions.go @@ -709,7 +709,7 @@ func (smg *SMGeneric) GetMaxUsage(gev SMGenericEvent) (maxUsage time.Duration, e return } maxUsage = time.Duration(maxDur) - if maxUsage != time.Duration(-1*time.Second) && + if maxUsage != time.Duration(-1) && maxUsage < smg.cgrCfg.SessionSCfg().MinCallDuration { return 0, errors.New("UNAUTHORIZED_MIN_DURATION") } diff --git a/sessions/sevent.go b/sessions/sevent.go index e53a1d8f0..4b758a1ff 100644 --- a/sessions/sevent.go +++ b/sessions/sevent.go @@ -310,6 +310,7 @@ func (self SMGenericEvent) GetOriginatorIP(fieldName string) string { } func (self SMGenericEvent) GetCdrSource() string { + fmt.Printf("Event %+v\n", self) return utils.SMG + "_" + self.GetName() } diff --git a/utils/coreutils.go b/utils/coreutils.go index 66c7f000c..e7874e462 100644 --- a/utils/coreutils.go +++ b/utils/coreutils.go @@ -794,7 +794,8 @@ func RPCCall(inst interface{}, serviceMethod string, args interface{}, reply int if len(methodSplit) != 2 { return rpcclient.ErrUnsupporteServiceMethod } - method := reflect.ValueOf(inst).MethodByName(methodSplit[0][len(methodSplit[0])-2:] + methodSplit[1]) + method := reflect.ValueOf(inst).MethodByName( + strings.ToUpper(methodSplit[0][len(methodSplit[0])-2:]) + methodSplit[1]) if !method.IsValid() { return rpcclient.ErrUnsupporteServiceMethod }