@webex/plugin-meetings 3.0.0-beta.17 → 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 +38 -5
- 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/index.js +651 -460
- 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 +4 -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 +35 -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/index.ts +352 -111
- package/src/meeting/request.ts +9 -31
- package/src/meeting/request.type.ts +2 -0
- package/src/meeting/util.ts +3 -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/index.js +235 -50
- package/test/unit/spec/meeting/request.js +17 -0
- package/test/unit/spec/meeting/utils.js +20 -129
- 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),
|
|
@@ -2454,16 +2600,17 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2454
2600
|
isRealTimeTranslationEnabled: _util.default.isRealTimeTranslationEnabled(payload.info.userDisplayHints),
|
|
2455
2601
|
canSelectSpokenLanguages: _util.default.canSelectSpokenLanguages(payload.info.userDisplayHints),
|
|
2456
2602
|
waitingForOthersToJoin: _util.default.waitingForOthersToJoin(payload.info.userDisplayHints),
|
|
2457
|
-
canEnableReactions: _util.default.canEnableReactions(
|
|
2458
|
-
canSendReactions: _util.default.canSendReactions(
|
|
2603
|
+
canEnableReactions: _util.default.canEnableReactions(_this16.inMeetingActions.canEnableReactions, payload.info.userDisplayHints),
|
|
2604
|
+
canSendReactions: _util.default.canSendReactions(_this16.inMeetingActions.canSendReactions, payload.info.userDisplayHints)
|
|
2459
2605
|
});
|
|
2606
|
+
_this16.recordingController.setDisplayHints(payload.info.userDisplayHints);
|
|
2460
2607
|
if (changed) {
|
|
2461
|
-
_triggerProxy.default.trigger(
|
|
2608
|
+
_triggerProxy.default.trigger(_this16, {
|
|
2462
2609
|
file: 'meeting/index',
|
|
2463
2610
|
function: 'setUpLocusInfoMeetingInfoListener'
|
|
2464
|
-
}, _constants.EVENT_TRIGGERS.MEETING_ACTIONS_UPDATE,
|
|
2611
|
+
}, _constants.EVENT_TRIGGERS.MEETING_ACTIONS_UPDATE, _this16.inMeetingActions.get());
|
|
2465
2612
|
}
|
|
2466
|
-
|
|
2613
|
+
_this16.handleDataChannelUrlChange(payload.info.datachannelUrl);
|
|
2467
2614
|
}
|
|
2468
2615
|
});
|
|
2469
2616
|
}
|
|
@@ -2476,12 +2623,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2476
2623
|
}, {
|
|
2477
2624
|
key: "handleDataChannelUrlChange",
|
|
2478
2625
|
value: function handleDataChannelUrlChange(datachannelUrl) {
|
|
2479
|
-
var
|
|
2626
|
+
var _this17 = this;
|
|
2627
|
+
// @ts-ignore - config coming from registerPlugin
|
|
2480
2628
|
if (datachannelUrl && this.config.enableAutomaticLLM) {
|
|
2481
2629
|
// Defer this as updateLLMConnection relies upon this.locusInfo.url which is only set
|
|
2482
2630
|
// after the MEETING_INFO_UPDATED callback finishes
|
|
2483
2631
|
(0, _defer2.default)(function () {
|
|
2484
|
-
|
|
2632
|
+
_this17.updateLLMConnection();
|
|
2485
2633
|
});
|
|
2486
2634
|
}
|
|
2487
2635
|
}
|
|
@@ -2495,10 +2643,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2495
2643
|
}, {
|
|
2496
2644
|
key: "setUpLocusEmbeddedAppsListener",
|
|
2497
2645
|
value: function setUpLocusEmbeddedAppsListener() {
|
|
2498
|
-
var
|
|
2646
|
+
var _this18 = this;
|
|
2499
2647
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.EMBEDDED_APPS_UPDATED, function (embeddedApps) {
|
|
2500
2648
|
if (embeddedApps) {
|
|
2501
|
-
_triggerProxy.default.trigger(
|
|
2649
|
+
_triggerProxy.default.trigger(_this18, {
|
|
2502
2650
|
file: 'meeting/index',
|
|
2503
2651
|
function: 'setUpLocusEmbeddedAppsListener'
|
|
2504
2652
|
}, _constants.EVENT_TRIGGERS.MEETING_EMBEDDED_APPS_UPDATE, embeddedApps);
|
|
@@ -2515,11 +2663,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2515
2663
|
}, {
|
|
2516
2664
|
key: "setUpLocusInfoSelfListener",
|
|
2517
2665
|
value: function setUpLocusInfoSelfListener() {
|
|
2518
|
-
var
|
|
2666
|
+
var _this19 = this;
|
|
2519
2667
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.LOCAL_UNMUTE_REQUIRED, function (payload) {
|
|
2520
|
-
if (
|
|
2521
|
-
|
|
2522
|
-
_triggerProxy.default.trigger(
|
|
2668
|
+
if (_this19.audio) {
|
|
2669
|
+
_this19.audio.handleServerLocalUnmuteRequired(_this19);
|
|
2670
|
+
_triggerProxy.default.trigger(_this19, {
|
|
2523
2671
|
file: 'meeting/index',
|
|
2524
2672
|
function: 'setUpLocusInfoSelfListener'
|
|
2525
2673
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_UNMUTED_BY_OTHERS, {
|
|
@@ -2529,15 +2677,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2529
2677
|
});
|
|
2530
2678
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_REMOTE_MUTE_STATUS_UPDATED, function (payload) {
|
|
2531
2679
|
if (payload) {
|
|
2532
|
-
var
|
|
2533
|
-
if (
|
|
2534
|
-
|
|
2680
|
+
var _this19$audio;
|
|
2681
|
+
if (_this19.audio) {
|
|
2682
|
+
_this19.audio.handleServerRemoteMuteUpdate(payload.muted, payload.unmuteAllowed);
|
|
2535
2683
|
}
|
|
2536
2684
|
// with "mute on entry" server will send us remote mute even if we don't have media configured,
|
|
2537
2685
|
// so if being muted by others, always send the notification,
|
|
2538
2686
|
// but if being unmuted, only send it if we are also locally unmuted
|
|
2539
|
-
if (payload.muted || !((
|
|
2540
|
-
_triggerProxy.default.trigger(
|
|
2687
|
+
if (payload.muted || !((_this19$audio = _this19.audio) !== null && _this19$audio !== void 0 && _this19$audio.isMuted())) {
|
|
2688
|
+
_triggerProxy.default.trigger(_this19, {
|
|
2541
2689
|
file: 'meeting/index',
|
|
2542
2690
|
function: 'setUpLocusInfoSelfListener'
|
|
2543
2691
|
}, payload.muted ? _constants.EVENT_TRIGGERS.MEETING_SELF_MUTED_BY_OTHERS : _constants.EVENT_TRIGGERS.MEETING_SELF_UNMUTED_BY_OTHERS, {
|
|
@@ -2547,7 +2695,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2547
2695
|
}
|
|
2548
2696
|
});
|
|
2549
2697
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.LOCAL_UNMUTE_REQUESTED, function (payload) {
|
|
2550
|
-
_triggerProxy.default.trigger(
|
|
2698
|
+
_triggerProxy.default.trigger(_this19, {
|
|
2551
2699
|
file: 'meeting/index',
|
|
2552
2700
|
function: 'setUpLocusInfoSelfListener'
|
|
2553
2701
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_REQUESTED_TO_UNMUTE, {
|
|
@@ -2556,8 +2704,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2556
2704
|
});
|
|
2557
2705
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_UNADMITTED_GUEST, function (payload) {
|
|
2558
2706
|
if (payload) {
|
|
2559
|
-
|
|
2560
|
-
_triggerProxy.default.trigger(
|
|
2707
|
+
_this19.startKeepAlive();
|
|
2708
|
+
_triggerProxy.default.trigger(_this19, {
|
|
2561
2709
|
file: 'meeting/index',
|
|
2562
2710
|
function: 'setUpLocusInfoSelfListener'
|
|
2563
2711
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_LOBBY_WAITING, {
|
|
@@ -2565,14 +2713,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2565
2713
|
});
|
|
2566
2714
|
_metrics.default.postEvent({
|
|
2567
2715
|
event: _config.eventType.LOBBY_ENTERED,
|
|
2568
|
-
meeting:
|
|
2716
|
+
meeting: _this19
|
|
2569
2717
|
});
|
|
2570
2718
|
}
|
|
2571
2719
|
});
|
|
2572
2720
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ADMITTED_GUEST, function (payload) {
|
|
2573
|
-
|
|
2721
|
+
_this19.stopKeepAlive();
|
|
2574
2722
|
if (payload) {
|
|
2575
|
-
_triggerProxy.default.trigger(
|
|
2723
|
+
_triggerProxy.default.trigger(_this19, {
|
|
2576
2724
|
file: 'meeting/index',
|
|
2577
2725
|
function: 'setUpLocusInfoSelfListener'
|
|
2578
2726
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_GUEST_ADMITTED, {
|
|
@@ -2580,7 +2728,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2580
2728
|
});
|
|
2581
2729
|
_metrics.default.postEvent({
|
|
2582
2730
|
event: _config.eventType.LOBBY_EXITED,
|
|
2583
|
-
meeting:
|
|
2731
|
+
meeting: _this19
|
|
2584
2732
|
});
|
|
2585
2733
|
}
|
|
2586
2734
|
});
|
|
@@ -2588,42 +2736,49 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2588
2736
|
// @ts-ignore - check if MEDIA_INACTIVITY exists
|
|
2589
2737
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEDIA_INACTIVITY, function () {
|
|
2590
2738
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_MEDIA_INACTIVE, {
|
|
2591
|
-
correlation_id:
|
|
2592
|
-
locus_id:
|
|
2739
|
+
correlation_id: _this19.correlationId,
|
|
2740
|
+
locus_id: _this19.locusId
|
|
2593
2741
|
});
|
|
2594
|
-
|
|
2742
|
+
_this19.reconnect();
|
|
2595
2743
|
});
|
|
2596
2744
|
|
|
2597
2745
|
// There is two stats for mute one is the actual media being sent or received
|
|
2598
2746
|
// The second on is if the audio is muted, we need to tell the statsAnalyzer when
|
|
2599
2747
|
// the audio is muted or the user is not willing to send media
|
|
2600
2748
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEDIA_STATUS_CHANGE, function (status) {
|
|
2601
|
-
if (
|
|
2602
|
-
var
|
|
2603
|
-
|
|
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({
|
|
2604
2752
|
actual: status,
|
|
2605
2753
|
expected: {
|
|
2606
2754
|
// We need to check what should be the actual direction of media
|
|
2607
|
-
sendAudio: ((
|
|
2608
|
-
sendVideo: ((
|
|
2609
|
-
sendShare: (
|
|
2610
|
-
receiveAudio: (
|
|
2611
|
-
receiveVideo: (
|
|
2612
|
-
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
|
|
2613
2761
|
}
|
|
2614
2762
|
});
|
|
2615
2763
|
}
|
|
2616
2764
|
});
|
|
2617
2765
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_CANNOT_VIEW_PARTICIPANT_LIST_CHANGE, function (payload) {
|
|
2618
|
-
_triggerProxy.default.trigger(
|
|
2766
|
+
_triggerProxy.default.trigger(_this19, {
|
|
2619
2767
|
file: 'meeting/index',
|
|
2620
2768
|
function: 'setUpLocusInfoSelfListener'
|
|
2621
2769
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_CANNOT_VIEW_PARTICIPANT_LIST, {
|
|
2622
2770
|
payload: payload
|
|
2623
2771
|
});
|
|
2624
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
|
+
});
|
|
2625
2780
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_IS_SHARING_BLOCKED_CHANGE, function (payload) {
|
|
2626
|
-
_triggerProxy.default.trigger(
|
|
2781
|
+
_triggerProxy.default.trigger(_this19, {
|
|
2627
2782
|
file: 'meeting/index',
|
|
2628
2783
|
function: 'setUpLocusInfoSelfListener'
|
|
2629
2784
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_IS_SHARING_BLOCKED, {
|
|
@@ -2641,17 +2796,17 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2641
2796
|
}, {
|
|
2642
2797
|
key: "setUpLocusInfoMeetingListener",
|
|
2643
2798
|
value: function setUpLocusInfoMeetingListener() {
|
|
2644
|
-
var
|
|
2799
|
+
var _this20 = this;
|
|
2645
2800
|
this.locusInfo.on(_constants.EVENTS.REMOTE_RESPONSE, function (payload) {
|
|
2646
|
-
|
|
2801
|
+
_this20.meetingFiniteStateMachine.remote(payload);
|
|
2647
2802
|
if (payload.remoteDeclined) {
|
|
2648
|
-
|
|
2803
|
+
_this20.leave({
|
|
2649
2804
|
reason: payload.reason
|
|
2650
2805
|
}).then(function () {
|
|
2651
2806
|
_loggerProxy.default.logger.info('Meeting:index#setUpLocusInfoMeetingListener --> REMOTE_RESPONSE. Attempting to leave meeting.');
|
|
2652
2807
|
}).catch(function (error) {
|
|
2653
2808
|
// @ts-ignore
|
|
2654
|
-
_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));
|
|
2655
2810
|
});
|
|
2656
2811
|
}
|
|
2657
2812
|
});
|
|
@@ -2659,10 +2814,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2659
2814
|
// if self state is NOT left
|
|
2660
2815
|
|
|
2661
2816
|
// TODO: Handle sharing and wireless sharing when meeting end
|
|
2662
|
-
if (
|
|
2663
|
-
if (
|
|
2664
|
-
|
|
2665
|
-
|
|
2817
|
+
if (_this20.wirelessShare) {
|
|
2818
|
+
if (_this20.mediaProperties.shareTrack) {
|
|
2819
|
+
_this20.mediaProperties.shareTrack.onended = null;
|
|
2820
|
+
_this20.mediaProperties.shareTrack.stop();
|
|
2666
2821
|
}
|
|
2667
2822
|
}
|
|
2668
2823
|
// when multiple WEB deviceType join with same user
|
|
@@ -2676,23 +2831,23 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2676
2831
|
if (payload.shouldLeave) {
|
|
2677
2832
|
// TODO: We should do cleaning of meeting object if the shouldLeave: false because there might be meeting object which we are not cleaning
|
|
2678
2833
|
|
|
2679
|
-
|
|
2834
|
+
_this20.leave({
|
|
2680
2835
|
reason: payload.reason
|
|
2681
2836
|
}).then(function () {
|
|
2682
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.');
|
|
2683
2838
|
}).catch(function (error) {
|
|
2684
2839
|
// @ts-ignore
|
|
2685
|
-
_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));
|
|
2686
2841
|
});
|
|
2687
2842
|
} else {
|
|
2688
2843
|
_loggerProxy.default.logger.info('Meeting:index#setUpLocusInfoMeetingListener --> MEETING_REMOVED_REASON', payload.reason);
|
|
2689
|
-
_util.default.cleanUp(
|
|
2690
|
-
_triggerProxy.default.trigger(
|
|
2844
|
+
_util.default.cleanUp(_this20);
|
|
2845
|
+
_triggerProxy.default.trigger(_this20, {
|
|
2691
2846
|
file: 'meeting/index',
|
|
2692
2847
|
function: 'setUpLocusInfoMeetingListener'
|
|
2693
2848
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
|
2694
2849
|
reason: payload.reason,
|
|
2695
|
-
meetingId:
|
|
2850
|
+
meetingId: _this20.id
|
|
2696
2851
|
});
|
|
2697
2852
|
}
|
|
2698
2853
|
});
|
|
@@ -2709,13 +2864,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2709
2864
|
}, {
|
|
2710
2865
|
key: "updateMeetingObject",
|
|
2711
2866
|
value: function updateMeetingObject(object) {
|
|
2712
|
-
var
|
|
2867
|
+
var _this21 = this;
|
|
2713
2868
|
// Validate if these are valid meeting object property
|
|
2714
2869
|
// TODO: add a check to make sure the value passed in the constructor
|
|
2715
2870
|
// is not changed by any delta event
|
|
2716
2871
|
if (object && (0, _keys.default)(object).length) {
|
|
2717
2872
|
(0, _keys.default)(object).forEach(function (key) {
|
|
2718
|
-
|
|
2873
|
+
_this21[key] = object[key];
|
|
2719
2874
|
});
|
|
2720
2875
|
}
|
|
2721
2876
|
}
|
|
@@ -2923,7 +3078,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2923
3078
|
this.conversationUrl = ((_locusMeetingObject = locusMeetingObject) === null || _locusMeetingObject === void 0 ? void 0 : _locusMeetingObject.conversationUrl) || (webexMeetingInfo === null || webexMeetingInfo === void 0 ? void 0 : webexMeetingInfo.conversationUrl) || this.conversationUrl;
|
|
2924
3079
|
this.locusUrl = ((_locusMeetingObject2 = locusMeetingObject) === null || _locusMeetingObject2 === void 0 ? void 0 : _locusMeetingObject2.url) || (webexMeetingInfo === null || webexMeetingInfo === void 0 ? void 0 : webexMeetingInfo.locusUrl) || this.locusUrl;
|
|
2925
3080
|
// @ts-ignore - config coming from registerPlugin
|
|
2926
|
-
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);
|
|
2927
3084
|
// @ts-ignore - config coming from registerPlugin
|
|
2928
3085
|
if (this.config.experimental.enableUnifiedMeetings) {
|
|
2929
3086
|
var _locusMeetingObject5;
|
|
@@ -3076,7 +3233,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3076
3233
|
}, {
|
|
3077
3234
|
key: "closeRemoteTracks",
|
|
3078
3235
|
value: function closeRemoteTracks() {
|
|
3079
|
-
var
|
|
3236
|
+
var _this22 = this;
|
|
3080
3237
|
var _this$mediaProperties = this.mediaProperties,
|
|
3081
3238
|
remoteAudioTrack = _this$mediaProperties.remoteAudioTrack,
|
|
3082
3239
|
remoteVideoTrack = _this$mediaProperties.remoteVideoTrack,
|
|
@@ -3090,7 +3247,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3090
3247
|
*/
|
|
3091
3248
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
3092
3249
|
var triggerMediaStoppedEvent = function triggerMediaStoppedEvent(mediaType) {
|
|
3093
|
-
_triggerProxy.default.trigger(
|
|
3250
|
+
_triggerProxy.default.trigger(_this22, {
|
|
3094
3251
|
file: 'meeting/index',
|
|
3095
3252
|
function: 'closeRemoteTracks'
|
|
3096
3253
|
}, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
|
|
@@ -3134,7 +3291,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3134
3291
|
function: 'setLocalTracks'
|
|
3135
3292
|
}, _constants.EVENT_TRIGGERS.MEDIA_READY, {
|
|
3136
3293
|
type: _constants.EVENT_TYPES.LOCAL,
|
|
3137
|
-
stream:
|
|
3294
|
+
stream: _util3.default.createMediaStream([this.mediaProperties.audioTrack, this.mediaProperties.videoTrack])
|
|
3138
3295
|
});
|
|
3139
3296
|
}
|
|
3140
3297
|
|
|
@@ -3238,7 +3395,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3238
3395
|
}, {
|
|
3239
3396
|
key: "setLocalShareTrack",
|
|
3240
3397
|
value: function setLocalShareTrack(localShare) {
|
|
3241
|
-
var
|
|
3398
|
+
var _this23 = this;
|
|
3242
3399
|
var settings = null;
|
|
3243
3400
|
if (localShare) {
|
|
3244
3401
|
this.mediaProperties.setLocalShareTrack(_util.default.getTrack(localShare).videoTrack);
|
|
@@ -3256,7 +3413,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3256
3413
|
_loggerProxy.default.logger.log('Meeting:index#setLocalShareTrack --> Screen settings.', (0, _stringify.default)(this.mediaProperties.mediaSettings.screen));
|
|
3257
3414
|
}
|
|
3258
3415
|
contentTracks.onended = function () {
|
|
3259
|
-
return
|
|
3416
|
+
return _this23.handleShareTrackEnded(localShare);
|
|
3260
3417
|
};
|
|
3261
3418
|
_triggerProxy.default.trigger(this, {
|
|
3262
3419
|
file: 'meeting/index',
|
|
@@ -3278,7 +3435,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3278
3435
|
}, {
|
|
3279
3436
|
key: "closeLocalStream",
|
|
3280
3437
|
value: function closeLocalStream() {
|
|
3281
|
-
var
|
|
3438
|
+
var _this24 = this;
|
|
3282
3439
|
var _this$mediaProperties2 = this.mediaProperties,
|
|
3283
3440
|
audioTrack = _this$mediaProperties2.audioTrack,
|
|
3284
3441
|
videoTrack = _this$mediaProperties2.videoTrack;
|
|
@@ -3290,7 +3447,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3290
3447
|
|
|
3291
3448
|
// triggers event for audio and video stop , sometime either audio or video one of them exists
|
|
3292
3449
|
if (audioStopped || videoStopped) {
|
|
3293
|
-
_triggerProxy.default.trigger(
|
|
3450
|
+
_triggerProxy.default.trigger(_this24, {
|
|
3294
3451
|
file: 'meeting/index',
|
|
3295
3452
|
function: 'closeLocalStream'
|
|
3296
3453
|
}, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
|
|
@@ -3312,11 +3469,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3312
3469
|
}, {
|
|
3313
3470
|
key: "closeLocalShare",
|
|
3314
3471
|
value: function closeLocalShare() {
|
|
3315
|
-
var
|
|
3472
|
+
var _this25 = this;
|
|
3316
3473
|
var track = this.mediaProperties.shareTrack;
|
|
3317
3474
|
return _media.default.stopTracks(track).then(function () {
|
|
3318
3475
|
if (track && track.readyState === _constants.ENDED) {
|
|
3319
|
-
_triggerProxy.default.trigger(
|
|
3476
|
+
_triggerProxy.default.trigger(_this25, {
|
|
3320
3477
|
file: 'meeting/index',
|
|
3321
3478
|
function: 'closeLocalShare'
|
|
3322
3479
|
}, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
|
|
@@ -3362,7 +3519,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3362
3519
|
}, {
|
|
3363
3520
|
key: "setMercuryListener",
|
|
3364
3521
|
value: function setMercuryListener() {
|
|
3365
|
-
var
|
|
3522
|
+
var _this26 = this;
|
|
3366
3523
|
// Client will have a socket manager and handle reconnecting to mercury, when we reconnect to mercury
|
|
3367
3524
|
// if the meeting has active peer connections, it should try to reconnect.
|
|
3368
3525
|
// @ts-ignore
|
|
@@ -3370,16 +3527,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3370
3527
|
_loggerProxy.default.logger.info('Meeting:index#setMercuryListener --> Web socket online');
|
|
3371
3528
|
|
|
3372
3529
|
// Only send restore event when it was disconnected before and for connected later
|
|
3373
|
-
if (!
|
|
3530
|
+
if (!_this26.hasWebsocketConnected) {
|
|
3374
3531
|
_metrics.default.postEvent({
|
|
3375
3532
|
event: _config.eventType.MERCURY_CONNECTION_RESTORED,
|
|
3376
|
-
meeting:
|
|
3533
|
+
meeting: _this26
|
|
3377
3534
|
});
|
|
3378
3535
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_RESTORED, {
|
|
3379
|
-
correlation_id:
|
|
3536
|
+
correlation_id: _this26.correlationId
|
|
3380
3537
|
});
|
|
3381
3538
|
}
|
|
3382
|
-
|
|
3539
|
+
_this26.hasWebsocketConnected = true;
|
|
3383
3540
|
});
|
|
3384
3541
|
|
|
3385
3542
|
// @ts-ignore
|
|
@@ -3387,10 +3544,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3387
3544
|
_loggerProxy.default.logger.error('Meeting:index#setMercuryListener --> Web socket offline');
|
|
3388
3545
|
_metrics.default.postEvent({
|
|
3389
3546
|
event: _config.eventType.MERCURY_CONNECTION_LOST,
|
|
3390
|
-
meeting:
|
|
3547
|
+
meeting: _this26
|
|
3391
3548
|
});
|
|
3392
3549
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_FAILURE, {
|
|
3393
|
-
correlation_id:
|
|
3550
|
+
correlation_id: _this26.correlationId
|
|
3394
3551
|
});
|
|
3395
3552
|
});
|
|
3396
3553
|
}
|
|
@@ -3460,7 +3617,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3460
3617
|
}, {
|
|
3461
3618
|
key: "muteAudio",
|
|
3462
3619
|
value: function muteAudio() {
|
|
3463
|
-
var
|
|
3620
|
+
var _this27 = this;
|
|
3464
3621
|
if (!_util.default.isUserInJoinedState(this.locusInfo)) {
|
|
3465
3622
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
3466
3623
|
}
|
|
@@ -3477,10 +3634,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3477
3634
|
|
|
3478
3635
|
// First, stop sending the local audio media
|
|
3479
3636
|
return logRequest(this.audio.handleClientRequest(this, true).then(function () {
|
|
3480
|
-
_util.default.handleAudioLogging(
|
|
3637
|
+
_util.default.handleAudioLogging(_this27.mediaProperties.audioTrack);
|
|
3481
3638
|
_metrics.default.postEvent({
|
|
3482
3639
|
event: _config.eventType.MUTED,
|
|
3483
|
-
meeting:
|
|
3640
|
+
meeting: _this27,
|
|
3484
3641
|
data: {
|
|
3485
3642
|
trigger: _config.trigger.USER_INTERACTION,
|
|
3486
3643
|
mediaType: _config.mediaType.AUDIO
|
|
@@ -3488,8 +3645,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3488
3645
|
});
|
|
3489
3646
|
}).catch(function (error) {
|
|
3490
3647
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_AUDIO_FAILURE, {
|
|
3491
|
-
correlation_id:
|
|
3492
|
-
locus_id:
|
|
3648
|
+
correlation_id: _this27.correlationId,
|
|
3649
|
+
locus_id: _this27.locusUrl.split('/').pop(),
|
|
3493
3650
|
reason: error.message,
|
|
3494
3651
|
stack: error.stack
|
|
3495
3652
|
});
|
|
@@ -3510,7 +3667,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3510
3667
|
}, {
|
|
3511
3668
|
key: "unmuteAudio",
|
|
3512
3669
|
value: function unmuteAudio() {
|
|
3513
|
-
var
|
|
3670
|
+
var _this28 = this;
|
|
3514
3671
|
if (!_util.default.isUserInJoinedState(this.locusInfo)) {
|
|
3515
3672
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
3516
3673
|
}
|
|
@@ -3527,10 +3684,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3527
3684
|
|
|
3528
3685
|
// First, send the control to unmute the participant on the server
|
|
3529
3686
|
return logRequest(this.audio.handleClientRequest(this, false).then(function () {
|
|
3530
|
-
_util.default.handleAudioLogging(
|
|
3687
|
+
_util.default.handleAudioLogging(_this28.mediaProperties.audioTrack);
|
|
3531
3688
|
_metrics.default.postEvent({
|
|
3532
3689
|
event: _config.eventType.UNMUTED,
|
|
3533
|
-
meeting:
|
|
3690
|
+
meeting: _this28,
|
|
3534
3691
|
data: {
|
|
3535
3692
|
trigger: _config.trigger.USER_INTERACTION,
|
|
3536
3693
|
mediaType: _config.mediaType.AUDIO
|
|
@@ -3538,8 +3695,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3538
3695
|
});
|
|
3539
3696
|
}).catch(function (error) {
|
|
3540
3697
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_AUDIO_FAILURE, {
|
|
3541
|
-
correlation_id:
|
|
3542
|
-
locus_id:
|
|
3698
|
+
correlation_id: _this28.correlationId,
|
|
3699
|
+
locus_id: _this28.locusUrl.split('/').pop(),
|
|
3543
3700
|
reason: error.message,
|
|
3544
3701
|
stack: error.stack
|
|
3545
3702
|
});
|
|
@@ -3560,7 +3717,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3560
3717
|
}, {
|
|
3561
3718
|
key: "muteVideo",
|
|
3562
3719
|
value: function muteVideo() {
|
|
3563
|
-
var
|
|
3720
|
+
var _this29 = this;
|
|
3564
3721
|
if (!_util.default.isUserInJoinedState(this.locusInfo)) {
|
|
3565
3722
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
3566
3723
|
}
|
|
@@ -3575,10 +3732,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3575
3732
|
}
|
|
3576
3733
|
var LOG_HEADER = 'Meeting:index#muteVideo -->';
|
|
3577
3734
|
return logRequest(this.video.handleClientRequest(this, true).then(function () {
|
|
3578
|
-
_util.default.handleVideoLogging(
|
|
3735
|
+
_util.default.handleVideoLogging(_this29.mediaProperties.videoTrack);
|
|
3579
3736
|
_metrics.default.postEvent({
|
|
3580
3737
|
event: _config.eventType.MUTED,
|
|
3581
|
-
meeting:
|
|
3738
|
+
meeting: _this29,
|
|
3582
3739
|
data: {
|
|
3583
3740
|
trigger: _config.trigger.USER_INTERACTION,
|
|
3584
3741
|
mediaType: _config.mediaType.VIDEO
|
|
@@ -3586,8 +3743,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3586
3743
|
});
|
|
3587
3744
|
}).catch(function (error) {
|
|
3588
3745
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_VIDEO_FAILURE, {
|
|
3589
|
-
correlation_id:
|
|
3590
|
-
locus_id:
|
|
3746
|
+
correlation_id: _this29.correlationId,
|
|
3747
|
+
locus_id: _this29.locusUrl.split('/').pop(),
|
|
3591
3748
|
reason: error.message,
|
|
3592
3749
|
stack: error.stack
|
|
3593
3750
|
});
|
|
@@ -3608,7 +3765,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3608
3765
|
}, {
|
|
3609
3766
|
key: "unmuteVideo",
|
|
3610
3767
|
value: function unmuteVideo() {
|
|
3611
|
-
var
|
|
3768
|
+
var _this30 = this;
|
|
3612
3769
|
if (!_util.default.isUserInJoinedState(this.locusInfo)) {
|
|
3613
3770
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
3614
3771
|
}
|
|
@@ -3623,10 +3780,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3623
3780
|
}
|
|
3624
3781
|
var LOG_HEADER = 'Meeting:index#unmuteVideo -->';
|
|
3625
3782
|
return logRequest(this.video.handleClientRequest(this, false).then(function () {
|
|
3626
|
-
_util.default.handleVideoLogging(
|
|
3783
|
+
_util.default.handleVideoLogging(_this30.mediaProperties.videoTrack);
|
|
3627
3784
|
_metrics.default.postEvent({
|
|
3628
3785
|
event: _config.eventType.UNMUTED,
|
|
3629
|
-
meeting:
|
|
3786
|
+
meeting: _this30,
|
|
3630
3787
|
data: {
|
|
3631
3788
|
trigger: _config.trigger.USER_INTERACTION,
|
|
3632
3789
|
mediaType: _config.mediaType.VIDEO
|
|
@@ -3634,8 +3791,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3634
3791
|
});
|
|
3635
3792
|
}).catch(function (error) {
|
|
3636
3793
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_VIDEO_FAILURE, {
|
|
3637
|
-
correlation_id:
|
|
3638
|
-
locus_id:
|
|
3794
|
+
correlation_id: _this30.correlationId,
|
|
3795
|
+
locus_id: _this30.locusUrl.split('/').pop(),
|
|
3639
3796
|
reason: error.message,
|
|
3640
3797
|
stack: error.stack
|
|
3641
3798
|
});
|
|
@@ -3675,18 +3832,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3675
3832
|
}, {
|
|
3676
3833
|
key: "joinWithMedia",
|
|
3677
3834
|
value: function joinWithMedia() {
|
|
3678
|
-
var
|
|
3835
|
+
var _this31 = this;
|
|
3679
3836
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
3680
3837
|
// TODO: add validations for parameters
|
|
3681
3838
|
var mediaSettings = options.mediaSettings,
|
|
3682
3839
|
joinOptions = options.joinOptions,
|
|
3683
3840
|
audioVideoOptions = options.audioVideoOptions;
|
|
3684
3841
|
return this.join(joinOptions).then(function (joinResponse) {
|
|
3685
|
-
return
|
|
3686
|
-
var
|
|
3687
|
-
localStream =
|
|
3688
|
-
localShare =
|
|
3689
|
-
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({
|
|
3690
3847
|
mediaSettings: mediaSettings,
|
|
3691
3848
|
localShare: localShare,
|
|
3692
3849
|
localStream: localStream
|
|
@@ -3701,8 +3858,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3701
3858
|
}).catch(function (error) {
|
|
3702
3859
|
_loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> ', error);
|
|
3703
3860
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_WITH_MEDIA_FAILURE, {
|
|
3704
|
-
correlation_id:
|
|
3705
|
-
locus_id:
|
|
3861
|
+
correlation_id: _this31.correlationId,
|
|
3862
|
+
locus_id: _this31.locusUrl.split('/').pop(),
|
|
3706
3863
|
reason: error.message,
|
|
3707
3864
|
stack: error.stack
|
|
3708
3865
|
}, {
|
|
@@ -3723,7 +3880,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3723
3880
|
}, {
|
|
3724
3881
|
key: "reconnect",
|
|
3725
3882
|
value: function reconnect(options) {
|
|
3726
|
-
var
|
|
3883
|
+
var _this32 = this;
|
|
3727
3884
|
_loggerProxy.default.logger.log("Meeting:index#reconnect --> attempting to reconnect meeting ".concat(this.id));
|
|
3728
3885
|
if (!this.reconnectionManager || !this.reconnectionManager.reconnect) {
|
|
3729
3886
|
return _promise.default.reject(new _parameter.default('Cannot reconnect, ReconnectionManager must first be defined.'));
|
|
@@ -3751,13 +3908,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3751
3908
|
function: 'reconnect'
|
|
3752
3909
|
}, _constants.EVENT_TRIGGERS.MEETING_RECONNECTION_STARTING);
|
|
3753
3910
|
return this.reconnectionManager.reconnect(options).then(function () {
|
|
3754
|
-
_triggerProxy.default.trigger(
|
|
3911
|
+
_triggerProxy.default.trigger(_this32, {
|
|
3755
3912
|
file: 'meeting/index',
|
|
3756
3913
|
function: 'reconnect'
|
|
3757
3914
|
}, _constants.EVENT_TRIGGERS.MEETING_RECONNECTION_SUCCESS);
|
|
3758
3915
|
_loggerProxy.default.logger.log('Meeting:index#reconnect --> Meeting reconnect success');
|
|
3759
3916
|
}).catch(function (error) {
|
|
3760
|
-
_triggerProxy.default.trigger(
|
|
3917
|
+
_triggerProxy.default.trigger(_this32, {
|
|
3761
3918
|
file: 'meeting/index',
|
|
3762
3919
|
function: 'reconnect'
|
|
3763
3920
|
}, _constants.EVENT_TRIGGERS.MEETING_RECONNECTION_FAILURE, {
|
|
@@ -3765,18 +3922,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3765
3922
|
});
|
|
3766
3923
|
_loggerProxy.default.logger.error('Meeting:index#reconnect --> Meeting reconnect failed', error);
|
|
3767
3924
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_RECONNECT_FAILURE, {
|
|
3768
|
-
correlation_id:
|
|
3769
|
-
locus_id:
|
|
3925
|
+
correlation_id: _this32.correlationId,
|
|
3926
|
+
locus_id: _this32.locusUrl.split('/').pop(),
|
|
3770
3927
|
reason: error.message,
|
|
3771
3928
|
stack: error.stack
|
|
3772
3929
|
});
|
|
3773
|
-
|
|
3930
|
+
_this32.uploadLogs({
|
|
3774
3931
|
file: 'meeting/index',
|
|
3775
3932
|
function: 'reconnect'
|
|
3776
3933
|
});
|
|
3777
3934
|
return _promise.default.reject(new _reconnection.default('Reconnection failure event', error));
|
|
3778
3935
|
}).finally(function () {
|
|
3779
|
-
|
|
3936
|
+
_this32.reconnectionManager.reset();
|
|
3780
3937
|
});
|
|
3781
3938
|
}
|
|
3782
3939
|
|
|
@@ -3796,6 +3953,21 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3796
3953
|
return false;
|
|
3797
3954
|
}
|
|
3798
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
|
+
|
|
3799
3971
|
/**
|
|
3800
3972
|
* Monitor the Low-Latency Mercury (LLM) web socket connection on `onError` and `onClose` states
|
|
3801
3973
|
* @private
|
|
@@ -3804,16 +3976,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3804
3976
|
}, {
|
|
3805
3977
|
key: "monitorTranscriptionSocketConnection",
|
|
3806
3978
|
value: function monitorTranscriptionSocketConnection() {
|
|
3807
|
-
var
|
|
3979
|
+
var _this33 = this;
|
|
3808
3980
|
this.transcription.onCloseSocket(function (event) {
|
|
3809
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));
|
|
3810
|
-
|
|
3982
|
+
_this33.triggerStopReceivingTranscriptionEvent();
|
|
3811
3983
|
});
|
|
3812
3984
|
this.transcription.onErrorSocket(function (event) {
|
|
3813
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));
|
|
3814
|
-
|
|
3986
|
+
_this33.triggerStopReceivingTranscriptionEvent();
|
|
3815
3987
|
_metrics.default.sendBehavioralMetric(_constants2.default.RECEIVE_TRANSCRIPTION_FAILURE, {
|
|
3816
|
-
correlation_id:
|
|
3988
|
+
correlation_id: _this33.correlationId,
|
|
3817
3989
|
reason: 'unexpected error: transcription LLM web socket connection error had occured.',
|
|
3818
3990
|
event: event
|
|
3819
3991
|
});
|
|
@@ -3829,7 +4001,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3829
4001
|
key: "receiveTranscription",
|
|
3830
4002
|
value: function () {
|
|
3831
4003
|
var _receiveTranscription = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
3832
|
-
var
|
|
4004
|
+
var _this34 = this;
|
|
3833
4005
|
var datachannelUrl, _yield$this$request, webSocketUrl;
|
|
3834
4006
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
3835
4007
|
while (1) switch (_context2.prev = _context2.next) {
|
|
@@ -3856,7 +4028,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3856
4028
|
|
|
3857
4029
|
// retrieve and pass the payload
|
|
3858
4030
|
this.transcription.subscribe(function (payload) {
|
|
3859
|
-
_triggerProxy.default.trigger(
|
|
4031
|
+
_triggerProxy.default.trigger(_this34, {
|
|
3860
4032
|
file: 'meeting/index',
|
|
3861
4033
|
function: 'join'
|
|
3862
4034
|
}, _constants.EVENT_TRIGGERS.MEETING_STARTED_RECEIVING_TRANSCRIPTION, payload);
|
|
@@ -3887,13 +4059,20 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3887
4059
|
return receiveTranscription;
|
|
3888
4060
|
}()
|
|
3889
4061
|
/**
|
|
3890
|
-
*
|
|
3891
|
-
*
|
|
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
|
|
3892
4065
|
* @returns {void}
|
|
3893
4066
|
*/
|
|
3894
4067
|
}, {
|
|
3895
4068
|
key: "stopReceivingTranscription",
|
|
3896
|
-
value:
|
|
4069
|
+
value:
|
|
4070
|
+
/**
|
|
4071
|
+
* stop recieving Transcription by closing
|
|
4072
|
+
* the web socket connection properly
|
|
4073
|
+
* @returns {void}
|
|
4074
|
+
*/
|
|
4075
|
+
function stopReceivingTranscription() {
|
|
3897
4076
|
if (this.transcription) {
|
|
3898
4077
|
this.transcription.closeSocket();
|
|
3899
4078
|
}
|
|
@@ -3930,7 +4109,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3930
4109
|
}, {
|
|
3931
4110
|
key: "join",
|
|
3932
4111
|
value: function join() {
|
|
3933
|
-
var
|
|
4112
|
+
var _this35 = this;
|
|
3934
4113
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
3935
4114
|
// @ts-ignore - fix type
|
|
3936
4115
|
if (!this.webex.meetings.registered) {
|
|
@@ -4018,40 +4197,44 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4018
4197
|
}
|
|
4019
4198
|
this.isMultistream = !!options.enableMultistream;
|
|
4020
4199
|
return _util.default.joinMeetingOptions(this, options).then(function (join) {
|
|
4021
|
-
|
|
4200
|
+
_this35.meetingFiniteStateMachine.join();
|
|
4022
4201
|
_loggerProxy.default.logger.log('Meeting:index#join --> Success');
|
|
4023
4202
|
return join;
|
|
4024
4203
|
}).then(function (join) {
|
|
4025
4204
|
joinSuccess(join);
|
|
4026
|
-
|
|
4205
|
+
_this35.deferJoin = undefined;
|
|
4027
4206
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
|
|
4028
|
-
correlation_id:
|
|
4207
|
+
correlation_id: _this35.correlationId
|
|
4029
4208
|
});
|
|
4030
4209
|
return join;
|
|
4031
4210
|
}).then( /*#__PURE__*/function () {
|
|
4032
|
-
var
|
|
4211
|
+
var _ref12 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(join) {
|
|
4033
4212
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
4034
4213
|
while (1) switch (_context3.prev = _context3.next) {
|
|
4035
4214
|
case 0:
|
|
4036
|
-
if (!
|
|
4037
|
-
_context3.next =
|
|
4215
|
+
if (!_this35.config.enableAutomaticLLM) {
|
|
4216
|
+
_context3.next = 5;
|
|
4038
4217
|
break;
|
|
4039
4218
|
}
|
|
4040
4219
|
_context3.next = 3;
|
|
4041
|
-
return
|
|
4220
|
+
return _this35.updateLLMConnection();
|
|
4042
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:
|
|
4043
4226
|
return _context3.abrupt("return", join);
|
|
4044
|
-
case
|
|
4227
|
+
case 6:
|
|
4045
4228
|
case "end":
|
|
4046
4229
|
return _context3.stop();
|
|
4047
4230
|
}
|
|
4048
4231
|
}, _callee3);
|
|
4049
4232
|
}));
|
|
4050
4233
|
return function (_x2) {
|
|
4051
|
-
return
|
|
4234
|
+
return _ref12.apply(this, arguments);
|
|
4052
4235
|
};
|
|
4053
4236
|
}()).then( /*#__PURE__*/function () {
|
|
4054
|
-
var
|
|
4237
|
+
var _ref13 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(join) {
|
|
4055
4238
|
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
4056
4239
|
while (1) switch (_context4.prev = _context4.next) {
|
|
4057
4240
|
case 0:
|
|
@@ -4059,16 +4242,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4059
4242
|
_context4.next = 8;
|
|
4060
4243
|
break;
|
|
4061
4244
|
}
|
|
4062
|
-
if (!(
|
|
4245
|
+
if (!(_this35.config.receiveTranscription || options.receiveTranscription)) {
|
|
4063
4246
|
_context4.next = 6;
|
|
4064
4247
|
break;
|
|
4065
4248
|
}
|
|
4066
|
-
if (!
|
|
4249
|
+
if (!_this35.isTranscriptionSupported()) {
|
|
4067
4250
|
_context4.next = 6;
|
|
4068
4251
|
break;
|
|
4069
4252
|
}
|
|
4070
4253
|
_context4.next = 5;
|
|
4071
|
-
return
|
|
4254
|
+
return _this35.receiveTranscription();
|
|
4072
4255
|
case 5:
|
|
4073
4256
|
_loggerProxy.default.logger.info('Meeting:index#join --> enabled to recieve transcription!');
|
|
4074
4257
|
case 6:
|
|
@@ -4085,16 +4268,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4085
4268
|
}, _callee4);
|
|
4086
4269
|
}));
|
|
4087
4270
|
return function (_x3) {
|
|
4088
|
-
return
|
|
4271
|
+
return _ref13.apply(this, arguments);
|
|
4089
4272
|
};
|
|
4090
4273
|
}()).catch(function (error) {
|
|
4091
4274
|
var _error$error;
|
|
4092
|
-
|
|
4275
|
+
_this35.meetingFiniteStateMachine.fail(error);
|
|
4093
4276
|
_loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
|
|
4094
4277
|
_metrics.default.postEvent({
|
|
4095
4278
|
event: _config.eventType.LOCUS_JOIN_RESPONSE,
|
|
4096
|
-
meeting:
|
|
4097
|
-
meetingId:
|
|
4279
|
+
meeting: _this35,
|
|
4280
|
+
meetingId: _this35.id,
|
|
4098
4281
|
data: {
|
|
4099
4282
|
errors: [_metrics.default.parseLocusError(error.error, true)]
|
|
4100
4283
|
}
|
|
@@ -4102,18 +4285,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4102
4285
|
|
|
4103
4286
|
// TODO: change this to error codes and pre defined dictionary
|
|
4104
4287
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
|
|
4105
|
-
correlation_id:
|
|
4288
|
+
correlation_id: _this35.correlationId,
|
|
4106
4289
|
reason: (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.message,
|
|
4107
4290
|
stack: error.stack
|
|
4108
4291
|
});
|
|
4109
4292
|
|
|
4110
4293
|
// Upload logs on join Failure
|
|
4111
|
-
_triggerProxy.default.trigger(
|
|
4294
|
+
_triggerProxy.default.trigger(_this35, {
|
|
4112
4295
|
file: 'meeting/index',
|
|
4113
4296
|
function: 'join'
|
|
4114
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
4297
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this35);
|
|
4115
4298
|
joinFailed(error);
|
|
4116
|
-
|
|
4299
|
+
_this35.deferJoin = undefined;
|
|
4117
4300
|
return _promise.default.reject(error);
|
|
4118
4301
|
});
|
|
4119
4302
|
}
|
|
@@ -4128,14 +4311,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4128
4311
|
key: "updateLLMConnection",
|
|
4129
4312
|
value: function () {
|
|
4130
4313
|
var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
|
|
4131
|
-
var _this$
|
|
4314
|
+
var _this$locusInfo5, url, _this$locusInfo5$info, _this$locusInfo5$info2, datachannelUrl, isJoined;
|
|
4132
4315
|
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
4133
4316
|
while (1) switch (_context5.prev = _context5.next) {
|
|
4134
4317
|
case 0:
|
|
4135
|
-
|
|
4136
|
-
|
|
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
|
|
4137
4321
|
if (!this.webex.internal.llm.isConnected()) {
|
|
4138
|
-
_context5.next =
|
|
4322
|
+
_context5.next = 8;
|
|
4139
4323
|
break;
|
|
4140
4324
|
}
|
|
4141
4325
|
if (!(url === this.webex.internal.llm.getLocusUrl() && isJoined)) {
|
|
@@ -4147,14 +4331,17 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4147
4331
|
_context5.next = 7;
|
|
4148
4332
|
return this.webex.internal.llm.disconnectLLM();
|
|
4149
4333
|
case 7:
|
|
4334
|
+
// @ts-ignore - Fix type
|
|
4335
|
+
this.webex.internal.llm.off('event:relay.event', this.processRelayEvent);
|
|
4336
|
+
case 8:
|
|
4150
4337
|
if (isJoined) {
|
|
4151
|
-
_context5.next =
|
|
4338
|
+
_context5.next = 10;
|
|
4152
4339
|
break;
|
|
4153
4340
|
}
|
|
4154
4341
|
return _context5.abrupt("return", undefined);
|
|
4155
|
-
case 9:
|
|
4156
|
-
return _context5.abrupt("return", this.webex.internal.llm.registerAndConnect(url, datachannelUrl));
|
|
4157
4342
|
case 10:
|
|
4343
|
+
return _context5.abrupt("return", this.webex.internal.llm.registerAndConnect(url, datachannelUrl));
|
|
4344
|
+
case 11:
|
|
4158
4345
|
case "end":
|
|
4159
4346
|
return _context5.stop();
|
|
4160
4347
|
}
|
|
@@ -4203,26 +4390,28 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4203
4390
|
}, {
|
|
4204
4391
|
key: "dialInPstn",
|
|
4205
4392
|
value: function dialInPstn() {
|
|
4206
|
-
var
|
|
4393
|
+
var _this36 = this;
|
|
4207
4394
|
if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
|
|
4208
4395
|
|
|
4209
4396
|
var correlationId = this.correlationId,
|
|
4210
4397
|
locusUrl = this.locusUrl;
|
|
4211
4398
|
if (!this.dialInUrl) this.dialInUrl = "dialin:///".concat(_uuid.default.v4());
|
|
4212
|
-
return this.meetingRequest
|
|
4399
|
+
return this.meetingRequest
|
|
4400
|
+
// @ts-ignore
|
|
4401
|
+
.dialIn({
|
|
4213
4402
|
correlationId: correlationId,
|
|
4214
4403
|
dialInUrl: this.dialInUrl,
|
|
4215
4404
|
locusUrl: locusUrl,
|
|
4216
4405
|
clientUrl: this.deviceUrl
|
|
4217
4406
|
}).then(function (res) {
|
|
4218
|
-
|
|
4407
|
+
_this36.locusInfo.onFullLocus(res.body.locus);
|
|
4219
4408
|
}).catch(function (error) {
|
|
4220
4409
|
var _error$error2;
|
|
4221
4410
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
|
|
4222
|
-
correlation_id:
|
|
4223
|
-
dial_in_url:
|
|
4411
|
+
correlation_id: _this36.correlationId,
|
|
4412
|
+
dial_in_url: _this36.dialInUrl,
|
|
4224
4413
|
locus_id: locusUrl.split('/').pop(),
|
|
4225
|
-
client_url:
|
|
4414
|
+
client_url: _this36.deviceUrl,
|
|
4226
4415
|
reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
|
|
4227
4416
|
stack: error.stack
|
|
4228
4417
|
});
|
|
@@ -4240,27 +4429,29 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4240
4429
|
}, {
|
|
4241
4430
|
key: "dialOutPstn",
|
|
4242
4431
|
value: function dialOutPstn(phoneNumber) {
|
|
4243
|
-
var
|
|
4432
|
+
var _this37 = this;
|
|
4244
4433
|
if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
|
|
4245
4434
|
|
|
4246
4435
|
var correlationId = this.correlationId,
|
|
4247
4436
|
locusUrl = this.locusUrl;
|
|
4248
4437
|
if (!this.dialOutUrl) this.dialOutUrl = "dialout:///".concat(_uuid.default.v4());
|
|
4249
|
-
return this.meetingRequest
|
|
4438
|
+
return this.meetingRequest
|
|
4439
|
+
// @ts-ignore
|
|
4440
|
+
.dialOut({
|
|
4250
4441
|
correlationId: correlationId,
|
|
4251
4442
|
dialOutUrl: this.dialOutUrl,
|
|
4252
4443
|
phoneNumber: phoneNumber,
|
|
4253
4444
|
locusUrl: locusUrl,
|
|
4254
4445
|
clientUrl: this.deviceUrl
|
|
4255
4446
|
}).then(function (res) {
|
|
4256
|
-
|
|
4447
|
+
_this37.locusInfo.onFullLocus(res.body.locus);
|
|
4257
4448
|
}).catch(function (error) {
|
|
4258
4449
|
var _error$error3;
|
|
4259
4450
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
|
|
4260
|
-
correlation_id:
|
|
4261
|
-
dial_out_url:
|
|
4451
|
+
correlation_id: _this37.correlationId,
|
|
4452
|
+
dial_out_url: _this37.dialOutUrl,
|
|
4262
4453
|
locus_id: locusUrl.split('/').pop(),
|
|
4263
|
-
client_url:
|
|
4454
|
+
client_url: _this37.deviceUrl,
|
|
4264
4455
|
reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
|
|
4265
4456
|
stack: error.stack
|
|
4266
4457
|
});
|
|
@@ -4291,7 +4482,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4291
4482
|
}, {
|
|
4292
4483
|
key: "moveTo",
|
|
4293
4484
|
value: function moveTo(resourceId) {
|
|
4294
|
-
var
|
|
4485
|
+
var _this38 = this;
|
|
4295
4486
|
if (!resourceId) {
|
|
4296
4487
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
|
4297
4488
|
}
|
|
@@ -4327,12 +4518,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4327
4518
|
while (1) switch (_context6.prev = _context6.next) {
|
|
4328
4519
|
case 0:
|
|
4329
4520
|
_context6.prev = 0;
|
|
4330
|
-
if (!
|
|
4521
|
+
if (!_this38.isSharing) {
|
|
4331
4522
|
_context6.next = 4;
|
|
4332
4523
|
break;
|
|
4333
4524
|
}
|
|
4334
4525
|
_context6.next = 4;
|
|
4335
|
-
return
|
|
4526
|
+
return _this38.releaseScreenShareFloor();
|
|
4336
4527
|
case 4:
|
|
4337
4528
|
mediaSettings = {
|
|
4338
4529
|
mediaDirection: {
|
|
@@ -4344,22 +4535,22 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4344
4535
|
receiveShare: true
|
|
4345
4536
|
}
|
|
4346
4537
|
}; // clean up the local tracks
|
|
4347
|
-
|
|
4538
|
+
_this38.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
|
|
4348
4539
|
|
|
4349
4540
|
// close the existing local tracks
|
|
4350
4541
|
_context6.next = 8;
|
|
4351
|
-
return
|
|
4542
|
+
return _this38.closeLocalStream();
|
|
4352
4543
|
case 8:
|
|
4353
4544
|
_context6.next = 10;
|
|
4354
|
-
return
|
|
4545
|
+
return _this38.closeLocalShare();
|
|
4355
4546
|
case 10:
|
|
4356
|
-
|
|
4547
|
+
_this38.mediaProperties.unsetMediaTracks();
|
|
4357
4548
|
|
|
4358
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
|
|
4359
4550
|
// once the DX answers we establish connection back the media server with only receiveShare enabled
|
|
4360
4551
|
// @ts-ignore - reconnectMedia does not accept any argument
|
|
4361
4552
|
_context6.next = 13;
|
|
4362
|
-
return
|
|
4553
|
+
return _this38.reconnectionManager.reconnectMedia(mediaSettings).then(function () {
|
|
4363
4554
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
|
|
4364
4555
|
});
|
|
4365
4556
|
case 13:
|
|
@@ -4370,8 +4561,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4370
4561
|
_context6.t0 = _context6["catch"](0);
|
|
4371
4562
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context6.t0);
|
|
4372
4563
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
|
4373
|
-
correlation_id:
|
|
4374
|
-
locus_id:
|
|
4564
|
+
correlation_id: _this38.correlationId,
|
|
4565
|
+
locus_id: _this38.locusUrl.split('/').pop(),
|
|
4375
4566
|
reason: _context6.t0.message,
|
|
4376
4567
|
stack: _context6.t0.stack
|
|
4377
4568
|
});
|
|
@@ -4386,12 +4577,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4386
4577
|
resourceId: resourceId,
|
|
4387
4578
|
moveToResource: true
|
|
4388
4579
|
}).then(function () {
|
|
4389
|
-
|
|
4580
|
+
_this38.meetingFiniteStateMachine.join();
|
|
4390
4581
|
}).catch(function (error) {
|
|
4391
|
-
|
|
4582
|
+
_this38.meetingFiniteStateMachine.fail(error);
|
|
4392
4583
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
|
4393
|
-
correlation_id:
|
|
4394
|
-
locus_id:
|
|
4584
|
+
correlation_id: _this38.correlationId,
|
|
4585
|
+
locus_id: _this38.locusUrl.split('/').pop(),
|
|
4395
4586
|
reason: error.message,
|
|
4396
4587
|
stack: error.stack
|
|
4397
4588
|
});
|
|
@@ -4410,7 +4601,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4410
4601
|
}, {
|
|
4411
4602
|
key: "moveFrom",
|
|
4412
4603
|
value: function moveFrom(resourceId) {
|
|
4413
|
-
var
|
|
4604
|
+
var _this39 = this;
|
|
4414
4605
|
// On moveFrom ask the developer to re capture it moveFrom then updateMedia
|
|
4415
4606
|
if (!resourceId) {
|
|
4416
4607
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
|
@@ -4421,19 +4612,19 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4421
4612
|
meeting: this
|
|
4422
4613
|
});
|
|
4423
4614
|
return _util.default.joinMeetingOptions(this).then(function () {
|
|
4424
|
-
return _util.default.leaveMeeting(
|
|
4615
|
+
return _util.default.leaveMeeting(_this39, {
|
|
4425
4616
|
resourceId: resourceId,
|
|
4426
4617
|
correlationId: oldCorrelationId,
|
|
4427
4618
|
moveMeeting: true
|
|
4428
4619
|
}).then(function () {
|
|
4429
|
-
|
|
4620
|
+
_this39.resourceId = '';
|
|
4430
4621
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
|
|
4431
4622
|
});
|
|
4432
4623
|
}).catch(function (error) {
|
|
4433
|
-
|
|
4624
|
+
_this39.meetingFiniteStateMachine.fail(error);
|
|
4434
4625
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
|
|
4435
|
-
correlation_id:
|
|
4436
|
-
locus_id:
|
|
4626
|
+
correlation_id: _this39.correlationId,
|
|
4627
|
+
locus_id: _this39.locusUrl.split('/').pop(),
|
|
4437
4628
|
reason: error.message,
|
|
4438
4629
|
stack: error.stack
|
|
4439
4630
|
});
|
|
@@ -4489,9 +4680,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4489
4680
|
}, {
|
|
4490
4681
|
key: "forwardEvent",
|
|
4491
4682
|
value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
|
|
4492
|
-
var
|
|
4683
|
+
var _this40 = this;
|
|
4493
4684
|
eventEmitter.on(eventTypeToForward, function (data) {
|
|
4494
|
-
return _triggerProxy.default.trigger(
|
|
4685
|
+
return _triggerProxy.default.trigger(_this40, {
|
|
4495
4686
|
file: 'meetings',
|
|
4496
4687
|
function: 'addMedia'
|
|
4497
4688
|
}, meetingEventType, data);
|
|
@@ -4513,7 +4704,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4513
4704
|
}, {
|
|
4514
4705
|
key: "addMedia",
|
|
4515
4706
|
value: function addMedia() {
|
|
4516
|
-
var
|
|
4707
|
+
var _this41 = this;
|
|
4517
4708
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
4518
4709
|
var LOG_HEADER = 'Meeting:index#addMedia -->';
|
|
4519
4710
|
var turnDiscoverySkippedReason;
|
|
@@ -4557,41 +4748,41 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4557
4748
|
}
|
|
4558
4749
|
});
|
|
4559
4750
|
return _util.default.validateOptions(options).then(function () {
|
|
4560
|
-
return
|
|
4751
|
+
return _this41.roap.doTurnDiscovery(_this41, false);
|
|
4561
4752
|
}).then(function (turnDiscoveryObject) {
|
|
4562
4753
|
turnDiscoverySkippedReason = turnDiscoveryObject.turnDiscoverySkippedReason;
|
|
4563
4754
|
turnServerUsed = !turnDiscoverySkippedReason;
|
|
4564
4755
|
var turnServerInfo = turnDiscoveryObject.turnServerInfo;
|
|
4565
|
-
|
|
4566
|
-
var mc =
|
|
4567
|
-
if (
|
|
4568
|
-
|
|
4569
|
-
|
|
4570
|
-
|
|
4571
|
-
|
|
4572
|
-
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 () {
|
|
4573
4764
|
return mc.initiateOffer();
|
|
4574
4765
|
});
|
|
4575
4766
|
}
|
|
4576
4767
|
return mc.initiateOffer();
|
|
4577
4768
|
}).then(function () {
|
|
4578
|
-
|
|
4769
|
+
_this41.setMercuryListener();
|
|
4579
4770
|
}).then(function () {
|
|
4580
|
-
return
|
|
4771
|
+
return _this41.getDevices().then(function (devices) {
|
|
4581
4772
|
_util.default.handleDeviceLogging(devices);
|
|
4582
4773
|
});
|
|
4583
4774
|
}).then(function () {
|
|
4584
|
-
|
|
4775
|
+
_this41.handleMediaLogging(_this41.mediaProperties);
|
|
4585
4776
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " media connection created"));
|
|
4586
4777
|
|
|
4587
4778
|
// @ts-ignore - config coming from registerPlugin
|
|
4588
|
-
if (
|
|
4779
|
+
if (_this41.config.stats.enableStatsAnalyzer) {
|
|
4589
4780
|
// @ts-ignore - config coming from registerPlugin
|
|
4590
|
-
|
|
4781
|
+
_this41.networkQualityMonitor = new _networkQualityMonitor.default(_this41.config.stats);
|
|
4591
4782
|
// @ts-ignore - config coming from registerPlugin
|
|
4592
|
-
|
|
4593
|
-
|
|
4594
|
-
|
|
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));
|
|
4595
4786
|
}
|
|
4596
4787
|
}).catch(function (error) {
|
|
4597
4788
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error adding media , setting up peerconnection, "), error);
|
|
@@ -4602,12 +4793,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4602
4793
|
|
|
4603
4794
|
// eslint-disable-next-line func-names
|
|
4604
4795
|
// eslint-disable-next-line prefer-arrow-callback
|
|
4605
|
-
if (
|
|
4796
|
+
if (_this41.type === _constants._CALL_) {
|
|
4606
4797
|
resolve();
|
|
4607
4798
|
}
|
|
4608
4799
|
var joiningTimer = setInterval(function () {
|
|
4609
4800
|
timerCount += 1;
|
|
4610
|
-
if (
|
|
4801
|
+
if (_this41.meetingState === _constants.FULL_STATE.ACTIVE) {
|
|
4611
4802
|
clearInterval(joiningTimer);
|
|
4612
4803
|
resolve();
|
|
4613
4804
|
}
|
|
@@ -4618,41 +4809,41 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4618
4809
|
}, 1000);
|
|
4619
4810
|
});
|
|
4620
4811
|
}).then(function () {
|
|
4621
|
-
return
|
|
4812
|
+
return _this41.mediaProperties.waitForMediaConnectionConnected().catch(function () {
|
|
4622
4813
|
throw (0, _webexErrors.createMeetingsError)(30202, 'Meeting connection failed');
|
|
4623
4814
|
});
|
|
4624
4815
|
}).then(function () {
|
|
4625
4816
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " PeerConnection CONNECTED"));
|
|
4626
4817
|
if (mediaSettings && mediaSettings.sendShare && localShare) {
|
|
4627
|
-
if (
|
|
4628
|
-
return
|
|
4818
|
+
if (_this41.state === _constants.MEETING_STATE.STATES.JOINED) {
|
|
4819
|
+
return _this41.requestScreenShareFloor();
|
|
4629
4820
|
}
|
|
4630
4821
|
|
|
4631
4822
|
// When the self state changes to JOINED then request the floor
|
|
4632
|
-
|
|
4823
|
+
_this41.floorGrantPending = true;
|
|
4633
4824
|
}
|
|
4634
4825
|
return {};
|
|
4635
4826
|
}).then(function () {
|
|
4636
|
-
return
|
|
4827
|
+
return _this41.mediaProperties.getCurrentConnectionType();
|
|
4637
4828
|
}).then(function (connectionType) {
|
|
4638
4829
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, {
|
|
4639
|
-
correlation_id:
|
|
4640
|
-
locus_id:
|
|
4830
|
+
correlation_id: _this41.correlationId,
|
|
4831
|
+
locus_id: _this41.locusUrl.split('/').pop(),
|
|
4641
4832
|
connectionType: connectionType
|
|
4642
4833
|
});
|
|
4643
4834
|
}).catch(function (error) {
|
|
4644
4835
|
// Clean up stats analyzer, peer connection, and turn off listeners
|
|
4645
|
-
var stopStatsAnalyzer =
|
|
4836
|
+
var stopStatsAnalyzer = _this41.statsAnalyzer ? _this41.statsAnalyzer.stopAnalyzer() : _promise.default.resolve();
|
|
4646
4837
|
return stopStatsAnalyzer.then(function () {
|
|
4647
|
-
|
|
4648
|
-
if (
|
|
4649
|
-
|
|
4650
|
-
|
|
4838
|
+
_this41.statsAnalyzer = null;
|
|
4839
|
+
if (_this41.mediaProperties.webrtcMediaConnection) {
|
|
4840
|
+
_this41.closePeerConnections();
|
|
4841
|
+
_this41.unsetPeerConnections();
|
|
4651
4842
|
}
|
|
4652
4843
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error adding media failed to initiate PC and send request, "), error);
|
|
4653
4844
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_FAILURE, {
|
|
4654
|
-
correlation_id:
|
|
4655
|
-
locus_id:
|
|
4845
|
+
correlation_id: _this41.correlationId,
|
|
4846
|
+
locus_id: _this41.locusUrl.split('/').pop(),
|
|
4656
4847
|
reason: error.message,
|
|
4657
4848
|
stack: error.stack,
|
|
4658
4849
|
code: error.code,
|
|
@@ -4661,12 +4852,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4661
4852
|
});
|
|
4662
4853
|
|
|
4663
4854
|
// Upload logs on error while adding media
|
|
4664
|
-
_triggerProxy.default.trigger(
|
|
4855
|
+
_triggerProxy.default.trigger(_this41, {
|
|
4665
4856
|
file: 'meeting/index',
|
|
4666
4857
|
function: 'addMedia'
|
|
4667
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
4668
|
-
if (error instanceof _internalMediaCore.
|
|
4669
|
-
|
|
4858
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this41);
|
|
4859
|
+
if (error instanceof _internalMediaCore.Errors.SdpError) {
|
|
4860
|
+
_this41.leave({
|
|
4670
4861
|
reason: _constants.MEETING_REMOVED_REASON.MEETING_CONNECTION_FAILED
|
|
4671
4862
|
});
|
|
4672
4863
|
}
|
|
@@ -4699,7 +4890,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4699
4890
|
}, {
|
|
4700
4891
|
key: "enqueueMediaUpdate",
|
|
4701
4892
|
value: function enqueueMediaUpdate(mediaUpdateType, options) {
|
|
4702
|
-
var
|
|
4893
|
+
var _this42 = this;
|
|
4703
4894
|
return new _promise.default(function (resolve, reject) {
|
|
4704
4895
|
var queueItem = {
|
|
4705
4896
|
pendingPromiseResolve: resolve,
|
|
@@ -4708,7 +4899,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4708
4899
|
options: options
|
|
4709
4900
|
};
|
|
4710
4901
|
_loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
|
|
4711
|
-
|
|
4902
|
+
_this42.queuedMediaUpdates.push(queueItem);
|
|
4712
4903
|
});
|
|
4713
4904
|
}
|
|
4714
4905
|
|
|
@@ -4733,7 +4924,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4733
4924
|
* @memberof Meeting
|
|
4734
4925
|
*/
|
|
4735
4926
|
function updateMedia() {
|
|
4736
|
-
var
|
|
4927
|
+
var _this43 = this;
|
|
4737
4928
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
4738
4929
|
var LOG_HEADER = 'Meeting:index#updateMedia -->';
|
|
4739
4930
|
if (!this.canUpdateMedia()) {
|
|
@@ -4747,27 +4938,27 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4747
4938
|
return _promise.default.reject(new Error('media connection not established, call addMedia() first'));
|
|
4748
4939
|
}
|
|
4749
4940
|
return _util.default.validateOptions(options).then(function () {
|
|
4750
|
-
return
|
|
4941
|
+
return _this43.preMedia(localStream, localShare, mediaSettings);
|
|
4751
4942
|
}).then(function () {
|
|
4752
|
-
return
|
|
4943
|
+
return _this43.mediaProperties.webrtcMediaConnection.updateSendReceiveOptions({
|
|
4753
4944
|
send: {
|
|
4754
|
-
audio:
|
|
4755
|
-
video:
|
|
4756
|
-
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
|
|
4757
4948
|
},
|
|
4758
4949
|
receive: {
|
|
4759
|
-
audio:
|
|
4760
|
-
video:
|
|
4761
|
-
screenShareVideo:
|
|
4762
|
-
remoteQualityLevel:
|
|
4950
|
+
audio: _this43.mediaProperties.mediaDirection.receiveAudio,
|
|
4951
|
+
video: _this43.mediaProperties.mediaDirection.receiveVideo,
|
|
4952
|
+
screenShareVideo: _this43.mediaProperties.mediaDirection.receiveShare,
|
|
4953
|
+
remoteQualityLevel: _this43.mediaProperties.remoteQualityLevel
|
|
4763
4954
|
}
|
|
4764
4955
|
}).then(function () {
|
|
4765
4956
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " webrtcMediaConnection.updateSendReceiveOptions done"));
|
|
4766
4957
|
}).catch(function (error) {
|
|
4767
4958
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error updatedMedia, "), error);
|
|
4768
4959
|
_metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
|
|
4769
|
-
correlation_id:
|
|
4770
|
-
locus_id:
|
|
4960
|
+
correlation_id: _this43.correlationId,
|
|
4961
|
+
locus_id: _this43.locusUrl.split('/').pop(),
|
|
4771
4962
|
reason: error.message,
|
|
4772
4963
|
stack: error.stack
|
|
4773
4964
|
});
|
|
@@ -4778,13 +4969,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4778
4969
|
// if not, ensure it's called after (now it's called after roap message is sent out, but we're not
|
|
4779
4970
|
// waiting for sendRoapMediaRequest() to be resolved)
|
|
4780
4971
|
.then(function () {
|
|
4781
|
-
return
|
|
4972
|
+
return _this43.checkForStopShare(mediaSettings.sendShare, previousSendShareStatus);
|
|
4782
4973
|
}).then(function (startShare) {
|
|
4783
4974
|
// This is a special case if we do an /floor grant followed by /media
|
|
4784
4975
|
// we actually get a OFFER from the server and a GLAR condition happens
|
|
4785
4976
|
if (startShare) {
|
|
4786
4977
|
// We are assuming that the clients are connected when doing an update
|
|
4787
|
-
return
|
|
4978
|
+
return _this43.requestScreenShareFloor();
|
|
4788
4979
|
}
|
|
4789
4980
|
return _promise.default.resolve();
|
|
4790
4981
|
});
|
|
@@ -4808,7 +4999,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4808
4999
|
key: "updateAudio",
|
|
4809
5000
|
value: function () {
|
|
4810
5001
|
var _updateAudio = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(options) {
|
|
4811
|
-
var
|
|
5002
|
+
var _this44 = this;
|
|
4812
5003
|
var sendAudio, receiveAudio, stream, track, bnrEnabled;
|
|
4813
5004
|
return _regenerator.default.wrap(function _callee7$(_context7) {
|
|
4814
5005
|
while (1) switch (_context7.prev = _context7.next) {
|
|
@@ -4853,25 +5044,25 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4853
5044
|
sendAudio: sendAudio,
|
|
4854
5045
|
localStream: stream
|
|
4855
5046
|
}).then(function () {
|
|
4856
|
-
return
|
|
5047
|
+
return _this44.mediaProperties.webrtcMediaConnection.updateSendReceiveOptions({
|
|
4857
5048
|
send: {
|
|
4858
5049
|
audio: track
|
|
4859
5050
|
},
|
|
4860
5051
|
receive: {
|
|
4861
5052
|
audio: options.receiveAudio,
|
|
4862
|
-
video:
|
|
4863
|
-
screenShareVideo:
|
|
4864
|
-
remoteQualityLevel:
|
|
5053
|
+
video: _this44.mediaProperties.mediaDirection.receiveVideo,
|
|
5054
|
+
screenShareVideo: _this44.mediaProperties.mediaDirection.receiveShare,
|
|
5055
|
+
remoteQualityLevel: _this44.mediaProperties.remoteQualityLevel
|
|
4865
5056
|
}
|
|
4866
5057
|
});
|
|
4867
5058
|
}).then(function () {
|
|
4868
|
-
|
|
5059
|
+
_this44.setLocalAudioTrack(track);
|
|
4869
5060
|
// todo: maybe this.mediaProperties.mediaDirection could be removed? it's duplicating stuff from webrtcMediaConnection
|
|
4870
|
-
|
|
4871
|
-
|
|
5061
|
+
_this44.mediaProperties.mediaDirection.sendAudio = sendAudio;
|
|
5062
|
+
_this44.mediaProperties.mediaDirection.receiveAudio = receiveAudio;
|
|
4872
5063
|
|
|
4873
5064
|
// audio state could be undefined if you have not sent audio before
|
|
4874
|
-
|
|
5065
|
+
_this44.audio = _this44.audio || (0, _muteState.default)(_constants.AUDIO, _this44, _this44.mediaProperties.mediaDirection);
|
|
4875
5066
|
}));
|
|
4876
5067
|
case 17:
|
|
4877
5068
|
case "end":
|
|
@@ -4900,7 +5091,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4900
5091
|
}, {
|
|
4901
5092
|
key: "updateVideo",
|
|
4902
5093
|
value: function updateVideo(options) {
|
|
4903
|
-
var
|
|
5094
|
+
var _this45 = this;
|
|
4904
5095
|
if (!this.canUpdateMedia()) {
|
|
4905
5096
|
return this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.VIDEO, options);
|
|
4906
5097
|
}
|
|
@@ -4918,24 +5109,24 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4918
5109
|
sendVideo: sendVideo,
|
|
4919
5110
|
localStream: stream
|
|
4920
5111
|
}).then(function () {
|
|
4921
|
-
return
|
|
5112
|
+
return _this45.mediaProperties.webrtcMediaConnection.updateSendReceiveOptions({
|
|
4922
5113
|
send: {
|
|
4923
5114
|
video: track
|
|
4924
5115
|
},
|
|
4925
5116
|
receive: {
|
|
4926
|
-
audio:
|
|
5117
|
+
audio: _this45.mediaProperties.mediaDirection.receiveAudio,
|
|
4927
5118
|
video: options.receiveVideo,
|
|
4928
|
-
screenShareVideo:
|
|
4929
|
-
remoteQualityLevel:
|
|
5119
|
+
screenShareVideo: _this45.mediaProperties.mediaDirection.receiveShare,
|
|
5120
|
+
remoteQualityLevel: _this45.mediaProperties.remoteQualityLevel
|
|
4930
5121
|
}
|
|
4931
5122
|
});
|
|
4932
5123
|
}).then(function () {
|
|
4933
|
-
|
|
4934
|
-
|
|
4935
|
-
|
|
5124
|
+
_this45.setLocalVideoTrack(track);
|
|
5125
|
+
_this45.mediaProperties.mediaDirection.sendVideo = sendVideo;
|
|
5126
|
+
_this45.mediaProperties.mediaDirection.receiveVideo = receiveVideo;
|
|
4936
5127
|
|
|
4937
5128
|
// video state could be undefined if you have not sent video before
|
|
4938
|
-
|
|
5129
|
+
_this45.video = _this45.video || (0, _muteState.default)(_constants.VIDEO, _this45, _this45.mediaProperties.mediaDirection);
|
|
4939
5130
|
});
|
|
4940
5131
|
}
|
|
4941
5132
|
|
|
@@ -4978,7 +5169,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4978
5169
|
}, {
|
|
4979
5170
|
key: "updateShare",
|
|
4980
5171
|
value: function updateShare(options) {
|
|
4981
|
-
var
|
|
5172
|
+
var _this46 = this;
|
|
4982
5173
|
if (!options.skipSignalingCheck && !this.canUpdateMedia()) {
|
|
4983
5174
|
return this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.SHARE, options);
|
|
4984
5175
|
}
|
|
@@ -4998,29 +5189,29 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4998
5189
|
sendShare: sendShare,
|
|
4999
5190
|
localShare: stream
|
|
5000
5191
|
}).then(function () {
|
|
5001
|
-
return
|
|
5192
|
+
return _this46.checkForStopShare(sendShare, previousSendShareStatus);
|
|
5002
5193
|
}).then(function (startShare) {
|
|
5003
|
-
return
|
|
5194
|
+
return _this46.mediaProperties.webrtcMediaConnection.updateSendReceiveOptions({
|
|
5004
5195
|
send: {
|
|
5005
5196
|
screenShareVideo: track
|
|
5006
5197
|
},
|
|
5007
5198
|
receive: {
|
|
5008
|
-
audio:
|
|
5009
|
-
video:
|
|
5199
|
+
audio: _this46.mediaProperties.mediaDirection.receiveAudio,
|
|
5200
|
+
video: _this46.mediaProperties.mediaDirection.receiveVideo,
|
|
5010
5201
|
screenShareVideo: options.receiveShare,
|
|
5011
|
-
remoteQualityLevel:
|
|
5202
|
+
remoteQualityLevel: _this46.mediaProperties.remoteQualityLevel
|
|
5012
5203
|
}
|
|
5013
5204
|
}).then(function () {
|
|
5014
5205
|
if (startShare) {
|
|
5015
|
-
return
|
|
5206
|
+
return _this46.requestScreenShareFloor();
|
|
5016
5207
|
}
|
|
5017
5208
|
return _promise.default.resolve();
|
|
5018
5209
|
});
|
|
5019
5210
|
}).then(function () {
|
|
5020
|
-
|
|
5021
|
-
|
|
5211
|
+
_this46.mediaProperties.mediaDirection.sendShare = sendShare;
|
|
5212
|
+
_this46.mediaProperties.mediaDirection.receiveShare = receiveShare;
|
|
5022
5213
|
}).catch(function (error) {
|
|
5023
|
-
|
|
5214
|
+
_this46.unsetLocalShareTrack();
|
|
5024
5215
|
throw error;
|
|
5025
5216
|
});
|
|
5026
5217
|
}
|
|
@@ -5060,7 +5251,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5060
5251
|
}, {
|
|
5061
5252
|
key: "acknowledge",
|
|
5062
5253
|
value: function acknowledge(type) {
|
|
5063
|
-
var
|
|
5254
|
+
var _this47 = this;
|
|
5064
5255
|
if (!type) {
|
|
5065
5256
|
return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
|
|
5066
5257
|
}
|
|
@@ -5072,10 +5263,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5072
5263
|
}).then(function (response) {
|
|
5073
5264
|
return _promise.default.resolve(response);
|
|
5074
5265
|
}).then(function (response) {
|
|
5075
|
-
|
|
5266
|
+
_this47.meetingFiniteStateMachine.ring(type);
|
|
5076
5267
|
_metrics.default.postEvent({
|
|
5077
5268
|
event: _config.eventType.ALERT_DISPLAYED,
|
|
5078
|
-
meeting:
|
|
5269
|
+
meeting: _this47
|
|
5079
5270
|
});
|
|
5080
5271
|
return _promise.default.resolve({
|
|
5081
5272
|
response: response
|
|
@@ -5099,12 +5290,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5099
5290
|
}, {
|
|
5100
5291
|
key: "decline",
|
|
5101
5292
|
value: function decline(reason) {
|
|
5102
|
-
var
|
|
5293
|
+
var _this48 = this;
|
|
5103
5294
|
return _util.default.declineMeeting(this, reason).then(function (decline) {
|
|
5104
|
-
|
|
5295
|
+
_this48.meetingFiniteStateMachine.decline();
|
|
5105
5296
|
return _promise.default.resolve(decline);
|
|
5106
5297
|
}).catch(function (error) {
|
|
5107
|
-
|
|
5298
|
+
_this48.meetingFiniteStateMachine.fail(error);
|
|
5108
5299
|
return _promise.default.reject(error);
|
|
5109
5300
|
});
|
|
5110
5301
|
}
|
|
@@ -5120,7 +5311,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5120
5311
|
}, {
|
|
5121
5312
|
key: "leave",
|
|
5122
5313
|
value: function leave() {
|
|
5123
|
-
var
|
|
5314
|
+
var _this49 = this;
|
|
5124
5315
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
5125
5316
|
_metrics.default.postEvent({
|
|
5126
5317
|
event: _config.eventType.LEAVE,
|
|
@@ -5133,39 +5324,39 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5133
5324
|
var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
|
|
5134
5325
|
_loggerProxy.default.logger.log('Meeting:index#leave --> Leaving a meeting');
|
|
5135
5326
|
return _util.default.leaveMeeting(this, options).then(function (leave) {
|
|
5136
|
-
|
|
5137
|
-
|
|
5327
|
+
_this49.meetingFiniteStateMachine.leave();
|
|
5328
|
+
_this49.clearMeetingData();
|
|
5138
5329
|
|
|
5139
5330
|
// upload logs on leave irrespective of meeting delete
|
|
5140
|
-
_triggerProxy.default.trigger(
|
|
5331
|
+
_triggerProxy.default.trigger(_this49, {
|
|
5141
5332
|
file: 'meeting/index',
|
|
5142
5333
|
function: 'leave'
|
|
5143
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
5334
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this49);
|
|
5144
5335
|
|
|
5145
5336
|
// TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
|
|
5146
|
-
if (
|
|
5337
|
+
if (_this49.wirelessShare || _this49.guest) {
|
|
5147
5338
|
// If screen sharing clean the meeting object
|
|
5148
|
-
_triggerProxy.default.trigger(
|
|
5339
|
+
_triggerProxy.default.trigger(_this49, {
|
|
5149
5340
|
file: 'meeting/index',
|
|
5150
5341
|
function: 'leave'
|
|
5151
5342
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
|
5152
5343
|
reason: options.reason,
|
|
5153
|
-
meetingId:
|
|
5344
|
+
meetingId: _this49.id
|
|
5154
5345
|
});
|
|
5155
5346
|
}
|
|
5156
5347
|
_loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
|
|
5157
5348
|
return leave;
|
|
5158
5349
|
}).catch(function (error) {
|
|
5159
|
-
|
|
5350
|
+
_this49.meetingFiniteStateMachine.fail(error);
|
|
5160
5351
|
_loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
|
|
5161
5352
|
// upload logs on leave irrespective of meeting delete
|
|
5162
|
-
_triggerProxy.default.trigger(
|
|
5353
|
+
_triggerProxy.default.trigger(_this49, {
|
|
5163
5354
|
file: 'meeting/index',
|
|
5164
5355
|
function: 'leave'
|
|
5165
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
5356
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this49);
|
|
5166
5357
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
|
|
5167
|
-
correlation_id:
|
|
5168
|
-
locus_id:
|
|
5358
|
+
correlation_id: _this49.correlationId,
|
|
5359
|
+
locus_id: _this49.locusUrl.split('/').pop(),
|
|
5169
5360
|
reason: error.message,
|
|
5170
5361
|
stack: error.stack,
|
|
5171
5362
|
code: error.code
|
|
@@ -5185,7 +5376,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5185
5376
|
}, {
|
|
5186
5377
|
key: "startWhiteboardShare",
|
|
5187
5378
|
value: function startWhiteboardShare(channelUrl, resourceToken) {
|
|
5188
|
-
var
|
|
5379
|
+
var _this50 = this;
|
|
5189
5380
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
5190
5381
|
return element.name === 'whiteboard';
|
|
5191
5382
|
});
|
|
@@ -5208,13 +5399,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5208
5399
|
body.resourceToken = resourceToken;
|
|
5209
5400
|
}
|
|
5210
5401
|
return this.meetingRequest.changeMeetingFloor(body).then(function () {
|
|
5211
|
-
|
|
5402
|
+
_this50.isSharing = false;
|
|
5212
5403
|
return _promise.default.resolve();
|
|
5213
5404
|
}).catch(function (error) {
|
|
5214
5405
|
_loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
|
|
5215
5406
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
|
|
5216
|
-
correlation_id:
|
|
5217
|
-
locus_id:
|
|
5407
|
+
correlation_id: _this50.correlationId,
|
|
5408
|
+
locus_id: _this50.locusUrl.split('/').pop(),
|
|
5218
5409
|
reason: error.message,
|
|
5219
5410
|
stack: error.stack,
|
|
5220
5411
|
board: {
|
|
@@ -5237,7 +5428,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5237
5428
|
}, {
|
|
5238
5429
|
key: "stopWhiteboardShare",
|
|
5239
5430
|
value: function stopWhiteboardShare(channelUrl) {
|
|
5240
|
-
var
|
|
5431
|
+
var _this51 = this;
|
|
5241
5432
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
5242
5433
|
return element.name === 'whiteboard';
|
|
5243
5434
|
});
|
|
@@ -5256,8 +5447,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5256
5447
|
_metrics.default.sendBehavioralMetric(
|
|
5257
5448
|
// @ts-ignore - check if STOP_WHITEBOARD_SHARE_FAILURE exists
|
|
5258
5449
|
_constants2.default.STOP_WHITEBOARD_SHARE_FAILURE, {
|
|
5259
|
-
correlation_id:
|
|
5260
|
-
locus_id:
|
|
5450
|
+
correlation_id: _this51.correlationId,
|
|
5451
|
+
locus_id: _this51.locusUrl.split('/').pop(),
|
|
5261
5452
|
reason: error.message,
|
|
5262
5453
|
stack: error.stack,
|
|
5263
5454
|
board: {
|
|
@@ -5279,7 +5470,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5279
5470
|
}, {
|
|
5280
5471
|
key: "requestScreenShareFloor",
|
|
5281
5472
|
value: function requestScreenShareFloor() {
|
|
5282
|
-
var
|
|
5473
|
+
var _this52 = this;
|
|
5283
5474
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
|
5284
5475
|
return element.name === _constants.CONTENT;
|
|
5285
5476
|
});
|
|
@@ -5295,13 +5486,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5295
5486
|
uri: content.url,
|
|
5296
5487
|
resourceUrl: this.resourceUrl
|
|
5297
5488
|
}).then(function () {
|
|
5298
|
-
|
|
5489
|
+
_this52.isSharing = true;
|
|
5299
5490
|
return _promise.default.resolve();
|
|
5300
5491
|
}).catch(function (error) {
|
|
5301
5492
|
_loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
|
|
5302
5493
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
|
|
5303
|
-
correlation_id:
|
|
5304
|
-
locus_id:
|
|
5494
|
+
correlation_id: _this52.correlationId,
|
|
5495
|
+
locus_id: _this52.locusUrl.split('/').pop(),
|
|
5305
5496
|
reason: error.message,
|
|
5306
5497
|
stack: error.stack
|
|
5307
5498
|
});
|
|
@@ -5338,7 +5529,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5338
5529
|
}, {
|
|
5339
5530
|
key: "releaseScreenShareFloor",
|
|
5340
5531
|
value: function releaseScreenShareFloor() {
|
|
5341
|
-
var
|
|
5532
|
+
var _this53 = this;
|
|
5342
5533
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
|
5343
5534
|
return element.name === _constants.CONTENT;
|
|
5344
5535
|
});
|
|
@@ -5362,14 +5553,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5362
5553
|
}).catch(function (error) {
|
|
5363
5554
|
_loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
|
|
5364
5555
|
_metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
|
|
5365
|
-
correlation_id:
|
|
5366
|
-
locus_id:
|
|
5556
|
+
correlation_id: _this53.correlationId,
|
|
5557
|
+
locus_id: _this53.locusUrl.split('/').pop(),
|
|
5367
5558
|
reason: error.message,
|
|
5368
5559
|
stack: error.stack
|
|
5369
5560
|
});
|
|
5370
5561
|
return _promise.default.reject(error);
|
|
5371
5562
|
}).finally(function () {
|
|
5372
|
-
|
|
5563
|
+
_this53.isSharing = false;
|
|
5373
5564
|
});
|
|
5374
5565
|
}
|
|
5375
5566
|
return _promise.default.reject(new _parameter.default('Cannot stop share without content'));
|
|
@@ -5384,7 +5575,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5384
5575
|
}, {
|
|
5385
5576
|
key: "startRecording",
|
|
5386
5577
|
value: function startRecording() {
|
|
5387
|
-
return
|
|
5578
|
+
return this.recordingController.startRecording();
|
|
5388
5579
|
}
|
|
5389
5580
|
|
|
5390
5581
|
/**
|
|
@@ -5396,7 +5587,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5396
5587
|
}, {
|
|
5397
5588
|
key: "stopRecording",
|
|
5398
5589
|
value: function stopRecording() {
|
|
5399
|
-
return
|
|
5590
|
+
return this.recordingController.stopRecording();
|
|
5400
5591
|
}
|
|
5401
5592
|
|
|
5402
5593
|
/**
|
|
@@ -5408,7 +5599,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5408
5599
|
}, {
|
|
5409
5600
|
key: "pauseRecording",
|
|
5410
5601
|
value: function pauseRecording() {
|
|
5411
|
-
return
|
|
5602
|
+
return this.recordingController.pauseRecording();
|
|
5412
5603
|
}
|
|
5413
5604
|
|
|
5414
5605
|
/**
|
|
@@ -5420,7 +5611,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5420
5611
|
}, {
|
|
5421
5612
|
key: "resumeRecording",
|
|
5422
5613
|
value: function resumeRecording() {
|
|
5423
|
-
return
|
|
5614
|
+
return this.recordingController.resumeRecording();
|
|
5424
5615
|
}
|
|
5425
5616
|
|
|
5426
5617
|
/**
|
|
@@ -5501,7 +5692,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5501
5692
|
}, {
|
|
5502
5693
|
key: "changeVideoLayout",
|
|
5503
5694
|
value: function changeVideoLayout(layoutType) {
|
|
5504
|
-
var
|
|
5695
|
+
var _this54 = this;
|
|
5505
5696
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
5506
5697
|
var main = renderInfo.main,
|
|
5507
5698
|
content = renderInfo.content;
|
|
@@ -5555,7 +5746,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5555
5746
|
}
|
|
5556
5747
|
this.lastVideoLayoutInfo = (0, _cloneDeep2.default)(layoutInfo);
|
|
5557
5748
|
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
|
|
5558
|
-
_triggerProxy.default.trigger(
|
|
5749
|
+
_triggerProxy.default.trigger(_this54, {
|
|
5559
5750
|
file: 'meeting/index',
|
|
5560
5751
|
function: 'changeVideoLayout'
|
|
5561
5752
|
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
|
|
@@ -5570,7 +5761,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5570
5761
|
content: layoutInfo.content
|
|
5571
5762
|
}).then(function (response) {
|
|
5572
5763
|
if (response && response.body && response.body.locus) {
|
|
5573
|
-
|
|
5764
|
+
_this54.locusInfo.onFullLocus(response.body.locus);
|
|
5574
5765
|
}
|
|
5575
5766
|
}).catch(function (error) {
|
|
5576
5767
|
_loggerProxy.default.logger.error('Meeting:index#changeVideoLayout --> Error ', error);
|
|
@@ -5586,7 +5777,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5586
5777
|
}, {
|
|
5587
5778
|
key: "setLocalVideoQuality",
|
|
5588
5779
|
value: function setLocalVideoQuality(level) {
|
|
5589
|
-
var
|
|
5780
|
+
var _this55 = this;
|
|
5590
5781
|
_loggerProxy.default.logger.log("Meeting:index#setLocalVideoQuality --> Setting quality to ".concat(level));
|
|
5591
5782
|
if (!_constants.VIDEO_RESOLUTIONS[level]) {
|
|
5592
5783
|
return this.rejectWithErrorLog("Meeting:index#setLocalVideoQuality --> ".concat(level, " not defined"));
|
|
@@ -5615,14 +5806,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5615
5806
|
// open bug link: https://bugs.chromium.org/p/chromium/issues/detail?id=943469
|
|
5616
5807
|
if (isBrowser('chrome') && this.mediaProperties.videoTrack) _media.default.stopTracks(this.mediaProperties.videoTrack);
|
|
5617
5808
|
return this.getMediaStreams(mediaDirection, _constants.VIDEO_RESOLUTIONS[level]).then( /*#__PURE__*/function () {
|
|
5618
|
-
var
|
|
5619
|
-
var
|
|
5809
|
+
var _ref16 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(_ref15) {
|
|
5810
|
+
var _ref17, localStream;
|
|
5620
5811
|
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
5621
5812
|
while (1) switch (_context8.prev = _context8.next) {
|
|
5622
5813
|
case 0:
|
|
5623
|
-
|
|
5814
|
+
_ref17 = (0, _slicedToArray2.default)(_ref15, 1), localStream = _ref17[0];
|
|
5624
5815
|
_context8.next = 3;
|
|
5625
|
-
return
|
|
5816
|
+
return _this55.updateVideo({
|
|
5626
5817
|
sendVideo: true,
|
|
5627
5818
|
receiveVideo: true,
|
|
5628
5819
|
stream: localStream
|
|
@@ -5636,7 +5827,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5636
5827
|
}, _callee8);
|
|
5637
5828
|
}));
|
|
5638
5829
|
return function (_x5) {
|
|
5639
|
-
return
|
|
5830
|
+
return _ref16.apply(this, arguments);
|
|
5640
5831
|
};
|
|
5641
5832
|
}());
|
|
5642
5833
|
}
|
|
@@ -5679,7 +5870,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5679
5870
|
}, {
|
|
5680
5871
|
key: "setMeetingQuality",
|
|
5681
5872
|
value: function setMeetingQuality(level) {
|
|
5682
|
-
var
|
|
5873
|
+
var _this56 = this;
|
|
5683
5874
|
_loggerProxy.default.logger.log("Meeting:index#setMeetingQuality --> Setting quality to ".concat(level));
|
|
5684
5875
|
if (!_constants.QUALITY_LEVELS[level]) {
|
|
5685
5876
|
return this.rejectWithErrorLog("Meeting:index#setMeetingQuality --> ".concat(level, " not defined"));
|
|
@@ -5701,15 +5892,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5701
5892
|
receiveVideo = _this$mediaProperties4.receiveVideo,
|
|
5702
5893
|
sendVideo = _this$mediaProperties4.sendVideo;
|
|
5703
5894
|
return (sendVideo ? this.setLocalVideoQuality(level) : _promise.default.resolve()).then(function () {
|
|
5704
|
-
return receiveAudio || receiveVideo ?
|
|
5895
|
+
return receiveAudio || receiveVideo ? _this56.setRemoteQualityLevel(level) : _promise.default.resolve();
|
|
5705
5896
|
}).catch(function (error) {
|
|
5706
5897
|
// From troubleshooting it seems that the stream itself doesn't change the max-fs if the peer connection isn't stable
|
|
5707
|
-
|
|
5708
|
-
|
|
5898
|
+
_this56.mediaProperties.setLocalQualityLevel(previousLevel.local);
|
|
5899
|
+
_this56.mediaProperties.setRemoteQualityLevel(previousLevel.remote);
|
|
5709
5900
|
_loggerProxy.default.logger.error("Meeting:index#setMeetingQuality --> ".concat(error.message));
|
|
5710
5901
|
_metrics.default.sendBehavioralMetric(_constants2.default.SET_MEETING_QUALITY_FAILURE, {
|
|
5711
|
-
correlation_id:
|
|
5712
|
-
locus_id:
|
|
5902
|
+
correlation_id: _this56.correlationId,
|
|
5903
|
+
locus_id: _this56.locusUrl.split('/').pop(),
|
|
5713
5904
|
reason: error.message,
|
|
5714
5905
|
stack: error.stack
|
|
5715
5906
|
}, {
|
|
@@ -5735,7 +5926,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5735
5926
|
}, {
|
|
5736
5927
|
key: "shareScreen",
|
|
5737
5928
|
value: function shareScreen() {
|
|
5738
|
-
var
|
|
5929
|
+
var _this57 = this;
|
|
5739
5930
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
5740
5931
|
_loggerProxy.default.logger.log('Meeting:index#shareScreen --> Getting local share');
|
|
5741
5932
|
var shareConstraints = _objectSpread({
|
|
@@ -5745,9 +5936,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5745
5936
|
|
|
5746
5937
|
// @ts-ignore - config coming from registerPlugin
|
|
5747
5938
|
return _media.default.getDisplayMedia(shareConstraints, this.config).then(function (shareStream) {
|
|
5748
|
-
return
|
|
5939
|
+
return _this57.updateShare({
|
|
5749
5940
|
sendShare: true,
|
|
5750
|
-
receiveShare:
|
|
5941
|
+
receiveShare: _this57.mediaProperties.mediaDirection.receiveShare,
|
|
5751
5942
|
stream: shareStream
|
|
5752
5943
|
});
|
|
5753
5944
|
}).catch(function (error) {
|
|
@@ -5760,8 +5951,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5760
5951
|
// TODO: The getDisplayMedia errors need to be moved inside `media.getDisplayMedia`
|
|
5761
5952
|
var metricName = _constants2.default.GET_DISPLAY_MEDIA_FAILURE;
|
|
5762
5953
|
var data = {
|
|
5763
|
-
correlation_id:
|
|
5764
|
-
locus_id:
|
|
5954
|
+
correlation_id: _this57.correlationId,
|
|
5955
|
+
locus_id: _this57.locusUrl.split('/').pop(),
|
|
5765
5956
|
reason: error.message,
|
|
5766
5957
|
stack: error.stack
|
|
5767
5958
|
};
|
|
@@ -5837,9 +6028,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5837
6028
|
*/
|
|
5838
6029
|
}, {
|
|
5839
6030
|
key: "handleMediaLogging",
|
|
5840
|
-
value: function handleMediaLogging(
|
|
5841
|
-
var audioTrack =
|
|
5842
|
-
videoTrack =
|
|
6031
|
+
value: function handleMediaLogging(_ref18) {
|
|
6032
|
+
var audioTrack = _ref18.audioTrack,
|
|
6033
|
+
videoTrack = _ref18.videoTrack;
|
|
5843
6034
|
_util.default.handleVideoLogging(videoTrack);
|
|
5844
6035
|
_util.default.handleAudioLogging(audioTrack);
|
|
5845
6036
|
}
|
|
@@ -6046,7 +6237,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6046
6237
|
}, {
|
|
6047
6238
|
key: "endMeetingForAll",
|
|
6048
6239
|
value: function endMeetingForAll() {
|
|
6049
|
-
var
|
|
6240
|
+
var _this58 = this;
|
|
6050
6241
|
_metrics.default.postEvent({
|
|
6051
6242
|
event: _config.eventType.LEAVE,
|
|
6052
6243
|
meeting: this,
|
|
@@ -6061,25 +6252,25 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6061
6252
|
locus_id: this.locusId
|
|
6062
6253
|
});
|
|
6063
6254
|
return _util.default.endMeetingForAll(this).then(function (end) {
|
|
6064
|
-
|
|
6065
|
-
|
|
6255
|
+
_this58.meetingFiniteStateMachine.end();
|
|
6256
|
+
_this58.clearMeetingData();
|
|
6066
6257
|
// upload logs on leave irrespective of meeting delete
|
|
6067
|
-
_triggerProxy.default.trigger(
|
|
6258
|
+
_triggerProxy.default.trigger(_this58, {
|
|
6068
6259
|
file: 'meeting/index',
|
|
6069
6260
|
function: 'endMeetingForAll'
|
|
6070
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
6261
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this58);
|
|
6071
6262
|
return end;
|
|
6072
6263
|
}).catch(function (error) {
|
|
6073
|
-
|
|
6264
|
+
_this58.meetingFiniteStateMachine.fail(error);
|
|
6074
6265
|
_loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
|
|
6075
6266
|
// upload logs on leave irrespective of meeting delete
|
|
6076
|
-
_triggerProxy.default.trigger(
|
|
6267
|
+
_triggerProxy.default.trigger(_this58, {
|
|
6077
6268
|
file: 'meeting/index',
|
|
6078
6269
|
function: 'endMeetingForAll'
|
|
6079
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
6270
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this58);
|
|
6080
6271
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
|
|
6081
|
-
correlation_id:
|
|
6082
|
-
locus_id:
|
|
6272
|
+
correlation_id: _this58.correlationId,
|
|
6273
|
+
locus_id: _this58.locusUrl.split('/').pop(),
|
|
6083
6274
|
reason: error.message,
|
|
6084
6275
|
stack: error.stack,
|
|
6085
6276
|
code: error.code
|
|
@@ -6223,8 +6414,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6223
6414
|
* @memberof Meeting
|
|
6224
6415
|
*/
|
|
6225
6416
|
function sendReaction(reactionType, skinToneType) {
|
|
6226
|
-
var _this$
|
|
6227
|
-
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;
|
|
6228
6419
|
var participantId = this.members.selfId;
|
|
6229
6420
|
var reactionData = _reactions.Reactions[reactionType];
|
|
6230
6421
|
if (!reactionData) {
|
|
@@ -6255,8 +6446,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6255
6446
|
}, {
|
|
6256
6447
|
key: "toggleReactions",
|
|
6257
6448
|
value: function toggleReactions(enable) {
|
|
6258
|
-
var _this$
|
|
6259
|
-
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;
|
|
6260
6451
|
if (isEnabled && enable || !isEnabled && !enable) {
|
|
6261
6452
|
return _promise.default.resolve("Reactions are already ".concat(isEnabled ? 'enabled' : 'disabled', "."));
|
|
6262
6453
|
}
|