Adding default configuration to data/conf folder, small config tweaks for increased usability

This commit is contained in:
DanB
2013-04-11 19:39:52 +02:00
parent 2e649e7330
commit 4e6d72fb69
4 changed files with 98 additions and 50 deletions

View File

@@ -108,12 +108,12 @@ func startMediator(responder *rater.Responder, loggerDb rater.DataStorage) {
}
connector = &rater.RPCClientConnector{Client: client}
}
if _, err := os.Stat(cfg.MediatorCDRPath); err != nil {
rater.Logger.Crit(fmt.Sprintf("The input path for mediator does not exist: %v", cfg.MediatorCDRPath))
if _, err := os.Stat(cfg.MediatorCDRInDir); err != nil {
rater.Logger.Crit(fmt.Sprintf("The input path for mediator does not exist: %v", cfg.MediatorCDRInDir))
exitChan <- true
}
if _, err := os.Stat(cfg.MediatorCDROutPath); err != nil {
rater.Logger.Crit(fmt.Sprintf("The output path for mediator does not exist: %v", cfg.MediatorCDROutPath))
if _, err := os.Stat(cfg.MediatorCDROutDir); err != nil {
rater.Logger.Crit(fmt.Sprintf("The output path for mediator does not exist: %v", cfg.MediatorCDROutDir))
exitChan <- true
}
// ToDo: Why is here
@@ -123,7 +123,7 @@ func startMediator(responder *rater.Responder, loggerDb rater.DataStorage) {
// exitChan <- true
//}
m, err := mediator.NewMediator(connector, loggerDb, cfg.MediatorSkipDB, cfg.MediatorCDROutPath, cfg.MediatorPseudoprepaid,
m, err := mediator.NewMediator(connector, loggerDb, cfg.MediatorSkipDB, cfg.MediatorCDROutDir, cfg.MediatorPseudoprepaid,
cfg.FreeswitchDirectionIdx, cfg.FreeswitchTORIdx, cfg.FreeswitchTenantIdx, cfg.FreeswitchSubjectIdx, cfg.FreeswitchAccountIdx,
cfg.FreeswitchDestIdx, cfg.FreeswitchTimeStartIdx, cfg.FreeswitchDurationIdx, cfg.FreeswitchUUIDIdx)
if err != nil {
@@ -131,7 +131,7 @@ func startMediator(responder *rater.Responder, loggerDb rater.DataStorage) {
exitChan <- true
}
m.TrackCDRFiles(cfg.MediatorCDRPath)
m.TrackCDRFiles(cfg.MediatorCDRInDir)
}
func startSessionManager(responder *rater.Responder, loggerDb rater.DataStorage) {
@@ -154,7 +154,7 @@ func startSessionManager(responder *rater.Responder, loggerDb rater.DataStorage)
}
switch cfg.SMSwitchType {
case FS:
dp, _ := time.ParseDuration(fmt.Sprintf("%vs", cfg.SMDebitPeriod))
dp, _ := time.ParseDuration(fmt.Sprintf("%vs", cfg.SMDebitInterval))
sm = sessionmanager.NewFSSessionManager(loggerDb, connector, dp)
errConn := sm.Connect(cfg)
if errConn != nil {
@@ -274,8 +274,8 @@ func main() {
rater.SetStorageLogger(loggerDb)
}
if cfg.SMDebitPeriod > 0 {
if dp, err := time.ParseDuration(fmt.Sprintf("%vs", cfg.SMDebitPeriod)); err == nil {
if cfg.SMDebitInterval > 0 {
if dp, err := time.ParseDuration(fmt.Sprintf("%vs", cfg.SMDebitInterval)); err == nil {
rater.SetDebitPeriod(dp)
}
}

View File

@@ -61,15 +61,16 @@ type CGRConfig struct {
SMEnabled bool
SMSwitchType string
SMRater string // address where to access rater. Can be internal, direct rater address or the address of a balancer
SMDebitPeriod int // the period to be debited in advanced during a call (in seconds)
SMDebitInterval int // the period to be debited in advanced during a call (in seconds)
SMRPCEncoding string // use JSON for RPC encoding
SMDefaultReqType string // Use this request type if not defined on top
SMDefaultTOR string // set default type of record
SMDefaultTenant string // set default tenant
SMDefaultSubject string // set default rating subject, useful in case of fallback
MediatorEnabled bool
MediatorCDRPath string // Freeswitch Master CSV CDR path.
MediatorCDROutPath string // Freeswitch Master CSV CDR output path.
MediatorCDRType string // sets the type of cdrs we are processing.
MediatorCDRInDir string // Freeswitch Master CSV CDR path.
MediatorCDROutDir string // Freeswitch Master CSV CDR output path.
MediatorRater string // address where to access rater. Can be internal, direct rater address or the address of a balancer
MediatorRPCEncoding string // use JSON for RPC encoding
MediatorSkipDB bool
@@ -100,11 +101,11 @@ func NewCGRConfig(cfgPath *string) (*CGRConfig, error) {
if hasOpt = c.HasOption("global", "datadb_type"); hasOpt {
cfg.DataDBType, _ = c.GetString("global", "datadb_type")
}
cfg.DataDBHost = "localhost"
cfg.DataDBHost = "127.0.0.1"
if hasOpt = c.HasOption("global", "datadb_host"); hasOpt {
cfg.DataDBHost, _ = c.GetString("global", "datadb_host")
}
cfg.DataDBPort = ""
cfg.DataDBPort = "6379"
if hasOpt = c.HasOption("global", "datadb_port"); hasOpt {
cfg.DataDBPort, _ = c.GetString("global", "datadb_port")
}
@@ -128,7 +129,7 @@ func NewCGRConfig(cfgPath *string) (*CGRConfig, error) {
if hasOpt = c.HasOption("global", "logdb_host"); hasOpt {
cfg.LogDBHost, _ = c.GetString("global", "logdb_host")
}
cfg.LogDBPort = ""
cfg.LogDBPort = "27017"
if hasOpt = c.HasOption("global", "logdb_port"); hasOpt {
cfg.LogDBPort, _ = c.GetString("global", "logdb_port")
}
@@ -136,11 +137,11 @@ func NewCGRConfig(cfgPath *string) (*CGRConfig, error) {
if hasOpt = c.HasOption("global", "logdb_name"); hasOpt {
cfg.LogDBName, _ = c.GetString("global", "logdb_name")
}
cfg.LogDBUser = ""
cfg.LogDBUser = "cgrates"
if hasOpt = c.HasOption("global", "logdb_user"); hasOpt {
cfg.LogDBUser, _ = c.GetString("global", "logdb_user")
}
cfg.LogDBPass = ""
cfg.LogDBPass = "CGRateS.org"
if hasOpt = c.HasOption("global", "logdb_passwd"); hasOpt {
cfg.LogDBPass, _ = c.GetString("global", "logdb_passwd")
}
@@ -152,11 +153,11 @@ func NewCGRConfig(cfgPath *string) (*CGRConfig, error) {
if hasOpt = c.HasOption("rater", "balancer"); hasOpt {
cfg.RaterBalancer, _ = c.GetString("rater", "balancer")
}
cfg.RaterListen = "127.0.0.1:1234"
cfg.RaterListen = "127.0.0.1:2012"
if hasOpt = c.HasOption("rater", "listen"); hasOpt {
cfg.RaterListen, _ = c.GetString("rater", "listen")
}
cfg.RaterRPCEncoding = "gob"
cfg.RaterRPCEncoding = GOB
if hasOpt = c.HasOption("rater", "rpc_encoding"); hasOpt {
cfg.RaterRPCEncoding, _ = c.GetString("rater", "rpc_encoding")
}
@@ -164,7 +165,7 @@ func NewCGRConfig(cfgPath *string) (*CGRConfig, error) {
if hasOpt = c.HasOption("balancer", "enabled"); hasOpt {
cfg.BalancerEnabled, _ = c.GetBool("balancer", "enabled")
}
cfg.BalancerListen = "127.0.0.1:2001"
cfg.BalancerListen = "127.0.0.1:2013"
if hasOpt = c.HasOption("balancer", "listen"); hasOpt {
cfg.BalancerListen, _ = c.GetString("balancer", "listen")
}
@@ -180,15 +181,15 @@ func NewCGRConfig(cfgPath *string) (*CGRConfig, error) {
if hasOpt = c.HasOption("mediator", "enabled"); hasOpt {
cfg.MediatorEnabled, _ = c.GetBool("mediator", "enabled")
}
cfg.MediatorCDRPath = ""
if hasOpt = c.HasOption("mediator", "cdr_path"); hasOpt {
cfg.MediatorCDRPath, _ = c.GetString("mediator", "cdr_path")
cfg.MediatorCDRInDir = "/var/log/freeswitch/cdr-csv/"
if hasOpt = c.HasOption("mediator", "cdr_in_dir"); hasOpt {
cfg.MediatorCDRInDir, _ = c.GetString("mediator", "cdr_in_dir")
}
cfg.MediatorCDROutPath = ""
if hasOpt = c.HasOption("mediator", "cdr_out_path"); hasOpt {
cfg.MediatorCDROutPath, _ = c.GetString("mediator", "cdr_out_path")
cfg.MediatorCDROutDir = "/var/log/cgrates/cdr_out/"
if hasOpt = c.HasOption("mediator", "cdr_out_dir"); hasOpt {
cfg.MediatorCDROutDir, _ = c.GetString("mediator", "cdr_out_dir")
}
cfg.MediatorRater = INTERNAL
cfg.MediatorRater = "127.0.0.1:2012"
if hasOpt = c.HasOption("mediator", "rater"); hasOpt {
cfg.MediatorRater, _ = c.GetString("mediator", "rater")
}
@@ -201,8 +202,12 @@ func NewCGRConfig(cfgPath *string) (*CGRConfig, error) {
cfg.MediatorSkipDB, _ = c.GetBool("mediator", "skipdb")
}
cfg.MediatorPseudoprepaid = false
if hasOpt = c.HasOption("mediator", "pseudo_prepaid"); hasOpt {
cfg.MediatorPseudoprepaid, _ = c.GetBool("mediator", "pseudo_prepaid")
if hasOpt = c.HasOption("mediator", "pseudoprepaid"); hasOpt {
cfg.MediatorPseudoprepaid, _ = c.GetBool("mediator", "pseudoprepaid")
}
cfg.MediatorCDRType = "freeswitch_csv"
if hasOpt = c.HasOption("mediator", "cdr_type"); hasOpt {
cfg.MediatorCDRType, _ = c.GetString("mediator", "cdr_type")
}
cfg.SMEnabled = false
if hasOpt = c.HasOption("session_manager", "enabled"); hasOpt {
@@ -212,26 +217,26 @@ func NewCGRConfig(cfgPath *string) (*CGRConfig, error) {
if hasOpt = c.HasOption("session_manager", "switch_type"); hasOpt {
cfg.SMSwitchType, _ = c.GetString("session_manager", "switch_type")
}
cfg.SMRater = INTERNAL
cfg.SMRater = "127.0.0.1:2012"
if hasOpt = c.HasOption("session_manager", "rater"); hasOpt {
cfg.SMRater, _ = c.GetString("session_manager", "rater")
}
cfg.SMDebitPeriod = 10
if hasOpt = c.HasOption("session_manager", "debit_period"); hasOpt {
cfg.SMDebitPeriod, _ = c.GetInt("session_manager", "debit_period")
cfg.SMDebitInterval = 10
if hasOpt = c.HasOption("session_manager", "debit_interval"); hasOpt {
cfg.SMDebitInterval, _ = c.GetInt("session_manager", "debit_interval")
}
cfg.SMRPCEncoding = GOB
if hasOpt = c.HasOption("session_manager", "rpc_encoding"); hasOpt {
cfg.SMRPCEncoding, _ = c.GetString("session_manager", "rpc_encoding")
}
cfg.SMDefaultTOR = "0"
if hasOpt = c.HasOption("session_manager", "default_tor"); hasOpt {
cfg.SMDefaultTOR, _ = c.GetString("session_manager", "default_tor")
}
cfg.SMDefaultReqType = "" // By default CGRateS is inactive, customer should activate when he feels he is ready
if hasOpt = c.HasOption("session_manager", "default_reqtype"); hasOpt {
cfg.SMDefaultReqType, _ = c.GetString("session_manager", "default_reqtype")
}
cfg.SMDefaultTOR = "0"
if hasOpt = c.HasOption("session_manager", "default_tor"); hasOpt {
cfg.SMDefaultTOR, _ = c.GetString("session_manager", "default_tor")
}
cfg.SMDefaultTenant = "0"
if hasOpt = c.HasOption("session_manager", "default_tenant"); hasOpt {
cfg.SMDefaultTenant, _ = c.GetString("session_manager", "default_tenant")
@@ -240,13 +245,13 @@ func NewCGRConfig(cfgPath *string) (*CGRConfig, error) {
if hasOpt = c.HasOption("session_manager", "default_subject"); hasOpt {
cfg.SMDefaultSubject, _ = c.GetString("session_manager", "default_subject")
}
cfg.FreeswitchServer = "localhost:8021"
cfg.FreeswitchServer = "127.0.0.1:8021"
if hasOpt = c.HasOption("freeswitch", "server"); hasOpt {
cfg.FreeswitchServer, _ = c.GetString("freeswitch", "server")
}
cfg.FreeswitchPass = "ClueCon"
if hasOpt = c.HasOption("freeswitch", "pass"); hasOpt {
cfg.FreeswitchPass, _ = c.GetString("freeswitch", "pass")
if hasOpt = c.HasOption("freeswitch", "passwd"); hasOpt {
cfg.FreeswitchPass, _ = c.GetString("freeswitch", "passwd")
}
cfg.FreeswitchReconnects = 5
if hasOpt = c.HasOption("freeswitch", "reconnects"); hasOpt {

View File

@@ -53,11 +53,11 @@ func TestConfig(t *testing.T) {
cfg.SMEnabled != true ||
cfg.SMSwitchType != "test" ||
cfg.SMRater != "test" ||
cfg.SMDebitPeriod != 11 ||
cfg.SMDebitInterval != 11 ||
cfg.SMRPCEncoding != "test" ||
cfg.MediatorEnabled != true ||
cfg.MediatorCDRPath != "test" ||
cfg.MediatorCDROutPath != "test" ||
cfg.MediatorCDRInDir != "test" ||
cfg.MediatorCDROutDir != "test" ||
cfg.MediatorRater != "test" ||
cfg.MediatorRPCEncoding != "test" ||
cfg.MediatorSkipDB != true ||
@@ -73,8 +73,51 @@ func TestConfig(t *testing.T) {
cfg.FreeswitchTimeStartIdx != "test" ||
cfg.FreeswitchDurationIdx != "test" ||
cfg.FreeswitchUUIDIdx != "test" {
t.Error("Config file read failed!")
}
t.Log(cfg.DataDBType)
t.Log(cfg.DataDBHost)
t.Log(cfg.DataDBPort)
t.Log(cfg.DataDBName)
t.Log(cfg.DataDBUser)
t.Log(cfg.DataDBPass)
t.Log(cfg.LogDBType)
t.Log(cfg.LogDBHost)
t.Log(cfg.LogDBPort)
t.Log(cfg.LogDBName)
t.Log(cfg.LogDBUser)
t.Log(cfg.LogDBPass)
t.Log(cfg.RaterEnabled)
t.Log(cfg.RaterBalancer)
t.Log(cfg.RaterListen)
t.Log(cfg.RaterRPCEncoding)
t.Log(cfg.BalancerEnabled)
t.Log(cfg.BalancerListen)
t.Log(cfg.BalancerRPCEncoding)
t.Log(cfg.SchedulerEnabled)
t.Log(cfg.SMEnabled)
t.Log(cfg.SMSwitchType)
t.Log(cfg.SMRater)
t.Log(cfg.SMDebitInterval)
t.Log(cfg.SMRPCEncoding)
t.Log(cfg.MediatorEnabled)
t.Log(cfg.MediatorCDRInDir)
t.Log(cfg.MediatorCDROutDir)
t.Log(cfg.MediatorRater)
t.Log(cfg.MediatorRPCEncoding)
t.Log(cfg.MediatorSkipDB)
t.Log(cfg.MediatorPseudoprepaid)
t.Log(cfg.FreeswitchServer)
t.Log(cfg.FreeswitchPass)
t.Log(cfg.FreeswitchDirectionIdx)
t.Log(cfg.FreeswitchTORIdx)
t.Log(cfg.FreeswitchTenantIdx)
t.Log(cfg.FreeswitchSubjectIdx)
t.Log(cfg.FreeswitchAccountIdx)
t.Log(cfg.FreeswitchDestIdx)
t.Log(cfg.FreeswitchTimeStartIdx)
t.Log(cfg.FreeswitchDurationIdx)
t.Log(cfg.FreeswitchUUIDIdx)
t.Error("Config file read failed!")
}
}
func TestParamOverwrite(t *testing.T) {

View File

@@ -28,12 +28,12 @@ rpc_encoding = test # use JSON for RPC encoding
[mediator]
enabled = true
cdr_path = test # Freeswitch Master CSV CDR path.
cdr_out_path = test
cdr_in_dir = test # Freeswitch Master CSV CDR path.
cdr_out_dir = test
rater = test #address where to access rater. Can be internal, direct rater address or the address of a balancer
rpc_encoding = test # use JSON for RPC encoding
skipdb = true
pseudo_prepaid = true
pseudoprepaid = true
[scheduler]
enabled = true
@@ -42,12 +42,12 @@ enabled = true
enabled = true
switch_type = test
rater = test #address where to access rater. Can be internal, direct rater address or the address of a balancer
debit_period = 11
debit_interval = 11
rpc_encoding = test # use JSON for RPC encoding
[freeswitch]
server = test # freeswitch address host:port
pass = test # freeswitch address host:port
passwd = test # freeswitch address host:port
direction_index = test
tor_index = test
tenant_index = test