Skip to content

Commit

Permalink
added dump debug logs; changed time layout template
Browse files Browse the repository at this point in the history
  • Loading branch information
ZeljkoBenovic committed Nov 7, 2023
1 parent fa73a93 commit 548de09
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 38 deletions.
73 changes: 37 additions & 36 deletions framework/adapters/left/amihandlers/event_handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package amihandlers

import (
"fmt"
"github.com/davecgh/go-spew/spew"
"os"
"strconv"
"strings"
Expand All @@ -22,11 +23,11 @@ func (a *Adapter) newChannelHandler() {
UID: m["Uniqueid"],
Event: "NEW_OUTBOUND_CALL",
EventCode: NewOutboundCall,
Timestamp: convertTimeToUnixTime(m["TimeReceived"]),
Timestamp: convertTimeToUnixTime(m["TimeReceived"], a.logger),
}

a.logger.Debug("Call registered", "direction", "outbound", "event", "NEW_OUTBOUND_CALL", "data", m)
a.logger.Debug("Events map", "event", "NEW_OUTBOUND_CALL", "map", a.amiEvents)
a.logger.Debug("Call registered", "direction", "outbound", "event", "NEW_OUTBOUND_CALL", "data", spew.Sdump(m))
a.logger.Debug("Events map", "event", "NEW_OUTBOUND_CALL", "map", spew.Sdump(a.amiEvents))
a.logger.Info("Call registered",
"event", "NEW_OUTBOUND_CALL",
"direction", "outbound",
Expand All @@ -46,11 +47,11 @@ func (a *Adapter) newChannelHandler() {
UID: m["Uniqueid"],
Event: "NEW_INBOUND_CALL",
EventCode: NewInboundCall,
Timestamp: convertTimeToUnixTime(m["TimeReceived"]),
Timestamp: convertTimeToUnixTime(m["TimeReceived"], a.logger),
}

a.logger.Debug("Call registered", "event", "NEW_INBOUND_CALL", "direction", "inbound", "data", m)
a.logger.Debug("Events map", "event", "NEW_INBOUND_CALL", "map", a.amiEvents)
a.logger.Debug("Call registered", "event", "NEW_INBOUND_CALL", "direction", "inbound", "data", spew.Sdump(m))
a.logger.Debug("Events map", "event", "NEW_INBOUND_CALL", "map", spew.Sdump(a.amiEvents))
a.logger.Info("Call registered", "event", "NEW_INBOUND_CALL", "direction", "inbound",
"caller_id", m["CallerIDNum"],
"call_id", m["Uniqueid"])
Expand All @@ -69,7 +70,7 @@ func (a *Adapter) hangupHandler() {
// change call status
elem.Event = "OUTBOUND_CALL_END"
elem.EventCode = EndOutboundCall
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"])
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"], a.logger)
a.amiEvents.Outbound[CallUID(m["Uniqueid"])] = elem
// send data
a.sendDataToWebhook(m["Uniqueid"], outbound)
Expand All @@ -81,19 +82,19 @@ func (a *Adapter) hangupHandler() {
"direction", "outbound",
"caller_id", m["CallerIDNum"],
"call_id", m["Uniqueid"])
a.logger.Debug("Hangup event registered", "event", "OUTBOUND_CALL_END", "direction", "outbound", "data", m)
a.logger.Debug("Hangup event registered", "event", "OUTBOUND_CALL_END", "direction", "outbound", "data", spew.Sdump(m))
a.logger.Debug("Call event deleted from map",
"event", "OUTBOUND_CALL_END",
"direction", "outbound",
"call_id", m["Uniqueid"],
"map", a.amiEvents)
"map", spew.Sdump(a.amiEvents))
}

if elem, ok := a.amiEvents.Inbound[CallUID(m["Uniqueid"])]; ok {
// change call status
elem.Event = "INBOUND_CALL_END"
elem.EventCode = EndInboundCall
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"])
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"], a.logger)
a.amiEvents.Inbound[CallUID(m["Uniqueid"])] = elem
// send data
a.sendDataToWebhook(m["Uniqueid"], inbound)
Expand All @@ -105,12 +106,12 @@ func (a *Adapter) hangupHandler() {
"direction", "inbound",
"caller_id", m["CallerIDNum"],
"call_id", m["Uniqueid"])
a.logger.Debug("Hangup event registered", "event", "INBOUND_CALL_END", "direction", "inbound", "event", m)
a.logger.Debug("Hangup event registered", "event", "INBOUND_CALL_END", "direction", "inbound", "event", spew.Sdump(m))
a.logger.Debug("Call event deleted from map",
"event", "INBOUND_CALL_END",
"direction", "inbound",
"call_id", m["Uniqueid"],
"map", a.amiEvents)
"map", spew.Sdump(a.amiEvents))
}
}); err != nil {
a.logger.Error("Could not register handler", "handler", "HANGUP")
Expand All @@ -126,13 +127,13 @@ func (a *Adapter) newStateHandler() {
case "4":
elem.Event = "RINGING"
elem.EventCode = Ringing
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"])
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"], a.logger)
a.amiEvents.Outbound[CallUID(m["Uniqueid"])] = elem

a.logger.Debug("Call state changed", "event", "RINGING",
"direction", "outbound", "event", m)
"direction", "outbound", "event", spew.Sdump(m))
a.logger.Debug("Events map", "event", "RINGING",
"direction", "outbound", "map", a.amiEvents)
"direction", "outbound", "map", spew.Sdump(a.amiEvents))
a.logger.Info("Call state changed", "event", "RINGING",
"direction", "outbound",
"caller_id", m["CallerIDNum"],
Expand All @@ -144,15 +145,15 @@ func (a *Adapter) newStateHandler() {
case "6":
elem.Event = "ANSWERED"
elem.EventCode = Answered
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"])
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"], a.logger)
elem.CallerIDName = m["CallerIDName"]
elem.Recording = a.fetchRecordingFullPath(m["Channel"])
a.amiEvents.Outbound[CallUID(m["Uniqueid"])] = elem

a.logger.Debug("Call state changed", "event", "ANSWERED",
"direction", "outbound", "event", m)
"direction", "outbound", "event", spew.Sdump(m))
a.logger.Debug("Events map", "event", "ANSWERED",
"direction", "outbound", "map", a.amiEvents)
"direction", "outbound", "map", spew.Sdump(a.amiEvents))
a.logger.Info("Call state changed", "event", "ANSWERED",
"direction", "outbound",
"caller_id", m["CallerIDNum"],
Expand All @@ -168,13 +169,13 @@ func (a *Adapter) newStateHandler() {
case "4":
elem.Event = "RINGING"
elem.EventCode = Ringing
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"])
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"], a.logger)
a.amiEvents.Inbound[CallUID(m["Uniqueid"])] = elem

a.logger.Debug("Call state changed", "event", "RINGING",
"direction", "inbound", "event", m)
"direction", "inbound", "event", spew.Sdump(m))
a.logger.Debug("Events map", "event", "RINGING",
"direction", "inbound", "map", a.amiEvents)
"direction", "inbound", "map", spew.Sdump(a.amiEvents))
a.logger.Info("Call state changed", "event", "RINGING",
"direction", "inbound",
"caller_id", m["CallerIDNum"],
Expand All @@ -186,15 +187,15 @@ func (a *Adapter) newStateHandler() {
case "6":
elem.Event = "ANSWERED"
elem.EventCode = Answered
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"])
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"], a.logger)
elem.CallerIDName = m["CallerIDName"]
elem.Recording = a.fetchRecordingFullPath(m["Channel"])
a.amiEvents.Inbound[CallUID(m["Uniqueid"])] = elem

a.logger.Debug("Call state changed", "event", "ANSWERED",
"direction", "inbound", "event", m)
"direction", "inbound", "event", spew.Sdump(m))
a.logger.Debug("Events map", "event", "ANSWERED",
"direction", "inbound", "map", a.amiEvents)
"direction", "inbound", "map", spew.Sdump(a.amiEvents))
a.logger.Info("Call state changed", "event", "ANSWERED",
"direction", "inbound",
"caller_id", m["CallerIDNum"],
Expand Down Expand Up @@ -232,14 +233,14 @@ func (a *Adapter) agentConnectEvent() {
elem.Queue.AgentNumber = strings.Split(strings.Split(m["DestChannel"], "@")[0], "/")[1]
elem.Event = "AGENT_CONNECT"
elem.EventCode = AgentConnect
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"])
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"], a.logger)
elem.Recording = a.fetchRecordingFullPath(m["Channel"])
a.amiEvents.Inbound[CallUID(m["Uniqueid"])] = elem

a.logger.Debug("Call state changed", "event", "AGENT_CONNECT",
"direction", "inbound", "event", m)
"direction", "inbound", "event", spew.Sdump(m))
a.logger.Debug("Events map", "event", "AGENT_CONNECT",
"direction", "inbound", "map", a.amiEvents)
"direction", "inbound", "map", spew.Sdump(a.amiEvents))
a.logger.Info("Call state changed", "event", "AGENT_CONNECT",
"direction", "inbound",
"caller_id", m["CallerIDNum"],
Expand All @@ -263,13 +264,13 @@ func (a *Adapter) agentComplete() {
elem.Queue.TalkTime = m["TalkTime"]
elem.Event = "AGENT_COMPLETE"
elem.EventCode = AgentComplete
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"])
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"], a.logger)
a.amiEvents.Inbound[CallUID(m["Uniqueid"])] = elem

a.logger.Debug("Call state changed", "event", "AGENT_COMPLETE",
"direction", "inbound", "event", m)
"direction", "inbound", "event", spew.Sdump(m))
a.logger.Debug("Events map", "event", "AGENT_COMPLETE",
"direction", "inbound", "map", a.amiEvents)
"direction", "inbound", "map", spew.Sdump(a.amiEvents))
a.logger.Info("Call state changed", "event", "AGENT_COMPLETE",
"direction", "inbound",
"caller_id", m["CallerIDNum"],
Expand All @@ -292,13 +293,13 @@ func (a *Adapter) queueAbandon() {
elem.Queue.Queue = m["Queue"]
elem.Event = "QUEUE_ABANDON"
elem.EventCode = QueueAbandon
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"])
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"], a.logger)
a.amiEvents.Inbound[CallUID(m["Uniqueid"])] = elem

a.logger.Debug("Call state changed", "event", "QUEUE_ABANDON",
"direction", "inbound", "event", m)
"direction", "inbound", "event", spew.Sdump(m))
a.logger.Debug("Events map", "event", "QUEUE_ABANDON",
"direction", "inbound", "map", a.amiEvents)
"direction", "inbound", "map", spew.Sdump(a.amiEvents))
a.logger.Info("Call state changed", "event", "QUEUE_ABANDON",
"direction", "inbound",
"caller_id", m["CallerIDNum"],
Expand Down Expand Up @@ -358,13 +359,13 @@ func (a *Adapter) queueJoinHandler(m map[string]string) {
elem.Queue.Count = m["Count"]
elem.Queue.Position = m["Position"]
elem.Queue.Queue = m["Queue"]
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"])
elem.Timestamp = convertTimeToUnixTime(m["TimeReceived"], a.logger)
a.amiEvents.Inbound[CallUID(m["Uniqueid"])] = elem

a.logger.Debug("Call state changed", "event", "QUEUE_JOIN",
"direction", "inbound", "event", m)
"direction", "inbound", "event", spew.Sdump(m))
a.logger.Debug("Events map", "event", "QUEUE_JOIN",
"direction", "inbound", "map", a.amiEvents)
"direction", "inbound", "map", spew.Sdump(a.amiEvents))
a.logger.Info("Call state changed", "event", "QUEUE_JOIN",
"direction", "inbound",
"caller_id", m["CallerIDNum"],
Expand Down
5 changes: 3 additions & 2 deletions framework/adapters/left/amihandlers/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,10 @@ func (a *Adapter) sendDataToWebhook(uid string, way direction) {
}
}

func convertTimeToUnixTime(timeString string) int64 {
timest, err := time.Parse("2006-01-02T15:04:05.999999-07:00", timeString)
func convertTimeToUnixTime(timeString string, logger hclog.Logger) int64 {
timest, err := time.Parse(time.RFC3339Nano, timeString)
if err != nil {
logger.Error("Could not parse timestamp", "err", err)
return 0
}

Expand Down
1 change: 1 addition & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ go 1.18
require github.com/ivahaev/amigo v0.1.10

require (
github.com/davecgh/go-spew v1.1.1
github.com/hashicorp/go-hclog v1.3.1
gopkg.in/yaml.v3 v3.0.1
)
Expand Down

0 comments on commit 548de09

Please sign in to comment.