mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Merge fixes
This commit is contained in:
@@ -330,7 +330,7 @@ func (aS *AccountS) V1AccountsForEvent(ctx *context.Context, args *utils.CGREven
|
||||
return
|
||||
}
|
||||
var ignFilters bool
|
||||
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args, aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
|
||||
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
|
||||
config.AccountsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -354,7 +354,7 @@ func (aS *AccountS) V1MaxAbstracts(ctx *context.Context, args *utils.CGREvent, e
|
||||
return
|
||||
}
|
||||
var ignFilters bool
|
||||
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args, aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
|
||||
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
|
||||
config.AccountsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -384,7 +384,7 @@ func (aS *AccountS) V1DebitAbstracts(ctx *context.Context, args *utils.CGREvent,
|
||||
return
|
||||
}
|
||||
var ignFilters bool
|
||||
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args, aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
|
||||
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
|
||||
config.AccountsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -414,7 +414,7 @@ func (aS *AccountS) V1MaxConcretes(ctx *context.Context, args *utils.CGREvent, e
|
||||
return
|
||||
}
|
||||
var ignFilters bool
|
||||
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args, aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
|
||||
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
|
||||
config.AccountsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -444,7 +444,7 @@ func (aS *AccountS) V1DebitConcretes(ctx *context.Context, args *utils.CGREvent,
|
||||
return
|
||||
}
|
||||
var ignFilters bool
|
||||
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args, aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
|
||||
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
|
||||
config.AccountsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -283,7 +283,7 @@ func (aS *ActionS) V1ScheduleActions(ctx *context.Context, args *utils.CGREvent,
|
||||
return
|
||||
}
|
||||
var ignFilters bool
|
||||
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args, aS.fltrS, aS.cfg.ActionSCfg().Opts.ProfileIgnoreFilters,
|
||||
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), aS.fltrS, aS.cfg.ActionSCfg().Opts.ProfileIgnoreFilters,
|
||||
config.ActionsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -303,7 +303,7 @@ func (aS *ActionS) V1ExecuteActions(ctx *context.Context, args *utils.CGREvent,
|
||||
return
|
||||
}
|
||||
var ignFilters bool
|
||||
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args, aS.fltrS, aS.cfg.ActionSCfg().Opts.ProfileIgnoreFilters,
|
||||
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), aS.fltrS, aS.cfg.ActionSCfg().Opts.ProfileIgnoreFilters,
|
||||
config.ActionsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
"*dispatcher_loads": {"limit": -1, "replicate": true}
|
||||
},
|
||||
"replication_conns": ["cacheReplication"],
|
||||
"remote_conns": ["cacheReplication"],
|
||||
},
|
||||
|
||||
|
||||
|
||||
@@ -19,9 +19,6 @@
|
||||
"db_port": 6379,
|
||||
"db_name": "11",
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
"caches":{
|
||||
"partitions": {
|
||||
|
||||
@@ -19,13 +19,21 @@
|
||||
"db_type": "*internal",
|
||||
},
|
||||
|
||||
|
||||
"caches":{
|
||||
"remote_conns": ["gob_cache"], // the conns that are queried when the items are not found in cache
|
||||
},
|
||||
|
||||
"rpc_conns": {
|
||||
"conn1": {
|
||||
"strategy": "*first",
|
||||
"conns": [{"address": "127.0.0.1:6012", "transport":"*json"}],
|
||||
},
|
||||
"gob_cache": {
|
||||
"strategy": "*first",
|
||||
"conns": [
|
||||
{"address": "127.0.0.1:6013", "transport":"*gob"},
|
||||
],
|
||||
},
|
||||
},
|
||||
|
||||
"attributes": {
|
||||
|
||||
@@ -24,12 +24,32 @@
|
||||
|
||||
"dispatchers":{
|
||||
"enabled": true,
|
||||
"opts": {
|
||||
"*dispatcherS": [
|
||||
{
|
||||
"Tenant": "cgrates.org",
|
||||
"FilterIDs": ["*string:~*opts.*subsys:*dispatchers"],
|
||||
"Value": false,
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
"caches":{
|
||||
"remote_conns": ["gob_cache"], // the conns that are queried when the items are not found in cache
|
||||
},
|
||||
|
||||
"admins": {
|
||||
"enabled": true,
|
||||
},
|
||||
|
||||
"rpc_conns": {
|
||||
"gob_cache": {
|
||||
"strategy": "*first",
|
||||
"conns": [
|
||||
{"address": "127.0.0.1:2013", "transport":"*gob"},
|
||||
],
|
||||
},
|
||||
},
|
||||
|
||||
}
|
||||
@@ -18,23 +18,22 @@
|
||||
"db_name": "10", // data_db database name to connect to
|
||||
},
|
||||
|
||||
/*
|
||||
|
||||
"dispatchers":{
|
||||
"enabled": true,
|
||||
"opts": { //
|
||||
// "*dispatcherS": [
|
||||
// {
|
||||
// "Tenant": "cgrates.org",
|
||||
// "FilterIDs": [],
|
||||
// "Value": true,
|
||||
// },
|
||||
// ],
|
||||
},
|
||||
"opts": {
|
||||
"*dispatcherS": [
|
||||
{
|
||||
"Tenant": "cgrates.org",
|
||||
"FilterIDs": ["*string:~*opts.*subsys:*dispatchers"],
|
||||
"Value": false,
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
*/
|
||||
|
||||
"caches":{
|
||||
//"remote_conns": ["*internal"], // the conns that are queried when the items are not found in cache
|
||||
//"remote_conns": ["gob_cache"], // the conns that are queried when the items are not found in cache
|
||||
},
|
||||
|
||||
|
||||
@@ -51,6 +50,11 @@
|
||||
{"address": "127.0.0.1:4012", "transport":"*json"},
|
||||
],
|
||||
},
|
||||
/* "gob_cache": {
|
||||
"conns": [
|
||||
{"address": "127.0.0.1:4012", "transport":"*gob"},
|
||||
],
|
||||
}, */
|
||||
},
|
||||
|
||||
}
|
||||
@@ -266,6 +266,8 @@ func testDspAttrGetAttrFailover(t *testing.T) {
|
||||
APIOpts: map[string]interface{}{
|
||||
utils.OptsAPIKey: "attr12345",
|
||||
utils.OptsContext: "simpleauth",
|
||||
utils.MetaNodeID: "DispatcherS1",
|
||||
utils.MetaSubsys: "*dispatchers",
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -467,6 +469,8 @@ func testDspAttrTestAuthKey2(t *testing.T) {
|
||||
APIOpts: map[string]interface{}{
|
||||
utils.OptsAPIKey: "attr12345",
|
||||
utils.OptsContext: "simpleauth",
|
||||
utils.MetaNodeID: "DispatcherS1",
|
||||
utils.MetaSubsys: "*dispatchers",
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -557,6 +561,8 @@ func testDspAttrGetAttrRoundRobin(t *testing.T) {
|
||||
APIOpts: map[string]interface{}{
|
||||
utils.OptsAPIKey: "attr12345",
|
||||
utils.OptsContext: "simpleauth",
|
||||
utils.MetaNodeID: "DispatcherS1",
|
||||
utils.MetaSubsys: "*dispatchers",
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -632,6 +638,8 @@ func testDspAttrGetAttrInternal(t *testing.T) {
|
||||
APIOpts: map[string]interface{}{
|
||||
utils.OptsAPIKey: "attr12345",
|
||||
utils.OptsContext: "simpleauth",
|
||||
utils.MetaNodeID: "DispatcherS1",
|
||||
utils.MetaSubsys: "*dispatchers",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@ func (dS *DispatcherService) CacheSv1Clear(ctx *context.Context, args *utils.Att
|
||||
}
|
||||
return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1Clear, args, reply)
|
||||
}
|
||||
|
||||
func (dS *DispatcherService) CacheSv1GetCacheStats(ctx *context.Context, args *utils.AttrCacheIDsWithAPIOpts, reply *map[string]*ltcache.CacheStats) (err error) {
|
||||
tnt := dS.cfg.GeneralCfg().DefaultTenant
|
||||
if args != nil && len(args.Tenant) != 0 {
|
||||
@@ -60,6 +61,7 @@ func (dS *DispatcherService) CacheSv1GetCacheStats(ctx *context.Context, args *u
|
||||
}
|
||||
return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1GetCacheStats, args, reply)
|
||||
}
|
||||
|
||||
func (dS *DispatcherService) CacheSv1GetGroupItemIDs(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts, reply *[]string) (err error) {
|
||||
tnt := dS.cfg.GeneralCfg().DefaultTenant
|
||||
if args != nil && len(args.Tenant) != 0 {
|
||||
|
||||
@@ -104,7 +104,7 @@ func (dS *DispatcherService) dispatcherProfilesForEvent(ctx *context.Context, tn
|
||||
evNm utils.MapStorage) (dPrlfs engine.DispatcherProfiles, err error) {
|
||||
// make sure dispatching is allowed
|
||||
var shouldDispatch bool
|
||||
if shouldDispatch, err = engine.GetBoolOpts(ctx, tnt, ev, dS.fltrS, dS.cfg.DispatcherSCfg().Opts.Dispatchers,
|
||||
if shouldDispatch, err = engine.GetBoolOpts(ctx, tnt, evNm, dS.fltrS, dS.cfg.DispatcherSCfg().Opts.Dispatchers,
|
||||
config.DispatchersDispatchersDftOpt, utils.OptsDispatchers); err != nil {
|
||||
return
|
||||
} else if !shouldDispatch {
|
||||
@@ -184,7 +184,7 @@ func (dS *DispatcherService) Dispatch(ctx *context.Context, ev *utils.CGREvent,
|
||||
}
|
||||
// avoid further processing if the request is internal
|
||||
var shouldDispatch bool
|
||||
if shouldDispatch, err = engine.GetBoolOpts(ctx, tnt, ev, dS.fltrS, dS.cfg.DispatcherSCfg().Opts.Dispatchers,
|
||||
if shouldDispatch, err = engine.GetBoolOpts(ctx, tnt, evNm, dS.fltrS, dS.cfg.DispatcherSCfg().Opts.Dispatchers,
|
||||
true, utils.OptsDispatchers); err != nil {
|
||||
return utils.NewErrDispatcherS(err)
|
||||
} else if !shouldDispatch {
|
||||
|
||||
@@ -162,7 +162,7 @@ func (alS *AttributeS) processEvent(ctx *context.Context, tnt string, args *util
|
||||
return
|
||||
}
|
||||
var ignFilters bool
|
||||
if ignFilters, err = GetBoolOpts(ctx, tnt, args, alS.fltrS, alS.cfg.AttributeSCfg().Opts.ProfileIgnoreFilters,
|
||||
if ignFilters, err = GetBoolOpts(ctx, tnt, evNm, alS.fltrS, alS.cfg.AttributeSCfg().Opts.ProfileIgnoreFilters,
|
||||
config.AttributesProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -256,18 +256,20 @@ func (alS *AttributeS) V1GetAttributeForEvent(ctx *context.Context, args *utils.
|
||||
config.AttributesProfileIDsDftOpt, utils.OptsAttributesProfileIDs); err != nil {
|
||||
return
|
||||
}
|
||||
var ignFilters bool
|
||||
if ignFilters, err = GetBoolOpts(ctx, tnt, args, alS.fltrS, alS.cfg.AttributeSCfg().Opts.ProfileIgnoreFilters,
|
||||
config.AttributesProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
|
||||
return
|
||||
}
|
||||
attrPrf, err := alS.attributeProfileForEvent(ctx, tnt, attrIDs, utils.MapStorage{
|
||||
evNM := utils.MapStorage{
|
||||
utils.MetaReq: args.Event,
|
||||
utils.MetaOpts: args.APIOpts,
|
||||
utils.MetaVars: utils.MapStorage{
|
||||
utils.OptsAttributesProcessRuns: 0,
|
||||
},
|
||||
}, utils.EmptyString, make(map[string]int), 0, ignFilters)
|
||||
}
|
||||
var ignFilters bool
|
||||
if ignFilters, err = GetBoolOpts(ctx, tnt, evNM, alS.fltrS, alS.cfg.AttributeSCfg().Opts.ProfileIgnoreFilters,
|
||||
config.AttributesProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
|
||||
return
|
||||
}
|
||||
attrPrf, err := alS.attributeProfileForEvent(ctx, tnt, attrIDs, evNM,
|
||||
utils.EmptyString, make(map[string]int), 0, ignFilters)
|
||||
if err != nil {
|
||||
if err != utils.ErrNotFound {
|
||||
err = utils.NewErrServerError(err)
|
||||
|
||||
@@ -195,7 +195,7 @@ func (cdrS *CDRServer) eeSProcessEvent(ctx *context.Context, cgrEv *utils.CGREve
|
||||
func (cdrS *CDRServer) processEvent(ctx *context.Context, ev *utils.CGREvent) (evs []*utils.EventsWithOpts, err error) {
|
||||
// making the options
|
||||
var attrS bool
|
||||
if attrS, err = GetBoolOpts(ctx, ev.Tenant, ev, cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Attributes,
|
||||
if attrS, err = GetBoolOpts(ctx, ev.Tenant, ev.AsDataProvider(), cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Attributes,
|
||||
config.CDRsAttributesDftOpt, utils.OptsAttributeS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -211,7 +211,7 @@ func (cdrS *CDRServer) processEvent(ctx *context.Context, ev *utils.CGREvent) (e
|
||||
|
||||
var cgrEvs []*utils.CGREvent
|
||||
var chrgS bool
|
||||
if chrgS, err = GetBoolOpts(ctx, ev.Tenant, ev, cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Chargers,
|
||||
if chrgS, err = GetBoolOpts(ctx, ev.Tenant, ev.AsDataProvider(), cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Chargers,
|
||||
config.CDRsChargersDftOpt, utils.OptsChargerS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -231,7 +231,7 @@ func (cdrS *CDRServer) processEvent(ctx *context.Context, ev *utils.CGREvent) (e
|
||||
|
||||
var rateS bool
|
||||
for _, cgrEv := range cgrEvs {
|
||||
if rateS, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv, cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Rates,
|
||||
if rateS, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv.AsDataProvider(), cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Rates,
|
||||
config.CDRsRatesDftOpt, utils.OptsRateS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -247,7 +247,7 @@ func (cdrS *CDRServer) processEvent(ctx *context.Context, ev *utils.CGREvent) (e
|
||||
|
||||
var acntS bool
|
||||
for _, cgrEv := range cgrEvs {
|
||||
if acntS, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv, cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Accounts,
|
||||
if acntS, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv.AsDataProvider(), cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Accounts,
|
||||
config.CDRsAccountsDftOpt, utils.OptsAccountS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -287,7 +287,7 @@ func (cdrS *CDRServer) processEvent(ctx *context.Context, ev *utils.CGREvent) (e
|
||||
}
|
||||
var export bool
|
||||
for _, cgrEv := range cgrEvs {
|
||||
if export, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv, cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Export,
|
||||
if export, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv.AsDataProvider(), cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Export,
|
||||
config.CDRsExportDftOpt, utils.OptsCDRsExport); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -307,7 +307,7 @@ func (cdrS *CDRServer) processEvent(ctx *context.Context, ev *utils.CGREvent) (e
|
||||
|
||||
var thdS bool
|
||||
for _, cgrEv := range cgrEvs {
|
||||
if thdS, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv, cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Thresholds,
|
||||
if thdS, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv.AsDataProvider(), cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Thresholds,
|
||||
config.CDRsThresholdsDftOpt, utils.OptsThresholdS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -323,7 +323,7 @@ func (cdrS *CDRServer) processEvent(ctx *context.Context, ev *utils.CGREvent) (e
|
||||
|
||||
var stS bool
|
||||
for _, cgrEv := range cgrEvs {
|
||||
if stS, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv, cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Stats,
|
||||
if stS, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv.AsDataProvider(), cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Stats,
|
||||
config.CDRsStatsDftOpt, utils.OptsStatS); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -171,19 +171,19 @@ func GetIntOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *Filter
|
||||
|
||||
// GetBoolOpts checks the specified option names in order among the keys in APIOpts returning the first value it finds as bool, otherwise it
|
||||
// returns the config option if at least one filter passes or the default value if none of them do
|
||||
func GetBoolOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*utils.DynamicBoolOpt,
|
||||
func GetBoolOpts(ctx *context.Context, tnt string, dP utils.DataProvider, fS *FilterS, dynOpts []*utils.DynamicBoolOpt,
|
||||
dftOpt bool, optNames ...string) (cfgOpt bool, err error) {
|
||||
optsDP := GetAPIOptsFromDataProvider(dP)
|
||||
for _, optName := range optNames {
|
||||
if opt, has := ev.APIOpts[optName]; has {
|
||||
if opt, has := optsDP[optName]; has {
|
||||
return utils.IfaceAsBool(opt)
|
||||
}
|
||||
}
|
||||
evDP := ev.AsDataProvider()
|
||||
for _, opt := range dynOpts { // iterate through the options
|
||||
if !utils.IsSliceMember([]string{utils.EmptyString, utils.MetaAny, tnt}, opt.Tenant) {
|
||||
continue
|
||||
}
|
||||
if pass, err := fS.Pass(ctx, tnt, opt.FilterIDs, evDP); err != nil { // check if the filter is passing for the DataProvider and return the option if it does
|
||||
if pass, err := fS.Pass(ctx, tnt, opt.FilterIDs, dP); err != nil { // check if the filter is passing for the DataProvider and return the option if it does
|
||||
return false, err
|
||||
} else if pass {
|
||||
return opt.Value, nil
|
||||
@@ -785,7 +785,7 @@ func TestLibFiltersGetBoolOptsReturnConfigOpt(t *testing.T) {
|
||||
}
|
||||
|
||||
expected := true
|
||||
if rcv, err := GetBoolOpts(context.Background(), "cgrates.org", ev, fS, dynOpts,
|
||||
if rcv, err := GetBoolOpts(context.Background(), "cgrates.org", ev.AsDataProvider(), fS, dynOpts,
|
||||
config.ThresholdsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv != expected {
|
||||
@@ -816,7 +816,7 @@ func TestLibFiltersGetBoolOptsFilterCheckErr(t *testing.T) {
|
||||
}
|
||||
|
||||
experr := `inline parse error for string: <*string.invalid:filter>`
|
||||
if _, err := GetBoolOpts(context.Background(), "cgrates.org", ev, fS, dynOpts,
|
||||
if _, err := GetBoolOpts(context.Background(), "cgrates.org", ev.AsDataProvider(), fS, dynOpts,
|
||||
config.ThresholdsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err == nil ||
|
||||
err.Error() != experr {
|
||||
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
|
||||
@@ -845,7 +845,7 @@ func TestLibFiltersGetBoolOptsReturnDefaultOpt(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
if rcv, err := GetBoolOpts(context.Background(), "cgrates.org", ev, fS, dynOpts,
|
||||
if rcv, err := GetBoolOpts(context.Background(), "cgrates.org", ev.AsDataProvider(), fS, dynOpts,
|
||||
config.ThresholdsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv != config.ThresholdsProfileIgnoreFiltersDftOpt {
|
||||
@@ -879,7 +879,7 @@ func TestLibFiltersGetBoolOptsReturnOptFromAPIOpts(t *testing.T) {
|
||||
}
|
||||
|
||||
expected := true
|
||||
if rcv, err := GetBoolOpts(context.Background(), "cgrates.org", ev, fS, dynOpts,
|
||||
if rcv, err := GetBoolOpts(context.Background(), "cgrates.org", ev.AsDataProvider(), fS, dynOpts,
|
||||
config.ThresholdsProfileIgnoreFiltersDftOpt, "nonExistingAPIOpt", utils.MetaProfileIgnoreFilters); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv != expected {
|
||||
@@ -182,6 +182,19 @@ func NewServiceWithName(val interface{}, name string, useName bool) (_ IntServic
|
||||
return s, nil
|
||||
}
|
||||
|
||||
func GetAPIOptsFromDataProvider(dP utils.DataProvider) map[string]interface{} {
|
||||
switch v := dP.(type) {
|
||||
case utils.MapStorage:
|
||||
if x, has := v[utils.MetaOpts]; has {
|
||||
return x.(map[string]interface{})
|
||||
}
|
||||
return make(map[string]interface{})
|
||||
case MapEvent:
|
||||
return v
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func NewDispatcherService(val interface{}) (_ IntService, err error) {
|
||||
var srv *birpc.Service
|
||||
if srv, err = birpc.NewService(val, utils.EmptyString, false); err != nil {
|
||||
|
||||
@@ -198,7 +198,7 @@ func (rpS *RouteS) matchingRouteProfilesForEvent(ctx *context.Context, tnt strin
|
||||
|
||||
func newOptsGetRoutes(ctx *context.Context, ev *utils.CGREvent, fS *FilterS, cfgOpts *config.RoutesOpts) (opts *optsGetRoutes, err error) {
|
||||
var ignoreErrors bool
|
||||
if ignoreErrors, err = GetBoolOpts(ctx, ev.Tenant, ev, fS, cfgOpts.IgnoreErrors,
|
||||
if ignoreErrors, err = GetBoolOpts(ctx, ev.Tenant, ev.AsDataProvider(), fS, cfgOpts.IgnoreErrors,
|
||||
config.RoutesIgnoreErrorsDftOpt, utils.OptsRoutesIgnoreErrors); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -330,7 +330,7 @@ func (sS *StatS) processEvent(ctx *context.Context, tnt string, args *utils.CGRE
|
||||
return
|
||||
}
|
||||
var ignFilters bool
|
||||
if ignFilters, err = GetBoolOpts(ctx, tnt, args, sS.fltrS, sS.cfg.StatSCfg().Opts.ProfileIgnoreFilters,
|
||||
if ignFilters, err = GetBoolOpts(ctx, tnt, evNm, sS.fltrS, sS.cfg.StatSCfg().Opts.ProfileIgnoreFilters,
|
||||
config.StatsProfileIgnoreFilters, utils.MetaProfileIgnoreFilters); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -421,13 +421,14 @@ func (sS *StatS) V1GetStatQueuesForEvent(ctx *context.Context, args *utils.CGREv
|
||||
config.StatsProfileIDsDftOpt, utils.OptsStatsProfileIDs); err != nil {
|
||||
return
|
||||
}
|
||||
evDp := args.AsDataProvider()
|
||||
var ignFilters bool
|
||||
if ignFilters, err = GetBoolOpts(ctx, tnt, args, sS.fltrS, sS.cfg.StatSCfg().Opts.ProfileIgnoreFilters,
|
||||
if ignFilters, err = GetBoolOpts(ctx, tnt, evDp, sS.fltrS, sS.cfg.StatSCfg().Opts.ProfileIgnoreFilters,
|
||||
config.StatsProfileIgnoreFilters, utils.MetaProfileIgnoreFilters); err != nil {
|
||||
return
|
||||
}
|
||||
var sQs StatQueues
|
||||
if sQs, err = sS.matchingStatQueuesForEvent(ctx, tnt, sqIDs, args.AsDataProvider(), ignFilters); err != nil {
|
||||
if sQs, err = sS.matchingStatQueuesForEvent(ctx, tnt, sqIDs, evDp, ignFilters); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -336,7 +336,7 @@ func (tS *ThresholdS) matchingThresholdsForEvent(ctx *context.Context, tnt strin
|
||||
return
|
||||
}
|
||||
var ignFilters bool
|
||||
if ignFilters, err = GetBoolOpts(ctx, tnt, args, tS.fltrS, tS.cfg.ThresholdSCfg().Opts.ProfileIgnoreFilters,
|
||||
if ignFilters, err = GetBoolOpts(ctx, tnt, evNm, tS.fltrS, tS.cfg.ThresholdSCfg().Opts.ProfileIgnoreFilters,
|
||||
config.ThresholdsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -47,24 +47,24 @@ var (
|
||||
testDispatcherOptsAdminInitDataDb,
|
||||
testDispatcherOptsAdminStartEngine,
|
||||
testDispatcherOptsAdminRPCConn,
|
||||
testDispatcherOptsAdminSetDispatcherProfile,
|
||||
//testDispatcherOptsAdminSetDispatcherProfile,
|
||||
|
||||
// Start engine without Dispatcher on engine 2012 with profiles in database (*dispatchers:false)
|
||||
// Start engine without Dispatcher on engine 4012 with profiles in database (*dispatchers:false)
|
||||
testDispatcherOptsDSPInitCfg,
|
||||
testDispatcherOptsDSPStartEngine,
|
||||
testDispatcherOptsDSPRPCConn,
|
||||
testDispatcherOptsCoreStatus, // self localhost(:2012) CoresV1Status
|
||||
//testDispatcherOptsCoreStatus, // localhost(:4012) CoresV1Status
|
||||
|
||||
testDispatcherOptsAdminSetDispatcherHost4012,
|
||||
testDispatcherOptsCoreStatusHost4012,
|
||||
//testDispatcherOptsAdminSetDispatcherHost4012,
|
||||
//testDispatcherOptsCoreStatusHost4012,
|
||||
|
||||
testDispatcherOptsAdminSetDispatcherProfileDoubleHost,
|
||||
//testDispatcherOptsCoreStatusWithRouteID,
|
||||
testDispatcherOptsCoreStatusWithRouteID,
|
||||
|
||||
testDispatcherOptsAdminSetDispatcherHostInexistent,
|
||||
//testDispatcherOptsCoreStatusWithRouteID2,
|
||||
testDispatcherOptsCoreStatusWithRouteID2,
|
||||
|
||||
//testDispatcherOptsCoreStatusWithoutRouteID,
|
||||
testDispatcherOptsCoreStatusWithoutRouteID,
|
||||
|
||||
testDispatcherOptsDSPStopEngine,
|
||||
testDispatcherOptsAdminStopEngine,
|
||||
@@ -116,7 +116,7 @@ func testDispatcherOptsAdminSetDispatcherProfile(t *testing.T) {
|
||||
Tenant: "cgrates.org",
|
||||
RemoteHost: &config.RemoteHost{
|
||||
ID: "SELF_ENGINE",
|
||||
Address: "127.0.0.1:4012",
|
||||
Address: "127.0.0.1:2012",
|
||||
Transport: "*json",
|
||||
ConnectAttempts: 1,
|
||||
Reconnects: 3,
|
||||
@@ -269,6 +269,51 @@ func testDispatcherOptsCoreStatusHost4012(t *testing.T) {
|
||||
}
|
||||
|
||||
func testDispatcherOptsAdminSetDispatcherProfileDoubleHost(t *testing.T) {
|
||||
var replyStr string
|
||||
setDispatcherHost := &engine.DispatcherHostWithAPIOpts{
|
||||
DispatcherHost: &engine.DispatcherHost{
|
||||
Tenant: "cgrates.org",
|
||||
RemoteHost: &config.RemoteHost{
|
||||
ID: "SELF_ENGINE",
|
||||
Address: "127.0.0.1:2012",
|
||||
Transport: "*json",
|
||||
ConnectAttempts: 1,
|
||||
Reconnects: 3,
|
||||
ConnectTimeout: time.Minute,
|
||||
ReplyTimeout: 2 * time.Minute,
|
||||
},
|
||||
},
|
||||
APIOpts: map[string]interface{}{
|
||||
utils.OptsDispatchers: false,
|
||||
},
|
||||
}
|
||||
if err := adminsRPC.Call(context.Background(), utils.AdminSv1SetDispatcherHost, setDispatcherHost, &replyStr); err != nil {
|
||||
t.Error("Unexpected error when calling AdminSv1.SetDispatcherHost: ", err)
|
||||
} else if replyStr != utils.OK {
|
||||
t.Error("Unexpected reply returned", replyStr)
|
||||
}
|
||||
setDispatcherHost = &engine.DispatcherHostWithAPIOpts{
|
||||
DispatcherHost: &engine.DispatcherHost{
|
||||
Tenant: "cgrates.org",
|
||||
RemoteHost: &config.RemoteHost{
|
||||
ID: "HOST4012",
|
||||
Address: "127.0.0.1:4012",
|
||||
Transport: "*json",
|
||||
ConnectAttempts: 1,
|
||||
Reconnects: 3,
|
||||
ConnectTimeout: time.Minute,
|
||||
ReplyTimeout: 2 * time.Minute,
|
||||
},
|
||||
},
|
||||
APIOpts: map[string]interface{}{
|
||||
utils.OptsDispatchers: false,
|
||||
},
|
||||
}
|
||||
if err := adminsRPC.Call(context.Background(), utils.AdminSv1SetDispatcherHost, setDispatcherHost, &replyStr); err != nil {
|
||||
t.Error("Unexpected error when calling AdminSv1.SetDispatcherHost: ", err)
|
||||
} else if replyStr != utils.OK {
|
||||
t.Error("Unexpected reply returned", replyStr)
|
||||
}
|
||||
// Set DispatcherProfile with both engines
|
||||
setDispatcherProfile := &engine.DispatcherProfileWithAPIOpts{
|
||||
DispatcherProfile: &engine.DispatcherProfile{
|
||||
@@ -281,17 +326,17 @@ func testDispatcherOptsAdminSetDispatcherProfileDoubleHost(t *testing.T) {
|
||||
ID: "SELF_ENGINE",
|
||||
Weight: 5,
|
||||
},
|
||||
{
|
||||
/* {
|
||||
ID: "HOST4012",
|
||||
Weight: 10,
|
||||
},
|
||||
}, */
|
||||
},
|
||||
},
|
||||
APIOpts: map[string]interface{}{
|
||||
utils.OptsDispatchers: false,
|
||||
},
|
||||
}
|
||||
var replyStr string
|
||||
//var replyStr string
|
||||
if err := adminsRPC.Call(context.Background(), utils.AdminSv1SetDispatcherProfile, setDispatcherProfile, &replyStr); err != nil {
|
||||
t.Error("Unexpected error when calling AdminSv1.SetDispatcherProfile: ", err)
|
||||
} else if replyStr != utils.OK {
|
||||
@@ -393,6 +438,9 @@ func testDispatcherOptsCoreStatusWithoutRouteID(t *testing.T) {
|
||||
var reply map[string]interface{}
|
||||
ev := utils.TenantWithAPIOpts{
|
||||
Tenant: "cgrates.org",
|
||||
APIOpts: map[string]interface{}{
|
||||
"ATTEMPTS": 2,
|
||||
},
|
||||
}
|
||||
if err := dspOptsRPC.Call(context.Background(), utils.CoreSv1Status, &ev, &reply); err != nil {
|
||||
t.Error(err)
|
||||
|
||||
@@ -329,7 +329,7 @@ func (rS *RateS) V1CostForEvent(ctx *context.Context, args *utils.CGREvent, rpCo
|
||||
return
|
||||
}
|
||||
var ignFilters bool
|
||||
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args, rS.fltrS, rS.cfg.RateSCfg().Opts.ProfileIgnoreFilters,
|
||||
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), rS.fltrS, rS.cfg.RateSCfg().Opts.ProfileIgnoreFilters,
|
||||
config.RatesProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -916,7 +916,7 @@ func (sS *SessionS) newSession(ctx *context.Context, cgrEv *utils.CGREvent, resI
|
||||
DebitInterval: dbtItval,
|
||||
}
|
||||
s.OptsStart[utils.MetaOriginID] = originID
|
||||
if s.Chargeable, err = engine.GetBoolOpts(ctx, cgrEv.Tenant, cgrEv, sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargeable,
|
||||
if s.Chargeable, err = engine.GetBoolOpts(ctx, cgrEv.Tenant, s.OptsStart, sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargeable,
|
||||
config.SessionsChargeableDftOpt, utils.OptsSesChargeable); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1237,7 +1237,7 @@ func (sS *SessionS) updateSession(ctx *context.Context, s *Session, updtEv, opts
|
||||
Event: updtEv,
|
||||
APIOpts: opts,
|
||||
}
|
||||
if s.Chargeable, err = engine.GetBoolOpts(ctx, event.Tenant, event, sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargeable,
|
||||
if s.Chargeable, err = engine.GetBoolOpts(ctx, event.Tenant, event.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargeable,
|
||||
config.SessionsChargeableDftOpt, utils.OptsSesChargeable); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1552,22 +1552,22 @@ func (sS *SessionS) BiRPCv1AuthorizeEvent(ctx *context.Context,
|
||||
}
|
||||
// end of RPC caching
|
||||
var attrS bool
|
||||
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
|
||||
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
|
||||
config.SessionsAttributesDftOpt, utils.OptsAttributeS); err != nil {
|
||||
return
|
||||
}
|
||||
var routeS bool
|
||||
if routeS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Routes,
|
||||
if routeS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Routes,
|
||||
config.SessionsRoutesDftOpt, utils.OptsRouteS); err != nil {
|
||||
return
|
||||
}
|
||||
var maxUsage bool
|
||||
if maxUsage, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.MaxUsage,
|
||||
if maxUsage, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.MaxUsage,
|
||||
config.SessionsMaxUsageDftOpt, utils.OptsSesMaxUsage); err != nil {
|
||||
return
|
||||
}
|
||||
var resAuthorize bool
|
||||
if resAuthorize, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesAuthorize,
|
||||
if resAuthorize, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesAuthorize,
|
||||
config.SessionsResourcesAuthorizeDftOpt, utils.OptsSesResourceSAuthorize); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1592,7 +1592,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEvent(ctx *context.Context,
|
||||
runEvents := make(map[string]*utils.CGREvent)
|
||||
|
||||
var chrgS bool
|
||||
if chrgS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargers,
|
||||
if chrgS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargers,
|
||||
config.SessionsChargersDftOpt, utils.OptsChargerS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1608,7 +1608,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEvent(ctx *context.Context,
|
||||
runEvents[utils.MetaRaw] = args
|
||||
}
|
||||
var acntS bool
|
||||
if acntS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Accounts,
|
||||
if acntS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Accounts,
|
||||
config.SessionsAccountsDftOpt, utils.OptsAccountS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1645,7 +1645,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEvent(ctx *context.Context,
|
||||
}
|
||||
}
|
||||
var thdS bool
|
||||
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
|
||||
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
|
||||
config.SessionsThresholdsDftOpt, utils.OptsThresholdS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1660,7 +1660,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEvent(ctx *context.Context,
|
||||
authReply.ThresholdIDs = &tIDs
|
||||
}
|
||||
var stS bool
|
||||
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
|
||||
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
|
||||
config.SessionsStatsDftOpt, utils.OptsStatS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1690,7 +1690,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEventWithDigest(ctx *context.Context,
|
||||
return
|
||||
}
|
||||
var attrS bool
|
||||
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
|
||||
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
|
||||
config.SessionsAttributesDftOpt, utils.OptsAttributeS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1698,7 +1698,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEventWithDigest(ctx *context.Context,
|
||||
authReply.AttributesDigest = utils.StringPointer(initAuthRply.Attributes.Digest())
|
||||
}
|
||||
var resourcesAuthorize bool
|
||||
if resourcesAuthorize, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesAuthorize,
|
||||
if resourcesAuthorize, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesAuthorize,
|
||||
config.SessionsResourcesAuthorizeDftOpt, utils.OptsSesResourceSAuthorize); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1706,7 +1706,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEventWithDigest(ctx *context.Context,
|
||||
authReply.ResourceAllocation = initAuthRply.ResourceAllocation
|
||||
}
|
||||
var acntS bool
|
||||
if acntS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Accounts,
|
||||
if acntS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Accounts,
|
||||
config.SessionsAccountsDftOpt, utils.OptsAccountS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1715,7 +1715,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEventWithDigest(ctx *context.Context,
|
||||
authReply.MaxUsage = maxDur.Seconds()
|
||||
}
|
||||
var routeS bool
|
||||
if routeS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Routes,
|
||||
if routeS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Routes,
|
||||
config.SessionsRoutesDftOpt, utils.OptsRouteS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1723,7 +1723,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEventWithDigest(ctx *context.Context,
|
||||
authReply.RoutesDigest = utils.StringPointer(initAuthRply.RouteProfiles.Digest())
|
||||
}
|
||||
var thdS bool
|
||||
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
|
||||
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
|
||||
config.SessionsThresholdsDftOpt, utils.OptsThresholdS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1732,7 +1732,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEventWithDigest(ctx *context.Context,
|
||||
strings.Join(*initAuthRply.ThresholdIDs, utils.FieldsSep))
|
||||
}
|
||||
var stS bool
|
||||
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
|
||||
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
|
||||
config.SessionsStatsDftOpt, utils.OptsStatS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1782,17 +1782,17 @@ func (sS *SessionS) BiRPCv1InitiateSession(ctx *context.Context,
|
||||
rply.MaxUsage = utils.DurationPointer(time.Duration(utils.InvalidUsage)) // temp
|
||||
|
||||
var attrS bool
|
||||
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
|
||||
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
|
||||
config.SessionsAttributesDftOpt, utils.OptsAttributeS); err != nil {
|
||||
return
|
||||
}
|
||||
var initS bool
|
||||
if initS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Initiate,
|
||||
if initS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Initiate,
|
||||
config.SessionsInitiateDftOpt, utils.OptsSesInitiate); err != nil {
|
||||
return
|
||||
}
|
||||
var resourcesAllocate bool
|
||||
if resourcesAllocate, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesAllocate,
|
||||
if resourcesAllocate, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesAllocate,
|
||||
config.SessionsResourcesAllocateDftOpt, utils.OptsSesResourceSAllocate); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1832,7 +1832,7 @@ func (sS *SessionS) BiRPCv1InitiateSession(ctx *context.Context,
|
||||
return
|
||||
}
|
||||
var forceDuration bool
|
||||
if forceDuration, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ForceDuration,
|
||||
if forceDuration, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ForceDuration,
|
||||
config.SessionsForceDurationDftOpt, utils.OptsSesForceDuration); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1865,7 +1865,7 @@ func (sS *SessionS) BiRPCv1InitiateSession(ctx *context.Context,
|
||||
}
|
||||
}
|
||||
var thdS bool
|
||||
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
|
||||
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
|
||||
config.SessionsThresholdsDftOpt, utils.OptsThresholdS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1880,7 +1880,7 @@ func (sS *SessionS) BiRPCv1InitiateSession(ctx *context.Context,
|
||||
rply.ThresholdIDs = &tIDs
|
||||
}
|
||||
var stS bool
|
||||
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
|
||||
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
|
||||
config.SessionsStatsDftOpt, utils.OptsStatS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1967,12 +1967,12 @@ func (sS *SessionS) BiRPCv1UpdateSession(ctx *context.Context,
|
||||
}
|
||||
// end of RPC caching
|
||||
var attrS bool
|
||||
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
|
||||
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
|
||||
config.SessionsAttributesDftOpt, utils.OptsAttributeS); err != nil {
|
||||
return
|
||||
}
|
||||
var updS bool
|
||||
if updS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Update,
|
||||
if updS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Update,
|
||||
config.SessionsUpdateDftOpt, utils.OptsSesUpdate); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2003,7 +2003,7 @@ func (sS *SessionS) BiRPCv1UpdateSession(ctx *context.Context,
|
||||
ev.GetStringIgnoreErrors(utils.OriginHost))
|
||||
if s == nil {
|
||||
var forceDuration bool
|
||||
if forceDuration, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ForceDuration,
|
||||
if forceDuration, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ForceDuration,
|
||||
config.SessionsForceDurationDftOpt, utils.OptsSesForceDuration); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2065,12 +2065,12 @@ func (sS *SessionS) BiRPCv1TerminateSession(ctx *context.Context,
|
||||
}
|
||||
// end of RPC caching
|
||||
var resourcesRelease bool
|
||||
if resourcesRelease, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesRelease,
|
||||
if resourcesRelease, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesRelease,
|
||||
config.SessionsResourcesReleaseDftOpt, utils.OptsSesResourceSRelease); err != nil {
|
||||
return
|
||||
}
|
||||
var termS bool
|
||||
if termS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Terminate,
|
||||
if termS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Terminate,
|
||||
config.SessionsTerminateDftOpt, utils.OptsSesTerminate); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2095,7 +2095,7 @@ func (sS *SessionS) BiRPCv1TerminateSession(ctx *context.Context,
|
||||
fib := utils.FibDuration(time.Millisecond, 0)
|
||||
var isMsg bool // one time charging, do not perform indexing and sTerminator
|
||||
var forceDuration bool
|
||||
if forceDuration, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ForceDuration,
|
||||
if forceDuration, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ForceDuration,
|
||||
config.SessionsForceDurationDftOpt, utils.OptsSesForceDuration); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2124,7 +2124,7 @@ func (sS *SessionS) BiRPCv1TerminateSession(ctx *context.Context,
|
||||
s.UpdateSRuns(ev, sS.cfg.SessionSCfg().AlterableFields)
|
||||
}
|
||||
s.Lock()
|
||||
if s.Chargeable, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargeable,
|
||||
if s.Chargeable, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargeable,
|
||||
config.SessionsChargeableDftOpt, utils.OptsSesChargeable); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2153,7 +2153,7 @@ func (sS *SessionS) BiRPCv1TerminateSession(ctx *context.Context,
|
||||
}
|
||||
}
|
||||
var thdS bool
|
||||
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
|
||||
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
|
||||
config.SessionsThresholdsDftOpt, utils.OptsThresholdS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2168,7 +2168,7 @@ func (sS *SessionS) BiRPCv1TerminateSession(ctx *context.Context,
|
||||
}
|
||||
}
|
||||
var stS bool
|
||||
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
|
||||
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
|
||||
config.SessionsStatsDftOpt, utils.OptsStatS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2270,7 +2270,7 @@ func (sS *SessionS) BiRPCv1ProcessMessage(ctx *context.Context,
|
||||
originID := me.GetStringIgnoreErrors(utils.OriginID)
|
||||
|
||||
var attrS bool
|
||||
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
|
||||
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
|
||||
config.SessionsAttributesDftOpt, utils.OptsAttributeS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2284,7 +2284,7 @@ func (sS *SessionS) BiRPCv1ProcessMessage(ctx *context.Context,
|
||||
}
|
||||
}
|
||||
var resourcesAllocate bool
|
||||
if resourcesAllocate, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesAllocate,
|
||||
if resourcesAllocate, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesAllocate,
|
||||
config.SessionsResourcesAllocateDftOpt, utils.OptsSesResourceSAllocate); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2305,7 +2305,7 @@ func (sS *SessionS) BiRPCv1ProcessMessage(ctx *context.Context,
|
||||
rply.ResourceAllocation = &allocMessage
|
||||
}
|
||||
var routeS bool
|
||||
if routeS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Routes,
|
||||
if routeS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Routes,
|
||||
config.SessionsRoutesDftOpt, utils.OptsRouteS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2319,13 +2319,13 @@ func (sS *SessionS) BiRPCv1ProcessMessage(ctx *context.Context,
|
||||
}
|
||||
}
|
||||
var message bool
|
||||
if message, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Message,
|
||||
if message, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Message,
|
||||
config.SessionsMessageDftOpt, utils.OptsSesMessage); err != nil {
|
||||
return
|
||||
}
|
||||
if message {
|
||||
var forceDuration bool
|
||||
if forceDuration, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ForceDuration,
|
||||
if forceDuration, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ForceDuration,
|
||||
config.SessionsForceDurationDftOpt, utils.OptsSesForceDuration); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2336,7 +2336,7 @@ func (sS *SessionS) BiRPCv1ProcessMessage(ctx *context.Context,
|
||||
rply.MaxUsage = &maxUsage
|
||||
}
|
||||
var thdS bool
|
||||
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
|
||||
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
|
||||
config.SessionsThresholdsDftOpt, utils.OptsThresholdS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2351,7 +2351,7 @@ func (sS *SessionS) BiRPCv1ProcessMessage(ctx *context.Context,
|
||||
rply.ThresholdIDs = &tIDs
|
||||
}
|
||||
var stS bool
|
||||
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
|
||||
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
|
||||
config.SessionsStatsDftOpt, utils.OptsStatS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2411,7 +2411,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
|
||||
// end of RPC caching
|
||||
|
||||
var blockError bool
|
||||
if blockError, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.BlockerError,
|
||||
if blockError, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.BlockerError,
|
||||
config.SessionsBlockerErrorDftOpt, utils.OptsSesBlockerError); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2419,7 +2419,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
|
||||
utils.MetaRaw: args,
|
||||
}
|
||||
var chrgS bool
|
||||
if chrgS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargers,
|
||||
if chrgS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargers,
|
||||
config.SessionsChargersDftOpt, utils.OptsChargerS); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2435,14 +2435,14 @@ func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
|
||||
|
||||
// check for *attribute
|
||||
var attrS bool
|
||||
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
|
||||
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
|
||||
config.SessionsAttributesDftOpt, utils.OptsAttributeS); err != nil {
|
||||
return
|
||||
}
|
||||
if attrS {
|
||||
rply.Attributes = make(map[string]*engine.AttrSProcessEventReply)
|
||||
var attrsDerivedReply bool
|
||||
if attrsDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.AttributesDerivedReply,
|
||||
if attrsDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.AttributesDerivedReply,
|
||||
config.SessionsAttributesDerivedReplyDftOpt, utils.OptsSesAttributeSDerivedReply); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2462,13 +2462,13 @@ func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
|
||||
|
||||
// get routes if required
|
||||
var routeS bool
|
||||
if routeS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Routes,
|
||||
if routeS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Routes,
|
||||
config.SessionsRoutesDftOpt, utils.OptsRouteS); err != nil {
|
||||
return
|
||||
}
|
||||
if routeS {
|
||||
var routesDerivedReply bool
|
||||
if routesDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.RoutesDerivedReply,
|
||||
if routesDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.RoutesDerivedReply,
|
||||
config.SessionsRoutesDerivedReplyDftOpt, utils.OptsSesRouteSDerivedReply); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2487,13 +2487,13 @@ func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
|
||||
|
||||
// process thresholds if required
|
||||
var thdS bool
|
||||
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
|
||||
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
|
||||
config.SessionsThresholdsDftOpt, utils.OptsThresholdS); err != nil {
|
||||
return
|
||||
}
|
||||
if thdS {
|
||||
var thdsDerivedReply bool
|
||||
if thdsDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ThresholdsDerivedReply,
|
||||
if thdsDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ThresholdsDerivedReply,
|
||||
config.SessionsThresholdsDerivedReplyDftOpt, utils.OptsSesThresholdSDerivedReply); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2515,13 +2515,13 @@ func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
|
||||
|
||||
// process stats if required
|
||||
var stS bool
|
||||
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
|
||||
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
|
||||
config.SessionsStatsDftOpt, utils.OptsStatS); err != nil {
|
||||
return
|
||||
}
|
||||
if stS {
|
||||
var stsDerivedReply bool
|
||||
if stsDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.StatsDerivedReply,
|
||||
if stsDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.StatsDerivedReply,
|
||||
config.SessionsStatsDerivedReplyDftOpt, utils.OptsSesStatSDerivedReply); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2616,7 +2616,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
|
||||
return fmt.Errorf("unsuported value for %s option: %q ", utils.OptsResourceS, optStr)
|
||||
}
|
||||
var resourcesDerivedReply bool
|
||||
if resourcesDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesDerivedReply,
|
||||
if resourcesDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesDerivedReply,
|
||||
config.SessionsResourcesDerivedReplyDftOpt, utils.OptsSesResourceSDerivedReply); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2785,7 +2785,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
|
||||
// }
|
||||
|
||||
var cdrS bool
|
||||
if cdrS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.CDRs,
|
||||
if cdrS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.CDRs,
|
||||
config.SessionsCDRsDftOpt, utils.OptsCDRs); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -2794,7 +2794,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
|
||||
return utils.NewErrNotConnected(utils.CDRs)
|
||||
}
|
||||
var cdrsDerivedReply bool
|
||||
if cdrsDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.CDRsDerivedReply,
|
||||
if cdrsDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.CDRsDerivedReply,
|
||||
config.SessionsCDRsDerivedReplyDftOpt, utils.OptsSesCDRsDerivedReply); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user