diff --git a/apier/apier.go b/apier/apier.go
index c6e935d8f..907217095 100644
--- a/apier/apier.go
+++ b/apier/apier.go
@@ -649,6 +649,7 @@ func (self *ApierV1) LoadTariffPlanFromFolder(attrs utils.AttrLoadTpFromFolder,
path.Join(attrs.FolderPath, utils.RATING_PLANS_CSV),
path.Join(attrs.FolderPath, utils.RATING_PROFILES_CSV),
path.Join(attrs.FolderPath, utils.SHARED_GROUPS_CSV),
+ path.Join(attrs.FolderPath, utils.LCRS_CSV),
path.Join(attrs.FolderPath, utils.ACTIONS_CSV),
path.Join(attrs.FolderPath, utils.ACTION_PLANS_CSV),
path.Join(attrs.FolderPath, utils.ACTION_TRIGGERS_CSV),
diff --git a/cdrc/cdrc.go b/cdrc/cdrc.go
index 671feff27..1f25d84a3 100644
--- a/cdrc/cdrc.go
+++ b/cdrc/cdrc.go
@@ -86,7 +86,7 @@ func (self *Cdrc) parseFieldsConfig() error {
utils.REQTYPE: self.cgrCfg.CdrcReqTypeField,
utils.DIRECTION: self.cgrCfg.CdrcDirectionField,
utils.TENANT: self.cgrCfg.CdrcTenantField,
- utils.Category: self.cgrCfg.CdrcTorField,
+ utils.Category: self.cgrCfg.CdrcCategoryField,
utils.ACCOUNT: self.cgrCfg.CdrcAccountField,
utils.SUBJECT: self.cgrCfg.CdrcSubjectField,
utils.DESTINATION: self.cgrCfg.CdrcDestinationField,
diff --git a/config/config.go b/config/config.go
index f91775ecc..2d0c1d210 100644
--- a/config/config.go
+++ b/config/config.go
@@ -109,7 +109,7 @@ type CGRConfig struct {
CdrcReqTypeField string // Request type field identifier. Use index number in case of .csv cdrs.
CdrcDirectionField string // Direction field identifier. Use index numbers in case of .csv cdrs.
CdrcTenantField string // Tenant field identifier. Use index numbers in case of .csv cdrs.
- CdrcTorField string // Type of Record field identifier. Use index numbers in case of .csv cdrs.
+ CdrcCategoryField string // Type of Record field identifier. Use index numbers in case of .csv cdrs.
CdrcAccountField string // Account field identifier. Use index numbers in case of .csv cdrs.
CdrcSubjectField string // Subject field identifier. Use index numbers in case of .csv CDRs.
CdrcDestinationField string // Destination field identifier. Use index numbers in case of .csv cdrs.
@@ -196,7 +196,7 @@ func (self *CGRConfig) setDefaults() error {
self.CdrcReqTypeField = "1"
self.CdrcDirectionField = "2"
self.CdrcTenantField = "3"
- self.CdrcTorField = "4"
+ self.CdrcCategoryField = "4"
self.CdrcAccountField = "5"
self.CdrcSubjectField = "6"
self.CdrcDestinationField = "7"
@@ -496,7 +496,7 @@ func loadConfig(c *conf.ConfigFile) (*CGRConfig, error) {
cfg.CdrcTenantField, _ = c.GetString("cdrc", "tenant_field")
}
if hasOpt = c.HasOption("cdrc", "tor_field"); hasOpt {
- cfg.CdrcTorField, _ = c.GetString("cdrc", "tor_field")
+ cfg.CdrcCategoryField, _ = c.GetString("cdrc", "tor_field")
}
if hasOpt = c.HasOption("cdrc", "account_field"); hasOpt {
cfg.CdrcAccountField, _ = c.GetString("cdrc", "account_field")
diff --git a/config/config_test.go b/config/config_test.go
index d1a5028fd..325bf9723 100644
--- a/config/config_test.go
+++ b/config/config_test.go
@@ -99,7 +99,7 @@ func TestDefaults(t *testing.T) {
eCfg.CdrcReqTypeField = "1"
eCfg.CdrcDirectionField = "2"
eCfg.CdrcTenantField = "3"
- eCfg.CdrcTorField = "4"
+ eCfg.CdrcCategoryField = "4"
eCfg.CdrcAccountField = "5"
eCfg.CdrcSubjectField = "6"
eCfg.CdrcDestinationField = "7"
@@ -233,7 +233,7 @@ func TestConfigFromFile(t *testing.T) {
eCfg.CdrcReqTypeField = "test"
eCfg.CdrcDirectionField = "test"
eCfg.CdrcTenantField = "test"
- eCfg.CdrcTorField = "test"
+ eCfg.CdrcCategoryField = "test"
eCfg.CdrcAccountField = "test"
eCfg.CdrcSubjectField = "test"
eCfg.CdrcDestinationField = "test"
@@ -254,7 +254,7 @@ func TestConfigFromFile(t *testing.T) {
eCfg.FreeswitchPass = "test"
eCfg.FreeswitchReconnects = 99
eCfg.DerivedChargers = utils.DerivedChargers{&utils.DerivedCharger{RunId: "test", ReqTypeField: "test", DirectionField: "test", TenantField: "test",
- TorField: "test", AccountField: "test", SubjectField: "test", DestinationField: "test", SetupTimeField: "test", AnswerTimeField: "test", DurationField: "test"}}
+ CategoryField: "test", AccountField: "test", SubjectField: "test", DestinationField: "test", SetupTimeField: "test", AnswerTimeField: "test", DurationField: "test"}}
eCfg.CombinedDerivedChargers = true
eCfg.HistoryAgentEnabled = true
eCfg.HistoryServer = "test"
diff --git a/config/helpers_test.go b/config/helpers_test.go
index 29fd6c257..52c0ca78d 100644
--- a/config/helpers_test.go
+++ b/config/helpers_test.go
@@ -53,9 +53,9 @@ answer_time_fields = test1, test2
duration_fields = test1, test2
`)
edcs := utils.DerivedChargers{
- &utils.DerivedCharger{RunId: "run1", ReqTypeField: "test1", DirectionField: "test1", TenantField: "test1", TorField: "test1",
+ &utils.DerivedCharger{RunId: "run1", ReqTypeField: "test1", DirectionField: "test1", TenantField: "test1", CategoryField: "test1",
AccountField: "test1", SubjectField: "test1", DestinationField: "test1", SetupTimeField: "test1", AnswerTimeField: "test1", DurationField: "test1"},
- &utils.DerivedCharger{RunId: "run2", ReqTypeField: "test2", DirectionField: "test2", TenantField: "test2", TorField: "test2",
+ &utils.DerivedCharger{RunId: "run2", ReqTypeField: "test2", DirectionField: "test2", TenantField: "test2", CategoryField: "test2",
AccountField: "test2", SubjectField: "test2", DestinationField: "test2", SetupTimeField: "test2", AnswerTimeField: "test2", DurationField: "test2"}}
if cfg, err := NewCGRConfigFromBytes(eFieldsCfg); err != nil {
t.Error("Could not parse the config", err.Error())
diff --git a/engine/handler_derivedcharging_test.go b/engine/handler_derivedcharging_test.go
index 10f0f20cb..f7b44bec8 100644
--- a/engine/handler_derivedcharging_test.go
+++ b/engine/handler_derivedcharging_test.go
@@ -19,10 +19,11 @@ along with this program. If not, see
package engine
import (
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/utils"
"reflect"
"testing"
+
+ "github.com/cgrates/cgrates/config"
+ "github.com/cgrates/cgrates/utils"
)
var cfgDcT *config.CGRConfig
@@ -47,7 +48,7 @@ func TestHandleGetEmptyDC(t *testing.T) {
// Accounting db has no DerivedChargers, configured defaults
func TestHandleGetConfiguredDC(t *testing.T) {
cfgedDC := utils.DerivedChargers{&utils.DerivedCharger{RunId: "responder1", ReqTypeField: "test", DirectionField: "test", TenantField: "test",
- TorField: "test", AccountField: "test", SubjectField: "test", DestinationField: "test", SetupTimeField: "test", AnswerTimeField: "test", DurationField: "test"}}
+ CategoryField: "test", AccountField: "test", SubjectField: "test", DestinationField: "test", SetupTimeField: "test", AnswerTimeField: "test", DurationField: "test"}}
cfgDcT.DerivedChargers = cfgedDC
attrs := utils.AttrDerivedChargers{Tenant: "cgrates.org", Tor: "call", Direction: "*out", Account: "test3", Subject: "test3"}
if dcs, err := HandleGetDerivedChargers(acntDb, cfgDcT, attrs); err != nil {
@@ -61,9 +62,9 @@ func TestHandleGetConfiguredDC(t *testing.T) {
func TestHandleGetStoredDC(t *testing.T) {
keyCharger1 := utils.DerivedChargersKey("cgrates.org", "call", "*out", "rif", "rif")
charger1 := utils.DerivedChargers{
- &utils.DerivedCharger{RunId: "extra1", ReqTypeField: "^prepaid", DirectionField: "*default", TenantField: "*default", TorField: "*default",
+ &utils.DerivedCharger{RunId: "extra1", ReqTypeField: "^prepaid", DirectionField: "*default", TenantField: "*default", CategoryField: "*default",
AccountField: "rif", SubjectField: "rif", DestinationField: "*default", SetupTimeField: "*default", AnswerTimeField: "*default", DurationField: "*default"},
- &utils.DerivedCharger{RunId: "extra2", ReqTypeField: "*default", DirectionField: "*default", TenantField: "*default", TorField: "*default",
+ &utils.DerivedCharger{RunId: "extra2", ReqTypeField: "*default", DirectionField: "*default", TenantField: "*default", CategoryField: "*default",
AccountField: "ivo", SubjectField: "ivo", DestinationField: "*default", SetupTimeField: "*default", AnswerTimeField: "*default", DurationField: "*default"},
}
if err := acntDb.SetDerivedChargers(keyCharger1, charger1); err != nil {
@@ -71,7 +72,7 @@ func TestHandleGetStoredDC(t *testing.T) {
}
// Expected Charger should have default configured values added
expCharger1 := append(charger1, &utils.DerivedCharger{RunId: "responder1", ReqTypeField: "test", DirectionField: "test", TenantField: "test",
- TorField: "test", AccountField: "test", SubjectField: "test", DestinationField: "test", SetupTimeField: "test", AnswerTimeField: "test", DurationField: "test"})
+ CategoryField: "test", AccountField: "test", SubjectField: "test", DestinationField: "test", SetupTimeField: "test", AnswerTimeField: "test", DurationField: "test"})
acntDb.CacheAccounting(nil, nil, nil, nil)
attrs := utils.AttrDerivedChargers{Tenant: "cgrates.org", Tor: "call", Direction: "*out", Account: "rif", Subject: "rif"}
if dcs, err := HandleGetDerivedChargers(acntDb, cfgDcT, attrs); err != nil {
diff --git a/engine/loader_csv.go b/engine/loader_csv.go
index 0573843c1..fafd09d6c 100644
--- a/engine/loader_csv.go
+++ b/engine/loader_csv.go
@@ -835,7 +835,7 @@ func (csvr *CSVReader) LoadDerivedChargers() (err error) {
ReqTypeField: ValueOrDefault(record[6], "*default"),
DirectionField: ValueOrDefault(record[7], "*default"),
TenantField: ValueOrDefault(record[8], "*default"),
- TorField: ValueOrDefault(record[9], "*default"),
+ CategoryField: ValueOrDefault(record[9], "*default"),
AccountField: ValueOrDefault(record[10], "*default"),
SubjectField: ValueOrDefault(record[11], "*default"),
DestinationField: ValueOrDefault(record[12], "*default"),
@@ -854,7 +854,7 @@ func (csvr *CSVReader) LoadDerivedChargers() (err error) {
ReqTypeField: ValueOrDefault(record[6], "*default"),
DirectionField: ValueOrDefault(record[7], "*default"),
TenantField: ValueOrDefault(record[8], "*default"),
- TorField: ValueOrDefault(record[9], "*default"),
+ CategoryField: ValueOrDefault(record[9], "*default"),
AccountField: ValueOrDefault(record[10], "*default"),
SubjectField: ValueOrDefault(record[11], "*default"),
DestinationField: ValueOrDefault(record[12], "*default"),
diff --git a/engine/loader_csv_test.go b/engine/loader_csv_test.go
index ccd0139ee..b2d5d2fb1 100644
--- a/engine/loader_csv_test.go
+++ b/engine/loader_csv_test.go
@@ -909,9 +909,9 @@ func TestLoadDerivedChargers(t *testing.T) {
t.Error("Failed to load derivedChargers: ", csvr.derivedChargers)
}
expCharger1 := utils.DerivedChargers{
- &utils.DerivedCharger{RunId: "extra1", ReqTypeField: "^prepaid", DirectionField: "*default", TenantField: "*default", TorField: "*default",
+ &utils.DerivedCharger{RunId: "extra1", ReqTypeField: "^prepaid", DirectionField: "*default", TenantField: "*default", CategoryField: "*default",
AccountField: "rif", SubjectField: "rif", DestinationField: "*default", SetupTimeField: "*default", AnswerTimeField: "*default", DurationField: "*default"},
- &utils.DerivedCharger{RunId: "extra2", ReqTypeField: "*default", DirectionField: "*default", TenantField: "*default", TorField: "*default",
+ &utils.DerivedCharger{RunId: "extra2", ReqTypeField: "*default", DirectionField: "*default", TenantField: "*default", CategoryField: "*default",
AccountField: "ivo", SubjectField: "ivo", DestinationField: "*default", SetupTimeField: "*default", AnswerTimeField: "*default", DurationField: "*default"},
}
keyCharger1 := utils.DerivedChargersKey("cgrates.org", "call", "*out", "dan", "dan")
diff --git a/engine/loader_db.go b/engine/loader_db.go
index 6365aa4c6..e618f198b 100644
--- a/engine/loader_db.go
+++ b/engine/loader_db.go
@@ -22,7 +22,6 @@ import (
"errors"
"fmt"
"log"
- "strconv"
"strings"
"github.com/cgrates/cgrates/utils"
@@ -474,59 +473,8 @@ func (dbr *DbReader) LoadSharedGroups() (err error) {
}
func (dbr *DbReader) LoadLCRs() (err error) {
- dbr.sharedGroups, err = dbr.storDb.GetTpSharedGroups(dbr.tpid, "")
+ dbr.lcrs, err = dbr.storDb.GetTpLCRs(dbr.tpid, "")
return err
- csvReader, fp, err := csvr.readerFunc(csvr.lcrFn, csvr.sep, utils.LCRS_NRCOLS)
- if err != nil {
- log.Print("Could not load LCR rules file: ", err)
- // allow writing of the other values
- return nil
- }
- if fp != nil {
- defer fp.Close()
- }
- for record, err := csvReader.Read(); err == nil; record, err = csvReader.Read() {
- direction, tenant, customer := record[0], record[1], record[2]
- id := fmt.Sprintf("%s:%s:%s", direction, tenant, customer)
- lcr, found := csvr.lcrs[id]
- activationTime, err := utils.ParseTimeDetectLayout(record[7])
- if err != nil {
- return fmt.Errorf("Could not parse LCR activation time: %v", err)
- }
- weight, err := strconv.ParseFloat(record[8], 64)
- if err != nil {
- return fmt.Errorf("Could not parse LCR weight: %v", err)
- }
- if !found {
- lcr = &LCR{
- Direction: direction,
- Tenant: tenant,
- Customer: customer,
- }
- }
- var act *LCRActivation
- for _, existingAct := range lcr.Activations {
- if existingAct.ActivationTime.Equal(activationTime) {
- act = existingAct
- break
- }
- }
- if act == nil {
- act = &LCRActivation{
- ActivationTime: activationTime,
- }
- lcr.Activations = append(lcr.Activations, act)
- }
- act.Entries = append(act.Entries, &LCREntry{
- DestinationId: record[3],
- Category: record[4],
- Strategy: record[5],
- Suppliers: record[6],
- Weight: weight,
- })
- csvr.lcrs[id] = lcr
- }
- return
}
func (dbr *DbReader) LoadActions() (err error) {
diff --git a/engine/responder_test.go b/engine/responder_test.go
index 00b322280..440c83771 100644
--- a/engine/responder_test.go
+++ b/engine/responder_test.go
@@ -19,17 +19,18 @@ along with this program. If not, see
package engine
import (
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/utils"
"reflect"
"testing"
+
+ "github.com/cgrates/cgrates/config"
+ "github.com/cgrates/cgrates/utils"
)
// Test internal abilites of GetDerivedChargers
func TestResponderGetDerivedChargers(t *testing.T) {
cfg, _ := config.NewDefaultCGRConfig()
cfgedDC := utils.DerivedChargers{&utils.DerivedCharger{RunId: "responder1", ReqTypeField: "test", DirectionField: "test", TenantField: "test",
- TorField: "test", AccountField: "test", SubjectField: "test", DestinationField: "test", SetupTimeField: "test", AnswerTimeField: "test", DurationField: "test"}}
+ CategoryField: "test", AccountField: "test", SubjectField: "test", DestinationField: "test", SetupTimeField: "test", AnswerTimeField: "test", DurationField: "test"}}
cfg.DerivedChargers = cfgedDC
config.SetCgrConfig(cfg)
r := Responder{}
diff --git a/engine/storage_redis_local_test.go b/engine/storage_redis_local_test.go
index dd0aaa419..729f01b9f 100644
--- a/engine/storage_redis_local_test.go
+++ b/engine/storage_redis_local_test.go
@@ -57,9 +57,9 @@ func TestSetGetDerivedCharges(t *testing.T) {
}
keyCharger1 := utils.ConcatenatedKey("cgrates.org", "call", "*out", "dan", "dan")
charger1 := utils.DerivedChargers{
- &utils.DerivedCharger{RunId: "extra1", ReqTypeField: "^prepaid", DirectionField: "*default", TenantField: "*default", TorField: "*default",
+ &utils.DerivedCharger{RunId: "extra1", ReqTypeField: "^prepaid", DirectionField: "*default", TenantField: "*default", CategoryField: "*default",
AccountField: "rif", SubjectField: "rif", DestinationField: "*default", SetupTimeField: "*default", AnswerTimeField: "*default", DurationField: "*default"},
- &utils.DerivedCharger{RunId: "extra2", ReqTypeField: "*default", DirectionField: "*default", TenantField: "*default", TorField: "*default",
+ &utils.DerivedCharger{RunId: "extra2", ReqTypeField: "*default", DirectionField: "*default", TenantField: "*default", CategoryField: "*default",
AccountField: "ivo", SubjectField: "ivo", DestinationField: "*default", SetupTimeField: "*default", AnswerTimeField: "*default", DurationField: "*default"},
}
if err := rds.SetDerivedChargers(keyCharger1, charger1); err != nil {
diff --git a/general_tests/ddazmbl1_test.go b/general_tests/ddazmbl1_test.go
index 5abb2b741..7f94f6b8f 100644
--- a/general_tests/ddazmbl1_test.go
+++ b/general_tests/ddazmbl1_test.go
@@ -51,6 +51,7 @@ RP_UK,DR_UK_Mobile_BIG5,ALWAYS,10`
ratingProfiles := `*out,cgrates.org,call,*any,2013-01-06T00:00:00Z,RP_UK,
*out,cgrates.org,call,discounted_minutes,2013-01-06T00:00:00Z,RP_UK_Mobile_BIG5_PKG,`
sharedGroups := ``
+ lcrs := ``
actions := `TOPUP10_AC,*topup_reset,*monetary,*out,10,*unlimited,*any,,10,,,10
TOPUP10_AC1,*topup_reset,*call_duration,*out,40,*unlimited,DST_UK_Mobile_BIG5,discounted_minutes,10,,,10`
actionPlans := `TOPUP10_AT,TOPUP10_AC,ASAP,10
@@ -59,7 +60,7 @@ TOPUP10_AT,TOPUP10_AC1,ASAP,10`
accountActions := `cgrates.org,12345,*out,TOPUP10_AT,`
derivedCharges := ``
csvr := engine.NewStringCSVReader(ratingDb, acntDb, ',', destinations, timings, rates, destinationRates, ratingPlans, ratingProfiles,
- sharedGroups, actions, actionPlans, actionTriggers, accountActions, derivedCharges)
+ sharedGroups, lcrs, actions, actionPlans, actionTriggers, accountActions, derivedCharges)
if err := csvr.LoadDestinations(); err != nil {
t.Fatal(err)
}
@@ -81,6 +82,9 @@ TOPUP10_AT,TOPUP10_AC1,ASAP,10`
if err := csvr.LoadSharedGroups(); err != nil {
t.Fatal(err)
}
+ if err := csvr.LoadLCRs(); err != nil {
+ t.Fatal(err)
+ }
if err := csvr.LoadActions(); err != nil {
t.Fatal(err)
}
diff --git a/general_tests/ddazmbl2_test.go b/general_tests/ddazmbl2_test.go
index 895d4d917..c4465a1a4 100644
--- a/general_tests/ddazmbl2_test.go
+++ b/general_tests/ddazmbl2_test.go
@@ -51,6 +51,7 @@ RP_UK,DR_UK_Mobile_BIG5,ALWAYS,10`
ratingProfiles := `*out,cgrates.org,call,*any,2013-01-06T00:00:00Z,RP_UK,
*out,cgrates.org,call,discounted_minutes,2013-01-06T00:00:00Z,RP_UK_Mobile_BIG5_PKG,`
sharedGroups := ``
+ lcrs := ``
actions := `TOPUP10_AC,*topup_reset,*monetary,*out,0,*unlimited,*any,,10,,,10
TOPUP10_AC1,*topup_reset,*call_duration,*out,40,*unlimited,DST_UK_Mobile_BIG5,discounted_minutes,10,,,10`
actionPlans := `TOPUP10_AT,TOPUP10_AC,ASAP,10
@@ -59,7 +60,7 @@ TOPUP10_AT,TOPUP10_AC1,ASAP,10`
accountActions := `cgrates.org,12345,*out,TOPUP10_AT,`
derivedCharges := ``
csvr := engine.NewStringCSVReader(ratingDb2, acntDb2, ',', destinations, timings, rates, destinationRates, ratingPlans, ratingProfiles,
- sharedGroups, actions, actionPlans, actionTriggers, accountActions, derivedCharges)
+ sharedGroups, lcrs, actions, actionPlans, actionTriggers, accountActions, derivedCharges)
if err := csvr.LoadDestinations(); err != nil {
t.Fatal(err)
}
@@ -81,6 +82,9 @@ TOPUP10_AT,TOPUP10_AC1,ASAP,10`
if err := csvr.LoadSharedGroups(); err != nil {
t.Fatal(err)
}
+ if err := csvr.LoadLCRs(); err != nil {
+ t.Fatal(err)
+ }
if err := csvr.LoadActions(); err != nil {
t.Fatal(err)
}
diff --git a/general_tests/ddazmbl3_test.go b/general_tests/ddazmbl3_test.go
index a5752b95d..284c2ab9c 100644
--- a/general_tests/ddazmbl3_test.go
+++ b/general_tests/ddazmbl3_test.go
@@ -51,13 +51,14 @@ RP_UK,DR_UK_Mobile_BIG5,ALWAYS,10`
ratingProfiles := `*out,cgrates.org,call,*any,2013-01-06T00:00:00Z,RP_UK,
*out,cgrates.org,call,discounted_minutes,2013-01-06T00:00:00Z,RP_UK_Mobile_BIG5_PKG,`
sharedGroups := ``
+ lcrs := ``
actions := `TOPUP10_AC1,*topup_reset,*call_duration,*out,40,*unlimited,DST_UK_Mobile_BIG5,discounted_minutes,10,,,10`
actionPlans := `TOPUP10_AT,TOPUP10_AC1,ASAP,10`
actionTriggers := ``
accountActions := `cgrates.org,12345,*out,TOPUP10_AT,`
derivedCharges := ``
csvr := engine.NewStringCSVReader(ratingDb3, acntDb3, ',', destinations, timings, rates, destinationRates, ratingPlans, ratingProfiles,
- sharedGroups, actions, actionPlans, actionTriggers, accountActions, derivedCharges)
+ sharedGroups, lcrs, actions, actionPlans, actionTriggers, accountActions, derivedCharges)
if err := csvr.LoadDestinations(); err != nil {
t.Fatal(err)
}
@@ -79,6 +80,9 @@ RP_UK,DR_UK_Mobile_BIG5,ALWAYS,10`
if err := csvr.LoadSharedGroups(); err != nil {
t.Fatal(err)
}
+ if err := csvr.LoadLCRs(); err != nil {
+ t.Fatal(err)
+ }
if err := csvr.LoadActions(); err != nil {
t.Fatal(err)
}
diff --git a/mediator/mediator.go b/mediator/mediator.go
index 5fd5d7ce6..31473b23f 100644
--- a/mediator/mediator.go
+++ b/mediator/mediator.go
@@ -125,7 +125,7 @@ func (self *Mediator) RateCdr(dbcdr utils.RawCDR) error {
}
for _, dc := range dcs {
forkedCdr, err := dbcdr.AsStoredCdr(dc.RunId, dc.ReqTypeField, dc.DirectionField,
- dc.TenantField, dc.TorField, dc.AccountField, dc.SubjectField, dc.DestinationField, dc.SetupTimeField, dc.AnswerTimeField, dc.DurationField, []string{}, true)
+ dc.TenantField, dc.CategoryField, dc.AccountField, dc.SubjectField, dc.DestinationField, dc.SetupTimeField, dc.AnswerTimeField, dc.DurationField, []string{}, true)
if err != nil { // Errors on fork, cannot calculate further, write that into db for later analysis
self.cdrDb.SetRatedCdr(&utils.StoredCdr{CgrId: dbcdr.GetCgrId(), MediationRunId: dc.RunId, Cost: -1.0}, err.Error()) // Cannot fork CDR, important just runid and error
continue
diff --git a/sessionmanager/fssessionmanager.go b/sessionmanager/fssessionmanager.go
index c28972887..d5db97843 100644
--- a/sessionmanager/fssessionmanager.go
+++ b/sessionmanager/fssessionmanager.go
@@ -178,7 +178,7 @@ func (sm *FSSessionManager) OnChannelPark(ev Event) {
cd := engine.CallDescriptor{
Direction: ev.GetDirection(dc.DirectionField),
Tenant: ev.GetTenant(dc.TenantField),
- Category: ev.GetCategory(dc.TorField),
+ Category: ev.GetCategory(dc.CategoryField),
Subject: ev.GetSubject(dc.SubjectField),
Account: ev.GetAccount(dc.AccountField),
Destination: ev.GetDestination(dc.DestinationField),
@@ -266,7 +266,7 @@ func (sm *FSSessionManager) OnChannelHangupComplete(ev Event) {
cd := engine.CallDescriptor{
Direction: ev.GetDirection(dc.DirectionField),
Tenant: ev.GetTenant(dc.TenantField),
- Category: ev.GetCategory(dc.TorField),
+ Category: ev.GetCategory(dc.CategoryField),
Subject: ev.GetSubject(dc.SubjectField),
Account: ev.GetAccount(dc.AccountField),
LoopIndex: 0,
diff --git a/sessionmanager/session.go b/sessionmanager/session.go
index 79ff8a4a4..7e85d5400 100644
--- a/sessionmanager/session.go
+++ b/sessionmanager/session.go
@@ -61,7 +61,7 @@ func NewSession(ev Event, sm SessionManager, dcs utils.DerivedChargers) *Session
cd := &engine.CallDescriptor{
Direction: ev.GetDirection(dc.DirectionField),
Tenant: ev.GetTenant(dc.TenantField),
- Category: ev.GetCategory(dc.TorField),
+ Category: ev.GetCategory(dc.CategoryField),
Subject: ev.GetSubject(dc.SubjectField),
Account: ev.GetAccount(dc.AccountField),
Destination: ev.GetDestination(dc.DestinationField),
diff --git a/utils/derivedchargers.go b/utils/derivedchargers.go
index 9d3373643..abec6ec42 100644
--- a/utils/derivedchargers.go
+++ b/utils/derivedchargers.go
@@ -24,7 +24,7 @@ import (
)
// Wraps regexp compiling in case of rsr fields
-func NewDerivedCharger(runId, reqTypeFld, dirFld, tenantFld, totFld, acntFld, subjFld, dstFld, sTimeFld, aTimeFld, durFld string) (dc *DerivedCharger, err error) {
+func NewDerivedCharger(runId, reqTypeFld, dirFld, tenantFld, catFld, acntFld, subjFld, dstFld, sTimeFld, aTimeFld, durFld string) (dc *DerivedCharger, err error) {
if len(runId) == 0 {
return nil, errors.New("Empty run id field")
}
@@ -47,9 +47,9 @@ func NewDerivedCharger(runId, reqTypeFld, dirFld, tenantFld, totFld, acntFld, su
return nil, err
}
}
- dc.TorField = totFld
- if strings.HasPrefix(dc.TorField, REGEXP_PREFIX) {
- if dc.rsrTorField, err = NewRSRField(dc.TorField); err != nil {
+ dc.CategoryField = catFld
+ if strings.HasPrefix(dc.CategoryField, REGEXP_PREFIX) {
+ if dc.rsrCategoryField, err = NewRSRField(dc.CategoryField); err != nil {
return nil, err
}
}
@@ -97,7 +97,7 @@ type DerivedCharger struct {
ReqTypeField string // Field containing request type info, number in case of csv source, '^' as prefix in case of static values
DirectionField string // Field containing direction info
TenantField string // Field containing tenant info
- TorField string // Field containing tor info
+ CategoryField string // Field containing tor info
AccountField string // Field containing account information
SubjectField string // Field containing subject information
DestinationField string // Field containing destination information
@@ -107,7 +107,7 @@ type DerivedCharger struct {
rsrReqTypeField *RSRField // Storage for compiled Regexp in case of RSRFields
rsrDirectionField *RSRField
rsrTenantField *RSRField
- rsrTorField *RSRField
+ rsrCategoryField *RSRField
rsrAccountField *RSRField
rsrSubjectField *RSRField
rsrDestinationField *RSRField
diff --git a/utils/derivedchargers_test.go b/utils/derivedchargers_test.go
index 52c05e608..8d04aff73 100644
--- a/utils/derivedchargers_test.go
+++ b/utils/derivedchargers_test.go
@@ -50,7 +50,7 @@ func TestNewDerivedCharger(t *testing.T) {
ReqTypeField: "reqtype1",
DirectionField: "direction1",
TenantField: "tenant1",
- TorField: "tor1",
+ CategoryField: "tor1",
AccountField: "account1",
SubjectField: "subject1",
DestinationField: "destination1",
@@ -69,7 +69,7 @@ func TestNewDerivedCharger(t *testing.T) {
ReqTypeField: "~reqtype2:s/sip:(.+)/$1/",
DirectionField: "~direction2:s/sip:(.+)/$1/",
TenantField: "~tenant2:s/sip:(.+)/$1/",
- TorField: "~tor2:s/sip:(.+)/$1/",
+ CategoryField: "~tor2:s/sip:(.+)/$1/",
AccountField: "~account2:s/sip:(.+)/$1/",
SubjectField: "~subject2:s/sip:(.+)/$1/",
DestinationField: "~destination2:s/sip:(.+)/$1/",
@@ -80,7 +80,7 @@ func TestNewDerivedCharger(t *testing.T) {
edc2.rsrReqTypeField, _ = NewRSRField("~reqtype2:s/sip:(.+)/$1/")
edc2.rsrDirectionField, _ = NewRSRField("~direction2:s/sip:(.+)/$1/")
edc2.rsrTenantField, _ = NewRSRField("~tenant2:s/sip:(.+)/$1/")
- edc2.rsrTorField, _ = NewRSRField("~tor2:s/sip:(.+)/$1/")
+ edc2.rsrCategoryField, _ = NewRSRField("~tor2:s/sip:(.+)/$1/")
edc2.rsrAccountField, _ = NewRSRField("~account2:s/sip:(.+)/$1/")
edc2.rsrSubjectField, _ = NewRSRField("~subject2:s/sip:(.+)/$1/")
edc2.rsrDestinationField, _ = NewRSRField("~destination2:s/sip:(.+)/$1/")
@@ -113,16 +113,16 @@ func TestDerivedChargersKey(t *testing.T) {
func TestAppendDefaultRun(t *testing.T) {
var dc1 DerivedChargers
dcDf := &DerivedCharger{RunId: DEFAULT_RUNID, ReqTypeField: META_DEFAULT, DirectionField: META_DEFAULT,
- TenantField: META_DEFAULT, TorField: META_DEFAULT, AccountField: META_DEFAULT, SubjectField: META_DEFAULT,
+ TenantField: META_DEFAULT, CategoryField: META_DEFAULT, AccountField: META_DEFAULT, SubjectField: META_DEFAULT,
DestinationField: META_DEFAULT, SetupTimeField: META_DEFAULT, AnswerTimeField: META_DEFAULT, DurationField: META_DEFAULT}
eDc1 := DerivedChargers{dcDf}
if dc1, _ = dc1.AppendDefaultRun(); !reflect.DeepEqual(dc1, eDc1) {
t.Error("Unexpected result.")
}
dc2 := DerivedChargers{
- &DerivedCharger{RunId: "extra1", ReqTypeField: "^prepaid", DirectionField: "*default", TenantField: "*default", TorField: "*default",
+ &DerivedCharger{RunId: "extra1", ReqTypeField: "^prepaid", DirectionField: "*default", TenantField: "*default", CategoryField: "*default",
AccountField: "rif", SubjectField: "rif", DestinationField: "*default", SetupTimeField: "*default", AnswerTimeField: "*default", DurationField: "*default"},
- &DerivedCharger{RunId: "extra2", ReqTypeField: "*default", DirectionField: "*default", TenantField: "*default", TorField: "*default",
+ &DerivedCharger{RunId: "extra2", ReqTypeField: "*default", DirectionField: "*default", TenantField: "*default", CategoryField: "*default",
AccountField: "ivo", SubjectField: "ivo", DestinationField: "*default", SetupTimeField: "*default", AnswerTimeField: "*default", DurationField: "*default"},
}
eDc2 := append(dc2, dcDf)