@webex/plugin-meetings 3.8.0 → 3.8.1-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +70 -6
- package/dist/breakouts/index.js.map +1 -1
- package/dist/common/errors/webex-errors.js +12 -2
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/config.js +5 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +23 -123
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +2 -0
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/types.js.map +1 -1
- package/dist/controls-options-manager/util.js +52 -0
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/interpretation/index.js +4 -4
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.js +31 -11
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +83 -12
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/selfUtils.js +432 -418
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +17 -17
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +94 -6
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/brbState.js +9 -2
- package/dist/meeting/brbState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +17 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +661 -334
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +21 -22
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.js +4 -4
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +30 -0
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +13 -2
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +373 -68
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +5 -1
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/index.js +136 -1
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/util.js +14 -0
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +55 -9
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +3 -0
- package/dist/member/types.js.map +1 -1
- package/dist/member/util.js +335 -353
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +137 -29
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +38 -0
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +36 -1
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +10 -0
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +40 -8
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/reachability/clusterReachability.js +63 -27
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/index.js +112 -47
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/reachability.types.js +14 -0
- package/dist/reachability/reachability.types.js.map +1 -1
- package/dist/reachability/request.js +19 -3
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +2 -2
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/util.js +5 -5
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/turnDiscovery.js +45 -27
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/roap/types.js +17 -0
- package/dist/roap/types.js.map +1 -0
- package/dist/types/common/errors/webex-errors.d.ts +7 -1
- package/dist/types/config.d.ts +3 -0
- package/dist/types/constants.d.ts +16 -85
- package/dist/types/controls-options-manager/enums.d.ts +3 -1
- package/dist/types/controls-options-manager/types.d.ts +7 -1
- package/dist/types/locus-info/index.d.ts +3 -3
- package/dist/types/locus-info/selfUtils.d.ts +216 -1
- package/dist/types/media/properties.d.ts +15 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +16 -0
- package/dist/types/meeting/index.d.ts +65 -1
- package/dist/types/meeting/muteState.d.ts +0 -1
- package/dist/types/meeting/request.d.ts +12 -1
- package/dist/types/meeting/request.type.d.ts +6 -0
- package/dist/types/meeting/util.d.ts +3 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +82 -1
- package/dist/types/meetings/index.d.ts +57 -0
- package/dist/types/member/index.d.ts +21 -6
- package/dist/types/member/types.d.ts +73 -14
- package/dist/types/member/util.d.ts +156 -1
- package/dist/types/members/collection.d.ts +6 -5
- package/dist/types/members/index.d.ts +32 -43
- package/dist/types/members/request.d.ts +26 -0
- package/dist/types/members/util.d.ts +27 -0
- package/dist/types/metrics/constants.d.ts +10 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +10 -1
- package/dist/types/reachability/clusterReachability.d.ts +15 -7
- package/dist/types/reachability/index.d.ts +10 -1
- package/dist/types/reachability/reachability.types.d.ts +5 -0
- package/dist/types/roap/index.d.ts +3 -2
- package/dist/types/roap/turnDiscovery.d.ts +5 -17
- package/dist/types/roap/types.d.ts +16 -0
- package/dist/webinar/index.js +2 -2
- package/dist/webinar/index.js.map +1 -1
- package/package.json +24 -23
- package/src/breakouts/index.ts +69 -0
- package/src/common/errors/webex-errors.ts +8 -1
- package/src/config.ts +3 -0
- package/src/constants.ts +24 -90
- package/src/controls-options-manager/enums.ts +2 -0
- package/src/controls-options-manager/types.ts +11 -1
- package/src/controls-options-manager/util.ts +62 -0
- package/src/interpretation/index.ts +3 -3
- package/src/locus-info/controlsUtils.ts +50 -14
- package/src/locus-info/index.ts +88 -13
- package/src/locus-info/selfUtils.ts +496 -442
- package/src/media/index.ts +23 -21
- package/src/media/properties.ts +96 -0
- package/src/meeting/brbState.ts +11 -2
- package/src/meeting/in-meeting-actions.ts +32 -0
- package/src/meeting/index.ts +449 -95
- package/src/meeting/locusMediaRequest.ts +27 -22
- package/src/meeting/muteState.ts +4 -4
- package/src/meeting/request.ts +36 -1
- package/src/meeting/request.type.ts +7 -0
- package/src/meeting/util.ts +11 -2
- package/src/meeting-info/meeting-info-v2.ts +254 -8
- package/src/meeting-info/utilv2.ts +5 -0
- package/src/meetings/index.ts +148 -1
- package/src/meetings/util.ts +18 -0
- package/src/member/index.ts +68 -22
- package/src/member/types.ts +82 -16
- package/src/member/util.ts +357 -350
- package/src/members/collection.ts +4 -3
- package/src/members/index.ts +137 -18
- package/src/members/request.ts +44 -0
- package/src/members/util.ts +43 -1
- package/src/metrics/constants.ts +10 -0
- package/src/multistream/remoteMediaManager.ts +32 -10
- package/src/reachability/clusterReachability.ts +73 -26
- package/src/reachability/index.ts +70 -1
- package/src/reachability/reachability.types.ts +6 -0
- package/src/reachability/request.ts +7 -0
- package/src/reconnection-manager/index.ts +2 -2
- package/src/recording-controller/util.ts +17 -13
- package/src/roap/index.ts +3 -7
- package/src/roap/turnDiscovery.ts +34 -39
- package/src/roap/types.ts +23 -0
- package/src/webinar/index.ts +1 -1
- package/test/unit/spec/breakouts/index.ts +167 -95
- package/test/unit/spec/controls-options-manager/util.js +120 -0
- package/test/unit/spec/interpretation/index.ts +39 -1
- package/test/unit/spec/locus-info/controlsUtils.js +139 -9
- package/test/unit/spec/locus-info/index.js +195 -73
- package/test/unit/spec/locus-info/selfUtils.js +98 -24
- package/test/unit/spec/media/index.ts +150 -18
- package/test/unit/spec/media/properties.ts +130 -0
- package/test/unit/spec/meeting/brbState.ts +40 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +19 -4
- package/test/unit/spec/meeting/index.js +754 -139
- package/test/unit/spec/meeting/locusMediaRequest.ts +95 -87
- package/test/unit/spec/meeting/muteState.js +73 -2
- package/test/unit/spec/meeting/request.js +32 -1
- package/test/unit/spec/meeting/utils.js +119 -18
- package/test/unit/spec/meeting-info/meetinginfov2.js +484 -114
- package/test/unit/spec/meeting-info/utilv2.js +19 -0
- package/test/unit/spec/meetings/index.js +146 -2
- package/test/unit/spec/member/index.js +7 -0
- package/test/unit/spec/member/util.js +24 -0
- package/test/unit/spec/members/index.js +304 -78
- package/test/unit/spec/members/request.js +68 -22
- package/test/unit/spec/members/utils.js +75 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +397 -118
- package/test/unit/spec/reachability/clusterReachability.ts +88 -56
- package/test/unit/spec/reachability/index.ts +101 -0
- package/test/unit/spec/reachability/request.js +47 -2
- package/test/unit/spec/reconnection-manager/index.js +4 -4
- package/test/unit/spec/roap/turnDiscovery.ts +110 -28
- package/test/unit/spec/webinar/index.ts +5 -0
- package/dist/annotation/annotation.types.d.ts +0 -42
- package/dist/annotation/constants.d.ts +0 -31
- package/dist/annotation/index.d.ts +0 -117
- package/dist/breakouts/breakout.d.ts +0 -8
- package/dist/breakouts/collection.d.ts +0 -5
- package/dist/breakouts/edit-lock-error.d.ts +0 -15
- package/dist/breakouts/events.d.ts +0 -8
- package/dist/breakouts/index.d.ts +0 -5
- package/dist/breakouts/request.d.ts +0 -22
- package/dist/breakouts/utils.d.ts +0 -15
- package/dist/common/browser-detection.d.ts +0 -9
- package/dist/common/collection.d.ts +0 -48
- package/dist/common/config.d.ts +0 -2
- package/dist/common/errors/captcha-error.d.ts +0 -15
- package/dist/common/errors/intent-to-join.d.ts +0 -16
- package/dist/common/errors/join-meeting.d.ts +0 -17
- package/dist/common/errors/media.d.ts +0 -15
- package/dist/common/errors/no-meeting-info.d.ts +0 -14
- package/dist/common/errors/parameter.d.ts +0 -15
- package/dist/common/errors/password-error.d.ts +0 -15
- package/dist/common/errors/permission.d.ts +0 -14
- package/dist/common/errors/reclaim-host-role-error.js +0 -149
- package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
- package/dist/common/errors/reclaim-host-role-errors.d.ts +0 -60
- package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
- package/dist/common/errors/reconnection-in-progress.js +0 -33
- package/dist/common/errors/reconnection-in-progress.js.map +0 -1
- package/dist/common/errors/reconnection.d.ts +0 -15
- package/dist/common/errors/stats.d.ts +0 -15
- package/dist/common/errors/webex-errors.d.ts +0 -93
- package/dist/common/errors/webex-meetings-error.d.ts +0 -20
- package/dist/common/events/events-scope.d.ts +0 -17
- package/dist/common/events/events.d.ts +0 -12
- package/dist/common/events/trigger-proxy.d.ts +0 -2
- package/dist/common/events/util.d.ts +0 -2
- package/dist/common/logs/logger-config.d.ts +0 -2
- package/dist/common/logs/logger-proxy.d.ts +0 -2
- package/dist/common/logs/request.d.ts +0 -36
- package/dist/common/queue.d.ts +0 -34
- package/dist/config.d.ts +0 -72
- package/dist/constants.d.ts +0 -1088
- package/dist/controls-options-manager/constants.d.ts +0 -4
- package/dist/controls-options-manager/enums.d.ts +0 -15
- package/dist/controls-options-manager/index.d.ts +0 -136
- package/dist/controls-options-manager/types.d.ts +0 -43
- package/dist/controls-options-manager/util.d.ts +0 -1
- package/dist/index.d.ts +0 -7
- package/dist/interceptors/index.d.ts +0 -2
- package/dist/interceptors/locusRetry.d.ts +0 -27
- package/dist/interpretation/collection.d.ts +0 -5
- package/dist/interpretation/index.d.ts +0 -5
- package/dist/interpretation/siLanguage.d.ts +0 -5
- package/dist/locus-info/controlsUtils.d.ts +0 -2
- package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
- package/dist/locus-info/fullState.d.ts +0 -2
- package/dist/locus-info/hostUtils.d.ts +0 -2
- package/dist/locus-info/index.d.ts +0 -322
- package/dist/locus-info/infoUtils.d.ts +0 -2
- package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
- package/dist/locus-info/parser.d.ts +0 -272
- package/dist/locus-info/selfUtils.d.ts +0 -2
- package/dist/media/index.d.ts +0 -34
- package/dist/media/properties.d.ts +0 -93
- package/dist/media/util.d.ts +0 -2
- package/dist/mediaQualityMetrics/config.d.ts +0 -241
- package/dist/mediaQualityMetrics/config.js +0 -502
- package/dist/mediaQualityMetrics/config.js.map +0 -1
- package/dist/meeting/effectsState.js +0 -260
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/meeting/in-meeting-actions.d.ts +0 -167
- package/dist/meeting/index.d.ts +0 -1825
- package/dist/meeting/locusMediaRequest.d.ts +0 -74
- package/dist/meeting/muteState.d.ts +0 -178
- package/dist/meeting/request.d.ts +0 -295
- package/dist/meeting/request.type.d.ts +0 -11
- package/dist/meeting/state.d.ts +0 -9
- package/dist/meeting/util.d.ts +0 -119
- package/dist/meeting/voicea-meeting.d.ts +0 -16
- package/dist/meeting-info/collection.d.ts +0 -20
- package/dist/meeting-info/index.d.ts +0 -69
- package/dist/meeting-info/meeting-info-v2.d.ts +0 -123
- package/dist/meeting-info/request.d.ts +0 -22
- package/dist/meeting-info/util.d.ts +0 -2
- package/dist/meeting-info/utilv2.d.ts +0 -2
- package/dist/meetings/collection.d.ts +0 -40
- package/dist/meetings/index.d.ts +0 -390
- package/dist/meetings/meetings.types.d.ts +0 -4
- package/dist/meetings/request.d.ts +0 -27
- package/dist/meetings/util.d.ts +0 -18
- package/dist/member/index.d.ts +0 -160
- package/dist/member/member.types.js +0 -17
- package/dist/member/member.types.js.map +0 -1
- package/dist/member/types.d.ts +0 -32
- package/dist/member/util.d.ts +0 -2
- package/dist/members/collection.d.ts +0 -29
- package/dist/members/index.d.ts +0 -353
- package/dist/members/request.d.ts +0 -114
- package/dist/members/types.d.ts +0 -25
- package/dist/members/util.d.ts +0 -215
- package/dist/metrics/config.js +0 -276
- package/dist/metrics/config.js.map +0 -1
- package/dist/metrics/constants.d.ts +0 -70
- package/dist/metrics/index.d.ts +0 -45
- package/dist/multistream/mediaRequestManager.d.ts +0 -119
- package/dist/multistream/receiveSlot.d.ts +0 -68
- package/dist/multistream/receiveSlotManager.d.ts +0 -56
- package/dist/multistream/remoteMedia.d.ts +0 -72
- package/dist/multistream/remoteMediaGroup.d.ts +0 -49
- package/dist/multistream/remoteMediaManager.d.ts +0 -300
- package/dist/multistream/sendSlotManager.d.ts +0 -69
- package/dist/networkQualityMonitor/index.d.ts +0 -70
- package/dist/networkQualityMonitor/index.js +0 -221
- package/dist/networkQualityMonitor/index.js.map +0 -1
- package/dist/peer-connection-manager/index.js +0 -671
- package/dist/peer-connection-manager/index.js.map +0 -1
- package/dist/peer-connection-manager/util.js +0 -109
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/dist/personal-meeting-room/index.d.ts +0 -47
- package/dist/personal-meeting-room/request.d.ts +0 -14
- package/dist/personal-meeting-room/util.d.ts +0 -2
- package/dist/reachability/clusterReachability.d.ts +0 -109
- package/dist/reachability/index.d.ts +0 -105
- package/dist/reachability/request.d.ts +0 -39
- package/dist/reachability/util.d.ts +0 -8
- package/dist/reactions/constants.d.ts +0 -3
- package/dist/reactions/reactions.d.ts +0 -4
- package/dist/reactions/reactions.type.d.ts +0 -52
- package/dist/reconnection-manager/index.d.ts +0 -136
- package/dist/recording-controller/enums.d.ts +0 -7
- package/dist/recording-controller/index.d.ts +0 -207
- package/dist/recording-controller/util.d.ts +0 -14
- package/dist/roap/collection.js +0 -62
- package/dist/roap/collection.js.map +0 -1
- package/dist/roap/handler.js +0 -275
- package/dist/roap/handler.js.map +0 -1
- package/dist/roap/index.d.ts +0 -86
- package/dist/roap/request.d.ts +0 -39
- package/dist/roap/state.js +0 -126
- package/dist/roap/state.js.map +0 -1
- package/dist/roap/turnDiscovery.d.ts +0 -155
- package/dist/roap/util.js +0 -75
- package/dist/roap/util.js.map +0 -1
- package/dist/rtcMetrics/constants.d.ts +0 -4
- package/dist/rtcMetrics/constants.js +0 -11
- package/dist/rtcMetrics/constants.js.map +0 -1
- package/dist/rtcMetrics/index.d.ts +0 -61
- package/dist/rtcMetrics/index.js +0 -197
- package/dist/rtcMetrics/index.js.map +0 -1
- package/dist/statsAnalyzer/global.d.ts +0 -36
- package/dist/statsAnalyzer/global.js +0 -126
- package/dist/statsAnalyzer/global.js.map +0 -1
- package/dist/statsAnalyzer/index.d.ts +0 -217
- package/dist/statsAnalyzer/index.js +0 -1013
- package/dist/statsAnalyzer/index.js.map +0 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +0 -48
- package/dist/statsAnalyzer/mqaUtil.js +0 -179
- package/dist/statsAnalyzer/mqaUtil.js.map +0 -1
- package/dist/transcription/index.d.ts +0 -64
- package/dist/types/common/errors/reconnection-in-progress.d.ts +0 -9
- package/dist/types/mediaQualityMetrics/config.d.ts +0 -241
- package/dist/types/networkQualityMonitor/index.d.ts +0 -70
- package/dist/types/rtcMetrics/constants.d.ts +0 -4
- package/dist/types/rtcMetrics/index.d.ts +0 -71
- package/dist/types/statsAnalyzer/global.d.ts +0 -36
- package/dist/types/statsAnalyzer/index.d.ts +0 -217
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -48
- package/dist/webinar/collection.d.ts +0 -16
- package/dist/webinar/index.d.ts +0 -5
package/dist/meeting/index.js
CHANGED
@@ -21,6 +21,7 @@ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/
|
|
21
21
|
var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
|
22
22
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
23
23
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
|
24
|
+
var _isNan = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/number/is-nan"));
|
24
25
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
25
26
|
var _weakMap = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/weak-map"));
|
26
27
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/typeof"));
|
@@ -506,6 +507,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
506
507
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "allowMediaInLobby", void 0);
|
507
508
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "localShareInstanceId", void 0);
|
508
509
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "remoteShareInstanceId", void 0);
|
510
|
+
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "shareCAEventSentStatus", void 0);
|
509
511
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "turnDiscoverySkippedReason", void 0);
|
510
512
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "turnServerUsed", void 0);
|
511
513
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "areVoiceaEventsSetup", false);
|
@@ -560,6 +562,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
560
562
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "rtcMetrics", void 0);
|
561
563
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "uploadLogsTimer", void 0);
|
562
564
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "logUploadIntervalIndex", void 0);
|
565
|
+
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "mediaServerIp", void 0);
|
563
566
|
/**
|
564
567
|
* Callback called when a relay event is received from meeting LLM Connection
|
565
568
|
* @param {RelayEvent} e Event object coming from LLM Connection
|
@@ -646,7 +649,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
646
649
|
rawError: error
|
647
650
|
}
|
648
651
|
});
|
649
|
-
} else if (error instanceof _internalMediaCore.Errors.SdpOfferHandlingError
|
652
|
+
} else if (error instanceof _internalMediaCore.Errors.SdpOfferHandlingError) {
|
650
653
|
sendBehavioralMetric(_constants2.default.PEERCONNECTION_FAILURE, error, _this.correlationId);
|
651
654
|
|
652
655
|
// @ts-ignore
|
@@ -660,6 +663,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
660
663
|
rawError: error
|
661
664
|
}
|
662
665
|
});
|
666
|
+
} else if (error instanceof _internalMediaCore.Errors.SdpAnswerHandlingError) {
|
667
|
+
sendBehavioralMetric(_constants2.default.PEERCONNECTION_FAILURE, error, _this.correlationId);
|
668
|
+
|
669
|
+
// @ts-ignore
|
670
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
671
|
+
name: 'client.media-engine.remote-sdp-received',
|
672
|
+
payload: {
|
673
|
+
canProceed: false
|
674
|
+
},
|
675
|
+
options: {
|
676
|
+
meetingId: _this.id,
|
677
|
+
rawError: error
|
678
|
+
}
|
679
|
+
});
|
680
|
+
if (_this.deferSDPAnswer) {
|
681
|
+
clearTimeout(_this.sdpResponseTimer);
|
682
|
+
_this.sdpResponseTimer = undefined;
|
683
|
+
_this.deferSDPAnswer.reject();
|
684
|
+
}
|
663
685
|
} else if (error instanceof _internalMediaCore.Errors.SdpError) {
|
664
686
|
// this covers also the case of Errors.IceGatheringError which extends Errors.SdpError
|
665
687
|
sendBehavioralMetric(_constants2.default.INVALID_ICE_CANDIDATE, error, _this.correlationId);
|
@@ -685,6 +707,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
685
707
|
*/
|
686
708
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "roapMessageReceived", function (roapMessage) {
|
687
709
|
var mediaServer = roapMessage.messageType === 'ANSWER' ? _util3.default.getMediaServer(roapMessage.sdp) : undefined;
|
710
|
+
var mediaServerIp = roapMessage.messageType === 'ANSWER' ? _util3.default.getMediaServerIp(roapMessage.sdp) : undefined;
|
688
711
|
if (_this.isMultistream && mediaServer && mediaServer !== 'homer') {
|
689
712
|
throw new _multistreamNotSupportedError.default("Client asked for multistream backend (Homer), but got ".concat(mediaServer, " instead"));
|
690
713
|
}
|
@@ -692,6 +715,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
692
715
|
if (mediaServer) {
|
693
716
|
_this.mediaProperties.webrtcMediaConnection.mediaServer = mediaServer;
|
694
717
|
}
|
718
|
+
if (_this.isMultistream && mediaServerIp) {
|
719
|
+
_this.mediaServerIp = mediaServerIp;
|
720
|
+
}
|
695
721
|
});
|
696
722
|
/**
|
697
723
|
* This function makes sure we send the right metrics when local and remote SDPs are processed/generated
|
@@ -1034,18 +1060,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1034
1060
|
* @memberof Meetings
|
1035
1061
|
*/
|
1036
1062
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "setupStatsAnalyzerEventHandlers", function () {
|
1037
|
-
_this.statsAnalyzer.on(_internalMediaCore.StatsAnalyzerEventNames.MEDIA_QUALITY, function (
|
1038
|
-
|
1039
|
-
|
1040
|
-
|
1041
|
-
|
1042
|
-
|
1043
|
-
|
1044
|
-
|
1045
|
-
|
1063
|
+
_this.statsAnalyzer.on(_internalMediaCore.StatsAnalyzerEventNames.MEDIA_QUALITY, function (event) {
|
1064
|
+
// Add IP address from geoHintInfo if missing.
|
1065
|
+
if (event.data.intervalMetadata.maskedPeerReflexiveIP === '0.0.0.0') {
|
1066
|
+
var _this$webex$meetings$;
|
1067
|
+
// @ts-ignore fix type
|
1068
|
+
var clientAddressFromGeoHint = (_this$webex$meetings$ = _this.webex.meetings.geoHintInfo) === null || _this$webex$meetings$ === void 0 ? void 0 : _this$webex$meetings$.clientAddress;
|
1069
|
+
if (clientAddressFromGeoHint) {
|
1070
|
+
event.data.intervalMetadata.maskedPeerReflexiveIP = _internalPluginMetrics.CallDiagnosticUtils.anonymizeIPAddress(clientAddressFromGeoHint);
|
1071
|
+
}
|
1072
|
+
}
|
1046
1073
|
|
1047
|
-
// Count members that are in the meeting
|
1048
|
-
|
1074
|
+
// Count members that are in the meeting.
|
1075
|
+
var members = _this.getMembers().membersCollection.members;
|
1076
|
+
event.data.intervalMetadata.meetingUserCount = (0, _values.default)(members).filter(function (member) {
|
1049
1077
|
return member.isInMeeting;
|
1050
1078
|
}).length;
|
1051
1079
|
|
@@ -1054,10 +1082,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1054
1082
|
name: 'client.mediaquality.event',
|
1055
1083
|
options: {
|
1056
1084
|
meetingId: _this.id,
|
1057
|
-
networkType:
|
1085
|
+
networkType: _this.statsAnalyzer.getNetworkType()
|
1058
1086
|
},
|
1059
1087
|
payload: {
|
1060
|
-
intervals: [
|
1088
|
+
intervals: [event.data]
|
1061
1089
|
}
|
1062
1090
|
});
|
1063
1091
|
});
|
@@ -1066,85 +1094,101 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1066
1094
|
file: 'meeting/index',
|
1067
1095
|
function: 'addMedia'
|
1068
1096
|
}, _constants.EVENT_TRIGGERS.MEETING_MEDIA_LOCAL_STARTED, data);
|
1069
|
-
|
1070
|
-
|
1071
|
-
|
1072
|
-
|
1073
|
-
|
1074
|
-
|
1075
|
-
|
1076
|
-
|
1077
|
-
|
1097
|
+
if (data.mediaType !== 'share' || !_this.shareCAEventSentStatus.transmitStart) {
|
1098
|
+
// @ts-ignore
|
1099
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
1100
|
+
name: 'client.media.tx.start',
|
1101
|
+
payload: {
|
1102
|
+
mediaType: data.mediaType,
|
1103
|
+
shareInstanceId: data.mediaType === 'share' ? _this.localShareInstanceId : undefined
|
1104
|
+
},
|
1105
|
+
options: {
|
1106
|
+
meetingId: _this.id
|
1107
|
+
}
|
1108
|
+
});
|
1109
|
+
if (data.mediaType === 'share') {
|
1110
|
+
_this.shareCAEventSentStatus.transmitStart = true;
|
1078
1111
|
}
|
1079
|
-
}
|
1112
|
+
}
|
1080
1113
|
});
|
1081
1114
|
_this.statsAnalyzer.on(_internalMediaCore.StatsAnalyzerEventNames.LOCAL_MEDIA_STOPPED, function (data) {
|
1082
|
-
|
1083
|
-
|
1084
|
-
|
1085
|
-
|
1086
|
-
|
1087
|
-
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1115
|
+
if (data.mediaType !== 'share' || !_this.shareCAEventSentStatus.transmitStop) {
|
1116
|
+
// @ts-ignore
|
1117
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
1118
|
+
name: 'client.media.tx.stop',
|
1119
|
+
payload: {
|
1120
|
+
mediaType: data.mediaType,
|
1121
|
+
shareInstanceId: data.mediaType === 'share' ? _this.localShareInstanceId : undefined
|
1122
|
+
},
|
1123
|
+
options: {
|
1124
|
+
meetingId: _this.id
|
1125
|
+
}
|
1126
|
+
});
|
1127
|
+
if (data.mediaType === 'share') {
|
1128
|
+
_this.shareCAEventSentStatus.transmitStop = true;
|
1091
1129
|
}
|
1092
|
-
}
|
1130
|
+
}
|
1093
1131
|
});
|
1094
1132
|
_this.statsAnalyzer.on(_internalMediaCore.StatsAnalyzerEventNames.REMOTE_MEDIA_STARTED, function (data) {
|
1095
1133
|
_triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
|
1096
1134
|
file: 'meeting/index',
|
1097
1135
|
function: 'addMedia'
|
1098
1136
|
}, _constants.EVENT_TRIGGERS.MEETING_MEDIA_REMOTE_STARTED, data);
|
1099
|
-
|
1100
|
-
_this.webex.internal.newMetrics.submitClientEvent({
|
1101
|
-
name: 'client.media.rx.start',
|
1102
|
-
payload: {
|
1103
|
-
mediaType: data.mediaType,
|
1104
|
-
shareInstanceId: data.mediaType === 'share' ? _this.remoteShareInstanceId : undefined
|
1105
|
-
},
|
1106
|
-
options: {
|
1107
|
-
meetingId: _this.id
|
1108
|
-
}
|
1109
|
-
});
|
1110
|
-
if (data.mediaType === 'share') {
|
1137
|
+
if (data.mediaType !== 'share' || !_this.shareCAEventSentStatus.receiveStart) {
|
1111
1138
|
// @ts-ignore
|
1112
1139
|
_this.webex.internal.newMetrics.submitClientEvent({
|
1113
|
-
name: 'client.media.
|
1140
|
+
name: 'client.media.rx.start',
|
1114
1141
|
payload: {
|
1115
|
-
mediaType:
|
1116
|
-
shareInstanceId: _this.remoteShareInstanceId
|
1142
|
+
mediaType: data.mediaType,
|
1143
|
+
shareInstanceId: data.mediaType === 'share' ? _this.remoteShareInstanceId : undefined
|
1117
1144
|
},
|
1118
1145
|
options: {
|
1119
1146
|
meetingId: _this.id
|
1120
1147
|
}
|
1121
1148
|
});
|
1149
|
+
if (data.mediaType === 'share') {
|
1150
|
+
// @ts-ignore
|
1151
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
1152
|
+
name: 'client.media.render.start',
|
1153
|
+
payload: {
|
1154
|
+
mediaType: 'share',
|
1155
|
+
shareInstanceId: _this.remoteShareInstanceId
|
1156
|
+
},
|
1157
|
+
options: {
|
1158
|
+
meetingId: _this.id
|
1159
|
+
}
|
1160
|
+
});
|
1161
|
+
_this.shareCAEventSentStatus.receiveStart = true;
|
1162
|
+
}
|
1122
1163
|
}
|
1123
1164
|
});
|
1124
1165
|
_this.statsAnalyzer.on(_internalMediaCore.StatsAnalyzerEventNames.REMOTE_MEDIA_STOPPED, function (data) {
|
1125
|
-
|
1126
|
-
_this.webex.internal.newMetrics.submitClientEvent({
|
1127
|
-
name: 'client.media.rx.stop',
|
1128
|
-
payload: {
|
1129
|
-
mediaType: data.mediaType,
|
1130
|
-
shareInstanceId: data.mediaType === 'share' ? _this.remoteShareInstanceId : undefined
|
1131
|
-
},
|
1132
|
-
options: {
|
1133
|
-
meetingId: _this.id
|
1134
|
-
}
|
1135
|
-
});
|
1136
|
-
if (data.mediaType === 'share') {
|
1166
|
+
if (data.mediaType !== 'share' || !_this.shareCAEventSentStatus.receiveStop) {
|
1137
1167
|
// @ts-ignore
|
1138
1168
|
_this.webex.internal.newMetrics.submitClientEvent({
|
1139
|
-
name: 'client.media.
|
1169
|
+
name: 'client.media.rx.stop',
|
1140
1170
|
payload: {
|
1141
|
-
mediaType:
|
1142
|
-
shareInstanceId: _this.remoteShareInstanceId
|
1171
|
+
mediaType: data.mediaType,
|
1172
|
+
shareInstanceId: data.mediaType === 'share' ? _this.remoteShareInstanceId : undefined
|
1143
1173
|
},
|
1144
1174
|
options: {
|
1145
1175
|
meetingId: _this.id
|
1146
1176
|
}
|
1147
1177
|
});
|
1178
|
+
if (data.mediaType === 'share') {
|
1179
|
+
// @ts-ignore
|
1180
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
1181
|
+
name: 'client.media.render.stop',
|
1182
|
+
payload: {
|
1183
|
+
mediaType: 'share',
|
1184
|
+
shareInstanceId: _this.remoteShareInstanceId
|
1185
|
+
},
|
1186
|
+
options: {
|
1187
|
+
meetingId: _this.id
|
1188
|
+
}
|
1189
|
+
});
|
1190
|
+
_this.shareCAEventSentStatus.receiveStop = true;
|
1191
|
+
}
|
1148
1192
|
}
|
1149
1193
|
});
|
1150
1194
|
});
|
@@ -1282,8 +1326,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1282
1326
|
* @returns {undefined}
|
1283
1327
|
*/
|
1284
1328
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleShareVideoStreamMuteStateChange", function (muted) {
|
1285
|
-
var _this$
|
1329
|
+
var _this$mediaProperties3, _this$mediaProperties4, _this$statsAnalyzer;
|
1286
1330
|
_loggerProxy.default.logger.log("Meeting:index#handleShareVideoStreamMuteStateChange --> Share video stream mute state changed to muted ".concat(muted));
|
1331
|
+
var shareVideoStreamSettings = (_this$mediaProperties3 = _this.mediaProperties) === null || _this$mediaProperties3 === void 0 ? void 0 : (_this$mediaProperties4 = _this$mediaProperties3.shareVideoStream) === null || _this$mediaProperties4 === void 0 ? void 0 : _this$mediaProperties4.getSettings();
|
1287
1332
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE, {
|
1288
1333
|
correlationId: _this.correlationId,
|
1289
1334
|
muted: muted,
|
@@ -1292,8 +1337,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1292
1337
|
// SDK to TypeScript 5, which may affect other packages, use bracket notation for now, since
|
1293
1338
|
// all we're doing here is adding metrics.
|
1294
1339
|
// eslint-disable-next-line dot-notation
|
1295
|
-
displaySurface:
|
1296
|
-
isMultistream: _this.isMultistream
|
1340
|
+
displaySurface: shareVideoStreamSettings === null || shareVideoStreamSettings === void 0 ? void 0 : shareVideoStreamSettings['displaySurface'],
|
1341
|
+
isMultistream: _this.isMultistream,
|
1342
|
+
frameRate: shareVideoStreamSettings === null || shareVideoStreamSettings === void 0 ? void 0 : shareVideoStreamSettings.frameRate
|
1297
1343
|
});
|
1298
1344
|
});
|
1299
1345
|
/**
|
@@ -1996,7 +2042,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1996
2042
|
captions: [],
|
1997
2043
|
isListening: false,
|
1998
2044
|
commandText: '',
|
1999
|
-
languageOptions: {
|
2045
|
+
languageOptions: {
|
2046
|
+
currentSpokenLanguage: 'en'
|
2047
|
+
},
|
2000
2048
|
showCaptionBox: false,
|
2001
2049
|
transcribingRequestStatus: 'INACTIVE',
|
2002
2050
|
isCaptioning: false,
|
@@ -2084,6 +2132,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
2084
2132
|
*/
|
2085
2133
|
_this.remoteShareInstanceId = null;
|
2086
2134
|
|
2135
|
+
/**
|
2136
|
+
* Status used for ensuring we do not oversend metrics
|
2137
|
+
* @instance
|
2138
|
+
* @private
|
2139
|
+
* @memberof Meeting
|
2140
|
+
*/
|
2141
|
+
_this.shareCAEventSentStatus = {
|
2142
|
+
transmitStart: false,
|
2143
|
+
transmitStop: false,
|
2144
|
+
receiveStart: false,
|
2145
|
+
receiveStop: false
|
2146
|
+
};
|
2147
|
+
|
2087
2148
|
/**
|
2088
2149
|
* The class that helps to control recording functions: start, stop, pause, resume, etc
|
2089
2150
|
* @instance
|
@@ -2245,6 +2306,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
2245
2306
|
* @memberof Meeting
|
2246
2307
|
*/
|
2247
2308
|
(0, _classPrivateFieldSet2.default)((0, _assertThisInitialized2.default)(_this), _isoLocalClientMeetingJoinTime, undefined);
|
2309
|
+
|
2310
|
+
// We clear the error cache of CA events on every new meeting instance
|
2311
|
+
// @ts-ignore - Fix type
|
2312
|
+
_this.webex.internal.newMetrics.callDiagnosticMetrics.clearErrorCache();
|
2313
|
+
|
2314
|
+
/**
|
2315
|
+
* IP Address of the remote media server
|
2316
|
+
* @instance
|
2317
|
+
* @type {string}
|
2318
|
+
* @private
|
2319
|
+
* @memberof Meeting
|
2320
|
+
*/
|
2321
|
+
_this.mediaServerIp = undefined;
|
2248
2322
|
return _this;
|
2249
2323
|
}
|
2250
2324
|
|
@@ -2303,6 +2377,44 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
2303
2377
|
this.callStateForMetrics.correlationId = correlationId;
|
2304
2378
|
}
|
2305
2379
|
|
2380
|
+
/**
|
2381
|
+
* Getter - Returns callStateForMetrics.userNameInput
|
2382
|
+
* @returns {string}
|
2383
|
+
*/
|
2384
|
+
}, {
|
2385
|
+
key: "userNameInput",
|
2386
|
+
get: function get() {
|
2387
|
+
var _this$callStateForMet;
|
2388
|
+
return (_this$callStateForMet = this.callStateForMetrics) === null || _this$callStateForMet === void 0 ? void 0 : _this$callStateForMet.userNameInput;
|
2389
|
+
}
|
2390
|
+
|
2391
|
+
/**
|
2392
|
+
* Setter - sets callStateForMetrics.userNameInput
|
2393
|
+
* @param {string} userNameInput
|
2394
|
+
*/,
|
2395
|
+
set: function set(userNameInput) {
|
2396
|
+
this.callStateForMetrics.userNameInput = userNameInput;
|
2397
|
+
}
|
2398
|
+
|
2399
|
+
/**
|
2400
|
+
* Getter - Returns callStateForMetrics.emailInput
|
2401
|
+
* @returns {string}
|
2402
|
+
*/
|
2403
|
+
}, {
|
2404
|
+
key: "emailInput",
|
2405
|
+
get: function get() {
|
2406
|
+
var _this$callStateForMet2;
|
2407
|
+
return (_this$callStateForMet2 = this.callStateForMetrics) === null || _this$callStateForMet2 === void 0 ? void 0 : _this$callStateForMet2.emailInput;
|
2408
|
+
}
|
2409
|
+
|
2410
|
+
/**
|
2411
|
+
* Setter - sets callStateForMetrics.emailInput
|
2412
|
+
* @param {string} emailInput
|
2413
|
+
*/,
|
2414
|
+
set: function set(emailInput) {
|
2415
|
+
this.callStateForMetrics.emailInput = emailInput;
|
2416
|
+
}
|
2417
|
+
|
2306
2418
|
/**
|
2307
2419
|
* Getter - Returns callStateForMetrics.sessionCorrelationId
|
2308
2420
|
* @returns {string}
|
@@ -2332,6 +2444,31 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
2332
2444
|
return (0, _classPrivateFieldGet2.default)(this, _isoLocalClientMeetingJoinTime);
|
2333
2445
|
}
|
2334
2446
|
|
2447
|
+
/**
|
2448
|
+
* Setter - sets isoLocalClientMeetingJoinTime
|
2449
|
+
* This will be set once on meeting join, and not updated again
|
2450
|
+
* this will always produce an ISO string
|
2451
|
+
* If the iso string is invalid, it will fallback to the current system time
|
2452
|
+
* @param {string | undefined} time
|
2453
|
+
*/,
|
2454
|
+
set: function set(time) {
|
2455
|
+
var fallback = new Date().toISOString();
|
2456
|
+
if (!time) {
|
2457
|
+
(0, _classPrivateFieldSet2.default)(this, _isoLocalClientMeetingJoinTime, fallback);
|
2458
|
+
} else {
|
2459
|
+
var date = new Date(time);
|
2460
|
+
|
2461
|
+
// Check if the date is valid
|
2462
|
+
if ((0, _isNan.default)(date.getTime())) {
|
2463
|
+
_loggerProxy.default.logger.info( // @ts-ignore
|
2464
|
+
"Meeting:index#isoLocalClientMeetingJoinTime --> Invalid date provided: ".concat(time, ". Falling back to system clock."));
|
2465
|
+
(0, _classPrivateFieldSet2.default)(this, _isoLocalClientMeetingJoinTime, fallback);
|
2466
|
+
} else {
|
2467
|
+
(0, _classPrivateFieldSet2.default)(this, _isoLocalClientMeetingJoinTime, date.toISOString());
|
2468
|
+
}
|
2469
|
+
}
|
2470
|
+
}
|
2471
|
+
|
2335
2472
|
/**
|
2336
2473
|
* Set meeting info and trigger `MEETING_INFO_AVAILABLE` event
|
2337
2474
|
* @param {any} info
|
@@ -3171,6 +3308,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3171
3308
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_PARTICIPANTS, function (payload) {
|
3172
3309
|
_this13.members.locusParticipantsUpdate(payload);
|
3173
3310
|
});
|
3311
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.PARTICIPANT_REASON_CHANGED, function (payload) {
|
3312
|
+
_triggerProxy.default.trigger(_this13, {
|
3313
|
+
file: 'meeting/index',
|
3314
|
+
function: 'setUpLocusParticipantsListener'
|
3315
|
+
}, _constants.EVENT_TRIGGERS.MEETING_PARTICIPANT_REASON_CHANGED, {
|
3316
|
+
payload: payload
|
3317
|
+
});
|
3318
|
+
});
|
3174
3319
|
}
|
3175
3320
|
|
3176
3321
|
/**
|
@@ -3257,8 +3402,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3257
3402
|
}
|
3258
3403
|
}
|
3259
3404
|
});
|
3260
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.
|
3261
|
-
var
|
3405
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_TRANSCRIPTION_SPOKEN_LANGUAGE_UPDATED, function (_ref12) {
|
3406
|
+
var spokenLanguage = _ref12.spokenLanguage;
|
3407
|
+
if (spokenLanguage) {
|
3408
|
+
_this14.transcription.languageOptions.currentSpokenLanguage = spokenLanguage;
|
3409
|
+
// @ts-ignore
|
3410
|
+
_this14.webex.internal.voicea.onSpokenLanguageUpdate(spokenLanguage);
|
3411
|
+
_triggerProxy.default.trigger(_this14, {
|
3412
|
+
file: 'meeting/index',
|
3413
|
+
function: 'setupLocusControlsListener'
|
3414
|
+
}, _constants.EVENT_TRIGGERS.MEETING_TRANSCRIPTION_SPOKEN_LANGUAGE_UPDATED, {
|
3415
|
+
spokenLanguage: spokenLanguage
|
3416
|
+
});
|
3417
|
+
}
|
3418
|
+
});
|
3419
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_MANUAL_CAPTION_UPDATED, function (_ref13) {
|
3420
|
+
var enable = _ref13.enable;
|
3262
3421
|
_triggerProxy.default.trigger(_this14, {
|
3263
3422
|
file: 'meeting/index',
|
3264
3423
|
function: 'setupLocusControlsListener'
|
@@ -3266,24 +3425,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3266
3425
|
enable: enable
|
3267
3426
|
});
|
3268
3427
|
});
|
3269
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_BREAKOUT_UPDATED, function (
|
3270
|
-
var breakout =
|
3428
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_BREAKOUT_UPDATED, function (_ref14) {
|
3429
|
+
var breakout = _ref14.breakout;
|
3271
3430
|
_this14.breakouts.updateBreakout(breakout);
|
3272
3431
|
_triggerProxy.default.trigger(_this14, {
|
3273
3432
|
file: 'meeting/index',
|
3274
3433
|
function: 'setupLocusControlsListener'
|
3275
3434
|
}, _constants.EVENT_TRIGGERS.MEETING_BREAKOUTS_UPDATE);
|
3276
3435
|
});
|
3277
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_INTERPRETATION_UPDATED, function (
|
3278
|
-
var interpretation =
|
3436
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_INTERPRETATION_UPDATED, function (_ref15) {
|
3437
|
+
var interpretation = _ref15.interpretation;
|
3279
3438
|
_this14.simultaneousInterpretation.updateInterpretation(interpretation);
|
3280
3439
|
_triggerProxy.default.trigger(_this14, {
|
3281
3440
|
file: 'meeting/index',
|
3282
3441
|
function: 'setupLocusControlsListener'
|
3283
3442
|
}, _constants.EVENT_TRIGGERS.MEETING_INTERPRETATION_UPDATE);
|
3284
3443
|
});
|
3285
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED, function (
|
3286
|
-
var entryExitTone =
|
3444
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED, function (_ref16) {
|
3445
|
+
var entryExitTone = _ref16.entryExitTone;
|
3287
3446
|
_triggerProxy.default.trigger(_this14, {
|
3288
3447
|
file: 'meeting/index',
|
3289
3448
|
function: 'setupLocusControlsListener'
|
@@ -3291,8 +3450,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3291
3450
|
entryExitTone: entryExitTone
|
3292
3451
|
});
|
3293
3452
|
});
|
3294
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MUTE_ON_ENTRY_CHANGED, function (
|
3295
|
-
var state =
|
3453
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MUTE_ON_ENTRY_CHANGED, function (_ref17) {
|
3454
|
+
var state = _ref17.state;
|
3296
3455
|
_triggerProxy.default.trigger(_this14, {
|
3297
3456
|
file: 'meeting/index',
|
3298
3457
|
function: 'setupLocusControlsListener'
|
@@ -3300,8 +3459,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3300
3459
|
state: state
|
3301
3460
|
});
|
3302
3461
|
});
|
3303
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_SHARE_CONTROL_CHANGED, function (
|
3304
|
-
var state =
|
3462
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_SHARE_CONTROL_CHANGED, function (_ref18) {
|
3463
|
+
var state = _ref18.state;
|
3305
3464
|
_triggerProxy.default.trigger(_this14, {
|
3306
3465
|
file: 'meeting/index',
|
3307
3466
|
function: 'setupLocusControlsListener'
|
@@ -3309,8 +3468,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3309
3468
|
state: state
|
3310
3469
|
});
|
3311
3470
|
});
|
3312
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_DISALLOW_UNMUTE_CHANGED, function (
|
3313
|
-
var state =
|
3471
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_DISALLOW_UNMUTE_CHANGED, function (_ref19) {
|
3472
|
+
var state = _ref19.state;
|
3314
3473
|
_triggerProxy.default.trigger(_this14, {
|
3315
3474
|
file: 'meeting/index',
|
3316
3475
|
function: 'setupLocusControlsListener'
|
@@ -3318,8 +3477,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3318
3477
|
state: state
|
3319
3478
|
});
|
3320
3479
|
});
|
3321
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_REACTIONS_CHANGED, function (
|
3322
|
-
var state =
|
3480
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_REACTIONS_CHANGED, function (_ref20) {
|
3481
|
+
var state = _ref20.state;
|
3323
3482
|
_triggerProxy.default.trigger(_this14, {
|
3324
3483
|
file: 'meeting/index',
|
3325
3484
|
function: 'setupLocusControlsListener'
|
@@ -3327,8 +3486,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3327
3486
|
state: state
|
3328
3487
|
});
|
3329
3488
|
});
|
3330
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED, function (
|
3331
|
-
var state =
|
3489
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED, function (_ref21) {
|
3490
|
+
var state = _ref21.state;
|
3332
3491
|
_triggerProxy.default.trigger(_this14, {
|
3333
3492
|
file: 'meeting/index',
|
3334
3493
|
function: 'setupLocusControlsListener'
|
@@ -3336,8 +3495,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3336
3495
|
state: state
|
3337
3496
|
});
|
3338
3497
|
});
|
3339
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_RAISE_HAND_CHANGED, function (
|
3340
|
-
var state =
|
3498
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_RAISE_HAND_CHANGED, function (_ref22) {
|
3499
|
+
var state = _ref22.state;
|
3341
3500
|
_triggerProxy.default.trigger(_this14, {
|
3342
3501
|
file: 'meeting/index',
|
3343
3502
|
function: 'setupLocusControlsListener'
|
@@ -3345,8 +3504,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3345
3504
|
state: state
|
3346
3505
|
});
|
3347
3506
|
});
|
3348
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_WEBCAST_CHANGED, function (
|
3349
|
-
var state =
|
3507
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_WEBCAST_CHANGED, function (_ref23) {
|
3508
|
+
var state = _ref23.state;
|
3350
3509
|
_triggerProxy.default.trigger(_this14, {
|
3351
3510
|
file: 'meeting/index',
|
3352
3511
|
function: 'setupLocusControlsListener'
|
@@ -3354,8 +3513,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3354
3513
|
state: state
|
3355
3514
|
});
|
3356
3515
|
});
|
3357
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_FULL_CHANGED, function (
|
3358
|
-
var state =
|
3516
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_FULL_CHANGED, function (_ref24) {
|
3517
|
+
var state = _ref24.state;
|
3359
3518
|
_triggerProxy.default.trigger(_this14, {
|
3360
3519
|
file: 'meeting/index',
|
3361
3520
|
function: 'setupLocusControlsListener'
|
@@ -3363,8 +3522,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3363
3522
|
state: state
|
3364
3523
|
});
|
3365
3524
|
});
|
3366
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_PRACTICE_SESSION_STATUS_UPDATED, function (
|
3367
|
-
var state =
|
3525
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_PRACTICE_SESSION_STATUS_UPDATED, function (_ref25) {
|
3526
|
+
var state = _ref25.state;
|
3368
3527
|
_this14.webinar.updatePracticeSessionStatus(state);
|
3369
3528
|
_triggerProxy.default.trigger(_this14, {
|
3370
3529
|
file: 'meeting/index',
|
@@ -3373,8 +3532,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3373
3532
|
state: state
|
3374
3533
|
});
|
3375
3534
|
});
|
3376
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_STAGE_VIEW_UPDATED, function (
|
3377
|
-
var state =
|
3535
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_STAGE_VIEW_UPDATED, function (_ref26) {
|
3536
|
+
var state = _ref26.state;
|
3378
3537
|
_triggerProxy.default.trigger(_this14, {
|
3379
3538
|
file: 'meeting/index',
|
3380
3539
|
function: 'setupLocusControlsListener'
|
@@ -3382,8 +3541,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3382
3541
|
state: state
|
3383
3542
|
});
|
3384
3543
|
});
|
3385
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIDEO_CHANGED, function (
|
3386
|
-
var state =
|
3544
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIDEO_CHANGED, function (_ref27) {
|
3545
|
+
var state = _ref27.state;
|
3387
3546
|
_triggerProxy.default.trigger(_this14, {
|
3388
3547
|
file: 'meeting/index',
|
3389
3548
|
function: 'setupLocusControlsListener'
|
@@ -3391,6 +3550,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3391
3550
|
state: state
|
3392
3551
|
});
|
3393
3552
|
});
|
3553
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_ANNOTATION_CHANGED, function (_ref28) {
|
3554
|
+
var state = _ref28.state;
|
3555
|
+
_triggerProxy.default.trigger(_this14, {
|
3556
|
+
file: 'meeting/index',
|
3557
|
+
function: 'setupLocusControlsListener'
|
3558
|
+
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_ANNOTATION_UPDATED, {
|
3559
|
+
state: state
|
3560
|
+
});
|
3561
|
+
});
|
3562
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_REMOTE_DESKTOP_CONTROL_CHANGED, function (_ref29) {
|
3563
|
+
var state = _ref29.state;
|
3564
|
+
_triggerProxy.default.trigger(_this14, {
|
3565
|
+
file: 'meeting/index',
|
3566
|
+
function: 'setupLocusControlsListener'
|
3567
|
+
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_REMOTE_DESKTOP_CONTROL_UPDATED, {
|
3568
|
+
state: state
|
3569
|
+
});
|
3570
|
+
});
|
3394
3571
|
}
|
3395
3572
|
|
3396
3573
|
/**
|
@@ -3430,7 +3607,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3430
3607
|
var _this15 = this;
|
3431
3608
|
// Will get triggered on local and remote share
|
3432
3609
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_MEDIA_SHARES, /*#__PURE__*/function () {
|
3433
|
-
var
|
3610
|
+
var _ref30 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(payload) {
|
3434
3611
|
var _payload$previous, _payload$previous2;
|
3435
3612
|
var _payload$current, contentShare, whiteboardShare, previousContentShare, previousWhiteboardShare, newShareStatus, _this15$locusInfo, _this15$locusInfo$inf, _this15$webinar, oldShareStatus, sendStartedSharingRemote, _this15$mediaProperti;
|
3436
3613
|
return _regenerator.default.wrap(function _callee8$(_context8) {
|
@@ -3516,6 +3693,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3516
3693
|
case 26:
|
3517
3694
|
sendStartedSharingRemote = function sendStartedSharingRemote() {
|
3518
3695
|
_this15.remoteShareInstanceId = contentShare.shareInstanceId;
|
3696
|
+
_this15.shareCAEventSentStatus.receiveStart = false;
|
3697
|
+
_this15.shareCAEventSentStatus.receiveStop = false;
|
3519
3698
|
_triggerProxy.default.trigger(_this15, {
|
3520
3699
|
file: 'meetings/index',
|
3521
3700
|
function: 'remoteShare'
|
@@ -3589,6 +3768,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3589
3768
|
// if we got here, then some remote participant has stolen
|
3590
3769
|
// the presentation from another remote participant
|
3591
3770
|
_this15.remoteShareInstanceId = contentShare.shareInstanceId;
|
3771
|
+
_this15.shareCAEventSentStatus.receiveStart = false;
|
3772
|
+
_this15.shareCAEventSentStatus.receiveStop = false;
|
3592
3773
|
_triggerProxy.default.trigger(_this15, {
|
3593
3774
|
file: 'meetings/index',
|
3594
3775
|
function: 'remoteShare'
|
@@ -3629,7 +3810,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3629
3810
|
}, _callee8, null, [[27,, 31, 34]]);
|
3630
3811
|
}));
|
3631
3812
|
return function (_x8) {
|
3632
|
-
return
|
3813
|
+
return _ref30.apply(this, arguments);
|
3633
3814
|
};
|
3634
3815
|
}());
|
3635
3816
|
}
|
@@ -3743,8 +3924,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3743
3924
|
});
|
3744
3925
|
}
|
3745
3926
|
});
|
3746
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, function (
|
3747
|
-
var isInitializing =
|
3927
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, function (_ref31) {
|
3928
|
+
var isInitializing = _ref31.isInitializing;
|
3748
3929
|
_this19.updateMeetingActions();
|
3749
3930
|
_this19.recordingController.setDisplayHints(_this19.userDisplayHints);
|
3750
3931
|
_this19.recordingController.setUserPolicy(_this19.selfUserPolicies);
|
@@ -3882,7 +4063,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3882
4063
|
_this21.updateLLMConnection();
|
3883
4064
|
});
|
3884
4065
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ADMITTED_GUEST, /*#__PURE__*/function () {
|
3885
|
-
var
|
4066
|
+
var _ref32 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(payload) {
|
3886
4067
|
var _this21$rtcMetrics;
|
3887
4068
|
return _regenerator.default.wrap(function _callee9$(_context9) {
|
3888
4069
|
while (1) switch (_context9.prev = _context9.next) {
|
@@ -3916,7 +4097,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3916
4097
|
}, _callee9);
|
3917
4098
|
}));
|
3918
4099
|
return function (_x9) {
|
3919
|
-
return
|
4100
|
+
return _ref32.apply(this, arguments);
|
3920
4101
|
};
|
3921
4102
|
}());
|
3922
4103
|
|
@@ -4035,7 +4216,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4035
4216
|
}
|
4036
4217
|
});
|
4037
4218
|
this.locusInfo.on(_constants.EVENTS.DESTROY_MEETING, /*#__PURE__*/function () {
|
4038
|
-
var
|
4219
|
+
var _ref33 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(payload) {
|
4039
4220
|
return _regenerator.default.wrap(function _callee10$(_context10) {
|
4040
4221
|
while (1) switch (_context10.prev = _context10.next) {
|
4041
4222
|
case 0:
|
@@ -4095,7 +4276,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4095
4276
|
}, _callee10, null, [[8, 14]]);
|
4096
4277
|
}));
|
4097
4278
|
return function (_x10) {
|
4098
|
-
return
|
4279
|
+
return _ref33.apply(this, arguments);
|
4099
4280
|
};
|
4100
4281
|
}());
|
4101
4282
|
}
|
@@ -4154,6 +4335,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4154
4335
|
return this.members.cancelPhoneInvite(invitee);
|
4155
4336
|
}
|
4156
4337
|
|
4338
|
+
/**
|
4339
|
+
* Cancel an SIP call invitation made during a meeting
|
4340
|
+
* @param {Object} invitee
|
4341
|
+
* @param {String} invitee.memberId
|
4342
|
+
* @returns {Promise} see #members.cancelSIPInvite
|
4343
|
+
* @public
|
4344
|
+
* @memberof Meeting
|
4345
|
+
*/
|
4346
|
+
}, {
|
4347
|
+
key: "cancelSIPInvite",
|
4348
|
+
value: function cancelSIPInvite(invitee) {
|
4349
|
+
return this.members.cancelSIPInvite(invitee);
|
4350
|
+
}
|
4351
|
+
|
4157
4352
|
/**
|
4158
4353
|
* Admit the guest(s) to the call once they are waiting.
|
4159
4354
|
* If the host/cohost is in a breakout session, the locus url
|
@@ -4197,6 +4392,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4197
4392
|
key: "beRightBack",
|
4198
4393
|
value: (function () {
|
4199
4394
|
var _beRightBack = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(enabled) {
|
4395
|
+
var _this24 = this;
|
4200
4396
|
var errorMessage, error, _errorMessage, _error;
|
4201
4397
|
return _regenerator.default.wrap(function _callee11$(_context11) {
|
4202
4398
|
while (1) switch (_context11.prev = _context11.next) {
|
@@ -4219,7 +4415,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4219
4415
|
_loggerProxy.default.logger.error(_error);
|
4220
4416
|
return _context11.abrupt("return", _promise.default.reject(_error));
|
4221
4417
|
case 10:
|
4222
|
-
return _context11.abrupt("return", this.brbState.enable(enabled, this.sendSlotManager))
|
4418
|
+
return _context11.abrupt("return", this.brbState.enable(enabled, this.sendSlotManager).then(function () {
|
4419
|
+
if (_this24.audio && enabled) {
|
4420
|
+
// locus mutes the participant with brb enabled request,
|
4421
|
+
// so we need to explicitly update remote mute for correct logic flow
|
4422
|
+
_this24.audio.handleServerRemoteMuteUpdate(_this24, enabled);
|
4423
|
+
}
|
4424
|
+
}).catch(function (error) {
|
4425
|
+
return _promise.default.reject(error);
|
4426
|
+
}));
|
4223
4427
|
case 11:
|
4224
4428
|
case "end":
|
4225
4429
|
return _context11.stop();
|
@@ -4405,7 +4609,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4405
4609
|
canAdmitParticipant: _util2.default.canAdmitParticipant(this.userDisplayHints),
|
4406
4610
|
canLock: _util2.default.canUserLock(this.userDisplayHints),
|
4407
4611
|
canUnlock: _util2.default.canUserUnlock(this.userDisplayHints),
|
4408
|
-
canShareWhiteBoard: _util2.default.canShareWhiteBoard(this.userDisplayHints),
|
4612
|
+
canShareWhiteBoard: _util2.default.canShareWhiteBoard(this.userDisplayHints, this.selfUserPolicies),
|
4409
4613
|
canSetDisallowUnmute: _util5.default.canSetDisallowUnmute(this.userDisplayHints),
|
4410
4614
|
canUnsetDisallowUnmute: _util5.default.canUnsetDisallowUnmute(this.userDisplayHints),
|
4411
4615
|
canSetMuteOnEntry: _util5.default.canSetMuteOnEntry(this.userDisplayHints),
|
@@ -4435,6 +4639,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4435
4639
|
canSelectSpokenLanguages: _util2.default.canSelectSpokenLanguages(this.userDisplayHints),
|
4436
4640
|
waitingForOthersToJoin: _util2.default.waitingForOthersToJoin(this.userDisplayHints),
|
4437
4641
|
canSendReactions: _util2.default.canSendReactions(this.inMeetingActions.canSendReactions, this.userDisplayHints),
|
4642
|
+
requiresPostMeetingDataConsentPrompt: _util2.default.requiresPostMeetingDataConsentPrompt(this.userDisplayHints),
|
4438
4643
|
canManageBreakout: _util2.default.canManageBreakout(this.userDisplayHints),
|
4439
4644
|
canStartBreakout: _util2.default.canStartBreakout(this.userDisplayHints),
|
4440
4645
|
canBroadcastMessageToBreakout: _util2.default.canBroadcastMessageToBreakout(this.userDisplayHints, this.selfUserPolicies),
|
@@ -4443,6 +4648,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4443
4648
|
canUserAskForHelp: _util2.default.canUserAskForHelp(this.userDisplayHints),
|
4444
4649
|
canUserRenameSelfAndObserved: _util2.default.canUserRenameSelfAndObserved(this.userDisplayHints),
|
4445
4650
|
canUserRenameOthers: _util2.default.canUserRenameOthers(this.userDisplayHints),
|
4651
|
+
canMoveToLobby: _util2.default.canMoveToLobby(this.userDisplayHints),
|
4446
4652
|
canMuteAll: _util5.default.hasHints({
|
4447
4653
|
requiredHints: [_constants.DISPLAY_HINTS.MUTE_ALL],
|
4448
4654
|
displayHints: this.userDisplayHints
|
@@ -4574,6 +4780,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4574
4780
|
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_FILE_TRANSFER],
|
4575
4781
|
policies: this.selfUserPolicies
|
4576
4782
|
}),
|
4783
|
+
canRealtimeCloseCaption: _util5.default.hasPolicies({
|
4784
|
+
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_REALTIME_CLOSE_CAPTION],
|
4785
|
+
policies: this.selfUserPolicies
|
4786
|
+
}),
|
4787
|
+
canRealtimeCloseCaptionManual: _util5.default.hasPolicies({
|
4788
|
+
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_REALTIME_CLOSE_CAPTION_MANUAL],
|
4789
|
+
policies: this.selfUserPolicies
|
4790
|
+
}),
|
4577
4791
|
canChat: _util5.default.hasPolicies({
|
4578
4792
|
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_CHAT],
|
4579
4793
|
policies: this.selfUserPolicies
|
@@ -4610,6 +4824,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4610
4824
|
canAnnotate: _util5.default.hasPolicies({
|
4611
4825
|
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_ANNOTATION],
|
4612
4826
|
policies: this.selfUserPolicies
|
4827
|
+
}),
|
4828
|
+
canEnableAnnotation: _util5.default.hasHints({
|
4829
|
+
requiredHints: [_constants.DISPLAY_HINTS.ENABLE_ANNOTATION_MEETING_OPTION],
|
4830
|
+
displayHints: this.userDisplayHints
|
4831
|
+
}),
|
4832
|
+
canDisableAnnotation: _util5.default.hasHints({
|
4833
|
+
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_ANNOTATION_MEETING_OPTION],
|
4834
|
+
displayHints: this.userDisplayHints
|
4835
|
+
}),
|
4836
|
+
canEnableRemoteDesktopControl: _util5.default.hasHints({
|
4837
|
+
requiredHints: [_constants.DISPLAY_HINTS.ENABLE_RDC_MEETING_OPTION],
|
4838
|
+
displayHints: this.userDisplayHints
|
4839
|
+
}),
|
4840
|
+
canDisableRemoteDesktopControl: _util5.default.hasHints({
|
4841
|
+
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_RDC_MEETING_OPTION],
|
4842
|
+
displayHints: this.userDisplayHints
|
4613
4843
|
})
|
4614
4844
|
}) || changed;
|
4615
4845
|
}
|
@@ -4714,7 +4944,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4714
4944
|
}, {
|
4715
4945
|
key: "setLogUploadTimer",
|
4716
4946
|
value: function setLogUploadTimer() {
|
4717
|
-
var
|
4947
|
+
var _this25 = this;
|
4718
4948
|
// start with short timeouts and increase them later on so in case users have very long multi-hour meetings we don't get too fragmented logs
|
4719
4949
|
var LOG_UPLOAD_INTERVALS = [0.1, 15, 30, 60]; // in minutes
|
4720
4950
|
|
@@ -4725,15 +4955,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4725
4955
|
this.logUploadIntervalIndex += 1;
|
4726
4956
|
}
|
4727
4957
|
this.uploadLogsTimer = (0, _commonTimers.safeSetTimeout)(function () {
|
4728
|
-
|
4729
|
-
|
4958
|
+
_this25.uploadLogsTimer = undefined;
|
4959
|
+
_this25.uploadLogs();
|
4730
4960
|
|
4731
4961
|
// just as an extra precaution, to avoid uploading logs forever in case something goes wrong
|
4732
4962
|
// and the page remains opened, we stop it if there is no media connection
|
4733
|
-
if (!
|
4963
|
+
if (!_this25.mediaProperties.webrtcMediaConnection) {
|
4734
4964
|
return;
|
4735
4965
|
}
|
4736
|
-
|
4966
|
+
_this25.setLogUploadTimer();
|
4737
4967
|
}, delay);
|
4738
4968
|
}
|
4739
4969
|
|
@@ -4800,7 +5030,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4800
5030
|
}, {
|
4801
5031
|
key: "closeRemoteStreams",
|
4802
5032
|
value: function closeRemoteStreams() {
|
4803
|
-
var
|
5033
|
+
var _this26 = this;
|
4804
5034
|
var _this$mediaProperties6 = this.mediaProperties,
|
4805
5035
|
remoteAudioStream = _this$mediaProperties6.remoteAudioStream,
|
4806
5036
|
remoteVideoStream = _this$mediaProperties6.remoteVideoStream,
|
@@ -4814,7 +5044,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4814
5044
|
*/
|
4815
5045
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
4816
5046
|
var triggerMediaStoppedEvent = function triggerMediaStoppedEvent(mediaType) {
|
4817
|
-
_triggerProxy.default.trigger(
|
5047
|
+
_triggerProxy.default.trigger(_this26, {
|
4818
5048
|
file: 'meeting/index',
|
4819
5049
|
function: 'closeRemoteStreams'
|
4820
5050
|
}, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
|
@@ -5122,7 +5352,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5122
5352
|
}, {
|
5123
5353
|
key: "setMercuryListener",
|
5124
5354
|
value: function setMercuryListener() {
|
5125
|
-
var
|
5355
|
+
var _this27 = this;
|
5126
5356
|
// Client will have a socket manager and handle reconnecting to mercury, when we reconnect to mercury
|
5127
5357
|
// if the meeting has active peer connections, it should try to reconnect.
|
5128
5358
|
// @ts-ignore
|
@@ -5130,33 +5360,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5130
5360
|
_loggerProxy.default.logger.info('Meeting:index#setMercuryListener --> Web socket online');
|
5131
5361
|
|
5132
5362
|
// Only send restore event when it was disconnected before and for connected later
|
5133
|
-
if (!
|
5363
|
+
if (!_this27.hasWebsocketConnected) {
|
5134
5364
|
// @ts-ignore
|
5135
|
-
|
5365
|
+
_this27.webex.internal.newMetrics.submitClientEvent({
|
5136
5366
|
name: 'client.mercury.connection.restored',
|
5137
5367
|
options: {
|
5138
|
-
meetingId:
|
5368
|
+
meetingId: _this27.id
|
5139
5369
|
}
|
5140
5370
|
});
|
5141
5371
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_RESTORED, {
|
5142
|
-
correlation_id:
|
5372
|
+
correlation_id: _this27.correlationId
|
5143
5373
|
});
|
5144
5374
|
}
|
5145
|
-
|
5375
|
+
_this27.hasWebsocketConnected = true;
|
5146
5376
|
});
|
5147
5377
|
|
5148
5378
|
// @ts-ignore
|
5149
5379
|
this.webex.internal.mercury.on(_constants.OFFLINE, function () {
|
5150
5380
|
_loggerProxy.default.logger.error('Meeting:index#setMercuryListener --> Web socket offline');
|
5151
5381
|
// @ts-ignore
|
5152
|
-
|
5382
|
+
_this27.webex.internal.newMetrics.submitClientEvent({
|
5153
5383
|
name: 'client.mercury.connection.lost',
|
5154
5384
|
options: {
|
5155
|
-
meetingId:
|
5385
|
+
meetingId: _this27.id
|
5156
5386
|
}
|
5157
5387
|
});
|
5158
5388
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_FAILURE, {
|
5159
|
-
correlation_id:
|
5389
|
+
correlation_id: _this27.correlationId
|
5160
5390
|
});
|
5161
5391
|
});
|
5162
5392
|
}
|
@@ -5263,7 +5493,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5263
5493
|
}, {
|
5264
5494
|
key: "muteAudio",
|
5265
5495
|
value: function muteAudio() {
|
5266
|
-
var
|
5496
|
+
var _this28 = this;
|
5267
5497
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5268
5498
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5269
5499
|
}
|
@@ -5279,22 +5509,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5279
5509
|
|
5280
5510
|
// First, stop sending the local audio media
|
5281
5511
|
return logRequest(this.audio.handleClientRequest(this, true).then(function () {
|
5282
|
-
_util2.default.handleAudioLogging(
|
5512
|
+
_util2.default.handleAudioLogging(_this28.mediaProperties.audioStream);
|
5283
5513
|
// @ts-ignore
|
5284
|
-
|
5514
|
+
_this28.webex.internal.newMetrics.submitClientEvent({
|
5285
5515
|
name: 'client.muted',
|
5286
5516
|
payload: {
|
5287
5517
|
trigger: 'user-interaction',
|
5288
5518
|
mediaType: 'audio'
|
5289
5519
|
},
|
5290
5520
|
options: {
|
5291
|
-
meetingId:
|
5521
|
+
meetingId: _this28.id
|
5292
5522
|
}
|
5293
5523
|
});
|
5294
5524
|
}).catch(function (error) {
|
5295
5525
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_AUDIO_FAILURE, {
|
5296
|
-
correlation_id:
|
5297
|
-
locus_id:
|
5526
|
+
correlation_id: _this28.correlationId,
|
5527
|
+
locus_id: _this28.locusUrl.split('/').pop(),
|
5298
5528
|
reason: error.message,
|
5299
5529
|
stack: error.stack
|
5300
5530
|
});
|
@@ -5313,7 +5543,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5313
5543
|
}, {
|
5314
5544
|
key: "unmuteAudio",
|
5315
5545
|
value: function unmuteAudio() {
|
5316
|
-
var
|
5546
|
+
var _this29 = this;
|
5317
5547
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5318
5548
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5319
5549
|
}
|
@@ -5329,22 +5559,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5329
5559
|
|
5330
5560
|
// First, send the control to unmute the participant on the server
|
5331
5561
|
return logRequest(this.audio.handleClientRequest(this, false).then(function () {
|
5332
|
-
_util2.default.handleAudioLogging(
|
5562
|
+
_util2.default.handleAudioLogging(_this29.mediaProperties.audioStream);
|
5333
5563
|
// @ts-ignore
|
5334
|
-
|
5564
|
+
_this29.webex.internal.newMetrics.submitClientEvent({
|
5335
5565
|
name: 'client.unmuted',
|
5336
5566
|
payload: {
|
5337
5567
|
trigger: 'user-interaction',
|
5338
5568
|
mediaType: 'audio'
|
5339
5569
|
},
|
5340
5570
|
options: {
|
5341
|
-
meetingId:
|
5571
|
+
meetingId: _this29.id
|
5342
5572
|
}
|
5343
5573
|
});
|
5344
5574
|
}).catch(function (error) {
|
5345
5575
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_AUDIO_FAILURE, {
|
5346
|
-
correlation_id:
|
5347
|
-
locus_id:
|
5576
|
+
correlation_id: _this29.correlationId,
|
5577
|
+
locus_id: _this29.locusUrl.split('/').pop(),
|
5348
5578
|
reason: error.message,
|
5349
5579
|
stack: error.stack
|
5350
5580
|
});
|
@@ -5363,7 +5593,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5363
5593
|
}, {
|
5364
5594
|
key: "muteVideo",
|
5365
5595
|
value: function muteVideo() {
|
5366
|
-
var
|
5596
|
+
var _this30 = this;
|
5367
5597
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5368
5598
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5369
5599
|
}
|
@@ -5377,22 +5607,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5377
5607
|
return _promise.default.reject(new _parameter.default('no video control associated to the meeting'));
|
5378
5608
|
}
|
5379
5609
|
return logRequest(this.video.handleClientRequest(this, true).then(function () {
|
5380
|
-
_util2.default.handleVideoLogging(
|
5610
|
+
_util2.default.handleVideoLogging(_this30.mediaProperties.videoStream);
|
5381
5611
|
// @ts-ignore
|
5382
|
-
|
5612
|
+
_this30.webex.internal.newMetrics.submitClientEvent({
|
5383
5613
|
name: 'client.muted',
|
5384
5614
|
payload: {
|
5385
5615
|
trigger: 'user-interaction',
|
5386
5616
|
mediaType: 'video'
|
5387
5617
|
},
|
5388
5618
|
options: {
|
5389
|
-
meetingId:
|
5619
|
+
meetingId: _this30.id
|
5390
5620
|
}
|
5391
5621
|
});
|
5392
5622
|
}).catch(function (error) {
|
5393
5623
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_VIDEO_FAILURE, {
|
5394
|
-
correlation_id:
|
5395
|
-
locus_id:
|
5624
|
+
correlation_id: _this30.correlationId,
|
5625
|
+
locus_id: _this30.locusUrl.split('/').pop(),
|
5396
5626
|
reason: error.message,
|
5397
5627
|
stack: error.stack
|
5398
5628
|
});
|
@@ -5411,7 +5641,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5411
5641
|
}, {
|
5412
5642
|
key: "unmuteVideo",
|
5413
5643
|
value: function unmuteVideo() {
|
5414
|
-
var
|
5644
|
+
var _this31 = this;
|
5415
5645
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5416
5646
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5417
5647
|
}
|
@@ -5425,22 +5655,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5425
5655
|
return _promise.default.reject(new _parameter.default('no audio control associated to the meeting'));
|
5426
5656
|
}
|
5427
5657
|
return logRequest(this.video.handleClientRequest(this, false).then(function () {
|
5428
|
-
_util2.default.handleVideoLogging(
|
5658
|
+
_util2.default.handleVideoLogging(_this31.mediaProperties.videoStream);
|
5429
5659
|
// @ts-ignore
|
5430
|
-
|
5660
|
+
_this31.webex.internal.newMetrics.submitClientEvent({
|
5431
5661
|
name: 'client.unmuted',
|
5432
5662
|
payload: {
|
5433
5663
|
trigger: 'user-interaction',
|
5434
5664
|
mediaType: 'video'
|
5435
5665
|
},
|
5436
5666
|
options: {
|
5437
|
-
meetingId:
|
5667
|
+
meetingId: _this31.id
|
5438
5668
|
}
|
5439
5669
|
});
|
5440
5670
|
}).catch(function (error) {
|
5441
5671
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_VIDEO_FAILURE, {
|
5442
|
-
correlation_id:
|
5443
|
-
locus_id:
|
5672
|
+
correlation_id: _this31.correlationId,
|
5673
|
+
locus_id: _this31.locusUrl.split('/').pop(),
|
5444
5674
|
reason: error.message,
|
5445
5675
|
stack: error.stack
|
5446
5676
|
});
|
@@ -5470,7 +5700,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5470
5700
|
key: "joinWithMedia",
|
5471
5701
|
value: (function () {
|
5472
5702
|
var _joinWithMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
|
5473
|
-
var
|
5703
|
+
var _this32 = this;
|
5474
5704
|
var options,
|
5475
5705
|
mediaOptions,
|
5476
5706
|
_options$joinOptions,
|
@@ -5553,7 +5783,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5553
5783
|
case 35:
|
5554
5784
|
_context16.next = 37;
|
5555
5785
|
return this.addMediaInternal(function () {
|
5556
|
-
return
|
5786
|
+
return _this32.joinWithMediaRetryInfo.isRetry ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
5557
5787
|
}, turnServerInfo, forceTurnDiscovery, mediaOptions);
|
5558
5788
|
case 37:
|
5559
5789
|
mediaResponse = _context16.sent;
|
@@ -5648,7 +5878,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5648
5878
|
}, {
|
5649
5879
|
key: "reconnect",
|
5650
5880
|
value: function reconnect(options) {
|
5651
|
-
var
|
5881
|
+
var _this33 = this;
|
5652
5882
|
_loggerProxy.default.logger.log("Meeting:index#reconnect --> attempting to reconnect meeting ".concat(this.id));
|
5653
5883
|
if (!this.reconnectionManager || !this.reconnectionManager.reconnect) {
|
5654
5884
|
return _promise.default.reject(new _parameter.default('Cannot reconnect, ReconnectionManager must first be defined.'));
|
@@ -5664,10 +5894,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5664
5894
|
while (1) switch (_context17.prev = _context17.next) {
|
5665
5895
|
case 0:
|
5666
5896
|
_context17.next = 2;
|
5667
|
-
return
|
5897
|
+
return _this33.waitForRemoteSDPAnswer();
|
5668
5898
|
case 2:
|
5669
5899
|
_context17.next = 4;
|
5670
|
-
return
|
5900
|
+
return _this33.waitForMediaConnectionConnected();
|
5671
5901
|
case 4:
|
5672
5902
|
case "end":
|
5673
5903
|
return _context17.stop();
|
@@ -5681,7 +5911,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5681
5911
|
return _promise.default.resolve();
|
5682
5912
|
}
|
5683
5913
|
_loggerProxy.default.logger.error('Meeting:index#reconnect --> Meeting reconnect failed', error);
|
5684
|
-
|
5914
|
+
_this33.uploadLogs({
|
5685
5915
|
file: 'meeting/index',
|
5686
5916
|
function: 'reconnect'
|
5687
5917
|
});
|
@@ -5728,19 +5958,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5728
5958
|
}, {
|
5729
5959
|
key: "setCaptionLanguage",
|
5730
5960
|
value: function setCaptionLanguage(language) {
|
5731
|
-
var
|
5961
|
+
var _this34 = this;
|
5732
5962
|
return new _promise.default(function (resolve, reject) {
|
5733
|
-
if (!
|
5963
|
+
if (!_this34.isTranscriptionSupported()) {
|
5734
5964
|
_loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
|
5735
5965
|
reject(new Error('Webex Assistant is not enabled/supported'));
|
5736
5966
|
}
|
5737
5967
|
try {
|
5738
5968
|
var voiceaListenerCaptionUpdate = function voiceaListenerCaptionUpdate(payload) {
|
5739
5969
|
// @ts-ignore
|
5740
|
-
|
5970
|
+
_this34.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
|
5741
5971
|
var statusCode = payload.statusCode;
|
5742
5972
|
if (statusCode === 200) {
|
5743
|
-
|
5973
|
+
_this34.transcription.languageOptions = _objectSpread(_objectSpread({}, _this34.transcription.languageOptions), {}, {
|
5744
5974
|
currentCaptionLanguage: language
|
5745
5975
|
});
|
5746
5976
|
resolve(language);
|
@@ -5749,9 +5979,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5749
5979
|
}
|
5750
5980
|
};
|
5751
5981
|
// @ts-ignore
|
5752
|
-
|
5982
|
+
_this34.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
|
5753
5983
|
// @ts-ignore
|
5754
|
-
|
5984
|
+
_this34.webex.internal.voicea.requestLanguage(language);
|
5755
5985
|
} catch (error) {
|
5756
5986
|
_loggerProxy.default.logger.error("Meeting:index#setCaptionLanguage --> ".concat(error));
|
5757
5987
|
reject(error);
|
@@ -5767,23 +5997,23 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5767
5997
|
}, {
|
5768
5998
|
key: "setSpokenLanguage",
|
5769
5999
|
value: function setSpokenLanguage(language) {
|
5770
|
-
var
|
6000
|
+
var _this35 = this;
|
5771
6001
|
return new _promise.default(function (resolve, reject) {
|
5772
|
-
if (!
|
6002
|
+
if (!_this35.isTranscriptionSupported()) {
|
5773
6003
|
_loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
|
5774
6004
|
reject(new Error('Webex Assistant is not enabled/supported'));
|
5775
6005
|
}
|
5776
|
-
if (
|
6006
|
+
if (_this35.getCurUserType() !== 'host') {
|
5777
6007
|
_loggerProxy.default.logger.error('Meeting:index#setSpokenLanguage --> Only host can set spoken language');
|
5778
6008
|
reject(new Error('Only host can set spoken language'));
|
5779
6009
|
}
|
5780
6010
|
try {
|
5781
6011
|
var voiceaListenerLanguageUpdate = function voiceaListenerLanguageUpdate(payload) {
|
5782
6012
|
// @ts-ignore
|
5783
|
-
|
6013
|
+
_this35.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
|
5784
6014
|
var languageCode = payload.languageCode;
|
5785
6015
|
if (languageCode) {
|
5786
|
-
|
6016
|
+
_this35.transcription.languageOptions = _objectSpread(_objectSpread({}, _this35.transcription.languageOptions), {}, {
|
5787
6017
|
currentSpokenLanguage: languageCode
|
5788
6018
|
});
|
5789
6019
|
resolve(languageCode);
|
@@ -5793,10 +6023,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5793
6023
|
};
|
5794
6024
|
|
5795
6025
|
// @ts-ignore
|
5796
|
-
|
6026
|
+
_this35.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
|
5797
6027
|
|
5798
6028
|
// @ts-ignore
|
5799
|
-
|
6029
|
+
_this35.webex.internal.voicea.setSpokenLanguage(language);
|
5800
6030
|
} catch (error) {
|
5801
6031
|
_loggerProxy.default.logger.error("Meeting:index#setSpokenLanguage --> ".concat(error));
|
5802
6032
|
reject(error);
|
@@ -5919,7 +6149,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5919
6149
|
*/
|
5920
6150
|
function () {
|
5921
6151
|
var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
|
5922
|
-
var
|
6152
|
+
var _this36 = this;
|
5923
6153
|
var options,
|
5924
6154
|
errorMessage,
|
5925
6155
|
error,
|
@@ -6068,62 +6298,61 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6068
6298
|
return _context19.abrupt("return", _promise.default.reject(_context19.t0));
|
6069
6299
|
case 51:
|
6070
6300
|
return _context19.abrupt("return", _util2.default.joinMeetingOptions(this, options).then(function (join) {
|
6071
|
-
|
6072
|
-
|
6301
|
+
_this36.meetingFiniteStateMachine.join();
|
6302
|
+
_this36.setupLocusMediaRequest();
|
6073
6303
|
|
6074
6304
|
// @ts-ignore
|
6075
|
-
|
6076
|
-
(0, _classPrivateFieldSet2.default)(_this35, _isoLocalClientMeetingJoinTime, new Date().toISOString());
|
6305
|
+
_this36.webex.internal.device.meetingStarted();
|
6077
6306
|
_loggerProxy.default.logger.log('Meeting:index#join --> Success');
|
6078
6307
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
|
6079
|
-
correlation_id:
|
6308
|
+
correlation_id: _this36.correlationId
|
6080
6309
|
});
|
6081
6310
|
joinSuccess(join);
|
6082
|
-
|
6311
|
+
_this36.deferJoin = undefined;
|
6083
6312
|
return join;
|
6084
6313
|
}).catch(function (error) {
|
6085
|
-
var
|
6086
|
-
|
6314
|
+
var _this36$meetingInfo, _error$error;
|
6315
|
+
_this36.meetingFiniteStateMachine.fail(error);
|
6087
6316
|
_loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
|
6088
6317
|
|
6089
6318
|
// @ts-ignore
|
6090
|
-
|
6319
|
+
_this36.webex.internal.newMetrics.submitClientEvent({
|
6091
6320
|
name: 'client.locus.join.response',
|
6092
6321
|
payload: {
|
6093
6322
|
identifiers: {
|
6094
|
-
meetingLookupUrl: (
|
6323
|
+
meetingLookupUrl: (_this36$meetingInfo = _this36.meetingInfo) === null || _this36$meetingInfo === void 0 ? void 0 : _this36$meetingInfo.meetingLookupUrl
|
6095
6324
|
}
|
6096
6325
|
},
|
6097
6326
|
options: {
|
6098
|
-
meetingId:
|
6327
|
+
meetingId: _this36.id,
|
6099
6328
|
rawError: error
|
6100
6329
|
}
|
6101
6330
|
});
|
6102
6331
|
|
6103
6332
|
// TODO: change this to error codes and pre defined dictionary
|
6104
6333
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
|
6105
|
-
correlation_id:
|
6334
|
+
correlation_id: _this36.correlationId,
|
6106
6335
|
reason: (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.message,
|
6107
6336
|
stack: error.stack
|
6108
6337
|
});
|
6109
6338
|
|
6110
6339
|
// Upload logs on join Failure
|
6111
|
-
_triggerProxy.default.trigger(
|
6340
|
+
_triggerProxy.default.trigger(_this36, {
|
6112
6341
|
file: 'meeting/index',
|
6113
6342
|
function: 'join'
|
6114
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
6343
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this36);
|
6115
6344
|
joinFailed(error);
|
6116
|
-
|
6345
|
+
_this36.deferJoin = undefined;
|
6117
6346
|
return _promise.default.reject(error);
|
6118
6347
|
}).then(function (join) {
|
6119
6348
|
// @ts-ignore - config coming from registerPlugin
|
6120
|
-
if (
|
6349
|
+
if (_this36.config.enableAutomaticLLM) {
|
6121
6350
|
// @ts-ignore
|
6122
|
-
|
6123
|
-
|
6351
|
+
_this36.webex.internal.llm.on('online', _this36.handleLLMOnline);
|
6352
|
+
_this36.updateLLMConnection().catch(function (error) {
|
6124
6353
|
_loggerProxy.default.logger.error('Meeting:index#join --> Transcription Socket Connection Failed', error);
|
6125
6354
|
_metrics.default.sendBehavioralMetric(_constants2.default.LLM_CONNECTION_AFTER_JOIN_FAILURE, {
|
6126
|
-
correlation_id:
|
6355
|
+
correlation_id: _this36.correlationId,
|
6127
6356
|
reason: error === null || error === void 0 ? void 0 : error.message,
|
6128
6357
|
stack: error.stack
|
6129
6358
|
});
|
@@ -6155,7 +6384,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6155
6384
|
key: "updateLLMConnection",
|
6156
6385
|
value: (function () {
|
6157
6386
|
var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20() {
|
6158
|
-
var
|
6387
|
+
var _this37 = this;
|
6159
6388
|
var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, practiceSessionDatachannelUrl, isJoined, dataChannelUrl;
|
6160
6389
|
return _regenerator.default.wrap(function _callee20$(_context20) {
|
6161
6390
|
while (1) switch (_context20.prev = _context20.next) {
|
@@ -6179,7 +6408,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6179
6408
|
return _context20.abrupt("return", undefined);
|
6180
6409
|
case 6:
|
6181
6410
|
_context20.next = 8;
|
6182
|
-
return this.webex.internal.llm.disconnectLLM(
|
6411
|
+
return this.webex.internal.llm.disconnectLLM(isJoined ? {
|
6412
|
+
code: 3050,
|
6413
|
+
reason: 'done (permanent)'
|
6414
|
+
} : undefined);
|
6183
6415
|
case 8:
|
6184
6416
|
// @ts-ignore - Fix type
|
6185
6417
|
this.webex.internal.llm.off('event:relay.event', this.processRelayEvent);
|
@@ -6192,9 +6424,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6192
6424
|
case 11:
|
6193
6425
|
return _context20.abrupt("return", this.webex.internal.llm.registerAndConnect(url, dataChannelUrl).then(function (registerAndConnectResult) {
|
6194
6426
|
// @ts-ignore - Fix type
|
6195
|
-
|
6427
|
+
_this37.webex.internal.llm.off('event:relay.event', _this37.processRelayEvent);
|
6196
6428
|
// @ts-ignore - Fix type
|
6197
|
-
|
6429
|
+
_this37.webex.internal.llm.on('event:relay.event', _this37.processRelayEvent);
|
6198
6430
|
_loggerProxy.default.logger.info('Meeting:index#updateLLMConnection --> enabled to receive relay events!');
|
6199
6431
|
return _promise.default.resolve(registerAndConnectResult);
|
6200
6432
|
}));
|
@@ -6248,7 +6480,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6248
6480
|
}, {
|
6249
6481
|
key: "dialInPstn",
|
6250
6482
|
value: function dialInPstn() {
|
6251
|
-
var
|
6483
|
+
var _this38 = this;
|
6252
6484
|
if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
|
6253
6485
|
|
6254
6486
|
var correlationId = this.correlationId,
|
@@ -6264,10 +6496,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6264
6496
|
}).catch(function (error) {
|
6265
6497
|
var _error$error2;
|
6266
6498
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
|
6267
|
-
correlation_id:
|
6268
|
-
dial_in_url:
|
6499
|
+
correlation_id: _this38.correlationId,
|
6500
|
+
dial_in_url: _this38.dialInUrl,
|
6269
6501
|
locus_id: locusUrl.split('/').pop(),
|
6270
|
-
client_url:
|
6502
|
+
client_url: _this38.deviceUrl,
|
6271
6503
|
reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
|
6272
6504
|
stack: error.stack
|
6273
6505
|
});
|
@@ -6285,7 +6517,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6285
6517
|
}, {
|
6286
6518
|
key: "dialOutPstn",
|
6287
6519
|
value: function dialOutPstn(phoneNumber) {
|
6288
|
-
var
|
6520
|
+
var _this39 = this;
|
6289
6521
|
if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
|
6290
6522
|
|
6291
6523
|
var correlationId = this.correlationId,
|
@@ -6302,10 +6534,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6302
6534
|
}).catch(function (error) {
|
6303
6535
|
var _error$error3;
|
6304
6536
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
|
6305
|
-
correlation_id:
|
6306
|
-
dial_out_url:
|
6537
|
+
correlation_id: _this39.correlationId,
|
6538
|
+
dial_out_url: _this39.dialOutUrl,
|
6307
6539
|
locus_id: locusUrl.split('/').pop(),
|
6308
|
-
client_url:
|
6540
|
+
client_url: _this39.deviceUrl,
|
6309
6541
|
reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
|
6310
6542
|
stack: error.stack
|
6311
6543
|
});
|
@@ -6336,7 +6568,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6336
6568
|
}, {
|
6337
6569
|
key: "moveTo",
|
6338
6570
|
value: function moveTo(resourceId) {
|
6339
|
-
var
|
6571
|
+
var _this40 = this;
|
6340
6572
|
if (!resourceId) {
|
6341
6573
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
6342
6574
|
}
|
@@ -6380,12 +6612,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6380
6612
|
while (1) switch (_context21.prev = _context21.next) {
|
6381
6613
|
case 0:
|
6382
6614
|
_context21.prev = 0;
|
6383
|
-
if (!(
|
6615
|
+
if (!(_this40.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
|
6384
6616
|
_context21.next = 4;
|
6385
6617
|
break;
|
6386
6618
|
}
|
6387
6619
|
_context21.next = 4;
|
6388
|
-
return
|
6620
|
+
return _this40.releaseScreenShareFloor();
|
6389
6621
|
case 4:
|
6390
6622
|
mediaSettings = {
|
6391
6623
|
mediaDirection: {
|
@@ -6397,37 +6629,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6397
6629
|
receiveShare: true
|
6398
6630
|
}
|
6399
6631
|
};
|
6400
|
-
|
6401
|
-
|
6632
|
+
_this40.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
|
6633
|
+
_this40.mediaProperties.unsetRemoteMedia();
|
6402
6634
|
|
6403
6635
|
// when a move to is intiated by the client , Locus delets the existing media node from the server as soon the device answers the meeting
|
6404
6636
|
// once the device answers we close the old connection and create new media server connection with only share enabled
|
6405
|
-
if (!
|
6637
|
+
if (!_this40.statsAnalyzer) {
|
6406
6638
|
_context21.next = 10;
|
6407
6639
|
break;
|
6408
6640
|
}
|
6409
6641
|
_context21.next = 10;
|
6410
|
-
return
|
6642
|
+
return _this40.statsAnalyzer.stopAnalyzer();
|
6411
6643
|
case 10:
|
6412
6644
|
_context21.next = 12;
|
6413
|
-
return
|
6645
|
+
return _this40.closeRemoteStreams();
|
6414
6646
|
case 12:
|
6415
6647
|
_context21.next = 14;
|
6416
|
-
return
|
6648
|
+
return _this40.closePeerConnections();
|
6417
6649
|
case 14:
|
6418
|
-
|
6419
|
-
|
6420
|
-
|
6421
|
-
|
6650
|
+
_this40.cleanupLocalStreams();
|
6651
|
+
_this40.unsetRemoteStreams();
|
6652
|
+
_this40.unsetPeerConnections();
|
6653
|
+
_this40.reconnectionManager.cleanUp();
|
6422
6654
|
_context21.next = 20;
|
6423
|
-
return
|
6655
|
+
return _this40.addMedia({
|
6424
6656
|
audioEnabled: false,
|
6425
6657
|
videoEnabled: false,
|
6426
6658
|
shareVideoEnabled: true
|
6427
6659
|
});
|
6428
6660
|
case 20:
|
6429
6661
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
|
6430
|
-
|
6662
|
+
_this40.isMoveToInProgress = false;
|
6431
6663
|
_context21.next = 29;
|
6432
6664
|
break;
|
6433
6665
|
case 24:
|
@@ -6435,12 +6667,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6435
6667
|
_context21.t0 = _context21["catch"](0);
|
6436
6668
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context21.t0);
|
6437
6669
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
6438
|
-
correlation_id:
|
6439
|
-
locus_id:
|
6670
|
+
correlation_id: _this40.correlationId,
|
6671
|
+
locus_id: _this40.locusUrl.split('/').pop(),
|
6440
6672
|
reason: _context21.t0.message,
|
6441
6673
|
stack: _context21.t0.stack
|
6442
6674
|
});
|
6443
|
-
|
6675
|
+
_this40.isMoveToInProgress = false;
|
6444
6676
|
case 29:
|
6445
6677
|
case "end":
|
6446
6678
|
return _context21.stop();
|
@@ -6456,17 +6688,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6456
6688
|
resourceId: resourceId,
|
6457
6689
|
moveToResource: true
|
6458
6690
|
}).then(function () {
|
6459
|
-
|
6691
|
+
_this40.meetingFiniteStateMachine.join();
|
6460
6692
|
}).catch(function (error) {
|
6461
|
-
|
6693
|
+
_this40.meetingFiniteStateMachine.fail(error);
|
6462
6694
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
6463
|
-
correlation_id:
|
6464
|
-
locus_id:
|
6695
|
+
correlation_id: _this40.correlationId,
|
6696
|
+
locus_id: _this40.locusUrl.split('/').pop(),
|
6465
6697
|
reason: error.message,
|
6466
6698
|
stack: error.stack
|
6467
6699
|
});
|
6468
6700
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', error);
|
6469
|
-
|
6701
|
+
_this40.isMoveToInProgress = false;
|
6470
6702
|
return _promise.default.reject(error);
|
6471
6703
|
});
|
6472
6704
|
}
|
@@ -6481,7 +6713,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6481
6713
|
}, {
|
6482
6714
|
key: "moveFrom",
|
6483
6715
|
value: function moveFrom(resourceId) {
|
6484
|
-
var
|
6716
|
+
var _this41 = this;
|
6485
6717
|
// On moveFrom ask the developer to re capture it moveFrom then updateMedia
|
6486
6718
|
if (!resourceId) {
|
6487
6719
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
@@ -6496,19 +6728,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6496
6728
|
}
|
6497
6729
|
});
|
6498
6730
|
return _util2.default.joinMeetingOptions(this).then(function () {
|
6499
|
-
return _util2.default.leaveMeeting(
|
6731
|
+
return _util2.default.leaveMeeting(_this41, {
|
6500
6732
|
resourceId: resourceId,
|
6501
6733
|
correlationId: oldCorrelationId,
|
6502
6734
|
moveMeeting: true
|
6503
6735
|
}).then(function () {
|
6504
|
-
|
6736
|
+
_this41.resourceId = '';
|
6505
6737
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
|
6506
6738
|
});
|
6507
6739
|
}).catch(function (error) {
|
6508
|
-
|
6740
|
+
_this41.meetingFiniteStateMachine.fail(error);
|
6509
6741
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
|
6510
|
-
correlation_id:
|
6511
|
-
locus_id:
|
6742
|
+
correlation_id: _this41.correlationId,
|
6743
|
+
locus_id: _this41.locusUrl.split('/').pop(),
|
6512
6744
|
reason: error.message,
|
6513
6745
|
stack: error.stack
|
6514
6746
|
});
|
@@ -6557,7 +6789,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6557
6789
|
turnServerInfo: turnServerInfo,
|
6558
6790
|
bundlePolicy: bundlePolicy,
|
6559
6791
|
// @ts-ignore - config coming from registerPlugin
|
6560
|
-
iceCandidatesTimeout: this.config.iceCandidatesGatheringTimeout
|
6792
|
+
iceCandidatesTimeout: this.config.iceCandidatesGatheringTimeout,
|
6793
|
+
// @ts-ignore - config coming from registerPlugin
|
6794
|
+
disableAudioMainDtx: this.config.experimental.disableAudioMainDtx,
|
6795
|
+
// @ts-ignore - config coming from registerPlugin
|
6796
|
+
enableAudioTwcc: this.config.enableAudioTwccForMultistream,
|
6797
|
+
stopIceGatheringAfterFirstRelayCandidate:
|
6798
|
+
// @ts-ignore - config coming from registerPlugin
|
6799
|
+
this.config.stopIceGatheringAfterFirstRelayCandidate
|
6561
6800
|
});
|
6562
6801
|
this.mediaProperties.setMediaPeerConnection(mc);
|
6563
6802
|
this.setupMediaConnectionListeners();
|
@@ -6624,9 +6863,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6624
6863
|
}, {
|
6625
6864
|
key: "forwardEvent",
|
6626
6865
|
value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
|
6627
|
-
var
|
6866
|
+
var _this42 = this;
|
6628
6867
|
eventEmitter.on(eventTypeToForward, function (data) {
|
6629
|
-
return _triggerProxy.default.trigger(
|
6868
|
+
return _triggerProxy.default.trigger(_this42, {
|
6630
6869
|
file: 'meetings',
|
6631
6870
|
function: 'addMedia'
|
6632
6871
|
}, meetingEventType, data);
|
@@ -6696,7 +6935,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6696
6935
|
key: "waitForMediaConnectionConnected",
|
6697
6936
|
value: (function () {
|
6698
6937
|
var _waitForMediaConnectionConnected = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24() {
|
6699
|
-
var iceConnected, _this$mediaProperties8, _this$mediaProperties9, _this$mediaProperties10, _this$mediaProperties11, _this$mediaProperties12, _this$mediaProperties13, _this$mediaProperties14;
|
6938
|
+
var iceConnected, _this$mediaProperties8, _this$mediaProperties9, _this$mediaProperties10, _this$mediaProperties11, _this$mediaProperties12, _this$mediaProperties13, _this$mediaProperties14, timedOutError;
|
6700
6939
|
return _regenerator.default.wrap(function _callee24$(_context24) {
|
6701
6940
|
while (1) switch (_context24.prev = _context24.next) {
|
6702
6941
|
case 0:
|
@@ -6704,7 +6943,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6704
6943
|
_context24.next = 3;
|
6705
6944
|
return this.mediaProperties.waitForMediaConnectionConnected();
|
6706
6945
|
case 3:
|
6707
|
-
_context24.next =
|
6946
|
+
_context24.next = 32;
|
6708
6947
|
break;
|
6709
6948
|
case 5:
|
6710
6949
|
_context24.prev = 5;
|
@@ -6746,7 +6985,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6746
6985
|
errors: _context24.t14
|
6747
6986
|
};
|
6748
6987
|
_context24.t16 = {
|
6749
|
-
meetingId: this.id
|
6988
|
+
meetingId: this.id,
|
6989
|
+
rawError: _context24.t0
|
6750
6990
|
};
|
6751
6991
|
_context24.t17 = {
|
6752
6992
|
name: 'client.ice.end',
|
@@ -6755,8 +6995,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6755
6995
|
};
|
6756
6996
|
_context24.t1.submitClientEvent.call(_context24.t1, _context24.t17);
|
6757
6997
|
case 29:
|
6758
|
-
|
6759
|
-
|
6998
|
+
timedOutError = new Error("Timed out waiting for media connection to be connected, correlationId=".concat(this.correlationId));
|
6999
|
+
timedOutError.cause = _context24.t0;
|
7000
|
+
throw timedOutError;
|
7001
|
+
case 32:
|
6760
7002
|
case "end":
|
6761
7003
|
return _context24.stop();
|
6762
7004
|
}
|
@@ -6787,6 +7029,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6787
7029
|
networkQualityMonitor: this.networkQualityMonitor,
|
6788
7030
|
isMultistream: this.isMultistream
|
6789
7031
|
});
|
7032
|
+
this.shareCAEventSentStatus = {
|
7033
|
+
transmitStart: false,
|
7034
|
+
transmitStop: false,
|
7035
|
+
receiveStart: false,
|
7036
|
+
receiveStop: false
|
7037
|
+
};
|
6790
7038
|
this.setupStatsAnalyzerEventHandlers();
|
6791
7039
|
this.networkQualityMonitor.on(_internalMediaCore.NetworkQualityEventNames.NETWORK_QUALITY, this.sendNetworkQualityEvent.bind(this));
|
6792
7040
|
}
|
@@ -6803,7 +7051,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6803
7051
|
key: "waitForRemoteSDPAnswer",
|
6804
7052
|
value: (function () {
|
6805
7053
|
var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25() {
|
6806
|
-
var
|
7054
|
+
var _this43 = this;
|
6807
7055
|
var LOG_HEADER, deferSDPAnswer;
|
6808
7056
|
return _regenerator.default.wrap(function _callee25$(_context25) {
|
6809
7057
|
while (1) switch (_context25.prev = _context25.next) {
|
@@ -6819,23 +7067,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6819
7067
|
deferSDPAnswer = this.deferSDPAnswer;
|
6820
7068
|
this.sdpResponseTimer = setTimeout(function () {
|
6821
7069
|
_loggerProxy.default.logger.warn("".concat(LOG_HEADER, " timeout! no REMOTE SDP ANSWER received within ").concat(_constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT / 1000, " seconds"));
|
7070
|
+
var error = new Error('Timed out waiting for REMOTE SDP ANSWER');
|
7071
|
+
|
6822
7072
|
// @ts-ignore
|
6823
|
-
|
7073
|
+
_this43.webex.internal.newMetrics.submitClientEvent({
|
6824
7074
|
name: 'client.media-engine.remote-sdp-received',
|
6825
7075
|
payload: {
|
6826
7076
|
canProceed: false,
|
6827
7077
|
errors: [
|
6828
7078
|
// @ts-ignore
|
6829
|
-
|
7079
|
+
_this43.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
|
6830
7080
|
clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
|
6831
7081
|
})]
|
6832
7082
|
},
|
6833
7083
|
options: {
|
6834
|
-
meetingId:
|
6835
|
-
rawError:
|
7084
|
+
meetingId: _this43.id,
|
7085
|
+
rawError: error
|
6836
7086
|
}
|
6837
7087
|
});
|
6838
|
-
deferSDPAnswer.reject(
|
7088
|
+
deferSDPAnswer.reject(error);
|
6839
7089
|
}, _constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT);
|
6840
7090
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " waiting for REMOTE SDP ANSWER..."));
|
6841
7091
|
return _context25.abrupt("return", deferSDPAnswer.promise);
|
@@ -6975,7 +7225,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6975
7225
|
break;
|
6976
7226
|
case 7:
|
6977
7227
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " error waiting for media to connect using UDP, TCP and TURN-TLS"), error);
|
6978
|
-
throw new _webexErrors.AddMediaFailed();
|
7228
|
+
throw new _webexErrors.AddMediaFailed(error);
|
6979
7229
|
case 9:
|
6980
7230
|
case "end":
|
6981
7231
|
return _context28.stop();
|
@@ -7338,10 +7588,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7338
7588
|
}, {
|
7339
7589
|
key: "addMedia",
|
7340
7590
|
value: function addMedia() {
|
7341
|
-
var
|
7591
|
+
var _this44 = this;
|
7342
7592
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
7343
7593
|
return this.addMediaInternal(function () {
|
7344
|
-
return
|
7594
|
+
return _this44.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
7345
7595
|
}, undefined, false, options);
|
7346
7596
|
}
|
7347
7597
|
|
@@ -7377,10 +7627,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7377
7627
|
_this$remoteMediaMana,
|
7378
7628
|
_yield$this$mediaProp,
|
7379
7629
|
connectionType,
|
7630
|
+
ipVersion,
|
7380
7631
|
selectedCandidatePairChanges,
|
7381
7632
|
numTransports,
|
7382
|
-
reachabilityStats,
|
7383
7633
|
iceCandidateErrors,
|
7634
|
+
reachabilityMetrics,
|
7384
7635
|
_this$mediaProperties15,
|
7385
7636
|
_this$mediaProperties16,
|
7386
7637
|
_this$mediaProperties17,
|
@@ -7402,7 +7653,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7402
7653
|
_this$mediaProperties33,
|
7403
7654
|
_this$mediaProperties34,
|
7404
7655
|
_this$mediaProperties35,
|
7405
|
-
|
7656
|
+
_reachabilityMetrics,
|
7406
7657
|
_yield$this$mediaProp2,
|
7407
7658
|
_selectedCandidatePairChanges,
|
7408
7659
|
_numTransports,
|
@@ -7523,28 +7774,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7523
7774
|
case 46:
|
7524
7775
|
_yield$this$mediaProp = _context35.sent;
|
7525
7776
|
connectionType = _yield$this$mediaProp.connectionType;
|
7777
|
+
ipVersion = _yield$this$mediaProp.ipVersion;
|
7526
7778
|
selectedCandidatePairChanges = _yield$this$mediaProp.selectedCandidatePairChanges;
|
7527
7779
|
numTransports = _yield$this$mediaProp.numTransports;
|
7528
|
-
_context35.next = 52;
|
7529
|
-
return this.webex.meetings.reachability.getReachabilityMetrics();
|
7530
|
-
case 52:
|
7531
|
-
reachabilityStats = _context35.sent;
|
7532
7780
|
iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
|
7781
|
+
_context35.next = 54;
|
7782
|
+
return this.getMediaReachabilityMetricFields();
|
7783
|
+
case 54:
|
7784
|
+
reachabilityMetrics = _context35.sent;
|
7533
7785
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, _objectSpread(_objectSpread(_objectSpread({
|
7534
7786
|
correlation_id: this.correlationId,
|
7535
7787
|
locus_id: this.locusUrl.split('/').pop(),
|
7536
7788
|
connectionType: connectionType,
|
7789
|
+
ipVersion: ipVersion,
|
7537
7790
|
selectedCandidatePairChanges: selectedCandidatePairChanges,
|
7538
7791
|
numTransports: numTransports,
|
7539
7792
|
isMultistream: this.isMultistream,
|
7540
7793
|
retriedWithTurnServer: this.addMediaData.retriedWithTurnServer,
|
7541
7794
|
isJoinWithMediaRetry: this.joinWithMediaRetryInfo.isRetry
|
7542
|
-
},
|
7795
|
+
}, reachabilityMetrics), iceCandidateErrors), {}, {
|
7543
7796
|
iceCandidatesCount: this.iceCandidatesCount
|
7544
7797
|
}));
|
7545
7798
|
// @ts-ignore
|
7546
7799
|
this.webex.internal.newMetrics.submitClientEvent({
|
7547
7800
|
name: 'client.media-engine.ready',
|
7801
|
+
payload: {
|
7802
|
+
ipVersion: ipVersion
|
7803
|
+
},
|
7548
7804
|
options: {
|
7549
7805
|
meetingId: this.id
|
7550
7806
|
}
|
@@ -7554,21 +7810,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7554
7810
|
// We can log ReceiveSlot SSRCs only after the SDP exchange, so doing it here:
|
7555
7811
|
(_this$remoteMediaMana = this.remoteMediaManager) === null || _this$remoteMediaMana === void 0 ? void 0 : _this$remoteMediaMana.logAllReceiveSlots();
|
7556
7812
|
this.startPeriodicLogUpload();
|
7557
|
-
_context35.next =
|
7813
|
+
_context35.next = 80;
|
7558
7814
|
break;
|
7559
|
-
case
|
7560
|
-
_context35.prev =
|
7815
|
+
case 62:
|
7816
|
+
_context35.prev = 62;
|
7561
7817
|
_context35.t1 = _context35["catch"](19);
|
7562
7818
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context35.t1);
|
7563
7819
|
|
7564
7820
|
// @ts-ignore
|
7565
|
-
_context35.next =
|
7566
|
-
return this.
|
7567
|
-
case
|
7568
|
-
|
7569
|
-
_context35.next =
|
7821
|
+
_context35.next = 67;
|
7822
|
+
return this.getMediaReachabilityMetricFields();
|
7823
|
+
case 67:
|
7824
|
+
_reachabilityMetrics = _context35.sent;
|
7825
|
+
_context35.next = 70;
|
7570
7826
|
return this.mediaProperties.getCurrentConnectionInfo();
|
7571
|
-
case
|
7827
|
+
case 70:
|
7572
7828
|
_yield$this$mediaProp2 = _context35.sent;
|
7573
7829
|
_selectedCandidatePairChanges = _yield$this$mediaProp2.selectedCandidatePairChanges;
|
7574
7830
|
_numTransports = _yield$this$mediaProp2.numTransports;
|
@@ -7589,12 +7845,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7589
7845
|
signalingState: ((_this$mediaProperties15 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties15 === void 0 ? void 0 : (_this$mediaProperties16 = _this$mediaProperties15.multistreamConnection) === null || _this$mediaProperties16 === void 0 ? void 0 : (_this$mediaProperties17 = _this$mediaProperties16.pc) === null || _this$mediaProperties17 === void 0 ? void 0 : (_this$mediaProperties18 = _this$mediaProperties17.pc) === null || _this$mediaProperties18 === void 0 ? void 0 : _this$mediaProperties18.signalingState) || ((_this$mediaProperties19 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties19 === void 0 ? void 0 : (_this$mediaProperties20 = _this$mediaProperties19.mediaConnection) === null || _this$mediaProperties20 === void 0 ? void 0 : (_this$mediaProperties21 = _this$mediaProperties20.pc) === null || _this$mediaProperties21 === void 0 ? void 0 : _this$mediaProperties21.signalingState) || 'unknown',
|
7590
7846
|
connectionState: ((_this$mediaProperties22 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties22 === void 0 ? void 0 : (_this$mediaProperties23 = _this$mediaProperties22.multistreamConnection) === null || _this$mediaProperties23 === void 0 ? void 0 : (_this$mediaProperties24 = _this$mediaProperties23.pc) === null || _this$mediaProperties24 === void 0 ? void 0 : (_this$mediaProperties25 = _this$mediaProperties24.pc) === null || _this$mediaProperties25 === void 0 ? void 0 : _this$mediaProperties25.connectionState) || ((_this$mediaProperties26 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties26 === void 0 ? void 0 : (_this$mediaProperties27 = _this$mediaProperties26.mediaConnection) === null || _this$mediaProperties27 === void 0 ? void 0 : (_this$mediaProperties28 = _this$mediaProperties27.pc) === null || _this$mediaProperties28 === void 0 ? void 0 : _this$mediaProperties28.connectionState) || 'unknown',
|
7591
7847
|
iceConnectionState: ((_this$mediaProperties29 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties29 === void 0 ? void 0 : (_this$mediaProperties30 = _this$mediaProperties29.multistreamConnection) === null || _this$mediaProperties30 === void 0 ? void 0 : (_this$mediaProperties31 = _this$mediaProperties30.pc) === null || _this$mediaProperties31 === void 0 ? void 0 : (_this$mediaProperties32 = _this$mediaProperties31.pc) === null || _this$mediaProperties32 === void 0 ? void 0 : _this$mediaProperties32.iceConnectionState) || ((_this$mediaProperties33 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties33 === void 0 ? void 0 : (_this$mediaProperties34 = _this$mediaProperties33.mediaConnection) === null || _this$mediaProperties34 === void 0 ? void 0 : (_this$mediaProperties35 = _this$mediaProperties34.pc) === null || _this$mediaProperties35 === void 0 ? void 0 : _this$mediaProperties35.iceConnectionState) || 'unknown'
|
7592
|
-
},
|
7848
|
+
}, _reachabilityMetrics), _iceCandidateErrors), {}, {
|
7593
7849
|
iceCandidatesCount: this.iceCandidatesCount
|
7594
7850
|
}));
|
7595
|
-
_context35.next =
|
7851
|
+
_context35.next = 77;
|
7596
7852
|
return this.cleanUpOnAddMediaFailure();
|
7597
|
-
case
|
7853
|
+
case 77:
|
7598
7854
|
// Upload logs on error while adding media
|
7599
7855
|
_triggerProxy.default.trigger(this, {
|
7600
7856
|
file: 'meeting/index',
|
@@ -7606,15 +7862,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7606
7862
|
});
|
7607
7863
|
}
|
7608
7864
|
throw _context35.t1;
|
7609
|
-
case
|
7610
|
-
_context35.prev =
|
7865
|
+
case 80:
|
7866
|
+
_context35.prev = 80;
|
7611
7867
|
this.addMediaData.icePhaseCallback = DEFAULT_ICE_PHASE_CALLBACK;
|
7612
|
-
return _context35.finish(
|
7613
|
-
case
|
7868
|
+
return _context35.finish(80);
|
7869
|
+
case 83:
|
7614
7870
|
case "end":
|
7615
7871
|
return _context35.stop();
|
7616
7872
|
}
|
7617
|
-
}, _callee35, this, [[19,
|
7873
|
+
}, _callee35, this, [[19, 62, 80, 83], [24, 29]]);
|
7618
7874
|
}));
|
7619
7875
|
function addMediaInternal(_x33, _x34, _x35) {
|
7620
7876
|
return _addMediaInternal.apply(this, arguments);
|
@@ -7646,7 +7902,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7646
7902
|
* @memberof Meeting
|
7647
7903
|
*/
|
7648
7904
|
function enqueueMediaUpdate(mediaUpdateType) {
|
7649
|
-
var
|
7905
|
+
var _this45 = this;
|
7650
7906
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
7651
7907
|
var canUpdateMediaNow = this.canUpdateMedia();
|
7652
7908
|
return new _promise.default(function (resolve, reject) {
|
@@ -7657,9 +7913,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7657
7913
|
options: options
|
7658
7914
|
};
|
7659
7915
|
_loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
|
7660
|
-
|
7916
|
+
_this45.queuedMediaUpdates.push(queueItem);
|
7661
7917
|
if (canUpdateMediaNow) {
|
7662
|
-
|
7918
|
+
_this45.processNextQueuedMediaUpdate();
|
7663
7919
|
}
|
7664
7920
|
});
|
7665
7921
|
}
|
@@ -7764,7 +8020,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7764
8020
|
}, {
|
7765
8021
|
key: "acknowledge",
|
7766
8022
|
value: function acknowledge(type) {
|
7767
|
-
var
|
8023
|
+
var _this46 = this;
|
7768
8024
|
if (!type) {
|
7769
8025
|
return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
|
7770
8026
|
}
|
@@ -7776,12 +8032,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7776
8032
|
}).then(function (response) {
|
7777
8033
|
return _promise.default.resolve(response);
|
7778
8034
|
}).then(function (response) {
|
7779
|
-
|
8035
|
+
_this46.meetingFiniteStateMachine.ring(type);
|
7780
8036
|
// @ts-ignore
|
7781
|
-
|
8037
|
+
_this46.webex.internal.newMetrics.submitClientEvent({
|
7782
8038
|
name: 'client.alert.displayed',
|
7783
8039
|
options: {
|
7784
|
-
meetingId:
|
8040
|
+
meetingId: _this46.id
|
7785
8041
|
}
|
7786
8042
|
});
|
7787
8043
|
return _promise.default.resolve({
|
@@ -7806,12 +8062,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7806
8062
|
}, {
|
7807
8063
|
key: "decline",
|
7808
8064
|
value: function decline(reason) {
|
7809
|
-
var
|
8065
|
+
var _this47 = this;
|
7810
8066
|
return _util2.default.declineMeeting(this, reason).then(function (decline) {
|
7811
|
-
|
8067
|
+
_this47.meetingFiniteStateMachine.decline();
|
7812
8068
|
return _promise.default.resolve(decline);
|
7813
8069
|
}).catch(function (error) {
|
7814
|
-
|
8070
|
+
_this47.meetingFiniteStateMachine.fail(error);
|
7815
8071
|
return _promise.default.reject(error);
|
7816
8072
|
});
|
7817
8073
|
}
|
@@ -7862,7 +8118,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7862
8118
|
}, {
|
7863
8119
|
key: "leave",
|
7864
8120
|
value: function leave() {
|
7865
|
-
var
|
8121
|
+
var _this48 = this;
|
7866
8122
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
7867
8123
|
var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
|
7868
8124
|
|
@@ -7874,7 +8130,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7874
8130
|
var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
7875
8131
|
return (
|
7876
8132
|
// @ts-ignore
|
7877
|
-
|
8133
|
+
_this48.webex.internal.newMetrics.submitClientEvent({
|
7878
8134
|
name: 'client.call.leave',
|
7879
8135
|
payload: _objectSpread({
|
7880
8136
|
trigger: 'user-interaction',
|
@@ -7882,7 +8138,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7882
8138
|
leaveReason: options.clientEventLeaveReason
|
7883
8139
|
}, payload),
|
7884
8140
|
options: {
|
7885
|
-
meetingId:
|
8141
|
+
meetingId: _this48.id
|
7886
8142
|
}
|
7887
8143
|
})
|
7888
8144
|
);
|
@@ -7891,24 +8147,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7891
8147
|
return _util2.default.leaveMeeting(this, options).then(function (leave) {
|
7892
8148
|
// CA team recommends submitting this *after* locus /leave
|
7893
8149
|
submitLeaveMetric();
|
7894
|
-
|
7895
|
-
|
8150
|
+
_this48.meetingFiniteStateMachine.leave();
|
8151
|
+
_this48.clearMeetingData();
|
7896
8152
|
|
7897
8153
|
// upload logs on leave irrespective of meeting delete
|
7898
|
-
_triggerProxy.default.trigger(
|
8154
|
+
_triggerProxy.default.trigger(_this48, {
|
7899
8155
|
file: 'meeting/index',
|
7900
8156
|
function: 'leave'
|
7901
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8157
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this48);
|
7902
8158
|
|
7903
8159
|
// TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
|
7904
|
-
if (
|
8160
|
+
if (_this48.wirelessShare || _this48.guest) {
|
7905
8161
|
// If screen sharing clean the meeting object
|
7906
|
-
_triggerProxy.default.trigger(
|
8162
|
+
_triggerProxy.default.trigger(_this48, {
|
7907
8163
|
file: 'meeting/index',
|
7908
8164
|
function: 'leave'
|
7909
8165
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
7910
8166
|
reason: options.reason,
|
7911
|
-
meetingId:
|
8167
|
+
meetingId: _this48.id
|
7912
8168
|
});
|
7913
8169
|
}
|
7914
8170
|
_loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
|
@@ -7925,16 +8181,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7925
8181
|
shownToUser: false
|
7926
8182
|
}]
|
7927
8183
|
});
|
7928
|
-
|
8184
|
+
_this48.meetingFiniteStateMachine.fail(error);
|
7929
8185
|
_loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
|
7930
8186
|
// upload logs on leave irrespective of meeting delete
|
7931
|
-
_triggerProxy.default.trigger(
|
8187
|
+
_triggerProxy.default.trigger(_this48, {
|
7932
8188
|
file: 'meeting/index',
|
7933
8189
|
function: 'leave'
|
7934
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8190
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this48);
|
7935
8191
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
|
7936
|
-
correlation_id:
|
7937
|
-
locus_id:
|
8192
|
+
correlation_id: _this48.correlationId,
|
8193
|
+
locus_id: _this48.locusUrl.split('/').pop(),
|
7938
8194
|
reason: error.message,
|
7939
8195
|
stack: error.stack,
|
7940
8196
|
code: error.code
|
@@ -7954,7 +8210,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7954
8210
|
}, {
|
7955
8211
|
key: "startWhiteboardShare",
|
7956
8212
|
value: function startWhiteboardShare(channelUrl, resourceToken) {
|
7957
|
-
var
|
8213
|
+
var _this49 = this;
|
7958
8214
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
7959
8215
|
return element.name === 'whiteboard';
|
7960
8216
|
});
|
@@ -7983,13 +8239,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7983
8239
|
body.resourceToken = resourceToken;
|
7984
8240
|
}
|
7985
8241
|
return this.meetingRequest.changeMeetingFloor(body).then(function () {
|
7986
|
-
|
8242
|
+
_this49.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
7987
8243
|
return _promise.default.resolve();
|
7988
8244
|
}).catch(function (error) {
|
7989
8245
|
_loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
|
7990
8246
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
|
7991
|
-
correlation_id:
|
7992
|
-
locus_id:
|
8247
|
+
correlation_id: _this49.correlationId,
|
8248
|
+
locus_id: _this49.locusUrl.split('/').pop(),
|
7993
8249
|
reason: error.message,
|
7994
8250
|
stack: error.stack,
|
7995
8251
|
board: {
|
@@ -8012,7 +8268,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8012
8268
|
}, {
|
8013
8269
|
key: "stopWhiteboardShare",
|
8014
8270
|
value: function stopWhiteboardShare(channelUrl) {
|
8015
|
-
var
|
8271
|
+
var _this50 = this;
|
8016
8272
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
8017
8273
|
return element.name === 'whiteboard';
|
8018
8274
|
});
|
@@ -8035,8 +8291,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8035
8291
|
}).catch(function (error) {
|
8036
8292
|
_loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
|
8037
8293
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
|
8038
|
-
correlation_id:
|
8039
|
-
locus_id:
|
8294
|
+
correlation_id: _this50.correlationId,
|
8295
|
+
locus_id: _this50.locusUrl.split('/').pop(),
|
8040
8296
|
reason: error.message,
|
8041
8297
|
stack: error.stack,
|
8042
8298
|
board: {
|
@@ -8058,7 +8314,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8058
8314
|
}, {
|
8059
8315
|
key: "requestScreenShareFloor",
|
8060
8316
|
value: function requestScreenShareFloor() {
|
8061
|
-
var
|
8317
|
+
var _this51 = this;
|
8062
8318
|
if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
|
8063
8319
|
_loggerProxy.default.logger.log("Meeting:index#requestScreenShareFloor --> NOT requesting floor, because we don't have the share stream anymore (shareStream=".concat(this.mediaProperties.shareVideoStream ? 'yes' : 'no', ", sendShare=").concat(this.mediaProperties.mediaDirection.sendShare, ")"));
|
8064
8320
|
this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
@@ -8089,34 +8345,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8089
8345
|
resourceUrl: this.resourceUrl,
|
8090
8346
|
shareInstanceId: this.localShareInstanceId
|
8091
8347
|
}).then(function () {
|
8092
|
-
|
8348
|
+
_this51.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
|
8093
8349
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
|
8094
|
-
correlation_id:
|
8095
|
-
locus_id:
|
8350
|
+
correlation_id: _this51.correlationId,
|
8351
|
+
locus_id: _this51.locusUrl.split('/').pop()
|
8096
8352
|
});
|
8097
8353
|
return _promise.default.resolve();
|
8098
8354
|
}).catch(function (error) {
|
8099
8355
|
_loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
|
8100
8356
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
|
8101
|
-
correlation_id:
|
8102
|
-
locus_id:
|
8357
|
+
correlation_id: _this51.correlationId,
|
8358
|
+
locus_id: _this51.locusUrl.split('/').pop(),
|
8103
8359
|
reason: error.message,
|
8104
8360
|
stack: error.stack
|
8105
8361
|
});
|
8106
8362
|
|
8107
8363
|
// @ts-ignore
|
8108
|
-
|
8364
|
+
_this51.webex.internal.newMetrics.submitClientEvent({
|
8109
8365
|
name: 'client.share.floor-granted.local',
|
8110
8366
|
payload: {
|
8111
8367
|
mediaType: 'share',
|
8112
8368
|
errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
|
8113
|
-
shareInstanceId:
|
8369
|
+
shareInstanceId: _this51.localShareInstanceId
|
8114
8370
|
},
|
8115
8371
|
options: {
|
8116
|
-
meetingId:
|
8372
|
+
meetingId: _this51.id
|
8117
8373
|
}
|
8118
8374
|
});
|
8119
|
-
|
8375
|
+
_this51.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
8120
8376
|
return _promise.default.reject(error);
|
8121
8377
|
});
|
8122
8378
|
}
|
@@ -8139,10 +8395,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8139
8395
|
}, {
|
8140
8396
|
key: "requestScreenShareFloorIfPending",
|
8141
8397
|
value: function requestScreenShareFloorIfPending() {
|
8142
|
-
var
|
8398
|
+
var _this52 = this;
|
8143
8399
|
if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
|
8144
8400
|
this.requestScreenShareFloor().then(function () {
|
8145
|
-
|
8401
|
+
_this52.floorGrantPending = false;
|
8146
8402
|
});
|
8147
8403
|
}
|
8148
8404
|
}
|
@@ -8156,7 +8412,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8156
8412
|
}, {
|
8157
8413
|
key: "releaseScreenShareFloor",
|
8158
8414
|
value: function releaseScreenShareFloor() {
|
8159
|
-
var
|
8415
|
+
var _this53 = this;
|
8160
8416
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
8161
8417
|
return element.name === _constants.CONTENT;
|
8162
8418
|
});
|
@@ -8191,8 +8447,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8191
8447
|
}).catch(function (error) {
|
8192
8448
|
_loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
|
8193
8449
|
_metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
|
8194
|
-
correlation_id:
|
8195
|
-
locus_id:
|
8450
|
+
correlation_id: _this53.correlationId,
|
8451
|
+
locus_id: _this53.locusUrl.split('/').pop(),
|
8196
8452
|
reason: error.message,
|
8197
8453
|
stack: error.stack
|
8198
8454
|
});
|
@@ -8372,7 +8628,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8372
8628
|
}, {
|
8373
8629
|
key: "changeVideoLayout",
|
8374
8630
|
value: function changeVideoLayout(layoutType) {
|
8375
|
-
var
|
8631
|
+
var _this54 = this;
|
8376
8632
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
8377
8633
|
var main = renderInfo.main,
|
8378
8634
|
content = renderInfo.content;
|
@@ -8426,7 +8682,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8426
8682
|
}
|
8427
8683
|
this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
|
8428
8684
|
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
|
8429
|
-
_triggerProxy.default.trigger(
|
8685
|
+
_triggerProxy.default.trigger(_this54, {
|
8430
8686
|
file: 'meeting/index',
|
8431
8687
|
function: 'changeVideoLayout'
|
8432
8688
|
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
|
@@ -8542,7 +8798,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8542
8798
|
}, {
|
8543
8799
|
key: "endMeetingForAll",
|
8544
8800
|
value: function endMeetingForAll() {
|
8545
|
-
var
|
8801
|
+
var _this55 = this;
|
8546
8802
|
// @ts-ignore
|
8547
8803
|
this.webex.internal.newMetrics.submitClientEvent({
|
8548
8804
|
name: 'client.call.leave',
|
@@ -8560,25 +8816,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8560
8816
|
locus_id: this.locusId
|
8561
8817
|
});
|
8562
8818
|
return _util2.default.endMeetingForAll(this).then(function (end) {
|
8563
|
-
|
8564
|
-
|
8819
|
+
_this55.meetingFiniteStateMachine.end();
|
8820
|
+
_this55.clearMeetingData();
|
8565
8821
|
// upload logs on leave irrespective of meeting delete
|
8566
|
-
_triggerProxy.default.trigger(
|
8822
|
+
_triggerProxy.default.trigger(_this55, {
|
8567
8823
|
file: 'meeting/index',
|
8568
8824
|
function: 'endMeetingForAll'
|
8569
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8825
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this55);
|
8570
8826
|
return end;
|
8571
8827
|
}).catch(function (error) {
|
8572
|
-
|
8828
|
+
_this55.meetingFiniteStateMachine.fail(error);
|
8573
8829
|
_loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
|
8574
8830
|
// upload logs on leave irrespective of meeting delete
|
8575
|
-
_triggerProxy.default.trigger(
|
8831
|
+
_triggerProxy.default.trigger(_this55, {
|
8576
8832
|
file: 'meeting/index',
|
8577
8833
|
function: 'endMeetingForAll'
|
8578
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8834
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this55);
|
8579
8835
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
|
8580
|
-
correlation_id:
|
8581
|
-
locus_id:
|
8836
|
+
correlation_id: _this55.correlationId,
|
8837
|
+
locus_id: _this55.locusUrl.split('/').pop(),
|
8582
8838
|
reason: error.message,
|
8583
8839
|
stack: error.stack,
|
8584
8840
|
code: error.code
|
@@ -8643,6 +8899,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8643
8899
|
});
|
8644
8900
|
}
|
8645
8901
|
|
8902
|
+
/**
|
8903
|
+
* Method to set post meeting data consent.
|
8904
|
+
*
|
8905
|
+
* @param {boolean} accept - whether consent accepted or declined
|
8906
|
+
* @returns {Promise}
|
8907
|
+
* @public
|
8908
|
+
* @memberof Meeting
|
8909
|
+
*/
|
8910
|
+
}, {
|
8911
|
+
key: "setPostMeetingDataConsent",
|
8912
|
+
value: function setPostMeetingDataConsent(accept) {
|
8913
|
+
return this.meetingRequest.setPostMeetingDataConsent({
|
8914
|
+
postMeetingDataConsent: accept,
|
8915
|
+
locusUrl: this.locusUrl,
|
8916
|
+
deviceUrl: this.deviceUrl,
|
8917
|
+
selfId: this.members.selfId
|
8918
|
+
});
|
8919
|
+
}
|
8920
|
+
|
8646
8921
|
/**
|
8647
8922
|
* Throws if we don't have a media connection created
|
8648
8923
|
*
|
@@ -8720,7 +8995,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8720
8995
|
_this$mediaProperties43,
|
8721
8996
|
_this$mediaProperties44,
|
8722
8997
|
_this$mediaProperties45,
|
8723
|
-
|
8998
|
+
_this56 = this;
|
8724
8999
|
var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
|
8725
9000
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
|
8726
9001
|
if (!this.canUpdateMedia()) {
|
@@ -8745,8 +9020,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8745
9020
|
}).catch(function (error) {
|
8746
9021
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
|
8747
9022
|
_metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
|
8748
|
-
correlation_id:
|
8749
|
-
locus_id:
|
9023
|
+
correlation_id: _this56.correlationId,
|
9024
|
+
locus_id: _this56.locusUrl.split('/').pop(),
|
8750
9025
|
reason: error.message,
|
8751
9026
|
stack: error.stack
|
8752
9027
|
});
|
@@ -8968,10 +9243,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8968
9243
|
return this.updateTranscodedMediaConnection();
|
8969
9244
|
case 31:
|
8970
9245
|
if (!floorRequestNeeded) {
|
8971
|
-
_context40.next =
|
9246
|
+
_context40.next = 39;
|
8972
9247
|
break;
|
8973
9248
|
}
|
8974
9249
|
this.localShareInstanceId = _uuid.default.v4();
|
9250
|
+
this.shareCAEventSentStatus.transmitStart = false;
|
9251
|
+
this.shareCAEventSentStatus.transmitStop = false;
|
8975
9252
|
|
8976
9253
|
// @ts-ignore
|
8977
9254
|
this.webex.internal.newMetrics.submitClientEvent({
|
@@ -8992,9 +9269,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8992
9269
|
// we're sending the http request to Locus to request the screen share floor
|
8993
9270
|
// only after the SDP update, because that's how it's always been done for transcoded meetings
|
8994
9271
|
// and also if sharing from the start, we need confluence to have been created
|
8995
|
-
_context40.next =
|
9272
|
+
_context40.next = 39;
|
8996
9273
|
return this.enqueueScreenShareFloorRequest();
|
8997
|
-
case
|
9274
|
+
case 39:
|
8998
9275
|
case "end":
|
8999
9276
|
return _context40.stop();
|
9000
9277
|
}
|
@@ -9132,6 +9409,56 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
9132
9409
|
}
|
9133
9410
|
return _promise.default.resolve();
|
9134
9411
|
}
|
9412
|
+
|
9413
|
+
/**
|
9414
|
+
* Gets the media reachability metrics
|
9415
|
+
*
|
9416
|
+
* @returns {Promise<MediaReachabilityMetrics>}
|
9417
|
+
*/
|
9418
|
+
}, {
|
9419
|
+
key: "getMediaReachabilityMetricFields",
|
9420
|
+
value: (function () {
|
9421
|
+
var _getMediaReachabilityMetricFields = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee42() {
|
9422
|
+
var reachabilityMetrics, successKeys, totalSuccessCases, isSubnetReachable, selectedCluster;
|
9423
|
+
return _regenerator.default.wrap(function _callee42$(_context42) {
|
9424
|
+
while (1) switch (_context42.prev = _context42.next) {
|
9425
|
+
case 0:
|
9426
|
+
_context42.next = 2;
|
9427
|
+
return this.webex.meetings.reachability.getReachabilityMetrics();
|
9428
|
+
case 2:
|
9429
|
+
reachabilityMetrics = _context42.sent;
|
9430
|
+
successKeys = ['reachability_public_udp_success', 'reachability_public_tcp_success', 'reachability_public_xtls_success', 'reachability_vmn_udp_success', 'reachability_vmn_tcp_success', 'reachability_vmn_xtls_success'];
|
9431
|
+
totalSuccessCases = successKeys.reduce(function (total, key) {
|
9432
|
+
var value = reachabilityMetrics[key];
|
9433
|
+
if (typeof value === 'number') {
|
9434
|
+
return total + value;
|
9435
|
+
}
|
9436
|
+
return total;
|
9437
|
+
}, 0);
|
9438
|
+
isSubnetReachable = null;
|
9439
|
+
if (totalSuccessCases > 0) {
|
9440
|
+
// @ts-ignore
|
9441
|
+
isSubnetReachable = this.webex.meetings.reachability.isSubnetReachable(this.mediaServerIp);
|
9442
|
+
}
|
9443
|
+
selectedCluster = null;
|
9444
|
+
if (this.mediaConnections && this.mediaConnections.length > 0) {
|
9445
|
+
selectedCluster = this.mediaConnections[0].mediaAgentCluster;
|
9446
|
+
}
|
9447
|
+
return _context42.abrupt("return", _objectSpread(_objectSpread({}, reachabilityMetrics), {}, {
|
9448
|
+
isSubnetReachable: isSubnetReachable,
|
9449
|
+
selectedCluster: selectedCluster
|
9450
|
+
}));
|
9451
|
+
case 10:
|
9452
|
+
case "end":
|
9453
|
+
return _context42.stop();
|
9454
|
+
}
|
9455
|
+
}, _callee42, this);
|
9456
|
+
}));
|
9457
|
+
function getMediaReachabilityMetricFields() {
|
9458
|
+
return _getMediaReachabilityMetricFields.apply(this, arguments);
|
9459
|
+
}
|
9460
|
+
return getMediaReachabilityMetricFields;
|
9461
|
+
}())
|
9135
9462
|
}]);
|
9136
9463
|
return Meeting;
|
9137
9464
|
}(_webexCore.StatelessWebexPlugin);
|