@webex/plugin-meetings 3.0.0-beta.33 → 3.0.0-beta.331
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/README.md +46 -8
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +342 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +94 -15
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +709 -35
- package/dist/breakouts/index.js.map +1 -1
- package/dist/breakouts/utils.js +45 -1
- package/dist/breakouts/utils.js.map +1 -1
- package/dist/common/errors/no-meeting-info.js +51 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/reclaim-host-role-errors.js +158 -0
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/webex-errors.js +48 -7
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +5 -1
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +24 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +4 -10
- package/dist/config.js.map +1 -1
- package/dist/constants.js +233 -29
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +14 -2
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.js +109 -15
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.js +7 -0
- package/dist/controls-options-manager/types.js.map +1 -0
- package/dist/controls-options-manager/util.js +309 -18
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.js +112 -1
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +366 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +25 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +91 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +383 -62
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +7 -1
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +57 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +249 -72
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +89 -14
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +61 -116
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +73 -124
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +86 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +3917 -2960
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +292 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +230 -124
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +260 -196
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +601 -417
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +73 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +192 -51
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/util.js +1 -1
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +36 -36
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +39 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +424 -116
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +2 -0
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +72 -6
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +58 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +25 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +132 -25
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +10 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +102 -6
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +106 -38
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +326 -232
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +16 -5
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -468
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +228 -58
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +29 -16
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +39 -36
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +44 -18
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +60 -3
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +209 -59
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +233 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/reachability/index.js +225 -59
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +17 -8
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +214 -170
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/index.js +21 -2
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +9 -8
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js +62 -32
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +112 -97
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +95 -36
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +12 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +142 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/index.js +107 -79
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +27 -26
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +42 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +117 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/utils.d.ts +14 -0
- package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/types/common/errors/webex-errors.d.ts +25 -1
- package/dist/types/common/logs/request.d.ts +2 -0
- package/dist/types/common/queue.d.ts +9 -7
- package/dist/types/config.d.ts +1 -7
- package/dist/types/constants.d.ts +201 -30
- package/dist/types/controls-options-manager/enums.d.ts +11 -1
- package/dist/types/controls-options-manager/index.d.ts +17 -1
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -7
- package/dist/types/index.d.ts +6 -4
- package/dist/types/interpretation/collection.d.ts +5 -0
- package/dist/types/interpretation/index.d.ts +5 -0
- package/dist/types/interpretation/siLanguage.d.ts +5 -0
- package/dist/types/locus-info/index.d.ts +57 -4
- package/dist/types/locus-info/parser.d.ts +67 -6
- package/dist/types/media/index.d.ts +2 -0
- package/dist/types/media/properties.d.ts +34 -48
- package/dist/types/meeting/in-meeting-actions.d.ts +86 -2
- package/dist/types/meeting/index.d.ts +502 -512
- package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/types/meeting/muteState.d.ts +99 -23
- package/dist/types/meeting/request.d.ts +72 -43
- package/dist/types/meeting/util.d.ts +101 -1
- package/dist/types/meeting-info/index.d.ts +13 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
- package/dist/types/meetings/collection.d.ts +17 -0
- package/dist/types/meetings/index.d.ts +101 -21
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/member/index.d.ts +14 -0
- package/dist/types/member/types.d.ts +32 -0
- package/dist/types/members/collection.d.ts +5 -0
- package/dist/types/members/index.d.ts +35 -2
- package/dist/types/members/request.d.ts +73 -9
- package/dist/types/members/types.d.ts +25 -0
- package/dist/types/members/util.d.ts +214 -1
- package/dist/types/metrics/constants.d.ts +15 -4
- package/dist/types/metrics/index.d.ts +4 -119
- package/dist/types/multistream/mediaRequestManager.d.ts +72 -5
- package/dist/types/multistream/receiveSlot.d.ts +13 -11
- package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
- package/dist/types/multistream/remoteMedia.d.ts +8 -29
- package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
- package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
- package/dist/types/multistream/sendSlotManager.d.ts +61 -0
- package/dist/types/reachability/index.d.ts +61 -7
- package/dist/types/reachability/request.d.ts +7 -3
- package/dist/types/reconnection-manager/index.d.ts +19 -0
- package/dist/types/recording-controller/index.d.ts +15 -1
- package/dist/types/recording-controller/util.d.ts +5 -4
- package/dist/types/roap/index.d.ts +2 -1
- package/dist/types/roap/request.d.ts +15 -11
- package/dist/types/roap/turnDiscovery.d.ts +21 -3
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +54 -0
- package/dist/types/statsAnalyzer/index.d.ts +7 -1
- package/dist/types/webinar/collection.d.ts +16 -0
- package/dist/types/webinar/index.d.ts +5 -0
- package/dist/webinar/collection.js +44 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.js +69 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +24 -20
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +42 -12
- package/src/breakouts/breakout.ts +67 -9
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +592 -20
- package/src/breakouts/utils.ts +42 -0
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/reclaim-host-role-errors.ts +134 -0
- package/src/common/errors/webex-errors.ts +44 -2
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/logs/request.ts +5 -1
- package/src/common/queue.ts +22 -8
- package/src/config.ts +3 -9
- package/src/constants.ts +224 -20
- package/src/controls-options-manager/enums.ts +12 -0
- package/src/controls-options-manager/index.ts +116 -21
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +294 -14
- package/src/index.ts +40 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +108 -0
- package/src/locus-info/index.ts +413 -59
- package/src/locus-info/infoUtils.ts +10 -2
- package/src/locus-info/mediaSharesUtils.ts +64 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +81 -5
- package/src/media/index.ts +102 -122
- package/src/media/properties.ts +87 -110
- package/src/meeting/in-meeting-actions.ts +171 -3
- package/src/meeting/index.ts +3267 -2555
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +229 -131
- package/src/meeting/request.ts +177 -121
- package/src/meeting/util.ts +588 -394
- package/src/meeting-info/index.ts +81 -8
- package/src/meeting-info/meeting-info-v2.ts +170 -14
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +23 -23
- package/src/meetings/collection.ts +33 -0
- package/src/meetings/index.ts +454 -125
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +80 -11
- package/src/member/index.ts +58 -0
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +141 -25
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +134 -8
- package/src/members/request.ts +97 -17
- package/src/members/types.ts +29 -0
- package/src/members/util.ts +333 -240
- package/src/metrics/constants.ts +15 -4
- package/src/metrics/index.ts +1 -490
- package/src/multistream/mediaRequestManager.ts +277 -82
- package/src/multistream/receiveSlot.ts +31 -17
- package/src/multistream/receiveSlotManager.ts +34 -24
- package/src/multistream/remoteMedia.ts +27 -2
- package/src/multistream/remoteMediaGroup.ts +59 -0
- package/src/multistream/remoteMediaManager.ts +148 -30
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/reachability/index.ts +228 -37
- package/src/reachability/request.ts +17 -8
- package/src/reconnection-manager/index.ts +128 -106
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +63 -32
- package/src/roap/request.ts +100 -104
- package/src/roap/turnDiscovery.ts +48 -26
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +124 -0
- package/src/statsAnalyzer/index.ts +135 -92
- package/src/statsAnalyzer/mqaUtil.ts +30 -28
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +60 -3
- package/test/integration/spec/journey.js +320 -261
- package/test/integration/spec/space-meeting.js +76 -3
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +118 -28
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1395 -69
- package/test/unit/spec/breakouts/utils.js +52 -1
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +163 -0
- package/test/unit/spec/controls-options-manager/util.js +576 -60
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +316 -43
- package/test/unit/spec/locus-info/index.js +1304 -33
- package/test/unit/spec/locus-info/infoUtils.js +37 -15
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
- package/test/unit/spec/locus-info/parser.js +116 -35
- package/test/unit/spec/locus-info/selfConstant.js +27 -4
- package/test/unit/spec/locus-info/selfUtils.js +208 -17
- package/test/unit/spec/media/index.ts +104 -37
- package/test/unit/spec/media/properties.ts +2 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +85 -3
- package/test/unit/spec/meeting/index.js +5750 -2023
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +408 -208
- package/test/unit/spec/meeting/request.js +483 -49
- package/test/unit/spec/meeting/utils.js +679 -64
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +526 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +26 -0
- package/test/unit/spec/meetings/index.js +1231 -212
- package/test/unit/spec/meetings/utils.js +202 -2
- package/test/unit/spec/member/index.js +61 -6
- package/test/unit/spec/member/util.js +510 -34
- package/test/unit/spec/members/index.js +432 -1
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +210 -0
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +776 -162
- package/test/unit/spec/multistream/receiveSlot.ts +28 -20
- package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
- package/test/unit/spec/multistream/remoteMedia.ts +30 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/reachability/index.ts +549 -9
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reconnection-manager/index.js +117 -11
- package/test/unit/spec/recording-controller/index.js +294 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +178 -64
- package/test/unit/spec/roap/request.ts +203 -85
- package/test/unit/spec/roap/turnDiscovery.ts +82 -36
- package/test/unit/spec/rtcMetrics/index.ts +93 -0
- package/test/unit/spec/stats-analyzer/index.js +147 -3
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -52
- package/dist/meeting/effectsState.js +0 -262
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -299
- package/dist/metrics/config.js.map +0 -1
- package/dist/types/meeting/effectsState.d.ts +0 -42
- package/dist/types/metrics/config.d.ts +0 -178
- package/src/index.js +0 -16
- package/src/meeting/effectsState.ts +0 -211
- package/src/metrics/config.ts +0 -495
- package/test/unit/spec/meeting/effectsState.js +0 -285
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
13
|
+
var _internalPluginMetrics = require("@webex/internal-plugin-metrics");
|
|
14
|
+
var _constants = _interopRequireDefault(require("./constants"));
|
|
15
|
+
/* eslint-disable class-methods-use-this */
|
|
16
|
+
/**
|
|
17
|
+
* Rtc Metrics
|
|
18
|
+
*/
|
|
19
|
+
var RtcMetrics = /*#__PURE__*/function () {
|
|
20
|
+
/**
|
|
21
|
+
* Array of MetricData items to be sent to the metrics service.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Initialize the interval.
|
|
26
|
+
*
|
|
27
|
+
* @param {object} webex - The main `webex` object.
|
|
28
|
+
* @param {string} meetingId - The meeting id.
|
|
29
|
+
* @param {string} correlationId - The correlation id.
|
|
30
|
+
*/
|
|
31
|
+
function RtcMetrics(webex, meetingId, correlationId) {
|
|
32
|
+
(0, _classCallCheck2.default)(this, RtcMetrics);
|
|
33
|
+
(0, _defineProperty2.default)(this, "metricsQueue", []);
|
|
34
|
+
(0, _defineProperty2.default)(this, "intervalId", void 0);
|
|
35
|
+
(0, _defineProperty2.default)(this, "webex", void 0);
|
|
36
|
+
(0, _defineProperty2.default)(this, "meetingId", void 0);
|
|
37
|
+
(0, _defineProperty2.default)(this, "correlationId", void 0);
|
|
38
|
+
// `window` is used to prevent typescript from returning a NodeJS.Timer.
|
|
39
|
+
this.intervalId = window.setInterval(this.sendMetricsInQueue.bind(this), 30 * 1000);
|
|
40
|
+
this.meetingId = meetingId;
|
|
41
|
+
this.webex = webex;
|
|
42
|
+
this.correlationId = correlationId;
|
|
43
|
+
// Send the first set of metrics at 5 seconds in the case of a user leaving the call shortly after joining.
|
|
44
|
+
setTimeout(this.sendMetricsInQueue.bind(this), 5 * 1000);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Check to see if the metrics queue has any items.
|
|
49
|
+
*
|
|
50
|
+
* @returns {void}
|
|
51
|
+
*/
|
|
52
|
+
(0, _createClass2.default)(RtcMetrics, [{
|
|
53
|
+
key: "sendMetricsInQueue",
|
|
54
|
+
value: function sendMetricsInQueue() {
|
|
55
|
+
if (this.metricsQueue.length) {
|
|
56
|
+
this.sendMetrics();
|
|
57
|
+
this.metricsQueue = [];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Add metrics items to the metrics queue.
|
|
63
|
+
*
|
|
64
|
+
* @param {object} data - An object with a payload array of metrics items.
|
|
65
|
+
*
|
|
66
|
+
* @returns {void}
|
|
67
|
+
*/
|
|
68
|
+
}, {
|
|
69
|
+
key: "addMetrics",
|
|
70
|
+
value: function addMetrics(data) {
|
|
71
|
+
if (data.payload.length) {
|
|
72
|
+
if (data.name === 'stats-report') {
|
|
73
|
+
data.payload = data.payload.map(this.anonymizeIp);
|
|
74
|
+
}
|
|
75
|
+
this.metricsQueue.push(data);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Clear the metrics interval.
|
|
81
|
+
*
|
|
82
|
+
* @returns {void}
|
|
83
|
+
*/
|
|
84
|
+
}, {
|
|
85
|
+
key: "closeMetrics",
|
|
86
|
+
value: function closeMetrics() {
|
|
87
|
+
this.sendMetricsInQueue();
|
|
88
|
+
clearInterval(this.intervalId);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Anonymize IP addresses.
|
|
93
|
+
*
|
|
94
|
+
* @param {array} stats - An RTCStatsReport organized into an array of strings.
|
|
95
|
+
* @returns {string}
|
|
96
|
+
*/
|
|
97
|
+
}, {
|
|
98
|
+
key: "anonymizeIp",
|
|
99
|
+
value: function anonymizeIp(stats) {
|
|
100
|
+
var data = JSON.parse(stats);
|
|
101
|
+
// on local and remote candidates, anonymize the last 4 bits.
|
|
102
|
+
if (data.type === 'local-candidate' || data.type === 'remote-candidate') {
|
|
103
|
+
data.ip = _internalPluginMetrics.CallDiagnosticUtils.anonymizeIPAddress(data.ip) || undefined;
|
|
104
|
+
data.address = _internalPluginMetrics.CallDiagnosticUtils.anonymizeIPAddress(data.address) || undefined;
|
|
105
|
+
data.relatedAddress = _internalPluginMetrics.CallDiagnosticUtils.anonymizeIPAddress(data.relatedAddress) || undefined;
|
|
106
|
+
}
|
|
107
|
+
return (0, _stringify.default)(data);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Send metrics to the metrics service.
|
|
112
|
+
*
|
|
113
|
+
* @returns {void}
|
|
114
|
+
*/
|
|
115
|
+
}, {
|
|
116
|
+
key: "sendMetrics",
|
|
117
|
+
value: function sendMetrics() {
|
|
118
|
+
this.webex.request({
|
|
119
|
+
method: 'POST',
|
|
120
|
+
service: 'unifiedTelemetry',
|
|
121
|
+
resource: 'metric/v2',
|
|
122
|
+
headers: {
|
|
123
|
+
type: 'webrtcMedia',
|
|
124
|
+
appId: _constants.default.APP_ID
|
|
125
|
+
},
|
|
126
|
+
body: {
|
|
127
|
+
metrics: [{
|
|
128
|
+
type: 'webrtc',
|
|
129
|
+
version: '1.0.1',
|
|
130
|
+
userId: this.webex.internal.device.userId,
|
|
131
|
+
meetingId: this.meetingId,
|
|
132
|
+
correlationId: this.correlationId,
|
|
133
|
+
data: this.metricsQueue
|
|
134
|
+
}]
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}]);
|
|
139
|
+
return RtcMetrics;
|
|
140
|
+
}();
|
|
141
|
+
exports.default = RtcMetrics;
|
|
142
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["RtcMetrics","webex","meetingId","correlationId","intervalId","window","setInterval","sendMetricsInQueue","bind","setTimeout","metricsQueue","length","sendMetrics","data","payload","name","map","anonymizeIp","push","clearInterval","stats","JSON","parse","type","ip","CallDiagnosticUtils","anonymizeIPAddress","undefined","address","relatedAddress","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 RTC_METRICS from './constants';\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 /**\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 // 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 this.metricsQueue.push(data);\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 * 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.0.1',\n userId: this.webex.internal.device.userId,\n meetingId: this.meetingId,\n correlationId: this.correlationId,\n data: this.metricsQueue,\n },\n ],\n },\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;AACA;AACA;AAFA;AAIA;AACA;AACA;AAFA,IAGqBA,UAAU;EAC7B;AACF;AACA;;EAWE;AACF;AACA;AACA;AACA;AACA;AACA;EACE,oBAAYC,KAAK,EAAEC,SAAS,EAAEC,aAAa,EAAE;IAAA;IAAA,oDAjB9B,EAAE;IAAA;IAAA;IAAA;IAAA;IAkBf;IACA,IAAI,CAACC,UAAU,GAAGC,MAAM,CAACC,WAAW,CAAC,IAAI,CAACC,kBAAkB,CAACC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;IACnF,IAAI,CAACN,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACD,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACE,aAAa,GAAGA,aAAa;IAClC;IACAM,UAAU,CAAC,IAAI,CAACF,kBAAkB,CAACC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;EAC1D;;EAEA;AACF;AACA;AACA;AACA;EAJE;IAAA;IAAA,OAKA,8BAA4B;MAC1B,IAAI,IAAI,CAACE,YAAY,CAACC,MAAM,EAAE;QAC5B,IAAI,CAACC,WAAW,EAAE;QAClB,IAAI,CAACF,YAAY,GAAG,EAAE;MACxB;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA;IAAA,OAOA,oBAAWG,IAAI,EAAE;MACf,IAAIA,IAAI,CAACC,OAAO,CAACH,MAAM,EAAE;QACvB,IAAIE,IAAI,CAACE,IAAI,KAAK,cAAc,EAAE;UAChCF,IAAI,CAACC,OAAO,GAAGD,IAAI,CAACC,OAAO,CAACE,GAAG,CAAC,IAAI,CAACC,WAAW,CAAC;QACnD;QACA,IAAI,CAACP,YAAY,CAACQ,IAAI,CAACL,IAAI,CAAC;MAC9B;IACF;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA;IAAA,OAKA,wBAAe;MACb,IAAI,CAACN,kBAAkB,EAAE;MACzBY,aAAa,CAAC,IAAI,CAACf,UAAU,CAAC;IAChC;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAA;IAAA,OAMA,qBAAYgB,KAAa,EAAU;MACjC,IAAMP,IAAI,GAAGQ,IAAI,CAACC,KAAK,CAACF,KAAK,CAAC;MAC9B;MACA,IAAIP,IAAI,CAACU,IAAI,KAAK,iBAAiB,IAAIV,IAAI,CAACU,IAAI,KAAK,kBAAkB,EAAE;QACvEV,IAAI,CAACW,EAAE,GAAGC,0CAAmB,CAACC,kBAAkB,CAACb,IAAI,CAACW,EAAE,CAAC,IAAIG,SAAS;QACtEd,IAAI,CAACe,OAAO,GAAGH,0CAAmB,CAACC,kBAAkB,CAACb,IAAI,CAACe,OAAO,CAAC,IAAID,SAAS;QAChFd,IAAI,CAACgB,cAAc,GACjBJ,0CAAmB,CAACC,kBAAkB,CAACb,IAAI,CAACgB,cAAc,CAAC,IAAIF,SAAS;MAC5E;MAEA,OAAO,wBAAed,IAAI,CAAC;IAC7B;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA;IAAA,OAKA,uBAAsB;MACpB,IAAI,CAACZ,KAAK,CAAC6B,OAAO,CAAC;QACjBC,MAAM,EAAE,MAAM;QACdC,OAAO,EAAE,kBAAkB;QAC3BC,QAAQ,EAAE,WAAW;QACrBC,OAAO,EAAE;UACPX,IAAI,EAAE,aAAa;UACnBY,KAAK,EAAEC,kBAAW,CAACC;QACrB,CAAC;QACDC,IAAI,EAAE;UACJC,OAAO,EAAE,CACP;YACEhB,IAAI,EAAE,QAAQ;YACdiB,OAAO,EAAE,OAAO;YAChBC,MAAM,EAAE,IAAI,CAACxC,KAAK,CAACyC,QAAQ,CAACC,MAAM,CAACF,MAAM;YACzCvC,SAAS,EAAE,IAAI,CAACA,SAAS;YACzBC,aAAa,EAAE,IAAI,CAACA,aAAa;YACjCU,IAAI,EAAE,IAAI,CAACH;UACb,CAAC;QAEL;MACF,CAAC,CAAC;IACJ;EAAC;EAAA;AAAA;AAAA"}
|
|
@@ -49,7 +49,6 @@ var emptyReceiver = {
|
|
|
49
49
|
meanRtpJitter: [],
|
|
50
50
|
meanRoundTripTime: []
|
|
51
51
|
};
|
|
52
|
-
|
|
53
52
|
/**
|
|
54
53
|
* Stats Analyzer class that will emit events based on detected quality
|
|
55
54
|
*
|
|
@@ -65,13 +64,17 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
65
64
|
* @constructor
|
|
66
65
|
* @public
|
|
67
66
|
* @param {Object} config SDK Configuration Object
|
|
67
|
+
* @param {Function} receiveSlotCallback Callback used to access receive slots.
|
|
68
68
|
* @param {Object} networkQualityMonitor class for assessing network characteristics (jitter, packetLoss, latency)
|
|
69
69
|
* @param {Object} statsResults Default properties for stats
|
|
70
70
|
*/
|
|
71
71
|
function StatsAnalyzer(config) {
|
|
72
72
|
var _this;
|
|
73
|
-
var
|
|
74
|
-
|
|
73
|
+
var receiveSlotCallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {
|
|
74
|
+
return undefined;
|
|
75
|
+
};
|
|
76
|
+
var networkQualityMonitor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
77
|
+
var statsResults = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _global.default;
|
|
75
78
|
(0, _classCallCheck2.default)(this, StatsAnalyzer);
|
|
76
79
|
_this = _super.call(this);
|
|
77
80
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "config", void 0);
|
|
@@ -87,6 +90,8 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
87
90
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "statsInterval", void 0);
|
|
88
91
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "statsResults", void 0);
|
|
89
92
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "statsStarted", void 0);
|
|
93
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "successfulCandidatePair", void 0);
|
|
94
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "receiveSlotCallback", void 0);
|
|
90
95
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "emitStartStopEvents", function (mediaType, previousValue, currentValue, isLocal) {
|
|
91
96
|
if (mediaType !== 'audio' && mediaType !== 'video' && mediaType !== 'share') {
|
|
92
97
|
throw new Error("Unsupported mediaType: ".concat(mediaType));
|
|
@@ -121,56 +126,39 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
121
126
|
}
|
|
122
127
|
});
|
|
123
128
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "parseCandidate", function (result, type, isSender, isRemote) {
|
|
129
|
+
var _this$successfulCandi;
|
|
124
130
|
if (!result || !result.id) {
|
|
125
131
|
return;
|
|
126
132
|
}
|
|
127
|
-
var RemoteCandidateType = {};
|
|
128
|
-
var RemoteTransport = {};
|
|
129
|
-
var RemoteIpAddress = {};
|
|
130
|
-
var RemoteNetworkType = {};
|
|
131
|
-
if (!result.id) return;
|
|
132
|
-
var sendRecvType = isSender ? _constants.STATS.SEND_DIRECTION : _constants.STATS.RECEIVE_DIRECTION;
|
|
133
|
-
var ipType = isRemote ? _constants.STATS.REMOTE : _constants.STATS.LOCAL;
|
|
134
|
-
if (!RemoteCandidateType[result.id]) {
|
|
135
|
-
RemoteCandidateType[result.id] = [];
|
|
136
|
-
}
|
|
137
|
-
if (!RemoteTransport[result.id]) {
|
|
138
|
-
RemoteTransport[result.id] = [];
|
|
139
|
-
}
|
|
140
|
-
if (!RemoteIpAddress[result.id]) {
|
|
141
|
-
RemoteIpAddress[result.id] = [];
|
|
142
|
-
}
|
|
143
|
-
if (!RemoteNetworkType[result.id]) {
|
|
144
|
-
RemoteNetworkType[result.id] = [];
|
|
145
|
-
}
|
|
146
|
-
if (result.candidateType && RemoteCandidateType[result.id].indexOf(result.candidateType) === -1) {
|
|
147
|
-
RemoteCandidateType[result.id].push(result.candidateType);
|
|
148
|
-
}
|
|
149
|
-
if (result.protocol && RemoteTransport[result.id].indexOf(result.protocol) === -1) {
|
|
150
|
-
RemoteTransport[result.id].push(result.protocol.toUpperCase());
|
|
151
|
-
}
|
|
152
|
-
if (result.ip && RemoteIpAddress[result.id].indexOf("".concat(result.ip, ":").concat(result.portNumber)) === -1) {
|
|
153
|
-
RemoteIpAddress[result.id].push("".concat(result.ip)); // TODO: Add ports
|
|
154
|
-
}
|
|
155
133
|
|
|
156
|
-
|
|
157
|
-
|
|
134
|
+
// We only care about the successful local candidate
|
|
135
|
+
if (((_this$successfulCandi = _this.successfulCandidatePair) === null || _this$successfulCandi === void 0 ? void 0 : _this$successfulCandi.localCandidateId) !== result.id) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
var transport;
|
|
139
|
+
if (result.relayProtocol) {
|
|
140
|
+
transport = result.relayProtocol.toUpperCase();
|
|
141
|
+
} else if (result.protocol) {
|
|
142
|
+
transport = result.protocol.toUpperCase();
|
|
158
143
|
}
|
|
144
|
+
var sendRecvType = isSender ? _constants.STATS.SEND_DIRECTION : _constants.STATS.RECEIVE_DIRECTION;
|
|
145
|
+
var ipType = isRemote ? _constants.STATS.REMOTE : _constants.STATS.LOCAL;
|
|
159
146
|
_this.statsResults.internal.candidates[result.id] = {
|
|
160
|
-
candidateType:
|
|
161
|
-
ipAddress:
|
|
147
|
+
candidateType: result.candidateType,
|
|
148
|
+
ipAddress: result.ip,
|
|
149
|
+
// TODO: add ports
|
|
162
150
|
portNumber: result.port,
|
|
163
|
-
networkType:
|
|
151
|
+
networkType: result.networkType,
|
|
164
152
|
priority: result.priority,
|
|
165
|
-
transport:
|
|
153
|
+
transport: transport,
|
|
166
154
|
timestamp: result.time,
|
|
167
155
|
id: result.id,
|
|
168
156
|
type: result.type
|
|
169
157
|
};
|
|
170
|
-
_this.statsResults.connectionType[ipType].candidateType =
|
|
171
|
-
_this.statsResults.connectionType[ipType].ipAddress =
|
|
172
|
-
_this.statsResults.connectionType[ipType].networkType =
|
|
173
|
-
_this.statsResults.connectionType[ipType].transport =
|
|
158
|
+
_this.statsResults.connectionType[ipType].candidateType = result.candidateType;
|
|
159
|
+
_this.statsResults.connectionType[ipType].ipAddress = result.ipAddress;
|
|
160
|
+
_this.statsResults.connectionType[ipType].networkType = result.networkType === _constants.NETWORK_TYPE.VPN ? _constants.NETWORK_TYPE.UNKNOWN : result.networkType;
|
|
161
|
+
_this.statsResults.connectionType[ipType].transport = transport;
|
|
174
162
|
_this.statsResults[type][sendRecvType].totalRoundTripTime = result.totalRoundTripTime;
|
|
175
163
|
});
|
|
176
164
|
_this.statsStarted = false;
|
|
@@ -180,8 +168,12 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
180
168
|
_this.networkQualityMonitor = networkQualityMonitor;
|
|
181
169
|
_this.correlationId = config.correlationId;
|
|
182
170
|
_this.mqaSentCount = -1;
|
|
183
|
-
_this.lastMqaDataSent = {
|
|
171
|
+
_this.lastMqaDataSent = {
|
|
172
|
+
resolutions: {}
|
|
173
|
+
};
|
|
184
174
|
_this.lastEmittedStartStopEvent = {};
|
|
175
|
+
_this.receiveSlotCallback = receiveSlotCallback;
|
|
176
|
+
_this.successfulCandidatePair = {};
|
|
185
177
|
return _this;
|
|
186
178
|
}
|
|
187
179
|
|
|
@@ -234,6 +226,18 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
234
226
|
var _this3 = this;
|
|
235
227
|
var newMqa = (0, _cloneDeep2.default)(_config.emptyMqaInterval);
|
|
236
228
|
(0, _keys.default)(this.statsResults).forEach(function (mediaType) {
|
|
229
|
+
if (!_this3.lastMqaDataSent[mediaType]) {
|
|
230
|
+
_this3.lastMqaDataSent[mediaType] = {};
|
|
231
|
+
_this3.lastMqaDataSent.resolutions[mediaType] = {};
|
|
232
|
+
}
|
|
233
|
+
if (!_this3.lastMqaDataSent[mediaType].send && mediaType.includes('-send')) {
|
|
234
|
+
_this3.lastMqaDataSent[mediaType].send = {};
|
|
235
|
+
_this3.lastMqaDataSent.resolutions[mediaType].send = {};
|
|
236
|
+
}
|
|
237
|
+
if (!_this3.lastMqaDataSent[mediaType].recv && mediaType.includes('-recv')) {
|
|
238
|
+
_this3.lastMqaDataSent[mediaType].recv = {};
|
|
239
|
+
_this3.lastMqaDataSent.resolutions[mediaType].recv = {};
|
|
240
|
+
}
|
|
237
241
|
if (mediaType.includes('audio-send') || mediaType.includes('audio-share-send')) {
|
|
238
242
|
var audioSender = (0, _cloneDeep2.default)(_config.emptyAudioTransmit);
|
|
239
243
|
(0, _mqaUtil.getAudioSenderMqa)({
|
|
@@ -243,6 +247,7 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
243
247
|
mediaType: mediaType
|
|
244
248
|
});
|
|
245
249
|
newMqa.audioTransmit.push(audioSender);
|
|
250
|
+
_this3.lastMqaDataSent[mediaType].send = (0, _cloneDeep2.default)(_this3.statsResults[mediaType].send);
|
|
246
251
|
} else if (mediaType.includes('audio-recv') || mediaType.includes('audio-share-recv')) {
|
|
247
252
|
var audioReceiver = (0, _cloneDeep2.default)(_config.emptyAudioReceive);
|
|
248
253
|
(0, _mqaUtil.getAudioReceiverMqa)({
|
|
@@ -252,6 +257,7 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
252
257
|
mediaType: mediaType
|
|
253
258
|
});
|
|
254
259
|
newMqa.audioReceive.push(audioReceiver);
|
|
260
|
+
_this3.lastMqaDataSent[mediaType].recv = (0, _cloneDeep2.default)(_this3.statsResults[mediaType].recv);
|
|
255
261
|
} else if (mediaType.includes('video-send') || mediaType.includes('video-share-send')) {
|
|
256
262
|
var videoSender = (0, _cloneDeep2.default)(_config.emptyVideoTransmit);
|
|
257
263
|
(0, _mqaUtil.getVideoSenderMqa)({
|
|
@@ -261,6 +267,8 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
261
267
|
mediaType: mediaType
|
|
262
268
|
});
|
|
263
269
|
newMqa.videoTransmit.push(videoSender);
|
|
270
|
+
_this3.lastMqaDataSent[mediaType].send = (0, _cloneDeep2.default)(_this3.statsResults[mediaType].send);
|
|
271
|
+
_this3.lastMqaDataSent.resolutions[mediaType].send = (0, _cloneDeep2.default)(_this3.statsResults.resolutions[mediaType].send);
|
|
264
272
|
} else if (mediaType.includes('video-recv') || mediaType.includes('video-share-recv')) {
|
|
265
273
|
var videoReceiver = (0, _cloneDeep2.default)(_config.emptyVideoReceive);
|
|
266
274
|
(0, _mqaUtil.getVideoReceiverMqa)({
|
|
@@ -270,27 +278,26 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
270
278
|
mediaType: mediaType
|
|
271
279
|
});
|
|
272
280
|
newMqa.videoReceive.push(videoReceiver);
|
|
281
|
+
_this3.lastMqaDataSent[mediaType].recv = (0, _cloneDeep2.default)(_this3.statsResults[mediaType].recv);
|
|
282
|
+
_this3.lastMqaDataSent.resolutions[mediaType].recv = (0, _cloneDeep2.default)(_this3.statsResults.resolutions[mediaType].recv);
|
|
273
283
|
}
|
|
274
284
|
});
|
|
275
|
-
newMqa.intervalMetadata.peerReflexiveIP = this.statsResults.connectionType.local.ipAddress
|
|
285
|
+
newMqa.intervalMetadata.peerReflexiveIP = this.statsResults.connectionType.local.ipAddress;
|
|
276
286
|
|
|
277
287
|
// Adding peripheral information
|
|
278
|
-
newMqa.intervalMetadata.peripherals = [];
|
|
279
288
|
newMqa.intervalMetadata.peripherals.push({
|
|
280
289
|
information: _constants._UNKNOWN_,
|
|
281
290
|
name: _constants.MEDIA_DEVICES.SPEAKER
|
|
282
291
|
});
|
|
283
292
|
if (this.statsResults['audio-send']) {
|
|
284
|
-
var _this$statsResults$au;
|
|
285
293
|
newMqa.intervalMetadata.peripherals.push({
|
|
286
|
-
information:
|
|
294
|
+
information: this.statsResults['audio-send'].trackLabel || _constants._UNKNOWN_,
|
|
287
295
|
name: _constants.MEDIA_DEVICES.MICROPHONE
|
|
288
296
|
});
|
|
289
297
|
}
|
|
290
298
|
if (this.statsResults['video-send']) {
|
|
291
|
-
var _this$statsResults$vi;
|
|
292
299
|
newMqa.intervalMetadata.peripherals.push({
|
|
293
|
-
information:
|
|
300
|
+
information: this.statsResults['video-send'].trackLabel || _constants._UNKNOWN_,
|
|
294
301
|
name: _constants.MEDIA_DEVICES.CAMERA
|
|
295
302
|
});
|
|
296
303
|
}
|
|
@@ -377,7 +384,6 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
377
384
|
_this5.mediaConnection = null;
|
|
378
385
|
});
|
|
379
386
|
}
|
|
380
|
-
this.mediaConnection = null;
|
|
381
387
|
return _promise.default.resolve();
|
|
382
388
|
}
|
|
383
389
|
|
|
@@ -467,6 +473,13 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
467
473
|
value: function filterAndParseGetStatsResults(statsItem, type, isSender) {
|
|
468
474
|
var _this6 = this;
|
|
469
475
|
var types = _constants.DEFAULT_GET_STATS_FILTER.types;
|
|
476
|
+
|
|
477
|
+
// get the successful candidate pair before parsing stats.
|
|
478
|
+
statsItem.report.forEach(function (report) {
|
|
479
|
+
if (report.type === 'candidate-pair' && report.state === 'succeeded') {
|
|
480
|
+
_this6.successfulCandidatePair = report;
|
|
481
|
+
}
|
|
482
|
+
});
|
|
470
483
|
statsItem.report.forEach(function (result) {
|
|
471
484
|
if (types.includes(result.type)) {
|
|
472
485
|
_this6.parseGetStatsResult(result, type, isSender);
|
|
@@ -476,6 +489,8 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
476
489
|
this.statsResults[type].direction = statsItem.currentDirection;
|
|
477
490
|
this.statsResults[type].trackLabel = statsItem.localTrackLabel;
|
|
478
491
|
this.statsResults[type].csi = statsItem.csi;
|
|
492
|
+
// reset the successful candidate pair.
|
|
493
|
+
this.successfulCandidatePair = {};
|
|
479
494
|
}
|
|
480
495
|
}
|
|
481
496
|
|
|
@@ -528,28 +543,32 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
528
543
|
return (0, _keys.default)(_this7.statsResults).filter(function (key) {
|
|
529
544
|
return key.startsWith(keyPrefix);
|
|
530
545
|
}).reduce(function (prev, cur) {
|
|
531
|
-
|
|
546
|
+
var _this7$statsResults$c;
|
|
547
|
+
return prev + (((_this7$statsResults$c = _this7.statsResults[cur]) === null || _this7$statsResults$c === void 0 ? void 0 : _this7$statsResults$c.recv[value]) || 0);
|
|
532
548
|
}, 0);
|
|
533
549
|
};
|
|
534
550
|
var getPreviousStatsTotals = function getPreviousStatsTotals(keyPrefix, value) {
|
|
535
551
|
return (0, _keys.default)(_this7.statsResults).filter(function (key) {
|
|
536
552
|
return key.startsWith(keyPrefix);
|
|
537
553
|
}).reduce(function (prev, cur) {
|
|
538
|
-
|
|
554
|
+
var _this7$lastStatsResul;
|
|
555
|
+
return prev + (((_this7$lastStatsResul = _this7.lastStatsResults[cur]) === null || _this7$lastStatsResul === void 0 ? void 0 : _this7$lastStatsResul.recv[value]) || 0);
|
|
539
556
|
}, 0);
|
|
540
557
|
};
|
|
541
558
|
var getCurrentResolutionsStatsTotals = function getCurrentResolutionsStatsTotals(keyPrefix, value) {
|
|
542
559
|
return (0, _keys.default)(_this7.statsResults).filter(function (key) {
|
|
543
560
|
return key.startsWith(keyPrefix);
|
|
544
561
|
}).reduce(function (prev, cur) {
|
|
545
|
-
|
|
562
|
+
var _this7$statsResults$r;
|
|
563
|
+
return prev + (((_this7$statsResults$r = _this7.statsResults.resolutions[cur]) === null || _this7$statsResults$r === void 0 ? void 0 : _this7$statsResults$r.recv[value]) || 0);
|
|
546
564
|
}, 0);
|
|
547
565
|
};
|
|
548
566
|
var getPreviousResolutionsStatsTotals = function getPreviousResolutionsStatsTotals(keyPrefix, value) {
|
|
549
567
|
return (0, _keys.default)(_this7.statsResults).filter(function (key) {
|
|
550
568
|
return key.startsWith(keyPrefix);
|
|
551
569
|
}).reduce(function (prev, cur) {
|
|
552
|
-
|
|
570
|
+
var _this7$lastStatsResul2;
|
|
571
|
+
return prev + (((_this7$lastStatsResul2 = _this7.lastStatsResults.resolutions[cur]) === null || _this7$lastStatsResul2 === void 0 ? void 0 : _this7$lastStatsResul2.recv[value]) || 0);
|
|
553
572
|
}, 0);
|
|
554
573
|
};
|
|
555
574
|
if (this.meetingMediaStatus.expected.sendAudio && this.lastStatsResults['audio-send']) {
|
|
@@ -558,10 +577,10 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
558
577
|
var currentStats = this.statsResults['audio-send'].send;
|
|
559
578
|
var previousStats = this.lastStatsResults['audio-send'].send;
|
|
560
579
|
if (currentStats.totalPacketsSent === previousStats.totalPacketsSent || currentStats.totalPacketsSent === 0) {
|
|
561
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No audio RTP packets sent");
|
|
580
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No audio RTP packets sent", currentStats.totalPacketsSent);
|
|
562
581
|
} else {
|
|
563
582
|
if (currentStats.totalAudioEnergy === previousStats.totalAudioEnergy || currentStats.totalAudioEnergy === 0) {
|
|
564
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No audio Energy present");
|
|
583
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No audio Energy present", currentStats.totalAudioEnergy);
|
|
565
584
|
}
|
|
566
585
|
if (currentStats.audioLevel === 0) {
|
|
567
586
|
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> audio level is 0 for the user");
|
|
@@ -576,9 +595,9 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
576
595
|
var currentSamplesReceived = getCurrentStatsTotals('audio-recv', 'totalSamplesReceived');
|
|
577
596
|
var previousSamplesReceived = getPreviousStatsTotals('audio-recv', 'totalSamplesReceived');
|
|
578
597
|
if (currentPacketsReceived === previousPacketsReceived || currentPacketsReceived === 0) {
|
|
579
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No audio RTP packets received");
|
|
598
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No audio RTP packets received", currentPacketsReceived);
|
|
580
599
|
} else if (currentSamplesReceived === previousSamplesReceived || currentSamplesReceived === 0) {
|
|
581
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No audio samples received");
|
|
600
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No audio samples received", currentSamplesReceived);
|
|
582
601
|
}
|
|
583
602
|
this.emitStartStopEvents('audio', previousPacketsReceived, currentPacketsReceived, false);
|
|
584
603
|
}
|
|
@@ -587,13 +606,13 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
587
606
|
var _currentStats = this.statsResults['video-send'].send;
|
|
588
607
|
var _previousStats = this.lastStatsResults['video-send'].send;
|
|
589
608
|
if (_currentStats.totalPacketsSent === _previousStats.totalPacketsSent || _currentStats.totalPacketsSent === 0) {
|
|
590
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video RTP packets sent");
|
|
609
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video RTP packets sent", _currentStats.totalPacketsSent);
|
|
591
610
|
} else {
|
|
592
611
|
if (_currentStats.framesEncoded === _previousStats.framesEncoded || _currentStats.framesEncoded === 0) {
|
|
593
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video Frames Encoded");
|
|
612
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video Frames Encoded", _currentStats.framesEncoded);
|
|
594
613
|
}
|
|
595
614
|
if (this.statsResults.resolutions['video-send'].send.framesSent === this.lastStatsResults.resolutions['video-send'].send.framesSent || this.statsResults.resolutions['video-send'].send.framesSent === 0) {
|
|
596
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video Frames sent");
|
|
615
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video Frames sent", this.statsResults.resolutions['video-send'].send.framesSent);
|
|
597
616
|
}
|
|
598
617
|
}
|
|
599
618
|
this.emitStartStopEvents('video', _previousStats.framesSent, _currentStats.framesSent, true);
|
|
@@ -609,16 +628,16 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
609
628
|
var currentFramesDropped = getCurrentResolutionsStatsTotals('video-recv', 'framesDropped');
|
|
610
629
|
var previousFramesDropped = getPreviousResolutionsStatsTotals('video-recv', 'framesDropped');
|
|
611
630
|
if (_currentPacketsReceived === _previousPacketsReceived || _currentPacketsReceived === 0) {
|
|
612
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video RTP packets received");
|
|
631
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video RTP packets received", _currentPacketsReceived);
|
|
613
632
|
} else {
|
|
614
633
|
if (currentFramesReceived === previousFramesReceived || currentFramesReceived === 0) {
|
|
615
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video frames received");
|
|
634
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video frames received", currentFramesReceived);
|
|
616
635
|
}
|
|
617
636
|
if (currentFramesDecoded === previousFramesDecoded || currentFramesDecoded === 0) {
|
|
618
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video frames decoded");
|
|
637
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video frames decoded", currentFramesDecoded);
|
|
619
638
|
}
|
|
620
639
|
if (currentFramesDropped - previousFramesDropped > 10) {
|
|
621
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> video frames are getting dropped");
|
|
640
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> video frames are getting dropped", currentFramesDropped - previousFramesDropped);
|
|
622
641
|
}
|
|
623
642
|
}
|
|
624
643
|
this.emitStartStopEvents('video', previousFramesDecoded, currentFramesDecoded, false);
|
|
@@ -629,13 +648,13 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
629
648
|
var _currentStats2 = this.statsResults['video-share-send'].send;
|
|
630
649
|
var _previousStats2 = this.lastStatsResults['video-share-send'].send;
|
|
631
650
|
if (_currentStats2.totalPacketsSent === _previousStats2.totalPacketsSent || _currentStats2.totalPacketsSent === 0) {
|
|
632
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share RTP packets sent");
|
|
651
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share RTP packets sent", _currentStats2.totalPacketsSent);
|
|
633
652
|
} else {
|
|
634
653
|
if (_currentStats2.framesEncoded === _previousStats2.framesEncoded || _currentStats2.framesEncoded === 0) {
|
|
635
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share frames getting encoded");
|
|
654
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share frames getting encoded", _currentStats2.framesEncoded);
|
|
636
655
|
}
|
|
637
656
|
if (this.statsResults.resolutions['video-share-send'].send.framesSent === this.lastStatsResults.resolutions['video-share-send'].send.framesSent || this.statsResults.resolutions['video-share-send'].send.framesSent === 0) {
|
|
638
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share frames sent");
|
|
657
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share frames sent", this.statsResults.resolutions['video-share-send'].send.framesSent);
|
|
639
658
|
}
|
|
640
659
|
}
|
|
641
660
|
}
|
|
@@ -651,16 +670,16 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
651
670
|
var _currentFramesDropped = getCurrentResolutionsStatsTotals('video-share-recv', 'framesDropped');
|
|
652
671
|
var _previousFramesDropped = getPreviousResolutionsStatsTotals('video-share-recv', 'framesDropped');
|
|
653
672
|
if (_currentPacketsReceived2 === _previousPacketsReceived2 || _currentPacketsReceived2 === 0) {
|
|
654
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share RTP packets received");
|
|
673
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share RTP packets received", _currentPacketsReceived2);
|
|
655
674
|
} else {
|
|
656
675
|
if (_currentFramesReceived === _previousFramesReceived || _currentFramesReceived === 0) {
|
|
657
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share frames received");
|
|
676
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share frames received", _currentFramesReceived);
|
|
658
677
|
}
|
|
659
678
|
if (_currentFramesDecoded === _previousFramesDecoded || _currentFramesDecoded === 0) {
|
|
660
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share frames decoded");
|
|
679
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share frames decoded", _currentFramesDecoded);
|
|
661
680
|
}
|
|
662
681
|
if (_currentFramesDropped - _previousFramesDropped > 10) {
|
|
663
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> share frames are getting dropped");
|
|
682
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> share frames are getting dropped", _currentFramesDropped - _previousFramesDropped);
|
|
664
683
|
}
|
|
665
684
|
}
|
|
666
685
|
|
|
@@ -749,6 +768,12 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
749
768
|
var sendrecvType = _constants.STATS.SEND_DIRECTION;
|
|
750
769
|
if (result.bytesSent) {
|
|
751
770
|
var kilobytes = 0;
|
|
771
|
+
if (result.frameWidth && result.frameHeight) {
|
|
772
|
+
this.statsResults.resolutions[mediaType][sendrecvType].width = result.frameWidth;
|
|
773
|
+
this.statsResults.resolutions[mediaType][sendrecvType].height = result.frameHeight;
|
|
774
|
+
this.statsResults.resolutions[mediaType][sendrecvType].framesSent = result.framesSent;
|
|
775
|
+
this.statsResults.resolutions[mediaType][sendrecvType].hugeFramesSent = result.hugeFramesSent;
|
|
776
|
+
}
|
|
752
777
|
if (!this.statsResults.internal[mediaType][sendrecvType].prevBytesSent) {
|
|
753
778
|
this.statsResults.internal[mediaType][sendrecvType].prevBytesSent = result.bytesSent;
|
|
754
779
|
}
|
|
@@ -804,6 +829,13 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
804
829
|
var sendrecvType = _constants.STATS.RECEIVE_DIRECTION;
|
|
805
830
|
if (result.bytesReceived) {
|
|
806
831
|
var kilobytes = 0;
|
|
832
|
+
var receiveSlot = this.receiveSlotCallback(result.ssrc);
|
|
833
|
+
var idAndCsi = receiveSlot ? "id: \"".concat(receiveSlot.id || '', "\"").concat(receiveSlot.csi ? " and csi: ".concat(receiveSlot.csi) : '') : '';
|
|
834
|
+
if (result.frameWidth && result.frameHeight) {
|
|
835
|
+
this.statsResults.resolutions[mediaType][sendrecvType].width = result.frameWidth;
|
|
836
|
+
this.statsResults.resolutions[mediaType][sendrecvType].height = result.frameHeight;
|
|
837
|
+
this.statsResults.resolutions[mediaType][sendrecvType].framesReceived = result.framesReceived;
|
|
838
|
+
}
|
|
807
839
|
if (!this.statsResults.internal[mediaType][sendrecvType].prevBytesReceived) {
|
|
808
840
|
this.statsResults.internal[mediaType][sendrecvType].prevBytesReceived = result.bytesReceived;
|
|
809
841
|
}
|
|
@@ -832,13 +864,15 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
832
864
|
this.statsResults[mediaType][sendrecvType].packetsReceived = result.packetsReceived - this.statsResults.internal[mediaType][sendrecvType].totalPacketsReceived;
|
|
833
865
|
this.statsResults.internal[mediaType][sendrecvType].totalPacketsReceived = result.packetsReceived;
|
|
834
866
|
if (this.statsResults[mediaType][sendrecvType].packetsReceived === 0) {
|
|
835
|
-
|
|
867
|
+
if (receiveSlot) {
|
|
868
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#processInboundRTPResult --> No packets received for receive slot ".concat(idAndCsi), this.statsResults[mediaType][sendrecvType].packetsReceived);
|
|
869
|
+
}
|
|
836
870
|
}
|
|
837
871
|
|
|
838
872
|
// Check the over all packet Lost ratio
|
|
839
873
|
this.statsResults[mediaType][sendrecvType].currentPacketLossRatio = this.statsResults[mediaType][sendrecvType].currentPacketsLost > 0 ? this.statsResults[mediaType][sendrecvType].currentPacketsLost / (this.statsResults[mediaType][sendrecvType].packetsReceived + this.statsResults[mediaType][sendrecvType].currentPacketsLost) : 0;
|
|
840
874
|
if (this.statsResults[mediaType][sendrecvType].currentPacketLossRatio > 3) {
|
|
841
|
-
_loggerProxy.default.logger.info(
|
|
875
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#processInboundRTPResult --> Packets getting lost from the receiver with slot ".concat(idAndCsi), this.statsResults[mediaType][sendrecvType].currentPacketLossRatio);
|
|
842
876
|
}
|
|
843
877
|
|
|
844
878
|
// TODO: check the packet loss value is negative values here
|
|
@@ -900,12 +934,6 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
900
934
|
return;
|
|
901
935
|
}
|
|
902
936
|
var sendrecvType = result.remoteSource === true ? _constants.STATS.RECEIVE_DIRECTION : _constants.STATS.SEND_DIRECTION;
|
|
903
|
-
if (result.frameWidth && result.frameHeight) {
|
|
904
|
-
this.statsResults.resolutions[mediaType][sendrecvType].width = result.frameWidth;
|
|
905
|
-
this.statsResults.resolutions[mediaType][sendrecvType].height = result.frameHeight;
|
|
906
|
-
this.statsResults.resolutions[mediaType][sendrecvType].framesSent = result.framesSent;
|
|
907
|
-
this.statsResults.resolutions[mediaType][sendrecvType].hugeFramesSent = result.hugeFramesSent;
|
|
908
|
-
}
|
|
909
937
|
if (sendrecvType === _constants.STATS.RECEIVE_DIRECTION) {
|
|
910
938
|
this.statsResults.resolutions[mediaType][sendrecvType].framesReceived = result.framesReceived;
|
|
911
939
|
this.statsResults.resolutions[mediaType][sendrecvType].framesDecoded = result.framesDecoded;
|