Compare commits

...
4 Commits
3 changed files with 124 additions and 124 deletions

No files matched your search

+1
View File
@@ -144,6 +144,7 @@ type CallStat struct {
FirstLanguageId int FirstLanguageId int
LastLanguageId int LastLanguageId int
FirstInterpreter string FirstInterpreter string
UtsStartTime *time.Time
} }
func (CallStat) TableName() string { func (CallStat) TableName() string {
+2 -1
View File
@@ -27,9 +27,10 @@ type AnalyticsConversationWithAttributes struct {
OriginatingDirection string `json:"originatingDirection"` OriginatingDirection string `json:"originatingDirection"`
Participants []struct { Participants []struct {
ExternalContactId string `json:"externalContactId"` ExternalContactId string `json:"externalContactId"`
ParticipantId string `json:"id"` ParticipantId string `json:"participantId"`
ParticipantName string `json:"participantName"` ParticipantName string `json:"participantName"`
Purpose string `json:"purpose"` Purpose string `json:"purpose"`
UserId string `json:"userId"`
Sessions []struct { Sessions []struct {
ANI string `json:"ani"` ANI string `json:"ani"`
Direction string `json:"direction"` Direction string `json:"direction"`
+121 -123
View File
@@ -11,7 +11,6 @@ import (
func ExtractWithoutAttributes(base models.AnalyticsConversationWithoutAttributes) (models.DBConversation, []models.DBParticipant, []models.DBSession, []models.DBSegment) { func ExtractWithoutAttributes(base models.AnalyticsConversationWithoutAttributes) (models.DBConversation, []models.DBParticipant, []models.DBSession, []models.DBSegment) {
var startTime *time.Time var startTime *time.Time
parsedStartTime, err := time.Parse(time.RFC3339, base.ConversationStart) parsedStartTime, err := time.Parse(time.RFC3339, base.ConversationStart)
if err != nil { if err != nil {
startTime = nil startTime = nil
@@ -262,125 +261,124 @@ func ExtractLive(base models.NotificationConversationWithAttributes) (models.DBC
} }
//func ExtractWithAttributes(base models.AnalyticsConversationWithAttributes) (models.DBConversation, []models.DBParticipant, []models.DBSession, []models.DBSegment) { func ExtractWithAttributes(base models.AnalyticsConversationWithAttributes) (models.DBConversation, []models.DBParticipant, []models.DBSession, []models.DBSegment) {
//
// var startTime *time.Time var startTime *time.Time
// parsedStartTime, err := time.Parse(time.RFC3339, base.ConversationStart) parsedStartTime, err := time.Parse(time.RFC3339, base.ConversationStart)
// if err != nil { if err != nil {
// startTime = nil startTime = nil
// } else { } else {
// startTime = &parsedStartTime startTime = &parsedStartTime
// } }
//
// var endTime *time.Time var endTime *time.Time
// parsedEndTime, err := time.Parse(time.RFC3339, base.ConversationEnd) parsedEndTime, err := time.Parse(time.RFC3339, base.ConversationEnd)
// if err != nil { if err != nil {
// endTime = nil endTime = nil
// } else { } else {
// endTime = &parsedEndTime endTime = &parsedEndTime
// } }
//
// divisionIdsBytes, err := json.Marshal(base.DivisionIds) divisionIdsBytes, err := json.Marshal(base.DivisionIds)
// if err != nil { if err != nil {
// divisionIdsBytes = nil divisionIdsBytes = nil
// } }
// divisionIdsBytesStr := string(divisionIdsBytes) divisionIdsBytesStr := string(divisionIdsBytes)
//
// conversation := models.DBConversation{ conversation := models.DBConversation{
// DivisionIds: &divisionIdsBytesStr, DivisionIds: &divisionIdsBytesStr,
// End: endTime, End: endTime,
// Id: base.ConversationId, Id: base.ConversationId,
// MinMos: &base.MediaStatsMinConversationMos, MinMos: &base.MediaStatsMinConversationMos,
// MinRFactor: &base.MediaStatsMinConversationRFactor, MinRFactor: &base.MediaStatsMinConversationRFactor,
// OriginatingDirection: &base.OriginatingDirection, OriginatingDirection: &base.OriginatingDirection,
// Start: startTime, Start: startTime,
// } }
// var participants []models.DBParticipant var participants []models.DBParticipant
// var sessions []models.DBSession var sessions []models.DBSession
// var segments []models.DBSegment var segments []models.DBSegment
//
// for _, p := range base.Participants { for _, p := range base.Participants {
//
// attributesBytes, err := json.Marshal(p.Attributes) attributesBytes, err := json.Marshal(p.Attributes)
// if err != nil { if err != nil {
// attributesBytes = nil attributesBytes = nil
// } }
// attributesBytesStr := string(attributesBytes) attributesBytesStr := string(attributesBytes)
//
// participant := models.DBParticipant{ participant := models.DBParticipant{
// ConnectedTime: nil, ConversationId: base.ConversationId,
// ConversationId: base.ConversationId, ExternalContactId: &p.ExternalContactId,
// EndTime: nil, Id: p.ParticipantId,
// ExternalContactId: &p.ExternalContactId, Name: &p.ParticipantName,
// Id: p.ParticipantId, Purpose: &p.Purpose,
// Name: &p.ParticipantName, Attributes: &attributesBytesStr,
// Purpose: &p.Purpose, UserId: &p.UserId,
// Attributes: &attributesBytesStr, }
// } participants = append(participants, participant)
// participants = append(participants, participant)
// for _, sess := range p.Sessions {
// for _, sess := range p.Sessions { mediaEndpointStatsBytes, err := json.Marshal(sess.MediaEndpointStats)
// mediaEndpointStatsBytes, err := json.Marshal(sess.MediaEndpointStats) if err != nil {
// if err != nil { mediaEndpointStatsBytes = nil
// mediaEndpointStatsBytes = nil }
// }
// metricsBytes, err := json.Marshal(sess.Metrics)
// metricsBytes, err := json.Marshal(sess.Metrics) if err != nil {
// if err != nil { metricsBytes = nil
// metricsBytes = nil }
// }
// session := models.DBSession{
// session := models.DBSession{ Ani: sess.ANI,
// Ani: sess.ANI, Direction: sess.Direction,
// Direction: sess.Direction, Dnis: sess.DNIS,
// Dnis: sess.DNIS, EdgeId: sess.EdgeId,
// EdgeId: sess.EdgeId, Id: fmt.Sprintf("%s_%s", p.ParticipantId, sess.SessionId),
// Id: fmt.Sprintf("%s_%s", p.ParticipantId, sess.SessionId), MediaEndpointStats: string(mediaEndpointStatsBytes),
// MediaEndpointStats: string(mediaEndpointStatsBytes), MediaType: sess.MediaType,
// MediaType: sess.MediaType, Metrics: string(metricsBytes),
// Metrics: string(metricsBytes), ParticipantId: p.ParticipantId,
// ParticipantId: p.ParticipantId, ProtocolCallId: sess.ProtocolCallId,
// ProtocolCallId: sess.ProtocolCallId, Provider: sess.Provider,
// Provider: sess.Provider, Recording: sess.Recording,
// Recording: sess.Recording, RemoteNameDisplayable: sess.RemoteNameDisplayable,
// RemoteNameDisplayable: sess.RemoteNameDisplayable, SessionDnis: sess.SessionDnis,
// SessionDnis: sess.SessionDnis, }
// } sessions = append(sessions, session)
// sessions = append(sessions, session)
// for idx, seg := range sess.Segments {
// for _, seg := range sess.Segments {
// segmentStart, err := time.Parse(time.RFC3339, seg.SegmentStart)
// segmentStart, err := time.Parse(time.RFC3339, seg.SegmentStart) if err != nil {
// if err != nil { segmentStart = time.Now()
// segmentStart = time.Now() }
// }
// segmentEnd, err := time.Parse(time.RFC3339, seg.SegmentEnd)
// segmentEnd, err := time.Parse(time.RFC3339, seg.SegmentEnd) if err != nil {
// if err != nil { segmentEnd = time.Now()
// segmentEnd = time.Now() }
// }
// q850ResponseCodesBytes, err := json.Marshal(seg.Q850ResponseCodes)
// q850ResponseCodesBytes, err := json.Marshal(seg.Q850ResponseCodes) if err != nil {
// if err != nil { q850ResponseCodesBytes = nil
// q850ResponseCodesBytes = nil }
// }
// segment := models.DBSegment{
// segment := models.DBSegment{ Id: fmt.Sprintf("%s_%s_%d", session.Id, seg.SegmentType, idx),
// Id: fmt.Sprintf("%s_%s", session.Id, seg.SegmentType), Conference: seg.Conference,
// Conference: seg.Conference, DisconnectType: seg.DisconnectType,
// DisconnectType: seg.DisconnectType, Q850ResponseCodes: string(q850ResponseCodesBytes),
// Q850ResponseCodes: string(q850ResponseCodesBytes), SegmentEnd: segmentEnd,
// SegmentEnd: segmentEnd, SegmentStart: segmentStart,
// SegmentStart: segmentStart, SegmentType: seg.SegmentType,
// SegmentType: seg.SegmentType, SessionId: session.Id,
// SessionId: sess.SessionId, WrapUpCode: seg.WrapUpCode,
// WrapUpCode: seg.WrapUpCode, }
// }
// segments = append(segments, segment)
// segments = append(segments, segment) }
// } }
// } }
// }
// return conversation, participants, sessions, segments
// return conversation, participants, sessions, segments }
//}