@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
package/dist/meetings/util.js
CHANGED
|
@@ -1,74 +1,59 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
5
|
_Object$defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
|
|
11
8
|
exports.default = void 0;
|
|
12
|
-
|
|
13
9
|
var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
|
|
14
|
-
|
|
15
10
|
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
16
|
-
|
|
17
11
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
18
|
-
|
|
19
12
|
var _constants = require("../constants");
|
|
20
|
-
|
|
21
13
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
22
|
-
|
|
23
14
|
var _triggerProxy = _interopRequireDefault(require("../common/events/trigger-proxy"));
|
|
24
|
-
|
|
25
15
|
/* globals window */
|
|
26
16
|
|
|
27
17
|
/**
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
18
|
+
* Meetings Media Codec Missing Event
|
|
19
|
+
* Emitted when H.264 codec is not
|
|
20
|
+
* found in the browser.
|
|
21
|
+
* @event media:codec:missing
|
|
22
|
+
* @instance
|
|
23
|
+
* @memberof MeetingsUtil
|
|
24
|
+
*/
|
|
35
25
|
|
|
36
26
|
/**
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
var MeetingsUtil = {};
|
|
27
|
+
* Meetings Media Codec Loaded Event
|
|
28
|
+
* Emitted when H.264 codec has been
|
|
29
|
+
* loaded in the browser.
|
|
30
|
+
* @event media:codec:loaded
|
|
31
|
+
* @instance
|
|
32
|
+
* @memberof MeetingsUtil
|
|
33
|
+
*/
|
|
45
34
|
|
|
35
|
+
var MeetingsUtil = {};
|
|
46
36
|
MeetingsUtil.getMeetingAddedType = function (type) {
|
|
47
37
|
return type === _constants._LOCUS_ID_ ? _constants._INCOMING_ : _constants._CREATED_;
|
|
48
38
|
};
|
|
49
|
-
|
|
50
39
|
MeetingsUtil.handleRoapMercury = function (envelope, meetingCollection) {
|
|
51
40
|
var data = envelope.data;
|
|
52
41
|
var eventType = data.eventType;
|
|
53
|
-
|
|
54
42
|
if (eventType === _constants.LOCUSEVENT.MESSAGE_ROAP) {
|
|
55
43
|
var meeting = meetingCollection.getByKey(_constants.CORRELATION_ID, data.correlationId);
|
|
56
|
-
|
|
57
44
|
if (meeting) {
|
|
58
45
|
var _data$message = data.message,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
46
|
+
seq = _data$message.seq,
|
|
47
|
+
messageType = _data$message.messageType,
|
|
48
|
+
tieBreaker = _data$message.tieBreaker,
|
|
49
|
+
errorType = _data$message.errorType,
|
|
50
|
+
errorCause = _data$message.errorCause;
|
|
65
51
|
if (messageType === _constants.ROAP.ROAP_TYPES.TURN_DISCOVERY_RESPONSE) {
|
|
66
52
|
// turn discovery is not part of normal roap protocol and so we are not handling it
|
|
67
53
|
// through the usual roap state machine
|
|
68
54
|
meeting.roap.turnDiscovery.handleTurnDiscoveryResponse(data.message);
|
|
69
55
|
} else {
|
|
70
56
|
var _data$message$sdps;
|
|
71
|
-
|
|
72
57
|
var roapMessage = {
|
|
73
58
|
seq: seq,
|
|
74
59
|
messageType: messageType,
|
|
@@ -82,91 +67,73 @@ MeetingsUtil.handleRoapMercury = function (envelope, meetingCollection) {
|
|
|
82
67
|
}
|
|
83
68
|
}
|
|
84
69
|
};
|
|
85
|
-
|
|
86
70
|
MeetingsUtil.checkForCorrelationId = function (deviceUrl, locus) {
|
|
87
71
|
var devices = [];
|
|
88
|
-
|
|
89
72
|
if (locus) {
|
|
90
73
|
if (locus && locus.self && locus.self.devices) {
|
|
91
74
|
devices = locus.self.devices;
|
|
92
75
|
}
|
|
93
|
-
|
|
94
76
|
var foundDevice = devices.find(function (device) {
|
|
95
77
|
return device.url === deviceUrl;
|
|
96
78
|
});
|
|
97
|
-
|
|
98
79
|
if (foundDevice && foundDevice.correlationId) {
|
|
99
80
|
return foundDevice.correlationId;
|
|
100
81
|
}
|
|
101
82
|
}
|
|
102
|
-
|
|
103
83
|
return false;
|
|
104
84
|
};
|
|
105
|
-
|
|
106
85
|
MeetingsUtil.parseDefaultSiteFromMeetingPreferences = function (userPreferences) {
|
|
107
86
|
var result = '';
|
|
108
|
-
|
|
109
87
|
if (userPreferences && userPreferences.sites) {
|
|
110
88
|
var defaultSite = userPreferences.sites.find(function (site) {
|
|
111
89
|
return site.default;
|
|
112
90
|
});
|
|
113
|
-
|
|
114
91
|
if (defaultSite) {
|
|
115
92
|
result = defaultSite.siteUrl;
|
|
116
93
|
}
|
|
117
94
|
}
|
|
118
|
-
|
|
119
95
|
return result;
|
|
120
96
|
};
|
|
97
|
+
|
|
121
98
|
/**
|
|
122
99
|
* Will check to see if the H.264 media codec is supported.
|
|
123
100
|
* @async
|
|
124
101
|
* @private
|
|
125
102
|
* @returns {Promise<boolean>}
|
|
126
103
|
*/
|
|
127
|
-
|
|
128
|
-
|
|
129
104
|
MeetingsUtil.hasH264Codec = /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
130
105
|
var hasCodec, pc, offer;
|
|
131
106
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
132
|
-
while (1) {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
_loggerProxy.default.logger.warn('Meetings:util#hasH264Codec --> Error creating peerConnection for H.264 test.');
|
|
159
|
-
|
|
160
|
-
case 13:
|
|
161
|
-
return _context.abrupt("return", hasCodec);
|
|
162
|
-
|
|
163
|
-
case 14:
|
|
164
|
-
case "end":
|
|
165
|
-
return _context.stop();
|
|
166
|
-
}
|
|
107
|
+
while (1) switch (_context.prev = _context.next) {
|
|
108
|
+
case 0:
|
|
109
|
+
hasCodec = false;
|
|
110
|
+
_context.prev = 1;
|
|
111
|
+
pc = new window.RTCPeerConnection();
|
|
112
|
+
_context.next = 5;
|
|
113
|
+
return pc.createOffer({
|
|
114
|
+
offerToReceiveVideo: true
|
|
115
|
+
});
|
|
116
|
+
case 5:
|
|
117
|
+
offer = _context.sent;
|
|
118
|
+
if (offer.sdp.match(/^a=rtpmap:\d+\s+H264\/\d+/m)) {
|
|
119
|
+
hasCodec = true;
|
|
120
|
+
}
|
|
121
|
+
pc.close();
|
|
122
|
+
_context.next = 13;
|
|
123
|
+
break;
|
|
124
|
+
case 10:
|
|
125
|
+
_context.prev = 10;
|
|
126
|
+
_context.t0 = _context["catch"](1);
|
|
127
|
+
_loggerProxy.default.logger.warn('Meetings:util#hasH264Codec --> Error creating peerConnection for H.264 test.');
|
|
128
|
+
case 13:
|
|
129
|
+
return _context.abrupt("return", hasCodec);
|
|
130
|
+
case 14:
|
|
131
|
+
case "end":
|
|
132
|
+
return _context.stop();
|
|
167
133
|
}
|
|
168
134
|
}, _callee, null, [[1, 10]]);
|
|
169
135
|
}));
|
|
136
|
+
|
|
170
137
|
/**
|
|
171
138
|
* Notifies the user whether or not the H.264
|
|
172
139
|
* codec is present. Will continuously check
|
|
@@ -178,97 +145,74 @@ MeetingsUtil.hasH264Codec = /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__P
|
|
|
178
145
|
* @param {boolean} options.disableNotifications Default is false. Boolean to enable/disable notification and events
|
|
179
146
|
* @returns {undefined}
|
|
180
147
|
*/
|
|
181
|
-
|
|
182
148
|
MeetingsUtil.checkH264Support = /*#__PURE__*/function () {
|
|
183
149
|
var _checkH264Support = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(options) {
|
|
184
150
|
var _this = this;
|
|
185
|
-
|
|
186
151
|
var hasH264Codec, _ref2, firstChecked, disableNotifications, delay, maxDuration, shouldTrigger, shouldStopChecking;
|
|
187
|
-
|
|
188
152
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
189
|
-
while (1) {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
153
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
154
|
+
case 0:
|
|
155
|
+
hasH264Codec = MeetingsUtil.hasH264Codec;
|
|
156
|
+
_ref2 = options || {}, firstChecked = _ref2.firstChecked, disableNotifications = _ref2.disableNotifications;
|
|
157
|
+
delay = 5e3; // ms
|
|
158
|
+
maxDuration = 3e5; // ms
|
|
159
|
+
shouldTrigger = firstChecked === undefined;
|
|
160
|
+
shouldStopChecking = firstChecked && (0, _now.default)() - firstChecked >= maxDuration; // Disable notifications and start H.264 download only
|
|
161
|
+
if (!disableNotifications) {
|
|
162
|
+
_context2.next = 9;
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
hasH264Codec();
|
|
166
|
+
return _context2.abrupt("return");
|
|
167
|
+
case 9:
|
|
168
|
+
_context2.next = 11;
|
|
169
|
+
return hasH264Codec();
|
|
170
|
+
case 11:
|
|
171
|
+
if (!_context2.sent) {
|
|
172
|
+
_context2.next = 15;
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
_triggerProxy.default.trigger(this, {
|
|
176
|
+
file: 'meetings/util',
|
|
177
|
+
function: 'checkH264Support'
|
|
178
|
+
}, _constants.EVENT_TRIGGERS.MEDIA_CODEC_LOADED);
|
|
179
|
+
_loggerProxy.default.logger.log('Meetings:util#checkH264Support --> H264 codec loaded successfully.');
|
|
180
|
+
return _context2.abrupt("return");
|
|
181
|
+
case 15:
|
|
182
|
+
if (!shouldStopChecking) {
|
|
183
|
+
_context2.next = 18;
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
_loggerProxy.default.logger.error('Meetings:util#checkH264Support --> Timed out waiting for H264 codec to load.');
|
|
187
|
+
return _context2.abrupt("return");
|
|
188
|
+
case 18:
|
|
189
|
+
// Trigger only once
|
|
190
|
+
if (shouldTrigger) {
|
|
219
191
|
_triggerProxy.default.trigger(this, {
|
|
220
192
|
file: 'meetings/util',
|
|
221
193
|
function: 'checkH264Support'
|
|
222
|
-
}, _constants.EVENT_TRIGGERS.
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
return _context2.abrupt("return");
|
|
227
|
-
|
|
228
|
-
case 15:
|
|
229
|
-
if (!shouldStopChecking) {
|
|
230
|
-
_context2.next = 18;
|
|
231
|
-
break;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
_loggerProxy.default.logger.error('Meetings:util#checkH264Support --> Timed out waiting for H264 codec to load.');
|
|
235
|
-
|
|
236
|
-
return _context2.abrupt("return");
|
|
237
|
-
|
|
238
|
-
case 18:
|
|
239
|
-
// Trigger only once
|
|
240
|
-
if (shouldTrigger) {
|
|
241
|
-
_triggerProxy.default.trigger(this, {
|
|
242
|
-
file: 'meetings/util',
|
|
243
|
-
function: 'checkH264Support'
|
|
244
|
-
}, _constants.EVENT_TRIGGERS.MEDIA_CODEC_MISSING);
|
|
245
|
-
|
|
246
|
-
_loggerProxy.default.logger.log('Meetings:util#checkH264Support --> H264 codec is missing.');
|
|
247
|
-
} // Keep checking in intervals to see if codec loaded
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
window.setTimeout(function () {
|
|
251
|
-
var timestamp = firstChecked || (0, _now.default)();
|
|
252
|
-
MeetingsUtil.checkH264Support.call(_this, {
|
|
253
|
-
firstChecked: timestamp
|
|
254
|
-
});
|
|
255
|
-
}, delay);
|
|
194
|
+
}, _constants.EVENT_TRIGGERS.MEDIA_CODEC_MISSING);
|
|
195
|
+
_loggerProxy.default.logger.log('Meetings:util#checkH264Support --> H264 codec is missing.');
|
|
196
|
+
}
|
|
256
197
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
198
|
+
// Keep checking in intervals to see if codec loaded
|
|
199
|
+
window.setTimeout(function () {
|
|
200
|
+
var timestamp = firstChecked || (0, _now.default)();
|
|
201
|
+
MeetingsUtil.checkH264Support.call(_this, {
|
|
202
|
+
firstChecked: timestamp
|
|
203
|
+
});
|
|
204
|
+
}, delay);
|
|
205
|
+
case 20:
|
|
206
|
+
case "end":
|
|
207
|
+
return _context2.stop();
|
|
261
208
|
}
|
|
262
209
|
}, _callee2, this);
|
|
263
210
|
}));
|
|
264
|
-
|
|
265
211
|
function checkH264Support(_x) {
|
|
266
212
|
return _checkH264Support.apply(this, arguments);
|
|
267
213
|
}
|
|
268
|
-
|
|
269
214
|
return checkH264Support;
|
|
270
215
|
}();
|
|
271
|
-
|
|
272
216
|
var _default = MeetingsUtil;
|
|
273
217
|
exports.default = _default;
|
|
274
218
|
//# sourceMappingURL=util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MeetingsUtil","getMeetingAddedType","type","_LOCUS_ID_","_INCOMING_","_CREATED_","handleRoapMercury","envelope","meetingCollection","data","eventType","LOCUSEVENT","MESSAGE_ROAP","meeting","getByKey","CORRELATION_ID","correlationId","message","seq","messageType","tieBreaker","errorType","errorCause","ROAP","ROAP_TYPES","TURN_DISCOVERY_RESPONSE","roap","turnDiscovery","handleTurnDiscoveryResponse","roapMessage","sdp","sdps","length","undefined","mediaProperties","webrtcMediaConnection","roapMessageReceived","checkForCorrelationId","deviceUrl","locus","devices","self","foundDevice","find","device","url","parseDefaultSiteFromMeetingPreferences","userPreferences","result","sites","defaultSite","site","default","siteUrl","hasH264Codec","hasCodec","pc","window","RTCPeerConnection","createOffer","offerToReceiveVideo","offer","match","close","LoggerProxy","logger","warn","checkH264Support","options","firstChecked","disableNotifications","delay","maxDuration","shouldTrigger","shouldStopChecking","Trigger","trigger","file","function","EVENT_TRIGGERS","MEDIA_CODEC_LOADED","log","error","MEDIA_CODEC_MISSING","setTimeout","timestamp","call"],"sources":["util.js"],"sourcesContent":["/* globals window */\n\nimport {\n _LOCUS_ID_,\n _INCOMING_,\n _CREATED_,\n LOCUSEVENT,\n CORRELATION_ID,\n EVENT_TRIGGERS,\n ROAP\n} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport Trigger from '../common/events/trigger-proxy';\n\n/**\n * Meetings Media Codec Missing Event\n * Emitted when H.264 codec is not\n * found in the browser.\n * @event media:codec:missing\n * @instance\n * @memberof MeetingsUtil\n */\n\n/**\n * Meetings Media Codec Loaded Event\n * Emitted when H.264 codec has been\n * loaded in the browser.\n * @event media:codec:loaded\n * @instance\n * @memberof MeetingsUtil\n */\n\nconst MeetingsUtil = {};\n\nMeetingsUtil.getMeetingAddedType = (type) => (type === _LOCUS_ID_ ? _INCOMING_ : _CREATED_);\n\nMeetingsUtil.handleRoapMercury = (envelope, meetingCollection) => {\n const {data} = envelope;\n const {eventType} = data;\n\n if (eventType === LOCUSEVENT.MESSAGE_ROAP) {\n const meeting = meetingCollection.getByKey(CORRELATION_ID, data.correlationId);\n\n if (meeting) {\n const {\n seq, messageType, tieBreaker, errorType, errorCause\n } = data.message;\n\n if (messageType === ROAP.ROAP_TYPES.TURN_DISCOVERY_RESPONSE) {\n // turn discovery is not part of normal roap protocol and so we are not handling it\n // through the usual roap state machine\n meeting.roap.turnDiscovery.handleTurnDiscoveryResponse(data.message);\n }\n else {\n const roapMessage = {\n seq,\n messageType,\n sdp: data.message.sdps?.length > 0 ? data.message.sdps[0] : undefined,\n tieBreaker,\n errorType,\n errorCause\n };\n\n meeting.mediaProperties.webrtcMediaConnection.roapMessageReceived(roapMessage);\n }\n }\n }\n};\n\nMeetingsUtil.checkForCorrelationId = (deviceUrl, locus) => {\n let devices = [];\n\n if (locus) {\n if (locus && locus.self && locus.self.devices) {\n devices = locus.self.devices;\n }\n\n const foundDevice = devices.find((device) => device.url === deviceUrl);\n\n if (foundDevice && foundDevice.correlationId) {\n return foundDevice.correlationId;\n }\n }\n\n return false;\n};\n\nMeetingsUtil.parseDefaultSiteFromMeetingPreferences = (userPreferences) => {\n let result = '';\n\n if (userPreferences && userPreferences.sites) {\n const defaultSite = userPreferences.sites.find((site) => site.default);\n\n if (defaultSite) {\n result = defaultSite.siteUrl;\n }\n }\n\n return result;\n};\n\n/**\n * Will check to see if the H.264 media codec is supported.\n * @async\n * @private\n * @returns {Promise<boolean>}\n */\nMeetingsUtil.hasH264Codec = async () => {\n let hasCodec = false;\n\n try {\n const pc = new window.RTCPeerConnection();\n const offer = await pc.createOffer({offerToReceiveVideo: true});\n\n if (offer.sdp.match(/^a=rtpmap:\\d+\\s+H264\\/\\d+/m)) {\n hasCodec = true;\n }\n pc.close();\n }\n catch (error) {\n LoggerProxy.logger.warn('Meetings:util#hasH264Codec --> Error creating peerConnection for H.264 test.');\n }\n\n return hasCodec;\n};\n\n\n/**\n * Notifies the user whether or not the H.264\n * codec is present. Will continuously check\n * until max duration.\n * @async\n * @private\n * @param {object} options\n * @param {Number} options.firstChecked Timestamp in milliseconds\n * @param {boolean} options.disableNotifications Default is false. Boolean to enable/disable notification and events\n * @returns {undefined}\n */\nMeetingsUtil.checkH264Support = async function checkH264Support(options) {\n const {hasH264Codec} = MeetingsUtil;\n const {firstChecked, disableNotifications} = options || {};\n const delay = 5e3; // ms\n const maxDuration = 3e5; // ms\n const shouldTrigger = (firstChecked === undefined);\n const shouldStopChecking = firstChecked && (Date.now() - firstChecked) >= maxDuration;\n\n // Disable notifications and start H.264 download only\n if (disableNotifications) {\n hasH264Codec();\n\n return;\n }\n\n // Codec loaded trigger event notification\n if (await hasH264Codec()) {\n Trigger.trigger(\n this,\n {\n file: 'meetings/util',\n function: 'checkH264Support'\n },\n EVENT_TRIGGERS.MEDIA_CODEC_LOADED\n );\n LoggerProxy.logger.log('Meetings:util#checkH264Support --> H264 codec loaded successfully.');\n\n return;\n }\n\n // Stop checking if past the timelimit\n if (shouldStopChecking) {\n LoggerProxy.logger.error('Meetings:util#checkH264Support --> Timed out waiting for H264 codec to load.');\n\n return;\n }\n\n // Trigger only once\n if (shouldTrigger) {\n Trigger.trigger(\n this,\n {\n file: 'meetings/util',\n function: 'checkH264Support'\n },\n EVENT_TRIGGERS.MEDIA_CODEC_MISSING\n );\n LoggerProxy.logger.log('Meetings:util#checkH264Support --> H264 codec is missing.');\n }\n\n // Keep checking in intervals to see if codec loaded\n window.setTimeout(() => {\n const timestamp = firstChecked || Date.now();\n\n MeetingsUtil.checkH264Support.call(this, {firstChecked: timestamp});\n }, delay);\n};\n\nexport default MeetingsUtil;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["MeetingsUtil","getMeetingAddedType","type","_LOCUS_ID_","_INCOMING_","_CREATED_","handleRoapMercury","envelope","meetingCollection","data","eventType","LOCUSEVENT","MESSAGE_ROAP","meeting","getByKey","CORRELATION_ID","correlationId","message","seq","messageType","tieBreaker","errorType","errorCause","ROAP","ROAP_TYPES","TURN_DISCOVERY_RESPONSE","roap","turnDiscovery","handleTurnDiscoveryResponse","roapMessage","sdp","sdps","length","undefined","mediaProperties","webrtcMediaConnection","roapMessageReceived","checkForCorrelationId","deviceUrl","locus","devices","self","foundDevice","find","device","url","parseDefaultSiteFromMeetingPreferences","userPreferences","result","sites","defaultSite","site","default","siteUrl","hasH264Codec","hasCodec","pc","window","RTCPeerConnection","createOffer","offerToReceiveVideo","offer","match","close","LoggerProxy","logger","warn","checkH264Support","options","firstChecked","disableNotifications","delay","maxDuration","shouldTrigger","shouldStopChecking","Trigger","trigger","file","function","EVENT_TRIGGERS","MEDIA_CODEC_LOADED","log","error","MEDIA_CODEC_MISSING","setTimeout","timestamp","call"],"sources":["util.ts"],"sourcesContent":["/* globals window */\n\nimport {\n _LOCUS_ID_,\n _INCOMING_,\n _CREATED_,\n LOCUSEVENT,\n CORRELATION_ID,\n EVENT_TRIGGERS,\n ROAP,\n} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport Trigger from '../common/events/trigger-proxy';\n\n/**\n * Meetings Media Codec Missing Event\n * Emitted when H.264 codec is not\n * found in the browser.\n * @event media:codec:missing\n * @instance\n * @memberof MeetingsUtil\n */\n\n/**\n * Meetings Media Codec Loaded Event\n * Emitted when H.264 codec has been\n * loaded in the browser.\n * @event media:codec:loaded\n * @instance\n * @memberof MeetingsUtil\n */\n\nconst MeetingsUtil: any = {};\n\nMeetingsUtil.getMeetingAddedType = (type) => (type === _LOCUS_ID_ ? _INCOMING_ : _CREATED_);\n\nMeetingsUtil.handleRoapMercury = (envelope, meetingCollection) => {\n const {data} = envelope;\n const {eventType} = data;\n\n if (eventType === LOCUSEVENT.MESSAGE_ROAP) {\n const meeting = meetingCollection.getByKey(CORRELATION_ID, data.correlationId);\n\n if (meeting) {\n const {seq, messageType, tieBreaker, errorType, errorCause} = data.message;\n\n if (messageType === ROAP.ROAP_TYPES.TURN_DISCOVERY_RESPONSE) {\n // turn discovery is not part of normal roap protocol and so we are not handling it\n // through the usual roap state machine\n meeting.roap.turnDiscovery.handleTurnDiscoveryResponse(data.message);\n } else {\n const roapMessage = {\n seq,\n messageType,\n sdp: data.message.sdps?.length > 0 ? data.message.sdps[0] : undefined,\n tieBreaker,\n errorType,\n errorCause,\n };\n\n meeting.mediaProperties.webrtcMediaConnection.roapMessageReceived(roapMessage);\n }\n }\n }\n};\n\nMeetingsUtil.checkForCorrelationId = (deviceUrl, locus) => {\n let devices = [];\n\n if (locus) {\n if (locus && locus.self && locus.self.devices) {\n devices = locus.self.devices;\n }\n\n const foundDevice = devices.find((device) => device.url === deviceUrl);\n\n if (foundDevice && foundDevice.correlationId) {\n return foundDevice.correlationId;\n }\n }\n\n return false;\n};\n\nMeetingsUtil.parseDefaultSiteFromMeetingPreferences = (userPreferences) => {\n let result = '';\n\n if (userPreferences && userPreferences.sites) {\n const defaultSite = userPreferences.sites.find((site) => site.default);\n\n if (defaultSite) {\n result = defaultSite.siteUrl;\n }\n }\n\n return result;\n};\n\n/**\n * Will check to see if the H.264 media codec is supported.\n * @async\n * @private\n * @returns {Promise<boolean>}\n */\nMeetingsUtil.hasH264Codec = async () => {\n let hasCodec = false;\n\n try {\n const pc = new window.RTCPeerConnection();\n const offer = await pc.createOffer({offerToReceiveVideo: true});\n\n if (offer.sdp.match(/^a=rtpmap:\\d+\\s+H264\\/\\d+/m)) {\n hasCodec = true;\n }\n pc.close();\n } catch (error) {\n LoggerProxy.logger.warn(\n 'Meetings:util#hasH264Codec --> Error creating peerConnection for H.264 test.'\n );\n }\n\n return hasCodec;\n};\n\n/**\n * Notifies the user whether or not the H.264\n * codec is present. Will continuously check\n * until max duration.\n * @async\n * @private\n * @param {object} options\n * @param {Number} options.firstChecked Timestamp in milliseconds\n * @param {boolean} options.disableNotifications Default is false. Boolean to enable/disable notification and events\n * @returns {undefined}\n */\nMeetingsUtil.checkH264Support = async function checkH264Support(options: {\n firstChecked: number;\n disableNotifications: boolean;\n}) {\n const {hasH264Codec} = MeetingsUtil;\n const {firstChecked, disableNotifications} = options || {};\n const delay = 5e3; // ms\n const maxDuration = 3e5; // ms\n const shouldTrigger = firstChecked === undefined;\n const shouldStopChecking = firstChecked && Date.now() - firstChecked >= maxDuration;\n\n // Disable notifications and start H.264 download only\n if (disableNotifications) {\n hasH264Codec();\n\n return;\n }\n\n // Codec loaded trigger event notification\n if (await hasH264Codec()) {\n Trigger.trigger(\n this,\n {\n file: 'meetings/util',\n function: 'checkH264Support',\n },\n EVENT_TRIGGERS.MEDIA_CODEC_LOADED\n );\n LoggerProxy.logger.log('Meetings:util#checkH264Support --> H264 codec loaded successfully.');\n\n return;\n }\n\n // Stop checking if past the timelimit\n if (shouldStopChecking) {\n LoggerProxy.logger.error(\n 'Meetings:util#checkH264Support --> Timed out waiting for H264 codec to load.'\n );\n\n return;\n }\n\n // Trigger only once\n if (shouldTrigger) {\n Trigger.trigger(\n this,\n {\n file: 'meetings/util',\n function: 'checkH264Support',\n },\n EVENT_TRIGGERS.MEDIA_CODEC_MISSING\n );\n LoggerProxy.logger.log('Meetings:util#checkH264Support --> H264 codec is missing.');\n }\n\n // Keep checking in intervals to see if codec loaded\n window.setTimeout(() => {\n const timestamp = firstChecked || Date.now();\n\n MeetingsUtil.checkH264Support.call(this, {firstChecked: timestamp});\n }, delay);\n};\n\nexport default MeetingsUtil;\n"],"mappings":"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"}
|