@webex/plugin-meetings 3.8.0 → 3.8.1-next.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -13
- 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 +28 -123
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +3 -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 +78 -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 +37 -11
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +92 -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 +21 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +678 -344
- 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 +107 -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 +20 -85
- package/dist/types/controls-options-manager/enums.d.ts +4 -1
- package/dist/types/controls-options-manager/types.d.ts +10 -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 +20 -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 +30 -90
- package/src/controls-options-manager/enums.ts +3 -0
- package/src/controls-options-manager/types.ts +16 -1
- package/src/controls-options-manager/util.ts +93 -0
- package/src/interpretation/index.ts +3 -3
- package/src/locus-info/controlsUtils.ts +59 -14
- package/src/locus-info/index.ts +97 -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 +40 -0
- package/src/meeting/index.ts +470 -105
- 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 +62 -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 +178 -0
- package/test/unit/spec/interpretation/index.ts +39 -1
- package/test/unit/spec/locus-info/controlsUtils.js +155 -9
- package/test/unit/spec/locus-info/index.js +209 -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 +23 -4
- package/test/unit/spec/meeting/index.js +804 -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 +97 -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,25 @@ 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
|
+
var _this14$transcription;
|
3409
|
+
if ((_this14$transcription = _this14.transcription) !== null && _this14$transcription !== void 0 && _this14$transcription.languageOptions) {
|
3410
|
+
_this14.transcription.languageOptions.currentSpokenLanguage = spokenLanguage;
|
3411
|
+
}
|
3412
|
+
// @ts-ignore
|
3413
|
+
_this14.webex.internal.voicea.onSpokenLanguageUpdate(spokenLanguage);
|
3414
|
+
_triggerProxy.default.trigger(_this14, {
|
3415
|
+
file: 'meeting/index',
|
3416
|
+
function: 'setupLocusControlsListener'
|
3417
|
+
}, _constants.EVENT_TRIGGERS.MEETING_TRANSCRIPTION_SPOKEN_LANGUAGE_UPDATED, {
|
3418
|
+
spokenLanguage: spokenLanguage
|
3419
|
+
});
|
3420
|
+
}
|
3421
|
+
});
|
3422
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_MANUAL_CAPTION_UPDATED, function (_ref13) {
|
3423
|
+
var enable = _ref13.enable;
|
3262
3424
|
_triggerProxy.default.trigger(_this14, {
|
3263
3425
|
file: 'meeting/index',
|
3264
3426
|
function: 'setupLocusControlsListener'
|
@@ -3266,24 +3428,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3266
3428
|
enable: enable
|
3267
3429
|
});
|
3268
3430
|
});
|
3269
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_BREAKOUT_UPDATED, function (
|
3270
|
-
var breakout =
|
3431
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_BREAKOUT_UPDATED, function (_ref14) {
|
3432
|
+
var breakout = _ref14.breakout;
|
3271
3433
|
_this14.breakouts.updateBreakout(breakout);
|
3272
3434
|
_triggerProxy.default.trigger(_this14, {
|
3273
3435
|
file: 'meeting/index',
|
3274
3436
|
function: 'setupLocusControlsListener'
|
3275
3437
|
}, _constants.EVENT_TRIGGERS.MEETING_BREAKOUTS_UPDATE);
|
3276
3438
|
});
|
3277
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_INTERPRETATION_UPDATED, function (
|
3278
|
-
var interpretation =
|
3439
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_INTERPRETATION_UPDATED, function (_ref15) {
|
3440
|
+
var interpretation = _ref15.interpretation;
|
3279
3441
|
_this14.simultaneousInterpretation.updateInterpretation(interpretation);
|
3280
3442
|
_triggerProxy.default.trigger(_this14, {
|
3281
3443
|
file: 'meeting/index',
|
3282
3444
|
function: 'setupLocusControlsListener'
|
3283
3445
|
}, _constants.EVENT_TRIGGERS.MEETING_INTERPRETATION_UPDATE);
|
3284
3446
|
});
|
3285
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED, function (
|
3286
|
-
var entryExitTone =
|
3447
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED, function (_ref16) {
|
3448
|
+
var entryExitTone = _ref16.entryExitTone;
|
3287
3449
|
_triggerProxy.default.trigger(_this14, {
|
3288
3450
|
file: 'meeting/index',
|
3289
3451
|
function: 'setupLocusControlsListener'
|
@@ -3291,8 +3453,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3291
3453
|
entryExitTone: entryExitTone
|
3292
3454
|
});
|
3293
3455
|
});
|
3294
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MUTE_ON_ENTRY_CHANGED, function (
|
3295
|
-
var state =
|
3456
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MUTE_ON_ENTRY_CHANGED, function (_ref17) {
|
3457
|
+
var state = _ref17.state;
|
3296
3458
|
_triggerProxy.default.trigger(_this14, {
|
3297
3459
|
file: 'meeting/index',
|
3298
3460
|
function: 'setupLocusControlsListener'
|
@@ -3300,8 +3462,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3300
3462
|
state: state
|
3301
3463
|
});
|
3302
3464
|
});
|
3303
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_SHARE_CONTROL_CHANGED, function (
|
3304
|
-
var state =
|
3465
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_SHARE_CONTROL_CHANGED, function (_ref18) {
|
3466
|
+
var state = _ref18.state;
|
3305
3467
|
_triggerProxy.default.trigger(_this14, {
|
3306
3468
|
file: 'meeting/index',
|
3307
3469
|
function: 'setupLocusControlsListener'
|
@@ -3309,8 +3471,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3309
3471
|
state: state
|
3310
3472
|
});
|
3311
3473
|
});
|
3312
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_DISALLOW_UNMUTE_CHANGED, function (
|
3313
|
-
var state =
|
3474
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_DISALLOW_UNMUTE_CHANGED, function (_ref19) {
|
3475
|
+
var state = _ref19.state;
|
3314
3476
|
_triggerProxy.default.trigger(_this14, {
|
3315
3477
|
file: 'meeting/index',
|
3316
3478
|
function: 'setupLocusControlsListener'
|
@@ -3318,8 +3480,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3318
3480
|
state: state
|
3319
3481
|
});
|
3320
3482
|
});
|
3321
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_REACTIONS_CHANGED, function (
|
3322
|
-
var state =
|
3483
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_REACTIONS_CHANGED, function (_ref20) {
|
3484
|
+
var state = _ref20.state;
|
3323
3485
|
_triggerProxy.default.trigger(_this14, {
|
3324
3486
|
file: 'meeting/index',
|
3325
3487
|
function: 'setupLocusControlsListener'
|
@@ -3327,8 +3489,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3327
3489
|
state: state
|
3328
3490
|
});
|
3329
3491
|
});
|
3330
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED, function (
|
3331
|
-
var state =
|
3492
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED, function (_ref21) {
|
3493
|
+
var state = _ref21.state;
|
3332
3494
|
_triggerProxy.default.trigger(_this14, {
|
3333
3495
|
file: 'meeting/index',
|
3334
3496
|
function: 'setupLocusControlsListener'
|
@@ -3336,8 +3498,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3336
3498
|
state: state
|
3337
3499
|
});
|
3338
3500
|
});
|
3339
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_RAISE_HAND_CHANGED, function (
|
3340
|
-
var state =
|
3501
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_RAISE_HAND_CHANGED, function (_ref22) {
|
3502
|
+
var state = _ref22.state;
|
3341
3503
|
_triggerProxy.default.trigger(_this14, {
|
3342
3504
|
file: 'meeting/index',
|
3343
3505
|
function: 'setupLocusControlsListener'
|
@@ -3345,8 +3507,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3345
3507
|
state: state
|
3346
3508
|
});
|
3347
3509
|
});
|
3348
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_WEBCAST_CHANGED, function (
|
3349
|
-
var state =
|
3510
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_WEBCAST_CHANGED, function (_ref23) {
|
3511
|
+
var state = _ref23.state;
|
3350
3512
|
_triggerProxy.default.trigger(_this14, {
|
3351
3513
|
file: 'meeting/index',
|
3352
3514
|
function: 'setupLocusControlsListener'
|
@@ -3354,8 +3516,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3354
3516
|
state: state
|
3355
3517
|
});
|
3356
3518
|
});
|
3357
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_FULL_CHANGED, function (
|
3358
|
-
var state =
|
3519
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_FULL_CHANGED, function (_ref24) {
|
3520
|
+
var state = _ref24.state;
|
3359
3521
|
_triggerProxy.default.trigger(_this14, {
|
3360
3522
|
file: 'meeting/index',
|
3361
3523
|
function: 'setupLocusControlsListener'
|
@@ -3363,8 +3525,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3363
3525
|
state: state
|
3364
3526
|
});
|
3365
3527
|
});
|
3366
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_PRACTICE_SESSION_STATUS_UPDATED, function (
|
3367
|
-
var state =
|
3528
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_PRACTICE_SESSION_STATUS_UPDATED, function (_ref25) {
|
3529
|
+
var state = _ref25.state;
|
3368
3530
|
_this14.webinar.updatePracticeSessionStatus(state);
|
3369
3531
|
_triggerProxy.default.trigger(_this14, {
|
3370
3532
|
file: 'meeting/index',
|
@@ -3373,8 +3535,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3373
3535
|
state: state
|
3374
3536
|
});
|
3375
3537
|
});
|
3376
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_STAGE_VIEW_UPDATED, function (
|
3377
|
-
var state =
|
3538
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_STAGE_VIEW_UPDATED, function (_ref26) {
|
3539
|
+
var state = _ref26.state;
|
3378
3540
|
_triggerProxy.default.trigger(_this14, {
|
3379
3541
|
file: 'meeting/index',
|
3380
3542
|
function: 'setupLocusControlsListener'
|
@@ -3382,8 +3544,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3382
3544
|
state: state
|
3383
3545
|
});
|
3384
3546
|
});
|
3385
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIDEO_CHANGED, function (
|
3386
|
-
var state =
|
3547
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIDEO_CHANGED, function (_ref27) {
|
3548
|
+
var state = _ref27.state;
|
3387
3549
|
_triggerProxy.default.trigger(_this14, {
|
3388
3550
|
file: 'meeting/index',
|
3389
3551
|
function: 'setupLocusControlsListener'
|
@@ -3391,6 +3553,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3391
3553
|
state: state
|
3392
3554
|
});
|
3393
3555
|
});
|
3556
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_ANNOTATION_CHANGED, function (_ref28) {
|
3557
|
+
var state = _ref28.state;
|
3558
|
+
_triggerProxy.default.trigger(_this14, {
|
3559
|
+
file: 'meeting/index',
|
3560
|
+
function: 'setupLocusControlsListener'
|
3561
|
+
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_ANNOTATION_UPDATED, {
|
3562
|
+
state: state
|
3563
|
+
});
|
3564
|
+
});
|
3565
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_REMOTE_DESKTOP_CONTROL_CHANGED, function (_ref29) {
|
3566
|
+
var state = _ref29.state;
|
3567
|
+
_triggerProxy.default.trigger(_this14, {
|
3568
|
+
file: 'meeting/index',
|
3569
|
+
function: 'setupLocusControlsListener'
|
3570
|
+
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_REMOTE_DESKTOP_CONTROL_UPDATED, {
|
3571
|
+
state: state
|
3572
|
+
});
|
3573
|
+
});
|
3574
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_POLLING_QA_CHANGED, function (_ref30) {
|
3575
|
+
var state = _ref30.state;
|
3576
|
+
_triggerProxy.default.trigger(_this14, {
|
3577
|
+
file: 'meeting/index',
|
3578
|
+
function: 'setupLocusControlsListener'
|
3579
|
+
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_POLLING_QA_UPDATED, {
|
3580
|
+
state: state
|
3581
|
+
});
|
3582
|
+
});
|
3394
3583
|
}
|
3395
3584
|
|
3396
3585
|
/**
|
@@ -3430,7 +3619,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3430
3619
|
var _this15 = this;
|
3431
3620
|
// Will get triggered on local and remote share
|
3432
3621
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_MEDIA_SHARES, /*#__PURE__*/function () {
|
3433
|
-
var
|
3622
|
+
var _ref31 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(payload) {
|
3434
3623
|
var _payload$previous, _payload$previous2;
|
3435
3624
|
var _payload$current, contentShare, whiteboardShare, previousContentShare, previousWhiteboardShare, newShareStatus, _this15$locusInfo, _this15$locusInfo$inf, _this15$webinar, oldShareStatus, sendStartedSharingRemote, _this15$mediaProperti;
|
3436
3625
|
return _regenerator.default.wrap(function _callee8$(_context8) {
|
@@ -3516,6 +3705,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3516
3705
|
case 26:
|
3517
3706
|
sendStartedSharingRemote = function sendStartedSharingRemote() {
|
3518
3707
|
_this15.remoteShareInstanceId = contentShare.shareInstanceId;
|
3708
|
+
_this15.shareCAEventSentStatus.receiveStart = false;
|
3709
|
+
_this15.shareCAEventSentStatus.receiveStop = false;
|
3519
3710
|
_triggerProxy.default.trigger(_this15, {
|
3520
3711
|
file: 'meetings/index',
|
3521
3712
|
function: 'remoteShare'
|
@@ -3589,6 +3780,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3589
3780
|
// if we got here, then some remote participant has stolen
|
3590
3781
|
// the presentation from another remote participant
|
3591
3782
|
_this15.remoteShareInstanceId = contentShare.shareInstanceId;
|
3783
|
+
_this15.shareCAEventSentStatus.receiveStart = false;
|
3784
|
+
_this15.shareCAEventSentStatus.receiveStop = false;
|
3592
3785
|
_triggerProxy.default.trigger(_this15, {
|
3593
3786
|
file: 'meetings/index',
|
3594
3787
|
function: 'remoteShare'
|
@@ -3629,7 +3822,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3629
3822
|
}, _callee8, null, [[27,, 31, 34]]);
|
3630
3823
|
}));
|
3631
3824
|
return function (_x8) {
|
3632
|
-
return
|
3825
|
+
return _ref31.apply(this, arguments);
|
3633
3826
|
};
|
3634
3827
|
}());
|
3635
3828
|
}
|
@@ -3743,8 +3936,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3743
3936
|
});
|
3744
3937
|
}
|
3745
3938
|
});
|
3746
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, function (
|
3747
|
-
var isInitializing =
|
3939
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, function (_ref32) {
|
3940
|
+
var isInitializing = _ref32.isInitializing;
|
3748
3941
|
_this19.updateMeetingActions();
|
3749
3942
|
_this19.recordingController.setDisplayHints(_this19.userDisplayHints);
|
3750
3943
|
_this19.recordingController.setUserPolicy(_this19.selfUserPolicies);
|
@@ -3882,7 +4075,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3882
4075
|
_this21.updateLLMConnection();
|
3883
4076
|
});
|
3884
4077
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ADMITTED_GUEST, /*#__PURE__*/function () {
|
3885
|
-
var
|
4078
|
+
var _ref33 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(payload) {
|
3886
4079
|
var _this21$rtcMetrics;
|
3887
4080
|
return _regenerator.default.wrap(function _callee9$(_context9) {
|
3888
4081
|
while (1) switch (_context9.prev = _context9.next) {
|
@@ -3916,7 +4109,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3916
4109
|
}, _callee9);
|
3917
4110
|
}));
|
3918
4111
|
return function (_x9) {
|
3919
|
-
return
|
4112
|
+
return _ref33.apply(this, arguments);
|
3920
4113
|
};
|
3921
4114
|
}());
|
3922
4115
|
|
@@ -4035,7 +4228,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4035
4228
|
}
|
4036
4229
|
});
|
4037
4230
|
this.locusInfo.on(_constants.EVENTS.DESTROY_MEETING, /*#__PURE__*/function () {
|
4038
|
-
var
|
4231
|
+
var _ref34 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(payload) {
|
4039
4232
|
return _regenerator.default.wrap(function _callee10$(_context10) {
|
4040
4233
|
while (1) switch (_context10.prev = _context10.next) {
|
4041
4234
|
case 0:
|
@@ -4095,7 +4288,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4095
4288
|
}, _callee10, null, [[8, 14]]);
|
4096
4289
|
}));
|
4097
4290
|
return function (_x10) {
|
4098
|
-
return
|
4291
|
+
return _ref34.apply(this, arguments);
|
4099
4292
|
};
|
4100
4293
|
}());
|
4101
4294
|
}
|
@@ -4154,6 +4347,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4154
4347
|
return this.members.cancelPhoneInvite(invitee);
|
4155
4348
|
}
|
4156
4349
|
|
4350
|
+
/**
|
4351
|
+
* Cancel an SIP call invitation made during a meeting
|
4352
|
+
* @param {Object} invitee
|
4353
|
+
* @param {String} invitee.memberId
|
4354
|
+
* @returns {Promise} see #members.cancelSIPInvite
|
4355
|
+
* @public
|
4356
|
+
* @memberof Meeting
|
4357
|
+
*/
|
4358
|
+
}, {
|
4359
|
+
key: "cancelSIPInvite",
|
4360
|
+
value: function cancelSIPInvite(invitee) {
|
4361
|
+
return this.members.cancelSIPInvite(invitee);
|
4362
|
+
}
|
4363
|
+
|
4157
4364
|
/**
|
4158
4365
|
* Admit the guest(s) to the call once they are waiting.
|
4159
4366
|
* If the host/cohost is in a breakout session, the locus url
|
@@ -4197,6 +4404,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4197
4404
|
key: "beRightBack",
|
4198
4405
|
value: (function () {
|
4199
4406
|
var _beRightBack = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(enabled) {
|
4407
|
+
var _this24 = this;
|
4200
4408
|
var errorMessage, error, _errorMessage, _error;
|
4201
4409
|
return _regenerator.default.wrap(function _callee11$(_context11) {
|
4202
4410
|
while (1) switch (_context11.prev = _context11.next) {
|
@@ -4219,7 +4427,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4219
4427
|
_loggerProxy.default.logger.error(_error);
|
4220
4428
|
return _context11.abrupt("return", _promise.default.reject(_error));
|
4221
4429
|
case 10:
|
4222
|
-
return _context11.abrupt("return", this.brbState.enable(enabled, this.sendSlotManager))
|
4430
|
+
return _context11.abrupt("return", this.brbState.enable(enabled, this.sendSlotManager).then(function () {
|
4431
|
+
if (_this24.audio && enabled) {
|
4432
|
+
// locus mutes the participant with brb enabled request,
|
4433
|
+
// so we need to explicitly update remote mute for correct logic flow
|
4434
|
+
_this24.audio.handleServerRemoteMuteUpdate(_this24, enabled);
|
4435
|
+
}
|
4436
|
+
}).catch(function (error) {
|
4437
|
+
return _promise.default.reject(error);
|
4438
|
+
}));
|
4223
4439
|
case 11:
|
4224
4440
|
case "end":
|
4225
4441
|
return _context11.stop();
|
@@ -4405,7 +4621,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4405
4621
|
canAdmitParticipant: _util2.default.canAdmitParticipant(this.userDisplayHints),
|
4406
4622
|
canLock: _util2.default.canUserLock(this.userDisplayHints),
|
4407
4623
|
canUnlock: _util2.default.canUserUnlock(this.userDisplayHints),
|
4408
|
-
canShareWhiteBoard: _util2.default.canShareWhiteBoard(this.userDisplayHints),
|
4624
|
+
canShareWhiteBoard: _util2.default.canShareWhiteBoard(this.userDisplayHints, this.selfUserPolicies),
|
4409
4625
|
canSetDisallowUnmute: _util5.default.canSetDisallowUnmute(this.userDisplayHints),
|
4410
4626
|
canUnsetDisallowUnmute: _util5.default.canUnsetDisallowUnmute(this.userDisplayHints),
|
4411
4627
|
canSetMuteOnEntry: _util5.default.canSetMuteOnEntry(this.userDisplayHints),
|
@@ -4435,6 +4651,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4435
4651
|
canSelectSpokenLanguages: _util2.default.canSelectSpokenLanguages(this.userDisplayHints),
|
4436
4652
|
waitingForOthersToJoin: _util2.default.waitingForOthersToJoin(this.userDisplayHints),
|
4437
4653
|
canSendReactions: _util2.default.canSendReactions(this.inMeetingActions.canSendReactions, this.userDisplayHints),
|
4654
|
+
requiresPostMeetingDataConsentPrompt: _util2.default.requiresPostMeetingDataConsentPrompt(this.userDisplayHints),
|
4438
4655
|
canManageBreakout: _util2.default.canManageBreakout(this.userDisplayHints),
|
4439
4656
|
canStartBreakout: _util2.default.canStartBreakout(this.userDisplayHints),
|
4440
4657
|
canBroadcastMessageToBreakout: _util2.default.canBroadcastMessageToBreakout(this.userDisplayHints, this.selfUserPolicies),
|
@@ -4443,6 +4660,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4443
4660
|
canUserAskForHelp: _util2.default.canUserAskForHelp(this.userDisplayHints),
|
4444
4661
|
canUserRenameSelfAndObserved: _util2.default.canUserRenameSelfAndObserved(this.userDisplayHints),
|
4445
4662
|
canUserRenameOthers: _util2.default.canUserRenameOthers(this.userDisplayHints),
|
4663
|
+
canMoveToLobby: _util2.default.canMoveToLobby(this.userDisplayHints),
|
4446
4664
|
canMuteAll: _util5.default.hasHints({
|
4447
4665
|
requiredHints: [_constants.DISPLAY_HINTS.MUTE_ALL],
|
4448
4666
|
displayHints: this.userDisplayHints
|
@@ -4574,6 +4792,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4574
4792
|
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_FILE_TRANSFER],
|
4575
4793
|
policies: this.selfUserPolicies
|
4576
4794
|
}),
|
4795
|
+
canRealtimeCloseCaption: _util5.default.hasPolicies({
|
4796
|
+
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_REALTIME_CLOSE_CAPTION],
|
4797
|
+
policies: this.selfUserPolicies
|
4798
|
+
}),
|
4799
|
+
canRealtimeCloseCaptionManual: _util5.default.hasPolicies({
|
4800
|
+
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_REALTIME_CLOSE_CAPTION_MANUAL],
|
4801
|
+
policies: this.selfUserPolicies
|
4802
|
+
}),
|
4577
4803
|
canChat: _util5.default.hasPolicies({
|
4578
4804
|
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_CHAT],
|
4579
4805
|
policies: this.selfUserPolicies
|
@@ -4610,6 +4836,30 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4610
4836
|
canAnnotate: _util5.default.hasPolicies({
|
4611
4837
|
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_ANNOTATION],
|
4612
4838
|
policies: this.selfUserPolicies
|
4839
|
+
}),
|
4840
|
+
canEnableAnnotation: _util5.default.hasHints({
|
4841
|
+
requiredHints: [_constants.DISPLAY_HINTS.ENABLE_ANNOTATION_MEETING_OPTION],
|
4842
|
+
displayHints: this.userDisplayHints
|
4843
|
+
}),
|
4844
|
+
canDisableAnnotation: _util5.default.hasHints({
|
4845
|
+
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_ANNOTATION_MEETING_OPTION],
|
4846
|
+
displayHints: this.userDisplayHints
|
4847
|
+
}),
|
4848
|
+
canEnableRemoteDesktopControl: _util5.default.hasHints({
|
4849
|
+
requiredHints: [_constants.DISPLAY_HINTS.ENABLE_RDC_MEETING_OPTION],
|
4850
|
+
displayHints: this.userDisplayHints
|
4851
|
+
}),
|
4852
|
+
canDisableRemoteDesktopControl: _util5.default.hasHints({
|
4853
|
+
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_RDC_MEETING_OPTION],
|
4854
|
+
displayHints: this.userDisplayHints
|
4855
|
+
}),
|
4856
|
+
canEnablePollingQA: _util5.default.hasHints({
|
4857
|
+
requiredHints: [_constants.DISPLAY_HINTS.ENABLE_ATTENDEE_START_POLLING_QA],
|
4858
|
+
displayHints: this.userDisplayHints
|
4859
|
+
}),
|
4860
|
+
canDisablePollingQA: _util5.default.hasHints({
|
4861
|
+
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_ATTENDEE_START_POLLING_QA],
|
4862
|
+
displayHints: this.userDisplayHints
|
4613
4863
|
})
|
4614
4864
|
}) || changed;
|
4615
4865
|
}
|
@@ -4714,7 +4964,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4714
4964
|
}, {
|
4715
4965
|
key: "setLogUploadTimer",
|
4716
4966
|
value: function setLogUploadTimer() {
|
4717
|
-
var
|
4967
|
+
var _this25 = this;
|
4718
4968
|
// 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
4969
|
var LOG_UPLOAD_INTERVALS = [0.1, 15, 30, 60]; // in minutes
|
4720
4970
|
|
@@ -4725,15 +4975,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4725
4975
|
this.logUploadIntervalIndex += 1;
|
4726
4976
|
}
|
4727
4977
|
this.uploadLogsTimer = (0, _commonTimers.safeSetTimeout)(function () {
|
4728
|
-
|
4729
|
-
|
4978
|
+
_this25.uploadLogsTimer = undefined;
|
4979
|
+
_this25.uploadLogs();
|
4730
4980
|
|
4731
4981
|
// just as an extra precaution, to avoid uploading logs forever in case something goes wrong
|
4732
4982
|
// and the page remains opened, we stop it if there is no media connection
|
4733
|
-
if (!
|
4983
|
+
if (!_this25.mediaProperties.webrtcMediaConnection) {
|
4734
4984
|
return;
|
4735
4985
|
}
|
4736
|
-
|
4986
|
+
_this25.setLogUploadTimer();
|
4737
4987
|
}, delay);
|
4738
4988
|
}
|
4739
4989
|
|
@@ -4800,7 +5050,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4800
5050
|
}, {
|
4801
5051
|
key: "closeRemoteStreams",
|
4802
5052
|
value: function closeRemoteStreams() {
|
4803
|
-
var
|
5053
|
+
var _this26 = this;
|
4804
5054
|
var _this$mediaProperties6 = this.mediaProperties,
|
4805
5055
|
remoteAudioStream = _this$mediaProperties6.remoteAudioStream,
|
4806
5056
|
remoteVideoStream = _this$mediaProperties6.remoteVideoStream,
|
@@ -4814,7 +5064,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4814
5064
|
*/
|
4815
5065
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
4816
5066
|
var triggerMediaStoppedEvent = function triggerMediaStoppedEvent(mediaType) {
|
4817
|
-
_triggerProxy.default.trigger(
|
5067
|
+
_triggerProxy.default.trigger(_this26, {
|
4818
5068
|
file: 'meeting/index',
|
4819
5069
|
function: 'closeRemoteStreams'
|
4820
5070
|
}, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
|
@@ -5122,7 +5372,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5122
5372
|
}, {
|
5123
5373
|
key: "setMercuryListener",
|
5124
5374
|
value: function setMercuryListener() {
|
5125
|
-
var
|
5375
|
+
var _this27 = this;
|
5126
5376
|
// Client will have a socket manager and handle reconnecting to mercury, when we reconnect to mercury
|
5127
5377
|
// if the meeting has active peer connections, it should try to reconnect.
|
5128
5378
|
// @ts-ignore
|
@@ -5130,33 +5380,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5130
5380
|
_loggerProxy.default.logger.info('Meeting:index#setMercuryListener --> Web socket online');
|
5131
5381
|
|
5132
5382
|
// Only send restore event when it was disconnected before and for connected later
|
5133
|
-
if (!
|
5134
|
-
// @ts-ignore
|
5135
|
-
_this26.webex.internal.newMetrics.submitClientEvent({
|
5136
|
-
name: 'client.mercury.connection.restored',
|
5137
|
-
options: {
|
5138
|
-
meetingId: _this26.id
|
5139
|
-
}
|
5140
|
-
});
|
5383
|
+
if (!_this27.hasWebsocketConnected) {
|
5141
5384
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_RESTORED, {
|
5142
|
-
correlation_id:
|
5385
|
+
correlation_id: _this27.correlationId
|
5143
5386
|
});
|
5144
5387
|
}
|
5145
|
-
|
5388
|
+
_this27.hasWebsocketConnected = true;
|
5146
5389
|
});
|
5147
5390
|
|
5148
5391
|
// @ts-ignore
|
5149
5392
|
this.webex.internal.mercury.on(_constants.OFFLINE, function () {
|
5150
5393
|
_loggerProxy.default.logger.error('Meeting:index#setMercuryListener --> Web socket offline');
|
5151
|
-
// @ts-ignore
|
5152
|
-
_this26.webex.internal.newMetrics.submitClientEvent({
|
5153
|
-
name: 'client.mercury.connection.lost',
|
5154
|
-
options: {
|
5155
|
-
meetingId: _this26.id
|
5156
|
-
}
|
5157
|
-
});
|
5158
5394
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_FAILURE, {
|
5159
|
-
correlation_id:
|
5395
|
+
correlation_id: _this27.correlationId
|
5160
5396
|
});
|
5161
5397
|
});
|
5162
5398
|
}
|
@@ -5263,7 +5499,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5263
5499
|
}, {
|
5264
5500
|
key: "muteAudio",
|
5265
5501
|
value: function muteAudio() {
|
5266
|
-
var
|
5502
|
+
var _this28 = this;
|
5267
5503
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5268
5504
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5269
5505
|
}
|
@@ -5279,22 +5515,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5279
5515
|
|
5280
5516
|
// First, stop sending the local audio media
|
5281
5517
|
return logRequest(this.audio.handleClientRequest(this, true).then(function () {
|
5282
|
-
_util2.default.handleAudioLogging(
|
5518
|
+
_util2.default.handleAudioLogging(_this28.mediaProperties.audioStream);
|
5283
5519
|
// @ts-ignore
|
5284
|
-
|
5520
|
+
_this28.webex.internal.newMetrics.submitClientEvent({
|
5285
5521
|
name: 'client.muted',
|
5286
5522
|
payload: {
|
5287
5523
|
trigger: 'user-interaction',
|
5288
5524
|
mediaType: 'audio'
|
5289
5525
|
},
|
5290
5526
|
options: {
|
5291
|
-
meetingId:
|
5527
|
+
meetingId: _this28.id
|
5292
5528
|
}
|
5293
5529
|
});
|
5294
5530
|
}).catch(function (error) {
|
5295
5531
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_AUDIO_FAILURE, {
|
5296
|
-
correlation_id:
|
5297
|
-
locus_id:
|
5532
|
+
correlation_id: _this28.correlationId,
|
5533
|
+
locus_id: _this28.locusUrl.split('/').pop(),
|
5298
5534
|
reason: error.message,
|
5299
5535
|
stack: error.stack
|
5300
5536
|
});
|
@@ -5313,7 +5549,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5313
5549
|
}, {
|
5314
5550
|
key: "unmuteAudio",
|
5315
5551
|
value: function unmuteAudio() {
|
5316
|
-
var
|
5552
|
+
var _this29 = this;
|
5317
5553
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5318
5554
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5319
5555
|
}
|
@@ -5329,22 +5565,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5329
5565
|
|
5330
5566
|
// First, send the control to unmute the participant on the server
|
5331
5567
|
return logRequest(this.audio.handleClientRequest(this, false).then(function () {
|
5332
|
-
_util2.default.handleAudioLogging(
|
5568
|
+
_util2.default.handleAudioLogging(_this29.mediaProperties.audioStream);
|
5333
5569
|
// @ts-ignore
|
5334
|
-
|
5570
|
+
_this29.webex.internal.newMetrics.submitClientEvent({
|
5335
5571
|
name: 'client.unmuted',
|
5336
5572
|
payload: {
|
5337
5573
|
trigger: 'user-interaction',
|
5338
5574
|
mediaType: 'audio'
|
5339
5575
|
},
|
5340
5576
|
options: {
|
5341
|
-
meetingId:
|
5577
|
+
meetingId: _this29.id
|
5342
5578
|
}
|
5343
5579
|
});
|
5344
5580
|
}).catch(function (error) {
|
5345
5581
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_AUDIO_FAILURE, {
|
5346
|
-
correlation_id:
|
5347
|
-
locus_id:
|
5582
|
+
correlation_id: _this29.correlationId,
|
5583
|
+
locus_id: _this29.locusUrl.split('/').pop(),
|
5348
5584
|
reason: error.message,
|
5349
5585
|
stack: error.stack
|
5350
5586
|
});
|
@@ -5363,7 +5599,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5363
5599
|
}, {
|
5364
5600
|
key: "muteVideo",
|
5365
5601
|
value: function muteVideo() {
|
5366
|
-
var
|
5602
|
+
var _this30 = this;
|
5367
5603
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5368
5604
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5369
5605
|
}
|
@@ -5377,22 +5613,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5377
5613
|
return _promise.default.reject(new _parameter.default('no video control associated to the meeting'));
|
5378
5614
|
}
|
5379
5615
|
return logRequest(this.video.handleClientRequest(this, true).then(function () {
|
5380
|
-
_util2.default.handleVideoLogging(
|
5616
|
+
_util2.default.handleVideoLogging(_this30.mediaProperties.videoStream);
|
5381
5617
|
// @ts-ignore
|
5382
|
-
|
5618
|
+
_this30.webex.internal.newMetrics.submitClientEvent({
|
5383
5619
|
name: 'client.muted',
|
5384
5620
|
payload: {
|
5385
5621
|
trigger: 'user-interaction',
|
5386
5622
|
mediaType: 'video'
|
5387
5623
|
},
|
5388
5624
|
options: {
|
5389
|
-
meetingId:
|
5625
|
+
meetingId: _this30.id
|
5390
5626
|
}
|
5391
5627
|
});
|
5392
5628
|
}).catch(function (error) {
|
5393
5629
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_VIDEO_FAILURE, {
|
5394
|
-
correlation_id:
|
5395
|
-
locus_id:
|
5630
|
+
correlation_id: _this30.correlationId,
|
5631
|
+
locus_id: _this30.locusUrl.split('/').pop(),
|
5396
5632
|
reason: error.message,
|
5397
5633
|
stack: error.stack
|
5398
5634
|
});
|
@@ -5411,7 +5647,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5411
5647
|
}, {
|
5412
5648
|
key: "unmuteVideo",
|
5413
5649
|
value: function unmuteVideo() {
|
5414
|
-
var
|
5650
|
+
var _this31 = this;
|
5415
5651
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5416
5652
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5417
5653
|
}
|
@@ -5425,22 +5661,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5425
5661
|
return _promise.default.reject(new _parameter.default('no audio control associated to the meeting'));
|
5426
5662
|
}
|
5427
5663
|
return logRequest(this.video.handleClientRequest(this, false).then(function () {
|
5428
|
-
_util2.default.handleVideoLogging(
|
5664
|
+
_util2.default.handleVideoLogging(_this31.mediaProperties.videoStream);
|
5429
5665
|
// @ts-ignore
|
5430
|
-
|
5666
|
+
_this31.webex.internal.newMetrics.submitClientEvent({
|
5431
5667
|
name: 'client.unmuted',
|
5432
5668
|
payload: {
|
5433
5669
|
trigger: 'user-interaction',
|
5434
5670
|
mediaType: 'video'
|
5435
5671
|
},
|
5436
5672
|
options: {
|
5437
|
-
meetingId:
|
5673
|
+
meetingId: _this31.id
|
5438
5674
|
}
|
5439
5675
|
});
|
5440
5676
|
}).catch(function (error) {
|
5441
5677
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_VIDEO_FAILURE, {
|
5442
|
-
correlation_id:
|
5443
|
-
locus_id:
|
5678
|
+
correlation_id: _this31.correlationId,
|
5679
|
+
locus_id: _this31.locusUrl.split('/').pop(),
|
5444
5680
|
reason: error.message,
|
5445
5681
|
stack: error.stack
|
5446
5682
|
});
|
@@ -5470,7 +5706,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5470
5706
|
key: "joinWithMedia",
|
5471
5707
|
value: (function () {
|
5472
5708
|
var _joinWithMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
|
5473
|
-
var
|
5709
|
+
var _this32 = this;
|
5474
5710
|
var options,
|
5475
5711
|
mediaOptions,
|
5476
5712
|
_options$joinOptions,
|
@@ -5553,7 +5789,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5553
5789
|
case 35:
|
5554
5790
|
_context16.next = 37;
|
5555
5791
|
return this.addMediaInternal(function () {
|
5556
|
-
return
|
5792
|
+
return _this32.joinWithMediaRetryInfo.isRetry ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
5557
5793
|
}, turnServerInfo, forceTurnDiscovery, mediaOptions);
|
5558
5794
|
case 37:
|
5559
5795
|
mediaResponse = _context16.sent;
|
@@ -5648,7 +5884,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5648
5884
|
}, {
|
5649
5885
|
key: "reconnect",
|
5650
5886
|
value: function reconnect(options) {
|
5651
|
-
var
|
5887
|
+
var _this33 = this;
|
5652
5888
|
_loggerProxy.default.logger.log("Meeting:index#reconnect --> attempting to reconnect meeting ".concat(this.id));
|
5653
5889
|
if (!this.reconnectionManager || !this.reconnectionManager.reconnect) {
|
5654
5890
|
return _promise.default.reject(new _parameter.default('Cannot reconnect, ReconnectionManager must first be defined.'));
|
@@ -5664,10 +5900,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5664
5900
|
while (1) switch (_context17.prev = _context17.next) {
|
5665
5901
|
case 0:
|
5666
5902
|
_context17.next = 2;
|
5667
|
-
return
|
5903
|
+
return _this33.waitForRemoteSDPAnswer();
|
5668
5904
|
case 2:
|
5669
5905
|
_context17.next = 4;
|
5670
|
-
return
|
5906
|
+
return _this33.waitForMediaConnectionConnected();
|
5671
5907
|
case 4:
|
5672
5908
|
case "end":
|
5673
5909
|
return _context17.stop();
|
@@ -5681,7 +5917,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5681
5917
|
return _promise.default.resolve();
|
5682
5918
|
}
|
5683
5919
|
_loggerProxy.default.logger.error('Meeting:index#reconnect --> Meeting reconnect failed', error);
|
5684
|
-
|
5920
|
+
_this33.uploadLogs({
|
5685
5921
|
file: 'meeting/index',
|
5686
5922
|
function: 'reconnect'
|
5687
5923
|
});
|
@@ -5728,19 +5964,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5728
5964
|
}, {
|
5729
5965
|
key: "setCaptionLanguage",
|
5730
5966
|
value: function setCaptionLanguage(language) {
|
5731
|
-
var
|
5967
|
+
var _this34 = this;
|
5732
5968
|
return new _promise.default(function (resolve, reject) {
|
5733
|
-
if (!
|
5969
|
+
if (!_this34.isTranscriptionSupported()) {
|
5734
5970
|
_loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
|
5735
5971
|
reject(new Error('Webex Assistant is not enabled/supported'));
|
5736
5972
|
}
|
5737
5973
|
try {
|
5738
5974
|
var voiceaListenerCaptionUpdate = function voiceaListenerCaptionUpdate(payload) {
|
5739
5975
|
// @ts-ignore
|
5740
|
-
|
5976
|
+
_this34.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
|
5741
5977
|
var statusCode = payload.statusCode;
|
5742
5978
|
if (statusCode === 200) {
|
5743
|
-
|
5979
|
+
_this34.transcription.languageOptions = _objectSpread(_objectSpread({}, _this34.transcription.languageOptions), {}, {
|
5744
5980
|
currentCaptionLanguage: language
|
5745
5981
|
});
|
5746
5982
|
resolve(language);
|
@@ -5749,9 +5985,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5749
5985
|
}
|
5750
5986
|
};
|
5751
5987
|
// @ts-ignore
|
5752
|
-
|
5988
|
+
_this34.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
|
5753
5989
|
// @ts-ignore
|
5754
|
-
|
5990
|
+
_this34.webex.internal.voicea.requestLanguage(language);
|
5755
5991
|
} catch (error) {
|
5756
5992
|
_loggerProxy.default.logger.error("Meeting:index#setCaptionLanguage --> ".concat(error));
|
5757
5993
|
reject(error);
|
@@ -5767,23 +6003,23 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5767
6003
|
}, {
|
5768
6004
|
key: "setSpokenLanguage",
|
5769
6005
|
value: function setSpokenLanguage(language) {
|
5770
|
-
var
|
6006
|
+
var _this35 = this;
|
5771
6007
|
return new _promise.default(function (resolve, reject) {
|
5772
|
-
if (!
|
6008
|
+
if (!_this35.isTranscriptionSupported()) {
|
5773
6009
|
_loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
|
5774
6010
|
reject(new Error('Webex Assistant is not enabled/supported'));
|
5775
6011
|
}
|
5776
|
-
if (
|
6012
|
+
if (_this35.getCurUserType() !== 'host') {
|
5777
6013
|
_loggerProxy.default.logger.error('Meeting:index#setSpokenLanguage --> Only host can set spoken language');
|
5778
6014
|
reject(new Error('Only host can set spoken language'));
|
5779
6015
|
}
|
5780
6016
|
try {
|
5781
6017
|
var voiceaListenerLanguageUpdate = function voiceaListenerLanguageUpdate(payload) {
|
5782
6018
|
// @ts-ignore
|
5783
|
-
|
6019
|
+
_this35.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
|
5784
6020
|
var languageCode = payload.languageCode;
|
5785
6021
|
if (languageCode) {
|
5786
|
-
|
6022
|
+
_this35.transcription.languageOptions = _objectSpread(_objectSpread({}, _this35.transcription.languageOptions), {}, {
|
5787
6023
|
currentSpokenLanguage: languageCode
|
5788
6024
|
});
|
5789
6025
|
resolve(languageCode);
|
@@ -5793,10 +6029,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5793
6029
|
};
|
5794
6030
|
|
5795
6031
|
// @ts-ignore
|
5796
|
-
|
6032
|
+
_this35.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
|
5797
6033
|
|
5798
6034
|
// @ts-ignore
|
5799
|
-
|
6035
|
+
_this35.webex.internal.voicea.setSpokenLanguage(language);
|
5800
6036
|
} catch (error) {
|
5801
6037
|
_loggerProxy.default.logger.error("Meeting:index#setSpokenLanguage --> ".concat(error));
|
5802
6038
|
reject(error);
|
@@ -5919,7 +6155,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5919
6155
|
*/
|
5920
6156
|
function () {
|
5921
6157
|
var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
|
5922
|
-
var
|
6158
|
+
var _this36 = this;
|
5923
6159
|
var options,
|
5924
6160
|
errorMessage,
|
5925
6161
|
error,
|
@@ -6068,62 +6304,61 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6068
6304
|
return _context19.abrupt("return", _promise.default.reject(_context19.t0));
|
6069
6305
|
case 51:
|
6070
6306
|
return _context19.abrupt("return", _util2.default.joinMeetingOptions(this, options).then(function (join) {
|
6071
|
-
|
6072
|
-
|
6307
|
+
_this36.meetingFiniteStateMachine.join();
|
6308
|
+
_this36.setupLocusMediaRequest();
|
6073
6309
|
|
6074
6310
|
// @ts-ignore
|
6075
|
-
|
6076
|
-
(0, _classPrivateFieldSet2.default)(_this35, _isoLocalClientMeetingJoinTime, new Date().toISOString());
|
6311
|
+
_this36.webex.internal.device.meetingStarted();
|
6077
6312
|
_loggerProxy.default.logger.log('Meeting:index#join --> Success');
|
6078
6313
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
|
6079
|
-
correlation_id:
|
6314
|
+
correlation_id: _this36.correlationId
|
6080
6315
|
});
|
6081
6316
|
joinSuccess(join);
|
6082
|
-
|
6317
|
+
_this36.deferJoin = undefined;
|
6083
6318
|
return join;
|
6084
6319
|
}).catch(function (error) {
|
6085
|
-
var
|
6086
|
-
|
6320
|
+
var _this36$meetingInfo, _error$error;
|
6321
|
+
_this36.meetingFiniteStateMachine.fail(error);
|
6087
6322
|
_loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
|
6088
6323
|
|
6089
6324
|
// @ts-ignore
|
6090
|
-
|
6325
|
+
_this36.webex.internal.newMetrics.submitClientEvent({
|
6091
6326
|
name: 'client.locus.join.response',
|
6092
6327
|
payload: {
|
6093
6328
|
identifiers: {
|
6094
|
-
meetingLookupUrl: (
|
6329
|
+
meetingLookupUrl: (_this36$meetingInfo = _this36.meetingInfo) === null || _this36$meetingInfo === void 0 ? void 0 : _this36$meetingInfo.meetingLookupUrl
|
6095
6330
|
}
|
6096
6331
|
},
|
6097
6332
|
options: {
|
6098
|
-
meetingId:
|
6333
|
+
meetingId: _this36.id,
|
6099
6334
|
rawError: error
|
6100
6335
|
}
|
6101
6336
|
});
|
6102
6337
|
|
6103
6338
|
// TODO: change this to error codes and pre defined dictionary
|
6104
6339
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
|
6105
|
-
correlation_id:
|
6340
|
+
correlation_id: _this36.correlationId,
|
6106
6341
|
reason: (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.message,
|
6107
6342
|
stack: error.stack
|
6108
6343
|
});
|
6109
6344
|
|
6110
6345
|
// Upload logs on join Failure
|
6111
|
-
_triggerProxy.default.trigger(
|
6346
|
+
_triggerProxy.default.trigger(_this36, {
|
6112
6347
|
file: 'meeting/index',
|
6113
6348
|
function: 'join'
|
6114
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
6349
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this36);
|
6115
6350
|
joinFailed(error);
|
6116
|
-
|
6351
|
+
_this36.deferJoin = undefined;
|
6117
6352
|
return _promise.default.reject(error);
|
6118
6353
|
}).then(function (join) {
|
6119
6354
|
// @ts-ignore - config coming from registerPlugin
|
6120
|
-
if (
|
6355
|
+
if (_this36.config.enableAutomaticLLM) {
|
6121
6356
|
// @ts-ignore
|
6122
|
-
|
6123
|
-
|
6357
|
+
_this36.webex.internal.llm.on('online', _this36.handleLLMOnline);
|
6358
|
+
_this36.updateLLMConnection().catch(function (error) {
|
6124
6359
|
_loggerProxy.default.logger.error('Meeting:index#join --> Transcription Socket Connection Failed', error);
|
6125
6360
|
_metrics.default.sendBehavioralMetric(_constants2.default.LLM_CONNECTION_AFTER_JOIN_FAILURE, {
|
6126
|
-
correlation_id:
|
6361
|
+
correlation_id: _this36.correlationId,
|
6127
6362
|
reason: error === null || error === void 0 ? void 0 : error.message,
|
6128
6363
|
stack: error.stack
|
6129
6364
|
});
|
@@ -6155,7 +6390,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6155
6390
|
key: "updateLLMConnection",
|
6156
6391
|
value: (function () {
|
6157
6392
|
var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20() {
|
6158
|
-
var
|
6393
|
+
var _this37 = this;
|
6159
6394
|
var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, practiceSessionDatachannelUrl, isJoined, dataChannelUrl;
|
6160
6395
|
return _regenerator.default.wrap(function _callee20$(_context20) {
|
6161
6396
|
while (1) switch (_context20.prev = _context20.next) {
|
@@ -6179,7 +6414,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6179
6414
|
return _context20.abrupt("return", undefined);
|
6180
6415
|
case 6:
|
6181
6416
|
_context20.next = 8;
|
6182
|
-
return this.webex.internal.llm.disconnectLLM(
|
6417
|
+
return this.webex.internal.llm.disconnectLLM(isJoined ? {
|
6418
|
+
code: 3050,
|
6419
|
+
reason: 'done (permanent)'
|
6420
|
+
} : undefined);
|
6183
6421
|
case 8:
|
6184
6422
|
// @ts-ignore - Fix type
|
6185
6423
|
this.webex.internal.llm.off('event:relay.event', this.processRelayEvent);
|
@@ -6192,9 +6430,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6192
6430
|
case 11:
|
6193
6431
|
return _context20.abrupt("return", this.webex.internal.llm.registerAndConnect(url, dataChannelUrl).then(function (registerAndConnectResult) {
|
6194
6432
|
// @ts-ignore - Fix type
|
6195
|
-
|
6433
|
+
_this37.webex.internal.llm.off('event:relay.event', _this37.processRelayEvent);
|
6196
6434
|
// @ts-ignore - Fix type
|
6197
|
-
|
6435
|
+
_this37.webex.internal.llm.on('event:relay.event', _this37.processRelayEvent);
|
6198
6436
|
_loggerProxy.default.logger.info('Meeting:index#updateLLMConnection --> enabled to receive relay events!');
|
6199
6437
|
return _promise.default.resolve(registerAndConnectResult);
|
6200
6438
|
}));
|
@@ -6248,7 +6486,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6248
6486
|
}, {
|
6249
6487
|
key: "dialInPstn",
|
6250
6488
|
value: function dialInPstn() {
|
6251
|
-
var
|
6489
|
+
var _this38 = this;
|
6252
6490
|
if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
|
6253
6491
|
|
6254
6492
|
var correlationId = this.correlationId,
|
@@ -6264,10 +6502,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6264
6502
|
}).catch(function (error) {
|
6265
6503
|
var _error$error2;
|
6266
6504
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
|
6267
|
-
correlation_id:
|
6268
|
-
dial_in_url:
|
6505
|
+
correlation_id: _this38.correlationId,
|
6506
|
+
dial_in_url: _this38.dialInUrl,
|
6269
6507
|
locus_id: locusUrl.split('/').pop(),
|
6270
|
-
client_url:
|
6508
|
+
client_url: _this38.deviceUrl,
|
6271
6509
|
reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
|
6272
6510
|
stack: error.stack
|
6273
6511
|
});
|
@@ -6285,7 +6523,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6285
6523
|
}, {
|
6286
6524
|
key: "dialOutPstn",
|
6287
6525
|
value: function dialOutPstn(phoneNumber) {
|
6288
|
-
var
|
6526
|
+
var _this39 = this;
|
6289
6527
|
if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
|
6290
6528
|
|
6291
6529
|
var correlationId = this.correlationId,
|
@@ -6302,10 +6540,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6302
6540
|
}).catch(function (error) {
|
6303
6541
|
var _error$error3;
|
6304
6542
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
|
6305
|
-
correlation_id:
|
6306
|
-
dial_out_url:
|
6543
|
+
correlation_id: _this39.correlationId,
|
6544
|
+
dial_out_url: _this39.dialOutUrl,
|
6307
6545
|
locus_id: locusUrl.split('/').pop(),
|
6308
|
-
client_url:
|
6546
|
+
client_url: _this39.deviceUrl,
|
6309
6547
|
reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
|
6310
6548
|
stack: error.stack
|
6311
6549
|
});
|
@@ -6336,7 +6574,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6336
6574
|
}, {
|
6337
6575
|
key: "moveTo",
|
6338
6576
|
value: function moveTo(resourceId) {
|
6339
|
-
var
|
6577
|
+
var _this40 = this;
|
6340
6578
|
if (!resourceId) {
|
6341
6579
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
6342
6580
|
}
|
@@ -6380,12 +6618,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6380
6618
|
while (1) switch (_context21.prev = _context21.next) {
|
6381
6619
|
case 0:
|
6382
6620
|
_context21.prev = 0;
|
6383
|
-
if (!(
|
6621
|
+
if (!(_this40.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
|
6384
6622
|
_context21.next = 4;
|
6385
6623
|
break;
|
6386
6624
|
}
|
6387
6625
|
_context21.next = 4;
|
6388
|
-
return
|
6626
|
+
return _this40.releaseScreenShareFloor();
|
6389
6627
|
case 4:
|
6390
6628
|
mediaSettings = {
|
6391
6629
|
mediaDirection: {
|
@@ -6397,37 +6635,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6397
6635
|
receiveShare: true
|
6398
6636
|
}
|
6399
6637
|
};
|
6400
|
-
|
6401
|
-
|
6638
|
+
_this40.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
|
6639
|
+
_this40.mediaProperties.unsetRemoteMedia();
|
6402
6640
|
|
6403
6641
|
// 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
6642
|
// once the device answers we close the old connection and create new media server connection with only share enabled
|
6405
|
-
if (!
|
6643
|
+
if (!_this40.statsAnalyzer) {
|
6406
6644
|
_context21.next = 10;
|
6407
6645
|
break;
|
6408
6646
|
}
|
6409
6647
|
_context21.next = 10;
|
6410
|
-
return
|
6648
|
+
return _this40.statsAnalyzer.stopAnalyzer();
|
6411
6649
|
case 10:
|
6412
6650
|
_context21.next = 12;
|
6413
|
-
return
|
6651
|
+
return _this40.closeRemoteStreams();
|
6414
6652
|
case 12:
|
6415
6653
|
_context21.next = 14;
|
6416
|
-
return
|
6654
|
+
return _this40.closePeerConnections();
|
6417
6655
|
case 14:
|
6418
|
-
|
6419
|
-
|
6420
|
-
|
6421
|
-
|
6656
|
+
_this40.cleanupLocalStreams();
|
6657
|
+
_this40.unsetRemoteStreams();
|
6658
|
+
_this40.unsetPeerConnections();
|
6659
|
+
_this40.reconnectionManager.cleanUp();
|
6422
6660
|
_context21.next = 20;
|
6423
|
-
return
|
6661
|
+
return _this40.addMedia({
|
6424
6662
|
audioEnabled: false,
|
6425
6663
|
videoEnabled: false,
|
6426
6664
|
shareVideoEnabled: true
|
6427
6665
|
});
|
6428
6666
|
case 20:
|
6429
6667
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
|
6430
|
-
|
6668
|
+
_this40.isMoveToInProgress = false;
|
6431
6669
|
_context21.next = 29;
|
6432
6670
|
break;
|
6433
6671
|
case 24:
|
@@ -6435,12 +6673,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6435
6673
|
_context21.t0 = _context21["catch"](0);
|
6436
6674
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context21.t0);
|
6437
6675
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
6438
|
-
correlation_id:
|
6439
|
-
locus_id:
|
6676
|
+
correlation_id: _this40.correlationId,
|
6677
|
+
locus_id: _this40.locusUrl.split('/').pop(),
|
6440
6678
|
reason: _context21.t0.message,
|
6441
6679
|
stack: _context21.t0.stack
|
6442
6680
|
});
|
6443
|
-
|
6681
|
+
_this40.isMoveToInProgress = false;
|
6444
6682
|
case 29:
|
6445
6683
|
case "end":
|
6446
6684
|
return _context21.stop();
|
@@ -6456,17 +6694,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6456
6694
|
resourceId: resourceId,
|
6457
6695
|
moveToResource: true
|
6458
6696
|
}).then(function () {
|
6459
|
-
|
6697
|
+
_this40.meetingFiniteStateMachine.join();
|
6460
6698
|
}).catch(function (error) {
|
6461
|
-
|
6699
|
+
_this40.meetingFiniteStateMachine.fail(error);
|
6462
6700
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
6463
|
-
correlation_id:
|
6464
|
-
locus_id:
|
6701
|
+
correlation_id: _this40.correlationId,
|
6702
|
+
locus_id: _this40.locusUrl.split('/').pop(),
|
6465
6703
|
reason: error.message,
|
6466
6704
|
stack: error.stack
|
6467
6705
|
});
|
6468
6706
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', error);
|
6469
|
-
|
6707
|
+
_this40.isMoveToInProgress = false;
|
6470
6708
|
return _promise.default.reject(error);
|
6471
6709
|
});
|
6472
6710
|
}
|
@@ -6481,7 +6719,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6481
6719
|
}, {
|
6482
6720
|
key: "moveFrom",
|
6483
6721
|
value: function moveFrom(resourceId) {
|
6484
|
-
var
|
6722
|
+
var _this41 = this;
|
6485
6723
|
// On moveFrom ask the developer to re capture it moveFrom then updateMedia
|
6486
6724
|
if (!resourceId) {
|
6487
6725
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
@@ -6496,19 +6734,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6496
6734
|
}
|
6497
6735
|
});
|
6498
6736
|
return _util2.default.joinMeetingOptions(this).then(function () {
|
6499
|
-
return _util2.default.leaveMeeting(
|
6737
|
+
return _util2.default.leaveMeeting(_this41, {
|
6500
6738
|
resourceId: resourceId,
|
6501
6739
|
correlationId: oldCorrelationId,
|
6502
6740
|
moveMeeting: true
|
6503
6741
|
}).then(function () {
|
6504
|
-
|
6742
|
+
_this41.resourceId = '';
|
6505
6743
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
|
6506
6744
|
});
|
6507
6745
|
}).catch(function (error) {
|
6508
|
-
|
6746
|
+
_this41.meetingFiniteStateMachine.fail(error);
|
6509
6747
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
|
6510
|
-
correlation_id:
|
6511
|
-
locus_id:
|
6748
|
+
correlation_id: _this41.correlationId,
|
6749
|
+
locus_id: _this41.locusUrl.split('/').pop(),
|
6512
6750
|
reason: error.message,
|
6513
6751
|
stack: error.stack
|
6514
6752
|
});
|
@@ -6557,7 +6795,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6557
6795
|
turnServerInfo: turnServerInfo,
|
6558
6796
|
bundlePolicy: bundlePolicy,
|
6559
6797
|
// @ts-ignore - config coming from registerPlugin
|
6560
|
-
iceCandidatesTimeout: this.config.iceCandidatesGatheringTimeout
|
6798
|
+
iceCandidatesTimeout: this.config.iceCandidatesGatheringTimeout,
|
6799
|
+
// @ts-ignore - config coming from registerPlugin
|
6800
|
+
disableAudioMainDtx: this.config.experimental.disableAudioMainDtx,
|
6801
|
+
// @ts-ignore - config coming from registerPlugin
|
6802
|
+
enableAudioTwcc: this.config.enableAudioTwccForMultistream,
|
6803
|
+
stopIceGatheringAfterFirstRelayCandidate:
|
6804
|
+
// @ts-ignore - config coming from registerPlugin
|
6805
|
+
this.config.stopIceGatheringAfterFirstRelayCandidate
|
6561
6806
|
});
|
6562
6807
|
this.mediaProperties.setMediaPeerConnection(mc);
|
6563
6808
|
this.setupMediaConnectionListeners();
|
@@ -6624,9 +6869,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6624
6869
|
}, {
|
6625
6870
|
key: "forwardEvent",
|
6626
6871
|
value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
|
6627
|
-
var
|
6872
|
+
var _this42 = this;
|
6628
6873
|
eventEmitter.on(eventTypeToForward, function (data) {
|
6629
|
-
return _triggerProxy.default.trigger(
|
6874
|
+
return _triggerProxy.default.trigger(_this42, {
|
6630
6875
|
file: 'meetings',
|
6631
6876
|
function: 'addMedia'
|
6632
6877
|
}, meetingEventType, data);
|
@@ -6696,7 +6941,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6696
6941
|
key: "waitForMediaConnectionConnected",
|
6697
6942
|
value: (function () {
|
6698
6943
|
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;
|
6944
|
+
var iceConnected, _this$mediaProperties8, _this$mediaProperties9, _this$mediaProperties10, _this$mediaProperties11, _this$mediaProperties12, _this$mediaProperties13, _this$mediaProperties14, timedOutError;
|
6700
6945
|
return _regenerator.default.wrap(function _callee24$(_context24) {
|
6701
6946
|
while (1) switch (_context24.prev = _context24.next) {
|
6702
6947
|
case 0:
|
@@ -6704,7 +6949,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6704
6949
|
_context24.next = 3;
|
6705
6950
|
return this.mediaProperties.waitForMediaConnectionConnected();
|
6706
6951
|
case 3:
|
6707
|
-
_context24.next =
|
6952
|
+
_context24.next = 32;
|
6708
6953
|
break;
|
6709
6954
|
case 5:
|
6710
6955
|
_context24.prev = 5;
|
@@ -6746,7 +6991,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6746
6991
|
errors: _context24.t14
|
6747
6992
|
};
|
6748
6993
|
_context24.t16 = {
|
6749
|
-
meetingId: this.id
|
6994
|
+
meetingId: this.id,
|
6995
|
+
rawError: _context24.t0
|
6750
6996
|
};
|
6751
6997
|
_context24.t17 = {
|
6752
6998
|
name: 'client.ice.end',
|
@@ -6755,8 +7001,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6755
7001
|
};
|
6756
7002
|
_context24.t1.submitClientEvent.call(_context24.t1, _context24.t17);
|
6757
7003
|
case 29:
|
6758
|
-
|
6759
|
-
|
7004
|
+
timedOutError = new Error("Timed out waiting for media connection to be connected, correlationId=".concat(this.correlationId));
|
7005
|
+
timedOutError.cause = _context24.t0;
|
7006
|
+
throw timedOutError;
|
7007
|
+
case 32:
|
6760
7008
|
case "end":
|
6761
7009
|
return _context24.stop();
|
6762
7010
|
}
|
@@ -6787,6 +7035,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6787
7035
|
networkQualityMonitor: this.networkQualityMonitor,
|
6788
7036
|
isMultistream: this.isMultistream
|
6789
7037
|
});
|
7038
|
+
this.shareCAEventSentStatus = {
|
7039
|
+
transmitStart: false,
|
7040
|
+
transmitStop: false,
|
7041
|
+
receiveStart: false,
|
7042
|
+
receiveStop: false
|
7043
|
+
};
|
6790
7044
|
this.setupStatsAnalyzerEventHandlers();
|
6791
7045
|
this.networkQualityMonitor.on(_internalMediaCore.NetworkQualityEventNames.NETWORK_QUALITY, this.sendNetworkQualityEvent.bind(this));
|
6792
7046
|
}
|
@@ -6803,7 +7057,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6803
7057
|
key: "waitForRemoteSDPAnswer",
|
6804
7058
|
value: (function () {
|
6805
7059
|
var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25() {
|
6806
|
-
var
|
7060
|
+
var _this43 = this;
|
6807
7061
|
var LOG_HEADER, deferSDPAnswer;
|
6808
7062
|
return _regenerator.default.wrap(function _callee25$(_context25) {
|
6809
7063
|
while (1) switch (_context25.prev = _context25.next) {
|
@@ -6819,23 +7073,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6819
7073
|
deferSDPAnswer = this.deferSDPAnswer;
|
6820
7074
|
this.sdpResponseTimer = setTimeout(function () {
|
6821
7075
|
_loggerProxy.default.logger.warn("".concat(LOG_HEADER, " timeout! no REMOTE SDP ANSWER received within ").concat(_constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT / 1000, " seconds"));
|
7076
|
+
var error = new Error('Timed out waiting for REMOTE SDP ANSWER');
|
7077
|
+
|
6822
7078
|
// @ts-ignore
|
6823
|
-
|
7079
|
+
_this43.webex.internal.newMetrics.submitClientEvent({
|
6824
7080
|
name: 'client.media-engine.remote-sdp-received',
|
6825
7081
|
payload: {
|
6826
7082
|
canProceed: false,
|
6827
7083
|
errors: [
|
6828
7084
|
// @ts-ignore
|
6829
|
-
|
7085
|
+
_this43.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
|
6830
7086
|
clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
|
6831
7087
|
})]
|
6832
7088
|
},
|
6833
7089
|
options: {
|
6834
|
-
meetingId:
|
6835
|
-
rawError:
|
7090
|
+
meetingId: _this43.id,
|
7091
|
+
rawError: error
|
6836
7092
|
}
|
6837
7093
|
});
|
6838
|
-
deferSDPAnswer.reject(
|
7094
|
+
deferSDPAnswer.reject(error);
|
6839
7095
|
}, _constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT);
|
6840
7096
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " waiting for REMOTE SDP ANSWER..."));
|
6841
7097
|
return _context25.abrupt("return", deferSDPAnswer.promise);
|
@@ -6975,7 +7231,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6975
7231
|
break;
|
6976
7232
|
case 7:
|
6977
7233
|
_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();
|
7234
|
+
throw new _webexErrors.AddMediaFailed(error);
|
6979
7235
|
case 9:
|
6980
7236
|
case "end":
|
6981
7237
|
return _context28.stop();
|
@@ -7338,10 +7594,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7338
7594
|
}, {
|
7339
7595
|
key: "addMedia",
|
7340
7596
|
value: function addMedia() {
|
7341
|
-
var
|
7597
|
+
var _this44 = this;
|
7342
7598
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
7343
7599
|
return this.addMediaInternal(function () {
|
7344
|
-
return
|
7600
|
+
return _this44.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
7345
7601
|
}, undefined, false, options);
|
7346
7602
|
}
|
7347
7603
|
|
@@ -7377,10 +7633,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7377
7633
|
_this$remoteMediaMana,
|
7378
7634
|
_yield$this$mediaProp,
|
7379
7635
|
connectionType,
|
7636
|
+
ipVersion,
|
7380
7637
|
selectedCandidatePairChanges,
|
7381
7638
|
numTransports,
|
7382
|
-
reachabilityStats,
|
7383
7639
|
iceCandidateErrors,
|
7640
|
+
reachabilityMetrics,
|
7384
7641
|
_this$mediaProperties15,
|
7385
7642
|
_this$mediaProperties16,
|
7386
7643
|
_this$mediaProperties17,
|
@@ -7402,7 +7659,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7402
7659
|
_this$mediaProperties33,
|
7403
7660
|
_this$mediaProperties34,
|
7404
7661
|
_this$mediaProperties35,
|
7405
|
-
|
7662
|
+
_reachabilityMetrics,
|
7406
7663
|
_yield$this$mediaProp2,
|
7407
7664
|
_selectedCandidatePairChanges,
|
7408
7665
|
_numTransports,
|
@@ -7523,28 +7780,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7523
7780
|
case 46:
|
7524
7781
|
_yield$this$mediaProp = _context35.sent;
|
7525
7782
|
connectionType = _yield$this$mediaProp.connectionType;
|
7783
|
+
ipVersion = _yield$this$mediaProp.ipVersion;
|
7526
7784
|
selectedCandidatePairChanges = _yield$this$mediaProp.selectedCandidatePairChanges;
|
7527
7785
|
numTransports = _yield$this$mediaProp.numTransports;
|
7528
|
-
_context35.next = 52;
|
7529
|
-
return this.webex.meetings.reachability.getReachabilityMetrics();
|
7530
|
-
case 52:
|
7531
|
-
reachabilityStats = _context35.sent;
|
7532
7786
|
iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
|
7787
|
+
_context35.next = 54;
|
7788
|
+
return this.getMediaReachabilityMetricFields();
|
7789
|
+
case 54:
|
7790
|
+
reachabilityMetrics = _context35.sent;
|
7533
7791
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, _objectSpread(_objectSpread(_objectSpread({
|
7534
7792
|
correlation_id: this.correlationId,
|
7535
7793
|
locus_id: this.locusUrl.split('/').pop(),
|
7536
7794
|
connectionType: connectionType,
|
7795
|
+
ipVersion: ipVersion,
|
7537
7796
|
selectedCandidatePairChanges: selectedCandidatePairChanges,
|
7538
7797
|
numTransports: numTransports,
|
7539
7798
|
isMultistream: this.isMultistream,
|
7540
7799
|
retriedWithTurnServer: this.addMediaData.retriedWithTurnServer,
|
7541
7800
|
isJoinWithMediaRetry: this.joinWithMediaRetryInfo.isRetry
|
7542
|
-
},
|
7801
|
+
}, reachabilityMetrics), iceCandidateErrors), {}, {
|
7543
7802
|
iceCandidatesCount: this.iceCandidatesCount
|
7544
7803
|
}));
|
7545
7804
|
// @ts-ignore
|
7546
7805
|
this.webex.internal.newMetrics.submitClientEvent({
|
7547
7806
|
name: 'client.media-engine.ready',
|
7807
|
+
payload: {
|
7808
|
+
ipVersion: ipVersion
|
7809
|
+
},
|
7548
7810
|
options: {
|
7549
7811
|
meetingId: this.id
|
7550
7812
|
}
|
@@ -7554,21 +7816,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7554
7816
|
// We can log ReceiveSlot SSRCs only after the SDP exchange, so doing it here:
|
7555
7817
|
(_this$remoteMediaMana = this.remoteMediaManager) === null || _this$remoteMediaMana === void 0 ? void 0 : _this$remoteMediaMana.logAllReceiveSlots();
|
7556
7818
|
this.startPeriodicLogUpload();
|
7557
|
-
_context35.next =
|
7819
|
+
_context35.next = 80;
|
7558
7820
|
break;
|
7559
|
-
case
|
7560
|
-
_context35.prev =
|
7821
|
+
case 62:
|
7822
|
+
_context35.prev = 62;
|
7561
7823
|
_context35.t1 = _context35["catch"](19);
|
7562
7824
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context35.t1);
|
7563
7825
|
|
7564
7826
|
// @ts-ignore
|
7565
|
-
_context35.next =
|
7566
|
-
return this.
|
7567
|
-
case
|
7568
|
-
|
7569
|
-
_context35.next =
|
7827
|
+
_context35.next = 67;
|
7828
|
+
return this.getMediaReachabilityMetricFields();
|
7829
|
+
case 67:
|
7830
|
+
_reachabilityMetrics = _context35.sent;
|
7831
|
+
_context35.next = 70;
|
7570
7832
|
return this.mediaProperties.getCurrentConnectionInfo();
|
7571
|
-
case
|
7833
|
+
case 70:
|
7572
7834
|
_yield$this$mediaProp2 = _context35.sent;
|
7573
7835
|
_selectedCandidatePairChanges = _yield$this$mediaProp2.selectedCandidatePairChanges;
|
7574
7836
|
_numTransports = _yield$this$mediaProp2.numTransports;
|
@@ -7589,12 +7851,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7589
7851
|
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
7852
|
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
7853
|
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
|
-
},
|
7854
|
+
}, _reachabilityMetrics), _iceCandidateErrors), {}, {
|
7593
7855
|
iceCandidatesCount: this.iceCandidatesCount
|
7594
7856
|
}));
|
7595
|
-
_context35.next =
|
7857
|
+
_context35.next = 77;
|
7596
7858
|
return this.cleanUpOnAddMediaFailure();
|
7597
|
-
case
|
7859
|
+
case 77:
|
7598
7860
|
// Upload logs on error while adding media
|
7599
7861
|
_triggerProxy.default.trigger(this, {
|
7600
7862
|
file: 'meeting/index',
|
@@ -7606,15 +7868,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7606
7868
|
});
|
7607
7869
|
}
|
7608
7870
|
throw _context35.t1;
|
7609
|
-
case
|
7610
|
-
_context35.prev =
|
7871
|
+
case 80:
|
7872
|
+
_context35.prev = 80;
|
7611
7873
|
this.addMediaData.icePhaseCallback = DEFAULT_ICE_PHASE_CALLBACK;
|
7612
|
-
return _context35.finish(
|
7613
|
-
case
|
7874
|
+
return _context35.finish(80);
|
7875
|
+
case 83:
|
7614
7876
|
case "end":
|
7615
7877
|
return _context35.stop();
|
7616
7878
|
}
|
7617
|
-
}, _callee35, this, [[19,
|
7879
|
+
}, _callee35, this, [[19, 62, 80, 83], [24, 29]]);
|
7618
7880
|
}));
|
7619
7881
|
function addMediaInternal(_x33, _x34, _x35) {
|
7620
7882
|
return _addMediaInternal.apply(this, arguments);
|
@@ -7646,7 +7908,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7646
7908
|
* @memberof Meeting
|
7647
7909
|
*/
|
7648
7910
|
function enqueueMediaUpdate(mediaUpdateType) {
|
7649
|
-
var
|
7911
|
+
var _this45 = this;
|
7650
7912
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
7651
7913
|
var canUpdateMediaNow = this.canUpdateMedia();
|
7652
7914
|
return new _promise.default(function (resolve, reject) {
|
@@ -7657,9 +7919,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7657
7919
|
options: options
|
7658
7920
|
};
|
7659
7921
|
_loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
|
7660
|
-
|
7922
|
+
_this45.queuedMediaUpdates.push(queueItem);
|
7661
7923
|
if (canUpdateMediaNow) {
|
7662
|
-
|
7924
|
+
_this45.processNextQueuedMediaUpdate();
|
7663
7925
|
}
|
7664
7926
|
});
|
7665
7927
|
}
|
@@ -7764,7 +8026,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7764
8026
|
}, {
|
7765
8027
|
key: "acknowledge",
|
7766
8028
|
value: function acknowledge(type) {
|
7767
|
-
var
|
8029
|
+
var _this46 = this;
|
7768
8030
|
if (!type) {
|
7769
8031
|
return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
|
7770
8032
|
}
|
@@ -7776,12 +8038,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7776
8038
|
}).then(function (response) {
|
7777
8039
|
return _promise.default.resolve(response);
|
7778
8040
|
}).then(function (response) {
|
7779
|
-
|
8041
|
+
_this46.meetingFiniteStateMachine.ring(type);
|
7780
8042
|
// @ts-ignore
|
7781
|
-
|
8043
|
+
_this46.webex.internal.newMetrics.submitClientEvent({
|
7782
8044
|
name: 'client.alert.displayed',
|
7783
8045
|
options: {
|
7784
|
-
meetingId:
|
8046
|
+
meetingId: _this46.id
|
7785
8047
|
}
|
7786
8048
|
});
|
7787
8049
|
return _promise.default.resolve({
|
@@ -7806,12 +8068,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7806
8068
|
}, {
|
7807
8069
|
key: "decline",
|
7808
8070
|
value: function decline(reason) {
|
7809
|
-
var
|
8071
|
+
var _this47 = this;
|
7810
8072
|
return _util2.default.declineMeeting(this, reason).then(function (decline) {
|
7811
|
-
|
8073
|
+
_this47.meetingFiniteStateMachine.decline();
|
7812
8074
|
return _promise.default.resolve(decline);
|
7813
8075
|
}).catch(function (error) {
|
7814
|
-
|
8076
|
+
_this47.meetingFiniteStateMachine.fail(error);
|
7815
8077
|
return _promise.default.reject(error);
|
7816
8078
|
});
|
7817
8079
|
}
|
@@ -7862,7 +8124,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7862
8124
|
}, {
|
7863
8125
|
key: "leave",
|
7864
8126
|
value: function leave() {
|
7865
|
-
var
|
8127
|
+
var _this48 = this;
|
7866
8128
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
7867
8129
|
var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
|
7868
8130
|
|
@@ -7874,7 +8136,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7874
8136
|
var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
7875
8137
|
return (
|
7876
8138
|
// @ts-ignore
|
7877
|
-
|
8139
|
+
_this48.webex.internal.newMetrics.submitClientEvent({
|
7878
8140
|
name: 'client.call.leave',
|
7879
8141
|
payload: _objectSpread({
|
7880
8142
|
trigger: 'user-interaction',
|
@@ -7882,7 +8144,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7882
8144
|
leaveReason: options.clientEventLeaveReason
|
7883
8145
|
}, payload),
|
7884
8146
|
options: {
|
7885
|
-
meetingId:
|
8147
|
+
meetingId: _this48.id
|
7886
8148
|
}
|
7887
8149
|
})
|
7888
8150
|
);
|
@@ -7891,24 +8153,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7891
8153
|
return _util2.default.leaveMeeting(this, options).then(function (leave) {
|
7892
8154
|
// CA team recommends submitting this *after* locus /leave
|
7893
8155
|
submitLeaveMetric();
|
7894
|
-
|
7895
|
-
|
8156
|
+
_this48.meetingFiniteStateMachine.leave();
|
8157
|
+
_this48.clearMeetingData();
|
7896
8158
|
|
7897
8159
|
// upload logs on leave irrespective of meeting delete
|
7898
|
-
_triggerProxy.default.trigger(
|
8160
|
+
_triggerProxy.default.trigger(_this48, {
|
7899
8161
|
file: 'meeting/index',
|
7900
8162
|
function: 'leave'
|
7901
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8163
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this48);
|
7902
8164
|
|
7903
8165
|
// TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
|
7904
|
-
if (
|
8166
|
+
if (_this48.wirelessShare || _this48.guest) {
|
7905
8167
|
// If screen sharing clean the meeting object
|
7906
|
-
_triggerProxy.default.trigger(
|
8168
|
+
_triggerProxy.default.trigger(_this48, {
|
7907
8169
|
file: 'meeting/index',
|
7908
8170
|
function: 'leave'
|
7909
8171
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
7910
8172
|
reason: options.reason,
|
7911
|
-
meetingId:
|
8173
|
+
meetingId: _this48.id
|
7912
8174
|
});
|
7913
8175
|
}
|
7914
8176
|
_loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
|
@@ -7925,16 +8187,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7925
8187
|
shownToUser: false
|
7926
8188
|
}]
|
7927
8189
|
});
|
7928
|
-
|
8190
|
+
_this48.meetingFiniteStateMachine.fail(error);
|
7929
8191
|
_loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
|
7930
8192
|
// upload logs on leave irrespective of meeting delete
|
7931
|
-
_triggerProxy.default.trigger(
|
8193
|
+
_triggerProxy.default.trigger(_this48, {
|
7932
8194
|
file: 'meeting/index',
|
7933
8195
|
function: 'leave'
|
7934
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8196
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this48);
|
7935
8197
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
|
7936
|
-
correlation_id:
|
7937
|
-
locus_id:
|
8198
|
+
correlation_id: _this48.correlationId,
|
8199
|
+
locus_id: _this48.locusUrl.split('/').pop(),
|
7938
8200
|
reason: error.message,
|
7939
8201
|
stack: error.stack,
|
7940
8202
|
code: error.code
|
@@ -7954,7 +8216,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7954
8216
|
}, {
|
7955
8217
|
key: "startWhiteboardShare",
|
7956
8218
|
value: function startWhiteboardShare(channelUrl, resourceToken) {
|
7957
|
-
var
|
8219
|
+
var _this49 = this;
|
7958
8220
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
7959
8221
|
return element.name === 'whiteboard';
|
7960
8222
|
});
|
@@ -7983,13 +8245,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7983
8245
|
body.resourceToken = resourceToken;
|
7984
8246
|
}
|
7985
8247
|
return this.meetingRequest.changeMeetingFloor(body).then(function () {
|
7986
|
-
|
8248
|
+
_this49.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
7987
8249
|
return _promise.default.resolve();
|
7988
8250
|
}).catch(function (error) {
|
7989
8251
|
_loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
|
7990
8252
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
|
7991
|
-
correlation_id:
|
7992
|
-
locus_id:
|
8253
|
+
correlation_id: _this49.correlationId,
|
8254
|
+
locus_id: _this49.locusUrl.split('/').pop(),
|
7993
8255
|
reason: error.message,
|
7994
8256
|
stack: error.stack,
|
7995
8257
|
board: {
|
@@ -8012,7 +8274,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8012
8274
|
}, {
|
8013
8275
|
key: "stopWhiteboardShare",
|
8014
8276
|
value: function stopWhiteboardShare(channelUrl) {
|
8015
|
-
var
|
8277
|
+
var _this50 = this;
|
8016
8278
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
8017
8279
|
return element.name === 'whiteboard';
|
8018
8280
|
});
|
@@ -8035,8 +8297,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8035
8297
|
}).catch(function (error) {
|
8036
8298
|
_loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
|
8037
8299
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
|
8038
|
-
correlation_id:
|
8039
|
-
locus_id:
|
8300
|
+
correlation_id: _this50.correlationId,
|
8301
|
+
locus_id: _this50.locusUrl.split('/').pop(),
|
8040
8302
|
reason: error.message,
|
8041
8303
|
stack: error.stack,
|
8042
8304
|
board: {
|
@@ -8058,7 +8320,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8058
8320
|
}, {
|
8059
8321
|
key: "requestScreenShareFloor",
|
8060
8322
|
value: function requestScreenShareFloor() {
|
8061
|
-
var
|
8323
|
+
var _this51 = this;
|
8062
8324
|
if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
|
8063
8325
|
_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
8326
|
this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
@@ -8089,34 +8351,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8089
8351
|
resourceUrl: this.resourceUrl,
|
8090
8352
|
shareInstanceId: this.localShareInstanceId
|
8091
8353
|
}).then(function () {
|
8092
|
-
|
8354
|
+
_this51.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
|
8093
8355
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
|
8094
|
-
correlation_id:
|
8095
|
-
locus_id:
|
8356
|
+
correlation_id: _this51.correlationId,
|
8357
|
+
locus_id: _this51.locusUrl.split('/').pop()
|
8096
8358
|
});
|
8097
8359
|
return _promise.default.resolve();
|
8098
8360
|
}).catch(function (error) {
|
8099
8361
|
_loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
|
8100
8362
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
|
8101
|
-
correlation_id:
|
8102
|
-
locus_id:
|
8363
|
+
correlation_id: _this51.correlationId,
|
8364
|
+
locus_id: _this51.locusUrl.split('/').pop(),
|
8103
8365
|
reason: error.message,
|
8104
8366
|
stack: error.stack
|
8105
8367
|
});
|
8106
8368
|
|
8107
8369
|
// @ts-ignore
|
8108
|
-
|
8370
|
+
_this51.webex.internal.newMetrics.submitClientEvent({
|
8109
8371
|
name: 'client.share.floor-granted.local',
|
8110
8372
|
payload: {
|
8111
8373
|
mediaType: 'share',
|
8112
8374
|
errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
|
8113
|
-
shareInstanceId:
|
8375
|
+
shareInstanceId: _this51.localShareInstanceId
|
8114
8376
|
},
|
8115
8377
|
options: {
|
8116
|
-
meetingId:
|
8378
|
+
meetingId: _this51.id
|
8117
8379
|
}
|
8118
8380
|
});
|
8119
|
-
|
8381
|
+
_this51.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
8120
8382
|
return _promise.default.reject(error);
|
8121
8383
|
});
|
8122
8384
|
}
|
@@ -8139,10 +8401,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8139
8401
|
}, {
|
8140
8402
|
key: "requestScreenShareFloorIfPending",
|
8141
8403
|
value: function requestScreenShareFloorIfPending() {
|
8142
|
-
var
|
8404
|
+
var _this52 = this;
|
8143
8405
|
if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
|
8144
8406
|
this.requestScreenShareFloor().then(function () {
|
8145
|
-
|
8407
|
+
_this52.floorGrantPending = false;
|
8146
8408
|
});
|
8147
8409
|
}
|
8148
8410
|
}
|
@@ -8156,7 +8418,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8156
8418
|
}, {
|
8157
8419
|
key: "releaseScreenShareFloor",
|
8158
8420
|
value: function releaseScreenShareFloor() {
|
8159
|
-
var
|
8421
|
+
var _this53 = this;
|
8160
8422
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
8161
8423
|
return element.name === _constants.CONTENT;
|
8162
8424
|
});
|
@@ -8191,8 +8453,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8191
8453
|
}).catch(function (error) {
|
8192
8454
|
_loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
|
8193
8455
|
_metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
|
8194
|
-
correlation_id:
|
8195
|
-
locus_id:
|
8456
|
+
correlation_id: _this53.correlationId,
|
8457
|
+
locus_id: _this53.locusUrl.split('/').pop(),
|
8196
8458
|
reason: error.message,
|
8197
8459
|
stack: error.stack
|
8198
8460
|
});
|
@@ -8372,7 +8634,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8372
8634
|
}, {
|
8373
8635
|
key: "changeVideoLayout",
|
8374
8636
|
value: function changeVideoLayout(layoutType) {
|
8375
|
-
var
|
8637
|
+
var _this54 = this;
|
8376
8638
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
8377
8639
|
var main = renderInfo.main,
|
8378
8640
|
content = renderInfo.content;
|
@@ -8426,7 +8688,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8426
8688
|
}
|
8427
8689
|
this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
|
8428
8690
|
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
|
8429
|
-
_triggerProxy.default.trigger(
|
8691
|
+
_triggerProxy.default.trigger(_this54, {
|
8430
8692
|
file: 'meeting/index',
|
8431
8693
|
function: 'changeVideoLayout'
|
8432
8694
|
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
|
@@ -8542,7 +8804,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8542
8804
|
}, {
|
8543
8805
|
key: "endMeetingForAll",
|
8544
8806
|
value: function endMeetingForAll() {
|
8545
|
-
var
|
8807
|
+
var _this55 = this;
|
8546
8808
|
// @ts-ignore
|
8547
8809
|
this.webex.internal.newMetrics.submitClientEvent({
|
8548
8810
|
name: 'client.call.leave',
|
@@ -8560,25 +8822,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8560
8822
|
locus_id: this.locusId
|
8561
8823
|
});
|
8562
8824
|
return _util2.default.endMeetingForAll(this).then(function (end) {
|
8563
|
-
|
8564
|
-
|
8825
|
+
_this55.meetingFiniteStateMachine.end();
|
8826
|
+
_this55.clearMeetingData();
|
8565
8827
|
// upload logs on leave irrespective of meeting delete
|
8566
|
-
_triggerProxy.default.trigger(
|
8828
|
+
_triggerProxy.default.trigger(_this55, {
|
8567
8829
|
file: 'meeting/index',
|
8568
8830
|
function: 'endMeetingForAll'
|
8569
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8831
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this55);
|
8570
8832
|
return end;
|
8571
8833
|
}).catch(function (error) {
|
8572
|
-
|
8834
|
+
_this55.meetingFiniteStateMachine.fail(error);
|
8573
8835
|
_loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
|
8574
8836
|
// upload logs on leave irrespective of meeting delete
|
8575
|
-
_triggerProxy.default.trigger(
|
8837
|
+
_triggerProxy.default.trigger(_this55, {
|
8576
8838
|
file: 'meeting/index',
|
8577
8839
|
function: 'endMeetingForAll'
|
8578
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8840
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this55);
|
8579
8841
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
|
8580
|
-
correlation_id:
|
8581
|
-
locus_id:
|
8842
|
+
correlation_id: _this55.correlationId,
|
8843
|
+
locus_id: _this55.locusUrl.split('/').pop(),
|
8582
8844
|
reason: error.message,
|
8583
8845
|
stack: error.stack,
|
8584
8846
|
code: error.code
|
@@ -8643,6 +8905,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8643
8905
|
});
|
8644
8906
|
}
|
8645
8907
|
|
8908
|
+
/**
|
8909
|
+
* Method to set post meeting data consent.
|
8910
|
+
*
|
8911
|
+
* @param {boolean} accept - whether consent accepted or declined
|
8912
|
+
* @returns {Promise}
|
8913
|
+
* @public
|
8914
|
+
* @memberof Meeting
|
8915
|
+
*/
|
8916
|
+
}, {
|
8917
|
+
key: "setPostMeetingDataConsent",
|
8918
|
+
value: function setPostMeetingDataConsent(accept) {
|
8919
|
+
return this.meetingRequest.setPostMeetingDataConsent({
|
8920
|
+
postMeetingDataConsent: accept,
|
8921
|
+
locusUrl: this.locusUrl,
|
8922
|
+
deviceUrl: this.deviceUrl,
|
8923
|
+
selfId: this.members.selfId
|
8924
|
+
});
|
8925
|
+
}
|
8926
|
+
|
8646
8927
|
/**
|
8647
8928
|
* Throws if we don't have a media connection created
|
8648
8929
|
*
|
@@ -8720,7 +9001,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8720
9001
|
_this$mediaProperties43,
|
8721
9002
|
_this$mediaProperties44,
|
8722
9003
|
_this$mediaProperties45,
|
8723
|
-
|
9004
|
+
_this56 = this;
|
8724
9005
|
var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
|
8725
9006
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
|
8726
9007
|
if (!this.canUpdateMedia()) {
|
@@ -8745,8 +9026,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8745
9026
|
}).catch(function (error) {
|
8746
9027
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
|
8747
9028
|
_metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
|
8748
|
-
correlation_id:
|
8749
|
-
locus_id:
|
9029
|
+
correlation_id: _this56.correlationId,
|
9030
|
+
locus_id: _this56.locusUrl.split('/').pop(),
|
8750
9031
|
reason: error.message,
|
8751
9032
|
stack: error.stack
|
8752
9033
|
});
|
@@ -8968,10 +9249,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8968
9249
|
return this.updateTranscodedMediaConnection();
|
8969
9250
|
case 31:
|
8970
9251
|
if (!floorRequestNeeded) {
|
8971
|
-
_context40.next =
|
9252
|
+
_context40.next = 39;
|
8972
9253
|
break;
|
8973
9254
|
}
|
8974
9255
|
this.localShareInstanceId = _uuid.default.v4();
|
9256
|
+
this.shareCAEventSentStatus.transmitStart = false;
|
9257
|
+
this.shareCAEventSentStatus.transmitStop = false;
|
8975
9258
|
|
8976
9259
|
// @ts-ignore
|
8977
9260
|
this.webex.internal.newMetrics.submitClientEvent({
|
@@ -8992,9 +9275,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8992
9275
|
// we're sending the http request to Locus to request the screen share floor
|
8993
9276
|
// only after the SDP update, because that's how it's always been done for transcoded meetings
|
8994
9277
|
// and also if sharing from the start, we need confluence to have been created
|
8995
|
-
_context40.next =
|
9278
|
+
_context40.next = 39;
|
8996
9279
|
return this.enqueueScreenShareFloorRequest();
|
8997
|
-
case
|
9280
|
+
case 39:
|
8998
9281
|
case "end":
|
8999
9282
|
return _context40.stop();
|
9000
9283
|
}
|
@@ -9132,6 +9415,57 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
9132
9415
|
}
|
9133
9416
|
return _promise.default.resolve();
|
9134
9417
|
}
|
9418
|
+
|
9419
|
+
/**
|
9420
|
+
* Gets the media reachability metrics
|
9421
|
+
*
|
9422
|
+
* @returns {Promise<MediaReachabilityMetrics>}
|
9423
|
+
*/
|
9424
|
+
}, {
|
9425
|
+
key: "getMediaReachabilityMetricFields",
|
9426
|
+
value: (function () {
|
9427
|
+
var _getMediaReachabilityMetricFields = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee42() {
|
9428
|
+
var _this$mediaServerIp, _this$mediaConnection, _this$mediaConnection2, _this$mediaConnection3;
|
9429
|
+
var reachabilityMetrics, successKeys, totalSuccessCases, selectedSubnetFirstOctet, isSubnetReachable, selectedCluster;
|
9430
|
+
return _regenerator.default.wrap(function _callee42$(_context42) {
|
9431
|
+
while (1) switch (_context42.prev = _context42.next) {
|
9432
|
+
case 0:
|
9433
|
+
_context42.next = 2;
|
9434
|
+
return this.webex.meetings.reachability.getReachabilityMetrics();
|
9435
|
+
case 2:
|
9436
|
+
reachabilityMetrics = _context42.sent;
|
9437
|
+
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'];
|
9438
|
+
totalSuccessCases = successKeys.reduce(function (total, key) {
|
9439
|
+
var value = reachabilityMetrics[key];
|
9440
|
+
if (typeof value === 'number') {
|
9441
|
+
return total + value;
|
9442
|
+
}
|
9443
|
+
return total;
|
9444
|
+
}, 0);
|
9445
|
+
selectedSubnetFirstOctet = (_this$mediaServerIp = this.mediaServerIp) === null || _this$mediaServerIp === void 0 ? void 0 : _this$mediaServerIp.split('.')[0];
|
9446
|
+
isSubnetReachable = null;
|
9447
|
+
if (totalSuccessCases > 0 && selectedSubnetFirstOctet) {
|
9448
|
+
isSubnetReachable =
|
9449
|
+
// @ts-ignore
|
9450
|
+
this.webex.meetings.reachability.isSubnetReachable(selectedSubnetFirstOctet);
|
9451
|
+
}
|
9452
|
+
selectedCluster = (_this$mediaConnection = (_this$mediaConnection2 = this.mediaConnections) === null || _this$mediaConnection2 === void 0 ? void 0 : (_this$mediaConnection3 = _this$mediaConnection2[0]) === null || _this$mediaConnection3 === void 0 ? void 0 : _this$mediaConnection3.mediaAgentCluster) !== null && _this$mediaConnection !== void 0 ? _this$mediaConnection : null;
|
9453
|
+
return _context42.abrupt("return", _objectSpread(_objectSpread({}, reachabilityMetrics), {}, {
|
9454
|
+
subnet_reachable: isSubnetReachable,
|
9455
|
+
selected_cluster: selectedCluster,
|
9456
|
+
selected_subnet: selectedSubnetFirstOctet ? "".concat(selectedSubnetFirstOctet, ".X.X.X") : null
|
9457
|
+
}));
|
9458
|
+
case 10:
|
9459
|
+
case "end":
|
9460
|
+
return _context42.stop();
|
9461
|
+
}
|
9462
|
+
}, _callee42, this);
|
9463
|
+
}));
|
9464
|
+
function getMediaReachabilityMetricFields() {
|
9465
|
+
return _getMediaReachabilityMetricFields.apply(this, arguments);
|
9466
|
+
}
|
9467
|
+
return getMediaReachabilityMetricFields;
|
9468
|
+
}())
|
9135
9469
|
}]);
|
9136
9470
|
return Meeting;
|
9137
9471
|
}(_webexCore.StatelessWebexPlugin);
|