@webex/plugin-meetings 3.7.0 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/annotation/annotation.types.d.ts +42 -0
- package/dist/annotation/constants.d.ts +31 -0
- package/dist/annotation/index.d.ts +117 -0
- package/dist/annotation/index.js +17 -0
- package/dist/annotation/index.js.map +1 -1
- package/dist/breakouts/breakout.d.ts +8 -0
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/collection.d.ts +5 -0
- package/dist/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/breakouts/events.d.ts +8 -0
- package/dist/breakouts/index.d.ts +5 -0
- package/dist/breakouts/index.js +1 -1
- package/dist/breakouts/request.d.ts +22 -0
- package/dist/breakouts/utils.d.ts +15 -0
- package/dist/common/browser-detection.d.ts +9 -0
- package/dist/common/collection.d.ts +48 -0
- package/dist/common/config.d.ts +2 -0
- package/dist/common/errors/captcha-error.d.ts +15 -0
- package/dist/common/errors/intent-to-join.d.ts +16 -0
- package/dist/common/errors/join-forbidden-error.js +52 -0
- package/dist/common/errors/join-forbidden-error.js.map +1 -0
- package/dist/common/errors/join-meeting.d.ts +17 -0
- package/dist/common/errors/{webinar-registration-error.js → join-webinar-error.js} +12 -12
- package/dist/common/errors/join-webinar-error.js.map +1 -0
- package/dist/common/errors/media.d.ts +15 -0
- package/dist/common/errors/multistream-not-supported-error.js +53 -0
- package/dist/common/errors/multistream-not-supported-error.js.map +1 -0
- package/dist/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/common/errors/parameter.d.ts +15 -0
- package/dist/common/errors/password-error.d.ts +15 -0
- package/dist/common/errors/permission.d.ts +14 -0
- package/dist/common/errors/reclaim-host-role-error.js +149 -0
- package/dist/common/errors/reclaim-host-role-error.js.map +1 -0
- package/dist/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/common/errors/reconnection-in-progress.js +33 -0
- package/dist/common/errors/reconnection-in-progress.js.map +1 -0
- package/dist/common/errors/reconnection.d.ts +15 -0
- package/dist/common/errors/stats.d.ts +15 -0
- package/dist/common/errors/webex-errors.d.ts +93 -0
- package/dist/common/errors/webex-meetings-error.d.ts +20 -0
- package/dist/common/events/events-scope.d.ts +17 -0
- package/dist/common/events/events.d.ts +12 -0
- package/dist/common/events/trigger-proxy.d.ts +2 -0
- package/dist/common/events/util.d.ts +2 -0
- package/dist/common/logs/logger-config.d.ts +2 -0
- package/dist/common/logs/logger-proxy.d.ts +2 -0
- package/dist/common/logs/request.d.ts +36 -0
- package/dist/common/queue.d.ts +34 -0
- package/dist/config.d.ts +72 -0
- package/dist/config.js +2 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +1088 -0
- package/dist/constants.js +68 -6
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.d.ts +4 -0
- package/dist/controls-options-manager/enums.d.ts +15 -0
- package/dist/controls-options-manager/index.d.ts +136 -0
- package/dist/controls-options-manager/types.d.ts +43 -0
- package/dist/controls-options-manager/util.d.ts +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +16 -11
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.d.ts +2 -0
- package/dist/interceptors/locusRetry.d.ts +27 -0
- package/dist/interpretation/collection.d.ts +5 -0
- package/dist/interpretation/index.d.ts +5 -0
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.d.ts +5 -0
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.d.ts +2 -0
- package/dist/locus-info/embeddedAppsUtils.d.ts +2 -0
- package/dist/locus-info/fullState.d.ts +2 -0
- package/dist/locus-info/hostUtils.d.ts +2 -0
- package/dist/locus-info/index.d.ts +322 -0
- package/dist/locus-info/index.js +14 -3
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.d.ts +2 -0
- package/dist/locus-info/mediaSharesUtils.d.ts +2 -0
- package/dist/locus-info/parser.d.ts +272 -0
- package/dist/locus-info/selfUtils.d.ts +2 -0
- package/dist/locus-info/selfUtils.js +35 -17
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/MediaConnectionAwaiter.js +1 -0
- package/dist/media/MediaConnectionAwaiter.js.map +1 -1
- package/dist/media/index.d.ts +34 -0
- package/dist/media/properties.d.ts +93 -0
- package/dist/media/properties.js +30 -16
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.d.ts +2 -0
- package/dist/mediaQualityMetrics/config.d.ts +241 -0
- package/dist/mediaQualityMetrics/config.js +502 -0
- package/dist/mediaQualityMetrics/config.js.map +1 -0
- package/dist/meeting/brbState.js +167 -0
- package/dist/meeting/brbState.js.map +1 -0
- package/dist/meeting/effectsState.js +260 -0
- package/dist/meeting/effectsState.js.map +1 -0
- package/dist/meeting/in-meeting-actions.d.ts +167 -0
- package/dist/meeting/in-meeting-actions.js +13 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.d.ts +1825 -0
- package/dist/meeting/index.js +1331 -1051
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/meeting/locusMediaRequest.js +11 -6
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.d.ts +178 -0
- package/dist/meeting/muteState.js +1 -6
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.d.ts +295 -0
- package/dist/meeting/request.js +51 -29
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.d.ts +11 -0
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/state.d.ts +9 -0
- package/dist/meeting/util.d.ts +119 -0
- package/dist/meeting/util.js +103 -67
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting/voicea-meeting.d.ts +16 -0
- package/dist/meeting-info/collection.d.ts +20 -0
- package/dist/meeting-info/index.d.ts +69 -0
- package/dist/meeting-info/meeting-info-v2.d.ts +123 -0
- package/dist/meeting-info/meeting-info-v2.js +115 -45
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.d.ts +22 -0
- package/dist/meeting-info/util.d.ts +2 -0
- package/dist/meeting-info/utilv2.d.ts +2 -0
- package/dist/meeting-info/utilv2.js +6 -2
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.d.ts +40 -0
- package/dist/meetings/index.d.ts +390 -0
- package/dist/meetings/index.js +107 -55
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.d.ts +4 -0
- package/dist/meetings/meetings.types.js +2 -0
- package/dist/meetings/meetings.types.js.map +1 -1
- package/dist/meetings/request.d.ts +27 -0
- package/dist/meetings/util.d.ts +18 -0
- package/dist/meetings/util.js +1 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.d.ts +160 -0
- package/dist/member/index.js +9 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.js +17 -0
- package/dist/member/member.types.js.map +1 -0
- package/dist/member/types.d.ts +32 -0
- package/dist/member/types.js.map +1 -1
- package/dist/member/util.d.ts +2 -0
- package/dist/member/util.js +39 -28
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.d.ts +29 -0
- package/dist/members/index.d.ts +353 -0
- package/dist/members/request.d.ts +114 -0
- package/dist/members/types.d.ts +25 -0
- package/dist/members/util.d.ts +215 -0
- package/dist/members/util.js +4 -2
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +276 -0
- package/dist/metrics/config.js.map +1 -0
- package/dist/metrics/constants.d.ts +70 -0
- package/dist/metrics/constants.js +6 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.d.ts +45 -0
- package/dist/multistream/mediaRequestManager.d.ts +119 -0
- package/dist/multistream/receiveSlot.d.ts +68 -0
- package/dist/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/multistream/remoteMedia.d.ts +72 -0
- package/dist/multistream/remoteMedia.js +30 -15
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.d.ts +49 -0
- package/dist/multistream/remoteMediaManager.d.ts +300 -0
- package/dist/multistream/sendSlotManager.d.ts +69 -0
- package/dist/multistream/sendSlotManager.js +24 -0
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.d.ts +70 -0
- package/dist/networkQualityMonitor/index.js +13 -19
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/peer-connection-manager/index.js +671 -0
- package/dist/peer-connection-manager/index.js.map +1 -0
- package/dist/peer-connection-manager/util.js +109 -0
- package/dist/peer-connection-manager/util.js.map +1 -0
- package/dist/personal-meeting-room/index.d.ts +47 -0
- package/dist/personal-meeting-room/request.d.ts +14 -0
- package/dist/personal-meeting-room/util.d.ts +2 -0
- package/dist/reachability/clusterReachability.d.ts +109 -0
- package/dist/reachability/clusterReachability.js +12 -15
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/index.d.ts +105 -0
- package/dist/reachability/index.js +461 -136
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/reachability.types.js +7 -0
- package/dist/reachability/reachability.types.js.map +1 -0
- package/dist/reachability/request.d.ts +39 -0
- package/dist/reachability/request.js +21 -8
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.d.ts +8 -0
- package/dist/reactions/constants.d.ts +3 -0
- package/dist/reactions/reactions.d.ts +4 -0
- package/dist/reactions/reactions.type.d.ts +52 -0
- package/dist/reconnection-manager/index.d.ts +136 -0
- package/dist/recording-controller/enums.d.ts +7 -0
- package/dist/recording-controller/enums.js +8 -4
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.d.ts +207 -0
- package/dist/recording-controller/index.js +18 -9
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.d.ts +14 -0
- package/dist/recording-controller/util.js +13 -9
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/collection.js +62 -0
- package/dist/roap/collection.js.map +1 -0
- package/dist/roap/handler.js +275 -0
- package/dist/roap/handler.js.map +1 -0
- package/dist/roap/index.d.ts +86 -0
- package/dist/roap/index.js +15 -15
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.d.ts +39 -0
- package/dist/roap/request.js +45 -79
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/state.js +126 -0
- package/dist/roap/state.js.map +1 -0
- package/dist/roap/turnDiscovery.d.ts +155 -0
- package/dist/roap/turnDiscovery.js +3 -6
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/roap/util.js +75 -0
- package/dist/roap/util.js.map +1 -0
- package/dist/rtcMetrics/constants.d.ts +4 -0
- package/dist/rtcMetrics/index.d.ts +61 -0
- package/dist/statsAnalyzer/global.d.ts +36 -0
- package/dist/statsAnalyzer/global.js +126 -0
- package/dist/statsAnalyzer/global.js.map +1 -0
- package/dist/statsAnalyzer/index.d.ts +217 -0
- package/dist/statsAnalyzer/index.js +1013 -0
- package/dist/statsAnalyzer/index.js.map +1 -0
- package/dist/statsAnalyzer/mqaUtil.d.ts +48 -0
- package/dist/statsAnalyzer/mqaUtil.js +179 -0
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -0
- package/dist/transcription/index.d.ts +64 -0
- package/dist/types/annotation/index.d.ts +5 -0
- package/dist/types/common/errors/join-forbidden-error.d.ts +15 -0
- package/dist/types/common/errors/{webinar-registration-error.d.ts → join-webinar-error.d.ts} +2 -2
- package/dist/types/common/errors/multistream-not-supported-error.d.ts +17 -0
- package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/types/config.d.ts +1 -0
- package/dist/types/constants.d.ts +53 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/locus-info/index.d.ts +2 -1
- package/dist/types/mediaQualityMetrics/config.d.ts +241 -0
- package/dist/types/meeting/brbState.d.ts +54 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +12 -0
- package/dist/types/meeting/index.d.ts +64 -14
- package/dist/types/meeting/locusMediaRequest.d.ts +6 -3
- package/dist/types/meeting/request.d.ts +14 -3
- package/dist/types/meeting/request.type.d.ts +6 -0
- package/dist/types/meeting/util.d.ts +3 -3
- package/dist/types/meeting-info/meeting-info-v2.d.ts +30 -5
- package/dist/types/meetings/index.d.ts +20 -2
- package/dist/types/meetings/meetings.types.d.ts +8 -0
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/member/types.d.ts +7 -0
- package/dist/types/members/util.d.ts +2 -0
- package/dist/types/metrics/constants.d.ts +6 -1
- package/dist/types/multistream/sendSlotManager.d.ts +8 -1
- package/dist/types/reachability/clusterReachability.d.ts +1 -10
- package/dist/types/reachability/index.d.ts +83 -36
- package/dist/types/reachability/reachability.types.d.ts +64 -0
- package/dist/types/reachability/request.d.ts +5 -1
- package/dist/types/recording-controller/enums.d.ts +5 -2
- package/dist/types/recording-controller/index.d.ts +1 -0
- package/dist/types/recording-controller/util.d.ts +2 -1
- package/dist/types/roap/request.d.ts +1 -13
- package/dist/types/statsAnalyzer/global.d.ts +36 -0
- package/dist/types/statsAnalyzer/index.d.ts +217 -0
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +48 -0
- package/dist/webinar/collection.d.ts +16 -0
- package/dist/webinar/index.d.ts +5 -0
- package/dist/webinar/index.js +390 -7
- package/dist/webinar/index.js.map +1 -1
- package/package.json +23 -22
- package/src/annotation/index.ts +16 -0
- package/src/common/errors/join-forbidden-error.ts +26 -0
- package/src/common/errors/join-webinar-error.ts +24 -0
- package/src/common/errors/multistream-not-supported-error.ts +30 -0
- package/src/config.ts +1 -0
- package/src/constants.ts +61 -3
- package/src/index.ts +5 -3
- package/src/locus-info/index.ts +20 -3
- package/src/locus-info/selfUtils.ts +24 -6
- package/src/media/MediaConnectionAwaiter.ts +2 -0
- package/src/media/properties.ts +34 -13
- package/src/meeting/brbState.ts +169 -0
- package/src/meeting/in-meeting-actions.ts +25 -0
- package/src/meeting/index.ts +443 -87
- package/src/meeting/locusMediaRequest.ts +11 -8
- package/src/meeting/muteState.ts +1 -6
- package/src/meeting/request.ts +30 -12
- package/src/meeting/request.type.ts +7 -0
- package/src/meeting/util.ts +32 -13
- package/src/meeting-info/meeting-info-v2.ts +83 -12
- package/src/meeting-info/utilv2.ts +17 -3
- package/src/meetings/index.ts +79 -20
- package/src/meetings/meetings.types.ts +10 -0
- package/src/meetings/util.ts +2 -1
- package/src/member/index.ts +9 -0
- package/src/member/types.ts +8 -0
- package/src/member/util.ts +34 -24
- package/src/members/util.ts +1 -0
- package/src/metrics/constants.ts +6 -1
- package/src/multistream/remoteMedia.ts +28 -15
- package/src/multistream/sendSlotManager.ts +31 -0
- package/src/reachability/clusterReachability.ts +5 -15
- package/src/reachability/index.ts +311 -75
- package/src/reachability/reachability.types.ts +85 -0
- package/src/reachability/request.ts +55 -31
- package/src/recording-controller/enums.ts +5 -2
- package/src/recording-controller/index.ts +17 -4
- package/src/recording-controller/util.ts +20 -5
- package/src/roap/index.ts +14 -13
- package/src/roap/request.ts +30 -44
- package/src/roap/turnDiscovery.ts +2 -4
- package/src/webinar/index.ts +235 -9
- package/test/unit/spec/annotation/index.ts +46 -1
- package/test/unit/spec/locus-info/index.js +292 -60
- package/test/unit/spec/locus-info/selfConstant.js +7 -0
- package/test/unit/spec/locus-info/selfUtils.js +101 -1
- package/test/unit/spec/media/properties.ts +15 -0
- package/test/unit/spec/meeting/brbState.ts +114 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +15 -1
- package/test/unit/spec/meeting/index.js +851 -107
- package/test/unit/spec/meeting/locusMediaRequest.ts +18 -11
- package/test/unit/spec/meeting/muteState.js +0 -24
- package/test/unit/spec/meeting/request.js +3 -26
- package/test/unit/spec/meeting/utils.js +73 -28
- package/test/unit/spec/meeting-info/meetinginfov2.js +46 -4
- package/test/unit/spec/meeting-info/utilv2.js +26 -0
- package/test/unit/spec/meetings/index.js +159 -18
- package/test/unit/spec/meetings/utils.js +10 -0
- package/test/unit/spec/member/util.js +52 -11
- package/test/unit/spec/members/utils.js +95 -0
- package/test/unit/spec/multistream/remoteMedia.ts +11 -7
- package/test/unit/spec/reachability/clusterReachability.ts +7 -0
- package/test/unit/spec/reachability/index.ts +383 -9
- package/test/unit/spec/reachability/request.js +48 -12
- package/test/unit/spec/recording-controller/index.js +61 -5
- package/test/unit/spec/recording-controller/util.js +39 -3
- package/test/unit/spec/roap/index.ts +48 -1
- package/test/unit/spec/roap/request.ts +51 -109
- package/test/unit/spec/roap/turnDiscovery.ts +202 -147
- package/test/unit/spec/webinar/index.ts +504 -0
- package/dist/common/errors/webinar-registration-error.js.map +0 -1
- package/src/common/errors/webinar-registration-error.ts +0 -27
@@ -0,0 +1,167 @@
|
|
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.createBrbState = exports.BrbState = void 0;
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
10
|
+
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
11
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
13
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
15
|
+
var _internalMediaCore = require("@webex/internal-media-core");
|
16
|
+
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
17
|
+
var createBrbState = exports.createBrbState = function createBrbState(meeting, enabled) {
|
18
|
+
_loggerProxy.default.logger.info("Meeting:brbState#createBrbState: creating BrbState for meeting id ".concat(meeting === null || meeting === void 0 ? void 0 : meeting.id));
|
19
|
+
var brbState = new BrbState(meeting, enabled);
|
20
|
+
return brbState;
|
21
|
+
};
|
22
|
+
|
23
|
+
/** The purpose of this class is to manage the local and remote brb state
|
24
|
+
* and make sure that the server state always matches the last requested state by the client.
|
25
|
+
*/
|
26
|
+
var BrbState = exports.BrbState = /*#__PURE__*/function () {
|
27
|
+
/**
|
28
|
+
* Constructor
|
29
|
+
*
|
30
|
+
* @param {Meeting} meeting - the meeting object
|
31
|
+
* @param {boolean} enabled - whether the client audio/video is enabled at all
|
32
|
+
*/
|
33
|
+
function BrbState(meeting, enabled) {
|
34
|
+
(0, _classCallCheck2.default)(this, BrbState);
|
35
|
+
(0, _defineProperty2.default)(this, "state", void 0);
|
36
|
+
(0, _defineProperty2.default)(this, "meeting", void 0);
|
37
|
+
this.meeting = meeting;
|
38
|
+
this.state = {
|
39
|
+
client: {
|
40
|
+
enabled: enabled
|
41
|
+
},
|
42
|
+
server: {
|
43
|
+
enabled: false
|
44
|
+
},
|
45
|
+
syncToServerInProgress: false
|
46
|
+
};
|
47
|
+
}
|
48
|
+
|
49
|
+
/**
|
50
|
+
* Enables/disables brb
|
51
|
+
*
|
52
|
+
* @param {boolean} enabled
|
53
|
+
* @param {SendSlotManager} sendSlotManager
|
54
|
+
* @returns {Promise}
|
55
|
+
*/
|
56
|
+
(0, _createClass2.default)(BrbState, [{
|
57
|
+
key: "enable",
|
58
|
+
value: function enable(enabled, sendSlotManager) {
|
59
|
+
this.state.client.enabled = enabled;
|
60
|
+
return this.applyClientStateToServer(sendSlotManager);
|
61
|
+
}
|
62
|
+
|
63
|
+
/**
|
64
|
+
* Updates the server local and remote brb values so that they match the current client desired state.
|
65
|
+
*
|
66
|
+
* @param {SendSlotManager} sendSlotManager
|
67
|
+
* @returns {Promise}
|
68
|
+
*/
|
69
|
+
}, {
|
70
|
+
key: "applyClientStateToServer",
|
71
|
+
value: function applyClientStateToServer(sendSlotManager) {
|
72
|
+
var _this = this;
|
73
|
+
if (this.state.syncToServerInProgress) {
|
74
|
+
_loggerProxy.default.logger.info("Meeting:brbState#applyClientStateToServer: request to server in progress, we need to wait for it to complete");
|
75
|
+
return _promise.default.resolve();
|
76
|
+
}
|
77
|
+
var remoteBrbRequiresSync = this.state.client.enabled !== this.state.server.enabled;
|
78
|
+
_loggerProxy.default.logger.info("Meeting:brbState#applyClientStateToServer: remoteBrbRequiresSync: ".concat(remoteBrbRequiresSync));
|
79
|
+
if (!remoteBrbRequiresSync) {
|
80
|
+
_loggerProxy.default.logger.info("Meeting:brbState#applyClientStateToServer: client state already matching server state, nothing to do");
|
81
|
+
return _promise.default.resolve();
|
82
|
+
}
|
83
|
+
this.state.syncToServerInProgress = true;
|
84
|
+
return this.sendLocalBrbStateToServer(sendSlotManager).then(function () {
|
85
|
+
_this.state.syncToServerInProgress = false;
|
86
|
+
_loggerProxy.default.logger.info("Meeting:brbState#applyClientStateToServer: sync with server completed");
|
87
|
+
|
88
|
+
// need to check if a new sync is required, because this.state.client may have changed while we were doing the current sync
|
89
|
+
_this.applyClientStateToServer(sendSlotManager);
|
90
|
+
}).catch(function (e) {
|
91
|
+
_this.state.syncToServerInProgress = false;
|
92
|
+
_loggerProxy.default.logger.warn("Meeting:brbState#applyClientStateToServer: error: ".concat(e));
|
93
|
+
});
|
94
|
+
}
|
95
|
+
|
96
|
+
/**
|
97
|
+
* Send the local brb state to the server
|
98
|
+
*
|
99
|
+
* @param {SendSlotManager} sendSlotManager
|
100
|
+
* @returns {Promise}
|
101
|
+
*/
|
102
|
+
}, {
|
103
|
+
key: "sendLocalBrbStateToServer",
|
104
|
+
value: (function () {
|
105
|
+
var _sendLocalBrbStateToServer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(sendSlotManager) {
|
106
|
+
var enabled, errorMessage, error, _errorMessage, _error;
|
107
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
108
|
+
while (1) switch (_context.prev = _context.next) {
|
109
|
+
case 0:
|
110
|
+
enabled = this.state.client.enabled;
|
111
|
+
if (this.meeting.isMultistream) {
|
112
|
+
_context.next = 6;
|
113
|
+
break;
|
114
|
+
}
|
115
|
+
errorMessage = 'Meeting:brbState#sendLocalBrbStateToServer: Not a multistream meeting';
|
116
|
+
error = new Error(errorMessage);
|
117
|
+
_loggerProxy.default.logger.error(error);
|
118
|
+
return _context.abrupt("return", _promise.default.reject(error));
|
119
|
+
case 6:
|
120
|
+
if (this.meeting.mediaProperties.webrtcMediaConnection) {
|
121
|
+
_context.next = 11;
|
122
|
+
break;
|
123
|
+
}
|
124
|
+
_errorMessage = 'Meeting:brbState#sendLocalBrbStateToServer: WebRTC media connection is not defined';
|
125
|
+
_error = new Error(_errorMessage);
|
126
|
+
_loggerProxy.default.logger.error(_error);
|
127
|
+
return _context.abrupt("return", _promise.default.reject(_error));
|
128
|
+
case 11:
|
129
|
+
return _context.abrupt("return", this.meeting.meetingRequest.setBrb({
|
130
|
+
enabled: enabled,
|
131
|
+
locusUrl: this.meeting.locusUrl,
|
132
|
+
deviceUrl: this.meeting.deviceUrl,
|
133
|
+
selfId: this.meeting.selfId
|
134
|
+
}).then(function () {
|
135
|
+
sendSlotManager.setSourceStateOverride(_internalMediaCore.MediaType.VideoMain, enabled ? 'away' : null);
|
136
|
+
}).catch(function (error) {
|
137
|
+
_loggerProxy.default.logger.error('Meeting:brbState#sendLocalBrbStateToServer: Error ', error);
|
138
|
+
return _promise.default.reject(error);
|
139
|
+
}));
|
140
|
+
case 12:
|
141
|
+
case "end":
|
142
|
+
return _context.stop();
|
143
|
+
}
|
144
|
+
}, _callee, this);
|
145
|
+
}));
|
146
|
+
function sendLocalBrbStateToServer(_x) {
|
147
|
+
return _sendLocalBrbStateToServer.apply(this, arguments);
|
148
|
+
}
|
149
|
+
return sendLocalBrbStateToServer;
|
150
|
+
}()
|
151
|
+
/**
|
152
|
+
* This method should be called whenever the server brb state is changed
|
153
|
+
*
|
154
|
+
* @param {Boolean} [enabled] true if user has brb enabled, false otherwise
|
155
|
+
* @returns {undefined}
|
156
|
+
*/
|
157
|
+
)
|
158
|
+
}, {
|
159
|
+
key: "handleServerBrbUpdate",
|
160
|
+
value: function handleServerBrbUpdate(enabled) {
|
161
|
+
_loggerProxy.default.logger.info("Meeting:brbState#handleServerBrbUpdate: updating server brb to (".concat(enabled, ")"));
|
162
|
+
this.state.server.enabled = !!enabled;
|
163
|
+
}
|
164
|
+
}]);
|
165
|
+
return BrbState;
|
166
|
+
}();
|
167
|
+
//# sourceMappingURL=brbState.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["_internalMediaCore","require","_loggerProxy","_interopRequireDefault","createBrbState","exports","meeting","enabled","LoggerProxy","logger","info","concat","id","brbState","BrbState","_classCallCheck2","default","_defineProperty2","state","client","server","syncToServerInProgress","_createClass2","key","value","enable","sendSlotManager","applyClientStateToServer","_this","_promise","resolve","remoteBrbRequiresSync","sendLocalBrbStateToServer","then","catch","e","warn","_sendLocalBrbStateToServer","_asyncToGenerator2","_regenerator","mark","_callee","errorMessage","error","_errorMessage","_error","wrap","_callee$","_context","prev","next","isMultistream","Error","abrupt","reject","mediaProperties","webrtcMediaConnection","meetingRequest","setBrb","locusUrl","deviceUrl","selfId","setSourceStateOverride","MediaType","VideoMain","stop","_x","apply","arguments","handleServerBrbUpdate"],"sources":["brbState.ts"],"sourcesContent":["import {MediaType} from '@webex/internal-media-core';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport type Meeting from '.';\nimport SendSlotManager from '../multistream/sendSlotManager';\n\nexport const createBrbState = (meeting: Meeting, enabled: boolean) => {\n LoggerProxy.logger.info(\n `Meeting:brbState#createBrbState: creating BrbState for meeting id ${meeting?.id}`\n );\n\n const brbState = new BrbState(meeting, enabled);\n\n return brbState;\n};\n\n/** The purpose of this class is to manage the local and remote brb state\n * and make sure that the server state always matches the last requested state by the client.\n */\nexport class BrbState {\n state: {\n client: {\n enabled: boolean;\n };\n server: {\n enabled: boolean;\n };\n syncToServerInProgress: boolean;\n };\n\n meeting: Meeting;\n\n /**\n * Constructor\n *\n * @param {Meeting} meeting - the meeting object\n * @param {boolean} enabled - whether the client audio/video is enabled at all\n */\n constructor(meeting: Meeting, enabled: boolean) {\n this.meeting = meeting;\n this.state = {\n client: {\n enabled,\n },\n server: {\n enabled: false,\n },\n syncToServerInProgress: false,\n };\n }\n\n /**\n * Enables/disables brb\n *\n * @param {boolean} enabled\n * @param {SendSlotManager} sendSlotManager\n * @returns {Promise}\n */\n public enable(enabled: boolean, sendSlotManager: SendSlotManager) {\n this.state.client.enabled = enabled;\n\n return this.applyClientStateToServer(sendSlotManager);\n }\n\n /**\n * Updates the server local and remote brb values so that they match the current client desired state.\n *\n * @param {SendSlotManager} sendSlotManager\n * @returns {Promise}\n */\n private applyClientStateToServer(sendSlotManager: SendSlotManager) {\n if (this.state.syncToServerInProgress) {\n LoggerProxy.logger.info(\n `Meeting:brbState#applyClientStateToServer: request to server in progress, we need to wait for it to complete`\n );\n\n return Promise.resolve();\n }\n\n const remoteBrbRequiresSync = this.state.client.enabled !== this.state.server.enabled;\n\n LoggerProxy.logger.info(\n `Meeting:brbState#applyClientStateToServer: remoteBrbRequiresSync: ${remoteBrbRequiresSync}`\n );\n\n if (!remoteBrbRequiresSync) {\n LoggerProxy.logger.info(\n `Meeting:brbState#applyClientStateToServer: client state already matching server state, nothing to do`\n );\n\n return Promise.resolve();\n }\n\n this.state.syncToServerInProgress = true;\n\n return this.sendLocalBrbStateToServer(sendSlotManager)\n .then(() => {\n this.state.syncToServerInProgress = false;\n LoggerProxy.logger.info(\n `Meeting:brbState#applyClientStateToServer: sync with server completed`\n );\n\n // need to check if a new sync is required, because this.state.client may have changed while we were doing the current sync\n this.applyClientStateToServer(sendSlotManager);\n })\n .catch((e) => {\n this.state.syncToServerInProgress = false;\n LoggerProxy.logger.warn(`Meeting:brbState#applyClientStateToServer: error: ${e}`);\n });\n }\n\n /**\n * Send the local brb state to the server\n *\n * @param {SendSlotManager} sendSlotManager\n * @returns {Promise}\n */\n private async sendLocalBrbStateToServer(sendSlotManager: SendSlotManager) {\n const {enabled} = this.state.client;\n\n if (!this.meeting.isMultistream) {\n const errorMessage = 'Meeting:brbState#sendLocalBrbStateToServer: Not a multistream meeting';\n const error = new Error(errorMessage);\n\n LoggerProxy.logger.error(error);\n\n return Promise.reject(error);\n }\n\n if (!this.meeting.mediaProperties.webrtcMediaConnection) {\n const errorMessage =\n 'Meeting:brbState#sendLocalBrbStateToServer: WebRTC media connection is not defined';\n const error = new Error(errorMessage);\n\n LoggerProxy.logger.error(error);\n\n return Promise.reject(error);\n }\n\n // this logic should be applied only to multistream meetings\n return this.meeting.meetingRequest\n .setBrb({\n enabled,\n locusUrl: this.meeting.locusUrl,\n deviceUrl: this.meeting.deviceUrl,\n selfId: this.meeting.selfId,\n })\n .then(() => {\n sendSlotManager.setSourceStateOverride(MediaType.VideoMain, enabled ? 'away' : null);\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:brbState#sendLocalBrbStateToServer: Error ', error);\n\n return Promise.reject(error);\n });\n }\n\n /**\n * This method should be called whenever the server brb state is changed\n *\n * @param {Boolean} [enabled] true if user has brb enabled, false otherwise\n * @returns {undefined}\n */\n public handleServerBrbUpdate(enabled?: boolean) {\n LoggerProxy.logger.info(\n `Meeting:brbState#handleServerBrbUpdate: updating server brb to (${enabled})`\n );\n this.state.server.enabled = !!enabled;\n }\n}\n"],"mappings":"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"}
|
@@ -0,0 +1,260 @@
|
|
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 _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
10
|
+
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
11
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
13
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
15
|
+
var _internalMediaCore = require("@webex/internal-media-core");
|
16
|
+
var _constants = _interopRequireDefault(require("../metrics/constants"));
|
17
|
+
var _metrics = _interopRequireDefault(require("../metrics"));
|
18
|
+
var _util = _interopRequireDefault(require("../media/util"));
|
19
|
+
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
20
|
+
var _constants2 = require("../constants");
|
21
|
+
/* eslint-disable no-param-reassign */
|
22
|
+
|
23
|
+
var createEffectsState = function createEffectsState(type) {
|
24
|
+
_loggerProxy.default.logger.info("Meeting:effectState#createEffectsState --> creating effectsState for effect ".concat(type));
|
25
|
+
return new EffectsState(type);
|
26
|
+
};
|
27
|
+
|
28
|
+
/* The purpose of this class is to manage the effects state(for eg., BNR).
|
29
|
+
*/
|
30
|
+
var EffectsState = /*#__PURE__*/function () {
|
31
|
+
function EffectsState(type) {
|
32
|
+
(0, _classCallCheck2.default)(this, EffectsState);
|
33
|
+
(0, _defineProperty2.default)(this, "effectType", void 0);
|
34
|
+
(0, _defineProperty2.default)(this, "pendingPromiseReject", void 0);
|
35
|
+
(0, _defineProperty2.default)(this, "pendingPromiseResolve", void 0);
|
36
|
+
(0, _defineProperty2.default)(this, "state", void 0);
|
37
|
+
this.effectType = type;
|
38
|
+
this.state = {
|
39
|
+
bnr: {
|
40
|
+
enabled: _constants2.BNR_STATUS.NOT_ENABLED
|
41
|
+
},
|
42
|
+
callToWebrtcBNRInProgress: false
|
43
|
+
};
|
44
|
+
// these 2 hold the resolve, reject methods for the promise we returned to the client in last handleClientRequest() call
|
45
|
+
this.pendingPromiseResolve = null;
|
46
|
+
this.pendingPromiseReject = null;
|
47
|
+
}
|
48
|
+
|
49
|
+
/**
|
50
|
+
* @memberof EffectsState
|
51
|
+
* @param {Boolean} [isEnable] true for enableBNR, false for disableBNR request
|
52
|
+
* @param {Object} [meeting] the meeting object
|
53
|
+
* @returns {Promise}
|
54
|
+
*/
|
55
|
+
return (0, _createClass2.default)(EffectsState, [{
|
56
|
+
key: "handleClientRequest",
|
57
|
+
value: (function () {
|
58
|
+
var _handleClientRequest = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(isEnable, meeting) {
|
59
|
+
var _this = this;
|
60
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
61
|
+
while (1) switch (_context.prev = _context.next) {
|
62
|
+
case 0:
|
63
|
+
return _context.abrupt("return", new _promise.default(function (resolve, reject) {
|
64
|
+
if (_this.pendingPromiseResolve) {
|
65
|
+
// resolve the last promise we returned to the client as the client has issued a new request that has superseded the previous one
|
66
|
+
_this.pendingPromiseResolve(true);
|
67
|
+
}
|
68
|
+
_this.pendingPromiseResolve = resolve;
|
69
|
+
_this.pendingPromiseReject = reject;
|
70
|
+
if (isEnable) _this.enableBNR(meeting);else _this.disableBNR(meeting);
|
71
|
+
}));
|
72
|
+
case 1:
|
73
|
+
case "end":
|
74
|
+
return _context.stop();
|
75
|
+
}
|
76
|
+
}, _callee);
|
77
|
+
}));
|
78
|
+
function handleClientRequest(_x, _x2) {
|
79
|
+
return _handleClientRequest.apply(this, arguments);
|
80
|
+
}
|
81
|
+
return handleClientRequest;
|
82
|
+
}()
|
83
|
+
/**
|
84
|
+
* Internal API to return status of BNR
|
85
|
+
* @memberof EffectsState
|
86
|
+
* @returns {Boolean}
|
87
|
+
* @public
|
88
|
+
* @memberof Meeting
|
89
|
+
*/
|
90
|
+
)
|
91
|
+
}, {
|
92
|
+
key: "isBnrEnabled",
|
93
|
+
value: function isBnrEnabled() {
|
94
|
+
return this.state.bnr.enabled === _constants2.BNR_STATUS.ENABLED;
|
95
|
+
}
|
96
|
+
}, {
|
97
|
+
key: "resolvePromise",
|
98
|
+
value: function resolvePromise() {
|
99
|
+
if (this.pendingPromiseResolve) {
|
100
|
+
this.pendingPromiseResolve(true);
|
101
|
+
}
|
102
|
+
this.pendingPromiseResolve = null;
|
103
|
+
this.pendingPromiseReject = null;
|
104
|
+
}
|
105
|
+
}, {
|
106
|
+
key: "rejectPromise",
|
107
|
+
value: function rejectPromise(e) {
|
108
|
+
if (this.pendingPromiseReject) {
|
109
|
+
this.pendingPromiseReject(e);
|
110
|
+
}
|
111
|
+
this.pendingPromiseResolve = null;
|
112
|
+
this.pendingPromiseReject = null;
|
113
|
+
}
|
114
|
+
|
115
|
+
/**
|
116
|
+
* enableBNR API
|
117
|
+
* @param {Object} meeting the meeting object
|
118
|
+
* @returns {Promise<Boolean>}
|
119
|
+
* @public
|
120
|
+
* @memberof EffectsState
|
121
|
+
*/
|
122
|
+
}, {
|
123
|
+
key: "enableBNR",
|
124
|
+
value: (function () {
|
125
|
+
var _enableBNR = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(meeting) {
|
126
|
+
var bnr, audioStream;
|
127
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
128
|
+
while (1) switch (_context2.prev = _context2.next) {
|
129
|
+
case 0:
|
130
|
+
_loggerProxy.default.logger.info('Meeting:effectState#enableBNR. Enable BNR called');
|
131
|
+
if (!this.isBnrEnabled()) {
|
132
|
+
_context2.next = 4;
|
133
|
+
break;
|
134
|
+
}
|
135
|
+
_loggerProxy.default.logger.warn('Meeting:index#enableBNR. BNR is already enabled');
|
136
|
+
return _context2.abrupt("return", this.resolvePromise());
|
137
|
+
case 4:
|
138
|
+
if (!this.state.callToWebrtcBNRInProgress) {
|
139
|
+
_context2.next = 7;
|
140
|
+
break;
|
141
|
+
}
|
142
|
+
_loggerProxy.default.logger.warn('Meeting:effectState#enableBNR. Call to WebRTC in progress, we need to wait for it to complete');
|
143
|
+
return _context2.abrupt("return", this.resolvePromise());
|
144
|
+
case 7:
|
145
|
+
bnr = this.state.bnr;
|
146
|
+
_context2.prev = 8;
|
147
|
+
bnr.enabled = _constants2.BNR_STATUS.SHOULD_ENABLE;
|
148
|
+
this.state.callToWebrtcBNRInProgress = true;
|
149
|
+
audioStream = _util.default.createMediaStream([meeting.mediaProperties.audioTrack]);
|
150
|
+
_loggerProxy.default.logger.info('Meeting:effectState#enableBNR. MediaStream created from meeting & sent to updateAudio');
|
151
|
+
_context2.next = 15;
|
152
|
+
return meeting.updateAudio({
|
153
|
+
sendAudio: true,
|
154
|
+
receiveAudio: meeting.mediaProperties.mediaDirection.receiveAudio,
|
155
|
+
stream: audioStream
|
156
|
+
});
|
157
|
+
case 15:
|
158
|
+
_loggerProxy.default.logger.info('Meeting:effectState#enableBNR. Updated meeting audio with bnr enabled track');
|
159
|
+
bnr.enabled = _constants2.BNR_STATUS.ENABLED;
|
160
|
+
this.state.callToWebrtcBNRInProgress = false;
|
161
|
+
_metrics.default.sendBehavioralMetric(_constants.default.ENABLE_BNR_SUCCESS);
|
162
|
+
_context2.next = 28;
|
163
|
+
break;
|
164
|
+
case 21:
|
165
|
+
_context2.prev = 21;
|
166
|
+
_context2.t0 = _context2["catch"](8);
|
167
|
+
bnr.enabled = _constants2.BNR_STATUS.NOT_ENABLED;
|
168
|
+
this.state.callToWebrtcBNRInProgress = false;
|
169
|
+
_loggerProxy.default.logger.error('Meeting:index#enableBNR.', _context2.t0);
|
170
|
+
_metrics.default.sendBehavioralMetric(_constants.default.ENABLE_BNR_FAILURE, {
|
171
|
+
reason: _context2.t0.message,
|
172
|
+
stack: _context2.t0.stack
|
173
|
+
});
|
174
|
+
return _context2.abrupt("return", this.rejectPromise(_context2.t0));
|
175
|
+
case 28:
|
176
|
+
return _context2.abrupt("return", this.resolvePromise());
|
177
|
+
case 29:
|
178
|
+
case "end":
|
179
|
+
return _context2.stop();
|
180
|
+
}
|
181
|
+
}, _callee2, this, [[8, 21]]);
|
182
|
+
}));
|
183
|
+
function enableBNR(_x3) {
|
184
|
+
return _enableBNR.apply(this, arguments);
|
185
|
+
}
|
186
|
+
return enableBNR;
|
187
|
+
}()
|
188
|
+
/**
|
189
|
+
* disableBNR API
|
190
|
+
* @param {Object} meeting the meeting object
|
191
|
+
* @returns {Promise<Boolean>}
|
192
|
+
* @public
|
193
|
+
* @memberof EffectsState
|
194
|
+
*/
|
195
|
+
)
|
196
|
+
}, {
|
197
|
+
key: "disableBNR",
|
198
|
+
value: (function () {
|
199
|
+
var _disableBNR = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(meeting) {
|
200
|
+
var bnr, audioTrack, audioStream;
|
201
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
202
|
+
while (1) switch (_context3.prev = _context3.next) {
|
203
|
+
case 0:
|
204
|
+
_loggerProxy.default.logger.info('Meeting:effectState#disableBNR. Disable BNR called');
|
205
|
+
bnr = this.state.bnr;
|
206
|
+
_context3.prev = 2;
|
207
|
+
if (!this.state.callToWebrtcBNRInProgress) {
|
208
|
+
_context3.next = 6;
|
209
|
+
break;
|
210
|
+
}
|
211
|
+
_loggerProxy.default.logger.info('Meeting:effectState#disableBNR. Call to WebRTC in progress, we need to wait for it to complete');
|
212
|
+
return _context3.abrupt("return", this.resolvePromise());
|
213
|
+
case 6:
|
214
|
+
bnr.enabled = _constants2.BNR_STATUS.SHOULD_DISABLE;
|
215
|
+
this.state.callToWebrtcBNRInProgress = true;
|
216
|
+
|
217
|
+
// @ts-ignore - disableBNR does not expect an argument
|
218
|
+
audioTrack = _internalMediaCore.Media.Effects.BNR.disableBNR(meeting.mediaProperties.audioTrack);
|
219
|
+
audioStream = _util.default.createMediaStream([audioTrack]);
|
220
|
+
_loggerProxy.default.logger.info('Meeting:effectState#disableBNR. Raw media track obtained from WebRTC & sent to updateAudio');
|
221
|
+
_context3.next = 13;
|
222
|
+
return meeting.updateAudio({
|
223
|
+
sendAudio: true,
|
224
|
+
receiveAudio: meeting.mediaProperties.mediaDirection.receiveAudio,
|
225
|
+
stream: audioStream
|
226
|
+
});
|
227
|
+
case 13:
|
228
|
+
bnr.enabled = _constants2.BNR_STATUS.NOT_ENABLED;
|
229
|
+
this.state.callToWebrtcBNRInProgress = false;
|
230
|
+
_metrics.default.sendBehavioralMetric(_constants.default.DISABLE_BNR_SUCCESS);
|
231
|
+
_context3.next = 25;
|
232
|
+
break;
|
233
|
+
case 18:
|
234
|
+
_context3.prev = 18;
|
235
|
+
_context3.t0 = _context3["catch"](2);
|
236
|
+
bnr.enabled = _constants2.BNR_STATUS.ENABLED;
|
237
|
+
this.state.callToWebrtcBNRInProgress = false;
|
238
|
+
_loggerProxy.default.logger.error("Meeting:index#disableBNR. ".concat(_context3.t0));
|
239
|
+
_metrics.default.sendBehavioralMetric(_constants.default.DISABLE_BNR_FAILURE, {
|
240
|
+
reason: _context3.t0.message,
|
241
|
+
stack: _context3.t0.stack
|
242
|
+
});
|
243
|
+
return _context3.abrupt("return", this.rejectPromise(_context3.t0));
|
244
|
+
case 25:
|
245
|
+
return _context3.abrupt("return", this.resolvePromise());
|
246
|
+
case 26:
|
247
|
+
case "end":
|
248
|
+
return _context3.stop();
|
249
|
+
}
|
250
|
+
}, _callee3, this, [[2, 18]]);
|
251
|
+
}));
|
252
|
+
function disableBNR(_x4) {
|
253
|
+
return _disableBNR.apply(this, arguments);
|
254
|
+
}
|
255
|
+
return disableBNR;
|
256
|
+
}())
|
257
|
+
}]);
|
258
|
+
}();
|
259
|
+
var _default = exports.default = createEffectsState;
|
260
|
+
//# sourceMappingURL=effectsState.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["_internalMediaCore","require","_constants","_interopRequireDefault","_metrics","_util","_loggerProxy","_constants2","createEffectsState","type","LoggerProxy","logger","info","concat","EffectsState","_classCallCheck2","default","_defineProperty2","effectType","state","bnr","enabled","BNR_STATUS","NOT_ENABLED","callToWebrtcBNRInProgress","pendingPromiseResolve","pendingPromiseReject","_createClass2","key","value","_handleClientRequest","_asyncToGenerator2","_regenerator","mark","_callee","isEnable","meeting","_this","wrap","_callee$","_context","prev","next","abrupt","_promise","resolve","reject","enableBNR","disableBNR","stop","handleClientRequest","_x","_x2","apply","arguments","isBnrEnabled","ENABLED","resolvePromise","rejectPromise","e","_enableBNR","_callee2","audioStream","_callee2$","_context2","warn","SHOULD_ENABLE","MediaUtil","createMediaStream","mediaProperties","audioTrack","updateAudio","sendAudio","receiveAudio","mediaDirection","stream","Metrics","sendBehavioralMetric","BEHAVIORAL_METRICS","ENABLE_BNR_SUCCESS","t0","error","ENABLE_BNR_FAILURE","reason","message","stack","_x3","_disableBNR","_callee3","_callee3$","_context3","SHOULD_DISABLE","WebRTCMedia","Effects","BNR","DISABLE_BNR_SUCCESS","DISABLE_BNR_FAILURE","_x4","_default","exports"],"sources":["effectsState.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport {Media as WebRTCMedia} from '@webex/internal-media-core';\n\nimport BEHAVIORAL_METRICS from '../metrics/constants';\nimport Metrics from '../metrics';\nimport MediaUtil from '../media/util';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {BNR_STATUS} from '../constants';\n\nconst createEffectsState = (type: any) => {\n LoggerProxy.logger.info(\n `Meeting:effectState#createEffectsState --> creating effectsState for effect ${type}`\n );\n\n return new EffectsState(type);\n};\n\n/* The purpose of this class is to manage the effects state(for eg., BNR).\n */\nclass EffectsState {\n effectType: any;\n pendingPromiseReject: any;\n pendingPromiseResolve: any;\n state: any;\n\n constructor(type: any) {\n this.effectType = type;\n this.state = {\n bnr: {\n enabled: BNR_STATUS.NOT_ENABLED,\n },\n callToWebrtcBNRInProgress: false,\n };\n // these 2 hold the resolve, reject methods for the promise we returned to the client in last handleClientRequest() call\n this.pendingPromiseResolve = null;\n this.pendingPromiseReject = null;\n }\n\n /**\n * @memberof EffectsState\n * @param {Boolean} [isEnable] true for enableBNR, false for disableBNR request\n * @param {Object} [meeting] the meeting object\n * @returns {Promise}\n */\n async handleClientRequest(isEnable?: boolean, meeting?: object) {\n return new Promise((resolve, reject) => {\n if (this.pendingPromiseResolve) {\n // resolve the last promise we returned to the client as the client has issued a new request that has superseded the previous one\n this.pendingPromiseResolve(true);\n }\n this.pendingPromiseResolve = resolve;\n this.pendingPromiseReject = reject;\n\n if (isEnable) this.enableBNR(meeting);\n else this.disableBNR(meeting);\n });\n }\n\n /**\n * Internal API to return status of BNR\n * @memberof EffectsState\n * @returns {Boolean}\n * @public\n * @memberof Meeting\n */\n public isBnrEnabled() {\n return this.state.bnr.enabled === BNR_STATUS.ENABLED;\n }\n\n resolvePromise() {\n if (this.pendingPromiseResolve) {\n this.pendingPromiseResolve(true);\n }\n this.pendingPromiseResolve = null;\n this.pendingPromiseReject = null;\n }\n\n rejectPromise(e) {\n if (this.pendingPromiseReject) {\n this.pendingPromiseReject(e);\n }\n this.pendingPromiseResolve = null;\n this.pendingPromiseReject = null;\n }\n\n /**\n * enableBNR API\n * @param {Object} meeting the meeting object\n * @returns {Promise<Boolean>}\n * @public\n * @memberof EffectsState\n */\n public async enableBNR(meeting: any) {\n LoggerProxy.logger.info('Meeting:effectState#enableBNR. Enable BNR called');\n\n if (this.isBnrEnabled()) {\n LoggerProxy.logger.warn('Meeting:index#enableBNR. BNR is already enabled');\n\n return this.resolvePromise();\n }\n\n if (this.state.callToWebrtcBNRInProgress) {\n LoggerProxy.logger.warn(\n 'Meeting:effectState#enableBNR. Call to WebRTC in progress, we need to wait for it to complete'\n );\n\n return this.resolvePromise();\n }\n\n const {bnr} = this.state;\n\n try {\n bnr.enabled = BNR_STATUS.SHOULD_ENABLE;\n this.state.callToWebrtcBNRInProgress = true;\n const audioStream = MediaUtil.createMediaStream([meeting.mediaProperties.audioTrack]);\n\n LoggerProxy.logger.info(\n 'Meeting:effectState#enableBNR. MediaStream created from meeting & sent to updateAudio'\n );\n await meeting.updateAudio({\n sendAudio: true,\n receiveAudio: meeting.mediaProperties.mediaDirection.receiveAudio,\n stream: audioStream,\n });\n\n LoggerProxy.logger.info(\n 'Meeting:effectState#enableBNR. Updated meeting audio with bnr enabled track'\n );\n bnr.enabled = BNR_STATUS.ENABLED;\n this.state.callToWebrtcBNRInProgress = false;\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ENABLE_BNR_SUCCESS);\n } catch (error) {\n bnr.enabled = BNR_STATUS.NOT_ENABLED;\n this.state.callToWebrtcBNRInProgress = false;\n LoggerProxy.logger.error('Meeting:index#enableBNR.', error);\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ENABLE_BNR_FAILURE, {\n reason: error.message,\n stack: error.stack,\n });\n\n return this.rejectPromise(error);\n }\n\n return this.resolvePromise();\n }\n\n /**\n * disableBNR API\n * @param {Object} meeting the meeting object\n * @returns {Promise<Boolean>}\n * @public\n * @memberof EffectsState\n */\n public async disableBNR(meeting: any) {\n LoggerProxy.logger.info('Meeting:effectState#disableBNR. Disable BNR called');\n\n const {bnr} = this.state;\n\n try {\n if (this.state.callToWebrtcBNRInProgress) {\n LoggerProxy.logger.info(\n 'Meeting:effectState#disableBNR. Call to WebRTC in progress, we need to wait for it to complete'\n );\n\n return this.resolvePromise();\n }\n\n bnr.enabled = BNR_STATUS.SHOULD_DISABLE;\n this.state.callToWebrtcBNRInProgress = true;\n\n // @ts-ignore - disableBNR does not expect an argument\n const audioTrack = WebRTCMedia.Effects.BNR.disableBNR(meeting.mediaProperties.audioTrack);\n\n const audioStream = MediaUtil.createMediaStream([audioTrack]);\n\n LoggerProxy.logger.info(\n 'Meeting:effectState#disableBNR. Raw media track obtained from WebRTC & sent to updateAudio'\n );\n\n await meeting.updateAudio({\n sendAudio: true,\n receiveAudio: meeting.mediaProperties.mediaDirection.receiveAudio,\n stream: audioStream,\n });\n\n bnr.enabled = BNR_STATUS.NOT_ENABLED;\n\n this.state.callToWebrtcBNRInProgress = false;\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.DISABLE_BNR_SUCCESS);\n } catch (error) {\n bnr.enabled = BNR_STATUS.ENABLED;\n this.state.callToWebrtcBNRInProgress = false;\n LoggerProxy.logger.error(`Meeting:index#disableBNR. ${error}`);\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.DISABLE_BNR_FAILURE, {\n reason: error.message,\n stack: error.stack,\n });\n\n return this.rejectPromise(error);\n }\n\n return this.resolvePromise();\n }\n}\n\nexport default createEffectsState;\n"],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,167 @@
|
|
1
|
+
/*!
|
2
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
3
|
+
*/
|
4
|
+
/**
|
5
|
+
* IInMeetingActions
|
6
|
+
* Type for In-Meeting Actions
|
7
|
+
*/
|
8
|
+
interface IInMeetingActions {
|
9
|
+
canInviteNewParticipants?: boolean;
|
10
|
+
canAdmitParticipant?: boolean;
|
11
|
+
canLock?: boolean;
|
12
|
+
canUnlock?: boolean;
|
13
|
+
canSetMuteOnEntry?: boolean;
|
14
|
+
canUnsetMuteOnEntry?: boolean;
|
15
|
+
canSetDisallowUnmute?: boolean;
|
16
|
+
canUnsetDisallowUnmute?: boolean;
|
17
|
+
canSetMuted?: boolean;
|
18
|
+
canUnsetMuted?: boolean;
|
19
|
+
canAssignHost?: boolean;
|
20
|
+
canSetPresenter?: boolean;
|
21
|
+
canUnsetPresenter?: boolean;
|
22
|
+
canStartRecording?: boolean;
|
23
|
+
canPauseRecording?: boolean;
|
24
|
+
canResumeRecording?: boolean;
|
25
|
+
canStopRecording?: boolean;
|
26
|
+
canRaiseHand?: boolean;
|
27
|
+
canLowerAllHands?: boolean;
|
28
|
+
canLowerSomeoneElsesHand?: boolean;
|
29
|
+
bothLeaveAndEndMeetingAvailable?: boolean;
|
30
|
+
canEnableClosedCaption?: boolean;
|
31
|
+
canStartTranscribing?: boolean;
|
32
|
+
canStopTranscribing?: boolean;
|
33
|
+
isClosedCaptionActive?: boolean;
|
34
|
+
isSaveTranscriptsEnabled?: boolean;
|
35
|
+
isWebexAssistantActive?: boolean;
|
36
|
+
canViewCaptionPanel?: boolean;
|
37
|
+
isRealTimeTranslationEnabled?: boolean;
|
38
|
+
canSelectSpokenLanguages?: boolean;
|
39
|
+
waitingForOthersToJoin?: boolean;
|
40
|
+
canSendReactions?: boolean;
|
41
|
+
canManageBreakout?: boolean;
|
42
|
+
canBroadcastMessageToBreakout?: boolean;
|
43
|
+
canAdmitLobbyToBreakout?: boolean;
|
44
|
+
isBreakoutPreassignmentsEnabled?: boolean;
|
45
|
+
canUserAskForHelp?: boolean;
|
46
|
+
canUserRenameSelfAndObserved?: boolean;
|
47
|
+
canUserRenameOthers?: boolean;
|
48
|
+
canMuteAll?: boolean;
|
49
|
+
canUnmuteAll?: boolean;
|
50
|
+
canEnableHardMute?: boolean;
|
51
|
+
canDisableHardMute?: boolean;
|
52
|
+
canEnableMuteOnEntry?: boolean;
|
53
|
+
canDisableMuteOnEntry?: boolean;
|
54
|
+
canEnableReactions?: boolean;
|
55
|
+
canDisableReactions?: boolean;
|
56
|
+
canEnableReactionDisplayNames?: boolean;
|
57
|
+
canDisableReactionDisplayNames?: boolean;
|
58
|
+
canUpdateShareControl?: boolean;
|
59
|
+
canEnableViewTheParticipantsList?: boolean;
|
60
|
+
canDisableViewTheParticipantsList?: boolean;
|
61
|
+
canEnableRaiseHand?: boolean;
|
62
|
+
canDisableRaiseHand?: boolean;
|
63
|
+
canEnableVideo?: boolean;
|
64
|
+
canDisableVideo?: boolean;
|
65
|
+
canShareFile?: boolean;
|
66
|
+
canShareApplication?: boolean;
|
67
|
+
canShareCamera?: boolean;
|
68
|
+
canShareDesktop?: boolean;
|
69
|
+
canShareContent?: boolean;
|
70
|
+
canTransferFile?: boolean;
|
71
|
+
canChat?: boolean;
|
72
|
+
canDoVideo?: boolean;
|
73
|
+
canAnnotate?: boolean;
|
74
|
+
canUseVoip?: boolean;
|
75
|
+
supportHQV?: boolean;
|
76
|
+
supportHDV?: boolean;
|
77
|
+
canShareWhiteBoard?: boolean;
|
78
|
+
enforceVirtualBackground?: boolean;
|
79
|
+
}
|
80
|
+
/**
|
81
|
+
* @class InMeetingActions
|
82
|
+
*/
|
83
|
+
export default class InMeetingActions implements IInMeetingActions {
|
84
|
+
namespace: string;
|
85
|
+
canInviteNewParticipants: any;
|
86
|
+
canAdmitParticipant: any;
|
87
|
+
canLock: any;
|
88
|
+
canUnlock: any;
|
89
|
+
canAssignHost: any;
|
90
|
+
canStartRecording: any;
|
91
|
+
canPauseRecording: any;
|
92
|
+
canResumeRecording: any;
|
93
|
+
canStopRecording: any;
|
94
|
+
canSetMuteOnEntry: any;
|
95
|
+
canSetPresenter: any;
|
96
|
+
canUnsetPresenter: any;
|
97
|
+
canUnsetMuteOnEntry: any;
|
98
|
+
canSetDisallowUnmute: any;
|
99
|
+
canUnsetDisallowUnmute: any;
|
100
|
+
canSetMuted: any;
|
101
|
+
canUnsetMuted: any;
|
102
|
+
canRaiseHand: any;
|
103
|
+
canLowerAllHands: any;
|
104
|
+
canLowerSomeoneElsesHand: any;
|
105
|
+
bothLeaveAndEndMeetingAvailable: any;
|
106
|
+
canEnableClosedCaption: any;
|
107
|
+
canStartTranscribing: any;
|
108
|
+
canStopTranscribing: any;
|
109
|
+
isClosedCaptionActive: any;
|
110
|
+
isSaveTranscriptsEnabled: any;
|
111
|
+
isWebexAssistantActive: any;
|
112
|
+
canViewCaptionPanel: any;
|
113
|
+
isRealTimeTranslationEnabled: any;
|
114
|
+
canSelectSpokenLanguages: any;
|
115
|
+
waitingForOthersToJoin: any;
|
116
|
+
canSendReactions: any;
|
117
|
+
canManageBreakout: any;
|
118
|
+
canBroadcastMessageToBreakout: any;
|
119
|
+
canAdmitLobbyToBreakout: any;
|
120
|
+
isBreakoutPreassignmentsEnabled: any;
|
121
|
+
canUserAskForHelp: any;
|
122
|
+
canUserRenameSelfAndObserved: any;
|
123
|
+
canUserRenameOthers: any;
|
124
|
+
canMuteAll: any;
|
125
|
+
canUnmuteAll: any;
|
126
|
+
canEnableHardMute: any;
|
127
|
+
canDisableHardMute: any;
|
128
|
+
canEnableMuteOnEntry: any;
|
129
|
+
canDisableMuteOnEntry: any;
|
130
|
+
canEnableReactions: any;
|
131
|
+
canDisableReactions: any;
|
132
|
+
canEnableReactionDisplayNames: any;
|
133
|
+
canDisableReactionDisplayNames: any;
|
134
|
+
canUpdateShareControl: any;
|
135
|
+
canEnableViewTheParticipantsList: any;
|
136
|
+
canDisableViewTheParticipantsList: any;
|
137
|
+
canEnableRaiseHand: any;
|
138
|
+
canDisableRaiseHand: any;
|
139
|
+
canEnableVideo: any;
|
140
|
+
canDisableVideo: any;
|
141
|
+
canShareFile: any;
|
142
|
+
canShareApplication: any;
|
143
|
+
canShareCamera: any;
|
144
|
+
canShareDesktop: any;
|
145
|
+
canShareContent: any;
|
146
|
+
canTransferFile: any;
|
147
|
+
canChat: any;
|
148
|
+
canDoVideo: any;
|
149
|
+
canAnnotate: any;
|
150
|
+
canUseVoip: any;
|
151
|
+
supportHQV: any;
|
152
|
+
enforceVirtualBackground: any;
|
153
|
+
supportHDV: any;
|
154
|
+
canShareWhiteBoard: any;
|
155
|
+
/**
|
156
|
+
* Returns all meeting action options
|
157
|
+
* @returns {Object}
|
158
|
+
*/
|
159
|
+
get: () => IInMeetingActions;
|
160
|
+
/**
|
161
|
+
*
|
162
|
+
* @param actions
|
163
|
+
* @returns
|
164
|
+
*/
|
165
|
+
set: (actions: Partial<IInMeetingActions>) => boolean;
|
166
|
+
}
|
167
|
+
export {};
|