UNPKG

sinch-rtc

Version:

RTC JavaScript/Web SDK

73 lines 4.33 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.CallReporter = void 0; const api_1 = require("../../ocra/api"); const utils_1 = require("../../utils"); const CallReportUtils_1 = require("./CallReportUtils"); class CallReporter { constructor(userId, instance, apiClient) { this.userId = userId; this.instance = instance; this.apiClient = apiClient; } createCallReport(call, rtcStatisticsReport, connectionInfos, callQualityData, clientEvents, mxpEventLog) { var _a; const details = call.details; const reportedAcceptingDuration = (_a = details === null || details === void 0 ? void 0 : details.acceptingDuration) !== null && _a !== void 0 ? _a : 0; return { reportId: utils_1.StringHelper.UUID(), callId: call.id, userId: this.userId, result: CallReportUtils_1.CallReportUtils.getCallResult(call), errors: CallReportUtils_1.CallReportUtils.getClientErrors(details.error), from: CallReportUtils_1.CallReportUtils.getCallOrigin(call, this.userId), to: CallReportUtils_1.CallReportUtils.getCallDestination(call, this.userId), direction: CallReportUtils_1.CallReportUtils.getCallReportDirection(call), instance: CallReportUtils_1.CallReportUtils.getCallReportInstance(this.instance), duration: CallReportUtils_1.CallReportUtils.getDurationInSeconds(details.duration), setupDuration: CallReportUtils_1.CallReportUtils.getDurationInSeconds(details.setupDuration), notifyingDuration: CallReportUtils_1.CallReportUtils.getDurationInSeconds(details.notifyingDuration), ringingDuration: CallReportUtils_1.CallReportUtils.getDurationInSeconds(details.ringingDuration), acceptingDuration: CallReportUtils_1.CallReportUtils.getDurationInSeconds(reportedAcceptingDuration), connectingDuration: CallReportUtils_1.CallReportUtils.getDurationInSeconds(details.connectingDuration), hadAudioStreams: details.hadAudioStream, hadVideoStreams: details.hadVideoStream, requestedVideo: details.requestedVideo, requestedAudio: details.requestedAudio, localDomain: api_1.Domain.Mxp, remoteDomain: CallReportUtils_1.CallReportUtils.getRemoteDomain(call), startTime: details.startedTime, connectionInfo: CallReportUtils_1.CallReportUtils.filterSubsequentSameConnectionInfos(connectionInfos), primaryLocalIceCandidate: CallReportUtils_1.CallReportUtils.getPrimaryIceCandidate({ connectionInfos: connectionInfos, isLocal: true, }), primaryRemoteIceCandidate: CallReportUtils_1.CallReportUtils.getPrimaryIceCandidate({ connectionInfos: connectionInfos, isLocal: false, }), publicCallHeaders: call.headers, rtcStatisticsReport: rtcStatisticsReport, clientEvents: clientEvents, mxpEventLog: mxpEventLog, callQuality: callQualityData, }; } submitCallReport(call, rtcStatisticsReport, connectionInfos, callQualityData, clientEvents, mxpEventLog) { return __awaiter(this, void 0, void 0, function* () { const callReport = this.createCallReport(call, rtcStatisticsReport, connectionInfos, callQualityData, clientEvents, mxpEventLog); yield this.apiClient.createCallReport({ callReport }); }); } } exports.CallReporter = CallReporter; //# sourceMappingURL=CallReporter.js.map