mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-15 21:29:52 +05:00
Default client-server over internal connections, small fixup order of service start
This commit is contained in:
@@ -295,6 +295,7 @@ func main() {
|
||||
if *mediatorEnabled {
|
||||
cfg.MediatorEnabled = *mediatorEnabled
|
||||
}
|
||||
|
||||
if cfg.RaterEnabled {
|
||||
if err := ratingDb.CacheRating(nil, nil, nil); err != nil {
|
||||
engine.Logger.Crit(fmt.Sprintf("Cache rating error: %s", err.Error()))
|
||||
@@ -306,6 +307,7 @@ func main() {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if cfg.StorDBType == SAME {
|
||||
logDb = ratingDb.(engine.LogStorage)
|
||||
} else {
|
||||
@@ -326,6 +328,7 @@ func main() {
|
||||
engine.SetDebitPeriod(dp)
|
||||
}
|
||||
}
|
||||
|
||||
stopHandled := false
|
||||
// Async starts here
|
||||
if cfg.RaterEnabled && cfg.RaterBalancer != "" && !cfg.BalancerEnabled {
|
||||
@@ -333,6 +336,7 @@ func main() {
|
||||
go stopRaterSignalHandler()
|
||||
stopHandled = true
|
||||
}
|
||||
|
||||
responder := &engine.Responder{ExitChan: exitChan}
|
||||
apier := &apier.ApierV1{StorDb: loadDb, RatingDb: ratingDb, AccountDb: accountDb, CdrDb: cdrDb, Config: cfg}
|
||||
|
||||
@@ -341,6 +345,7 @@ func main() {
|
||||
server.RpcRegister(responder)
|
||||
server.RpcRegister(apier)
|
||||
}
|
||||
|
||||
if cfg.BalancerEnabled {
|
||||
engine.Logger.Info("Starting CGRateS Balancer")
|
||||
go stopBalancerSignalHandler()
|
||||
@@ -353,9 +358,11 @@ func main() {
|
||||
bal.AddClient("local", new(engine.ResponderWorker))
|
||||
}
|
||||
}
|
||||
|
||||
if !stopHandled {
|
||||
go generalSignalHandler()
|
||||
}
|
||||
|
||||
if cfg.SchedulerEnabled {
|
||||
engine.Logger.Info("Starting CGRateS Scheduler.")
|
||||
go func() {
|
||||
@@ -367,6 +374,26 @@ func main() {
|
||||
}()
|
||||
}
|
||||
|
||||
if cfg.HistoryServerEnabled || cfg.HistoryAgentEnabled {
|
||||
engine.Logger.Info("Starting History Service.")
|
||||
go startHistoryScribe()
|
||||
}
|
||||
|
||||
go server.ServeGOB(cfg.RPCGOBListen)
|
||||
go server.ServeJSON(cfg.RPCJSONListen)
|
||||
|
||||
if cfg.CDRSEnabled {
|
||||
engine.Logger.Info("Starting CGRateS CDR Server.")
|
||||
go startCDRS(responder, cdrDb)
|
||||
}
|
||||
|
||||
go server.ServeHTTP(cfg.HTTPListen)
|
||||
|
||||
if cfg.MediatorEnabled {
|
||||
engine.Logger.Info("Starting CGRateS Mediator.")
|
||||
go startMediator(responder, logDb, cdrDb)
|
||||
}
|
||||
|
||||
if cfg.SMEnabled {
|
||||
engine.Logger.Info("Starting CGRateS SessionManager.")
|
||||
go startSessionManager(responder, logDb)
|
||||
@@ -374,27 +401,11 @@ func main() {
|
||||
go shutdownSessionmanagerSingnalHandler()
|
||||
}
|
||||
|
||||
if cfg.MediatorEnabled {
|
||||
engine.Logger.Info("Starting CGRateS Mediator.")
|
||||
go startMediator(responder, logDb, cdrDb)
|
||||
}
|
||||
|
||||
if cfg.CDRSEnabled {
|
||||
engine.Logger.Info("Starting CGRateS CDR Server.")
|
||||
go startCDRS(responder, cdrDb)
|
||||
}
|
||||
|
||||
if cfg.HistoryServerEnabled || cfg.HistoryAgentEnabled {
|
||||
engine.Logger.Info("Starting History Service.")
|
||||
go startHistoryScribe()
|
||||
}
|
||||
if cfg.CdrcEnabled {
|
||||
engine.Logger.Info("Starting CGRateS CDR Client.")
|
||||
go startCdrc()
|
||||
}
|
||||
go server.ServeGOB(cfg.RPCGOBListen)
|
||||
go server.ServeJSON(cfg.RPCJSONListen)
|
||||
go server.ServeHTTP(cfg.HTTPListen)
|
||||
|
||||
<-exitChan
|
||||
if *pidFile != "" {
|
||||
if err := os.Remove(*pidFile); err != nil {
|
||||
|
||||
@@ -202,7 +202,7 @@ func (self *CGRConfig) setDefaults() error {
|
||||
self.CdrcDurationField = "9"
|
||||
self.CdrcExtraFields = []string{}
|
||||
self.MediatorEnabled = false
|
||||
self.MediatorRater = "127.0.0.1:2013"
|
||||
self.MediatorRater = "internal"
|
||||
self.MediatorRaterReconnects = 3
|
||||
self.MediatorRunIds = []string{}
|
||||
self.MediatorSubjectFields = []string{}
|
||||
@@ -216,7 +216,7 @@ func (self *CGRConfig) setDefaults() error {
|
||||
self.MediatorDurationFields = []string{}
|
||||
self.SMEnabled = false
|
||||
self.SMSwitchType = FS
|
||||
self.SMRater = "127.0.0.1:2013"
|
||||
self.SMRater = "internal"
|
||||
self.SMRaterReconnects = 3
|
||||
self.SMDebitInterval = 10
|
||||
self.SMMaxCallDuration = time.Duration(3) * time.Hour
|
||||
@@ -225,7 +225,7 @@ func (self *CGRConfig) setDefaults() error {
|
||||
self.FreeswitchReconnects = 5
|
||||
self.HistoryAgentEnabled = false
|
||||
self.HistoryServerEnabled = false
|
||||
self.HistoryServer = "127.0.0.1:2013"
|
||||
self.HistoryServer = "internal"
|
||||
self.HistoryDir = "/var/log/cgrates/history"
|
||||
self.HistorySaveInterval = time.Duration(1) * time.Second
|
||||
self.MailerServer = "localhost:25"
|
||||
|
||||
@@ -103,7 +103,7 @@ func TestDefaults(t *testing.T) {
|
||||
eCfg.CdrcDurationField = "9"
|
||||
eCfg.CdrcExtraFields = []string{}
|
||||
eCfg.MediatorEnabled = false
|
||||
eCfg.MediatorRater = "127.0.0.1:2013"
|
||||
eCfg.MediatorRater = "internal"
|
||||
eCfg.MediatorRaterReconnects = 3
|
||||
eCfg.MediatorRunIds = []string{}
|
||||
eCfg.MediatorSubjectFields = []string{}
|
||||
@@ -117,7 +117,7 @@ func TestDefaults(t *testing.T) {
|
||||
eCfg.MediatorDurationFields = []string{}
|
||||
eCfg.SMEnabled = false
|
||||
eCfg.SMSwitchType = FS
|
||||
eCfg.SMRater = "127.0.0.1:2013"
|
||||
eCfg.SMRater = "internal"
|
||||
eCfg.SMRaterReconnects = 3
|
||||
eCfg.SMDebitInterval = 10
|
||||
eCfg.SMMaxCallDuration = time.Duration(3) * time.Hour
|
||||
@@ -125,7 +125,7 @@ func TestDefaults(t *testing.T) {
|
||||
eCfg.FreeswitchPass = "ClueCon"
|
||||
eCfg.FreeswitchReconnects = 5
|
||||
eCfg.HistoryAgentEnabled = false
|
||||
eCfg.HistoryServer = "127.0.0.1:2013"
|
||||
eCfg.HistoryServer = "internal"
|
||||
eCfg.HistoryServerEnabled = false
|
||||
eCfg.HistoryDir = "/var/log/cgrates/history"
|
||||
eCfg.HistorySaveInterval = time.Duration(1) * time.Second
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
|
||||
[mediator]
|
||||
# enabled = false # Starts Mediator service: <true|false>.
|
||||
# rater = 127.0.0.1:2013 # Address where to reach the Rater: <internal|x.y.z.y:1234>
|
||||
# rater = internal # Address where to reach the Rater: <internal|x.y.z.y:1234>
|
||||
# rater_reconnects = 3 # Number of reconnects to rater before giving up.
|
||||
# run_ids = # Identifiers of each extra mediation to run on CDRs
|
||||
# reqtype_fields = # Name of request type fields to be used during extra mediation. Use index number in case of .csv cdrs.
|
||||
@@ -93,7 +93,7 @@
|
||||
[session_manager]
|
||||
# enabled = false # Starts SessionManager service: <true|false>.
|
||||
# switch_type = freeswitch # Defines the type of switch behind: <freeswitch>.
|
||||
# rater = 127.0.0.1:2013 # Address where to reach the Rater.
|
||||
# rater = internal # Address where to reach the Rater.
|
||||
# rater_reconnects = 3 # Number of reconnects to rater before giving up.
|
||||
# debit_interval = 10 # Interval to perform debits on.
|
||||
# max_call_duration = 3h # Maximum call duration a prepaid call can last
|
||||
@@ -110,7 +110,7 @@
|
||||
|
||||
[history_agent]
|
||||
# enabled = false # Starts History as a client: <true|false>.
|
||||
# server = 127.0.0.1:2013 # Address where to reach the master history server: <internal|x.y.z.y:1234>
|
||||
# server = internal # Address where to reach the master history server: <internal|x.y.z.y:1234>
|
||||
|
||||
[mailer]
|
||||
# server = localhost # The server to use when sending emails out
|
||||
|
||||
@@ -238,7 +238,7 @@ func mailAsync(ub *UserBalance, a *Action) error {
|
||||
}
|
||||
toAddrStr += addr
|
||||
}
|
||||
message := []byte(fmt.Sprintf("To: %s\r\nSubject: [CGR Notification]: Threshold hit on balance: %s\r\n\r\nTime: \r\n\t%s\r\n\r\nBalance:\r\n\t%s\r\n\r\nYour faithful CGR Balance Monitor\r\n", toAddrStr, ub.Id, time.Now(), ubJson))
|
||||
message := []byte(fmt.Sprintf("To: %s\r\nSubject: [CGR Notification] Threshold hit on balance: %s\r\n\r\nTime: \r\n\t%s\r\n\r\nBalance:\r\n\t%s\r\n\r\nYours faithfully,\r\nCGR Balance Monitor\r\n", toAddrStr, ub.Id, time.Now(), ubJson))
|
||||
auth := smtp.PlainAuth("", cgrCfg.MailerAuthUser, cgrCfg.MailerAuthPass, strings.Split(cgrCfg.MailerServer,":")[0]) // We only need host part, so ignore port
|
||||
go func() {
|
||||
for i := 0; i < 5; i++ { // Loop so we can increase the success rate on best effort
|
||||
|
||||
Reference in New Issue
Block a user