@webex/plugin-meetings 3.0.0-beta.2 → 3.0.0-beta.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/UPGRADING.md +9 -9
- package/browsers.js +19 -24
- package/dist/breakouts/breakout.js +116 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.js +23 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/index.js +226 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/common/browser-detection.js +1 -20
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +5 -20
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +0 -7
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +10 -24
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +11 -24
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +12 -25
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +10 -24
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.js +5 -33
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +10 -24
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +9 -23
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reconnection-in-progress.js +0 -17
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +10 -24
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +10 -24
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +6 -41
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +5 -25
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +0 -22
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +0 -23
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +0 -12
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +0 -15
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +0 -4
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -8
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +37 -60
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +4 -14
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +6 -6
- package/dist/config.js.map +1 -1
- package/dist/constants.js +88 -46
- package/dist/constants.js.map +1 -1
- package/dist/index.js +1 -17
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +12 -29
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -26
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +0 -15
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +4 -12
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.js +184 -190
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +3 -37
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +12 -38
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +92 -118
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +34 -91
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +67 -111
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +80 -114
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +2 -9
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +10 -12
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/effectsState.js +125 -190
- package/dist/meeting/effectsState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +5 -14
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +1692 -1925
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +36 -77
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +224 -230
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js +7 -0
- package/dist/meeting/request.type.js.map +1 -0
- package/dist/meeting/state.js +21 -31
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js +43 -215
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +6 -25
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +14 -32
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +193 -268
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +3 -15
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +98 -183
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +137 -228
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +5 -20
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +490 -560
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +24 -41
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +99 -155
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +78 -86
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +31 -68
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +3 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +93 -200
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +16 -39
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +9 -38
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +0 -2
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.js +1 -2
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +55 -135
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +57 -32
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/multistreamMedia.js +15 -21
- package/dist/multistream/multistreamMedia.js.map +1 -1
- package/dist/multistream/receiveSlot.js +10 -50
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +45 -82
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +18 -58
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +6 -40
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +362 -416
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +36 -57
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +21 -45
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +1 -31
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +0 -13
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.js +138 -182
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +3 -18
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/constants.js +13 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.js +109 -0
- package/dist/reactions/reactions.js.map +1 -0
- package/dist/reactions/reactions.type.js +36 -0
- package/dist/reactions/reactions.type.js.map +1 -0
- package/dist/reconnection-manager/index.js +322 -455
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +17 -0
- package/dist/recording-controller/enums.js.map +1 -0
- package/dist/recording-controller/index.js +343 -0
- package/dist/recording-controller/index.js.map +1 -0
- package/dist/recording-controller/util.js +63 -0
- package/dist/recording-controller/util.js.map +1 -0
- package/dist/roap/index.js +39 -64
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +94 -113
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +85 -94
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/global.js +0 -2
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +85 -175
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +72 -53
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +22 -47
- package/dist/transcription/index.js.map +1 -1
- package/internal-README.md +7 -6
- package/package.json +25 -20
- package/src/breakouts/README.md +190 -0
- package/src/breakouts/breakout.ts +110 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/index.ts +225 -0
- package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
- package/src/common/collection.ts +9 -7
- package/src/common/{config.js → config.ts} +1 -1
- package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
- package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
- package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
- package/src/common/errors/{media.js → media.ts} +11 -7
- package/src/common/errors/parameter.ts +11 -7
- package/src/common/errors/{password-error.js → password-error.ts} +11 -7
- package/src/common/errors/{permission.js → permission.ts} +10 -6
- package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
- package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
- package/src/common/errors/{stats.js → stats.ts} +11 -7
- package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -7
- package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
- package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
- package/src/common/events/{events.js → events.ts} +5 -1
- package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
- package/src/common/events/{util.js → util.ts} +2 -3
- package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
- package/src/common/logs/logger-proxy.ts +44 -0
- package/src/common/logs/{request.js → request.ts} +22 -9
- package/src/common/queue.ts +1 -2
- package/src/{config.js → config.ts} +17 -12
- package/src/constants.ts +40 -1
- package/src/index.js +1 -1
- package/src/locus-info/controlsUtils.ts +114 -0
- package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
- package/src/locus-info/{fullState.js → fullState.ts} +16 -12
- package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
- package/src/locus-info/{index.js → index.ts} +148 -64
- package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
- package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
- package/src/locus-info/{parser.js → parser.ts} +67 -79
- package/src/locus-info/{selfUtils.js → selfUtils.ts} +123 -68
- package/src/media/{index.js → index.ts} +181 -131
- package/src/media/{properties.js → properties.ts} +47 -28
- package/src/media/{util.js → util.ts} +2 -2
- package/src/mediaQualityMetrics/{config.js → config.ts} +46 -46
- package/src/meeting/{effectsState.js → effectsState.ts} +47 -41
- package/src/meeting/in-meeting-actions.ts +15 -3
- package/src/meeting/{index.js → index.ts} +2263 -1427
- package/src/meeting/{muteState.js → muteState.ts} +78 -42
- package/src/meeting/{request.js → request.ts} +292 -142
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/{state.js → state.ts} +50 -35
- package/src/meeting/{util.js → util.ts} +112 -115
- package/src/meeting-info/{collection.js → collection.ts} +6 -2
- package/src/meeting-info/{index.js → index.ts} +42 -36
- package/src/meeting-info/meeting-info-v2.ts +273 -0
- package/src/meeting-info/{request.js → request.ts} +14 -4
- package/src/meeting-info/{util.js → util.ts} +60 -51
- package/src/meeting-info/{utilv2.js → utilv2.ts} +65 -58
- package/src/meetings/{collection.js → collection.ts} +6 -3
- package/src/meetings/index.ts +1159 -0
- package/src/meetings/{request.js → request.ts} +32 -25
- package/src/meetings/{util.js → util.ts} +34 -32
- package/src/member/{index.js → index.ts} +102 -56
- package/src/member/{util.js → util.ts} +52 -25
- package/src/members/{collection.js → collection.ts} +2 -2
- package/src/members/{index.js → index.ts} +219 -142
- package/src/members/{request.js → request.ts} +60 -16
- package/src/members/{util.js → util.ts} +50 -48
- package/src/metrics/{config.js → config.ts} +254 -83
- package/src/metrics/{constants.js → constants.ts} +0 -2
- package/src/metrics/{index.js → index.ts} +106 -74
- package/src/multistream/mediaRequestManager.ts +81 -15
- package/src/multistream/multistreamMedia.ts +5 -0
- package/src/multistream/receiveSlot.ts +18 -12
- package/src/multistream/receiveSlotManager.ts +23 -21
- package/src/multistream/remoteMedia.ts +15 -5
- package/src/multistream/remoteMediaGroup.ts +4 -3
- package/src/multistream/remoteMediaManager.ts +153 -37
- package/src/networkQualityMonitor/{index.js → index.ts} +37 -25
- package/src/personal-meeting-room/{index.js → index.ts} +28 -19
- package/src/personal-meeting-room/{request.js → request.ts} +13 -4
- package/src/personal-meeting-room/{util.js → util.ts} +4 -4
- package/src/reachability/{index.js → index.ts} +99 -83
- package/src/reachability/request.ts +39 -33
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +104 -0
- package/src/reactions/reactions.type.ts +62 -0
- package/src/reconnection-manager/{index.js → index.ts} +195 -102
- package/src/recording-controller/enums.ts +8 -0
- package/src/recording-controller/index.ts +315 -0
- package/src/recording-controller/util.ts +58 -0
- package/src/roap/{index.js → index.ts} +73 -56
- package/src/roap/request.ts +157 -0
- package/src/roap/turnDiscovery.ts +77 -37
- package/src/statsAnalyzer/{global.js → global.ts} +30 -33
- package/src/statsAnalyzer/{index.js → index.ts} +468 -192
- package/src/statsAnalyzer/mqaUtil.ts +290 -0
- package/src/transcription/{index.js → index.ts} +46 -39
- package/test/integration/spec/journey.js +664 -463
- package/test/integration/spec/space-meeting.js +320 -206
- package/test/integration/spec/transcription.js +7 -8
- package/test/unit/spec/breakouts/breakout.ts +119 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- package/test/unit/spec/breakouts/index.ts +293 -0
- package/test/unit/spec/common/browser-detection.js +9 -28
- package/test/unit/spec/fixture/locus.js +92 -90
- package/test/unit/spec/locus-info/controlsUtils.js +25 -5
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +104 -2
- package/test/unit/spec/locus-info/infoUtils.js +41 -32
- package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
- package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
- package/test/unit/spec/locus-info/parser.js +3 -9
- package/test/unit/spec/locus-info/selfConstant.js +97 -103
- package/test/unit/spec/locus-info/selfUtils.js +105 -12
- package/test/unit/spec/media/index.ts +31 -47
- package/test/unit/spec/media/properties.ts +9 -9
- package/test/unit/spec/meeting/effectsState.js +39 -45
- package/test/unit/spec/meeting/in-meeting-actions.ts +5 -2
- package/test/unit/spec/meeting/index.js +2017 -742
- package/test/unit/spec/meeting/muteState.js +42 -33
- package/test/unit/spec/meeting/request.js +115 -44
- package/test/unit/spec/meeting/utils.js +104 -171
- package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
- package/test/unit/spec/meeting-info/request.js +7 -9
- package/test/unit/spec/meeting-info/util.js +11 -12
- package/test/unit/spec/meeting-info/utilv2.js +110 -74
- package/test/unit/spec/meetings/collection.js +1 -1
- package/test/unit/spec/meetings/index.js +439 -257
- package/test/unit/spec/meetings/utils.js +14 -12
- package/test/unit/spec/member/index.js +0 -1
- package/test/unit/spec/member/util.js +31 -7
- package/test/unit/spec/members/index.js +104 -54
- package/test/unit/spec/members/request.js +29 -20
- package/test/unit/spec/members/utils.js +8 -5
- package/test/unit/spec/metrics/index.js +16 -21
- package/test/unit/spec/multistream/mediaRequestManager.ts +316 -50
- package/test/unit/spec/multistream/receiveSlot.ts +6 -6
- package/test/unit/spec/multistream/receiveSlotManager.ts +13 -13
- package/test/unit/spec/multistream/remoteMedia.ts +10 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +412 -65
- package/test/unit/spec/networkQualityMonitor/index.js +21 -15
- package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
- package/test/unit/spec/reachability/index.ts +58 -26
- package/test/unit/spec/reconnection-manager/index.js +102 -9
- package/test/unit/spec/recording-controller/index.js +231 -0
- package/test/unit/spec/recording-controller/util.js +102 -0
- package/test/unit/spec/roap/index.ts +2 -1
- package/test/unit/spec/roap/request.ts +114 -0
- package/test/unit/spec/roap/turnDiscovery.ts +64 -45
- package/test/unit/spec/stats-analyzer/index.js +27 -22
- package/test/utils/cmr.js +44 -42
- package/test/utils/testUtils.js +83 -74
- package/test/utils/webex-config.js +18 -18
- package/test/utils/webex-test-users.js +54 -50
- package/tsconfig.json +6 -0
- package/dist/media/internal-media-core-wrapper.js +0 -22
- package/dist/media/internal-media-core-wrapper.js.map +0 -1
- package/dist/peer-connection-manager/util.js +0 -124
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/src/common/logs/logger-proxy.js +0 -33
- package/src/locus-info/controlsUtils.js +0 -102
- package/src/media/internal-media-core-wrapper.ts +0 -9
- package/src/meeting-info/meeting-info-v2.js +0 -255
- package/src/meetings/index.js +0 -1015
- package/src/peer-connection-manager/util.ts +0 -117
- package/src/roap/request.js +0 -127
- package/src/statsAnalyzer/mqaUtil.js +0 -173
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import EventsScope from '../common/events/events-scope';
|
|
2
2
|
import {EVENT_TRIGGERS, STATS} from '../constants';
|
|
3
3
|
|
|
4
|
-
|
|
5
4
|
/**
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
* Meeting - network quality event
|
|
6
|
+
* Emitted on each interval of retrieving stats Analyzer data
|
|
7
|
+
* @event network:quality
|
|
8
|
+
* @type {Object}
|
|
9
|
+
* @property {string} mediaType {video|audio}
|
|
10
|
+
* @property {number} networkQualityScore - value determined in determineUplinkNetworkQuality
|
|
11
|
+
* @memberof NetworkQualityMonitor
|
|
12
|
+
*/
|
|
14
13
|
/**
|
|
15
14
|
* NetworkQualityMonitor class that will emit events based on detected quality
|
|
16
15
|
*
|
|
@@ -18,6 +17,13 @@ import {EVENT_TRIGGERS, STATS} from '../constants';
|
|
|
18
17
|
* @extends {EventsScope}
|
|
19
18
|
*/
|
|
20
19
|
export default class NetworkQualityMonitor extends EventsScope {
|
|
20
|
+
config: any;
|
|
21
|
+
frequencyTypes: any;
|
|
22
|
+
indicatorTypes: any;
|
|
23
|
+
mediaType: any;
|
|
24
|
+
networkQualityScore: any;
|
|
25
|
+
networkQualityStatus: any;
|
|
26
|
+
|
|
21
27
|
/**
|
|
22
28
|
* Creates a new instance of NetworkQualityMonitor
|
|
23
29
|
* @constructor
|
|
@@ -29,25 +35,25 @@ export default class NetworkQualityMonitor extends EventsScope {
|
|
|
29
35
|
* @property {Object} networkQualityStatus - hash object based on indicatorTypes and frequencyTypes
|
|
30
36
|
* @property {string} mediaType - audio|video
|
|
31
37
|
*/
|
|
32
|
-
constructor(config) {
|
|
38
|
+
constructor(config: any) {
|
|
33
39
|
super();
|
|
34
40
|
this.config = config;
|
|
35
41
|
this.indicatorTypes = Object.freeze({
|
|
36
42
|
PACKETLOSS: 'packetLoss',
|
|
37
43
|
LATENCY: 'latency',
|
|
38
|
-
JITTER: 'jitter'
|
|
44
|
+
JITTER: 'jitter',
|
|
39
45
|
});
|
|
40
46
|
this.frequencyTypes = Object.freeze({
|
|
41
47
|
UPLINK: 'uplink',
|
|
42
|
-
DOWNLINK: 'downlink'
|
|
48
|
+
DOWNLINK: 'downlink',
|
|
43
49
|
});
|
|
44
50
|
this.networkQualityScore = 1;
|
|
45
51
|
this.networkQualityStatus = {
|
|
46
52
|
[this.frequencyTypes.UPLINK]: {
|
|
47
53
|
[STATS.VIDEO_CORRELATE]: {},
|
|
48
54
|
[STATS.AUDIO_CORRELATE]: {},
|
|
49
|
-
[STATS.SHARE_CORRELATE]: {}
|
|
50
|
-
}
|
|
55
|
+
[STATS.SHARE_CORRELATE]: {},
|
|
56
|
+
},
|
|
51
57
|
};
|
|
52
58
|
this.mediaType = null;
|
|
53
59
|
}
|
|
@@ -62,12 +68,12 @@ export default class NetworkQualityMonitor extends EventsScope {
|
|
|
62
68
|
this.emit(
|
|
63
69
|
{
|
|
64
70
|
file: 'networkQualityMonitor',
|
|
65
|
-
function: 'emitNetworkQuality'
|
|
71
|
+
function: 'emitNetworkQuality',
|
|
66
72
|
},
|
|
67
73
|
EVENT_TRIGGERS.NETWORK_QUALITY,
|
|
68
74
|
{
|
|
69
75
|
mediaType: this.mediaType,
|
|
70
|
-
networkQualityScore: this.networkQualityScore
|
|
76
|
+
networkQualityScore: this.networkQualityScore,
|
|
71
77
|
}
|
|
72
78
|
);
|
|
73
79
|
}
|
|
@@ -85,7 +91,6 @@ export default class NetworkQualityMonitor extends EventsScope {
|
|
|
85
91
|
this.mediaType = null;
|
|
86
92
|
}
|
|
87
93
|
|
|
88
|
-
|
|
89
94
|
/**
|
|
90
95
|
* filter data to determine uplink network quality, invoked on same interval as stats analyzer remote-inbout-rtp
|
|
91
96
|
* @param {Object} configObj
|
|
@@ -96,7 +101,15 @@ export default class NetworkQualityMonitor extends EventsScope {
|
|
|
96
101
|
* @public
|
|
97
102
|
* @memberof NetworkQualityMonitor
|
|
98
103
|
*/
|
|
99
|
-
determineUplinkNetworkQuality({
|
|
104
|
+
public determineUplinkNetworkQuality({
|
|
105
|
+
mediaType,
|
|
106
|
+
remoteRtpResults,
|
|
107
|
+
statsAnalyzerCurrentStats,
|
|
108
|
+
}: {
|
|
109
|
+
mediaType: string;
|
|
110
|
+
remoteRtpResults: any;
|
|
111
|
+
statsAnalyzerCurrentStats: object;
|
|
112
|
+
}) {
|
|
100
113
|
const roundTripTimeInMilliseconds = remoteRtpResults.roundTripTime * 1000;
|
|
101
114
|
const jitterInMilliseconds = remoteRtpResults.jitter * 1000;
|
|
102
115
|
const {currentPacketLossRatio} = statsAnalyzerCurrentStats[mediaType].send;
|
|
@@ -112,8 +125,7 @@ export default class NetworkQualityMonitor extends EventsScope {
|
|
|
112
125
|
* @returns {boolean}
|
|
113
126
|
*/
|
|
114
127
|
const determinePacketLoss = () => {
|
|
115
|
-
if (currentPacketLossRatio >
|
|
116
|
-
this.config.videoPacketLossRatioThreshold) {
|
|
128
|
+
if (currentPacketLossRatio > this.config.videoPacketLossRatioThreshold) {
|
|
117
129
|
this.networkQualityScore = 0;
|
|
118
130
|
|
|
119
131
|
return false;
|
|
@@ -157,7 +169,8 @@ export default class NetworkQualityMonitor extends EventsScope {
|
|
|
157
169
|
* @param {(number|undefined)} value
|
|
158
170
|
* @returns {(number|null)}
|
|
159
171
|
*/
|
|
160
|
-
const determineIfUndefined = (value
|
|
172
|
+
const determineIfUndefined = (value: number | undefined) =>
|
|
173
|
+
typeof value === 'undefined' ? null : value;
|
|
161
174
|
|
|
162
175
|
/**
|
|
163
176
|
* Values for some browsers specifically Safari will be undefined we explicitly set to null
|
|
@@ -167,20 +180,19 @@ export default class NetworkQualityMonitor extends EventsScope {
|
|
|
167
180
|
// PACKET LOSS
|
|
168
181
|
this.networkQualityStatus[UPLINK][mediaType][PACKETLOSS] = {
|
|
169
182
|
acceptable: determinePacketLoss(),
|
|
170
|
-
value: determineIfUndefined(currentPacketLossRatio)
|
|
183
|
+
value: determineIfUndefined(currentPacketLossRatio),
|
|
171
184
|
};
|
|
172
185
|
|
|
173
|
-
|
|
174
186
|
// LATENCY measured in Round trip time
|
|
175
187
|
this.networkQualityStatus[UPLINK][mediaType][LATENCY] = {
|
|
176
188
|
acceptable: determineLatency(),
|
|
177
|
-
value: determineIfUndefined(remoteRtpResults.roundTripTime)
|
|
189
|
+
value: determineIfUndefined(remoteRtpResults.roundTripTime),
|
|
178
190
|
};
|
|
179
191
|
|
|
180
192
|
// JITTER
|
|
181
193
|
this.networkQualityStatus[UPLINK][mediaType][JITTER] = {
|
|
182
194
|
acceptable: deterMineJitter(),
|
|
183
|
-
value: determineIfUndefined(remoteRtpResults.jitter)
|
|
195
|
+
value: determineIfUndefined(remoteRtpResults.jitter),
|
|
184
196
|
};
|
|
185
197
|
|
|
186
198
|
this.updateNetworkQualityStatus();
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// @ts-ignore
|
|
1
2
|
import {StatelessWebexPlugin} from '@webex/webex-core';
|
|
2
3
|
|
|
3
4
|
import {MEETINGS, _PERSONAL_ROOM_} from '../constants';
|
|
@@ -5,11 +6,20 @@ import ParameterError from '../common/errors/parameter';
|
|
|
5
6
|
|
|
6
7
|
import PersonalMeetingRoomRequest from './request';
|
|
7
8
|
|
|
8
|
-
|
|
9
9
|
/**
|
|
10
10
|
* @class PersonalMeetingRoom
|
|
11
11
|
*/
|
|
12
12
|
export default class PersonalMeetingRoom extends StatelessWebexPlugin {
|
|
13
|
+
link: any;
|
|
14
|
+
meetingInfo: any;
|
|
15
|
+
name: any;
|
|
16
|
+
personalMeetingRoomRequest: any;
|
|
17
|
+
pmr: any;
|
|
18
|
+
sipUri: any;
|
|
19
|
+
userId: any;
|
|
20
|
+
meetingLink: any;
|
|
21
|
+
number: any;
|
|
22
|
+
|
|
13
23
|
namespace = MEETINGS;
|
|
14
24
|
|
|
15
25
|
/**
|
|
@@ -17,7 +27,7 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
|
|
|
17
27
|
* @param {Object} attrs
|
|
18
28
|
* @param {Object} options
|
|
19
29
|
*/
|
|
20
|
-
constructor(attrs, options) {
|
|
30
|
+
constructor(attrs: any, options: any) {
|
|
21
31
|
super({}, options);
|
|
22
32
|
/**
|
|
23
33
|
* The pmr server object
|
|
@@ -25,7 +35,7 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
|
|
|
25
35
|
* @type {Object}
|
|
26
36
|
* @public
|
|
27
37
|
* @memberof PersonalMeetingRoom
|
|
28
|
-
|
|
38
|
+
*/
|
|
29
39
|
this.pmr = null;
|
|
30
40
|
/**
|
|
31
41
|
* The pmr sip Uri
|
|
@@ -33,7 +43,7 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
|
|
|
33
43
|
* @type {String}
|
|
34
44
|
* @public
|
|
35
45
|
* @memberof PersonalMeetingRoom
|
|
36
|
-
|
|
46
|
+
*/
|
|
37
47
|
this.sipUri = null;
|
|
38
48
|
/**
|
|
39
49
|
* The pmr link
|
|
@@ -41,7 +51,7 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
|
|
|
41
51
|
* @type {String}
|
|
42
52
|
* @public
|
|
43
53
|
* @memberof PersonalMeetingRoom
|
|
44
|
-
|
|
54
|
+
*/
|
|
45
55
|
this.link = null;
|
|
46
56
|
/**
|
|
47
57
|
* The pmr server object
|
|
@@ -49,7 +59,7 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
|
|
|
49
59
|
* @type {Object}
|
|
50
60
|
* @public
|
|
51
61
|
* @memberof PersonalMeetingRoom
|
|
52
|
-
|
|
62
|
+
*/
|
|
53
63
|
this.userId = null;
|
|
54
64
|
/**
|
|
55
65
|
* The pmr name
|
|
@@ -57,7 +67,7 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
|
|
|
57
67
|
* @type {String}
|
|
58
68
|
* @public
|
|
59
69
|
* @memberof PersonalMeetingRoom
|
|
60
|
-
|
|
70
|
+
*/
|
|
61
71
|
this.name = null;
|
|
62
72
|
/**
|
|
63
73
|
* The meeting info request server interface
|
|
@@ -65,7 +75,7 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
|
|
|
65
75
|
* @type {MeetingInfo}
|
|
66
76
|
* @private
|
|
67
77
|
* @memberof PersonalMeetingRoom
|
|
68
|
-
|
|
78
|
+
*/
|
|
69
79
|
this.meetingInfo = attrs.meetingInfo;
|
|
70
80
|
/**
|
|
71
81
|
* The pmr server request interface
|
|
@@ -73,7 +83,8 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
|
|
|
73
83
|
* @type {Object}
|
|
74
84
|
* @private
|
|
75
85
|
* @memberof PersonalMeetingRoom
|
|
76
|
-
|
|
86
|
+
*/
|
|
87
|
+
// @ts-ignore
|
|
77
88
|
this.personalMeetingRoomRequest = new PersonalMeetingRoomRequest({}, options);
|
|
78
89
|
}
|
|
79
90
|
|
|
@@ -86,19 +97,19 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
|
|
|
86
97
|
* @public
|
|
87
98
|
* @memberof PersonalMeetingRoom
|
|
88
99
|
*/
|
|
89
|
-
claim(link, pin, preferred = true) {
|
|
100
|
+
public claim(link: string, pin: string, preferred = true) {
|
|
90
101
|
const options = {
|
|
102
|
+
// @ts-ignore
|
|
91
103
|
userId: this.webex.internal.device.userId,
|
|
92
104
|
passcode: pin,
|
|
93
105
|
meetingAddress: link,
|
|
94
|
-
preferred
|
|
106
|
+
preferred,
|
|
95
107
|
};
|
|
96
108
|
|
|
97
109
|
return this.personalMeetingRoomRequest.claimPmr(options).then((pmr) => {
|
|
98
110
|
if (pmr && pmr.body) {
|
|
99
111
|
this.set(pmr.body);
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
112
|
+
} else {
|
|
102
113
|
return Promise.reject(new ParameterError('No PMR body provided. PMR values not updated.'));
|
|
103
114
|
}
|
|
104
115
|
|
|
@@ -112,7 +123,7 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
|
|
|
112
123
|
* @private
|
|
113
124
|
* @memberof PersonalMeetingRoom
|
|
114
125
|
*/
|
|
115
|
-
set(body) {
|
|
126
|
+
private set(body: any) {
|
|
116
127
|
this.pmr = body;
|
|
117
128
|
this.sipUri = body.sipMeetingUri;
|
|
118
129
|
this.meetingLink = body.webExMeetingLink || body.meetingLink;
|
|
@@ -128,17 +139,15 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
|
|
|
128
139
|
* @public
|
|
129
140
|
* @memberof PersonalMeetingRoom
|
|
130
141
|
*/
|
|
131
|
-
get() {
|
|
142
|
+
public get() {
|
|
132
143
|
const options = {
|
|
133
|
-
type: _PERSONAL_ROOM_
|
|
134
|
-
|
|
144
|
+
type: _PERSONAL_ROOM_,
|
|
135
145
|
};
|
|
136
146
|
|
|
137
147
|
return this.meetingInfo.fetchMeetingInfo(options).then((pmr) => {
|
|
138
148
|
if (pmr && pmr.body && pmr.body.isPmr) {
|
|
139
149
|
this.set(pmr.body);
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
150
|
+
} else {
|
|
142
151
|
return Promise.reject(new TypeError('The PMR requested is NOT a PMR. PMR values not set.'));
|
|
143
152
|
}
|
|
144
153
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// @ts-ignore
|
|
1
2
|
import {StatelessWebexPlugin} from '@webex/webex-core';
|
|
2
3
|
|
|
3
4
|
import {MEETINGS} from '../constants';
|
|
@@ -5,7 +6,6 @@ import ParameterError from '../common/errors/parameter';
|
|
|
5
6
|
|
|
6
7
|
import PersonalMeetingRoomUtil from './util';
|
|
7
8
|
|
|
8
|
-
|
|
9
9
|
/**
|
|
10
10
|
* @class MeetingInfoRequest
|
|
11
11
|
*/
|
|
@@ -18,9 +18,17 @@ export default class PersonalMeetingRoomRequest extends StatelessWebexPlugin {
|
|
|
18
18
|
* @returns {Promise} returns a promise that resolves/rejects the result of the request
|
|
19
19
|
* @memberof PersonalMeetingRoomRequest
|
|
20
20
|
*/
|
|
21
|
-
claimPmr(options) {
|
|
22
|
-
if (
|
|
23
|
-
|
|
21
|
+
claimPmr(options: any) {
|
|
22
|
+
if (
|
|
23
|
+
!options ||
|
|
24
|
+
!options.userId ||
|
|
25
|
+
!options.passcode ||
|
|
26
|
+
!options.meetingAddress ||
|
|
27
|
+
!options.preferred
|
|
28
|
+
) {
|
|
29
|
+
throw new ParameterError(
|
|
30
|
+
'Claiming a PMR should be done with userId, passcode, preferred, and meetingAddress in options.'
|
|
31
|
+
);
|
|
24
32
|
}
|
|
25
33
|
const validPin = PersonalMeetingRoomUtil.getClaimPmrPin(options.passcode);
|
|
26
34
|
|
|
@@ -34,6 +42,7 @@ export default class PersonalMeetingRoomRequest extends StatelessWebexPlugin {
|
|
|
34
42
|
}
|
|
35
43
|
const request = PersonalMeetingRoomUtil.getClaimedRequestParams(validLink, validPin, options);
|
|
36
44
|
|
|
45
|
+
// @ts-ignore
|
|
37
46
|
return this.request(request);
|
|
38
47
|
}
|
|
39
48
|
}
|
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
CMR_MEETINGS,
|
|
7
7
|
CLAIM,
|
|
8
8
|
HECATE,
|
|
9
|
-
WEBEX_DOT_COM
|
|
9
|
+
WEBEX_DOT_COM,
|
|
10
10
|
} from '../constants';
|
|
11
11
|
|
|
12
|
-
const PersonalMeetingRoomUtil = {};
|
|
12
|
+
const PersonalMeetingRoomUtil: any = {};
|
|
13
13
|
|
|
14
14
|
PersonalMeetingRoomUtil.getClaimPmrLink = (pmrLink) => {
|
|
15
15
|
let validator = VALID_PMR_ADDRESS.test(pmrLink);
|
|
@@ -42,8 +42,8 @@ PersonalMeetingRoomUtil.getClaimedRequestParams = (link, pin, options) => ({
|
|
|
42
42
|
userId: options.userId,
|
|
43
43
|
passcode: pin,
|
|
44
44
|
preferred: options.preferred,
|
|
45
|
-
meetingAddress: link
|
|
46
|
-
}
|
|
45
|
+
meetingAddress: link,
|
|
46
|
+
},
|
|
47
47
|
});
|
|
48
48
|
|
|
49
49
|
export default PersonalMeetingRoomUtil;
|