@webex/plugin-meetings 2.60.1-next.13 → 2.60.1-next.15
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/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/mediaQualityMetrics/config.d.ts +103 -99
- package/dist/mediaQualityMetrics/config.js +133 -129
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/index.d.ts +0 -1
- package/dist/meeting/index.js +7 -15
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/request.d.ts +2 -0
- package/dist/meeting/request.js +4 -0
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/voicea-meeting.d.ts +0 -4
- package/dist/meeting/voicea-meeting.js +26 -58
- package/dist/meeting/voicea-meeting.js.map +1 -1
- package/dist/meetings/index.js +19 -0
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/util.js +1 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/metrics/constants.d.ts +2 -0
- package/dist/metrics/constants.js +3 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/reachability/index.js +14 -20
- package/dist/reachability/index.js.map +1 -1
- package/dist/reconnection-manager/index.js +63 -43
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/roap/turnDiscovery.d.ts +18 -2
- package/dist/roap/turnDiscovery.js +163 -69
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/index.d.ts +7 -0
- package/dist/rtcMetrics/index.js +38 -1
- package/dist/rtcMetrics/index.js.map +1 -1
- package/dist/statsAnalyzer/index.js +135 -23
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +28 -4
- package/dist/statsAnalyzer/mqaUtil.js +278 -148
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/webinar/index.js +1 -1
- package/package.json +21 -21
- package/src/mediaQualityMetrics/config.ts +107 -107
- package/src/meeting/index.ts +5 -18
- package/src/meeting/request.ts +6 -0
- package/src/meeting/voicea-meeting.ts +26 -65
- package/src/meetings/index.ts +22 -0
- package/src/meetings/util.ts +1 -1
- package/src/metrics/constants.ts +2 -0
- package/src/reachability/index.ts +0 -6
- package/src/reconnection-manager/index.ts +18 -7
- package/src/roap/turnDiscovery.ts +100 -24
- package/src/rtcMetrics/index.ts +43 -1
- package/src/statsAnalyzer/index.ts +158 -24
- package/src/statsAnalyzer/mqaUtil.ts +302 -154
- package/test/unit/spec/meeting/index.js +195 -4
- package/test/unit/spec/meeting/request.js +2 -0
- package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
- package/test/unit/spec/meetings/utils.js +35 -8
- package/test/unit/spec/reachability/index.ts +74 -0
- package/test/unit/spec/reconnection-manager/index.js +36 -1
- package/test/unit/spec/roap/turnDiscovery.ts +326 -76
- package/test/unit/spec/rtcMetrics/index.ts +32 -3
- package/test/unit/spec/stats-analyzer/index.js +439 -1
- package/test/utils/webex-test-users.js +12 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_internalPluginMetrics","require","
|
|
1
|
+
{"version":3,"names":["_internalPluginMetrics","require","_uuid","_interopRequireDefault","_constants","parseJsonPayload","payload","JSON","parse","_","RtcMetrics","exports","default","webex","meetingId","correlationId","_classCallCheck2","_defineProperty2","intervalId","window","setInterval","sendMetricsInQueue","bind","setNewConnectionId","setTimeout","_createClass2","key","value","metricsQueue","length","sendMetrics","addMetrics","data","name","map","anonymizeIp","push","parsedPayload","e","console","error","closeMetrics","clearInterval","stats","type","ip","CallDiagnosticUtils","anonymizeIPAddress","undefined","address","relatedAddress","_stringify","connectionId","uuid","v4","request","method","service","resource","headers","appId","RTC_METRICS","APP_ID","body","metrics","version","userId","internal","device"],"sources":["index.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport {CallDiagnosticUtils} from '@webex/internal-plugin-metrics';\nimport uuid from 'uuid';\nimport RTC_METRICS from './constants';\n\nconst parseJsonPayload = (payload: any[]): any | null => {\n try {\n if (payload && payload[0]) {\n return JSON.parse(payload[0]);\n }\n\n return null;\n } catch (_) {\n return null;\n }\n};\n\n/**\n * Rtc Metrics\n */\nexport default class RtcMetrics {\n /**\n * Array of MetricData items to be sent to the metrics service.\n */\n metricsQueue = [];\n\n intervalId: number;\n\n webex: any;\n\n meetingId: string;\n\n correlationId: string;\n\n connectionId: string;\n\n /**\n * Initialize the interval.\n *\n * @param {object} webex - The main `webex` object.\n * @param {string} meetingId - The meeting id.\n * @param {string} correlationId - The correlation id.\n */\n constructor(webex, meetingId, correlationId) {\n // `window` is used to prevent typescript from returning a NodeJS.Timer.\n this.intervalId = window.setInterval(this.sendMetricsInQueue.bind(this), 30 * 1000);\n this.meetingId = meetingId;\n this.webex = webex;\n this.correlationId = correlationId;\n this.setNewConnectionId();\n // Send the first set of metrics at 5 seconds in the case of a user leaving the call shortly after joining.\n setTimeout(this.sendMetricsInQueue.bind(this), 5 * 1000);\n }\n\n /**\n * Check to see if the metrics queue has any items.\n *\n * @returns {void}\n */\n public sendMetricsInQueue() {\n if (this.metricsQueue.length) {\n this.sendMetrics();\n this.metricsQueue = [];\n }\n }\n\n /**\n * Add metrics items to the metrics queue.\n *\n * @param {object} data - An object with a payload array of metrics items.\n *\n * @returns {void}\n */\n addMetrics(data) {\n if (data.payload.length) {\n if (data.name === 'stats-report') {\n data.payload = data.payload.map(this.anonymizeIp);\n }\n\n this.metricsQueue.push(data);\n\n try {\n // If a connection fails, send the rest of the metrics in queue and get a new connection id.\n const parsedPayload = parseJsonPayload(data.payload);\n if (\n data.name === 'onconnectionstatechange' &&\n parsedPayload &&\n parsedPayload.value === 'failed'\n ) {\n this.sendMetricsInQueue();\n this.setNewConnectionId();\n }\n } catch (e) {\n console.error(e);\n }\n }\n }\n\n /**\n * Clear the metrics interval.\n *\n * @returns {void}\n */\n closeMetrics() {\n this.sendMetricsInQueue();\n clearInterval(this.intervalId);\n }\n\n /**\n * Anonymize IP addresses.\n *\n * @param {array} stats - An RTCStatsReport organized into an array of strings.\n * @returns {string}\n */\n anonymizeIp(stats: string): string {\n const data = JSON.parse(stats);\n // on local and remote candidates, anonymize the last 4 bits.\n if (data.type === 'local-candidate' || data.type === 'remote-candidate') {\n data.ip = CallDiagnosticUtils.anonymizeIPAddress(data.ip) || undefined;\n data.address = CallDiagnosticUtils.anonymizeIPAddress(data.address) || undefined;\n data.relatedAddress =\n CallDiagnosticUtils.anonymizeIPAddress(data.relatedAddress) || undefined;\n }\n\n return JSON.stringify(data);\n }\n\n /**\n * Set a new connection id.\n *\n * @returns {void}\n */\n private setNewConnectionId() {\n this.connectionId = uuid.v4();\n }\n\n /**\n * Send metrics to the metrics service.\n *\n * @returns {void}\n */\n private sendMetrics() {\n this.webex.request({\n method: 'POST',\n service: 'unifiedTelemetry',\n resource: 'metric/v2',\n headers: {\n type: 'webrtcMedia',\n appId: RTC_METRICS.APP_ID,\n },\n body: {\n metrics: [\n {\n type: 'webrtc',\n version: '1.1.0',\n userId: this.webex.internal.device.userId,\n meetingId: this.meetingId,\n correlationId: this.correlationId,\n connectionId: this.connectionId,\n data: this.metricsQueue,\n },\n ],\n },\n });\n }\n}\n"],"mappings":"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"}
|
|
@@ -295,6 +295,8 @@ var StatsAnalyzer = exports.StatsAnalyzer = /*#__PURE__*/function (_EventsScope)
|
|
|
295
295
|
value: function sendMqaData() {
|
|
296
296
|
var _this3 = this;
|
|
297
297
|
var newMqa = (0, _lodash.cloneDeep)(_config.emptyMqaInterval);
|
|
298
|
+
|
|
299
|
+
// Fill in empty stats items for lastMqaDataSent
|
|
298
300
|
(0, _keys.default)(this.statsResults).forEach(function (mediaType) {
|
|
299
301
|
if (!_this3.lastMqaDataSent[mediaType]) {
|
|
300
302
|
_this3.lastMqaDataSent[mediaType] = {};
|
|
@@ -305,45 +307,155 @@ var StatsAnalyzer = exports.StatsAnalyzer = /*#__PURE__*/function (_EventsScope)
|
|
|
305
307
|
if (!_this3.lastMqaDataSent[mediaType].recv && mediaType.includes('-recv')) {
|
|
306
308
|
_this3.lastMqaDataSent[mediaType].recv = {};
|
|
307
309
|
}
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
310
|
+
});
|
|
311
|
+
|
|
312
|
+
// Create stats the first level, totals for senders and receivers
|
|
313
|
+
var audioSender = (0, _lodash.cloneDeep)(_config.emptyAudioTransmit);
|
|
314
|
+
var audioShareSender = (0, _lodash.cloneDeep)(_config.emptyAudioTransmit);
|
|
315
|
+
var audioReceiver = (0, _lodash.cloneDeep)(_config.emptyAudioReceive);
|
|
316
|
+
var audioShareReceiver = (0, _lodash.cloneDeep)(_config.emptyAudioReceive);
|
|
317
|
+
var videoSender = (0, _lodash.cloneDeep)(_config.emptyVideoTransmit);
|
|
318
|
+
var videoShareSender = (0, _lodash.cloneDeep)(_config.emptyVideoTransmit);
|
|
319
|
+
var videoReceiver = (0, _lodash.cloneDeep)(_config.emptyVideoReceive);
|
|
320
|
+
var videoShareReceiver = (0, _lodash.cloneDeep)(_config.emptyVideoReceive);
|
|
321
|
+
(0, _mqaUtil.getAudioSenderMqa)({
|
|
322
|
+
audioSender: audioSender,
|
|
323
|
+
statsResults: this.statsResults,
|
|
324
|
+
lastMqaDataSent: this.lastMqaDataSent,
|
|
325
|
+
baseMediaType: 'audio-send'
|
|
326
|
+
});
|
|
327
|
+
newMqa.audioTransmit.push(audioSender);
|
|
328
|
+
(0, _mqaUtil.getAudioSenderMqa)({
|
|
329
|
+
audioSender: audioShareSender,
|
|
330
|
+
statsResults: this.statsResults,
|
|
331
|
+
lastMqaDataSent: this.lastMqaDataSent,
|
|
332
|
+
baseMediaType: 'audio-share-send'
|
|
333
|
+
});
|
|
334
|
+
newMqa.audioTransmit.push(audioShareSender);
|
|
335
|
+
(0, _mqaUtil.getAudioReceiverMqa)({
|
|
336
|
+
audioReceiver: audioReceiver,
|
|
337
|
+
statsResults: this.statsResults,
|
|
338
|
+
lastMqaDataSent: this.lastMqaDataSent,
|
|
339
|
+
baseMediaType: 'audio-recv'
|
|
340
|
+
});
|
|
341
|
+
newMqa.audioReceive.push(audioReceiver);
|
|
342
|
+
(0, _mqaUtil.getAudioReceiverMqa)({
|
|
343
|
+
audioReceiver: audioShareReceiver,
|
|
344
|
+
statsResults: this.statsResults,
|
|
345
|
+
lastMqaDataSent: this.lastMqaDataSent,
|
|
346
|
+
baseMediaType: 'audio-share-recv'
|
|
347
|
+
});
|
|
348
|
+
newMqa.audioReceive.push(audioShareReceiver);
|
|
349
|
+
(0, _mqaUtil.getVideoSenderMqa)({
|
|
350
|
+
videoSender: videoSender,
|
|
351
|
+
statsResults: this.statsResults,
|
|
352
|
+
lastMqaDataSent: this.lastMqaDataSent,
|
|
353
|
+
baseMediaType: 'video-send'
|
|
354
|
+
});
|
|
355
|
+
newMqa.videoTransmit.push(videoSender);
|
|
356
|
+
(0, _mqaUtil.getVideoSenderMqa)({
|
|
357
|
+
videoSender: videoShareSender,
|
|
358
|
+
statsResults: this.statsResults,
|
|
359
|
+
lastMqaDataSent: this.lastMqaDataSent,
|
|
360
|
+
baseMediaType: 'video-share-send'
|
|
361
|
+
});
|
|
362
|
+
newMqa.videoTransmit.push(videoShareSender);
|
|
363
|
+
(0, _mqaUtil.getVideoReceiverMqa)({
|
|
364
|
+
videoReceiver: videoReceiver,
|
|
365
|
+
statsResults: this.statsResults,
|
|
366
|
+
lastMqaDataSent: this.lastMqaDataSent,
|
|
367
|
+
baseMediaType: 'video-recv'
|
|
368
|
+
});
|
|
369
|
+
newMqa.videoReceive.push(videoReceiver);
|
|
370
|
+
(0, _mqaUtil.getVideoReceiverMqa)({
|
|
371
|
+
videoReceiver: videoShareReceiver,
|
|
372
|
+
statsResults: this.statsResults,
|
|
373
|
+
lastMqaDataSent: this.lastMqaDataSent,
|
|
374
|
+
baseMediaType: 'video-share-recv'
|
|
375
|
+
});
|
|
376
|
+
newMqa.videoReceive.push(videoShareReceiver);
|
|
377
|
+
|
|
378
|
+
// Add stats for individual streams
|
|
379
|
+
(0, _keys.default)(this.statsResults).forEach(function (mediaType) {
|
|
380
|
+
if (mediaType.includes('audio-send')) {
|
|
381
|
+
var audioSenderStream = (0, _lodash.cloneDeep)(_config.emptyAudioTransmitStream);
|
|
382
|
+
(0, _mqaUtil.getAudioSenderStreamMqa)({
|
|
383
|
+
audioSenderStream: audioSenderStream,
|
|
312
384
|
statsResults: _this3.statsResults,
|
|
313
385
|
lastMqaDataSent: _this3.lastMqaDataSent,
|
|
314
386
|
mediaType: mediaType
|
|
315
387
|
});
|
|
316
|
-
newMqa.audioTransmit.push(
|
|
388
|
+
newMqa.audioTransmit[0].streams.push(audioSenderStream);
|
|
317
389
|
_this3.lastMqaDataSent[mediaType].send = (0, _lodash.cloneDeep)(_this3.statsResults[mediaType].send);
|
|
318
|
-
} else if (mediaType.includes('audio-
|
|
319
|
-
var
|
|
320
|
-
(0, _mqaUtil.
|
|
321
|
-
|
|
390
|
+
} else if (mediaType.includes('audio-share-send')) {
|
|
391
|
+
var _audioSenderStream = (0, _lodash.cloneDeep)(_config.emptyAudioTransmitStream);
|
|
392
|
+
(0, _mqaUtil.getAudioSenderStreamMqa)({
|
|
393
|
+
audioSenderStream: _audioSenderStream,
|
|
322
394
|
statsResults: _this3.statsResults,
|
|
323
395
|
lastMqaDataSent: _this3.lastMqaDataSent,
|
|
324
396
|
mediaType: mediaType
|
|
325
397
|
});
|
|
326
|
-
newMqa.
|
|
398
|
+
newMqa.audioTransmit[1].streams.push(_audioSenderStream);
|
|
399
|
+
_this3.lastMqaDataSent[mediaType].send = (0, _lodash.cloneDeep)(_this3.statsResults[mediaType].send);
|
|
400
|
+
} else if (mediaType.includes('audio-recv')) {
|
|
401
|
+
var audioReceiverStream = (0, _lodash.cloneDeep)(_config.emptyAudioReceiveStream);
|
|
402
|
+
(0, _mqaUtil.getAudioReceiverStreamMqa)({
|
|
403
|
+
audioReceiverStream: audioReceiverStream,
|
|
404
|
+
statsResults: _this3.statsResults,
|
|
405
|
+
lastMqaDataSent: _this3.lastMqaDataSent,
|
|
406
|
+
mediaType: mediaType
|
|
407
|
+
});
|
|
408
|
+
newMqa.audioReceive[0].streams.push(audioReceiverStream);
|
|
409
|
+
_this3.lastMqaDataSent[mediaType].recv = (0, _lodash.cloneDeep)(_this3.statsResults[mediaType].recv);
|
|
410
|
+
} else if (mediaType.includes('audio-share-recv')) {
|
|
411
|
+
var _audioReceiverStream = (0, _lodash.cloneDeep)(_config.emptyAudioReceiveStream);
|
|
412
|
+
(0, _mqaUtil.getAudioReceiverStreamMqa)({
|
|
413
|
+
audioReceiverStream: _audioReceiverStream,
|
|
414
|
+
statsResults: _this3.statsResults,
|
|
415
|
+
lastMqaDataSent: _this3.lastMqaDataSent,
|
|
416
|
+
mediaType: mediaType
|
|
417
|
+
});
|
|
418
|
+
newMqa.audioReceive[1].streams.push(_audioReceiverStream);
|
|
327
419
|
_this3.lastMqaDataSent[mediaType].recv = (0, _lodash.cloneDeep)(_this3.statsResults[mediaType].recv);
|
|
328
|
-
} else if (mediaType.includes('video-send')
|
|
329
|
-
var
|
|
330
|
-
(0, _mqaUtil.
|
|
331
|
-
|
|
420
|
+
} else if (mediaType.includes('video-send')) {
|
|
421
|
+
var videoSenderStream = (0, _lodash.cloneDeep)(_config.emptyVideoTransmitStream);
|
|
422
|
+
(0, _mqaUtil.getVideoSenderStreamMqa)({
|
|
423
|
+
videoSenderStream: videoSenderStream,
|
|
424
|
+
statsResults: _this3.statsResults,
|
|
425
|
+
lastMqaDataSent: _this3.lastMqaDataSent,
|
|
426
|
+
mediaType: mediaType
|
|
427
|
+
});
|
|
428
|
+
newMqa.videoTransmit[0].streams.push(videoSenderStream);
|
|
429
|
+
_this3.lastMqaDataSent[mediaType].send = (0, _lodash.cloneDeep)(_this3.statsResults[mediaType].send);
|
|
430
|
+
} else if (mediaType.includes('video-share-send')) {
|
|
431
|
+
var _videoSenderStream = (0, _lodash.cloneDeep)(_config.emptyVideoTransmitStream);
|
|
432
|
+
(0, _mqaUtil.getVideoSenderStreamMqa)({
|
|
433
|
+
videoSenderStream: _videoSenderStream,
|
|
332
434
|
statsResults: _this3.statsResults,
|
|
333
435
|
lastMqaDataSent: _this3.lastMqaDataSent,
|
|
334
436
|
mediaType: mediaType
|
|
335
437
|
});
|
|
336
|
-
newMqa.videoTransmit.push(
|
|
438
|
+
newMqa.videoTransmit[1].streams.push(_videoSenderStream);
|
|
337
439
|
_this3.lastMqaDataSent[mediaType].send = (0, _lodash.cloneDeep)(_this3.statsResults[mediaType].send);
|
|
338
|
-
} else if (mediaType.includes('video-recv')
|
|
339
|
-
var
|
|
340
|
-
(0, _mqaUtil.
|
|
341
|
-
|
|
440
|
+
} else if (mediaType.includes('video-recv')) {
|
|
441
|
+
var videoReceiverStream = (0, _lodash.cloneDeep)(_config.emptyVideoReceiveStream);
|
|
442
|
+
(0, _mqaUtil.getVideoReceiverStreamMqa)({
|
|
443
|
+
videoReceiverStream: videoReceiverStream,
|
|
444
|
+
statsResults: _this3.statsResults,
|
|
445
|
+
lastMqaDataSent: _this3.lastMqaDataSent,
|
|
446
|
+
mediaType: mediaType
|
|
447
|
+
});
|
|
448
|
+
newMqa.videoReceive[0].streams.push(videoReceiverStream);
|
|
449
|
+
_this3.lastMqaDataSent[mediaType].recv = (0, _lodash.cloneDeep)(_this3.statsResults[mediaType].recv);
|
|
450
|
+
} else if (mediaType.includes('video-share-recv')) {
|
|
451
|
+
var _videoReceiverStream = (0, _lodash.cloneDeep)(_config.emptyVideoReceiveStream);
|
|
452
|
+
(0, _mqaUtil.getVideoReceiverStreamMqa)({
|
|
453
|
+
videoReceiverStream: _videoReceiverStream,
|
|
342
454
|
statsResults: _this3.statsResults,
|
|
343
455
|
lastMqaDataSent: _this3.lastMqaDataSent,
|
|
344
456
|
mediaType: mediaType
|
|
345
457
|
});
|
|
346
|
-
newMqa.videoReceive.push(
|
|
458
|
+
newMqa.videoReceive[1].streams.push(_videoReceiverStream);
|
|
347
459
|
_this3.lastMqaDataSent[mediaType].recv = (0, _lodash.cloneDeep)(_this3.statsResults[mediaType].recv);
|
|
348
460
|
}
|
|
349
461
|
});
|
|
@@ -509,7 +621,6 @@ var StatsAnalyzer = exports.StatsAnalyzer = /*#__PURE__*/function (_EventsScope)
|
|
|
509
621
|
this.parseCandidate(getStatsResult, type, isSender, false);
|
|
510
622
|
break;
|
|
511
623
|
case 'media-source':
|
|
512
|
-
// @ts-ignore
|
|
513
624
|
this.parseAudioSource(getStatsResult, type);
|
|
514
625
|
break;
|
|
515
626
|
default:
|
|
@@ -840,6 +951,7 @@ var StatsAnalyzer = exports.StatsAnalyzer = /*#__PURE__*/function (_EventsScope)
|
|
|
840
951
|
if (result.bytesReceived) {
|
|
841
952
|
var kilobytes = 0;
|
|
842
953
|
var receiveSlot = this.receiveSlotCallback(result.ssrc);
|
|
954
|
+
var sourceState = receiveSlot === null || receiveSlot === void 0 ? void 0 : receiveSlot.sourceState;
|
|
843
955
|
var idAndCsi = receiveSlot ? "id: \"".concat(receiveSlot.id || '', "\"").concat(receiveSlot.csi ? " and csi: ".concat(receiveSlot.csi) : '') : '';
|
|
844
956
|
if (result.frameWidth && result.frameHeight) {
|
|
845
957
|
this.statsResults[mediaType][sendrecvType].width = result.frameWidth;
|
|
@@ -856,8 +968,8 @@ var StatsAnalyzer = exports.StatsAnalyzer = /*#__PURE__*/function (_EventsScope)
|
|
|
856
968
|
var currentPacketsReceived = result.packetsReceived - this.statsResults[mediaType][sendrecvType].totalPacketsReceived;
|
|
857
969
|
this.statsResults[mediaType][sendrecvType].totalPacketsReceived = result.packetsReceived;
|
|
858
970
|
if (currentPacketsReceived === 0) {
|
|
859
|
-
if (receiveSlot) {
|
|
860
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#processInboundRTPResult --> No packets received for receive slot ".concat(idAndCsi),
|
|
971
|
+
if (receiveSlot && sourceState === 'live') {
|
|
972
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#processInboundRTPResult --> No packets received for receive slot ".concat(idAndCsi, ". Total packets received on slot: "), result.packetsReceived);
|
|
861
973
|
}
|
|
862
974
|
}
|
|
863
975
|
|