diff --git a/sessionmanager/fsevent.go b/sessionmanager/fsevent.go index 426a91040..445cb13d5 100644 --- a/sessionmanager/fsevent.go +++ b/sessionmanager/fsevent.go @@ -36,19 +36,19 @@ var ( const ( // Freswitch event proprities names - CALL_DIRECTION = "Call-Direction" - ORIG_ID = "variable_sip_call_id" //- originator_id - match cdrs - SUBJECT = "variable_cgr_subject" - ACCOUNT = "variable_cgr_account" - DESTINATION = "variable_cgr_destination" - TOR = "variable_cgr_tor" - UUID = "Unique-ID" // -Unique ID for this call leg - CSTMID = "variable_cgr_cstmid" - START_TIME = "Event-Date-GMT" - NAME = "Event-Name" - HEARTBEAT = "HEARTBEAT" - ANSWER = "CHANNEL_ANSWER" - HANGUP = "CHANNEL_HANGUP_COMPLETE" + DIRECTION = "Call-Direction" + ORIG_ID = "variable_sip_call_id" //- originator_id - match cdrs + SUBJECT = "variable_cgr_subject" + ACCOUNT = "variable_cgr_account" + DESTINATION = "variable_cgr_destination" + TOR = "variable_cgr_tor" + UUID = "Unique-ID" // -Unique ID for this call leg + CSTMID = "variable_cgr_cstmid" + START_TIME = "Event-Date-GMT" + NAME = "Event-Name" + HEARTBEAT = "HEARTBEAT" + ANSWER = "CHANNEL_ANSWER" + HANGUP = "CHANNEL_HANGUP_COMPLETE" ) // Nice printing for the event object. @@ -78,7 +78,9 @@ func (fsev *FSEvent) GetName() string { return fsev.Fields[NAME] } func (fsev *FSEvent) GetDirection() string { - return fsev.Fields[CALL_DIRECTION] + //TODO: temporary hack + return "OUT" + //return fsev.Fields[DIRECTION] } func (fsev *FSEvent) GetOrigId() string { return fsev.Fields[ORIG_ID] diff --git a/sessionmanager/fssessionmanager.go b/sessionmanager/fssessionmanager.go index 46dedf45c..310aab069 100644 --- a/sessionmanager/fssessionmanager.go +++ b/sessionmanager/fssessionmanager.go @@ -65,7 +65,9 @@ func (sm *FSSessionManager) Connect(ed *SessionDelegate, address, pass string) e sm.conn = conn sm.buf = bufio.NewReaderSize(conn, 8192) fmt.Fprint(conn, fmt.Sprintf("auth %s\n\n", pass)) - fmt.Fprint(conn, "event json all\n\n") + fmt.Fprint(conn, "event json HEARTBEAT CHANNEL_ANSWER CHANNEL_HANGUP_COMPLETE\n\n") + fmt.Fprint(conn, "filter Call-Direction inbound\n\n") + fmt.Fprint(conn, "filter Event-Name HEARTBEAT\n\n") go func() { sm.delayFunc = fib() exitChan := make(chan bool) diff --git a/sessionmanager/postgreslogger.go b/sessionmanager/postgreslogger.go index 768246492..a778f15f7 100644 --- a/sessionmanager/postgreslogger.go +++ b/sessionmanager/postgreslogger.go @@ -40,7 +40,7 @@ func (psl *PostgresLogger) Log(uuid string, cc *timespans.CallCost) { } _, err = psl.Db.Exec(fmt.Sprintf("INSERT INTO cdr VALUES ('%s','%s', '%s', '%s', '%s', '%s', '%s', %v, %v, '%s')", uuid, - cc.Destination, + cc.Direction, cc.Tenant, cc.TOR, cc.Subject, diff --git a/sessionmanager/sessiondelegate.go b/sessionmanager/sessiondelegate.go index ae9d3103d..7b409e5a3 100644 --- a/sessionmanager/sessiondelegate.go +++ b/sessionmanager/sessiondelegate.go @@ -128,6 +128,7 @@ func (rsd *SessionDelegate) OnChannelHangupComplete(ev Event, s *Session) { } if seconds > 0 { cd := ×pans.CallDescriptor{ + Direction: lastCC.Direction, TOR: lastCC.TOR, Tenant: lastCC.Tenant, Subject: lastCC.Subject, diff --git a/timespans/calldesc.go b/timespans/calldesc.go index 39e29c681..6b8a3671c 100644 --- a/timespans/calldesc.go +++ b/timespans/calldesc.go @@ -276,7 +276,9 @@ func (cd *CallDescriptor) GetCost() (*CallCost, error) { } cost += ts.getCost(cd) } - cc := &CallCost{TOR: cd.TOR, + cc := &CallCost{ + Direction: cd.Direction, + TOR: cd.TOR, Tenant: cd.Tenant, Subject: cd.Subject, Account: cd.Account,