From 4e6d72fb699ee2fedf2526592d467c7a47190a70 Mon Sep 17 00:00:00 2001 From: DanB Date: Thu, 11 Apr 2013 19:39:52 +0200 Subject: [PATCH] Adding default configuration to data/conf folder, small config tweaks for increased usability --- cmd/cgr-rater/cgr-rater.go | 18 +++++----- config/config.go | 67 ++++++++++++++++++++------------------ config/config_test.go | 53 +++++++++++++++++++++++++++--- config/test_data.txt | 10 +++--- 4 files changed, 98 insertions(+), 50 deletions(-) diff --git a/cmd/cgr-rater/cgr-rater.go b/cmd/cgr-rater/cgr-rater.go index 894bd5713..ea20bcf09 100644 --- a/cmd/cgr-rater/cgr-rater.go +++ b/cmd/cgr-rater/cgr-rater.go @@ -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) } } diff --git a/config/config.go b/config/config.go index 035d485e3..4961f1c49 100644 --- a/config/config.go +++ b/config/config.go @@ -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 { diff --git a/config/config_test.go b/config/config_test.go index ca0eea3a8..708dd7cc6 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -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) { diff --git a/config/test_data.txt b/config/test_data.txt index 493886d4f..72aa61c70 100644 --- a/config/test_data.txt +++ b/config/test_data.txt @@ -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