From f1e3e5822db00ca90b0dc21e37d426ee5c5cbcb2 Mon Sep 17 00:00:00 2001 From: DanB Date: Sat, 17 Feb 2018 16:36:34 +0100 Subject: [PATCH] Adding extra fields in events translated inside FreeSWITCH Agent --- agents/fsevent.go | 25 +++---------------------- agents/fsevent_test.go | 19 ------------------- 2 files changed, 3 insertions(+), 41 deletions(-) diff --git a/agents/fsevent.go b/agents/fsevent.go index 25b32cd5f..0c108e69a 100644 --- a/agents/fsevent.go +++ b/agents/fsevent.go @@ -25,7 +25,6 @@ import ( "time" "github.com/cgrates/cgrates/config" - "github.com/cgrates/cgrates/engine" "github.com/cgrates/cgrates/sessions" "github.com/cgrates/cgrates/utils" "github.com/cgrates/fsock" @@ -324,27 +323,6 @@ func (fsev FSEvent) ParseEventValue(rsrFld *utils.RSRField, timezone string) str } } -// AsCDR converts FSEvent into CDR -func (fsev FSEvent) AsCDR(timezone string) *engine.CDR { - storCdr := new(engine.CDR) - storCdr.ToR = utils.VOICE - storCdr.OriginID = fsev.GetUUID() - storCdr.OriginHost = fsev.GetOriginatorIP(utils.META_DEFAULT) - storCdr.Source = "FS_" + fsev.GetName() - storCdr.RequestType = fsev.GetReqType(utils.META_DEFAULT) - storCdr.Tenant = fsev.GetTenant(utils.META_DEFAULT) - storCdr.Category = fsev.GetCategory(utils.META_DEFAULT) - storCdr.Account = fsev.GetAccount(utils.META_DEFAULT) - storCdr.Subject = fsev.GetSubject(utils.META_DEFAULT) - storCdr.Destination = fsev.GetDestination(utils.META_DEFAULT) - storCdr.SetupTime, _ = fsev.GetSetupTime(utils.META_DEFAULT, timezone) - storCdr.AnswerTime, _ = fsev.GetAnswerTime(utils.META_DEFAULT, timezone) - storCdr.Usage, _ = fsev.GetDuration(utils.META_DEFAULT) - storCdr.ExtraFields = fsev.GetExtraFields() - storCdr.Cost = -1 - return storCdr -} - // AsCGREvent converts FSEvent into CGREvent func (fsev FSEvent) AsCGREvent(timezone string) (cgrEv *utils.CGREvent, err error) { sTime, err := fsev.GetSetupTime(utils.META_DEFAULT, timezone) @@ -363,6 +341,9 @@ func (fsev FSEvent) AsCGREvent(timezone string) (cgrEv *utils.CGREvent, err erro // Used with RLs func (fsev FSEvent) AsMapStringInterface(timezone string) map[string]interface{} { mp := make(map[string]interface{}) + for fld, val := range fsev.GetExtraFields() { + mp[fld] = val + } mp[utils.TOR] = utils.VOICE mp[utils.OriginID] = fsev.GetUUID() mp[utils.OriginHost] = fsev.GetOriginatorIP(utils.META_DEFAULT) diff --git a/agents/fsevent_test.go b/agents/fsevent_test.go index 2260b23ff..420845d11 100644 --- a/agents/fsevent_test.go +++ b/agents/fsevent_test.go @@ -23,7 +23,6 @@ import ( "time" "github.com/cgrates/cgrates/config" - "github.com/cgrates/cgrates/engine" "github.com/cgrates/cgrates/sessions" "github.com/cgrates/cgrates/utils" ) @@ -557,24 +556,6 @@ func TestParseEventValue(t *testing.T) { } } -func TestFsEvAsCDR(t *testing.T) { - cfg, _ := config.NewDefaultCGRConfig() - config.SetCgrConfig(cfg) - ev := NewFSEvent(hangupEv) - setupTime, _ := utils.ParseTimeDetectLayout("1436280728", "") - aTime, _ := utils.ParseTimeDetectLayout("1436280728", "") - eStoredCdr := &engine.CDR{ - ToR: utils.VOICE, OriginID: "e3133bf7-dcde-4daf-9663-9a79ffcef5ad", - OriginHost: "10.0.3.15", Source: "FS_CHANNEL_HANGUP_COMPLETE", RequestType: utils.META_PREPAID, - Tenant: "cgrates.org", Category: "call", Account: "1001", Subject: "1001", - Destination: "1003", SetupTime: setupTime, AnswerTime: aTime, - Usage: time.Duration(66) * time.Second, - ExtraFields: make(map[string]string), Cost: -1} - if storedCdr := ev.AsCDR(""); !reflect.DeepEqual(eStoredCdr, storedCdr) { - t.Errorf("Expecting: %+v, received: %+v", eStoredCdr, storedCdr) - } -} - func TestFsEvAsCGREvent(t *testing.T) { timezone := config.CgrConfig().DefaultTimezone ev := NewFSEvent(hangupEv)