mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
In case of not populating asterisk cgr_subsystems go with defaults
This commit is contained in:
committed by
Dan Christian Bogos
parent
16974afe78
commit
e189cfe9d1
@@ -276,6 +276,8 @@ func (smaEv *SMAsteriskEvent) V1AuthorizeArgs() (args *sessions.V1AuthorizeArgs)
|
||||
CGREvent: *cgrEv,
|
||||
}
|
||||
if smaEv.Subsystems() == utils.EmptyString {
|
||||
utils.Logger.Err(fmt.Sprintf("<%s> cgr_subsystems variable is not set",
|
||||
utils.AsteriskAgent))
|
||||
return
|
||||
}
|
||||
args.GetMaxUsage = strings.Index(smaEv.Subsystems(), utils.MetaAccounts) != -1
|
||||
@@ -300,7 +302,7 @@ func (smaEv *SMAsteriskEvent) V1InitSessionArgs(cgrEv utils.CGREvent) (args *ses
|
||||
if err != nil {
|
||||
utils.Logger.Err(fmt.Sprintf("<%s> event: %s don't have cgr_subsystems variable",
|
||||
utils.AsteriskAgent, utils.ToJSON(cgrEv)))
|
||||
return nil
|
||||
return
|
||||
}
|
||||
args.InitSession = strings.Index(subsystems, utils.MetaAccounts) != -1
|
||||
args.AllocateResources = strings.Index(subsystems, utils.MetaResources) != -1
|
||||
@@ -319,7 +321,7 @@ func (smaEv *SMAsteriskEvent) V1TerminateSessionArgs(cgrEv utils.CGREvent) (args
|
||||
if err != nil {
|
||||
utils.Logger.Err(fmt.Sprintf("<%s> event: %s don't have cgr_subsystems variable",
|
||||
utils.AsteriskAgent, utils.ToJSON(cgrEv)))
|
||||
return nil
|
||||
return
|
||||
}
|
||||
args.TerminateSession = strings.Index(subsystems, utils.MetaAccounts) != -1
|
||||
args.ReleaseResources = strings.Index(subsystems, utils.MetaResources) != -1
|
||||
|
||||
@@ -21,6 +21,10 @@ import (
|
||||
"encoding/json"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/cgrates/cgrates/config"
|
||||
"github.com/cgrates/cgrates/sessions"
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -325,3 +329,122 @@ func TestSMAEventExtraParameters(t *testing.T) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", expExtraParams, extraParams)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSMAEventV1AuthorizeArgs(t *testing.T) {
|
||||
timezone := config.CgrConfig().GeneralCfg().DefaultTimezone
|
||||
var ev map[string]interface{}
|
||||
if err := json.Unmarshal([]byte(stasisStart), &ev); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
smaEv := NewSMAsteriskEvent(ev, "127.0.0.1")
|
||||
cgrEv, err := smaEv.AsCGREvent(timezone)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
exp := &sessions.V1AuthorizeArgs{
|
||||
GetMaxUsage: true,
|
||||
CGREvent: *cgrEv,
|
||||
}
|
||||
if rcv := smaEv.V1AuthorizeArgs(); !reflect.DeepEqual(exp.GetMaxUsage, rcv.GetMaxUsage) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", exp.GetMaxUsage, rcv.GetMaxUsage)
|
||||
}
|
||||
|
||||
stasisStart2 := `{"type":"StasisStart","timestamp":"2018-11-25T05:03:26.464-0500","args":["cgr_reqtype=*prepaid","cgr_supplier=supplier1","cgr_subsystems=*accounts*attributes*resources*stats*suppliers*thresholds"],"channel":{"id":"1543140206.0","dialplan":{"context":"internal","exten":"1002","priority":4},"caller":{"name":"","number":"1001"},"name":"PJSIP/1001-00000000","state":"Ring","connected":{"name":"","number":""},"language":"en","accountcode":"","creationtime":"2018-11-25T05:03:26.463-0500"},"asterisk_id":"08:00:27:b7:b8:1f","application":"cgrates_auth"}`
|
||||
var ev2 map[string]interface{}
|
||||
if err := json.Unmarshal([]byte(stasisStart2), &ev2); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
smaEv2 := NewSMAsteriskEvent(ev2, "127.0.0.1")
|
||||
smaEv2.parseStasisArgs()
|
||||
cgrEv2, err := smaEv2.AsCGREvent(timezone)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
exp2 := &sessions.V1AuthorizeArgs{
|
||||
GetAttributes: true,
|
||||
AuthorizeResources: true,
|
||||
GetMaxUsage: true,
|
||||
ProcessThresholds: true,
|
||||
ProcessStats: true,
|
||||
GetSuppliers: true,
|
||||
CGREvent: *cgrEv2,
|
||||
}
|
||||
if rcv := smaEv2.V1AuthorizeArgs(); !reflect.DeepEqual(exp2.GetAttributes, rcv.GetAttributes) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", exp2.GetAttributes, rcv.GetAttributes)
|
||||
} else if !reflect.DeepEqual(exp2.AuthorizeResources, rcv.AuthorizeResources) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", exp2.AuthorizeResources, rcv.AuthorizeResources)
|
||||
} else if !reflect.DeepEqual(exp2.GetMaxUsage, rcv.GetMaxUsage) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", exp2.GetMaxUsage, rcv.GetMaxUsage)
|
||||
} else if !reflect.DeepEqual(exp2.ProcessThresholds, rcv.ProcessThresholds) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", exp2.ProcessThresholds, rcv.ProcessThresholds)
|
||||
} else if !reflect.DeepEqual(exp2.ProcessStats, rcv.ProcessStats) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", exp2.ProcessStats, rcv.ProcessStats)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSMAEventV1InitSessionArgs(t *testing.T) {
|
||||
cgrEv := utils.CGREvent{
|
||||
Tenant: "cgrates.org",
|
||||
ID: "AsteriskEvent",
|
||||
Event: map[string]interface{}{
|
||||
"MissingCGRSubsustems": "",
|
||||
},
|
||||
}
|
||||
exp := &sessions.V1InitSessionArgs{
|
||||
InitSession: true,
|
||||
CGREvent: cgrEv,
|
||||
}
|
||||
var ev map[string]interface{}
|
||||
if err := json.Unmarshal([]byte(stasisStart), &ev); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
smaEv := NewSMAsteriskEvent(ev, "127.0.0.1")
|
||||
if rcv := smaEv.V1InitSessionArgs(cgrEv); !reflect.DeepEqual(exp, rcv) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(exp), utils.ToJSON(rcv))
|
||||
}
|
||||
|
||||
exp2 := &sessions.V1InitSessionArgs{
|
||||
GetAttributes: true,
|
||||
AllocateResources: true,
|
||||
InitSession: true,
|
||||
CGREvent: cgrEv,
|
||||
}
|
||||
cgrEv.Event[utils.CGRSubsystems] = "*resources*accounts*attributes"
|
||||
if rcv := smaEv.V1InitSessionArgs(cgrEv); !reflect.DeepEqual(exp2, rcv) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(exp2), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
func TestSMAEventV1TerminateSessionArgs(t *testing.T) {
|
||||
cgrEv := utils.CGREvent{
|
||||
Tenant: "cgrates.org",
|
||||
ID: "AsteriskEvent",
|
||||
Event: map[string]interface{}{
|
||||
"MissingCGRSubsustems": "",
|
||||
},
|
||||
}
|
||||
exp := &sessions.V1TerminateSessionArgs{
|
||||
TerminateSession: true,
|
||||
CGREvent: cgrEv,
|
||||
}
|
||||
var ev map[string]interface{}
|
||||
if err := json.Unmarshal([]byte(stasisStart), &ev); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
smaEv := NewSMAsteriskEvent(ev, "127.0.0.1")
|
||||
if rcv := smaEv.V1TerminateSessionArgs(cgrEv); !reflect.DeepEqual(exp, rcv) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(exp), utils.ToJSON(rcv))
|
||||
}
|
||||
|
||||
exp2 := &sessions.V1TerminateSessionArgs{
|
||||
TerminateSession: true,
|
||||
ReleaseResources: true,
|
||||
ProcessStats: true,
|
||||
CGREvent: cgrEv,
|
||||
}
|
||||
cgrEv.Event[utils.CGRSubsystems] = "*resources*accounts*stats"
|
||||
if rcv := smaEv.V1TerminateSessionArgs(cgrEv); !reflect.DeepEqual(exp2, rcv) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(exp2), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user