@webex/plugin-meetings 3.0.0-beta.16 → 3.0.0-beta.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/breakouts/breakout.js +116 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.js +23 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/index.js +226 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/config.js +4 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +43 -6
- package/dist/constants.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +2 -1
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +48 -0
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/parser.js +1 -0
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +19 -11
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +3 -3
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +4 -4
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +5 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +652 -459
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/request.js +25 -44
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +22 -57
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +2 -0
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meetings/index.js +28 -18
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +14 -12
- package/dist/meetings/request.js.map +1 -1
- package/dist/member/index.js +9 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +14 -1
- package/dist/member/util.js.map +1 -1
- package/dist/members/index.js +8 -6
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +3 -1
- package/dist/members/request.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +46 -6
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/multistreamMedia.js +4 -0
- package/dist/multistream/multistreamMedia.js.map +1 -1
- package/dist/multistream/receiveSlot.js +3 -3
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +8 -6
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +168 -63
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/reachability/index.js +63 -51
- package/dist/reachability/index.js.map +1 -1
- package/dist/reactions/constants.js +13 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +25 -12
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +17 -0
- package/dist/recording-controller/enums.js.map +1 -0
- package/dist/recording-controller/index.js +343 -0
- package/dist/recording-controller/index.js.map +1 -0
- package/dist/recording-controller/util.js +63 -0
- package/dist/recording-controller/util.js.map +1 -0
- package/dist/roap/request.js +88 -68
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +72 -47
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/index.js +3 -3
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +18 -6
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/package.json +24 -19
- package/src/breakouts/README.md +190 -0
- package/src/breakouts/breakout.ts +110 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/index.ts +225 -0
- package/src/config.ts +4 -1
- package/src/constants.ts +39 -1
- package/src/locus-info/controlsUtils.ts +2 -0
- package/src/locus-info/index.ts +59 -1
- package/src/locus-info/parser.ts +1 -0
- package/src/locus-info/selfUtils.ts +8 -0
- package/src/media/index.ts +1 -2
- package/src/media/properties.ts +6 -9
- package/src/meeting/in-meeting-actions.ts +8 -0
- package/src/meeting/index.ts +360 -111
- package/src/meeting/request.ts +9 -31
- package/src/meeting/request.type.ts +2 -0
- package/src/meeting/util.ts +25 -60
- package/src/meeting-info/meeting-info-v2.ts +2 -0
- package/src/meetings/index.ts +10 -5
- package/src/meetings/request.ts +1 -1
- package/src/member/index.ts +9 -0
- package/src/member/util.ts +14 -1
- package/src/members/index.ts +1 -0
- package/src/members/request.ts +1 -0
- package/src/multistream/mediaRequestManager.ts +79 -15
- package/src/multistream/multistreamMedia.ts +4 -0
- package/src/multistream/receiveSlot.ts +17 -12
- package/src/multistream/receiveSlotManager.ts +22 -21
- package/src/multistream/remoteMedia.ts +1 -1
- package/src/multistream/remoteMediaGroup.ts +2 -2
- package/src/multistream/remoteMediaManager.ts +150 -37
- package/src/reachability/index.ts +16 -13
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.type.ts +25 -0
- package/src/reconnection-manager/index.ts +18 -9
- package/src/recording-controller/enums.ts +8 -0
- package/src/recording-controller/index.ts +315 -0
- package/src/recording-controller/util.ts +58 -0
- package/src/roap/request.ts +78 -73
- package/src/roap/turnDiscovery.ts +8 -6
- package/src/statsAnalyzer/index.ts +4 -4
- package/src/statsAnalyzer/mqaUtil.ts +6 -0
- package/test/unit/spec/breakouts/breakout.ts +119 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- package/test/unit/spec/breakouts/index.ts +293 -0
- package/test/unit/spec/locus-info/controlsUtils.js +20 -0
- package/test/unit/spec/locus-info/index.js +103 -0
- package/test/unit/spec/locus-info/selfConstant.js +25 -0
- package/test/unit/spec/locus-info/selfUtils.js +84 -0
- package/test/unit/spec/media/index.ts +1 -1
- package/test/unit/spec/media/properties.ts +9 -9
- package/test/unit/spec/meeting/effectsState.js +5 -1
- package/test/unit/spec/meeting/in-meeting-actions.ts +5 -1
- package/test/unit/spec/meeting/index.js +241 -50
- package/test/unit/spec/meeting/request.js +17 -0
- package/test/unit/spec/meeting/utils.js +28 -122
- package/test/unit/spec/meetings/index.js +1 -0
- package/test/unit/spec/member/util.js +26 -1
- package/test/unit/spec/multistream/mediaRequestManager.ts +312 -50
- package/test/unit/spec/multistream/receiveSlot.ts +6 -6
- package/test/unit/spec/multistream/receiveSlotManager.ts +13 -13
- package/test/unit/spec/multistream/remoteMedia.ts +2 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +354 -65
- package/test/unit/spec/reachability/index.ts +58 -24
- package/test/unit/spec/reconnection-manager/index.js +42 -13
- package/test/unit/spec/recording-controller/index.js +231 -0
- package/test/unit/spec/recording-controller/util.js +102 -0
- package/test/unit/spec/roap/index.ts +2 -1
- package/test/unit/spec/roap/request.ts +114 -0
- package/test/unit/spec/roap/turnDiscovery.ts +45 -29
- package/test/unit/spec/stats-analyzer/index.js +2 -2
- package/test/utils/webex-test-users.js +1 -0
- package/tsconfig.json +6 -0
- package/dist/media/internal-media-core-wrapper.js +0 -18
- package/dist/media/internal-media-core-wrapper.js.map +0 -1
- package/src/media/internal-media-core-wrapper.ts +0 -9
package/dist/meeting/index.js
CHANGED
|
@@ -54,8 +54,10 @@ var _reconnectionManager = _interopRequireDefault(require("../reconnection-manag
|
|
|
54
54
|
var _request = _interopRequireDefault(require("./request"));
|
|
55
55
|
var _index2 = _interopRequireDefault(require("../members/index"));
|
|
56
56
|
var _util = _interopRequireDefault(require("./util"));
|
|
57
|
-
var _util2 = _interopRequireDefault(require("../
|
|
57
|
+
var _util2 = _interopRequireDefault(require("../recording-controller/util"));
|
|
58
|
+
var _util3 = _interopRequireDefault(require("../media/util"));
|
|
58
59
|
var _transcription = _interopRequireDefault(require("../transcription"));
|
|
60
|
+
var _reactions = require("../reactions/reactions");
|
|
59
61
|
var _passwordError = _interopRequireDefault(require("../common/errors/password-error"));
|
|
60
62
|
var _captchaError = _interopRequireDefault(require("../common/errors/captcha-error"));
|
|
61
63
|
var _reconnection = _interopRequireDefault(require("../common/errors/reconnection"));
|
|
@@ -70,8 +72,10 @@ var _receiveSlotManager = require("../multistream/receiveSlotManager");
|
|
|
70
72
|
var _mediaRequestManager = require("../multistream/mediaRequestManager");
|
|
71
73
|
var _remoteMediaManager = require("../multistream/remoteMediaManager");
|
|
72
74
|
var _multistreamMedia = require("../multistream/multistreamMedia");
|
|
73
|
-
var
|
|
75
|
+
var _breakouts = _interopRequireDefault(require("../breakouts"));
|
|
74
76
|
var _inMeetingActions = _interopRequireDefault(require("./in-meeting-actions"));
|
|
77
|
+
var _constants3 = require("../reactions/constants");
|
|
78
|
+
var _recordingController = _interopRequireDefault(require("../recording-controller"));
|
|
75
79
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
76
80
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
77
81
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
@@ -399,6 +403,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
399
403
|
* @memberof Meeting
|
|
400
404
|
*/
|
|
401
405
|
function Meeting(attrs, _options) {
|
|
406
|
+
var _this$locusInfo, _this$locusInfo$links, _this$locusInfo$links2, _this$locusInfo$links3, _this$locusInfo2, _this$locusInfo2$full, _this$locusInfo3;
|
|
402
407
|
var _this;
|
|
403
408
|
(0, _classCallCheck2.default)(this, Meeting);
|
|
404
409
|
_this = _super.call(this, {}, _options);
|
|
@@ -411,6 +416,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
411
416
|
*/
|
|
412
417
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "attrs", void 0);
|
|
413
418
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "audio", void 0);
|
|
419
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "breakouts", void 0);
|
|
414
420
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "conversationUrl", void 0);
|
|
415
421
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "correlationId", void 0);
|
|
416
422
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "destination", void 0);
|
|
@@ -467,6 +473,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
467
473
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "queuedMediaUpdates", void 0);
|
|
468
474
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "recording", void 0);
|
|
469
475
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "remoteMediaManager", void 0);
|
|
476
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "recordingController", void 0);
|
|
470
477
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "requiredCaptcha", void 0);
|
|
471
478
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "receiveSlotManager", void 0);
|
|
472
479
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "shareStatus", void 0);
|
|
@@ -492,6 +499,31 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
492
499
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "selfId", void 0);
|
|
493
500
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", void 0);
|
|
494
501
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "namespace", _constants.MEETINGS);
|
|
502
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "processRelayEvent", function (e) {
|
|
503
|
+
switch (e.data.relayType) {
|
|
504
|
+
case _constants3.REACTION_RELAY_TYPES.REACTION:
|
|
505
|
+
if (
|
|
506
|
+
// @ts-ignore - config coming from registerPlugin
|
|
507
|
+
(_this.config.receiveReactions || options.receiveReactions) && _this.isReactionsSupported()) {
|
|
508
|
+
var _this$members$members = _this.members.membersCollection.get(e.data.sender.participantId),
|
|
509
|
+
name = _this$members$members.name;
|
|
510
|
+
var processedReaction = {
|
|
511
|
+
reaction: e.data.reaction,
|
|
512
|
+
sender: {
|
|
513
|
+
id: e.data.sender.participantId,
|
|
514
|
+
name: name
|
|
515
|
+
}
|
|
516
|
+
};
|
|
517
|
+
_triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
|
|
518
|
+
file: 'meeting/index',
|
|
519
|
+
function: 'join'
|
|
520
|
+
}, _constants.EVENT_TRIGGERS.MEETING_RECEIVE_REACTIONS, processedReaction);
|
|
521
|
+
}
|
|
522
|
+
break;
|
|
523
|
+
default:
|
|
524
|
+
break;
|
|
525
|
+
}
|
|
526
|
+
});
|
|
495
527
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getMediaStreams", function (mediaDirection) {
|
|
496
528
|
var audioVideo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.VIDEO_RESOLUTIONS[_this.mediaProperties.localQualityLevel];
|
|
497
529
|
var sharePreferences = arguments.length > 2 ? arguments[2] : undefined;
|
|
@@ -599,7 +631,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
599
631
|
};
|
|
600
632
|
_metrics.default.sendBehavioralMetric(metricName, data, metadata);
|
|
601
633
|
};
|
|
602
|
-
if (error instanceof _internalMediaCore.
|
|
634
|
+
if (error instanceof _internalMediaCore.Errors.SdpOfferCreationError) {
|
|
603
635
|
sendBehavioralMetric(_constants2.default.PEERCONNECTION_FAILURE, error, _this.id);
|
|
604
636
|
_metrics.default.postEvent({
|
|
605
637
|
event: _config.eventType.LOCAL_SDP_GENERATED,
|
|
@@ -609,7 +641,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
609
641
|
errors: [_metrics.default.generateErrorPayload(2001, true, _config.error.name.MEDIA_ENGINE, undefined)]
|
|
610
642
|
}
|
|
611
643
|
});
|
|
612
|
-
} else if (error instanceof _internalMediaCore.
|
|
644
|
+
} else if (error instanceof _internalMediaCore.Errors.SdpOfferHandlingError || error instanceof _internalMediaCore.Errors.SdpAnswerHandlingError) {
|
|
613
645
|
sendBehavioralMetric(_constants2.default.PEERCONNECTION_FAILURE, error, _this.id);
|
|
614
646
|
_metrics.default.postEvent({
|
|
615
647
|
event: _config.eventType.REMOTE_SDP_RECEIVED,
|
|
@@ -619,8 +651,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
619
651
|
errors: [_metrics.default.generateErrorPayload(2001, true, _config.error.name.MEDIA_ENGINE, undefined)]
|
|
620
652
|
}
|
|
621
653
|
});
|
|
622
|
-
} else if (error instanceof _internalMediaCore.
|
|
623
|
-
// this covers also the case of
|
|
654
|
+
} else if (error instanceof _internalMediaCore.Errors.SdpError) {
|
|
655
|
+
// this covers also the case of Errors.IceGatheringError which extends Errors.SdpError
|
|
624
656
|
sendBehavioralMetric(_constants2.default.INVALID_ICE_CANDIDATE, error, _this.id);
|
|
625
657
|
_metrics.default.postEvent({
|
|
626
658
|
event: _config.eventType.LOCAL_SDP_GENERATED,
|
|
@@ -633,16 +665,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
633
665
|
}
|
|
634
666
|
});
|
|
635
667
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setupMediaConnectionListeners", function () {
|
|
636
|
-
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.
|
|
668
|
+
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.Event.ROAP_STARTED, function () {
|
|
637
669
|
_this.isRoapInProgress = true;
|
|
638
670
|
});
|
|
639
|
-
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.
|
|
671
|
+
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.Event.ROAP_DONE, function () {
|
|
640
672
|
_this.mediaNegotiatedEvent();
|
|
641
673
|
_this.isRoapInProgress = false;
|
|
642
674
|
_this.processNextQueuedMediaUpdate();
|
|
643
675
|
});
|
|
644
|
-
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.
|
|
645
|
-
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.
|
|
676
|
+
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.Event.ROAP_FAILURE, _this.handleRoapFailure);
|
|
677
|
+
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.Event.ROAP_MESSAGE_TO_SEND, function (event) {
|
|
646
678
|
var LOG_HEADER = 'Meeting:index#setupMediaConnectionListeners.ROAP_MESSAGE_TO_SEND -->';
|
|
647
679
|
switch (event.roapMessage.messageType) {
|
|
648
680
|
case 'OK':
|
|
@@ -707,7 +739,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
707
739
|
});
|
|
708
740
|
break;
|
|
709
741
|
case 'ERROR':
|
|
710
|
-
if (event.roapMessage.errorType === _internalMediaCore.
|
|
742
|
+
if (event.roapMessage.errorType === _internalMediaCore.ErrorType.CONFLICT || event.roapMessage.errorType === _internalMediaCore.ErrorType.DOUBLECONFLICT) {
|
|
711
743
|
_metrics.default.sendBehavioralMetric(_constants2.default.ROAP_GLARE_CONDITION, {
|
|
712
744
|
correlation_id: _this.correlationId,
|
|
713
745
|
locus_id: _this.locusUrl.split('/').pop(),
|
|
@@ -732,22 +764,22 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
732
764
|
});
|
|
733
765
|
|
|
734
766
|
// eslint-disable-next-line no-param-reassign
|
|
735
|
-
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.
|
|
767
|
+
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.Event.REMOTE_TRACK_ADDED, function (event) {
|
|
736
768
|
_loggerProxy.default.logger.log("Meeting:index#setupMediaConnectionListeners --> REMOTE_TRACK_ADDED event received for webrtcMediaConnection: ".concat((0, _stringify.default)(event)));
|
|
737
769
|
var mediaTrack = event.track;
|
|
738
770
|
|
|
739
771
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
740
772
|
var eventType;
|
|
741
773
|
switch (event.type) {
|
|
742
|
-
case _internalMediaCore.
|
|
774
|
+
case _internalMediaCore.RemoteTrackType.AUDIO:
|
|
743
775
|
eventType = _constants.EVENT_TYPES.REMOTE_AUDIO;
|
|
744
776
|
_this.mediaProperties.setRemoteAudioTrack(event.track);
|
|
745
777
|
break;
|
|
746
|
-
case _internalMediaCore.
|
|
778
|
+
case _internalMediaCore.RemoteTrackType.VIDEO:
|
|
747
779
|
eventType = _constants.EVENT_TYPES.REMOTE_VIDEO;
|
|
748
780
|
_this.mediaProperties.setRemoteVideoTrack(event.track);
|
|
749
781
|
break;
|
|
750
|
-
case _internalMediaCore.
|
|
782
|
+
case _internalMediaCore.RemoteTrackType.SCREENSHARE_VIDEO:
|
|
751
783
|
if (event.track) {
|
|
752
784
|
eventType = _constants.EVENT_TYPES.REMOTE_SHARE;
|
|
753
785
|
_this.mediaProperties.setRemoteShare(event.track);
|
|
@@ -768,11 +800,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
768
800
|
function: 'setupRemoteTrackListener:Event.REMOTE_TRACK_ADDED'
|
|
769
801
|
}, _constants.EVENT_TRIGGERS.MEDIA_READY, {
|
|
770
802
|
type: eventType,
|
|
771
|
-
stream:
|
|
803
|
+
stream: _util3.default.createMediaStream([mediaTrack])
|
|
772
804
|
});
|
|
773
805
|
}
|
|
774
806
|
});
|
|
775
|
-
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.
|
|
807
|
+
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.Event.CONNECTION_STATE_CHANGED, function (event) {
|
|
776
808
|
var connectionFailed = function connectionFailed() {
|
|
777
809
|
// we know the media connection failed and browser will not attempt to recover it any more
|
|
778
810
|
// so reset the timer as it's not needed anymore, we want to reconnect immediately
|
|
@@ -799,13 +831,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
799
831
|
};
|
|
800
832
|
_loggerProxy.default.logger.info("Meeting:index#setupMediaConnectionListeners --> connection state changed to ".concat(event.state));
|
|
801
833
|
switch (event.state) {
|
|
802
|
-
case _internalMediaCore.
|
|
834
|
+
case _internalMediaCore.ConnectionState.Connecting:
|
|
803
835
|
_metrics.default.postEvent({
|
|
804
836
|
event: _config.eventType.ICE_START,
|
|
805
837
|
meeting: (0, _assertThisInitialized2.default)(_this)
|
|
806
838
|
});
|
|
807
839
|
break;
|
|
808
|
-
case _internalMediaCore.
|
|
840
|
+
case _internalMediaCore.ConnectionState.Connected:
|
|
809
841
|
_metrics.default.postEvent({
|
|
810
842
|
event: _config.eventType.ICE_END,
|
|
811
843
|
meeting: (0, _assertThisInitialized2.default)(_this)
|
|
@@ -817,27 +849,29 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
817
849
|
_this.setNetworkStatus(_constants.NETWORK_STATUS.CONNECTED);
|
|
818
850
|
_this.reconnectionManager.iceReconnected();
|
|
819
851
|
break;
|
|
820
|
-
case _internalMediaCore.
|
|
852
|
+
case _internalMediaCore.ConnectionState.Disconnected:
|
|
821
853
|
_this.setNetworkStatus(_constants.NETWORK_STATUS.DISCONNECTED);
|
|
822
854
|
_this.reconnectionManager.waitForIceReconnect().catch(function () {
|
|
823
855
|
_loggerProxy.default.logger.info('Meeting:index#setupMediaConnectionListeners --> state DISCONNECTED, automatic reconnection timed out.');
|
|
824
856
|
connectionFailed();
|
|
825
857
|
});
|
|
826
858
|
break;
|
|
827
|
-
case _internalMediaCore.
|
|
859
|
+
case _internalMediaCore.ConnectionState.Failed:
|
|
828
860
|
connectionFailed();
|
|
829
861
|
break;
|
|
830
862
|
default:
|
|
831
863
|
break;
|
|
832
864
|
}
|
|
833
865
|
});
|
|
834
|
-
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.
|
|
866
|
+
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.Event.ACTIVE_SPEAKERS_CHANGED, function (msg) {
|
|
835
867
|
_triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
|
|
836
868
|
file: 'meeting/index',
|
|
837
869
|
function: 'setupMediaConnectionListeners'
|
|
838
870
|
}, _constants.EVENT_TRIGGERS.ACTIVE_SPEAKER_CHANGED, {
|
|
839
871
|
seqNum: msg.seqNum,
|
|
840
|
-
memberIds: msg.csis
|
|
872
|
+
memberIds: msg.csis
|
|
873
|
+
// @ts-ignore
|
|
874
|
+
.map(function (csi) {
|
|
841
875
|
var _this$members$findMem;
|
|
842
876
|
return (_this$members$findMem = _this.members.findMemberByCsi(csi)) === null || _this$members$findMem === void 0 ? void 0 : _this$members$findMem.id;
|
|
843
877
|
}).filter(function (item) {
|
|
@@ -845,7 +879,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
845
879
|
})
|
|
846
880
|
});
|
|
847
881
|
});
|
|
848
|
-
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.
|
|
882
|
+
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.Event.VIDEO_SOURCES_COUNT_CHANGED, function (numTotalSources, numLiveSources) {
|
|
849
883
|
_triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
|
|
850
884
|
file: 'meeting/index',
|
|
851
885
|
function: 'setupMediaConnectionListeners'
|
|
@@ -854,7 +888,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
854
888
|
numLiveSources: numLiveSources
|
|
855
889
|
});
|
|
856
890
|
});
|
|
857
|
-
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.
|
|
891
|
+
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.Event.AUDIO_SOURCES_COUNT_CHANGED, function (numTotalSources, numLiveSources) {
|
|
858
892
|
_triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
|
|
859
893
|
file: 'meeting/index',
|
|
860
894
|
function: 'setupMediaConnectionListeners'
|
|
@@ -870,7 +904,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
870
904
|
// TODO: might have to send the same event to the developer
|
|
871
905
|
// Add ip address info if geo hint is present
|
|
872
906
|
// @ts-ignore fix type
|
|
873
|
-
options.data.intervalMetadata.peerReflexiveIP =
|
|
907
|
+
options.data.intervalMetadata.peerReflexiveIP =
|
|
908
|
+
// @ts-ignore
|
|
909
|
+
((_this$webex$meetings$ = _this.webex.meetings.geoHintInfo) === null || _this$webex$meetings$ === void 0 ? void 0 : _this$webex$meetings$.clientAddress) || options.data.intervalMetadata.peerReflexiveIP || _constants.MQA_STATS.DEFAULT_IP;
|
|
874
910
|
_metrics.default.postEvent({
|
|
875
911
|
event: _config.eventType.MEDIA_QUALITY,
|
|
876
912
|
meeting: (0, _assertThisInitialized2.default)(_this),
|
|
@@ -941,20 +977,20 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
941
977
|
pendingPromiseResolve = _this$queuedMediaUpda.pendingPromiseResolve,
|
|
942
978
|
pendingPromiseReject = _this$queuedMediaUpda.pendingPromiseReject,
|
|
943
979
|
mediaUpdateType = _this$queuedMediaUpda.mediaUpdateType,
|
|
944
|
-
|
|
980
|
+
_options2 = _this$queuedMediaUpda.options;
|
|
945
981
|
_loggerProxy.default.logger.log("Meeting:index#processNextQueuedMediaUpdate --> performing delayed media update type=".concat(mediaUpdateType));
|
|
946
982
|
switch (mediaUpdateType) {
|
|
947
983
|
case MEDIA_UPDATE_TYPE.ALL:
|
|
948
|
-
_this.updateMedia(
|
|
984
|
+
_this.updateMedia(_options2).then(pendingPromiseResolve, pendingPromiseReject);
|
|
949
985
|
break;
|
|
950
986
|
case MEDIA_UPDATE_TYPE.AUDIO:
|
|
951
|
-
_this.updateAudio(
|
|
987
|
+
_this.updateAudio(_options2).then(pendingPromiseResolve, pendingPromiseReject);
|
|
952
988
|
break;
|
|
953
989
|
case MEDIA_UPDATE_TYPE.VIDEO:
|
|
954
|
-
_this.updateVideo(
|
|
990
|
+
_this.updateVideo(_options2).then(pendingPromiseResolve, pendingPromiseReject);
|
|
955
991
|
break;
|
|
956
992
|
case MEDIA_UPDATE_TYPE.SHARE:
|
|
957
|
-
_this.updateShare(
|
|
993
|
+
_this.updateShare(_options2).then(pendingPromiseResolve, pendingPromiseReject);
|
|
958
994
|
break;
|
|
959
995
|
default:
|
|
960
996
|
_loggerProxy.default.logger.error("Peer-connection-manager:index#processNextQueuedMediaUpdate --> unsupported media update type ".concat(mediaUpdateType, " found in the queue"));
|
|
@@ -1081,28 +1117,58 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1081
1117
|
*/
|
|
1082
1118
|
// TODO: needs to be defined as a class
|
|
1083
1119
|
_this.meetingInfo = {};
|
|
1120
|
+
/**
|
|
1121
|
+
* @instance
|
|
1122
|
+
* @type {Breakouts}
|
|
1123
|
+
* @public
|
|
1124
|
+
* @memberof Meeting
|
|
1125
|
+
*/
|
|
1126
|
+
// @ts-ignore
|
|
1127
|
+
_this.breakouts = new _breakouts.default({}, {
|
|
1128
|
+
parent: _this.webex
|
|
1129
|
+
});
|
|
1084
1130
|
/**
|
|
1085
1131
|
* helper class for managing receive slots (for multistream media connections)
|
|
1086
1132
|
*/
|
|
1087
1133
|
_this.receiveSlotManager = new _receiveSlotManager.ReceiveSlotManager((0, _assertThisInitialized2.default)(_this));
|
|
1088
1134
|
/**
|
|
1089
|
-
*
|
|
1090
|
-
* All media requests sent out for
|
|
1135
|
+
* Object containing helper classes for managing media requests for audio/video/screenshare (for multistream media connections)
|
|
1136
|
+
* All multistream media requests sent out for this meeting have to go through them.
|
|
1091
1137
|
*/
|
|
1092
1138
|
_this.mediaRequestManagers = {
|
|
1093
|
-
|
|
1139
|
+
// @ts-ignore - config coming from registerPlugin
|
|
1140
|
+
audio: new _mediaRequestManager.MediaRequestManager(_this.config.degradationPreferences, function (mediaRequests) {
|
|
1094
1141
|
if (!_this.mediaProperties.webrtcMediaConnection) {
|
|
1095
1142
|
_loggerProxy.default.logger.warn('Meeting:index#mediaRequestManager --> trying to send audio media request before media connection was created');
|
|
1096
1143
|
return;
|
|
1097
1144
|
}
|
|
1098
|
-
_this.mediaProperties.webrtcMediaConnection.requestMedia(_internalMediaCore.
|
|
1145
|
+
_this.mediaProperties.webrtcMediaConnection.requestMedia(_internalMediaCore.MediaType.AudioMain, mediaRequests);
|
|
1099
1146
|
}),
|
|
1100
|
-
|
|
1147
|
+
// @ts-ignore - config coming from registerPlugin
|
|
1148
|
+
video: new _mediaRequestManager.MediaRequestManager(_this.config.degradationPreferences, function (mediaRequests) {
|
|
1101
1149
|
if (!_this.mediaProperties.webrtcMediaConnection) {
|
|
1102
1150
|
_loggerProxy.default.logger.warn('Meeting:index#mediaRequestManager --> trying to send video media request before media connection was created');
|
|
1103
1151
|
return;
|
|
1104
1152
|
}
|
|
1105
|
-
_this.mediaProperties.webrtcMediaConnection.requestMedia(_internalMediaCore.
|
|
1153
|
+
_this.mediaProperties.webrtcMediaConnection.requestMedia(_internalMediaCore.MediaType.VideoMain, mediaRequests);
|
|
1154
|
+
}),
|
|
1155
|
+
screenShareAudio: new _mediaRequestManager.MediaRequestManager(
|
|
1156
|
+
// @ts-ignore - config coming from registerPlugin
|
|
1157
|
+
_this.config.degradationPreferences, function (mediaRequests) {
|
|
1158
|
+
if (!_this.mediaProperties.webrtcMediaConnection) {
|
|
1159
|
+
_loggerProxy.default.logger.warn('Meeting:index#mediaRequestManager --> trying to send screenshare audio media request before media connection was created');
|
|
1160
|
+
return;
|
|
1161
|
+
}
|
|
1162
|
+
_this.mediaProperties.webrtcMediaConnection.requestMedia(_internalMediaCore.MediaType.AudioSlides, mediaRequests);
|
|
1163
|
+
}),
|
|
1164
|
+
screenShareVideo: new _mediaRequestManager.MediaRequestManager(
|
|
1165
|
+
// @ts-ignore - config coming from registerPlugin
|
|
1166
|
+
_this.config.degradationPreferences, function (mediaRequests) {
|
|
1167
|
+
if (!_this.mediaProperties.webrtcMediaConnection) {
|
|
1168
|
+
_loggerProxy.default.logger.warn('Meeting:index#mediaRequestManager --> trying to send screenshare video media request before media connection was created');
|
|
1169
|
+
return;
|
|
1170
|
+
}
|
|
1171
|
+
_this.mediaProperties.webrtcMediaConnection.requestMedia(_internalMediaCore.MediaType.VideoSlides, mediaRequests);
|
|
1106
1172
|
})
|
|
1107
1173
|
};
|
|
1108
1174
|
/**
|
|
@@ -1115,8 +1181,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1115
1181
|
locusUrl: attrs.locus && attrs.locus.url,
|
|
1116
1182
|
receiveSlotManager: _this.receiveSlotManager,
|
|
1117
1183
|
mediaRequestManagers: _this.mediaRequestManagers
|
|
1118
|
-
|
|
1119
|
-
|
|
1184
|
+
},
|
|
1185
|
+
// @ts-ignore - Fix type
|
|
1186
|
+
{
|
|
1120
1187
|
parent: _this.webex
|
|
1121
1188
|
});
|
|
1122
1189
|
/**
|
|
@@ -1421,6 +1488,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1421
1488
|
*/
|
|
1422
1489
|
// @ts-ignore - Fix type
|
|
1423
1490
|
_this.locusInfo = new _locusInfo.default(_this.updateMeetingObject.bind((0, _assertThisInitialized2.default)(_this)), _this.webex, _this.id);
|
|
1491
|
+
|
|
1424
1492
|
// We had to add listeners first before setting up the locus instance
|
|
1425
1493
|
/**
|
|
1426
1494
|
* @instance
|
|
@@ -1523,6 +1591,20 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1523
1591
|
* @memberof Meeting
|
|
1524
1592
|
*/
|
|
1525
1593
|
_this.keepAliveTimerId = null;
|
|
1594
|
+
|
|
1595
|
+
/**
|
|
1596
|
+
* The class that helps to control recording functions: start, stop, pause, resume, etc
|
|
1597
|
+
* @instance
|
|
1598
|
+
* @type {RecordingController}
|
|
1599
|
+
* @public
|
|
1600
|
+
* @memberof Meeting
|
|
1601
|
+
*/
|
|
1602
|
+
_this.recordingController = new _recordingController.default(_this.meetingRequest, {
|
|
1603
|
+
serviceUrl: (_this$locusInfo = _this.locusInfo) === null || _this$locusInfo === void 0 ? void 0 : (_this$locusInfo$links = _this$locusInfo.links) === null || _this$locusInfo$links === void 0 ? void 0 : (_this$locusInfo$links2 = _this$locusInfo$links.services) === null || _this$locusInfo$links2 === void 0 ? void 0 : (_this$locusInfo$links3 = _this$locusInfo$links2.record) === null || _this$locusInfo$links3 === void 0 ? void 0 : _this$locusInfo$links3.url,
|
|
1604
|
+
sessionId: (_this$locusInfo2 = _this.locusInfo) === null || _this$locusInfo2 === void 0 ? void 0 : (_this$locusInfo2$full = _this$locusInfo2.fullState) === null || _this$locusInfo2$full === void 0 ? void 0 : _this$locusInfo2$full.sessionId,
|
|
1605
|
+
locusUrl: (_this$locusInfo3 = _this.locusInfo) === null || _this$locusInfo3 === void 0 ? void 0 : _this$locusInfo3.url,
|
|
1606
|
+
displayHints: []
|
|
1607
|
+
});
|
|
1526
1608
|
_this.setUpLocusInfoListeners();
|
|
1527
1609
|
_this.locusInfo.init(attrs.locus ? attrs.locus : {});
|
|
1528
1610
|
_this.hasJoinedOnce = false;
|
|
@@ -1600,8 +1682,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1600
1682
|
_context.next = 33;
|
|
1601
1683
|
break;
|
|
1602
1684
|
}
|
|
1603
|
-
// @ts-ignore
|
|
1604
|
-
|
|
1685
|
+
_loggerProxy.default.logger.info( // @ts-ignore
|
|
1686
|
+
"Meeting:index#fetchMeetingInfo --> Info Unable to fetch meeting info for ".concat(this.destination, " - password required (code=").concat(_context.t0 === null || _context.t0 === void 0 ? void 0 : (_err$body = _context.t0.body) === null || _err$body === void 0 ? void 0 : _err$body.code, ")."));
|
|
1605
1687
|
|
|
1606
1688
|
// when wbxappapi requires password it still populates partial meeting info in the response
|
|
1607
1689
|
if (_context.t0.meetingInfo) {
|
|
@@ -1623,8 +1705,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1623
1705
|
_context.next = 41;
|
|
1624
1706
|
break;
|
|
1625
1707
|
}
|
|
1626
|
-
// @ts-ignore
|
|
1627
|
-
|
|
1708
|
+
_loggerProxy.default.logger.info( // @ts-ignore
|
|
1709
|
+
"Meeting:index#fetchMeetingInfo --> Info Unable to fetch meeting info for ".concat(this.destination, " - captcha required (code=").concat(_context.t0 === null || _context.t0 === void 0 ? void 0 : (_err$body2 = _context.t0.body) === null || _err$body2 === void 0 ? void 0 : _err$body2.code, ")."));
|
|
1628
1710
|
this.meetingInfoFailureReason = this.requiredCaptcha ? _constants.MEETING_INFO_FAILURE_REASON.WRONG_CAPTCHA : _constants.MEETING_INFO_FAILURE_REASON.WRONG_PASSWORD;
|
|
1629
1711
|
if (_context.t0.isPasswordRequired) {
|
|
1630
1712
|
this.passwordStatus = _constants.PASSWORD_STATUS.REQUIRED;
|
|
@@ -1699,7 +1781,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1699
1781
|
// we have to pass the wbxappapi hostname as the siteFullName parameter
|
|
1700
1782
|
var _URL = new URL(this.requiredCaptcha.refreshURL),
|
|
1701
1783
|
hostname = _URL.hostname;
|
|
1702
|
-
return this.meetingRequest
|
|
1784
|
+
return this.meetingRequest
|
|
1785
|
+
// @ts-ignore
|
|
1786
|
+
.refreshCaptcha({
|
|
1703
1787
|
captchaRefreshUrl: "".concat(this.requiredCaptcha.refreshURL, "&siteFullName=").concat(hostname),
|
|
1704
1788
|
captchaId: this.requiredCaptcha.captchaId
|
|
1705
1789
|
}).then(function (response) {
|
|
@@ -1724,6 +1808,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1724
1808
|
// meeting update listeners
|
|
1725
1809
|
this.setUpLocusInfoSelfListener();
|
|
1726
1810
|
this.setUpLocusInfoMeetingListener();
|
|
1811
|
+
this.setUpLocusServicesListener();
|
|
1727
1812
|
// members update listeners
|
|
1728
1813
|
this.setUpLocusFullStateListener();
|
|
1729
1814
|
this.setUpLocusUrlListener();
|
|
@@ -1736,6 +1821,37 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1736
1821
|
this.setUpLocusInfoMeetingInfoListener();
|
|
1737
1822
|
this.setUpLocusInfoAssignHostListener();
|
|
1738
1823
|
this.setUpLocusInfoMediaInactiveListener();
|
|
1824
|
+
this.setUpBreakoutsListener();
|
|
1825
|
+
}
|
|
1826
|
+
|
|
1827
|
+
/**
|
|
1828
|
+
* Set up the listeners for breakouts
|
|
1829
|
+
* @returns {undefined}
|
|
1830
|
+
* @private
|
|
1831
|
+
* @memberof Meeting
|
|
1832
|
+
*/
|
|
1833
|
+
}, {
|
|
1834
|
+
key: "setUpBreakoutsListener",
|
|
1835
|
+
value: function setUpBreakoutsListener() {
|
|
1836
|
+
var _this4 = this;
|
|
1837
|
+
this.breakouts.on(_constants.BREAKOUTS.EVENTS.BREAKOUTS_CLOSING, function () {
|
|
1838
|
+
_triggerProxy.default.trigger(_this4, {
|
|
1839
|
+
file: 'meeting/index',
|
|
1840
|
+
function: 'setUpBreakoutsListener'
|
|
1841
|
+
}, _constants.EVENT_TRIGGERS.MEETING_BREAKOUTS_CLOSING);
|
|
1842
|
+
});
|
|
1843
|
+
this.breakouts.on(_constants.BREAKOUTS.EVENTS.MESSAGE, function (messageEvent) {
|
|
1844
|
+
_triggerProxy.default.trigger(_this4, {
|
|
1845
|
+
file: 'meeting/index',
|
|
1846
|
+
function: 'setUpBreakoutsListener'
|
|
1847
|
+
}, _constants.EVENT_TRIGGERS.MEETING_BREAKOUTS_MESSAGE, messageEvent);
|
|
1848
|
+
});
|
|
1849
|
+
this.breakouts.on(_constants.BREAKOUTS.EVENTS.MEMBERS_UPDATE, function () {
|
|
1850
|
+
_triggerProxy.default.trigger(_this4, {
|
|
1851
|
+
file: 'meeting/index',
|
|
1852
|
+
function: 'setUpBreakoutsListener'
|
|
1853
|
+
}, _constants.EVENT_TRIGGERS.MEETING_BREAKOUTS_UPDATE);
|
|
1854
|
+
});
|
|
1739
1855
|
}
|
|
1740
1856
|
|
|
1741
1857
|
/**
|
|
@@ -1747,30 +1863,30 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1747
1863
|
}, {
|
|
1748
1864
|
key: "setUpLocusInfoMediaInactiveListener",
|
|
1749
1865
|
value: function setUpLocusInfoMediaInactiveListener() {
|
|
1750
|
-
var
|
|
1866
|
+
var _this5 = this;
|
|
1751
1867
|
// User gets kicked off the meeting due to inactivity or user did a refresh
|
|
1752
1868
|
this.locusInfo.on(_constants.EVENTS.DISCONNECT_DUE_TO_INACTIVITY, function (res) {
|
|
1753
1869
|
// https:// jira-eng-gpk2.cisco.com/jira/browse/SPARK-240520
|
|
1754
1870
|
// TODO: send custom parameter explaining why the inactivity happened
|
|
1755
1871
|
// refresh , no media or network got dsconnected or something else
|
|
1756
1872
|
_metrics.default.sendBehavioralMetric(_constants2.default.DISCONNECT_DUE_TO_INACTIVITY, {
|
|
1757
|
-
correlation_id:
|
|
1758
|
-
locus_id:
|
|
1873
|
+
correlation_id: _this5.correlationId,
|
|
1874
|
+
locus_id: _this5.locusId
|
|
1759
1875
|
});
|
|
1760
1876
|
|
|
1761
1877
|
// Upload logs on media inactivity
|
|
1762
1878
|
// Normally media should not be inactive
|
|
1763
|
-
_triggerProxy.default.trigger(
|
|
1879
|
+
_triggerProxy.default.trigger(_this5, {
|
|
1764
1880
|
file: 'meeting/index',
|
|
1765
1881
|
function: 'setUpLocusInfoMediaInactiveListener'
|
|
1766
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
1882
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this5);
|
|
1767
1883
|
_loggerProxy.default.logger.error("Meeting:index#setUpLocusInfoMediaInactiveListener --> Meeting disconnected due to inactivity: ".concat(res.reason));
|
|
1768
1884
|
|
|
1769
1885
|
// @ts-ignore - config coming from registerPlugin
|
|
1770
|
-
if (
|
|
1771
|
-
|
|
1886
|
+
if (_this5.config.reconnection.autoRejoin) {
|
|
1887
|
+
_this5.reconnect();
|
|
1772
1888
|
} else {
|
|
1773
|
-
_triggerProxy.default.trigger(
|
|
1889
|
+
_triggerProxy.default.trigger(_this5, {
|
|
1774
1890
|
file: 'meeting/index',
|
|
1775
1891
|
function: 'setUpLocusInfoMediaInactiveListener'
|
|
1776
1892
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_LEFT, res.reason);
|
|
@@ -1787,16 +1903,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1787
1903
|
}, {
|
|
1788
1904
|
key: "setUpLocusInfoAssignHostListener",
|
|
1789
1905
|
value: function setUpLocusInfoAssignHostListener() {
|
|
1790
|
-
var
|
|
1906
|
+
var _this6 = this;
|
|
1791
1907
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_CAN_ASSIGN_HOST, function (payload) {
|
|
1792
|
-
var changed =
|
|
1908
|
+
var changed = _this6.inMeetingActions.set({
|
|
1793
1909
|
canAssignHost: payload.canAssignHost
|
|
1794
1910
|
});
|
|
1795
1911
|
if (changed) {
|
|
1796
|
-
_triggerProxy.default.trigger(
|
|
1912
|
+
_triggerProxy.default.trigger(_this6, {
|
|
1797
1913
|
file: 'meeting/index',
|
|
1798
1914
|
function: 'setUpLocusInfoAssignHostListener'
|
|
1799
|
-
}, _constants.EVENT_TRIGGERS.MEETING_ACTIONS_UPDATE,
|
|
1915
|
+
}, _constants.EVENT_TRIGGERS.MEETING_ACTIONS_UPDATE, _this6.inMeetingActions.get());
|
|
1800
1916
|
}
|
|
1801
1917
|
});
|
|
1802
1918
|
}
|
|
@@ -1810,9 +1926,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1810
1926
|
}, {
|
|
1811
1927
|
key: "setUpLocusFullStateListener",
|
|
1812
1928
|
value: function setUpLocusFullStateListener() {
|
|
1813
|
-
var
|
|
1929
|
+
var _this7 = this;
|
|
1814
1930
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.FULL_STATE_MEETING_STATE_CHANGE, function (payload) {
|
|
1815
|
-
_triggerProxy.default.trigger(
|
|
1931
|
+
_triggerProxy.default.trigger(_this7, {
|
|
1816
1932
|
file: 'meeting/index',
|
|
1817
1933
|
function: 'setUpLocusFullStateListener'
|
|
1818
1934
|
}, _constants.EVENT_TRIGGERS.MEETING_STATE_CHANGE, {
|
|
@@ -1820,7 +1936,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1820
1936
|
});
|
|
1821
1937
|
});
|
|
1822
1938
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.FULL_STATE_TYPE_UPDATE, function (payload) {
|
|
1823
|
-
|
|
1939
|
+
_this7.members.locusFullStateTypeUpdate(payload);
|
|
1824
1940
|
});
|
|
1825
1941
|
}
|
|
1826
1942
|
|
|
@@ -2009,15 +2125,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2009
2125
|
}, {
|
|
2010
2126
|
key: "setUpLocusSelfListener",
|
|
2011
2127
|
value: function setUpLocusSelfListener() {
|
|
2012
|
-
var
|
|
2128
|
+
var _this8 = this;
|
|
2013
2129
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_SELF, function (payload) {
|
|
2014
|
-
|
|
2015
|
-
|
|
2130
|
+
_this8.members.locusSelfUpdate(payload);
|
|
2131
|
+
_this8.pstnUpdate(payload);
|
|
2016
2132
|
|
|
2017
2133
|
// If user moved to a JOINED state and there is a pending floor grant trigger it
|
|
2018
|
-
if (
|
|
2019
|
-
|
|
2020
|
-
|
|
2134
|
+
if (_this8.floorGrantPending && payload.newSelf.state === _constants.MEETING_STATE.STATES.JOINED) {
|
|
2135
|
+
_this8.requestScreenShareFloor().then(function () {
|
|
2136
|
+
_this8.floorGrantPending = false;
|
|
2021
2137
|
});
|
|
2022
2138
|
}
|
|
2023
2139
|
});
|
|
@@ -2033,14 +2149,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2033
2149
|
}, {
|
|
2034
2150
|
key: "pstnUpdate",
|
|
2035
2151
|
value: function pstnUpdate(payload) {
|
|
2036
|
-
var
|
|
2152
|
+
var _this9 = this;
|
|
2037
2153
|
if (this.locusInfo.self) {
|
|
2038
2154
|
var _payload$newSelf, _payload$newSelf2;
|
|
2039
2155
|
var dialInPstnDevice = (_payload$newSelf = payload.newSelf) === null || _payload$newSelf === void 0 ? void 0 : _payload$newSelf.pstnDevices.find(function (device) {
|
|
2040
|
-
return device.url ===
|
|
2156
|
+
return device.url === _this9.dialInUrl;
|
|
2041
2157
|
});
|
|
2042
2158
|
var dialOutPstnDevice = (_payload$newSelf2 = payload.newSelf) === null || _payload$newSelf2 === void 0 ? void 0 : _payload$newSelf2.pstnDevices.find(function (device) {
|
|
2043
|
-
return device.url ===
|
|
2159
|
+
return device.url === _this9.dialOutUrl;
|
|
2044
2160
|
});
|
|
2045
2161
|
var changed = false;
|
|
2046
2162
|
if (dialInPstnDevice) {
|
|
@@ -2088,9 +2204,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2088
2204
|
}, {
|
|
2089
2205
|
key: "setUpLocusHostListener",
|
|
2090
2206
|
value: function setUpLocusHostListener() {
|
|
2091
|
-
var
|
|
2207
|
+
var _this10 = this;
|
|
2092
2208
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_HOST, function (payload) {
|
|
2093
|
-
|
|
2209
|
+
_this10.members.locusHostUpdate(payload);
|
|
2094
2210
|
});
|
|
2095
2211
|
}
|
|
2096
2212
|
|
|
@@ -2105,9 +2221,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2105
2221
|
}, {
|
|
2106
2222
|
key: "setUpLocusParticipantsListener",
|
|
2107
2223
|
value: function setUpLocusParticipantsListener() {
|
|
2108
|
-
var
|
|
2224
|
+
var _this11 = this;
|
|
2109
2225
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_PARTICIPANTS, function (payload) {
|
|
2110
|
-
|
|
2226
|
+
_this11.members.locusParticipantsUpdate(payload);
|
|
2111
2227
|
});
|
|
2112
2228
|
}
|
|
2113
2229
|
|
|
@@ -2132,7 +2248,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2132
2248
|
}, {
|
|
2133
2249
|
key: "setupLocusControlsListener",
|
|
2134
2250
|
value: function setupLocusControlsListener() {
|
|
2135
|
-
var
|
|
2251
|
+
var _this12 = this;
|
|
2136
2252
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_RECORDING_UPDATED, function (_ref5) {
|
|
2137
2253
|
var state = _ref5.state,
|
|
2138
2254
|
modifiedBy = _ref5.modifiedBy,
|
|
@@ -2157,19 +2273,19 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2157
2273
|
}
|
|
2158
2274
|
|
|
2159
2275
|
// `RESUMED` state should be converted to `RECORDING` after triggering the event
|
|
2160
|
-
|
|
2276
|
+
_this12.recording = {
|
|
2161
2277
|
state: state === _constants.RECORDING_STATE.RESUMED ? _constants.RECORDING_STATE.RECORDING : state,
|
|
2162
2278
|
modifiedBy: modifiedBy,
|
|
2163
2279
|
lastModified: lastModified
|
|
2164
2280
|
};
|
|
2165
|
-
_triggerProxy.default.trigger(
|
|
2281
|
+
_triggerProxy.default.trigger(_this12, {
|
|
2166
2282
|
file: 'meeting/index',
|
|
2167
2283
|
function: 'setupLocusControlsListener'
|
|
2168
|
-
}, event,
|
|
2284
|
+
}, event, _this12.recording);
|
|
2169
2285
|
});
|
|
2170
2286
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_CONTAINER_UPDATED, function (_ref6) {
|
|
2171
2287
|
var meetingContainerUrl = _ref6.meetingContainerUrl;
|
|
2172
|
-
_triggerProxy.default.trigger(
|
|
2288
|
+
_triggerProxy.default.trigger(_this12, {
|
|
2173
2289
|
file: 'meeting/index',
|
|
2174
2290
|
function: 'setupLocusControlsListener'
|
|
2175
2291
|
}, _constants.EVENT_TRIGGERS.MEETING_MEETING_CONTAINER_UPDATE, {
|
|
@@ -2180,10 +2296,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2180
2296
|
var caption = _ref7.caption,
|
|
2181
2297
|
transcribing = _ref7.transcribing;
|
|
2182
2298
|
// @ts-ignore - config coming from registerPlugin
|
|
2183
|
-
if (transcribing &&
|
|
2184
|
-
|
|
2185
|
-
} else if (!transcribing &&
|
|
2186
|
-
_triggerProxy.default.trigger(
|
|
2299
|
+
if (transcribing && _this12.transcription && _this12.config.receiveTranscription) {
|
|
2300
|
+
_this12.receiveTranscription();
|
|
2301
|
+
} else if (!transcribing && _this12.transcription) {
|
|
2302
|
+
_triggerProxy.default.trigger(_this12, {
|
|
2187
2303
|
file: 'meeting/index',
|
|
2188
2304
|
function: 'setupLocusControlsListener'
|
|
2189
2305
|
}, _constants.EVENT_TRIGGERS.MEETING_STOPPED_RECEIVING_TRANSCRIPTION, {
|
|
@@ -2192,9 +2308,17 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2192
2308
|
});
|
|
2193
2309
|
}
|
|
2194
2310
|
});
|
|
2195
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.
|
|
2196
|
-
var
|
|
2197
|
-
|
|
2311
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_BREAKOUT_UPDATED, function (_ref8) {
|
|
2312
|
+
var breakout = _ref8.breakout;
|
|
2313
|
+
_this12.breakouts.updateBreakout(breakout);
|
|
2314
|
+
_triggerProxy.default.trigger(_this12, {
|
|
2315
|
+
file: 'meeting/index',
|
|
2316
|
+
function: 'setupLocusControlsListener'
|
|
2317
|
+
}, _constants.EVENT_TRIGGERS.MEETING_BREAKOUTS_UPDATE);
|
|
2318
|
+
});
|
|
2319
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED, function (_ref9) {
|
|
2320
|
+
var entryExitTone = _ref9.entryExitTone;
|
|
2321
|
+
_triggerProxy.default.trigger(_this12, {
|
|
2198
2322
|
file: 'meeting/index',
|
|
2199
2323
|
function: 'setupLocusControlsListener'
|
|
2200
2324
|
}, _constants.EVENT_TRIGGERS.MEETING_ENTRY_EXIT_TONE_UPDATE, {
|
|
@@ -2214,7 +2338,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2214
2338
|
}, {
|
|
2215
2339
|
key: "setUpLocusMediaSharesListener",
|
|
2216
2340
|
value: function setUpLocusMediaSharesListener() {
|
|
2217
|
-
var
|
|
2341
|
+
var _this13 = this;
|
|
2218
2342
|
// Will get triggered on local and remote share
|
|
2219
2343
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_MEDIA_SHARES, function (payload) {
|
|
2220
2344
|
var _payload$previous, _payload$previous2;
|
|
@@ -2228,18 +2352,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2228
2352
|
// (this happens when we steal presentation from remote)
|
|
2229
2353
|
return;
|
|
2230
2354
|
}
|
|
2231
|
-
var newShareStatus =
|
|
2355
|
+
var newShareStatus = _this13.shareStatus;
|
|
2232
2356
|
|
|
2233
2357
|
// REMOTE - check if remote started sharing
|
|
2234
|
-
if (
|
|
2358
|
+
if (_this13.selfId !== contentShare.beneficiaryId && contentShare.disposition === _constants.FLOOR_ACTION.GRANTED) {
|
|
2235
2359
|
// CONTENT - sharing content remote
|
|
2236
2360
|
newShareStatus = _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE;
|
|
2237
2361
|
}
|
|
2238
2362
|
// LOCAL - check if we started sharing content
|
|
2239
|
-
else if (
|
|
2240
|
-
var
|
|
2241
|
-
if (((
|
|
2242
|
-
|
|
2363
|
+
else if (_this13.selfId === contentShare.beneficiaryId && contentShare.disposition === _constants.FLOOR_ACTION.GRANTED) {
|
|
2364
|
+
var _this13$mediaProperti;
|
|
2365
|
+
if (((_this13$mediaProperti = _this13.mediaProperties.shareTrack) === null || _this13$mediaProperti === void 0 ? void 0 : _this13$mediaProperti.readyState) === 'ended') {
|
|
2366
|
+
_this13.stopShare({
|
|
2243
2367
|
skipSignalingCheck: true
|
|
2244
2368
|
}).catch(function (error) {
|
|
2245
2369
|
_loggerProxy.default.logger.log('Meeting:index#setUpLocusMediaSharesListener --> Error stopping share: ', error);
|
|
@@ -2260,22 +2384,22 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2260
2384
|
else if ((previousContentShare && contentShare.disposition === _constants.FLOOR_ACTION.RELEASED || contentShare.disposition === null) && (previousWhiteboardShare && whiteboardShare.disposition === _constants.FLOOR_ACTION.RELEASED || whiteboardShare.disposition === null)) {
|
|
2261
2385
|
newShareStatus = _constants.SHARE_STATUS.NO_SHARE;
|
|
2262
2386
|
}
|
|
2263
|
-
if (newShareStatus !==
|
|
2264
|
-
var oldShareStatus =
|
|
2387
|
+
if (newShareStatus !== _this13.shareStatus) {
|
|
2388
|
+
var oldShareStatus = _this13.shareStatus;
|
|
2265
2389
|
|
|
2266
2390
|
// update our state before we send out any notifications
|
|
2267
|
-
|
|
2391
|
+
_this13.shareStatus = newShareStatus;
|
|
2268
2392
|
|
|
2269
2393
|
// send out "stop" notifications for the old state
|
|
2270
2394
|
switch (oldShareStatus) {
|
|
2271
2395
|
case _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE:
|
|
2272
|
-
_triggerProxy.default.trigger(
|
|
2396
|
+
_triggerProxy.default.trigger(_this13, {
|
|
2273
2397
|
file: 'meetings/index',
|
|
2274
2398
|
function: 'remoteShare'
|
|
2275
2399
|
}, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_REMOTE);
|
|
2276
2400
|
break;
|
|
2277
2401
|
case _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE:
|
|
2278
|
-
_triggerProxy.default.trigger(
|
|
2402
|
+
_triggerProxy.default.trigger(_this13, {
|
|
2279
2403
|
file: 'meeting/index',
|
|
2280
2404
|
function: 'localShare'
|
|
2281
2405
|
}, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_LOCAL, {
|
|
@@ -2283,7 +2407,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2283
2407
|
});
|
|
2284
2408
|
break;
|
|
2285
2409
|
case _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE:
|
|
2286
|
-
_triggerProxy.default.trigger(
|
|
2410
|
+
_triggerProxy.default.trigger(_this13, {
|
|
2287
2411
|
file: 'meeting/index',
|
|
2288
2412
|
function: 'stopWhiteboardShare'
|
|
2289
2413
|
}, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_WHITEBOARD);
|
|
@@ -2299,9 +2423,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2299
2423
|
switch (newShareStatus) {
|
|
2300
2424
|
case _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE:
|
|
2301
2425
|
{
|
|
2302
|
-
var
|
|
2426
|
+
var _this13$mediaProperti2;
|
|
2303
2427
|
var sendStartedSharingRemote = function sendStartedSharingRemote() {
|
|
2304
|
-
_triggerProxy.default.trigger(
|
|
2428
|
+
_triggerProxy.default.trigger(_this13, {
|
|
2305
2429
|
file: 'meetings/index',
|
|
2306
2430
|
function: 'remoteShare'
|
|
2307
2431
|
}, _constants.EVENT_TRIGGERS.MEETING_STARTED_SHARING_REMOTE, {
|
|
@@ -2310,12 +2434,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2310
2434
|
};
|
|
2311
2435
|
|
|
2312
2436
|
// if a remote participant is stealing the presentation from us
|
|
2313
|
-
if (!((
|
|
2437
|
+
if (!((_this13$mediaProperti2 = _this13.mediaProperties.mediaDirection) !== null && _this13$mediaProperti2 !== void 0 && _this13$mediaProperti2.sendShare) || oldShareStatus === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE) {
|
|
2314
2438
|
sendStartedSharingRemote();
|
|
2315
2439
|
} else {
|
|
2316
|
-
|
|
2440
|
+
_this13.updateShare({
|
|
2317
2441
|
sendShare: false,
|
|
2318
|
-
receiveShare:
|
|
2442
|
+
receiveShare: _this13.mediaProperties.mediaDirection.receiveShare
|
|
2319
2443
|
}).finally(function () {
|
|
2320
2444
|
sendStartedSharingRemote();
|
|
2321
2445
|
});
|
|
@@ -2323,17 +2447,17 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2323
2447
|
break;
|
|
2324
2448
|
}
|
|
2325
2449
|
case _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE:
|
|
2326
|
-
_triggerProxy.default.trigger(
|
|
2450
|
+
_triggerProxy.default.trigger(_this13, {
|
|
2327
2451
|
file: 'meeting/index',
|
|
2328
2452
|
function: 'share'
|
|
2329
2453
|
}, _constants.EVENT_TRIGGERS.MEETING_STARTED_SHARING_LOCAL);
|
|
2330
2454
|
_metrics.default.postEvent({
|
|
2331
2455
|
event: _config.eventType.LOCAL_SHARE_FLOOR_GRANTED,
|
|
2332
|
-
meeting:
|
|
2456
|
+
meeting: _this13
|
|
2333
2457
|
});
|
|
2334
2458
|
break;
|
|
2335
2459
|
case _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE:
|
|
2336
|
-
_triggerProxy.default.trigger(
|
|
2460
|
+
_triggerProxy.default.trigger(_this13, {
|
|
2337
2461
|
file: 'meeting/index',
|
|
2338
2462
|
function: 'startWhiteboardShare'
|
|
2339
2463
|
}, _constants.EVENT_TRIGGERS.MEETING_STARTED_SHARING_WHITEBOARD, {
|
|
@@ -2342,7 +2466,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2342
2466
|
});
|
|
2343
2467
|
_metrics.default.postEvent({
|
|
2344
2468
|
event: _config.eventType.WHITEBOARD_SHARE_FLOOR_GRANTED,
|
|
2345
|
-
meeting:
|
|
2469
|
+
meeting: _this13
|
|
2346
2470
|
});
|
|
2347
2471
|
break;
|
|
2348
2472
|
case _constants.SHARE_STATUS.NO_SHARE:
|
|
@@ -2351,21 +2475,21 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2351
2475
|
default:
|
|
2352
2476
|
break;
|
|
2353
2477
|
}
|
|
2354
|
-
|
|
2478
|
+
_this13.members.locusMediaSharesUpdate(payload);
|
|
2355
2479
|
} else if (newShareStatus === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE) {
|
|
2356
2480
|
// if we got here, then some remote participant has stolen
|
|
2357
2481
|
// the presentation from another remote participant
|
|
2358
|
-
_triggerProxy.default.trigger(
|
|
2482
|
+
_triggerProxy.default.trigger(_this13, {
|
|
2359
2483
|
file: 'meetings/index',
|
|
2360
2484
|
function: 'remoteShare'
|
|
2361
2485
|
}, _constants.EVENT_TRIGGERS.MEETING_STARTED_SHARING_REMOTE, {
|
|
2362
2486
|
memberId: contentShare.beneficiaryId
|
|
2363
2487
|
});
|
|
2364
|
-
|
|
2488
|
+
_this13.members.locusMediaSharesUpdate(payload);
|
|
2365
2489
|
} else if (newShareStatus === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE) {
|
|
2366
2490
|
// if we got here, then some remote participant has stolen
|
|
2367
2491
|
// the presentation from another remote participant
|
|
2368
|
-
_triggerProxy.default.trigger(
|
|
2492
|
+
_triggerProxy.default.trigger(_this13, {
|
|
2369
2493
|
file: 'meeting/index',
|
|
2370
2494
|
function: 'startWhiteboardShare'
|
|
2371
2495
|
}, _constants.EVENT_TRIGGERS.MEETING_STARTED_SHARING_WHITEBOARD, {
|
|
@@ -2374,9 +2498,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2374
2498
|
});
|
|
2375
2499
|
_metrics.default.postEvent({
|
|
2376
2500
|
event: _config.eventType.WHITEBOARD_SHARE_FLOOR_GRANTED,
|
|
2377
|
-
meeting:
|
|
2501
|
+
meeting: _this13
|
|
2378
2502
|
});
|
|
2379
|
-
|
|
2503
|
+
_this13.members.locusMediaSharesUpdate(payload);
|
|
2380
2504
|
}
|
|
2381
2505
|
});
|
|
2382
2506
|
}
|
|
@@ -2391,12 +2515,34 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2391
2515
|
}, {
|
|
2392
2516
|
key: "setUpLocusUrlListener",
|
|
2393
2517
|
value: function setUpLocusUrlListener() {
|
|
2394
|
-
var
|
|
2518
|
+
var _this14 = this;
|
|
2395
2519
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_URL, function (payload) {
|
|
2396
|
-
var
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2520
|
+
var _this14$locusUrl;
|
|
2521
|
+
_this14.members.locusUrlUpdate(payload);
|
|
2522
|
+
_this14.breakouts.locusUrlUpdate(payload);
|
|
2523
|
+
_this14.locusUrl = payload;
|
|
2524
|
+
_this14.locusId = (_this14$locusUrl = _this14.locusUrl) === null || _this14$locusUrl === void 0 ? void 0 : _this14$locusUrl.split('/').pop();
|
|
2525
|
+
_this14.recordingController.setLocusUrl(_this14.locusUrl);
|
|
2526
|
+
});
|
|
2527
|
+
}
|
|
2528
|
+
|
|
2529
|
+
/**
|
|
2530
|
+
* Set up the locus info service link listener
|
|
2531
|
+
* update the locusInfo for recording controller
|
|
2532
|
+
* does not currently re-emit the event as it's internal only
|
|
2533
|
+
* payload is unused
|
|
2534
|
+
* @returns {undefined}
|
|
2535
|
+
* @private
|
|
2536
|
+
* @memberof Meeting
|
|
2537
|
+
*/
|
|
2538
|
+
}, {
|
|
2539
|
+
key: "setUpLocusServicesListener",
|
|
2540
|
+
value: function setUpLocusServicesListener() {
|
|
2541
|
+
var _this15 = this;
|
|
2542
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.LINKS_SERVICES, function (payload) {
|
|
2543
|
+
var _payload$services, _payload$services$rec, _this15$locusInfo, _this15$locusInfo$ful;
|
|
2544
|
+
_this15.recordingController.setServiceUrl(payload === null || payload === void 0 ? void 0 : (_payload$services = payload.services) === null || _payload$services === void 0 ? void 0 : (_payload$services$rec = _payload$services.record) === null || _payload$services$rec === void 0 ? void 0 : _payload$services$rec.url);
|
|
2545
|
+
_this15.recordingController.setSessionId((_this15$locusInfo = _this15.locusInfo) === null || _this15$locusInfo === void 0 ? void 0 : (_this15$locusInfo$ful = _this15$locusInfo.fullState) === null || _this15$locusInfo$ful === void 0 ? void 0 : _this15$locusInfo$ful.sessionId);
|
|
2400
2546
|
});
|
|
2401
2547
|
}
|
|
2402
2548
|
|
|
@@ -2409,10 +2555,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2409
2555
|
}, {
|
|
2410
2556
|
key: "setUpLocusInfoMeetingInfoListener",
|
|
2411
2557
|
value: function setUpLocusInfoMeetingInfoListener() {
|
|
2412
|
-
var
|
|
2558
|
+
var _this16 = this;
|
|
2413
2559
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_LOCKED, function (payload) {
|
|
2414
2560
|
if (payload) {
|
|
2415
|
-
_triggerProxy.default.trigger(
|
|
2561
|
+
_triggerProxy.default.trigger(_this16, {
|
|
2416
2562
|
file: 'meeting/index',
|
|
2417
2563
|
function: 'setUpLocusInfoMeetingInfoListener'
|
|
2418
2564
|
}, _constants.EVENT_TRIGGERS.MEETING_LOCKED, {
|
|
@@ -2422,7 +2568,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2422
2568
|
});
|
|
2423
2569
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_UNLOCKED, function (payload) {
|
|
2424
2570
|
if (payload) {
|
|
2425
|
-
_triggerProxy.default.trigger(
|
|
2571
|
+
_triggerProxy.default.trigger(_this16, {
|
|
2426
2572
|
file: 'meeting/index',
|
|
2427
2573
|
function: 'setUpLocusInfoMeetingInfoListener'
|
|
2428
2574
|
}, _constants.EVENT_TRIGGERS.MEETING_UNLOCKED, {
|
|
@@ -2432,15 +2578,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2432
2578
|
});
|
|
2433
2579
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, function (payload) {
|
|
2434
2580
|
if (payload && payload.info) {
|
|
2435
|
-
var changed =
|
|
2581
|
+
var changed = _this16.inMeetingActions.set({
|
|
2436
2582
|
canInviteNewParticipants: _util.default.canInviteNewParticipants(payload.info.userDisplayHints),
|
|
2437
2583
|
canAdmitParticipant: _util.default.canAdmitParticipant(payload.info.userDisplayHints),
|
|
2438
2584
|
canLock: _util.default.canUserLock(payload.info.userDisplayHints),
|
|
2439
2585
|
canUnlock: _util.default.canUserUnlock(payload.info.userDisplayHints),
|
|
2440
|
-
canStartRecording:
|
|
2441
|
-
canStopRecording:
|
|
2442
|
-
canPauseRecording:
|
|
2443
|
-
canResumeRecording:
|
|
2586
|
+
canStartRecording: _util2.default.canUserStart(payload.info.userDisplayHints),
|
|
2587
|
+
canStopRecording: _util2.default.canUserStop(payload.info.userDisplayHints),
|
|
2588
|
+
canPauseRecording: _util2.default.canUserPause(payload.info.userDisplayHints),
|
|
2589
|
+
canResumeRecording: _util2.default.canUserResume(payload.info.userDisplayHints),
|
|
2444
2590
|
canRaiseHand: _util.default.canUserRaiseHand(payload.info.userDisplayHints),
|
|
2445
2591
|
canLowerAllHands: _util.default.canUserLowerAllHands(payload.info.userDisplayHints),
|
|
2446
2592
|
canLowerSomeoneElsesHand: _util.default.canUserLowerSomeoneElsesHand(payload.info.userDisplayHints),
|
|
@@ -2453,15 +2599,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2453
2599
|
canViewCaptionPanel: _util.default.canViewCaptionPanel(payload.info.userDisplayHints),
|
|
2454
2600
|
isRealTimeTranslationEnabled: _util.default.isRealTimeTranslationEnabled(payload.info.userDisplayHints),
|
|
2455
2601
|
canSelectSpokenLanguages: _util.default.canSelectSpokenLanguages(payload.info.userDisplayHints),
|
|
2456
|
-
waitingForOthersToJoin: _util.default.waitingForOthersToJoin(payload.info.userDisplayHints)
|
|
2602
|
+
waitingForOthersToJoin: _util.default.waitingForOthersToJoin(payload.info.userDisplayHints),
|
|
2603
|
+
canEnableReactions: _util.default.canEnableReactions(_this16.inMeetingActions.canEnableReactions, payload.info.userDisplayHints),
|
|
2604
|
+
canSendReactions: _util.default.canSendReactions(_this16.inMeetingActions.canSendReactions, payload.info.userDisplayHints)
|
|
2457
2605
|
});
|
|
2606
|
+
_this16.recordingController.setDisplayHints(payload.info.userDisplayHints);
|
|
2458
2607
|
if (changed) {
|
|
2459
|
-
_triggerProxy.default.trigger(
|
|
2608
|
+
_triggerProxy.default.trigger(_this16, {
|
|
2460
2609
|
file: 'meeting/index',
|
|
2461
2610
|
function: 'setUpLocusInfoMeetingInfoListener'
|
|
2462
|
-
}, _constants.EVENT_TRIGGERS.MEETING_ACTIONS_UPDATE,
|
|
2611
|
+
}, _constants.EVENT_TRIGGERS.MEETING_ACTIONS_UPDATE, _this16.inMeetingActions.get());
|
|
2463
2612
|
}
|
|
2464
|
-
|
|
2613
|
+
_this16.handleDataChannelUrlChange(payload.info.datachannelUrl);
|
|
2465
2614
|
}
|
|
2466
2615
|
});
|
|
2467
2616
|
}
|
|
@@ -2474,12 +2623,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2474
2623
|
}, {
|
|
2475
2624
|
key: "handleDataChannelUrlChange",
|
|
2476
2625
|
value: function handleDataChannelUrlChange(datachannelUrl) {
|
|
2477
|
-
var
|
|
2626
|
+
var _this17 = this;
|
|
2627
|
+
// @ts-ignore - config coming from registerPlugin
|
|
2478
2628
|
if (datachannelUrl && this.config.enableAutomaticLLM) {
|
|
2479
2629
|
// Defer this as updateLLMConnection relies upon this.locusInfo.url which is only set
|
|
2480
2630
|
// after the MEETING_INFO_UPDATED callback finishes
|
|
2481
2631
|
(0, _defer2.default)(function () {
|
|
2482
|
-
|
|
2632
|
+
_this17.updateLLMConnection();
|
|
2483
2633
|
});
|
|
2484
2634
|
}
|
|
2485
2635
|
}
|
|
@@ -2493,10 +2643,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2493
2643
|
}, {
|
|
2494
2644
|
key: "setUpLocusEmbeddedAppsListener",
|
|
2495
2645
|
value: function setUpLocusEmbeddedAppsListener() {
|
|
2496
|
-
var
|
|
2646
|
+
var _this18 = this;
|
|
2497
2647
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.EMBEDDED_APPS_UPDATED, function (embeddedApps) {
|
|
2498
2648
|
if (embeddedApps) {
|
|
2499
|
-
_triggerProxy.default.trigger(
|
|
2649
|
+
_triggerProxy.default.trigger(_this18, {
|
|
2500
2650
|
file: 'meeting/index',
|
|
2501
2651
|
function: 'setUpLocusEmbeddedAppsListener'
|
|
2502
2652
|
}, _constants.EVENT_TRIGGERS.MEETING_EMBEDDED_APPS_UPDATE, embeddedApps);
|
|
@@ -2513,11 +2663,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2513
2663
|
}, {
|
|
2514
2664
|
key: "setUpLocusInfoSelfListener",
|
|
2515
2665
|
value: function setUpLocusInfoSelfListener() {
|
|
2516
|
-
var
|
|
2666
|
+
var _this19 = this;
|
|
2517
2667
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.LOCAL_UNMUTE_REQUIRED, function (payload) {
|
|
2518
|
-
if (
|
|
2519
|
-
|
|
2520
|
-
_triggerProxy.default.trigger(
|
|
2668
|
+
if (_this19.audio) {
|
|
2669
|
+
_this19.audio.handleServerLocalUnmuteRequired(_this19);
|
|
2670
|
+
_triggerProxy.default.trigger(_this19, {
|
|
2521
2671
|
file: 'meeting/index',
|
|
2522
2672
|
function: 'setUpLocusInfoSelfListener'
|
|
2523
2673
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_UNMUTED_BY_OTHERS, {
|
|
@@ -2527,15 +2677,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2527
2677
|
});
|
|
2528
2678
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_REMOTE_MUTE_STATUS_UPDATED, function (payload) {
|
|
2529
2679
|
if (payload) {
|
|
2530
|
-
var
|
|
2531
|
-
if (
|
|
2532
|
-
|
|
2680
|
+
var _this19$audio;
|
|
2681
|
+
if (_this19.audio) {
|
|
2682
|
+
_this19.audio.handleServerRemoteMuteUpdate(payload.muted, payload.unmuteAllowed);
|
|
2533
2683
|
}
|
|
2534
2684
|
// with "mute on entry" server will send us remote mute even if we don't have media configured,
|
|
2535
2685
|
// so if being muted by others, always send the notification,
|
|
2536
2686
|
// but if being unmuted, only send it if we are also locally unmuted
|
|
2537
|
-
if (payload.muted || !((
|
|
2538
|
-
_triggerProxy.default.trigger(
|
|
2687
|
+
if (payload.muted || !((_this19$audio = _this19.audio) !== null && _this19$audio !== void 0 && _this19$audio.isMuted())) {
|
|
2688
|
+
_triggerProxy.default.trigger(_this19, {
|
|
2539
2689
|
file: 'meeting/index',
|
|
2540
2690
|
function: 'setUpLocusInfoSelfListener'
|
|
2541
2691
|
}, payload.muted ? _constants.EVENT_TRIGGERS.MEETING_SELF_MUTED_BY_OTHERS : _constants.EVENT_TRIGGERS.MEETING_SELF_UNMUTED_BY_OTHERS, {
|
|
@@ -2545,7 +2695,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2545
2695
|
}
|
|
2546
2696
|
});
|
|
2547
2697
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.LOCAL_UNMUTE_REQUESTED, function (payload) {
|
|
2548
|
-
_triggerProxy.default.trigger(
|
|
2698
|
+
_triggerProxy.default.trigger(_this19, {
|
|
2549
2699
|
file: 'meeting/index',
|
|
2550
2700
|
function: 'setUpLocusInfoSelfListener'
|
|
2551
2701
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_REQUESTED_TO_UNMUTE, {
|
|
@@ -2554,8 +2704,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2554
2704
|
});
|
|
2555
2705
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_UNADMITTED_GUEST, function (payload) {
|
|
2556
2706
|
if (payload) {
|
|
2557
|
-
|
|
2558
|
-
_triggerProxy.default.trigger(
|
|
2707
|
+
_this19.startKeepAlive();
|
|
2708
|
+
_triggerProxy.default.trigger(_this19, {
|
|
2559
2709
|
file: 'meeting/index',
|
|
2560
2710
|
function: 'setUpLocusInfoSelfListener'
|
|
2561
2711
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_LOBBY_WAITING, {
|
|
@@ -2563,14 +2713,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2563
2713
|
});
|
|
2564
2714
|
_metrics.default.postEvent({
|
|
2565
2715
|
event: _config.eventType.LOBBY_ENTERED,
|
|
2566
|
-
meeting:
|
|
2716
|
+
meeting: _this19
|
|
2567
2717
|
});
|
|
2568
2718
|
}
|
|
2569
2719
|
});
|
|
2570
2720
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ADMITTED_GUEST, function (payload) {
|
|
2571
|
-
|
|
2721
|
+
_this19.stopKeepAlive();
|
|
2572
2722
|
if (payload) {
|
|
2573
|
-
_triggerProxy.default.trigger(
|
|
2723
|
+
_triggerProxy.default.trigger(_this19, {
|
|
2574
2724
|
file: 'meeting/index',
|
|
2575
2725
|
function: 'setUpLocusInfoSelfListener'
|
|
2576
2726
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_GUEST_ADMITTED, {
|
|
@@ -2578,7 +2728,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2578
2728
|
});
|
|
2579
2729
|
_metrics.default.postEvent({
|
|
2580
2730
|
event: _config.eventType.LOBBY_EXITED,
|
|
2581
|
-
meeting:
|
|
2731
|
+
meeting: _this19
|
|
2582
2732
|
});
|
|
2583
2733
|
}
|
|
2584
2734
|
});
|
|
@@ -2586,42 +2736,49 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2586
2736
|
// @ts-ignore - check if MEDIA_INACTIVITY exists
|
|
2587
2737
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEDIA_INACTIVITY, function () {
|
|
2588
2738
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_MEDIA_INACTIVE, {
|
|
2589
|
-
correlation_id:
|
|
2590
|
-
locus_id:
|
|
2739
|
+
correlation_id: _this19.correlationId,
|
|
2740
|
+
locus_id: _this19.locusId
|
|
2591
2741
|
});
|
|
2592
|
-
|
|
2742
|
+
_this19.reconnect();
|
|
2593
2743
|
});
|
|
2594
2744
|
|
|
2595
2745
|
// There is two stats for mute one is the actual media being sent or received
|
|
2596
2746
|
// The second on is if the audio is muted, we need to tell the statsAnalyzer when
|
|
2597
2747
|
// the audio is muted or the user is not willing to send media
|
|
2598
2748
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEDIA_STATUS_CHANGE, function (status) {
|
|
2599
|
-
if (
|
|
2600
|
-
var
|
|
2601
|
-
|
|
2749
|
+
if (_this19.statsAnalyzer) {
|
|
2750
|
+
var _this19$mediaProperti, _this19$audio2, _this19$mediaProperti2, _this19$video, _this19$mediaProperti3, _this19$mediaProperti4, _this19$mediaProperti5, _this19$mediaProperti6;
|
|
2751
|
+
_this19.statsAnalyzer.updateMediaStatus({
|
|
2602
2752
|
actual: status,
|
|
2603
2753
|
expected: {
|
|
2604
2754
|
// We need to check what should be the actual direction of media
|
|
2605
|
-
sendAudio: ((
|
|
2606
|
-
sendVideo: ((
|
|
2607
|
-
sendShare: (
|
|
2608
|
-
receiveAudio: (
|
|
2609
|
-
receiveVideo: (
|
|
2610
|
-
receiveShare: (
|
|
2755
|
+
sendAudio: ((_this19$mediaProperti = _this19.mediaProperties.mediaDirection) === null || _this19$mediaProperti === void 0 ? void 0 : _this19$mediaProperti.sendAudio) && !((_this19$audio2 = _this19.audio) !== null && _this19$audio2 !== void 0 && _this19$audio2.isMuted()),
|
|
2756
|
+
sendVideo: ((_this19$mediaProperti2 = _this19.mediaProperties.mediaDirection) === null || _this19$mediaProperti2 === void 0 ? void 0 : _this19$mediaProperti2.sendVideo) && !((_this19$video = _this19.video) !== null && _this19$video !== void 0 && _this19$video.isMuted()),
|
|
2757
|
+
sendShare: (_this19$mediaProperti3 = _this19.mediaProperties.mediaDirection) === null || _this19$mediaProperti3 === void 0 ? void 0 : _this19$mediaProperti3.sendShare,
|
|
2758
|
+
receiveAudio: (_this19$mediaProperti4 = _this19.mediaProperties.mediaDirection) === null || _this19$mediaProperti4 === void 0 ? void 0 : _this19$mediaProperti4.receiveAudio,
|
|
2759
|
+
receiveVideo: (_this19$mediaProperti5 = _this19.mediaProperties.mediaDirection) === null || _this19$mediaProperti5 === void 0 ? void 0 : _this19$mediaProperti5.receiveVideo,
|
|
2760
|
+
receiveShare: (_this19$mediaProperti6 = _this19.mediaProperties.mediaDirection) === null || _this19$mediaProperti6 === void 0 ? void 0 : _this19$mediaProperti6.receiveShare
|
|
2611
2761
|
}
|
|
2612
2762
|
});
|
|
2613
2763
|
}
|
|
2614
2764
|
});
|
|
2615
2765
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_CANNOT_VIEW_PARTICIPANT_LIST_CHANGE, function (payload) {
|
|
2616
|
-
_triggerProxy.default.trigger(
|
|
2766
|
+
_triggerProxy.default.trigger(_this19, {
|
|
2617
2767
|
file: 'meeting/index',
|
|
2618
2768
|
function: 'setUpLocusInfoSelfListener'
|
|
2619
2769
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_CANNOT_VIEW_PARTICIPANT_LIST, {
|
|
2620
2770
|
payload: payload
|
|
2621
2771
|
});
|
|
2622
2772
|
});
|
|
2773
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_MEETING_BREAKOUTS_CHANGED, function (payload) {
|
|
2774
|
+
_this19.breakouts.updateBreakoutSessions(payload);
|
|
2775
|
+
_triggerProxy.default.trigger(_this19, {
|
|
2776
|
+
file: 'meeting/index',
|
|
2777
|
+
function: 'setUpLocusInfoSelfListener'
|
|
2778
|
+
}, _constants.EVENT_TRIGGERS.MEETING_BREAKOUTS_UPDATE);
|
|
2779
|
+
});
|
|
2623
2780
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_IS_SHARING_BLOCKED_CHANGE, function (payload) {
|
|
2624
|
-
_triggerProxy.default.trigger(
|
|
2781
|
+
_triggerProxy.default.trigger(_this19, {
|
|
2625
2782
|
file: 'meeting/index',
|
|
2626
2783
|
function: 'setUpLocusInfoSelfListener'
|
|
2627
2784
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_IS_SHARING_BLOCKED, {
|
|
@@ -2639,17 +2796,17 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2639
2796
|
}, {
|
|
2640
2797
|
key: "setUpLocusInfoMeetingListener",
|
|
2641
2798
|
value: function setUpLocusInfoMeetingListener() {
|
|
2642
|
-
var
|
|
2799
|
+
var _this20 = this;
|
|
2643
2800
|
this.locusInfo.on(_constants.EVENTS.REMOTE_RESPONSE, function (payload) {
|
|
2644
|
-
|
|
2801
|
+
_this20.meetingFiniteStateMachine.remote(payload);
|
|
2645
2802
|
if (payload.remoteDeclined) {
|
|
2646
|
-
|
|
2803
|
+
_this20.leave({
|
|
2647
2804
|
reason: payload.reason
|
|
2648
2805
|
}).then(function () {
|
|
2649
2806
|
_loggerProxy.default.logger.info('Meeting:index#setUpLocusInfoMeetingListener --> REMOTE_RESPONSE. Attempting to leave meeting.');
|
|
2650
2807
|
}).catch(function (error) {
|
|
2651
2808
|
// @ts-ignore
|
|
2652
|
-
_loggerProxy.default.logger.error("Meeting:index#setUpLocusInfoMeetingListener --> REMOTE_RESPONSE. Issue with leave for meeting, meeting still in collection: ".concat(
|
|
2809
|
+
_loggerProxy.default.logger.error("Meeting:index#setUpLocusInfoMeetingListener --> REMOTE_RESPONSE. Issue with leave for meeting, meeting still in collection: ".concat(_this20, ", error: ").concat(error));
|
|
2653
2810
|
});
|
|
2654
2811
|
}
|
|
2655
2812
|
});
|
|
@@ -2657,10 +2814,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2657
2814
|
// if self state is NOT left
|
|
2658
2815
|
|
|
2659
2816
|
// TODO: Handle sharing and wireless sharing when meeting end
|
|
2660
|
-
if (
|
|
2661
|
-
if (
|
|
2662
|
-
|
|
2663
|
-
|
|
2817
|
+
if (_this20.wirelessShare) {
|
|
2818
|
+
if (_this20.mediaProperties.shareTrack) {
|
|
2819
|
+
_this20.mediaProperties.shareTrack.onended = null;
|
|
2820
|
+
_this20.mediaProperties.shareTrack.stop();
|
|
2664
2821
|
}
|
|
2665
2822
|
}
|
|
2666
2823
|
// when multiple WEB deviceType join with same user
|
|
@@ -2674,23 +2831,23 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2674
2831
|
if (payload.shouldLeave) {
|
|
2675
2832
|
// TODO: We should do cleaning of meeting object if the shouldLeave: false because there might be meeting object which we are not cleaning
|
|
2676
2833
|
|
|
2677
|
-
|
|
2834
|
+
_this20.leave({
|
|
2678
2835
|
reason: payload.reason
|
|
2679
2836
|
}).then(function () {
|
|
2680
2837
|
_loggerProxy.default.logger.warn('Meeting:index#setUpLocusInfoMeetingListener --> DESTROY_MEETING. The meeting has been left, but has not been destroyed, you should see a later event for leave.');
|
|
2681
2838
|
}).catch(function (error) {
|
|
2682
2839
|
// @ts-ignore
|
|
2683
|
-
_loggerProxy.default.logger.error("Meeting:index#setUpLocusInfoMeetingListener --> DESTROY_MEETING. Issue with leave for meeting, meeting still in collection: ".concat(
|
|
2840
|
+
_loggerProxy.default.logger.error("Meeting:index#setUpLocusInfoMeetingListener --> DESTROY_MEETING. Issue with leave for meeting, meeting still in collection: ".concat(_this20, ", error: ").concat(error));
|
|
2684
2841
|
});
|
|
2685
2842
|
} else {
|
|
2686
2843
|
_loggerProxy.default.logger.info('Meeting:index#setUpLocusInfoMeetingListener --> MEETING_REMOVED_REASON', payload.reason);
|
|
2687
|
-
_util.default.cleanUp(
|
|
2688
|
-
_triggerProxy.default.trigger(
|
|
2844
|
+
_util.default.cleanUp(_this20);
|
|
2845
|
+
_triggerProxy.default.trigger(_this20, {
|
|
2689
2846
|
file: 'meeting/index',
|
|
2690
2847
|
function: 'setUpLocusInfoMeetingListener'
|
|
2691
2848
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
|
2692
2849
|
reason: payload.reason,
|
|
2693
|
-
meetingId:
|
|
2850
|
+
meetingId: _this20.id
|
|
2694
2851
|
});
|
|
2695
2852
|
}
|
|
2696
2853
|
});
|
|
@@ -2707,13 +2864,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2707
2864
|
}, {
|
|
2708
2865
|
key: "updateMeetingObject",
|
|
2709
2866
|
value: function updateMeetingObject(object) {
|
|
2710
|
-
var
|
|
2867
|
+
var _this21 = this;
|
|
2711
2868
|
// Validate if these are valid meeting object property
|
|
2712
2869
|
// TODO: add a check to make sure the value passed in the constructor
|
|
2713
2870
|
// is not changed by any delta event
|
|
2714
2871
|
if (object && (0, _keys.default)(object).length) {
|
|
2715
2872
|
(0, _keys.default)(object).forEach(function (key) {
|
|
2716
|
-
|
|
2873
|
+
_this21[key] = object[key];
|
|
2717
2874
|
});
|
|
2718
2875
|
}
|
|
2719
2876
|
}
|
|
@@ -2921,7 +3078,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2921
3078
|
this.conversationUrl = ((_locusMeetingObject = locusMeetingObject) === null || _locusMeetingObject === void 0 ? void 0 : _locusMeetingObject.conversationUrl) || (webexMeetingInfo === null || webexMeetingInfo === void 0 ? void 0 : webexMeetingInfo.conversationUrl) || this.conversationUrl;
|
|
2922
3079
|
this.locusUrl = ((_locusMeetingObject2 = locusMeetingObject) === null || _locusMeetingObject2 === void 0 ? void 0 : _locusMeetingObject2.url) || (webexMeetingInfo === null || webexMeetingInfo === void 0 ? void 0 : webexMeetingInfo.locusUrl) || this.locusUrl;
|
|
2923
3080
|
// @ts-ignore - config coming from registerPlugin
|
|
2924
|
-
this.setSipUri(
|
|
3081
|
+
this.setSipUri(
|
|
3082
|
+
// @ts-ignore
|
|
3083
|
+
this.config.experimental.enableUnifiedMeetings ? ((_locusMeetingObject3 = locusMeetingObject) === null || _locusMeetingObject3 === void 0 ? void 0 : _locusMeetingObject3.info.sipUri) || (webexMeetingInfo === null || webexMeetingInfo === void 0 ? void 0 : webexMeetingInfo.sipUrl) : ((_locusMeetingObject4 = locusMeetingObject) === null || _locusMeetingObject4 === void 0 ? void 0 : _locusMeetingObject4.info.sipUri) || (webexMeetingInfo === null || webexMeetingInfo === void 0 ? void 0 : webexMeetingInfo.sipMeetingUri) || this.sipUri);
|
|
2925
3084
|
// @ts-ignore - config coming from registerPlugin
|
|
2926
3085
|
if (this.config.experimental.enableUnifiedMeetings) {
|
|
2927
3086
|
var _locusMeetingObject5;
|
|
@@ -3074,7 +3233,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3074
3233
|
}, {
|
|
3075
3234
|
key: "closeRemoteTracks",
|
|
3076
3235
|
value: function closeRemoteTracks() {
|
|
3077
|
-
var
|
|
3236
|
+
var _this22 = this;
|
|
3078
3237
|
var _this$mediaProperties = this.mediaProperties,
|
|
3079
3238
|
remoteAudioTrack = _this$mediaProperties.remoteAudioTrack,
|
|
3080
3239
|
remoteVideoTrack = _this$mediaProperties.remoteVideoTrack,
|
|
@@ -3088,7 +3247,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3088
3247
|
*/
|
|
3089
3248
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
3090
3249
|
var triggerMediaStoppedEvent = function triggerMediaStoppedEvent(mediaType) {
|
|
3091
|
-
_triggerProxy.default.trigger(
|
|
3250
|
+
_triggerProxy.default.trigger(_this22, {
|
|
3092
3251
|
file: 'meeting/index',
|
|
3093
3252
|
function: 'closeRemoteTracks'
|
|
3094
3253
|
}, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
|
|
@@ -3132,7 +3291,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3132
3291
|
function: 'setLocalTracks'
|
|
3133
3292
|
}, _constants.EVENT_TRIGGERS.MEDIA_READY, {
|
|
3134
3293
|
type: _constants.EVENT_TYPES.LOCAL,
|
|
3135
|
-
stream:
|
|
3294
|
+
stream: _util3.default.createMediaStream([this.mediaProperties.audioTrack, this.mediaProperties.videoTrack])
|
|
3136
3295
|
});
|
|
3137
3296
|
}
|
|
3138
3297
|
|
|
@@ -3236,7 +3395,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3236
3395
|
}, {
|
|
3237
3396
|
key: "setLocalShareTrack",
|
|
3238
3397
|
value: function setLocalShareTrack(localShare) {
|
|
3239
|
-
var
|
|
3398
|
+
var _this23 = this;
|
|
3240
3399
|
var settings = null;
|
|
3241
3400
|
if (localShare) {
|
|
3242
3401
|
this.mediaProperties.setLocalShareTrack(_util.default.getTrack(localShare).videoTrack);
|
|
@@ -3254,7 +3413,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3254
3413
|
_loggerProxy.default.logger.log('Meeting:index#setLocalShareTrack --> Screen settings.', (0, _stringify.default)(this.mediaProperties.mediaSettings.screen));
|
|
3255
3414
|
}
|
|
3256
3415
|
contentTracks.onended = function () {
|
|
3257
|
-
return
|
|
3416
|
+
return _this23.handleShareTrackEnded(localShare);
|
|
3258
3417
|
};
|
|
3259
3418
|
_triggerProxy.default.trigger(this, {
|
|
3260
3419
|
file: 'meeting/index',
|
|
@@ -3276,7 +3435,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3276
3435
|
}, {
|
|
3277
3436
|
key: "closeLocalStream",
|
|
3278
3437
|
value: function closeLocalStream() {
|
|
3279
|
-
var
|
|
3438
|
+
var _this24 = this;
|
|
3280
3439
|
var _this$mediaProperties2 = this.mediaProperties,
|
|
3281
3440
|
audioTrack = _this$mediaProperties2.audioTrack,
|
|
3282
3441
|
videoTrack = _this$mediaProperties2.videoTrack;
|
|
@@ -3288,7 +3447,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3288
3447
|
|
|
3289
3448
|
// triggers event for audio and video stop , sometime either audio or video one of them exists
|
|
3290
3449
|
if (audioStopped || videoStopped) {
|
|
3291
|
-
_triggerProxy.default.trigger(
|
|
3450
|
+
_triggerProxy.default.trigger(_this24, {
|
|
3292
3451
|
file: 'meeting/index',
|
|
3293
3452
|
function: 'closeLocalStream'
|
|
3294
3453
|
}, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
|
|
@@ -3310,11 +3469,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3310
3469
|
}, {
|
|
3311
3470
|
key: "closeLocalShare",
|
|
3312
3471
|
value: function closeLocalShare() {
|
|
3313
|
-
var
|
|
3472
|
+
var _this25 = this;
|
|
3314
3473
|
var track = this.mediaProperties.shareTrack;
|
|
3315
3474
|
return _media.default.stopTracks(track).then(function () {
|
|
3316
3475
|
if (track && track.readyState === _constants.ENDED) {
|
|
3317
|
-
_triggerProxy.default.trigger(
|
|
3476
|
+
_triggerProxy.default.trigger(_this25, {
|
|
3318
3477
|
file: 'meeting/index',
|
|
3319
3478
|
function: 'closeLocalShare'
|
|
3320
3479
|
}, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
|
|
@@ -3360,7 +3519,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3360
3519
|
}, {
|
|
3361
3520
|
key: "setMercuryListener",
|
|
3362
3521
|
value: function setMercuryListener() {
|
|
3363
|
-
var
|
|
3522
|
+
var _this26 = this;
|
|
3364
3523
|
// Client will have a socket manager and handle reconnecting to mercury, when we reconnect to mercury
|
|
3365
3524
|
// if the meeting has active peer connections, it should try to reconnect.
|
|
3366
3525
|
// @ts-ignore
|
|
@@ -3368,16 +3527,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3368
3527
|
_loggerProxy.default.logger.info('Meeting:index#setMercuryListener --> Web socket online');
|
|
3369
3528
|
|
|
3370
3529
|
// Only send restore event when it was disconnected before and for connected later
|
|
3371
|
-
if (!
|
|
3530
|
+
if (!_this26.hasWebsocketConnected) {
|
|
3372
3531
|
_metrics.default.postEvent({
|
|
3373
3532
|
event: _config.eventType.MERCURY_CONNECTION_RESTORED,
|
|
3374
|
-
meeting:
|
|
3533
|
+
meeting: _this26
|
|
3375
3534
|
});
|
|
3376
3535
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_RESTORED, {
|
|
3377
|
-
correlation_id:
|
|
3536
|
+
correlation_id: _this26.correlationId
|
|
3378
3537
|
});
|
|
3379
3538
|
}
|
|
3380
|
-
|
|
3539
|
+
_this26.hasWebsocketConnected = true;
|
|
3381
3540
|
});
|
|
3382
3541
|
|
|
3383
3542
|
// @ts-ignore
|
|
@@ -3385,10 +3544,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3385
3544
|
_loggerProxy.default.logger.error('Meeting:index#setMercuryListener --> Web socket offline');
|
|
3386
3545
|
_metrics.default.postEvent({
|
|
3387
3546
|
event: _config.eventType.MERCURY_CONNECTION_LOST,
|
|
3388
|
-
meeting:
|
|
3547
|
+
meeting: _this26
|
|
3389
3548
|
});
|
|
3390
3549
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_FAILURE, {
|
|
3391
|
-
correlation_id:
|
|
3550
|
+
correlation_id: _this26.correlationId
|
|
3392
3551
|
});
|
|
3393
3552
|
});
|
|
3394
3553
|
}
|
|
@@ -3458,7 +3617,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3458
3617
|
}, {
|
|
3459
3618
|
key: "muteAudio",
|
|
3460
3619
|
value: function muteAudio() {
|
|
3461
|
-
var
|
|
3620
|
+
var _this27 = this;
|
|
3462
3621
|
if (!_util.default.isUserInJoinedState(this.locusInfo)) {
|
|
3463
3622
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
3464
3623
|
}
|
|
@@ -3475,10 +3634,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3475
3634
|
|
|
3476
3635
|
// First, stop sending the local audio media
|
|
3477
3636
|
return logRequest(this.audio.handleClientRequest(this, true).then(function () {
|
|
3478
|
-
_util.default.handleAudioLogging(
|
|
3637
|
+
_util.default.handleAudioLogging(_this27.mediaProperties.audioTrack);
|
|
3479
3638
|
_metrics.default.postEvent({
|
|
3480
3639
|
event: _config.eventType.MUTED,
|
|
3481
|
-
meeting:
|
|
3640
|
+
meeting: _this27,
|
|
3482
3641
|
data: {
|
|
3483
3642
|
trigger: _config.trigger.USER_INTERACTION,
|
|
3484
3643
|
mediaType: _config.mediaType.AUDIO
|
|
@@ -3486,8 +3645,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3486
3645
|
});
|
|
3487
3646
|
}).catch(function (error) {
|
|
3488
3647
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_AUDIO_FAILURE, {
|
|
3489
|
-
correlation_id:
|
|
3490
|
-
locus_id:
|
|
3648
|
+
correlation_id: _this27.correlationId,
|
|
3649
|
+
locus_id: _this27.locusUrl.split('/').pop(),
|
|
3491
3650
|
reason: error.message,
|
|
3492
3651
|
stack: error.stack
|
|
3493
3652
|
});
|
|
@@ -3508,7 +3667,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3508
3667
|
}, {
|
|
3509
3668
|
key: "unmuteAudio",
|
|
3510
3669
|
value: function unmuteAudio() {
|
|
3511
|
-
var
|
|
3670
|
+
var _this28 = this;
|
|
3512
3671
|
if (!_util.default.isUserInJoinedState(this.locusInfo)) {
|
|
3513
3672
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
3514
3673
|
}
|
|
@@ -3525,10 +3684,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3525
3684
|
|
|
3526
3685
|
// First, send the control to unmute the participant on the server
|
|
3527
3686
|
return logRequest(this.audio.handleClientRequest(this, false).then(function () {
|
|
3528
|
-
_util.default.handleAudioLogging(
|
|
3687
|
+
_util.default.handleAudioLogging(_this28.mediaProperties.audioTrack);
|
|
3529
3688
|
_metrics.default.postEvent({
|
|
3530
3689
|
event: _config.eventType.UNMUTED,
|
|
3531
|
-
meeting:
|
|
3690
|
+
meeting: _this28,
|
|
3532
3691
|
data: {
|
|
3533
3692
|
trigger: _config.trigger.USER_INTERACTION,
|
|
3534
3693
|
mediaType: _config.mediaType.AUDIO
|
|
@@ -3536,8 +3695,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3536
3695
|
});
|
|
3537
3696
|
}).catch(function (error) {
|
|
3538
3697
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_AUDIO_FAILURE, {
|
|
3539
|
-
correlation_id:
|
|
3540
|
-
locus_id:
|
|
3698
|
+
correlation_id: _this28.correlationId,
|
|
3699
|
+
locus_id: _this28.locusUrl.split('/').pop(),
|
|
3541
3700
|
reason: error.message,
|
|
3542
3701
|
stack: error.stack
|
|
3543
3702
|
});
|
|
@@ -3558,7 +3717,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3558
3717
|
}, {
|
|
3559
3718
|
key: "muteVideo",
|
|
3560
3719
|
value: function muteVideo() {
|
|
3561
|
-
var
|
|
3720
|
+
var _this29 = this;
|
|
3562
3721
|
if (!_util.default.isUserInJoinedState(this.locusInfo)) {
|
|
3563
3722
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
3564
3723
|
}
|
|
@@ -3573,10 +3732,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3573
3732
|
}
|
|
3574
3733
|
var LOG_HEADER = 'Meeting:index#muteVideo -->';
|
|
3575
3734
|
return logRequest(this.video.handleClientRequest(this, true).then(function () {
|
|
3576
|
-
_util.default.handleVideoLogging(
|
|
3735
|
+
_util.default.handleVideoLogging(_this29.mediaProperties.videoTrack);
|
|
3577
3736
|
_metrics.default.postEvent({
|
|
3578
3737
|
event: _config.eventType.MUTED,
|
|
3579
|
-
meeting:
|
|
3738
|
+
meeting: _this29,
|
|
3580
3739
|
data: {
|
|
3581
3740
|
trigger: _config.trigger.USER_INTERACTION,
|
|
3582
3741
|
mediaType: _config.mediaType.VIDEO
|
|
@@ -3584,8 +3743,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3584
3743
|
});
|
|
3585
3744
|
}).catch(function (error) {
|
|
3586
3745
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_VIDEO_FAILURE, {
|
|
3587
|
-
correlation_id:
|
|
3588
|
-
locus_id:
|
|
3746
|
+
correlation_id: _this29.correlationId,
|
|
3747
|
+
locus_id: _this29.locusUrl.split('/').pop(),
|
|
3589
3748
|
reason: error.message,
|
|
3590
3749
|
stack: error.stack
|
|
3591
3750
|
});
|
|
@@ -3606,7 +3765,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3606
3765
|
}, {
|
|
3607
3766
|
key: "unmuteVideo",
|
|
3608
3767
|
value: function unmuteVideo() {
|
|
3609
|
-
var
|
|
3768
|
+
var _this30 = this;
|
|
3610
3769
|
if (!_util.default.isUserInJoinedState(this.locusInfo)) {
|
|
3611
3770
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
3612
3771
|
}
|
|
@@ -3621,10 +3780,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3621
3780
|
}
|
|
3622
3781
|
var LOG_HEADER = 'Meeting:index#unmuteVideo -->';
|
|
3623
3782
|
return logRequest(this.video.handleClientRequest(this, false).then(function () {
|
|
3624
|
-
_util.default.handleVideoLogging(
|
|
3783
|
+
_util.default.handleVideoLogging(_this30.mediaProperties.videoTrack);
|
|
3625
3784
|
_metrics.default.postEvent({
|
|
3626
3785
|
event: _config.eventType.UNMUTED,
|
|
3627
|
-
meeting:
|
|
3786
|
+
meeting: _this30,
|
|
3628
3787
|
data: {
|
|
3629
3788
|
trigger: _config.trigger.USER_INTERACTION,
|
|
3630
3789
|
mediaType: _config.mediaType.VIDEO
|
|
@@ -3632,8 +3791,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3632
3791
|
});
|
|
3633
3792
|
}).catch(function (error) {
|
|
3634
3793
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_VIDEO_FAILURE, {
|
|
3635
|
-
correlation_id:
|
|
3636
|
-
locus_id:
|
|
3794
|
+
correlation_id: _this30.correlationId,
|
|
3795
|
+
locus_id: _this30.locusUrl.split('/').pop(),
|
|
3637
3796
|
reason: error.message,
|
|
3638
3797
|
stack: error.stack
|
|
3639
3798
|
});
|
|
@@ -3673,18 +3832,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3673
3832
|
}, {
|
|
3674
3833
|
key: "joinWithMedia",
|
|
3675
3834
|
value: function joinWithMedia() {
|
|
3676
|
-
var
|
|
3835
|
+
var _this31 = this;
|
|
3677
3836
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
3678
3837
|
// TODO: add validations for parameters
|
|
3679
3838
|
var mediaSettings = options.mediaSettings,
|
|
3680
3839
|
joinOptions = options.joinOptions,
|
|
3681
3840
|
audioVideoOptions = options.audioVideoOptions;
|
|
3682
3841
|
return this.join(joinOptions).then(function (joinResponse) {
|
|
3683
|
-
return
|
|
3684
|
-
var
|
|
3685
|
-
localStream =
|
|
3686
|
-
localShare =
|
|
3687
|
-
return
|
|
3842
|
+
return _this31.getMediaStreams(mediaSettings, audioVideoOptions).then(function (_ref10) {
|
|
3843
|
+
var _ref11 = (0, _slicedToArray2.default)(_ref10, 2),
|
|
3844
|
+
localStream = _ref11[0],
|
|
3845
|
+
localShare = _ref11[1];
|
|
3846
|
+
return _this31.addMedia({
|
|
3688
3847
|
mediaSettings: mediaSettings,
|
|
3689
3848
|
localShare: localShare,
|
|
3690
3849
|
localStream: localStream
|
|
@@ -3699,8 +3858,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3699
3858
|
}).catch(function (error) {
|
|
3700
3859
|
_loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> ', error);
|
|
3701
3860
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_WITH_MEDIA_FAILURE, {
|
|
3702
|
-
correlation_id:
|
|
3703
|
-
locus_id:
|
|
3861
|
+
correlation_id: _this31.correlationId,
|
|
3862
|
+
locus_id: _this31.locusUrl.split('/').pop(),
|
|
3704
3863
|
reason: error.message,
|
|
3705
3864
|
stack: error.stack
|
|
3706
3865
|
}, {
|
|
@@ -3721,7 +3880,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3721
3880
|
}, {
|
|
3722
3881
|
key: "reconnect",
|
|
3723
3882
|
value: function reconnect(options) {
|
|
3724
|
-
var
|
|
3883
|
+
var _this32 = this;
|
|
3725
3884
|
_loggerProxy.default.logger.log("Meeting:index#reconnect --> attempting to reconnect meeting ".concat(this.id));
|
|
3726
3885
|
if (!this.reconnectionManager || !this.reconnectionManager.reconnect) {
|
|
3727
3886
|
return _promise.default.reject(new _parameter.default('Cannot reconnect, ReconnectionManager must first be defined.'));
|
|
@@ -3749,13 +3908,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3749
3908
|
function: 'reconnect'
|
|
3750
3909
|
}, _constants.EVENT_TRIGGERS.MEETING_RECONNECTION_STARTING);
|
|
3751
3910
|
return this.reconnectionManager.reconnect(options).then(function () {
|
|
3752
|
-
_triggerProxy.default.trigger(
|
|
3911
|
+
_triggerProxy.default.trigger(_this32, {
|
|
3753
3912
|
file: 'meeting/index',
|
|
3754
3913
|
function: 'reconnect'
|
|
3755
3914
|
}, _constants.EVENT_TRIGGERS.MEETING_RECONNECTION_SUCCESS);
|
|
3756
3915
|
_loggerProxy.default.logger.log('Meeting:index#reconnect --> Meeting reconnect success');
|
|
3757
3916
|
}).catch(function (error) {
|
|
3758
|
-
_triggerProxy.default.trigger(
|
|
3917
|
+
_triggerProxy.default.trigger(_this32, {
|
|
3759
3918
|
file: 'meeting/index',
|
|
3760
3919
|
function: 'reconnect'
|
|
3761
3920
|
}, _constants.EVENT_TRIGGERS.MEETING_RECONNECTION_FAILURE, {
|
|
@@ -3763,18 +3922,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3763
3922
|
});
|
|
3764
3923
|
_loggerProxy.default.logger.error('Meeting:index#reconnect --> Meeting reconnect failed', error);
|
|
3765
3924
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_RECONNECT_FAILURE, {
|
|
3766
|
-
correlation_id:
|
|
3767
|
-
locus_id:
|
|
3925
|
+
correlation_id: _this32.correlationId,
|
|
3926
|
+
locus_id: _this32.locusUrl.split('/').pop(),
|
|
3768
3927
|
reason: error.message,
|
|
3769
3928
|
stack: error.stack
|
|
3770
3929
|
});
|
|
3771
|
-
|
|
3930
|
+
_this32.uploadLogs({
|
|
3772
3931
|
file: 'meeting/index',
|
|
3773
3932
|
function: 'reconnect'
|
|
3774
3933
|
});
|
|
3775
3934
|
return _promise.default.reject(new _reconnection.default('Reconnection failure event', error));
|
|
3776
3935
|
}).finally(function () {
|
|
3777
|
-
|
|
3936
|
+
_this32.reconnectionManager.reset();
|
|
3778
3937
|
});
|
|
3779
3938
|
}
|
|
3780
3939
|
|
|
@@ -3794,6 +3953,21 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3794
3953
|
return false;
|
|
3795
3954
|
}
|
|
3796
3955
|
|
|
3956
|
+
/**
|
|
3957
|
+
* Check if the meeting supports the Reactions
|
|
3958
|
+
* @returns {boolean}
|
|
3959
|
+
*/
|
|
3960
|
+
}, {
|
|
3961
|
+
key: "isReactionsSupported",
|
|
3962
|
+
value: function isReactionsSupported() {
|
|
3963
|
+
var _this$locusInfo4, _this$locusInfo4$cont;
|
|
3964
|
+
if ((_this$locusInfo4 = this.locusInfo) !== null && _this$locusInfo4 !== void 0 && (_this$locusInfo4$cont = _this$locusInfo4.controls) !== null && _this$locusInfo4$cont !== void 0 && _this$locusInfo4$cont.reactions.enabled) {
|
|
3965
|
+
return true;
|
|
3966
|
+
}
|
|
3967
|
+
_loggerProxy.default.logger.error('Meeting:index#isReactionsSupported --> Reactions is not supported');
|
|
3968
|
+
return false;
|
|
3969
|
+
}
|
|
3970
|
+
|
|
3797
3971
|
/**
|
|
3798
3972
|
* Monitor the Low-Latency Mercury (LLM) web socket connection on `onError` and `onClose` states
|
|
3799
3973
|
* @private
|
|
@@ -3802,16 +3976,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3802
3976
|
}, {
|
|
3803
3977
|
key: "monitorTranscriptionSocketConnection",
|
|
3804
3978
|
value: function monitorTranscriptionSocketConnection() {
|
|
3805
|
-
var
|
|
3979
|
+
var _this33 = this;
|
|
3806
3980
|
this.transcription.onCloseSocket(function (event) {
|
|
3807
3981
|
_loggerProxy.default.logger.info("Meeting:index#onCloseSocket -->\n unable to continue receiving transcription;\n low-latency mercury web socket connection is closed now.\n ".concat(event));
|
|
3808
|
-
|
|
3982
|
+
_this33.triggerStopReceivingTranscriptionEvent();
|
|
3809
3983
|
});
|
|
3810
3984
|
this.transcription.onErrorSocket(function (event) {
|
|
3811
3985
|
_loggerProxy.default.logger.error("Meeting:index#onErrorSocket -->\n unable to continue receiving transcription;\n low-latency mercury web socket connection error had occured.\n ".concat(event));
|
|
3812
|
-
|
|
3986
|
+
_this33.triggerStopReceivingTranscriptionEvent();
|
|
3813
3987
|
_metrics.default.sendBehavioralMetric(_constants2.default.RECEIVE_TRANSCRIPTION_FAILURE, {
|
|
3814
|
-
correlation_id:
|
|
3988
|
+
correlation_id: _this33.correlationId,
|
|
3815
3989
|
reason: 'unexpected error: transcription LLM web socket connection error had occured.',
|
|
3816
3990
|
event: event
|
|
3817
3991
|
});
|
|
@@ -3827,7 +4001,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3827
4001
|
key: "receiveTranscription",
|
|
3828
4002
|
value: function () {
|
|
3829
4003
|
var _receiveTranscription = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
3830
|
-
var
|
|
4004
|
+
var _this34 = this;
|
|
3831
4005
|
var datachannelUrl, _yield$this$request, webSocketUrl;
|
|
3832
4006
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
3833
4007
|
while (1) switch (_context2.prev = _context2.next) {
|
|
@@ -3854,7 +4028,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3854
4028
|
|
|
3855
4029
|
// retrieve and pass the payload
|
|
3856
4030
|
this.transcription.subscribe(function (payload) {
|
|
3857
|
-
_triggerProxy.default.trigger(
|
|
4031
|
+
_triggerProxy.default.trigger(_this34, {
|
|
3858
4032
|
file: 'meeting/index',
|
|
3859
4033
|
function: 'join'
|
|
3860
4034
|
}, _constants.EVENT_TRIGGERS.MEETING_STARTED_RECEIVING_TRANSCRIPTION, payload);
|
|
@@ -3885,13 +4059,20 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3885
4059
|
return receiveTranscription;
|
|
3886
4060
|
}()
|
|
3887
4061
|
/**
|
|
3888
|
-
*
|
|
3889
|
-
*
|
|
4062
|
+
* Callback called when a relay event is received from meeting LLM Connection
|
|
4063
|
+
* @param {RelayEvent} e Event object coming from LLM Connection
|
|
4064
|
+
* @private
|
|
3890
4065
|
* @returns {void}
|
|
3891
4066
|
*/
|
|
3892
4067
|
}, {
|
|
3893
4068
|
key: "stopReceivingTranscription",
|
|
3894
|
-
value:
|
|
4069
|
+
value:
|
|
4070
|
+
/**
|
|
4071
|
+
* stop recieving Transcription by closing
|
|
4072
|
+
* the web socket connection properly
|
|
4073
|
+
* @returns {void}
|
|
4074
|
+
*/
|
|
4075
|
+
function stopReceivingTranscription() {
|
|
3895
4076
|
if (this.transcription) {
|
|
3896
4077
|
this.transcription.closeSocket();
|
|
3897
4078
|
}
|
|
@@ -3928,7 +4109,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3928
4109
|
}, {
|
|
3929
4110
|
key: "join",
|
|
3930
4111
|
value: function join() {
|
|
3931
|
-
var
|
|
4112
|
+
var _this35 = this;
|
|
3932
4113
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
3933
4114
|
// @ts-ignore - fix type
|
|
3934
4115
|
if (!this.webex.meetings.registered) {
|
|
@@ -4016,40 +4197,44 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4016
4197
|
}
|
|
4017
4198
|
this.isMultistream = !!options.enableMultistream;
|
|
4018
4199
|
return _util.default.joinMeetingOptions(this, options).then(function (join) {
|
|
4019
|
-
|
|
4200
|
+
_this35.meetingFiniteStateMachine.join();
|
|
4020
4201
|
_loggerProxy.default.logger.log('Meeting:index#join --> Success');
|
|
4021
4202
|
return join;
|
|
4022
4203
|
}).then(function (join) {
|
|
4023
4204
|
joinSuccess(join);
|
|
4024
|
-
|
|
4205
|
+
_this35.deferJoin = undefined;
|
|
4025
4206
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
|
|
4026
|
-
correlation_id:
|
|
4207
|
+
correlation_id: _this35.correlationId
|
|
4027
4208
|
});
|
|
4028
4209
|
return join;
|
|
4029
4210
|
}).then( /*#__PURE__*/function () {
|
|
4030
|
-
var
|
|
4211
|
+
var _ref12 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(join) {
|
|
4031
4212
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
4032
4213
|
while (1) switch (_context3.prev = _context3.next) {
|
|
4033
4214
|
case 0:
|
|
4034
|
-
if (!
|
|
4035
|
-
_context3.next =
|
|
4215
|
+
if (!_this35.config.enableAutomaticLLM) {
|
|
4216
|
+
_context3.next = 5;
|
|
4036
4217
|
break;
|
|
4037
4218
|
}
|
|
4038
4219
|
_context3.next = 3;
|
|
4039
|
-
return
|
|
4220
|
+
return _this35.updateLLMConnection();
|
|
4040
4221
|
case 3:
|
|
4222
|
+
// @ts-ignore - Fix type
|
|
4223
|
+
_this35.webex.internal.llm.on('event:relay.event', _this35.processRelayEvent);
|
|
4224
|
+
_loggerProxy.default.logger.info('Meeting:index#join --> enabled to receive relay events!');
|
|
4225
|
+
case 5:
|
|
4041
4226
|
return _context3.abrupt("return", join);
|
|
4042
|
-
case
|
|
4227
|
+
case 6:
|
|
4043
4228
|
case "end":
|
|
4044
4229
|
return _context3.stop();
|
|
4045
4230
|
}
|
|
4046
4231
|
}, _callee3);
|
|
4047
4232
|
}));
|
|
4048
4233
|
return function (_x2) {
|
|
4049
|
-
return
|
|
4234
|
+
return _ref12.apply(this, arguments);
|
|
4050
4235
|
};
|
|
4051
4236
|
}()).then( /*#__PURE__*/function () {
|
|
4052
|
-
var
|
|
4237
|
+
var _ref13 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(join) {
|
|
4053
4238
|
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
4054
4239
|
while (1) switch (_context4.prev = _context4.next) {
|
|
4055
4240
|
case 0:
|
|
@@ -4057,16 +4242,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4057
4242
|
_context4.next = 8;
|
|
4058
4243
|
break;
|
|
4059
4244
|
}
|
|
4060
|
-
if (!(
|
|
4245
|
+
if (!(_this35.config.receiveTranscription || options.receiveTranscription)) {
|
|
4061
4246
|
_context4.next = 6;
|
|
4062
4247
|
break;
|
|
4063
4248
|
}
|
|
4064
|
-
if (!
|
|
4249
|
+
if (!_this35.isTranscriptionSupported()) {
|
|
4065
4250
|
_context4.next = 6;
|
|
4066
4251
|
break;
|
|
4067
4252
|
}
|
|
4068
4253
|
_context4.next = 5;
|
|
4069
|
-
return
|
|
4254
|
+
return _this35.receiveTranscription();
|
|
4070
4255
|
case 5:
|
|
4071
4256
|
_loggerProxy.default.logger.info('Meeting:index#join --> enabled to recieve transcription!');
|
|
4072
4257
|
case 6:
|
|
@@ -4083,16 +4268,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4083
4268
|
}, _callee4);
|
|
4084
4269
|
}));
|
|
4085
4270
|
return function (_x3) {
|
|
4086
|
-
return
|
|
4271
|
+
return _ref13.apply(this, arguments);
|
|
4087
4272
|
};
|
|
4088
4273
|
}()).catch(function (error) {
|
|
4089
4274
|
var _error$error;
|
|
4090
|
-
|
|
4275
|
+
_this35.meetingFiniteStateMachine.fail(error);
|
|
4091
4276
|
_loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
|
|
4092
4277
|
_metrics.default.postEvent({
|
|
4093
4278
|
event: _config.eventType.LOCUS_JOIN_RESPONSE,
|
|
4094
|
-
meeting:
|
|
4095
|
-
meetingId:
|
|
4279
|
+
meeting: _this35,
|
|
4280
|
+
meetingId: _this35.id,
|
|
4096
4281
|
data: {
|
|
4097
4282
|
errors: [_metrics.default.parseLocusError(error.error, true)]
|
|
4098
4283
|
}
|
|
@@ -4100,18 +4285,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4100
4285
|
|
|
4101
4286
|
// TODO: change this to error codes and pre defined dictionary
|
|
4102
4287
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
|
|
4103
|
-
correlation_id:
|
|
4288
|
+
correlation_id: _this35.correlationId,
|
|
4104
4289
|
reason: (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.message,
|
|
4105
4290
|
stack: error.stack
|
|
4106
4291
|
});
|
|
4107
4292
|
|
|
4108
4293
|
// Upload logs on join Failure
|
|
4109
|
-
_triggerProxy.default.trigger(
|
|
4294
|
+
_triggerProxy.default.trigger(_this35, {
|
|
4110
4295
|
file: 'meeting/index',
|
|
4111
4296
|
function: 'join'
|
|
4112
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
4297
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this35);
|
|
4113
4298
|
joinFailed(error);
|
|
4114
|
-
|
|
4299
|
+
_this35.deferJoin = undefined;
|
|
4115
4300
|
return _promise.default.reject(error);
|
|
4116
4301
|
});
|
|
4117
4302
|
}
|
|
@@ -4126,14 +4311,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4126
4311
|
key: "updateLLMConnection",
|
|
4127
4312
|
value: function () {
|
|
4128
4313
|
var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
|
|
4129
|
-
var _this$
|
|
4314
|
+
var _this$locusInfo5, url, _this$locusInfo5$info, _this$locusInfo5$info2, datachannelUrl, isJoined;
|
|
4130
4315
|
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
4131
4316
|
while (1) switch (_context5.prev = _context5.next) {
|
|
4132
4317
|
case 0:
|
|
4133
|
-
|
|
4134
|
-
|
|
4318
|
+
// @ts-ignore - Fix type
|
|
4319
|
+
_this$locusInfo5 = this.locusInfo, url = _this$locusInfo5.url, _this$locusInfo5$info = _this$locusInfo5.info, _this$locusInfo5$info2 = _this$locusInfo5$info === void 0 ? {} : _this$locusInfo5$info, datachannelUrl = _this$locusInfo5$info2.datachannelUrl;
|
|
4320
|
+
isJoined = this.joinedWith && this.joinedWith.state === 'JOINED'; // @ts-ignore - Fix type
|
|
4135
4321
|
if (!this.webex.internal.llm.isConnected()) {
|
|
4136
|
-
_context5.next =
|
|
4322
|
+
_context5.next = 8;
|
|
4137
4323
|
break;
|
|
4138
4324
|
}
|
|
4139
4325
|
if (!(url === this.webex.internal.llm.getLocusUrl() && isJoined)) {
|
|
@@ -4145,14 +4331,17 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4145
4331
|
_context5.next = 7;
|
|
4146
4332
|
return this.webex.internal.llm.disconnectLLM();
|
|
4147
4333
|
case 7:
|
|
4334
|
+
// @ts-ignore - Fix type
|
|
4335
|
+
this.webex.internal.llm.off('event:relay.event', this.processRelayEvent);
|
|
4336
|
+
case 8:
|
|
4148
4337
|
if (isJoined) {
|
|
4149
|
-
_context5.next =
|
|
4338
|
+
_context5.next = 10;
|
|
4150
4339
|
break;
|
|
4151
4340
|
}
|
|
4152
4341
|
return _context5.abrupt("return", undefined);
|
|
4153
|
-
case 9:
|
|
4154
|
-
return _context5.abrupt("return", this.webex.internal.llm.registerAndConnect(url, datachannelUrl));
|
|
4155
4342
|
case 10:
|
|
4343
|
+
return _context5.abrupt("return", this.webex.internal.llm.registerAndConnect(url, datachannelUrl));
|
|
4344
|
+
case 11:
|
|
4156
4345
|
case "end":
|
|
4157
4346
|
return _context5.stop();
|
|
4158
4347
|
}
|
|
@@ -4201,26 +4390,28 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4201
4390
|
}, {
|
|
4202
4391
|
key: "dialInPstn",
|
|
4203
4392
|
value: function dialInPstn() {
|
|
4204
|
-
var
|
|
4393
|
+
var _this36 = this;
|
|
4205
4394
|
if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
|
|
4206
4395
|
|
|
4207
4396
|
var correlationId = this.correlationId,
|
|
4208
4397
|
locusUrl = this.locusUrl;
|
|
4209
4398
|
if (!this.dialInUrl) this.dialInUrl = "dialin:///".concat(_uuid.default.v4());
|
|
4210
|
-
return this.meetingRequest
|
|
4399
|
+
return this.meetingRequest
|
|
4400
|
+
// @ts-ignore
|
|
4401
|
+
.dialIn({
|
|
4211
4402
|
correlationId: correlationId,
|
|
4212
4403
|
dialInUrl: this.dialInUrl,
|
|
4213
4404
|
locusUrl: locusUrl,
|
|
4214
4405
|
clientUrl: this.deviceUrl
|
|
4215
4406
|
}).then(function (res) {
|
|
4216
|
-
|
|
4407
|
+
_this36.locusInfo.onFullLocus(res.body.locus);
|
|
4217
4408
|
}).catch(function (error) {
|
|
4218
4409
|
var _error$error2;
|
|
4219
4410
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
|
|
4220
|
-
correlation_id:
|
|
4221
|
-
dial_in_url:
|
|
4411
|
+
correlation_id: _this36.correlationId,
|
|
4412
|
+
dial_in_url: _this36.dialInUrl,
|
|
4222
4413
|
locus_id: locusUrl.split('/').pop(),
|
|
4223
|
-
client_url:
|
|
4414
|
+
client_url: _this36.deviceUrl,
|
|
4224
4415
|
reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
|
|
4225
4416
|
stack: error.stack
|
|
4226
4417
|
});
|
|
@@ -4238,27 +4429,29 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4238
4429
|
}, {
|
|
4239
4430
|
key: "dialOutPstn",
|
|
4240
4431
|
value: function dialOutPstn(phoneNumber) {
|
|
4241
|
-
var
|
|
4432
|
+
var _this37 = this;
|
|
4242
4433
|
if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
|
|
4243
4434
|
|
|
4244
4435
|
var correlationId = this.correlationId,
|
|
4245
4436
|
locusUrl = this.locusUrl;
|
|
4246
4437
|
if (!this.dialOutUrl) this.dialOutUrl = "dialout:///".concat(_uuid.default.v4());
|
|
4247
|
-
return this.meetingRequest
|
|
4438
|
+
return this.meetingRequest
|
|
4439
|
+
// @ts-ignore
|
|
4440
|
+
.dialOut({
|
|
4248
4441
|
correlationId: correlationId,
|
|
4249
4442
|
dialOutUrl: this.dialOutUrl,
|
|
4250
4443
|
phoneNumber: phoneNumber,
|
|
4251
4444
|
locusUrl: locusUrl,
|
|
4252
4445
|
clientUrl: this.deviceUrl
|
|
4253
4446
|
}).then(function (res) {
|
|
4254
|
-
|
|
4447
|
+
_this37.locusInfo.onFullLocus(res.body.locus);
|
|
4255
4448
|
}).catch(function (error) {
|
|
4256
4449
|
var _error$error3;
|
|
4257
4450
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
|
|
4258
|
-
correlation_id:
|
|
4259
|
-
dial_out_url:
|
|
4451
|
+
correlation_id: _this37.correlationId,
|
|
4452
|
+
dial_out_url: _this37.dialOutUrl,
|
|
4260
4453
|
locus_id: locusUrl.split('/').pop(),
|
|
4261
|
-
client_url:
|
|
4454
|
+
client_url: _this37.deviceUrl,
|
|
4262
4455
|
reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
|
|
4263
4456
|
stack: error.stack
|
|
4264
4457
|
});
|
|
@@ -4289,7 +4482,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4289
4482
|
}, {
|
|
4290
4483
|
key: "moveTo",
|
|
4291
4484
|
value: function moveTo(resourceId) {
|
|
4292
|
-
var
|
|
4485
|
+
var _this38 = this;
|
|
4293
4486
|
if (!resourceId) {
|
|
4294
4487
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
|
4295
4488
|
}
|
|
@@ -4325,12 +4518,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4325
4518
|
while (1) switch (_context6.prev = _context6.next) {
|
|
4326
4519
|
case 0:
|
|
4327
4520
|
_context6.prev = 0;
|
|
4328
|
-
if (!
|
|
4521
|
+
if (!_this38.isSharing) {
|
|
4329
4522
|
_context6.next = 4;
|
|
4330
4523
|
break;
|
|
4331
4524
|
}
|
|
4332
4525
|
_context6.next = 4;
|
|
4333
|
-
return
|
|
4526
|
+
return _this38.releaseScreenShareFloor();
|
|
4334
4527
|
case 4:
|
|
4335
4528
|
mediaSettings = {
|
|
4336
4529
|
mediaDirection: {
|
|
@@ -4342,22 +4535,22 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4342
4535
|
receiveShare: true
|
|
4343
4536
|
}
|
|
4344
4537
|
}; // clean up the local tracks
|
|
4345
|
-
|
|
4538
|
+
_this38.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
|
|
4346
4539
|
|
|
4347
4540
|
// close the existing local tracks
|
|
4348
4541
|
_context6.next = 8;
|
|
4349
|
-
return
|
|
4542
|
+
return _this38.closeLocalStream();
|
|
4350
4543
|
case 8:
|
|
4351
4544
|
_context6.next = 10;
|
|
4352
|
-
return
|
|
4545
|
+
return _this38.closeLocalShare();
|
|
4353
4546
|
case 10:
|
|
4354
|
-
|
|
4547
|
+
_this38.mediaProperties.unsetMediaTracks();
|
|
4355
4548
|
|
|
4356
4549
|
// when a move to is intiated by the client , Locus delets the existing media node from the server as soon the DX answers the meeting
|
|
4357
4550
|
// once the DX answers we establish connection back the media server with only receiveShare enabled
|
|
4358
4551
|
// @ts-ignore - reconnectMedia does not accept any argument
|
|
4359
4552
|
_context6.next = 13;
|
|
4360
|
-
return
|
|
4553
|
+
return _this38.reconnectionManager.reconnectMedia(mediaSettings).then(function () {
|
|
4361
4554
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
|
|
4362
4555
|
});
|
|
4363
4556
|
case 13:
|
|
@@ -4368,8 +4561,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4368
4561
|
_context6.t0 = _context6["catch"](0);
|
|
4369
4562
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context6.t0);
|
|
4370
4563
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
|
4371
|
-
correlation_id:
|
|
4372
|
-
locus_id:
|
|
4564
|
+
correlation_id: _this38.correlationId,
|
|
4565
|
+
locus_id: _this38.locusUrl.split('/').pop(),
|
|
4373
4566
|
reason: _context6.t0.message,
|
|
4374
4567
|
stack: _context6.t0.stack
|
|
4375
4568
|
});
|
|
@@ -4384,12 +4577,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4384
4577
|
resourceId: resourceId,
|
|
4385
4578
|
moveToResource: true
|
|
4386
4579
|
}).then(function () {
|
|
4387
|
-
|
|
4580
|
+
_this38.meetingFiniteStateMachine.join();
|
|
4388
4581
|
}).catch(function (error) {
|
|
4389
|
-
|
|
4582
|
+
_this38.meetingFiniteStateMachine.fail(error);
|
|
4390
4583
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
|
4391
|
-
correlation_id:
|
|
4392
|
-
locus_id:
|
|
4584
|
+
correlation_id: _this38.correlationId,
|
|
4585
|
+
locus_id: _this38.locusUrl.split('/').pop(),
|
|
4393
4586
|
reason: error.message,
|
|
4394
4587
|
stack: error.stack
|
|
4395
4588
|
});
|
|
@@ -4408,7 +4601,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4408
4601
|
}, {
|
|
4409
4602
|
key: "moveFrom",
|
|
4410
4603
|
value: function moveFrom(resourceId) {
|
|
4411
|
-
var
|
|
4604
|
+
var _this39 = this;
|
|
4412
4605
|
// On moveFrom ask the developer to re capture it moveFrom then updateMedia
|
|
4413
4606
|
if (!resourceId) {
|
|
4414
4607
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
|
@@ -4419,19 +4612,19 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4419
4612
|
meeting: this
|
|
4420
4613
|
});
|
|
4421
4614
|
return _util.default.joinMeetingOptions(this).then(function () {
|
|
4422
|
-
return _util.default.leaveMeeting(
|
|
4615
|
+
return _util.default.leaveMeeting(_this39, {
|
|
4423
4616
|
resourceId: resourceId,
|
|
4424
4617
|
correlationId: oldCorrelationId,
|
|
4425
4618
|
moveMeeting: true
|
|
4426
4619
|
}).then(function () {
|
|
4427
|
-
|
|
4620
|
+
_this39.resourceId = '';
|
|
4428
4621
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
|
|
4429
4622
|
});
|
|
4430
4623
|
}).catch(function (error) {
|
|
4431
|
-
|
|
4624
|
+
_this39.meetingFiniteStateMachine.fail(error);
|
|
4432
4625
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
|
|
4433
|
-
correlation_id:
|
|
4434
|
-
locus_id:
|
|
4626
|
+
correlation_id: _this39.correlationId,
|
|
4627
|
+
locus_id: _this39.locusUrl.split('/').pop(),
|
|
4435
4628
|
reason: error.message,
|
|
4436
4629
|
stack: error.stack
|
|
4437
4630
|
});
|
|
@@ -4487,9 +4680,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4487
4680
|
}, {
|
|
4488
4681
|
key: "forwardEvent",
|
|
4489
4682
|
value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
|
|
4490
|
-
var
|
|
4683
|
+
var _this40 = this;
|
|
4491
4684
|
eventEmitter.on(eventTypeToForward, function (data) {
|
|
4492
|
-
return _triggerProxy.default.trigger(
|
|
4685
|
+
return _triggerProxy.default.trigger(_this40, {
|
|
4493
4686
|
file: 'meetings',
|
|
4494
4687
|
function: 'addMedia'
|
|
4495
4688
|
}, meetingEventType, data);
|
|
@@ -4511,7 +4704,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4511
4704
|
}, {
|
|
4512
4705
|
key: "addMedia",
|
|
4513
4706
|
value: function addMedia() {
|
|
4514
|
-
var
|
|
4707
|
+
var _this41 = this;
|
|
4515
4708
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
4516
4709
|
var LOG_HEADER = 'Meeting:index#addMedia -->';
|
|
4517
4710
|
var turnDiscoverySkippedReason;
|
|
@@ -4555,41 +4748,41 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4555
4748
|
}
|
|
4556
4749
|
});
|
|
4557
4750
|
return _util.default.validateOptions(options).then(function () {
|
|
4558
|
-
return
|
|
4751
|
+
return _this41.roap.doTurnDiscovery(_this41, false);
|
|
4559
4752
|
}).then(function (turnDiscoveryObject) {
|
|
4560
4753
|
turnDiscoverySkippedReason = turnDiscoveryObject.turnDiscoverySkippedReason;
|
|
4561
4754
|
turnServerUsed = !turnDiscoverySkippedReason;
|
|
4562
4755
|
var turnServerInfo = turnDiscoveryObject.turnServerInfo;
|
|
4563
|
-
|
|
4564
|
-
var mc =
|
|
4565
|
-
if (
|
|
4566
|
-
|
|
4567
|
-
|
|
4568
|
-
|
|
4569
|
-
|
|
4570
|
-
return
|
|
4756
|
+
_this41.preMedia(localStream, localShare, mediaSettings);
|
|
4757
|
+
var mc = _this41.createMediaConnection(turnServerInfo);
|
|
4758
|
+
if (_this41.isMultistream) {
|
|
4759
|
+
_this41.remoteMediaManager = new _remoteMediaManager.RemoteMediaManager(_this41.receiveSlotManager, _this41.mediaRequestManagers, remoteMediaManagerConfig);
|
|
4760
|
+
_this41.forwardEvent(_this41.remoteMediaManager, _remoteMediaManager.Event.AudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_AUDIO_CREATED);
|
|
4761
|
+
_this41.forwardEvent(_this41.remoteMediaManager, _remoteMediaManager.Event.ScreenShareAudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_SCREEN_SHARE_AUDIO_CREATED);
|
|
4762
|
+
_this41.forwardEvent(_this41.remoteMediaManager, _remoteMediaManager.Event.VideoLayoutChanged, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_VIDEO_LAYOUT_CHANGED);
|
|
4763
|
+
return _this41.remoteMediaManager.start().then(function () {
|
|
4571
4764
|
return mc.initiateOffer();
|
|
4572
4765
|
});
|
|
4573
4766
|
}
|
|
4574
4767
|
return mc.initiateOffer();
|
|
4575
4768
|
}).then(function () {
|
|
4576
|
-
|
|
4769
|
+
_this41.setMercuryListener();
|
|
4577
4770
|
}).then(function () {
|
|
4578
|
-
return
|
|
4771
|
+
return _this41.getDevices().then(function (devices) {
|
|
4579
4772
|
_util.default.handleDeviceLogging(devices);
|
|
4580
4773
|
});
|
|
4581
4774
|
}).then(function () {
|
|
4582
|
-
|
|
4775
|
+
_this41.handleMediaLogging(_this41.mediaProperties);
|
|
4583
4776
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " media connection created"));
|
|
4584
4777
|
|
|
4585
4778
|
// @ts-ignore - config coming from registerPlugin
|
|
4586
|
-
if (
|
|
4779
|
+
if (_this41.config.stats.enableStatsAnalyzer) {
|
|
4587
4780
|
// @ts-ignore - config coming from registerPlugin
|
|
4588
|
-
|
|
4781
|
+
_this41.networkQualityMonitor = new _networkQualityMonitor.default(_this41.config.stats);
|
|
4589
4782
|
// @ts-ignore - config coming from registerPlugin
|
|
4590
|
-
|
|
4591
|
-
|
|
4592
|
-
|
|
4783
|
+
_this41.statsAnalyzer = new _statsAnalyzer.StatsAnalyzer(_this41.config.stats, _this41.networkQualityMonitor);
|
|
4784
|
+
_this41.setupStatsAnalyzerEventHandlers();
|
|
4785
|
+
_this41.networkQualityMonitor.on(_constants.EVENT_TRIGGERS.NETWORK_QUALITY, _this41.sendNetworkQualityEvent.bind(_this41));
|
|
4593
4786
|
}
|
|
4594
4787
|
}).catch(function (error) {
|
|
4595
4788
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error adding media , setting up peerconnection, "), error);
|
|
@@ -4600,12 +4793,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4600
4793
|
|
|
4601
4794
|
// eslint-disable-next-line func-names
|
|
4602
4795
|
// eslint-disable-next-line prefer-arrow-callback
|
|
4603
|
-
if (
|
|
4796
|
+
if (_this41.type === _constants._CALL_) {
|
|
4604
4797
|
resolve();
|
|
4605
4798
|
}
|
|
4606
4799
|
var joiningTimer = setInterval(function () {
|
|
4607
4800
|
timerCount += 1;
|
|
4608
|
-
if (
|
|
4801
|
+
if (_this41.meetingState === _constants.FULL_STATE.ACTIVE) {
|
|
4609
4802
|
clearInterval(joiningTimer);
|
|
4610
4803
|
resolve();
|
|
4611
4804
|
}
|
|
@@ -4616,41 +4809,41 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4616
4809
|
}, 1000);
|
|
4617
4810
|
});
|
|
4618
4811
|
}).then(function () {
|
|
4619
|
-
return
|
|
4812
|
+
return _this41.mediaProperties.waitForMediaConnectionConnected().catch(function () {
|
|
4620
4813
|
throw (0, _webexErrors.createMeetingsError)(30202, 'Meeting connection failed');
|
|
4621
4814
|
});
|
|
4622
4815
|
}).then(function () {
|
|
4623
4816
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " PeerConnection CONNECTED"));
|
|
4624
4817
|
if (mediaSettings && mediaSettings.sendShare && localShare) {
|
|
4625
|
-
if (
|
|
4626
|
-
return
|
|
4818
|
+
if (_this41.state === _constants.MEETING_STATE.STATES.JOINED) {
|
|
4819
|
+
return _this41.requestScreenShareFloor();
|
|
4627
4820
|
}
|
|
4628
4821
|
|
|
4629
4822
|
// When the self state changes to JOINED then request the floor
|
|
4630
|
-
|
|
4823
|
+
_this41.floorGrantPending = true;
|
|
4631
4824
|
}
|
|
4632
4825
|
return {};
|
|
4633
4826
|
}).then(function () {
|
|
4634
|
-
return
|
|
4827
|
+
return _this41.mediaProperties.getCurrentConnectionType();
|
|
4635
4828
|
}).then(function (connectionType) {
|
|
4636
4829
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, {
|
|
4637
|
-
correlation_id:
|
|
4638
|
-
locus_id:
|
|
4830
|
+
correlation_id: _this41.correlationId,
|
|
4831
|
+
locus_id: _this41.locusUrl.split('/').pop(),
|
|
4639
4832
|
connectionType: connectionType
|
|
4640
4833
|
});
|
|
4641
4834
|
}).catch(function (error) {
|
|
4642
4835
|
// Clean up stats analyzer, peer connection, and turn off listeners
|
|
4643
|
-
var stopStatsAnalyzer =
|
|
4836
|
+
var stopStatsAnalyzer = _this41.statsAnalyzer ? _this41.statsAnalyzer.stopAnalyzer() : _promise.default.resolve();
|
|
4644
4837
|
return stopStatsAnalyzer.then(function () {
|
|
4645
|
-
|
|
4646
|
-
if (
|
|
4647
|
-
|
|
4648
|
-
|
|
4838
|
+
_this41.statsAnalyzer = null;
|
|
4839
|
+
if (_this41.mediaProperties.webrtcMediaConnection) {
|
|
4840
|
+
_this41.closePeerConnections();
|
|
4841
|
+
_this41.unsetPeerConnections();
|
|
4649
4842
|
}
|
|
4650
4843
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error adding media failed to initiate PC and send request, "), error);
|
|
4651
4844
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_FAILURE, {
|
|
4652
|
-
correlation_id:
|
|
4653
|
-
locus_id:
|
|
4845
|
+
correlation_id: _this41.correlationId,
|
|
4846
|
+
locus_id: _this41.locusUrl.split('/').pop(),
|
|
4654
4847
|
reason: error.message,
|
|
4655
4848
|
stack: error.stack,
|
|
4656
4849
|
code: error.code,
|
|
@@ -4659,12 +4852,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4659
4852
|
});
|
|
4660
4853
|
|
|
4661
4854
|
// Upload logs on error while adding media
|
|
4662
|
-
_triggerProxy.default.trigger(
|
|
4855
|
+
_triggerProxy.default.trigger(_this41, {
|
|
4663
4856
|
file: 'meeting/index',
|
|
4664
4857
|
function: 'addMedia'
|
|
4665
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
4666
|
-
if (error instanceof _internalMediaCore.
|
|
4667
|
-
|
|
4858
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this41);
|
|
4859
|
+
if (error instanceof _internalMediaCore.Errors.SdpError) {
|
|
4860
|
+
_this41.leave({
|
|
4668
4861
|
reason: _constants.MEETING_REMOVED_REASON.MEETING_CONNECTION_FAILED
|
|
4669
4862
|
});
|
|
4670
4863
|
}
|
|
@@ -4697,7 +4890,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4697
4890
|
}, {
|
|
4698
4891
|
key: "enqueueMediaUpdate",
|
|
4699
4892
|
value: function enqueueMediaUpdate(mediaUpdateType, options) {
|
|
4700
|
-
var
|
|
4893
|
+
var _this42 = this;
|
|
4701
4894
|
return new _promise.default(function (resolve, reject) {
|
|
4702
4895
|
var queueItem = {
|
|
4703
4896
|
pendingPromiseResolve: resolve,
|
|
@@ -4706,7 +4899,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4706
4899
|
options: options
|
|
4707
4900
|
};
|
|
4708
4901
|
_loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
|
|
4709
|
-
|
|
4902
|
+
_this42.queuedMediaUpdates.push(queueItem);
|
|
4710
4903
|
});
|
|
4711
4904
|
}
|
|
4712
4905
|
|
|
@@ -4731,7 +4924,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4731
4924
|
* @memberof Meeting
|
|
4732
4925
|
*/
|
|
4733
4926
|
function updateMedia() {
|
|
4734
|
-
var
|
|
4927
|
+
var _this43 = this;
|
|
4735
4928
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
4736
4929
|
var LOG_HEADER = 'Meeting:index#updateMedia -->';
|
|
4737
4930
|
if (!this.canUpdateMedia()) {
|
|
@@ -4745,27 +4938,27 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4745
4938
|
return _promise.default.reject(new Error('media connection not established, call addMedia() first'));
|
|
4746
4939
|
}
|
|
4747
4940
|
return _util.default.validateOptions(options).then(function () {
|
|
4748
|
-
return
|
|
4941
|
+
return _this43.preMedia(localStream, localShare, mediaSettings);
|
|
4749
4942
|
}).then(function () {
|
|
4750
|
-
return
|
|
4943
|
+
return _this43.mediaProperties.webrtcMediaConnection.updateSendReceiveOptions({
|
|
4751
4944
|
send: {
|
|
4752
|
-
audio:
|
|
4753
|
-
video:
|
|
4754
|
-
screenShareVideo:
|
|
4945
|
+
audio: _this43.mediaProperties.mediaDirection.sendAudio ? _this43.mediaProperties.audioTrack : null,
|
|
4946
|
+
video: _this43.mediaProperties.mediaDirection.sendVideo ? _this43.mediaProperties.videoTrack : null,
|
|
4947
|
+
screenShareVideo: _this43.mediaProperties.mediaDirection.sendShare ? _this43.mediaProperties.shareTrack : null
|
|
4755
4948
|
},
|
|
4756
4949
|
receive: {
|
|
4757
|
-
audio:
|
|
4758
|
-
video:
|
|
4759
|
-
screenShareVideo:
|
|
4760
|
-
remoteQualityLevel:
|
|
4950
|
+
audio: _this43.mediaProperties.mediaDirection.receiveAudio,
|
|
4951
|
+
video: _this43.mediaProperties.mediaDirection.receiveVideo,
|
|
4952
|
+
screenShareVideo: _this43.mediaProperties.mediaDirection.receiveShare,
|
|
4953
|
+
remoteQualityLevel: _this43.mediaProperties.remoteQualityLevel
|
|
4761
4954
|
}
|
|
4762
4955
|
}).then(function () {
|
|
4763
4956
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " webrtcMediaConnection.updateSendReceiveOptions done"));
|
|
4764
4957
|
}).catch(function (error) {
|
|
4765
4958
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error updatedMedia, "), error);
|
|
4766
4959
|
_metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
|
|
4767
|
-
correlation_id:
|
|
4768
|
-
locus_id:
|
|
4960
|
+
correlation_id: _this43.correlationId,
|
|
4961
|
+
locus_id: _this43.locusUrl.split('/').pop(),
|
|
4769
4962
|
reason: error.message,
|
|
4770
4963
|
stack: error.stack
|
|
4771
4964
|
});
|
|
@@ -4776,13 +4969,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4776
4969
|
// if not, ensure it's called after (now it's called after roap message is sent out, but we're not
|
|
4777
4970
|
// waiting for sendRoapMediaRequest() to be resolved)
|
|
4778
4971
|
.then(function () {
|
|
4779
|
-
return
|
|
4972
|
+
return _this43.checkForStopShare(mediaSettings.sendShare, previousSendShareStatus);
|
|
4780
4973
|
}).then(function (startShare) {
|
|
4781
4974
|
// This is a special case if we do an /floor grant followed by /media
|
|
4782
4975
|
// we actually get a OFFER from the server and a GLAR condition happens
|
|
4783
4976
|
if (startShare) {
|
|
4784
4977
|
// We are assuming that the clients are connected when doing an update
|
|
4785
|
-
return
|
|
4978
|
+
return _this43.requestScreenShareFloor();
|
|
4786
4979
|
}
|
|
4787
4980
|
return _promise.default.resolve();
|
|
4788
4981
|
});
|
|
@@ -4806,7 +4999,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4806
4999
|
key: "updateAudio",
|
|
4807
5000
|
value: function () {
|
|
4808
5001
|
var _updateAudio = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(options) {
|
|
4809
|
-
var
|
|
5002
|
+
var _this44 = this;
|
|
4810
5003
|
var sendAudio, receiveAudio, stream, track, bnrEnabled;
|
|
4811
5004
|
return _regenerator.default.wrap(function _callee7$(_context7) {
|
|
4812
5005
|
while (1) switch (_context7.prev = _context7.next) {
|
|
@@ -4851,25 +5044,25 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4851
5044
|
sendAudio: sendAudio,
|
|
4852
5045
|
localStream: stream
|
|
4853
5046
|
}).then(function () {
|
|
4854
|
-
return
|
|
5047
|
+
return _this44.mediaProperties.webrtcMediaConnection.updateSendReceiveOptions({
|
|
4855
5048
|
send: {
|
|
4856
5049
|
audio: track
|
|
4857
5050
|
},
|
|
4858
5051
|
receive: {
|
|
4859
5052
|
audio: options.receiveAudio,
|
|
4860
|
-
video:
|
|
4861
|
-
screenShareVideo:
|
|
4862
|
-
remoteQualityLevel:
|
|
5053
|
+
video: _this44.mediaProperties.mediaDirection.receiveVideo,
|
|
5054
|
+
screenShareVideo: _this44.mediaProperties.mediaDirection.receiveShare,
|
|
5055
|
+
remoteQualityLevel: _this44.mediaProperties.remoteQualityLevel
|
|
4863
5056
|
}
|
|
4864
5057
|
});
|
|
4865
5058
|
}).then(function () {
|
|
4866
|
-
|
|
5059
|
+
_this44.setLocalAudioTrack(track);
|
|
4867
5060
|
// todo: maybe this.mediaProperties.mediaDirection could be removed? it's duplicating stuff from webrtcMediaConnection
|
|
4868
|
-
|
|
4869
|
-
|
|
5061
|
+
_this44.mediaProperties.mediaDirection.sendAudio = sendAudio;
|
|
5062
|
+
_this44.mediaProperties.mediaDirection.receiveAudio = receiveAudio;
|
|
4870
5063
|
|
|
4871
5064
|
// audio state could be undefined if you have not sent audio before
|
|
4872
|
-
|
|
5065
|
+
_this44.audio = _this44.audio || (0, _muteState.default)(_constants.AUDIO, _this44, _this44.mediaProperties.mediaDirection);
|
|
4873
5066
|
}));
|
|
4874
5067
|
case 17:
|
|
4875
5068
|
case "end":
|
|
@@ -4898,7 +5091,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4898
5091
|
}, {
|
|
4899
5092
|
key: "updateVideo",
|
|
4900
5093
|
value: function updateVideo(options) {
|
|
4901
|
-
var
|
|
5094
|
+
var _this45 = this;
|
|
4902
5095
|
if (!this.canUpdateMedia()) {
|
|
4903
5096
|
return this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.VIDEO, options);
|
|
4904
5097
|
}
|
|
@@ -4916,24 +5109,24 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4916
5109
|
sendVideo: sendVideo,
|
|
4917
5110
|
localStream: stream
|
|
4918
5111
|
}).then(function () {
|
|
4919
|
-
return
|
|
5112
|
+
return _this45.mediaProperties.webrtcMediaConnection.updateSendReceiveOptions({
|
|
4920
5113
|
send: {
|
|
4921
5114
|
video: track
|
|
4922
5115
|
},
|
|
4923
5116
|
receive: {
|
|
4924
|
-
audio:
|
|
5117
|
+
audio: _this45.mediaProperties.mediaDirection.receiveAudio,
|
|
4925
5118
|
video: options.receiveVideo,
|
|
4926
|
-
screenShareVideo:
|
|
4927
|
-
remoteQualityLevel:
|
|
5119
|
+
screenShareVideo: _this45.mediaProperties.mediaDirection.receiveShare,
|
|
5120
|
+
remoteQualityLevel: _this45.mediaProperties.remoteQualityLevel
|
|
4928
5121
|
}
|
|
4929
5122
|
});
|
|
4930
5123
|
}).then(function () {
|
|
4931
|
-
|
|
4932
|
-
|
|
4933
|
-
|
|
5124
|
+
_this45.setLocalVideoTrack(track);
|
|
5125
|
+
_this45.mediaProperties.mediaDirection.sendVideo = sendVideo;
|
|
5126
|
+
_this45.mediaProperties.mediaDirection.receiveVideo = receiveVideo;
|
|
4934
5127
|
|
|
4935
5128
|
// video state could be undefined if you have not sent video before
|
|
4936
|
-
|
|
5129
|
+
_this45.video = _this45.video || (0, _muteState.default)(_constants.VIDEO, _this45, _this45.mediaProperties.mediaDirection);
|
|
4937
5130
|
});
|
|
4938
5131
|
}
|
|
4939
5132
|
|
|
@@ -4976,7 +5169,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4976
5169
|
}, {
|
|
4977
5170
|
key: "updateShare",
|
|
4978
5171
|
value: function updateShare(options) {
|
|
4979
|
-
var
|
|
5172
|
+
var _this46 = this;
|
|
4980
5173
|
if (!options.skipSignalingCheck && !this.canUpdateMedia()) {
|
|
4981
5174
|
return this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.SHARE, options);
|
|
4982
5175
|
}
|
|
@@ -4996,29 +5189,29 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4996
5189
|
sendShare: sendShare,
|
|
4997
5190
|
localShare: stream
|
|
4998
5191
|
}).then(function () {
|
|
4999
|
-
return
|
|
5192
|
+
return _this46.checkForStopShare(sendShare, previousSendShareStatus);
|
|
5000
5193
|
}).then(function (startShare) {
|
|
5001
|
-
return
|
|
5194
|
+
return _this46.mediaProperties.webrtcMediaConnection.updateSendReceiveOptions({
|
|
5002
5195
|
send: {
|
|
5003
5196
|
screenShareVideo: track
|
|
5004
5197
|
},
|
|
5005
5198
|
receive: {
|
|
5006
|
-
audio:
|
|
5007
|
-
video:
|
|
5199
|
+
audio: _this46.mediaProperties.mediaDirection.receiveAudio,
|
|
5200
|
+
video: _this46.mediaProperties.mediaDirection.receiveVideo,
|
|
5008
5201
|
screenShareVideo: options.receiveShare,
|
|
5009
|
-
remoteQualityLevel:
|
|
5202
|
+
remoteQualityLevel: _this46.mediaProperties.remoteQualityLevel
|
|
5010
5203
|
}
|
|
5011
5204
|
}).then(function () {
|
|
5012
5205
|
if (startShare) {
|
|
5013
|
-
return
|
|
5206
|
+
return _this46.requestScreenShareFloor();
|
|
5014
5207
|
}
|
|
5015
5208
|
return _promise.default.resolve();
|
|
5016
5209
|
});
|
|
5017
5210
|
}).then(function () {
|
|
5018
|
-
|
|
5019
|
-
|
|
5211
|
+
_this46.mediaProperties.mediaDirection.sendShare = sendShare;
|
|
5212
|
+
_this46.mediaProperties.mediaDirection.receiveShare = receiveShare;
|
|
5020
5213
|
}).catch(function (error) {
|
|
5021
|
-
|
|
5214
|
+
_this46.unsetLocalShareTrack();
|
|
5022
5215
|
throw error;
|
|
5023
5216
|
});
|
|
5024
5217
|
}
|
|
@@ -5058,7 +5251,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5058
5251
|
}, {
|
|
5059
5252
|
key: "acknowledge",
|
|
5060
5253
|
value: function acknowledge(type) {
|
|
5061
|
-
var
|
|
5254
|
+
var _this47 = this;
|
|
5062
5255
|
if (!type) {
|
|
5063
5256
|
return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
|
|
5064
5257
|
}
|
|
@@ -5070,10 +5263,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5070
5263
|
}).then(function (response) {
|
|
5071
5264
|
return _promise.default.resolve(response);
|
|
5072
5265
|
}).then(function (response) {
|
|
5073
|
-
|
|
5266
|
+
_this47.meetingFiniteStateMachine.ring(type);
|
|
5074
5267
|
_metrics.default.postEvent({
|
|
5075
5268
|
event: _config.eventType.ALERT_DISPLAYED,
|
|
5076
|
-
meeting:
|
|
5269
|
+
meeting: _this47
|
|
5077
5270
|
});
|
|
5078
5271
|
return _promise.default.resolve({
|
|
5079
5272
|
response: response
|
|
@@ -5097,12 +5290,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5097
5290
|
}, {
|
|
5098
5291
|
key: "decline",
|
|
5099
5292
|
value: function decline(reason) {
|
|
5100
|
-
var
|
|
5293
|
+
var _this48 = this;
|
|
5101
5294
|
return _util.default.declineMeeting(this, reason).then(function (decline) {
|
|
5102
|
-
|
|
5295
|
+
_this48.meetingFiniteStateMachine.decline();
|
|
5103
5296
|
return _promise.default.resolve(decline);
|
|
5104
5297
|
}).catch(function (error) {
|
|
5105
|
-
|
|
5298
|
+
_this48.meetingFiniteStateMachine.fail(error);
|
|
5106
5299
|
return _promise.default.reject(error);
|
|
5107
5300
|
});
|
|
5108
5301
|
}
|
|
@@ -5118,7 +5311,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5118
5311
|
}, {
|
|
5119
5312
|
key: "leave",
|
|
5120
5313
|
value: function leave() {
|
|
5121
|
-
var
|
|
5314
|
+
var _this49 = this;
|
|
5122
5315
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
5123
5316
|
_metrics.default.postEvent({
|
|
5124
5317
|
event: _config.eventType.LEAVE,
|
|
@@ -5131,39 +5324,39 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5131
5324
|
var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
|
|
5132
5325
|
_loggerProxy.default.logger.log('Meeting:index#leave --> Leaving a meeting');
|
|
5133
5326
|
return _util.default.leaveMeeting(this, options).then(function (leave) {
|
|
5134
|
-
|
|
5135
|
-
|
|
5327
|
+
_this49.meetingFiniteStateMachine.leave();
|
|
5328
|
+
_this49.clearMeetingData();
|
|
5136
5329
|
|
|
5137
5330
|
// upload logs on leave irrespective of meeting delete
|
|
5138
|
-
_triggerProxy.default.trigger(
|
|
5331
|
+
_triggerProxy.default.trigger(_this49, {
|
|
5139
5332
|
file: 'meeting/index',
|
|
5140
5333
|
function: 'leave'
|
|
5141
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
5334
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this49);
|
|
5142
5335
|
|
|
5143
5336
|
// TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
|
|
5144
|
-
if (
|
|
5337
|
+
if (_this49.wirelessShare || _this49.guest) {
|
|
5145
5338
|
// If screen sharing clean the meeting object
|
|
5146
|
-
_triggerProxy.default.trigger(
|
|
5339
|
+
_triggerProxy.default.trigger(_this49, {
|
|
5147
5340
|
file: 'meeting/index',
|
|
5148
5341
|
function: 'leave'
|
|
5149
5342
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
|
5150
5343
|
reason: options.reason,
|
|
5151
|
-
meetingId:
|
|
5344
|
+
meetingId: _this49.id
|
|
5152
5345
|
});
|
|
5153
5346
|
}
|
|
5154
5347
|
_loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
|
|
5155
5348
|
return leave;
|
|
5156
5349
|
}).catch(function (error) {
|
|
5157
|
-
|
|
5350
|
+
_this49.meetingFiniteStateMachine.fail(error);
|
|
5158
5351
|
_loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
|
|
5159
5352
|
// upload logs on leave irrespective of meeting delete
|
|
5160
|
-
_triggerProxy.default.trigger(
|
|
5353
|
+
_triggerProxy.default.trigger(_this49, {
|
|
5161
5354
|
file: 'meeting/index',
|
|
5162
5355
|
function: 'leave'
|
|
5163
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
5356
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this49);
|
|
5164
5357
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
|
|
5165
|
-
correlation_id:
|
|
5166
|
-
locus_id:
|
|
5358
|
+
correlation_id: _this49.correlationId,
|
|
5359
|
+
locus_id: _this49.locusUrl.split('/').pop(),
|
|
5167
5360
|
reason: error.message,
|
|
5168
5361
|
stack: error.stack,
|
|
5169
5362
|
code: error.code
|
|
@@ -5183,7 +5376,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5183
5376
|
}, {
|
|
5184
5377
|
key: "startWhiteboardShare",
|
|
5185
5378
|
value: function startWhiteboardShare(channelUrl, resourceToken) {
|
|
5186
|
-
var
|
|
5379
|
+
var _this50 = this;
|
|
5187
5380
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
5188
5381
|
return element.name === 'whiteboard';
|
|
5189
5382
|
});
|
|
@@ -5206,13 +5399,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5206
5399
|
body.resourceToken = resourceToken;
|
|
5207
5400
|
}
|
|
5208
5401
|
return this.meetingRequest.changeMeetingFloor(body).then(function () {
|
|
5209
|
-
|
|
5402
|
+
_this50.isSharing = false;
|
|
5210
5403
|
return _promise.default.resolve();
|
|
5211
5404
|
}).catch(function (error) {
|
|
5212
5405
|
_loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
|
|
5213
5406
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
|
|
5214
|
-
correlation_id:
|
|
5215
|
-
locus_id:
|
|
5407
|
+
correlation_id: _this50.correlationId,
|
|
5408
|
+
locus_id: _this50.locusUrl.split('/').pop(),
|
|
5216
5409
|
reason: error.message,
|
|
5217
5410
|
stack: error.stack,
|
|
5218
5411
|
board: {
|
|
@@ -5235,7 +5428,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5235
5428
|
}, {
|
|
5236
5429
|
key: "stopWhiteboardShare",
|
|
5237
5430
|
value: function stopWhiteboardShare(channelUrl) {
|
|
5238
|
-
var
|
|
5431
|
+
var _this51 = this;
|
|
5239
5432
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
5240
5433
|
return element.name === 'whiteboard';
|
|
5241
5434
|
});
|
|
@@ -5254,8 +5447,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5254
5447
|
_metrics.default.sendBehavioralMetric(
|
|
5255
5448
|
// @ts-ignore - check if STOP_WHITEBOARD_SHARE_FAILURE exists
|
|
5256
5449
|
_constants2.default.STOP_WHITEBOARD_SHARE_FAILURE, {
|
|
5257
|
-
correlation_id:
|
|
5258
|
-
locus_id:
|
|
5450
|
+
correlation_id: _this51.correlationId,
|
|
5451
|
+
locus_id: _this51.locusUrl.split('/').pop(),
|
|
5259
5452
|
reason: error.message,
|
|
5260
5453
|
stack: error.stack,
|
|
5261
5454
|
board: {
|
|
@@ -5277,7 +5470,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5277
5470
|
}, {
|
|
5278
5471
|
key: "requestScreenShareFloor",
|
|
5279
5472
|
value: function requestScreenShareFloor() {
|
|
5280
|
-
var
|
|
5473
|
+
var _this52 = this;
|
|
5281
5474
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
|
5282
5475
|
return element.name === _constants.CONTENT;
|
|
5283
5476
|
});
|
|
@@ -5293,13 +5486,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5293
5486
|
uri: content.url,
|
|
5294
5487
|
resourceUrl: this.resourceUrl
|
|
5295
5488
|
}).then(function () {
|
|
5296
|
-
|
|
5489
|
+
_this52.isSharing = true;
|
|
5297
5490
|
return _promise.default.resolve();
|
|
5298
5491
|
}).catch(function (error) {
|
|
5299
5492
|
_loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
|
|
5300
5493
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
|
|
5301
|
-
correlation_id:
|
|
5302
|
-
locus_id:
|
|
5494
|
+
correlation_id: _this52.correlationId,
|
|
5495
|
+
locus_id: _this52.locusUrl.split('/').pop(),
|
|
5303
5496
|
reason: error.message,
|
|
5304
5497
|
stack: error.stack
|
|
5305
5498
|
});
|
|
@@ -5336,7 +5529,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5336
5529
|
}, {
|
|
5337
5530
|
key: "releaseScreenShareFloor",
|
|
5338
5531
|
value: function releaseScreenShareFloor() {
|
|
5339
|
-
var
|
|
5532
|
+
var _this53 = this;
|
|
5340
5533
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
|
5341
5534
|
return element.name === _constants.CONTENT;
|
|
5342
5535
|
});
|
|
@@ -5360,14 +5553,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5360
5553
|
}).catch(function (error) {
|
|
5361
5554
|
_loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
|
|
5362
5555
|
_metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
|
|
5363
|
-
correlation_id:
|
|
5364
|
-
locus_id:
|
|
5556
|
+
correlation_id: _this53.correlationId,
|
|
5557
|
+
locus_id: _this53.locusUrl.split('/').pop(),
|
|
5365
5558
|
reason: error.message,
|
|
5366
5559
|
stack: error.stack
|
|
5367
5560
|
});
|
|
5368
5561
|
return _promise.default.reject(error);
|
|
5369
5562
|
}).finally(function () {
|
|
5370
|
-
|
|
5563
|
+
_this53.isSharing = false;
|
|
5371
5564
|
});
|
|
5372
5565
|
}
|
|
5373
5566
|
return _promise.default.reject(new _parameter.default('Cannot stop share without content'));
|
|
@@ -5382,7 +5575,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5382
5575
|
}, {
|
|
5383
5576
|
key: "startRecording",
|
|
5384
5577
|
value: function startRecording() {
|
|
5385
|
-
return
|
|
5578
|
+
return this.recordingController.startRecording();
|
|
5386
5579
|
}
|
|
5387
5580
|
|
|
5388
5581
|
/**
|
|
@@ -5394,7 +5587,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5394
5587
|
}, {
|
|
5395
5588
|
key: "stopRecording",
|
|
5396
5589
|
value: function stopRecording() {
|
|
5397
|
-
return
|
|
5590
|
+
return this.recordingController.stopRecording();
|
|
5398
5591
|
}
|
|
5399
5592
|
|
|
5400
5593
|
/**
|
|
@@ -5406,7 +5599,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5406
5599
|
}, {
|
|
5407
5600
|
key: "pauseRecording",
|
|
5408
5601
|
value: function pauseRecording() {
|
|
5409
|
-
return
|
|
5602
|
+
return this.recordingController.pauseRecording();
|
|
5410
5603
|
}
|
|
5411
5604
|
|
|
5412
5605
|
/**
|
|
@@ -5418,7 +5611,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5418
5611
|
}, {
|
|
5419
5612
|
key: "resumeRecording",
|
|
5420
5613
|
value: function resumeRecording() {
|
|
5421
|
-
return
|
|
5614
|
+
return this.recordingController.resumeRecording();
|
|
5422
5615
|
}
|
|
5423
5616
|
|
|
5424
5617
|
/**
|
|
@@ -5499,7 +5692,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5499
5692
|
}, {
|
|
5500
5693
|
key: "changeVideoLayout",
|
|
5501
5694
|
value: function changeVideoLayout(layoutType) {
|
|
5502
|
-
var
|
|
5695
|
+
var _this54 = this;
|
|
5503
5696
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
5504
5697
|
var main = renderInfo.main,
|
|
5505
5698
|
content = renderInfo.content;
|
|
@@ -5553,7 +5746,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5553
5746
|
}
|
|
5554
5747
|
this.lastVideoLayoutInfo = (0, _cloneDeep2.default)(layoutInfo);
|
|
5555
5748
|
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
|
|
5556
|
-
_triggerProxy.default.trigger(
|
|
5749
|
+
_triggerProxy.default.trigger(_this54, {
|
|
5557
5750
|
file: 'meeting/index',
|
|
5558
5751
|
function: 'changeVideoLayout'
|
|
5559
5752
|
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
|
|
@@ -5568,7 +5761,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5568
5761
|
content: layoutInfo.content
|
|
5569
5762
|
}).then(function (response) {
|
|
5570
5763
|
if (response && response.body && response.body.locus) {
|
|
5571
|
-
|
|
5764
|
+
_this54.locusInfo.onFullLocus(response.body.locus);
|
|
5572
5765
|
}
|
|
5573
5766
|
}).catch(function (error) {
|
|
5574
5767
|
_loggerProxy.default.logger.error('Meeting:index#changeVideoLayout --> Error ', error);
|
|
@@ -5584,7 +5777,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5584
5777
|
}, {
|
|
5585
5778
|
key: "setLocalVideoQuality",
|
|
5586
5779
|
value: function setLocalVideoQuality(level) {
|
|
5587
|
-
var
|
|
5780
|
+
var _this55 = this;
|
|
5588
5781
|
_loggerProxy.default.logger.log("Meeting:index#setLocalVideoQuality --> Setting quality to ".concat(level));
|
|
5589
5782
|
if (!_constants.VIDEO_RESOLUTIONS[level]) {
|
|
5590
5783
|
return this.rejectWithErrorLog("Meeting:index#setLocalVideoQuality --> ".concat(level, " not defined"));
|
|
@@ -5613,14 +5806,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5613
5806
|
// open bug link: https://bugs.chromium.org/p/chromium/issues/detail?id=943469
|
|
5614
5807
|
if (isBrowser('chrome') && this.mediaProperties.videoTrack) _media.default.stopTracks(this.mediaProperties.videoTrack);
|
|
5615
5808
|
return this.getMediaStreams(mediaDirection, _constants.VIDEO_RESOLUTIONS[level]).then( /*#__PURE__*/function () {
|
|
5616
|
-
var
|
|
5617
|
-
var
|
|
5809
|
+
var _ref16 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(_ref15) {
|
|
5810
|
+
var _ref17, localStream;
|
|
5618
5811
|
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
5619
5812
|
while (1) switch (_context8.prev = _context8.next) {
|
|
5620
5813
|
case 0:
|
|
5621
|
-
|
|
5814
|
+
_ref17 = (0, _slicedToArray2.default)(_ref15, 1), localStream = _ref17[0];
|
|
5622
5815
|
_context8.next = 3;
|
|
5623
|
-
return
|
|
5816
|
+
return _this55.updateVideo({
|
|
5624
5817
|
sendVideo: true,
|
|
5625
5818
|
receiveVideo: true,
|
|
5626
5819
|
stream: localStream
|
|
@@ -5634,7 +5827,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5634
5827
|
}, _callee8);
|
|
5635
5828
|
}));
|
|
5636
5829
|
return function (_x5) {
|
|
5637
|
-
return
|
|
5830
|
+
return _ref16.apply(this, arguments);
|
|
5638
5831
|
};
|
|
5639
5832
|
}());
|
|
5640
5833
|
}
|
|
@@ -5677,7 +5870,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5677
5870
|
}, {
|
|
5678
5871
|
key: "setMeetingQuality",
|
|
5679
5872
|
value: function setMeetingQuality(level) {
|
|
5680
|
-
var
|
|
5873
|
+
var _this56 = this;
|
|
5681
5874
|
_loggerProxy.default.logger.log("Meeting:index#setMeetingQuality --> Setting quality to ".concat(level));
|
|
5682
5875
|
if (!_constants.QUALITY_LEVELS[level]) {
|
|
5683
5876
|
return this.rejectWithErrorLog("Meeting:index#setMeetingQuality --> ".concat(level, " not defined"));
|
|
@@ -5699,15 +5892,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5699
5892
|
receiveVideo = _this$mediaProperties4.receiveVideo,
|
|
5700
5893
|
sendVideo = _this$mediaProperties4.sendVideo;
|
|
5701
5894
|
return (sendVideo ? this.setLocalVideoQuality(level) : _promise.default.resolve()).then(function () {
|
|
5702
|
-
return receiveAudio || receiveVideo ?
|
|
5895
|
+
return receiveAudio || receiveVideo ? _this56.setRemoteQualityLevel(level) : _promise.default.resolve();
|
|
5703
5896
|
}).catch(function (error) {
|
|
5704
5897
|
// From troubleshooting it seems that the stream itself doesn't change the max-fs if the peer connection isn't stable
|
|
5705
|
-
|
|
5706
|
-
|
|
5898
|
+
_this56.mediaProperties.setLocalQualityLevel(previousLevel.local);
|
|
5899
|
+
_this56.mediaProperties.setRemoteQualityLevel(previousLevel.remote);
|
|
5707
5900
|
_loggerProxy.default.logger.error("Meeting:index#setMeetingQuality --> ".concat(error.message));
|
|
5708
5901
|
_metrics.default.sendBehavioralMetric(_constants2.default.SET_MEETING_QUALITY_FAILURE, {
|
|
5709
|
-
correlation_id:
|
|
5710
|
-
locus_id:
|
|
5902
|
+
correlation_id: _this56.correlationId,
|
|
5903
|
+
locus_id: _this56.locusUrl.split('/').pop(),
|
|
5711
5904
|
reason: error.message,
|
|
5712
5905
|
stack: error.stack
|
|
5713
5906
|
}, {
|
|
@@ -5733,7 +5926,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5733
5926
|
}, {
|
|
5734
5927
|
key: "shareScreen",
|
|
5735
5928
|
value: function shareScreen() {
|
|
5736
|
-
var
|
|
5929
|
+
var _this57 = this;
|
|
5737
5930
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
5738
5931
|
_loggerProxy.default.logger.log('Meeting:index#shareScreen --> Getting local share');
|
|
5739
5932
|
var shareConstraints = _objectSpread({
|
|
@@ -5743,9 +5936,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5743
5936
|
|
|
5744
5937
|
// @ts-ignore - config coming from registerPlugin
|
|
5745
5938
|
return _media.default.getDisplayMedia(shareConstraints, this.config).then(function (shareStream) {
|
|
5746
|
-
return
|
|
5939
|
+
return _this57.updateShare({
|
|
5747
5940
|
sendShare: true,
|
|
5748
|
-
receiveShare:
|
|
5941
|
+
receiveShare: _this57.mediaProperties.mediaDirection.receiveShare,
|
|
5749
5942
|
stream: shareStream
|
|
5750
5943
|
});
|
|
5751
5944
|
}).catch(function (error) {
|
|
@@ -5758,8 +5951,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5758
5951
|
// TODO: The getDisplayMedia errors need to be moved inside `media.getDisplayMedia`
|
|
5759
5952
|
var metricName = _constants2.default.GET_DISPLAY_MEDIA_FAILURE;
|
|
5760
5953
|
var data = {
|
|
5761
|
-
correlation_id:
|
|
5762
|
-
locus_id:
|
|
5954
|
+
correlation_id: _this57.correlationId,
|
|
5955
|
+
locus_id: _this57.locusUrl.split('/').pop(),
|
|
5763
5956
|
reason: error.message,
|
|
5764
5957
|
stack: error.stack
|
|
5765
5958
|
};
|
|
@@ -5835,9 +6028,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5835
6028
|
*/
|
|
5836
6029
|
}, {
|
|
5837
6030
|
key: "handleMediaLogging",
|
|
5838
|
-
value: function handleMediaLogging(
|
|
5839
|
-
var audioTrack =
|
|
5840
|
-
videoTrack =
|
|
6031
|
+
value: function handleMediaLogging(_ref18) {
|
|
6032
|
+
var audioTrack = _ref18.audioTrack,
|
|
6033
|
+
videoTrack = _ref18.videoTrack;
|
|
5841
6034
|
_util.default.handleVideoLogging(videoTrack);
|
|
5842
6035
|
_util.default.handleAudioLogging(audioTrack);
|
|
5843
6036
|
}
|
|
@@ -6044,7 +6237,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6044
6237
|
}, {
|
|
6045
6238
|
key: "endMeetingForAll",
|
|
6046
6239
|
value: function endMeetingForAll() {
|
|
6047
|
-
var
|
|
6240
|
+
var _this58 = this;
|
|
6048
6241
|
_metrics.default.postEvent({
|
|
6049
6242
|
event: _config.eventType.LEAVE,
|
|
6050
6243
|
meeting: this,
|
|
@@ -6059,25 +6252,25 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6059
6252
|
locus_id: this.locusId
|
|
6060
6253
|
});
|
|
6061
6254
|
return _util.default.endMeetingForAll(this).then(function (end) {
|
|
6062
|
-
|
|
6063
|
-
|
|
6255
|
+
_this58.meetingFiniteStateMachine.end();
|
|
6256
|
+
_this58.clearMeetingData();
|
|
6064
6257
|
// upload logs on leave irrespective of meeting delete
|
|
6065
|
-
_triggerProxy.default.trigger(
|
|
6258
|
+
_triggerProxy.default.trigger(_this58, {
|
|
6066
6259
|
file: 'meeting/index',
|
|
6067
6260
|
function: 'endMeetingForAll'
|
|
6068
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
6261
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this58);
|
|
6069
6262
|
return end;
|
|
6070
6263
|
}).catch(function (error) {
|
|
6071
|
-
|
|
6264
|
+
_this58.meetingFiniteStateMachine.fail(error);
|
|
6072
6265
|
_loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
|
|
6073
6266
|
// upload logs on leave irrespective of meeting delete
|
|
6074
|
-
_triggerProxy.default.trigger(
|
|
6267
|
+
_triggerProxy.default.trigger(_this58, {
|
|
6075
6268
|
file: 'meeting/index',
|
|
6076
6269
|
function: 'endMeetingForAll'
|
|
6077
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
6270
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this58);
|
|
6078
6271
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
|
|
6079
|
-
correlation_id:
|
|
6080
|
-
locus_id:
|
|
6272
|
+
correlation_id: _this58.correlationId,
|
|
6273
|
+
locus_id: _this58.locusUrl.split('/').pop(),
|
|
6081
6274
|
reason: error.message,
|
|
6082
6275
|
stack: error.stack,
|
|
6083
6276
|
code: error.code
|
|
@@ -6221,8 +6414,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6221
6414
|
* @memberof Meeting
|
|
6222
6415
|
*/
|
|
6223
6416
|
function sendReaction(reactionType, skinToneType) {
|
|
6224
|
-
var _this$
|
|
6225
|
-
var reactionChannelUrl = (_this$
|
|
6417
|
+
var _this$locusInfo6, _this$locusInfo6$cont, _this$locusInfo6$cont2;
|
|
6418
|
+
var reactionChannelUrl = (_this$locusInfo6 = this.locusInfo) === null || _this$locusInfo6 === void 0 ? void 0 : (_this$locusInfo6$cont = _this$locusInfo6.controls) === null || _this$locusInfo6$cont === void 0 ? void 0 : (_this$locusInfo6$cont2 = _this$locusInfo6$cont.reactions) === null || _this$locusInfo6$cont2 === void 0 ? void 0 : _this$locusInfo6$cont2.reactionChannelUrl;
|
|
6226
6419
|
var participantId = this.members.selfId;
|
|
6227
6420
|
var reactionData = _reactions.Reactions[reactionType];
|
|
6228
6421
|
if (!reactionData) {
|
|
@@ -6253,8 +6446,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6253
6446
|
}, {
|
|
6254
6447
|
key: "toggleReactions",
|
|
6255
6448
|
value: function toggleReactions(enable) {
|
|
6256
|
-
var _this$
|
|
6257
|
-
var isEnabled = (_this$
|
|
6449
|
+
var _this$locusInfo7, _this$locusInfo7$cont, _this$locusInfo7$cont2;
|
|
6450
|
+
var isEnabled = (_this$locusInfo7 = this.locusInfo) === null || _this$locusInfo7 === void 0 ? void 0 : (_this$locusInfo7$cont = _this$locusInfo7.controls) === null || _this$locusInfo7$cont === void 0 ? void 0 : (_this$locusInfo7$cont2 = _this$locusInfo7$cont.reactions) === null || _this$locusInfo7$cont2 === void 0 ? void 0 : _this$locusInfo7$cont2.enabled;
|
|
6258
6451
|
if (isEnabled && enable || !isEnabled && !enable) {
|
|
6259
6452
|
return _promise.default.resolve("Reactions are already ".concat(isEnabled ? 'enabled' : 'disabled', "."));
|
|
6260
6453
|
}
|