mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-15 21:29:52 +05:00
integrated session manager in cgr-rater
This commit is contained in:
@@ -28,22 +28,24 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
balancer = flag.String("balancer", "127.0.0.1:2001", "balancer address host:port")
|
||||
tor = flag.Int("tor", 0, "Type of record")
|
||||
cstmid = flag.String("cstmid", "vdf", "Customer identificator")
|
||||
subject = flag.String("subject", "rif", "The client who made the call")
|
||||
dest = flag.String("dest", "0256", "Destination prefix")
|
||||
ts = flag.String("ts", "2012-02-09T00:00:00Z", "Time start")
|
||||
te = flag.String("te", "2012-02-09T00:10:00Z", "Time end")
|
||||
amount = flag.Float64("amount", 100, "Amount for different operations")
|
||||
server = flag.String("server", "127.0.0.1:2001", "server address host:port")
|
||||
tor = flag.Int("tor", 0, "Type of record")
|
||||
cstmid = flag.String("cstmid", "vdf", "Customer identificator")
|
||||
subject = flag.String("subject", "rif", "The client who made the call")
|
||||
dest = flag.String("dest", "0256", "Destination prefix")
|
||||
ts = flag.String("ts", "2012-02-09T00:00:00Z", "Time start")
|
||||
te = flag.String("te", "2012-02-09T00:10:00Z", "Time end")
|
||||
amount = flag.Float64("amount", 100, "Amount for different operations")
|
||||
)
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
client, _ := jsonrpc.Dial("tcp", "localhost:2001")
|
||||
client, err := jsonrpc.Dial("tcp", *server)
|
||||
if err != nil {
|
||||
log.Fatal("Could not connect to server " + *server)
|
||||
}
|
||||
defer client.Close()
|
||||
|
||||
var err error
|
||||
timestart, err := time.Parse(time.RFC3339, *ts)
|
||||
if err != nil {
|
||||
log.Fatal("Time start format is invalid: ", err)
|
||||
|
||||
@@ -21,6 +21,7 @@ package main
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"github.com/rif/cgrates/sessionmanager"
|
||||
"github.com/rif/cgrates/timespans"
|
||||
"log"
|
||||
"net"
|
||||
@@ -31,10 +32,10 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
balancer = flag.String("balancer", "127.0.0.1:2000", "balancer address host:port")
|
||||
listen = flag.String("listen", "127.0.0.1:1234", "listening address host:port")
|
||||
json = flag.Bool("json", false, "use json for rpc encoding")
|
||||
storage Responder
|
||||
balancer = flag.String("balancer", "127.0.0.1:2000", "balancer address host:port")
|
||||
listen = flag.String("listen", "127.0.0.1:1234", "listening address host:port")
|
||||
standalone = flag.Bool("standalone", false, "start standalone server (no balancer), and use json for rpc encoding")
|
||||
storage Responder
|
||||
)
|
||||
|
||||
type Responder struct {
|
||||
@@ -146,7 +147,12 @@ func main() {
|
||||
log.Printf("Cannot open storage: %v", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
if !*json {
|
||||
if standalone {
|
||||
sm = &sessionmanager.SessionManager{}
|
||||
sm.Connect("localhost:8021", "ClueCon")
|
||||
sm.SetSessionDelegate(new(DirectSessionDelegate))
|
||||
sm.StartEventLoop()
|
||||
} else {
|
||||
go RegisterToServer(balancer, listen)
|
||||
go StopSingnalHandler(balancer, listen, getter)
|
||||
}
|
||||
@@ -176,7 +182,7 @@ func main() {
|
||||
continue
|
||||
}
|
||||
log.Printf("connection started: %v", conn.RemoteAddr())
|
||||
if *json {
|
||||
if *standalone {
|
||||
log.Print("json encoding")
|
||||
go jsonrpc.ServeConn(conn)
|
||||
} else {
|
||||
|
||||
@@ -46,6 +46,14 @@ func (sm *SessionManager) Connect(address, pass string) {
|
||||
fmt.Fprint(conn, "event json all\n\n")
|
||||
}
|
||||
|
||||
func (sm *SessionManager) StartEventLoop() {
|
||||
go func() {
|
||||
for {
|
||||
sm.ReadNextEvent()
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
func (sm *SessionManager) SetSessionDelegate(ed SessionDelegate) {
|
||||
sm.sessionDelegate = ed
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user