@webex/calling 3.5.0-next.19 → 3.5.0-next.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CallingClient/calling/call.js +383 -329
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +3 -3
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/module/CallingClient/calling/call.js +23 -2
- package/dist/types/CallingClient/calling/call.d.ts +2 -0
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -2,8 +2,9 @@ import { MediaConnectionEventNames, LocalStreamEventNames, RoapMediaConnection,
|
|
|
2
2
|
import { createMachine, interpret } from 'xstate';
|
|
3
3
|
import { v4 as uuid } from 'uuid';
|
|
4
4
|
import { EffectEvent } from '@webex/web-media-effects';
|
|
5
|
+
import { RtcMetrics } from '@webex/internal-plugin-metrics';
|
|
5
6
|
import { ERROR_LAYER, ERROR_TYPE } from '../../Errors/types';
|
|
6
|
-
import { handleCallErrors, parseMediaQualityStatistics } from '../../common/Utils';
|
|
7
|
+
import { handleCallErrors, parseMediaQualityStatistics, serviceErrorCodeHandler, } from '../../common/Utils';
|
|
7
8
|
import { ALLOWED_SERVICES, CallDirection, HTTP_METHODS, } from '../../common/types';
|
|
8
9
|
import { createCallError } from '../../Errors/catalog/CallError';
|
|
9
10
|
import { CALL_ENDPOINT_RESOURCE, CALL_FILE, CALL_HOLD_SERVICE, CALL_STATUS_RESOURCE, CALL_TRANSFER_SERVICE, CALLING_USER_AGENT, CALLS_ENDPOINT_RESOURCE, CISCO_DEVICE_URL, DEFAULT_LOCAL_CALL_ID, DEFAULT_SESSION_TIMER, DEVICES_ENDPOINT_RESOURCE, HOLD_ENDPOINT, ICE_CANDIDATES_TIMEOUT, INITIAL_SEQ_NUMBER, MEDIA_ENDPOINT_RESOURCE, NOISE_REDUCTION_EFFECT, RESUME_ENDPOINT, SPARK_USER_AGENT, SUPPLEMENTARY_SERVICES_TIMEOUT, TRANSFER_ENDPOINT, } from '../constants';
|
|
@@ -49,6 +50,7 @@ export class Call extends Eventing {
|
|
|
49
50
|
mediaNegotiationCompleted;
|
|
50
51
|
receivedRoapOKSeq;
|
|
51
52
|
localAudioStream;
|
|
53
|
+
rtcMetrics;
|
|
52
54
|
isMuted() {
|
|
53
55
|
return this.muted;
|
|
54
56
|
}
|
|
@@ -98,6 +100,7 @@ export class Call extends Eventing {
|
|
|
98
100
|
});
|
|
99
101
|
this.remoteRoapMessage = null;
|
|
100
102
|
this.disconnectReason = { code: DisconnectCode.NORMAL, cause: DisconnectCause.NORMAL };
|
|
103
|
+
this.rtcMetrics = new RtcMetrics(this.webex, { callId: this.callId }, this.correlationId);
|
|
101
104
|
const callMachine = createMachine({
|
|
102
105
|
schema: {
|
|
103
106
|
context: {},
|
|
@@ -1219,6 +1222,23 @@ export class Call extends Eventing {
|
|
|
1219
1222
|
this.mediaConnection.roapMessageReceived(message);
|
|
1220
1223
|
}
|
|
1221
1224
|
}
|
|
1225
|
+
forceSendStatsReport = async ({ callFrom }) => {
|
|
1226
|
+
const loggerContext = {
|
|
1227
|
+
file: CALL_FILE,
|
|
1228
|
+
method: this.forceSendStatsReport.name,
|
|
1229
|
+
};
|
|
1230
|
+
try {
|
|
1231
|
+
await this.mediaConnection.forceRtcMetricsSend();
|
|
1232
|
+
log.info(`Successfully uploaded available webrtc telemetry statistics`, loggerContext);
|
|
1233
|
+
log.info(`callFrom: ${callFrom}`, loggerContext);
|
|
1234
|
+
}
|
|
1235
|
+
catch (error) {
|
|
1236
|
+
const errorInfo = error;
|
|
1237
|
+
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
1238
|
+
const errorLog = new Error(`Failed to upload webrtc telemetry statistics. ${errorStatus}`);
|
|
1239
|
+
log.error(errorLog, loggerContext);
|
|
1240
|
+
}
|
|
1241
|
+
};
|
|
1222
1242
|
initMediaConnection(localAudioTrack, debugId) {
|
|
1223
1243
|
const mediaConnection = new RoapMediaConnection({
|
|
1224
1244
|
skipInactiveTransceivers: true,
|
|
@@ -1236,7 +1256,7 @@ export class Call extends Eventing {
|
|
|
1236
1256
|
video: 'inactive',
|
|
1237
1257
|
screenShareVideo: 'inactive',
|
|
1238
1258
|
},
|
|
1239
|
-
}, debugId || `WebexCallSDK-${this.correlationId}
|
|
1259
|
+
}, debugId || `WebexCallSDK-${this.correlationId}`, (data) => this.rtcMetrics.addMetrics(data), () => this.rtcMetrics.closeMetrics(), () => this.rtcMetrics.sendMetricsInQueue());
|
|
1240
1260
|
this.mediaConnection = mediaConnection;
|
|
1241
1261
|
}
|
|
1242
1262
|
getDirection = () => this.direction;
|
|
@@ -1250,6 +1270,7 @@ export class Call extends Eventing {
|
|
|
1250
1270
|
}
|
|
1251
1271
|
setCallId = (callId) => {
|
|
1252
1272
|
this.callId = callId;
|
|
1273
|
+
this.rtcMetrics.updateCallId(callId);
|
|
1253
1274
|
log.info(`Setting callId : ${this.callId} for correlationId: ${this.correlationId}`, {
|
|
1254
1275
|
file: CALL_FILE,
|
|
1255
1276
|
method: this.setCallId.name,
|
|
@@ -37,6 +37,7 @@ export declare class Call extends Eventing<CallEventTypes> implements ICall {
|
|
|
37
37
|
private mediaNegotiationCompleted;
|
|
38
38
|
private receivedRoapOKSeq;
|
|
39
39
|
private localAudioStream?;
|
|
40
|
+
private rtcMetrics;
|
|
40
41
|
isMuted(): boolean;
|
|
41
42
|
isConnected(): boolean;
|
|
42
43
|
isHeld(): boolean;
|
|
@@ -61,6 +62,7 @@ export declare class Call extends Eventing<CallEventTypes> implements ICall {
|
|
|
61
62
|
private handleOutgoingRoapAnswer;
|
|
62
63
|
private handleIncomingRoapOffer;
|
|
63
64
|
private handleIncomingRoapAnswer;
|
|
65
|
+
private forceSendStatsReport;
|
|
64
66
|
private initMediaConnection;
|
|
65
67
|
getDirection: () => CallDirection;
|
|
66
68
|
getCallId: () => CallId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../../../src/CallingClient/calling/call.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EAGtB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../../../src/CallingClient/calling/call.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@types/platform": "1.3.4",
|
|
40
40
|
"@webex/internal-media-core": "2.11.3",
|
|
41
|
-
"@webex/media-helpers": "3.5.0-next.
|
|
41
|
+
"@webex/media-helpers": "3.5.0-next.18",
|
|
42
42
|
"async-mutex": "0.4.0",
|
|
43
43
|
"buffer": "6.0.3",
|
|
44
44
|
"jest-html-reporters": "3.0.11",
|
|
@@ -129,5 +129,5 @@
|
|
|
129
129
|
"staticpath": "docs",
|
|
130
130
|
"noprompt": true
|
|
131
131
|
},
|
|
132
|
-
"version": "3.5.0-next.
|
|
132
|
+
"version": "3.5.0-next.20"
|
|
133
133
|
}
|