@webex/plugin-meetings 3.6.0-next.9 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/config.js +2 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +24 -2
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +1 -0
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.js +10 -3
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.js.map +1 -1
- package/dist/controls-options-manager/util.js +12 -0
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.js +28 -4
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +2 -1
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/index.js +61 -3
- package/dist/locus-info/index.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +19 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +536 -409
- package/dist/meeting/index.js.map +1 -1
- package/dist/meetings/index.js +2 -0
- package/dist/meetings/index.js.map +1 -1
- package/dist/members/index.js +3 -2
- package/dist/members/index.js.map +1 -1
- package/dist/members/util.js +9 -5
- package/dist/members/util.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +227 -0
- package/dist/networkQualityMonitor/index.js.map +1 -0
- package/dist/reachability/index.js +3 -3
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +2 -1
- package/dist/reachability/request.js.map +1 -1
- package/dist/rtcMetrics/constants.js +11 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +197 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/types/config.d.ts +1 -0
- package/dist/types/constants.d.ts +19 -0
- package/dist/types/controls-options-manager/enums.d.ts +2 -1
- package/dist/types/controls-options-manager/index.d.ts +2 -1
- package/dist/types/controls-options-manager/types.d.ts +2 -0
- package/dist/types/locus-info/index.d.ts +9 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +18 -0
- package/dist/types/meeting/index.d.ts +12 -1
- package/dist/types/members/index.d.ts +2 -1
- package/dist/types/members/util.d.ts +3 -1
- package/dist/types/networkQualityMonitor/index.d.ts +70 -0
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +71 -0
- package/dist/webinar/index.js +32 -19
- package/dist/webinar/index.js.map +1 -1
- package/package.json +22 -22
- package/src/config.ts +1 -0
- package/src/constants.ts +25 -0
- package/src/controls-options-manager/enums.ts +1 -0
- package/src/controls-options-manager/index.ts +19 -2
- package/src/controls-options-manager/types.ts +2 -0
- package/src/controls-options-manager/util.ts +12 -0
- package/src/locus-info/controlsUtils.ts +46 -2
- package/src/locus-info/fullState.ts +1 -0
- package/src/locus-info/index.ts +60 -0
- package/src/meeting/in-meeting-actions.ts +37 -0
- package/src/meeting/index.ts +114 -9
- package/src/meetings/index.ts +46 -39
- package/src/members/index.ts +4 -2
- package/src/members/util.ts +3 -1
- package/src/reachability/index.ts +3 -3
- package/src/reachability/request.ts +1 -0
- package/src/webinar/index.ts +31 -17
- package/test/unit/spec/controls-options-manager/index.js +56 -32
- package/test/unit/spec/controls-options-manager/util.js +44 -0
- package/test/unit/spec/locus-info/controlsUtils.js +80 -4
- package/test/unit/spec/locus-info/index.js +59 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +18 -0
- package/test/unit/spec/meeting/index.js +222 -82
- package/test/unit/spec/meetings/index.js +16 -1
- package/test/unit/spec/members/index.js +25 -2
- package/test/unit/spec/members/request.js +37 -3
- package/test/unit/spec/members/utils.js +15 -1
- package/test/unit/spec/reachability/index.ts +1 -1
- package/test/unit/spec/reachability/request.js +13 -8
- package/test/unit/spec/webinar/index.ts +82 -16
package/dist/meeting/index.js
CHANGED
|
@@ -1004,7 +1004,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1004
1004
|
});
|
|
1005
1005
|
_this.iceCandidatesCount = 0;
|
|
1006
1006
|
_this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.MediaConnectionEventNames.ICE_CANDIDATE, function (event) {
|
|
1007
|
-
if (event.candidate) {
|
|
1007
|
+
if (event.candidate && event.candidate.candidate && event.candidate.candidate.length > 0) {
|
|
1008
1008
|
_this.iceCandidatesCount += 1;
|
|
1009
1009
|
}
|
|
1010
1010
|
});
|
|
@@ -2702,6 +2702,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2702
2702
|
this.setUpLocusInfoSelfListener();
|
|
2703
2703
|
this.setUpLocusInfoMeetingListener();
|
|
2704
2704
|
this.setUpLocusServicesListener();
|
|
2705
|
+
this.setUpLocusResourcesListener();
|
|
2705
2706
|
// members update listeners
|
|
2706
2707
|
this.setUpLocusFullStateListener();
|
|
2707
2708
|
this.setUpLocusUrlListener();
|
|
@@ -3218,8 +3219,44 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3218
3219
|
state: state
|
|
3219
3220
|
});
|
|
3220
3221
|
});
|
|
3221
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.
|
|
3222
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_WEBCAST_CHANGED, function (_ref22) {
|
|
3222
3223
|
var state = _ref22.state;
|
|
3224
|
+
_triggerProxy.default.trigger(_this13, {
|
|
3225
|
+
file: 'meeting/index',
|
|
3226
|
+
function: 'setupLocusControlsListener'
|
|
3227
|
+
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_WEBCAST_UPDATED, {
|
|
3228
|
+
state: state
|
|
3229
|
+
});
|
|
3230
|
+
});
|
|
3231
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_FULL_CHANGED, function (_ref23) {
|
|
3232
|
+
var state = _ref23.state;
|
|
3233
|
+
_triggerProxy.default.trigger(_this13, {
|
|
3234
|
+
file: 'meeting/index',
|
|
3235
|
+
function: 'setupLocusControlsListener'
|
|
3236
|
+
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_MEETING_FULL_UPDATED, {
|
|
3237
|
+
state: state
|
|
3238
|
+
});
|
|
3239
|
+
});
|
|
3240
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_PRACTICE_SESSION_STATUS_UPDATED, function (_ref24) {
|
|
3241
|
+
var state = _ref24.state;
|
|
3242
|
+
_triggerProxy.default.trigger(_this13, {
|
|
3243
|
+
file: 'meeting/index',
|
|
3244
|
+
function: 'setupLocusControlsListener'
|
|
3245
|
+
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_PRACTICE_SESSION_STATUS_UPDATED, {
|
|
3246
|
+
state: state
|
|
3247
|
+
});
|
|
3248
|
+
});
|
|
3249
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_STAGE_VIEW_UPDATED, function (_ref25) {
|
|
3250
|
+
var state = _ref25.state;
|
|
3251
|
+
_triggerProxy.default.trigger(_this13, {
|
|
3252
|
+
file: 'meeting/index',
|
|
3253
|
+
function: 'setupLocusControlsListener'
|
|
3254
|
+
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_STAGE_VIEW_UPDATED, {
|
|
3255
|
+
state: state
|
|
3256
|
+
});
|
|
3257
|
+
});
|
|
3258
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIDEO_CHANGED, function (_ref26) {
|
|
3259
|
+
var state = _ref26.state;
|
|
3223
3260
|
_triggerProxy.default.trigger(_this13, {
|
|
3224
3261
|
file: 'meeting/index',
|
|
3225
3262
|
function: 'setupLocusControlsListener'
|
|
@@ -3266,7 +3303,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3266
3303
|
var _this14 = this;
|
|
3267
3304
|
// Will get triggered on local and remote share
|
|
3268
3305
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_MEDIA_SHARES, /*#__PURE__*/function () {
|
|
3269
|
-
var
|
|
3306
|
+
var _ref27 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(payload) {
|
|
3270
3307
|
var _payload$previous, _payload$previous2;
|
|
3271
3308
|
var _payload$current, contentShare, whiteboardShare, previousContentShare, previousWhiteboardShare, newShareStatus, oldShareStatus, sendStartedSharingRemote, _this14$mediaProperti;
|
|
3272
3309
|
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
@@ -3464,7 +3501,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3464
3501
|
}, _callee8, null, [[27,, 31, 34]]);
|
|
3465
3502
|
}));
|
|
3466
3503
|
return function (_x8) {
|
|
3467
|
-
return
|
|
3504
|
+
return _ref27.apply(this, arguments);
|
|
3468
3505
|
};
|
|
3469
3506
|
}());
|
|
3470
3507
|
}
|
|
@@ -3514,14 +3551,29 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3514
3551
|
value: function setUpLocusServicesListener() {
|
|
3515
3552
|
var _this16 = this;
|
|
3516
3553
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.LINKS_SERVICES, function (payload) {
|
|
3517
|
-
var _payload$services, _payload$services$rec, _this16$locusInfo, _this16$locusInfo$ful, _payload$services2, _payload$services2$br, _payload$services3, _payload$services3$ap, _payload$services4, _payload$services4$ap
|
|
3554
|
+
var _payload$services, _payload$services$rec, _this16$locusInfo, _this16$locusInfo$ful, _payload$services2, _payload$services2$br, _payload$services3, _payload$services3$ap, _payload$services4, _payload$services4$ap;
|
|
3518
3555
|
_this16.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);
|
|
3519
3556
|
_this16.recordingController.setSessionId((_this16$locusInfo = _this16.locusInfo) === null || _this16$locusInfo === void 0 ? void 0 : (_this16$locusInfo$ful = _this16$locusInfo.fullState) === null || _this16$locusInfo$ful === void 0 ? void 0 : _this16$locusInfo$ful.sessionId);
|
|
3520
3557
|
_this16.breakouts.breakoutServiceUrlUpdate(payload === null || payload === void 0 ? void 0 : (_payload$services2 = payload.services) === null || _payload$services2 === void 0 ? void 0 : (_payload$services2$br = _payload$services2.breakout) === null || _payload$services2$br === void 0 ? void 0 : _payload$services2$br.url);
|
|
3521
3558
|
_this16.annotation.approvalUrlUpdate(payload === null || payload === void 0 ? void 0 : (_payload$services3 = payload.services) === null || _payload$services3 === void 0 ? void 0 : (_payload$services3$ap = _payload$services3.approval) === null || _payload$services3$ap === void 0 ? void 0 : _payload$services3$ap.url);
|
|
3522
3559
|
_this16.simultaneousInterpretation.approvalUrlUpdate(payload === null || payload === void 0 ? void 0 : (_payload$services4 = payload.services) === null || _payload$services4 === void 0 ? void 0 : (_payload$services4$ap = _payload$services4.approval) === null || _payload$services4$ap === void 0 ? void 0 : _payload$services4$ap.url);
|
|
3523
|
-
|
|
3524
|
-
|
|
3560
|
+
});
|
|
3561
|
+
}
|
|
3562
|
+
|
|
3563
|
+
/**
|
|
3564
|
+
* Set up the locus info resources link listener
|
|
3565
|
+
* update the locusInfo for webcast instance url
|
|
3566
|
+
* @param {Object} payload - The event payload
|
|
3567
|
+
* @returns {undefined}
|
|
3568
|
+
* @private
|
|
3569
|
+
* @memberof Meeting
|
|
3570
|
+
*/
|
|
3571
|
+
}, {
|
|
3572
|
+
key: "setUpLocusResourcesListener",
|
|
3573
|
+
value: function setUpLocusResourcesListener() {
|
|
3574
|
+
var _this17 = this;
|
|
3575
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.LINKS_RESOURCES, function (payload) {
|
|
3576
|
+
_this17.webinar.updateWebcastUrl(payload);
|
|
3525
3577
|
});
|
|
3526
3578
|
}
|
|
3527
3579
|
|
|
@@ -3534,10 +3586,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3534
3586
|
}, {
|
|
3535
3587
|
key: "setUpLocusInfoMeetingInfoListener",
|
|
3536
3588
|
value: function setUpLocusInfoMeetingInfoListener() {
|
|
3537
|
-
var
|
|
3589
|
+
var _this18 = this;
|
|
3538
3590
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_LOCKED, function (payload) {
|
|
3539
3591
|
if (payload) {
|
|
3540
|
-
_triggerProxy.default.trigger(
|
|
3592
|
+
_triggerProxy.default.trigger(_this18, {
|
|
3541
3593
|
file: 'meeting/index',
|
|
3542
3594
|
function: 'setUpLocusInfoMeetingInfoListener'
|
|
3543
3595
|
}, _constants.EVENT_TRIGGERS.MEETING_LOCKED, {
|
|
@@ -3547,7 +3599,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3547
3599
|
});
|
|
3548
3600
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_UNLOCKED, function (payload) {
|
|
3549
3601
|
if (payload) {
|
|
3550
|
-
_triggerProxy.default.trigger(
|
|
3602
|
+
_triggerProxy.default.trigger(_this18, {
|
|
3551
3603
|
file: 'meeting/index',
|
|
3552
3604
|
function: 'setUpLocusInfoMeetingInfoListener'
|
|
3553
3605
|
}, _constants.EVENT_TRIGGERS.MEETING_UNLOCKED, {
|
|
@@ -3555,16 +3607,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3555
3607
|
});
|
|
3556
3608
|
}
|
|
3557
3609
|
});
|
|
3558
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, function (
|
|
3559
|
-
var isInitializing =
|
|
3560
|
-
|
|
3561
|
-
|
|
3562
|
-
|
|
3563
|
-
|
|
3564
|
-
|
|
3610
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, function (_ref28) {
|
|
3611
|
+
var isInitializing = _ref28.isInitializing;
|
|
3612
|
+
_this18.updateMeetingActions();
|
|
3613
|
+
_this18.recordingController.setDisplayHints(_this18.userDisplayHints);
|
|
3614
|
+
_this18.recordingController.setUserPolicy(_this18.selfUserPolicies);
|
|
3615
|
+
_this18.controlsOptionsManager.setDisplayHints(_this18.userDisplayHints);
|
|
3616
|
+
_this18.handleDataChannelUrlChange(_this18.datachannelUrl);
|
|
3565
3617
|
if (!isInitializing) {
|
|
3566
3618
|
// send updated trigger only if locus is not initializing the meeting
|
|
3567
|
-
_triggerProxy.default.trigger(
|
|
3619
|
+
_triggerProxy.default.trigger(_this18, {
|
|
3568
3620
|
file: 'meetings',
|
|
3569
3621
|
function: 'setUpLocusInfoMeetingInfoListener'
|
|
3570
3622
|
}, _constants.EVENT_TRIGGERS.MEETING_INFO_UPDATED);
|
|
@@ -3595,10 +3647,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3595
3647
|
}, {
|
|
3596
3648
|
key: "setUpLocusEmbeddedAppsListener",
|
|
3597
3649
|
value: function setUpLocusEmbeddedAppsListener() {
|
|
3598
|
-
var
|
|
3650
|
+
var _this19 = this;
|
|
3599
3651
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.EMBEDDED_APPS_UPDATED, function (embeddedApps) {
|
|
3600
3652
|
if (embeddedApps) {
|
|
3601
|
-
_triggerProxy.default.trigger(
|
|
3653
|
+
_triggerProxy.default.trigger(_this19, {
|
|
3602
3654
|
file: 'meeting/index',
|
|
3603
3655
|
function: 'setUpLocusEmbeddedAppsListener'
|
|
3604
3656
|
}, _constants.EVENT_TRIGGERS.MEETING_EMBEDDED_APPS_UPDATE, embeddedApps);
|
|
@@ -3615,11 +3667,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3615
3667
|
}, {
|
|
3616
3668
|
key: "setUpLocusInfoSelfListener",
|
|
3617
3669
|
value: function setUpLocusInfoSelfListener() {
|
|
3618
|
-
var
|
|
3670
|
+
var _this20 = this;
|
|
3619
3671
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.LOCAL_UNMUTE_REQUIRED, function (payload) {
|
|
3620
|
-
if (
|
|
3621
|
-
|
|
3622
|
-
_triggerProxy.default.trigger(
|
|
3672
|
+
if (_this20.audio) {
|
|
3673
|
+
_this20.audio.handleServerLocalUnmuteRequired(_this20, payload.unmuteAllowed);
|
|
3674
|
+
_triggerProxy.default.trigger(_this20, {
|
|
3623
3675
|
file: 'meeting/index',
|
|
3624
3676
|
function: 'setUpLocusInfoSelfListener'
|
|
3625
3677
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_UNMUTED_BY_OTHERS, {
|
|
@@ -3629,13 +3681,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3629
3681
|
});
|
|
3630
3682
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED, function (payload) {
|
|
3631
3683
|
if (payload) {
|
|
3632
|
-
if (
|
|
3684
|
+
if (_this20.video) {
|
|
3633
3685
|
var _payload$muted, _payload$unmuteAllowe;
|
|
3634
|
-
payload.muted = (_payload$muted = payload.muted) !== null && _payload$muted !== void 0 ? _payload$muted :
|
|
3635
|
-
payload.unmuteAllowed = (_payload$unmuteAllowe = payload.unmuteAllowed) !== null && _payload$unmuteAllowe !== void 0 ? _payload$unmuteAllowe :
|
|
3636
|
-
|
|
3686
|
+
payload.muted = (_payload$muted = payload.muted) !== null && _payload$muted !== void 0 ? _payload$muted : _this20.video.isRemotelyMuted();
|
|
3687
|
+
payload.unmuteAllowed = (_payload$unmuteAllowe = payload.unmuteAllowed) !== null && _payload$unmuteAllowe !== void 0 ? _payload$unmuteAllowe : _this20.video.isUnmuteAllowed();
|
|
3688
|
+
_this20.video.handleServerRemoteMuteUpdate(_this20, payload.muted, payload.unmuteAllowed);
|
|
3637
3689
|
}
|
|
3638
|
-
_triggerProxy.default.trigger(
|
|
3690
|
+
_triggerProxy.default.trigger(_this20, {
|
|
3639
3691
|
file: 'meeting/index',
|
|
3640
3692
|
function: 'setUpLocusInfoSelfListener'
|
|
3641
3693
|
}, payload.muted ? _constants.EVENT_TRIGGERS.MEETING_SELF_VIDEO_MUTED_BY_OTHERS : _constants.EVENT_TRIGGERS.MEETING_SELF_VIDEO_UNMUTED_BY_OTHERS, {
|
|
@@ -3645,15 +3697,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3645
3697
|
});
|
|
3646
3698
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_REMOTE_MUTE_STATUS_UPDATED, function (payload) {
|
|
3647
3699
|
if (payload) {
|
|
3648
|
-
var
|
|
3649
|
-
if (
|
|
3650
|
-
|
|
3700
|
+
var _this20$audio;
|
|
3701
|
+
if (_this20.audio) {
|
|
3702
|
+
_this20.audio.handleServerRemoteMuteUpdate(_this20, payload.muted, payload.unmuteAllowed);
|
|
3651
3703
|
}
|
|
3652
3704
|
// with "mute on entry" server will send us remote mute even if we don't have media configured,
|
|
3653
3705
|
// so if being muted by others, always send the notification,
|
|
3654
3706
|
// but if being unmuted, only send it if we are also locally unmuted
|
|
3655
|
-
if (payload.muted || !((
|
|
3656
|
-
_triggerProxy.default.trigger(
|
|
3707
|
+
if (payload.muted || !((_this20$audio = _this20.audio) !== null && _this20$audio !== void 0 && _this20$audio.isMuted())) {
|
|
3708
|
+
_triggerProxy.default.trigger(_this20, {
|
|
3657
3709
|
file: 'meeting/index',
|
|
3658
3710
|
function: 'setUpLocusInfoSelfListener'
|
|
3659
3711
|
}, payload.muted ? _constants.EVENT_TRIGGERS.MEETING_SELF_MUTED_BY_OTHERS : _constants.EVENT_TRIGGERS.MEETING_SELF_UNMUTED_BY_OTHERS, {
|
|
@@ -3663,7 +3715,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3663
3715
|
}
|
|
3664
3716
|
});
|
|
3665
3717
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.LOCAL_UNMUTE_REQUESTED, function (payload) {
|
|
3666
|
-
_triggerProxy.default.trigger(
|
|
3718
|
+
_triggerProxy.default.trigger(_this20, {
|
|
3667
3719
|
file: 'meeting/index',
|
|
3668
3720
|
function: 'setUpLocusInfoSelfListener'
|
|
3669
3721
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_REQUESTED_TO_UNMUTE, {
|
|
@@ -3672,8 +3724,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3672
3724
|
});
|
|
3673
3725
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_UNADMITTED_GUEST, function (payload) {
|
|
3674
3726
|
if (payload) {
|
|
3675
|
-
|
|
3676
|
-
_triggerProxy.default.trigger(
|
|
3727
|
+
_this20.startKeepAlive();
|
|
3728
|
+
_triggerProxy.default.trigger(_this20, {
|
|
3677
3729
|
file: 'meeting/index',
|
|
3678
3730
|
function: 'setUpLocusInfoSelfListener'
|
|
3679
3731
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_LOBBY_WAITING, {
|
|
@@ -3681,24 +3733,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3681
3733
|
});
|
|
3682
3734
|
|
|
3683
3735
|
// @ts-ignore
|
|
3684
|
-
|
|
3736
|
+
_this20.webex.internal.newMetrics.submitClientEvent({
|
|
3685
3737
|
name: 'client.lobby.entered',
|
|
3686
3738
|
options: {
|
|
3687
|
-
meetingId:
|
|
3739
|
+
meetingId: _this20.id
|
|
3688
3740
|
}
|
|
3689
3741
|
});
|
|
3690
3742
|
}
|
|
3691
|
-
|
|
3743
|
+
_this20.updateLLMConnection();
|
|
3692
3744
|
});
|
|
3693
3745
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ADMITTED_GUEST, /*#__PURE__*/function () {
|
|
3694
|
-
var
|
|
3695
|
-
var
|
|
3746
|
+
var _ref29 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(payload) {
|
|
3747
|
+
var _this20$rtcMetrics;
|
|
3696
3748
|
return _regenerator.default.wrap(function _callee9$(_context9) {
|
|
3697
3749
|
while (1) switch (_context9.prev = _context9.next) {
|
|
3698
3750
|
case 0:
|
|
3699
|
-
|
|
3751
|
+
_this20.stopKeepAlive();
|
|
3700
3752
|
if (payload) {
|
|
3701
|
-
_triggerProxy.default.trigger(
|
|
3753
|
+
_triggerProxy.default.trigger(_this20, {
|
|
3702
3754
|
file: 'meeting/index',
|
|
3703
3755
|
function: 'setUpLocusInfoSelfListener'
|
|
3704
3756
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_GUEST_ADMITTED, {
|
|
@@ -3706,15 +3758,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3706
3758
|
});
|
|
3707
3759
|
|
|
3708
3760
|
// @ts-ignore
|
|
3709
|
-
|
|
3761
|
+
_this20.webex.internal.newMetrics.submitClientEvent({
|
|
3710
3762
|
name: 'client.lobby.exited',
|
|
3711
3763
|
options: {
|
|
3712
|
-
meetingId:
|
|
3764
|
+
meetingId: _this20.id
|
|
3713
3765
|
}
|
|
3714
3766
|
});
|
|
3715
3767
|
}
|
|
3716
|
-
(
|
|
3717
|
-
|
|
3768
|
+
(_this20$rtcMetrics = _this20.rtcMetrics) === null || _this20$rtcMetrics === void 0 ? void 0 : _this20$rtcMetrics.sendNextMetrics();
|
|
3769
|
+
_this20.updateLLMConnection();
|
|
3718
3770
|
case 4:
|
|
3719
3771
|
case "end":
|
|
3720
3772
|
return _context9.stop();
|
|
@@ -3722,42 +3774,42 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3722
3774
|
}, _callee9);
|
|
3723
3775
|
}));
|
|
3724
3776
|
return function (_x9) {
|
|
3725
|
-
return
|
|
3777
|
+
return _ref29.apply(this, arguments);
|
|
3726
3778
|
};
|
|
3727
3779
|
}());
|
|
3728
3780
|
|
|
3729
3781
|
// @ts-ignore - check if MEDIA_INACTIVITY exists
|
|
3730
3782
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEDIA_INACTIVITY, function () {
|
|
3731
3783
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_MEDIA_INACTIVE, {
|
|
3732
|
-
correlation_id:
|
|
3733
|
-
locus_id:
|
|
3784
|
+
correlation_id: _this20.correlationId,
|
|
3785
|
+
locus_id: _this20.locusId
|
|
3734
3786
|
});
|
|
3735
3787
|
_loggerProxy.default.logger.info('Meeting:index#setUpLocusInfoSelfListener --> MEDIA_INACTIVITY received, reconnecting...');
|
|
3736
|
-
|
|
3788
|
+
_this20.reconnect();
|
|
3737
3789
|
});
|
|
3738
3790
|
|
|
3739
3791
|
// There is two stats for mute one is the actual media being sent or received
|
|
3740
3792
|
// The second on is if the audio is muted, we need to tell the statsAnalyzer when
|
|
3741
3793
|
// the audio is muted or the user is not willing to send media
|
|
3742
3794
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEDIA_STATUS_CHANGE, function (status) {
|
|
3743
|
-
if (
|
|
3744
|
-
var
|
|
3745
|
-
|
|
3795
|
+
if (_this20.statsAnalyzer) {
|
|
3796
|
+
var _this20$mediaProperti, _this20$audio2, _this20$mediaProperti2, _this20$video, _this20$mediaProperti3, _this20$mediaProperti4, _this20$mediaProperti5, _this20$mediaProperti6;
|
|
3797
|
+
_this20.statsAnalyzer.updateMediaStatus({
|
|
3746
3798
|
actual: status,
|
|
3747
3799
|
expected: {
|
|
3748
3800
|
// We need to check what should be the actual direction of media
|
|
3749
|
-
sendAudio: ((
|
|
3750
|
-
sendVideo: ((
|
|
3751
|
-
sendShare: (
|
|
3752
|
-
receiveAudio: (
|
|
3753
|
-
receiveVideo: (
|
|
3754
|
-
receiveShare: (
|
|
3801
|
+
sendAudio: ((_this20$mediaProperti = _this20.mediaProperties.mediaDirection) === null || _this20$mediaProperti === void 0 ? void 0 : _this20$mediaProperti.sendAudio) && !((_this20$audio2 = _this20.audio) !== null && _this20$audio2 !== void 0 && _this20$audio2.isMuted()),
|
|
3802
|
+
sendVideo: ((_this20$mediaProperti2 = _this20.mediaProperties.mediaDirection) === null || _this20$mediaProperti2 === void 0 ? void 0 : _this20$mediaProperti2.sendVideo) && !((_this20$video = _this20.video) !== null && _this20$video !== void 0 && _this20$video.isMuted()),
|
|
3803
|
+
sendShare: (_this20$mediaProperti3 = _this20.mediaProperties.mediaDirection) === null || _this20$mediaProperti3 === void 0 ? void 0 : _this20$mediaProperti3.sendShare,
|
|
3804
|
+
receiveAudio: (_this20$mediaProperti4 = _this20.mediaProperties.mediaDirection) === null || _this20$mediaProperti4 === void 0 ? void 0 : _this20$mediaProperti4.receiveAudio,
|
|
3805
|
+
receiveVideo: (_this20$mediaProperti5 = _this20.mediaProperties.mediaDirection) === null || _this20$mediaProperti5 === void 0 ? void 0 : _this20$mediaProperti5.receiveVideo,
|
|
3806
|
+
receiveShare: (_this20$mediaProperti6 = _this20.mediaProperties.mediaDirection) === null || _this20$mediaProperti6 === void 0 ? void 0 : _this20$mediaProperti6.receiveShare
|
|
3755
3807
|
}
|
|
3756
3808
|
});
|
|
3757
3809
|
}
|
|
3758
3810
|
});
|
|
3759
3811
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_CANNOT_VIEW_PARTICIPANT_LIST_CHANGE, function (payload) {
|
|
3760
|
-
_triggerProxy.default.trigger(
|
|
3812
|
+
_triggerProxy.default.trigger(_this20, {
|
|
3761
3813
|
file: 'meeting/index',
|
|
3762
3814
|
function: 'setUpLocusInfoSelfListener'
|
|
3763
3815
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_CANNOT_VIEW_PARTICIPANT_LIST, {
|
|
@@ -3765,29 +3817,29 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3765
3817
|
});
|
|
3766
3818
|
});
|
|
3767
3819
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_MEETING_BREAKOUTS_CHANGED, function (payload) {
|
|
3768
|
-
|
|
3769
|
-
_triggerProxy.default.trigger(
|
|
3820
|
+
_this20.breakouts.updateBreakoutSessions(payload);
|
|
3821
|
+
_triggerProxy.default.trigger(_this20, {
|
|
3770
3822
|
file: 'meeting/index',
|
|
3771
3823
|
function: 'setUpLocusInfoSelfListener'
|
|
3772
3824
|
}, _constants.EVENT_TRIGGERS.MEETING_BREAKOUTS_UPDATE);
|
|
3773
3825
|
});
|
|
3774
3826
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_MEETING_INTERPRETATION_CHANGED, function (payload) {
|
|
3775
|
-
var targetChanged =
|
|
3776
|
-
_triggerProxy.default.trigger(
|
|
3827
|
+
var targetChanged = _this20.simultaneousInterpretation.updateSelfInterpretation(payload);
|
|
3828
|
+
_triggerProxy.default.trigger(_this20, {
|
|
3777
3829
|
file: 'meeting/index',
|
|
3778
3830
|
function: 'setUpLocusInfoSelfListener'
|
|
3779
3831
|
}, _constants.EVENT_TRIGGERS.MEETING_INTERPRETATION_UPDATE);
|
|
3780
|
-
if (targetChanged &&
|
|
3781
|
-
|
|
3832
|
+
if (targetChanged && _this20.mediaProperties.audioStream) {
|
|
3833
|
+
_this20.setSendNamedMediaGroup(_internalMediaCore.MediaType.AudioMain);
|
|
3782
3834
|
}
|
|
3783
3835
|
});
|
|
3784
3836
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ROLES_CHANGED, function (payload) {
|
|
3785
|
-
var _payload$newRoles, _payload$newRoles2, _payload$newRoles3
|
|
3837
|
+
var _payload$newRoles, _payload$newRoles2, _payload$newRoles3;
|
|
3786
3838
|
var isModeratorOrCohost = ((_payload$newRoles = payload.newRoles) === null || _payload$newRoles === void 0 ? void 0 : _payload$newRoles.includes(_constants.SELF_ROLES.MODERATOR)) || ((_payload$newRoles2 = payload.newRoles) === null || _payload$newRoles2 === void 0 ? void 0 : _payload$newRoles2.includes(_constants.SELF_ROLES.COHOST));
|
|
3787
|
-
|
|
3788
|
-
|
|
3789
|
-
|
|
3790
|
-
_triggerProxy.default.trigger(
|
|
3839
|
+
_this20.breakouts.updateCanManageBreakouts(isModeratorOrCohost);
|
|
3840
|
+
_this20.simultaneousInterpretation.updateCanManageInterpreters((_payload$newRoles3 = payload.newRoles) === null || _payload$newRoles3 === void 0 ? void 0 : _payload$newRoles3.includes(_constants.SELF_ROLES.MODERATOR));
|
|
3841
|
+
_this20.webinar.updateRoleChanged(payload);
|
|
3842
|
+
_triggerProxy.default.trigger(_this20, {
|
|
3791
3843
|
file: 'meeting/index',
|
|
3792
3844
|
function: 'setUpLocusInfoSelfListener'
|
|
3793
3845
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_ROLES_CHANGED, {
|
|
@@ -3795,7 +3847,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3795
3847
|
});
|
|
3796
3848
|
});
|
|
3797
3849
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_IS_SHARING_BLOCKED_CHANGE, function (payload) {
|
|
3798
|
-
_triggerProxy.default.trigger(
|
|
3850
|
+
_triggerProxy.default.trigger(_this20, {
|
|
3799
3851
|
file: 'meeting/index',
|
|
3800
3852
|
function: 'setUpLocusInfoSelfListener'
|
|
3801
3853
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_IS_SHARING_BLOCKED, {
|
|
@@ -3813,42 +3865,42 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3813
3865
|
}, {
|
|
3814
3866
|
key: "setUpLocusInfoMeetingListener",
|
|
3815
3867
|
value: function setUpLocusInfoMeetingListener() {
|
|
3816
|
-
var
|
|
3868
|
+
var _this21 = this;
|
|
3817
3869
|
this.locusInfo.on(_constants.EVENTS.REMOTE_RESPONSE, function (payload) {
|
|
3818
|
-
|
|
3870
|
+
_this21.meetingFiniteStateMachine.remote(payload);
|
|
3819
3871
|
if (payload.remoteDeclined) {
|
|
3820
|
-
|
|
3872
|
+
_this21.leave({
|
|
3821
3873
|
reason: payload.reason
|
|
3822
3874
|
}).then(function () {
|
|
3823
3875
|
_loggerProxy.default.logger.info('Meeting:index#setUpLocusInfoMeetingListener --> REMOTE_RESPONSE. Attempting to leave meeting.');
|
|
3824
3876
|
}).catch(function (error) {
|
|
3825
3877
|
// @ts-ignore
|
|
3826
|
-
_loggerProxy.default.logger.error("Meeting:index#setUpLocusInfoMeetingListener --> REMOTE_RESPONSE. Issue with leave for meeting, meeting still in collection: ".concat(
|
|
3878
|
+
_loggerProxy.default.logger.error("Meeting:index#setUpLocusInfoMeetingListener --> REMOTE_RESPONSE. Issue with leave for meeting, meeting still in collection: ".concat(_this21, ", error: ").concat(error));
|
|
3827
3879
|
});
|
|
3828
3880
|
}
|
|
3829
3881
|
});
|
|
3830
3882
|
this.locusInfo.on(_constants.EVENTS.DESTROY_MEETING, /*#__PURE__*/function () {
|
|
3831
|
-
var
|
|
3883
|
+
var _ref30 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(payload) {
|
|
3832
3884
|
return _regenerator.default.wrap(function _callee10$(_context10) {
|
|
3833
3885
|
while (1) switch (_context10.prev = _context10.next) {
|
|
3834
3886
|
case 0:
|
|
3835
|
-
if (!
|
|
3887
|
+
if (!_this21.wirelessShare) {
|
|
3836
3888
|
_context10.next = 7;
|
|
3837
3889
|
break;
|
|
3838
3890
|
}
|
|
3839
|
-
if (!
|
|
3891
|
+
if (!_this21.mediaProperties.shareVideoStream) {
|
|
3840
3892
|
_context10.next = 4;
|
|
3841
3893
|
break;
|
|
3842
3894
|
}
|
|
3843
3895
|
_context10.next = 4;
|
|
3844
|
-
return
|
|
3896
|
+
return _this21.setLocalShareVideoStream(undefined);
|
|
3845
3897
|
case 4:
|
|
3846
|
-
if (!
|
|
3898
|
+
if (!_this21.mediaProperties.shareAudioStream) {
|
|
3847
3899
|
_context10.next = 7;
|
|
3848
3900
|
break;
|
|
3849
3901
|
}
|
|
3850
3902
|
_context10.next = 7;
|
|
3851
|
-
return
|
|
3903
|
+
return _this21.setLocalShareAudioStream(undefined);
|
|
3852
3904
|
case 7:
|
|
3853
3905
|
if (!payload.shouldLeave) {
|
|
3854
3906
|
_context10.next = 19;
|
|
@@ -3856,7 +3908,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3856
3908
|
}
|
|
3857
3909
|
_context10.prev = 8;
|
|
3858
3910
|
_context10.next = 11;
|
|
3859
|
-
return
|
|
3911
|
+
return _this21.leave({
|
|
3860
3912
|
reason: payload.reason
|
|
3861
3913
|
});
|
|
3862
3914
|
case 11:
|
|
@@ -3867,19 +3919,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3867
3919
|
_context10.prev = 14;
|
|
3868
3920
|
_context10.t0 = _context10["catch"](8);
|
|
3869
3921
|
// @ts-ignore
|
|
3870
|
-
_loggerProxy.default.logger.error("Meeting:index#setUpLocusInfoMeetingListener --> DESTROY_MEETING. Issue with leave for meeting, meeting still in collection: ".concat(
|
|
3922
|
+
_loggerProxy.default.logger.error("Meeting:index#setUpLocusInfoMeetingListener --> DESTROY_MEETING. Issue with leave for meeting, meeting still in collection: ".concat(_this21, ", error: ").concat(_context10.t0));
|
|
3871
3923
|
case 17:
|
|
3872
3924
|
_context10.next = 22;
|
|
3873
3925
|
break;
|
|
3874
3926
|
case 19:
|
|
3875
3927
|
_loggerProxy.default.logger.info('Meeting:index#setUpLocusInfoMeetingListener --> MEETING_REMOVED_REASON', payload.reason);
|
|
3876
|
-
_util2.default.cleanUp(
|
|
3877
|
-
_triggerProxy.default.trigger(
|
|
3928
|
+
_util2.default.cleanUp(_this21);
|
|
3929
|
+
_triggerProxy.default.trigger(_this21, {
|
|
3878
3930
|
file: 'meeting/index',
|
|
3879
3931
|
function: 'setUpLocusInfoMeetingListener'
|
|
3880
3932
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
|
3881
3933
|
reason: payload.reason,
|
|
3882
|
-
meetingId:
|
|
3934
|
+
meetingId: _this21.id
|
|
3883
3935
|
});
|
|
3884
3936
|
case 22:
|
|
3885
3937
|
case "end":
|
|
@@ -3888,7 +3940,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3888
3940
|
}, _callee10, null, [[8, 14]]);
|
|
3889
3941
|
}));
|
|
3890
3942
|
return function (_x10) {
|
|
3891
|
-
return
|
|
3943
|
+
return _ref30.apply(this, arguments);
|
|
3892
3944
|
};
|
|
3893
3945
|
}());
|
|
3894
3946
|
}
|
|
@@ -3904,13 +3956,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3904
3956
|
}, {
|
|
3905
3957
|
key: "updateMeetingObject",
|
|
3906
3958
|
value: function updateMeetingObject(object) {
|
|
3907
|
-
var
|
|
3959
|
+
var _this22 = this;
|
|
3908
3960
|
// Validate if these are valid meeting object property
|
|
3909
3961
|
// TODO: add a check to make sure the value passed in the constructor
|
|
3910
3962
|
// is not changed by any delta event
|
|
3911
3963
|
if (object && (0, _keys.default)(object).length) {
|
|
3912
3964
|
(0, _keys.default)(object).forEach(function (key) {
|
|
3913
|
-
|
|
3965
|
+
_this22[key] = object[key];
|
|
3914
3966
|
});
|
|
3915
3967
|
}
|
|
3916
3968
|
}
|
|
@@ -4240,6 +4292,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4240
4292
|
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_VIEW_THE_PARTICIPANT_LIST],
|
|
4241
4293
|
displayHints: this.userDisplayHints
|
|
4242
4294
|
}),
|
|
4295
|
+
canEnableViewTheParticipantsListPanelist: _util5.default.hasHints({
|
|
4296
|
+
requiredHints: [_constants.DISPLAY_HINTS.ENABLE_VIEW_THE_PARTICIPANT_LIST_PANELIST],
|
|
4297
|
+
displayHints: this.userDisplayHints
|
|
4298
|
+
}),
|
|
4299
|
+
canDisableViewTheParticipantsListPanelist: _util5.default.hasHints({
|
|
4300
|
+
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_VIEW_THE_PARTICIPANT_LIST_PANELIST],
|
|
4301
|
+
displayHints: this.userDisplayHints
|
|
4302
|
+
}),
|
|
4303
|
+
canEnableShowAttendeeCount: _util5.default.hasHints({
|
|
4304
|
+
requiredHints: [_constants.DISPLAY_HINTS.ENABLE_SHOW_ATTENDEE_COUNT],
|
|
4305
|
+
displayHints: this.userDisplayHints
|
|
4306
|
+
}),
|
|
4307
|
+
canDisableShowAttendeeCount: _util5.default.hasHints({
|
|
4308
|
+
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_SHOW_ATTENDEE_COUNT],
|
|
4309
|
+
displayHints: this.userDisplayHints
|
|
4310
|
+
}),
|
|
4243
4311
|
canEnableRaiseHand: _util5.default.hasHints({
|
|
4244
4312
|
requiredHints: [_constants.DISPLAY_HINTS.ENABLE_RAISE_HAND],
|
|
4245
4313
|
displayHints: this.userDisplayHints
|
|
@@ -4256,6 +4324,26 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4256
4324
|
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_VIDEO],
|
|
4257
4325
|
displayHints: this.userDisplayHints
|
|
4258
4326
|
}),
|
|
4327
|
+
canStartWebcast: _util5.default.hasHints({
|
|
4328
|
+
requiredHints: [_constants.DISPLAY_HINTS.WEBCAST_CONTROL_START],
|
|
4329
|
+
displayHints: this.userDisplayHints
|
|
4330
|
+
}),
|
|
4331
|
+
canStopWebcast: _util5.default.hasHints({
|
|
4332
|
+
requiredHints: [_constants.DISPLAY_HINTS.WEBCAST_CONTROL_STOP],
|
|
4333
|
+
displayHints: this.userDisplayHints
|
|
4334
|
+
}),
|
|
4335
|
+
canShowStageView: _util5.default.hasHints({
|
|
4336
|
+
requiredHints: [_constants.DISPLAY_HINTS.STAGE_VIEW_ACTIVE],
|
|
4337
|
+
displayHints: this.userDisplayHints
|
|
4338
|
+
}),
|
|
4339
|
+
canEnableStageView: _util5.default.hasHints({
|
|
4340
|
+
requiredHints: [_constants.DISPLAY_HINTS.ENABLE_STAGE_VIEW],
|
|
4341
|
+
displayHints: this.userDisplayHints
|
|
4342
|
+
}),
|
|
4343
|
+
canDisableStageView: _util5.default.hasHints({
|
|
4344
|
+
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_STAGE_VIEW],
|
|
4345
|
+
displayHints: this.userDisplayHints
|
|
4346
|
+
}),
|
|
4259
4347
|
canShareFile: _util5.default.hasHints({
|
|
4260
4348
|
requiredHints: [_constants.DISPLAY_HINTS.SHARE_FILE],
|
|
4261
4349
|
displayHints: this.userDisplayHints
|
|
@@ -4434,7 +4522,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4434
4522
|
}, {
|
|
4435
4523
|
key: "closeRemoteStreams",
|
|
4436
4524
|
value: function closeRemoteStreams() {
|
|
4437
|
-
var
|
|
4525
|
+
var _this23 = this;
|
|
4438
4526
|
var _this$mediaProperties4 = this.mediaProperties,
|
|
4439
4527
|
remoteAudioStream = _this$mediaProperties4.remoteAudioStream,
|
|
4440
4528
|
remoteVideoStream = _this$mediaProperties4.remoteVideoStream,
|
|
@@ -4448,7 +4536,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4448
4536
|
*/
|
|
4449
4537
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
4450
4538
|
var triggerMediaStoppedEvent = function triggerMediaStoppedEvent(mediaType) {
|
|
4451
|
-
_triggerProxy.default.trigger(
|
|
4539
|
+
_triggerProxy.default.trigger(_this23, {
|
|
4452
4540
|
file: 'meeting/index',
|
|
4453
4541
|
function: 'closeRemoteStreams'
|
|
4454
4542
|
}, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
|
|
@@ -4756,7 +4844,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4756
4844
|
}, {
|
|
4757
4845
|
key: "setMercuryListener",
|
|
4758
4846
|
value: function setMercuryListener() {
|
|
4759
|
-
var
|
|
4847
|
+
var _this24 = this;
|
|
4760
4848
|
// Client will have a socket manager and handle reconnecting to mercury, when we reconnect to mercury
|
|
4761
4849
|
// if the meeting has active peer connections, it should try to reconnect.
|
|
4762
4850
|
// @ts-ignore
|
|
@@ -4764,33 +4852,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4764
4852
|
_loggerProxy.default.logger.info('Meeting:index#setMercuryListener --> Web socket online');
|
|
4765
4853
|
|
|
4766
4854
|
// Only send restore event when it was disconnected before and for connected later
|
|
4767
|
-
if (!
|
|
4855
|
+
if (!_this24.hasWebsocketConnected) {
|
|
4768
4856
|
// @ts-ignore
|
|
4769
|
-
|
|
4857
|
+
_this24.webex.internal.newMetrics.submitClientEvent({
|
|
4770
4858
|
name: 'client.mercury.connection.restored',
|
|
4771
4859
|
options: {
|
|
4772
|
-
meetingId:
|
|
4860
|
+
meetingId: _this24.id
|
|
4773
4861
|
}
|
|
4774
4862
|
});
|
|
4775
4863
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_RESTORED, {
|
|
4776
|
-
correlation_id:
|
|
4864
|
+
correlation_id: _this24.correlationId
|
|
4777
4865
|
});
|
|
4778
4866
|
}
|
|
4779
|
-
|
|
4867
|
+
_this24.hasWebsocketConnected = true;
|
|
4780
4868
|
});
|
|
4781
4869
|
|
|
4782
4870
|
// @ts-ignore
|
|
4783
4871
|
this.webex.internal.mercury.on(_constants.OFFLINE, function () {
|
|
4784
4872
|
_loggerProxy.default.logger.error('Meeting:index#setMercuryListener --> Web socket offline');
|
|
4785
4873
|
// @ts-ignore
|
|
4786
|
-
|
|
4874
|
+
_this24.webex.internal.newMetrics.submitClientEvent({
|
|
4787
4875
|
name: 'client.mercury.connection.lost',
|
|
4788
4876
|
options: {
|
|
4789
|
-
meetingId:
|
|
4877
|
+
meetingId: _this24.id
|
|
4790
4878
|
}
|
|
4791
4879
|
});
|
|
4792
4880
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_FAILURE, {
|
|
4793
|
-
correlation_id:
|
|
4881
|
+
correlation_id: _this24.correlationId
|
|
4794
4882
|
});
|
|
4795
4883
|
});
|
|
4796
4884
|
}
|
|
@@ -4892,7 +4980,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4892
4980
|
}, {
|
|
4893
4981
|
key: "muteAudio",
|
|
4894
4982
|
value: function muteAudio() {
|
|
4895
|
-
var
|
|
4983
|
+
var _this25 = this;
|
|
4896
4984
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
|
4897
4985
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
4898
4986
|
}
|
|
@@ -4908,22 +4996,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4908
4996
|
|
|
4909
4997
|
// First, stop sending the local audio media
|
|
4910
4998
|
return logRequest(this.audio.handleClientRequest(this, true).then(function () {
|
|
4911
|
-
_util2.default.handleAudioLogging(
|
|
4999
|
+
_util2.default.handleAudioLogging(_this25.mediaProperties.audioStream);
|
|
4912
5000
|
// @ts-ignore
|
|
4913
|
-
|
|
5001
|
+
_this25.webex.internal.newMetrics.submitClientEvent({
|
|
4914
5002
|
name: 'client.muted',
|
|
4915
5003
|
payload: {
|
|
4916
5004
|
trigger: 'user-interaction',
|
|
4917
5005
|
mediaType: 'audio'
|
|
4918
5006
|
},
|
|
4919
5007
|
options: {
|
|
4920
|
-
meetingId:
|
|
5008
|
+
meetingId: _this25.id
|
|
4921
5009
|
}
|
|
4922
5010
|
});
|
|
4923
5011
|
}).catch(function (error) {
|
|
4924
5012
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_AUDIO_FAILURE, {
|
|
4925
|
-
correlation_id:
|
|
4926
|
-
locus_id:
|
|
5013
|
+
correlation_id: _this25.correlationId,
|
|
5014
|
+
locus_id: _this25.locusUrl.split('/').pop(),
|
|
4927
5015
|
reason: error.message,
|
|
4928
5016
|
stack: error.stack
|
|
4929
5017
|
});
|
|
@@ -4942,7 +5030,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4942
5030
|
}, {
|
|
4943
5031
|
key: "unmuteAudio",
|
|
4944
5032
|
value: function unmuteAudio() {
|
|
4945
|
-
var
|
|
5033
|
+
var _this26 = this;
|
|
4946
5034
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
|
4947
5035
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
4948
5036
|
}
|
|
@@ -4958,22 +5046,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4958
5046
|
|
|
4959
5047
|
// First, send the control to unmute the participant on the server
|
|
4960
5048
|
return logRequest(this.audio.handleClientRequest(this, false).then(function () {
|
|
4961
|
-
_util2.default.handleAudioLogging(
|
|
5049
|
+
_util2.default.handleAudioLogging(_this26.mediaProperties.audioStream);
|
|
4962
5050
|
// @ts-ignore
|
|
4963
|
-
|
|
5051
|
+
_this26.webex.internal.newMetrics.submitClientEvent({
|
|
4964
5052
|
name: 'client.unmuted',
|
|
4965
5053
|
payload: {
|
|
4966
5054
|
trigger: 'user-interaction',
|
|
4967
5055
|
mediaType: 'audio'
|
|
4968
5056
|
},
|
|
4969
5057
|
options: {
|
|
4970
|
-
meetingId:
|
|
5058
|
+
meetingId: _this26.id
|
|
4971
5059
|
}
|
|
4972
5060
|
});
|
|
4973
5061
|
}).catch(function (error) {
|
|
4974
5062
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_AUDIO_FAILURE, {
|
|
4975
|
-
correlation_id:
|
|
4976
|
-
locus_id:
|
|
5063
|
+
correlation_id: _this26.correlationId,
|
|
5064
|
+
locus_id: _this26.locusUrl.split('/').pop(),
|
|
4977
5065
|
reason: error.message,
|
|
4978
5066
|
stack: error.stack
|
|
4979
5067
|
});
|
|
@@ -4992,7 +5080,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4992
5080
|
}, {
|
|
4993
5081
|
key: "muteVideo",
|
|
4994
5082
|
value: function muteVideo() {
|
|
4995
|
-
var
|
|
5083
|
+
var _this27 = this;
|
|
4996
5084
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
|
4997
5085
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
4998
5086
|
}
|
|
@@ -5006,22 +5094,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5006
5094
|
return _promise.default.reject(new _parameter.default('no video control associated to the meeting'));
|
|
5007
5095
|
}
|
|
5008
5096
|
return logRequest(this.video.handleClientRequest(this, true).then(function () {
|
|
5009
|
-
_util2.default.handleVideoLogging(
|
|
5097
|
+
_util2.default.handleVideoLogging(_this27.mediaProperties.videoStream);
|
|
5010
5098
|
// @ts-ignore
|
|
5011
|
-
|
|
5099
|
+
_this27.webex.internal.newMetrics.submitClientEvent({
|
|
5012
5100
|
name: 'client.muted',
|
|
5013
5101
|
payload: {
|
|
5014
5102
|
trigger: 'user-interaction',
|
|
5015
5103
|
mediaType: 'video'
|
|
5016
5104
|
},
|
|
5017
5105
|
options: {
|
|
5018
|
-
meetingId:
|
|
5106
|
+
meetingId: _this27.id
|
|
5019
5107
|
}
|
|
5020
5108
|
});
|
|
5021
5109
|
}).catch(function (error) {
|
|
5022
5110
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_VIDEO_FAILURE, {
|
|
5023
|
-
correlation_id:
|
|
5024
|
-
locus_id:
|
|
5111
|
+
correlation_id: _this27.correlationId,
|
|
5112
|
+
locus_id: _this27.locusUrl.split('/').pop(),
|
|
5025
5113
|
reason: error.message,
|
|
5026
5114
|
stack: error.stack
|
|
5027
5115
|
});
|
|
@@ -5040,7 +5128,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5040
5128
|
}, {
|
|
5041
5129
|
key: "unmuteVideo",
|
|
5042
5130
|
value: function unmuteVideo() {
|
|
5043
|
-
var
|
|
5131
|
+
var _this28 = this;
|
|
5044
5132
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
|
5045
5133
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
5046
5134
|
}
|
|
@@ -5054,22 +5142,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5054
5142
|
return _promise.default.reject(new _parameter.default('no audio control associated to the meeting'));
|
|
5055
5143
|
}
|
|
5056
5144
|
return logRequest(this.video.handleClientRequest(this, false).then(function () {
|
|
5057
|
-
_util2.default.handleVideoLogging(
|
|
5145
|
+
_util2.default.handleVideoLogging(_this28.mediaProperties.videoStream);
|
|
5058
5146
|
// @ts-ignore
|
|
5059
|
-
|
|
5147
|
+
_this28.webex.internal.newMetrics.submitClientEvent({
|
|
5060
5148
|
name: 'client.unmuted',
|
|
5061
5149
|
payload: {
|
|
5062
5150
|
trigger: 'user-interaction',
|
|
5063
5151
|
mediaType: 'video'
|
|
5064
5152
|
},
|
|
5065
5153
|
options: {
|
|
5066
|
-
meetingId:
|
|
5154
|
+
meetingId: _this28.id
|
|
5067
5155
|
}
|
|
5068
5156
|
});
|
|
5069
5157
|
}).catch(function (error) {
|
|
5070
5158
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_VIDEO_FAILURE, {
|
|
5071
|
-
correlation_id:
|
|
5072
|
-
locus_id:
|
|
5159
|
+
correlation_id: _this28.correlationId,
|
|
5160
|
+
locus_id: _this28.locusUrl.split('/').pop(),
|
|
5073
5161
|
reason: error.message,
|
|
5074
5162
|
stack: error.stack
|
|
5075
5163
|
});
|
|
@@ -5099,7 +5187,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5099
5187
|
key: "joinWithMedia",
|
|
5100
5188
|
value: (function () {
|
|
5101
5189
|
var _joinWithMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15() {
|
|
5102
|
-
var
|
|
5190
|
+
var _this29 = this;
|
|
5103
5191
|
var options,
|
|
5104
5192
|
mediaOptions,
|
|
5105
5193
|
_options$joinOptions,
|
|
@@ -5186,7 +5274,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5186
5274
|
case 38:
|
|
5187
5275
|
_context15.next = 40;
|
|
5188
5276
|
return this.addMediaInternal(function () {
|
|
5189
|
-
return
|
|
5277
|
+
return _this29.joinWithMediaRetryInfo.isRetry ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
|
5190
5278
|
}, turnServerInfo, forceTurnDiscovery, mediaOptions);
|
|
5191
5279
|
case 40:
|
|
5192
5280
|
mediaResponse = _context15.sent;
|
|
@@ -5278,7 +5366,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5278
5366
|
}, {
|
|
5279
5367
|
key: "reconnect",
|
|
5280
5368
|
value: function reconnect(options) {
|
|
5281
|
-
var
|
|
5369
|
+
var _this30 = this;
|
|
5282
5370
|
_loggerProxy.default.logger.log("Meeting:index#reconnect --> attempting to reconnect meeting ".concat(this.id));
|
|
5283
5371
|
if (!this.reconnectionManager || !this.reconnectionManager.reconnect) {
|
|
5284
5372
|
return _promise.default.reject(new _parameter.default('Cannot reconnect, ReconnectionManager must first be defined.'));
|
|
@@ -5288,15 +5376,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5288
5376
|
if (!_util2.default.isMediaEstablished(this.currentMediaStatus)) {
|
|
5289
5377
|
return _promise.default.reject(new _parameter.default('Cannot reconnect, Media has not established to reconnect'));
|
|
5290
5378
|
}
|
|
5379
|
+
this.cleanUpBeforeReconnection();
|
|
5291
5380
|
return this.reconnectionManager.reconnect(options, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
|
|
5292
5381
|
return _regenerator.default.wrap(function _callee16$(_context16) {
|
|
5293
5382
|
while (1) switch (_context16.prev = _context16.next) {
|
|
5294
5383
|
case 0:
|
|
5295
5384
|
_context16.next = 2;
|
|
5296
|
-
return
|
|
5385
|
+
return _this30.waitForRemoteSDPAnswer();
|
|
5297
5386
|
case 2:
|
|
5298
5387
|
_context16.next = 4;
|
|
5299
|
-
return
|
|
5388
|
+
return _this30.waitForMediaConnectionConnected();
|
|
5300
5389
|
case 4:
|
|
5301
5390
|
case "end":
|
|
5302
5391
|
return _context16.stop();
|
|
@@ -5310,7 +5399,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5310
5399
|
return _promise.default.resolve();
|
|
5311
5400
|
}
|
|
5312
5401
|
_loggerProxy.default.logger.error('Meeting:index#reconnect --> Meeting reconnect failed', error);
|
|
5313
|
-
|
|
5402
|
+
_this30.uploadLogs({
|
|
5314
5403
|
file: 'meeting/index',
|
|
5315
5404
|
function: 'reconnect'
|
|
5316
5405
|
});
|
|
@@ -5357,19 +5446,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5357
5446
|
}, {
|
|
5358
5447
|
key: "setCaptionLanguage",
|
|
5359
5448
|
value: function setCaptionLanguage(language) {
|
|
5360
|
-
var
|
|
5449
|
+
var _this31 = this;
|
|
5361
5450
|
return new _promise.default(function (resolve, reject) {
|
|
5362
|
-
if (!
|
|
5451
|
+
if (!_this31.isTranscriptionSupported()) {
|
|
5363
5452
|
_loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
|
|
5364
5453
|
reject(new Error('Webex Assistant is not enabled/supported'));
|
|
5365
5454
|
}
|
|
5366
5455
|
try {
|
|
5367
5456
|
var voiceaListenerCaptionUpdate = function voiceaListenerCaptionUpdate(payload) {
|
|
5368
5457
|
// @ts-ignore
|
|
5369
|
-
|
|
5458
|
+
_this31.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
|
|
5370
5459
|
var statusCode = payload.statusCode;
|
|
5371
5460
|
if (statusCode === 200) {
|
|
5372
|
-
|
|
5461
|
+
_this31.transcription.languageOptions = _objectSpread(_objectSpread({}, _this31.transcription.languageOptions), {}, {
|
|
5373
5462
|
currentCaptionLanguage: language
|
|
5374
5463
|
});
|
|
5375
5464
|
resolve(language);
|
|
@@ -5378,9 +5467,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5378
5467
|
}
|
|
5379
5468
|
};
|
|
5380
5469
|
// @ts-ignore
|
|
5381
|
-
|
|
5470
|
+
_this31.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
|
|
5382
5471
|
// @ts-ignore
|
|
5383
|
-
|
|
5472
|
+
_this31.webex.internal.voicea.requestLanguage(language);
|
|
5384
5473
|
} catch (error) {
|
|
5385
5474
|
_loggerProxy.default.logger.error("Meeting:index#setCaptionLanguage --> ".concat(error));
|
|
5386
5475
|
reject(error);
|
|
@@ -5396,23 +5485,23 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5396
5485
|
}, {
|
|
5397
5486
|
key: "setSpokenLanguage",
|
|
5398
5487
|
value: function setSpokenLanguage(language) {
|
|
5399
|
-
var
|
|
5488
|
+
var _this32 = this;
|
|
5400
5489
|
return new _promise.default(function (resolve, reject) {
|
|
5401
|
-
if (!
|
|
5490
|
+
if (!_this32.isTranscriptionSupported()) {
|
|
5402
5491
|
_loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
|
|
5403
5492
|
reject(new Error('Webex Assistant is not enabled/supported'));
|
|
5404
5493
|
}
|
|
5405
|
-
if (
|
|
5494
|
+
if (_this32.getCurUserType() !== 'host') {
|
|
5406
5495
|
_loggerProxy.default.logger.error('Meeting:index#setSpokenLanguage --> Only host can set spoken language');
|
|
5407
5496
|
reject(new Error('Only host can set spoken language'));
|
|
5408
5497
|
}
|
|
5409
5498
|
try {
|
|
5410
5499
|
var voiceaListenerLanguageUpdate = function voiceaListenerLanguageUpdate(payload) {
|
|
5411
5500
|
// @ts-ignore
|
|
5412
|
-
|
|
5501
|
+
_this32.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
|
|
5413
5502
|
var languageCode = payload.languageCode;
|
|
5414
5503
|
if (languageCode) {
|
|
5415
|
-
|
|
5504
|
+
_this32.transcription.languageOptions = _objectSpread(_objectSpread({}, _this32.transcription.languageOptions), {}, {
|
|
5416
5505
|
currentSpokenLanguage: languageCode
|
|
5417
5506
|
});
|
|
5418
5507
|
resolve(languageCode);
|
|
@@ -5422,10 +5511,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5422
5511
|
};
|
|
5423
5512
|
|
|
5424
5513
|
// @ts-ignore
|
|
5425
|
-
|
|
5514
|
+
_this32.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
|
|
5426
5515
|
|
|
5427
5516
|
// @ts-ignore
|
|
5428
|
-
|
|
5517
|
+
_this32.webex.internal.voicea.setSpokenLanguage(language);
|
|
5429
5518
|
} catch (error) {
|
|
5430
5519
|
_loggerProxy.default.logger.error("Meeting:index#setSpokenLanguage --> ".concat(error));
|
|
5431
5520
|
reject(error);
|
|
@@ -5545,7 +5634,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5545
5634
|
*/
|
|
5546
5635
|
function () {
|
|
5547
5636
|
var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18() {
|
|
5548
|
-
var
|
|
5637
|
+
var _this33 = this;
|
|
5549
5638
|
var options,
|
|
5550
5639
|
errorMessage,
|
|
5551
5640
|
error,
|
|
@@ -5691,62 +5780,62 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5691
5780
|
return _context18.abrupt("return", _promise.default.reject(_context18.t0));
|
|
5692
5781
|
case 51:
|
|
5693
5782
|
return _context18.abrupt("return", _util2.default.joinMeetingOptions(this, options).then(function (join) {
|
|
5694
|
-
|
|
5695
|
-
|
|
5783
|
+
_this33.meetingFiniteStateMachine.join();
|
|
5784
|
+
_this33.setupLocusMediaRequest();
|
|
5696
5785
|
|
|
5697
5786
|
// @ts-ignore
|
|
5698
|
-
|
|
5699
|
-
(0, _classPrivateFieldSet2.default)(
|
|
5787
|
+
_this33.webex.internal.device.meetingStarted();
|
|
5788
|
+
(0, _classPrivateFieldSet2.default)(_this33, _isoLocalClientMeetingJoinTime, new Date().toISOString());
|
|
5700
5789
|
_loggerProxy.default.logger.log('Meeting:index#join --> Success');
|
|
5701
5790
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
|
|
5702
|
-
correlation_id:
|
|
5791
|
+
correlation_id: _this33.correlationId
|
|
5703
5792
|
});
|
|
5704
5793
|
joinSuccess(join);
|
|
5705
|
-
|
|
5794
|
+
_this33.deferJoin = undefined;
|
|
5706
5795
|
return join;
|
|
5707
5796
|
}).catch(function (error) {
|
|
5708
|
-
var
|
|
5709
|
-
|
|
5797
|
+
var _this33$meetingInfo, _error$error;
|
|
5798
|
+
_this33.meetingFiniteStateMachine.fail(error);
|
|
5710
5799
|
_loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
|
|
5711
5800
|
|
|
5712
5801
|
// @ts-ignore
|
|
5713
|
-
|
|
5802
|
+
_this33.webex.internal.newMetrics.submitClientEvent({
|
|
5714
5803
|
name: 'client.locus.join.response',
|
|
5715
5804
|
payload: {
|
|
5716
5805
|
identifiers: {
|
|
5717
|
-
meetingLookupUrl: (
|
|
5806
|
+
meetingLookupUrl: (_this33$meetingInfo = _this33.meetingInfo) === null || _this33$meetingInfo === void 0 ? void 0 : _this33$meetingInfo.meetingLookupUrl
|
|
5718
5807
|
}
|
|
5719
5808
|
},
|
|
5720
5809
|
options: {
|
|
5721
|
-
meetingId:
|
|
5810
|
+
meetingId: _this33.id,
|
|
5722
5811
|
rawError: error
|
|
5723
5812
|
}
|
|
5724
5813
|
});
|
|
5725
5814
|
|
|
5726
5815
|
// TODO: change this to error codes and pre defined dictionary
|
|
5727
5816
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
|
|
5728
|
-
correlation_id:
|
|
5817
|
+
correlation_id: _this33.correlationId,
|
|
5729
5818
|
reason: (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.message,
|
|
5730
5819
|
stack: error.stack
|
|
5731
5820
|
});
|
|
5732
5821
|
|
|
5733
5822
|
// Upload logs on join Failure
|
|
5734
|
-
_triggerProxy.default.trigger(
|
|
5823
|
+
_triggerProxy.default.trigger(_this33, {
|
|
5735
5824
|
file: 'meeting/index',
|
|
5736
5825
|
function: 'join'
|
|
5737
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
5826
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this33);
|
|
5738
5827
|
joinFailed(error);
|
|
5739
|
-
|
|
5828
|
+
_this33.deferJoin = undefined;
|
|
5740
5829
|
return _promise.default.reject(error);
|
|
5741
5830
|
}).then(function (join) {
|
|
5742
5831
|
// @ts-ignore - config coming from registerPlugin
|
|
5743
|
-
if (
|
|
5832
|
+
if (_this33.config.enableAutomaticLLM) {
|
|
5744
5833
|
// @ts-ignore
|
|
5745
|
-
|
|
5746
|
-
|
|
5834
|
+
_this33.webex.internal.llm.on('online', _this33.handleLLMOnline);
|
|
5835
|
+
_this33.updateLLMConnection().catch(function (error) {
|
|
5747
5836
|
_loggerProxy.default.logger.error('Meeting:index#join --> Transcription Socket Connection Failed', error);
|
|
5748
5837
|
_metrics.default.sendBehavioralMetric(_constants2.default.LLM_CONNECTION_AFTER_JOIN_FAILURE, {
|
|
5749
|
-
correlation_id:
|
|
5838
|
+
correlation_id: _this33.correlationId,
|
|
5750
5839
|
reason: error === null || error === void 0 ? void 0 : error.message,
|
|
5751
5840
|
stack: error.stack
|
|
5752
5841
|
});
|
|
@@ -5778,7 +5867,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5778
5867
|
key: "updateLLMConnection",
|
|
5779
5868
|
value: (function () {
|
|
5780
5869
|
var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
|
|
5781
|
-
var
|
|
5870
|
+
var _this34 = this;
|
|
5782
5871
|
var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, isJoined;
|
|
5783
5872
|
return _regenerator.default.wrap(function _callee19$(_context19) {
|
|
5784
5873
|
while (1) switch (_context19.prev = _context19.next) {
|
|
@@ -5814,9 +5903,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5814
5903
|
case 10:
|
|
5815
5904
|
return _context19.abrupt("return", this.webex.internal.llm.registerAndConnect(url, datachannelUrl).then(function (registerAndConnectResult) {
|
|
5816
5905
|
// @ts-ignore - Fix type
|
|
5817
|
-
|
|
5906
|
+
_this34.webex.internal.llm.off('event:relay.event', _this34.processRelayEvent);
|
|
5818
5907
|
// @ts-ignore - Fix type
|
|
5819
|
-
|
|
5908
|
+
_this34.webex.internal.llm.on('event:relay.event', _this34.processRelayEvent);
|
|
5820
5909
|
_loggerProxy.default.logger.info('Meeting:index#updateLLMConnection --> enabled to receive relay events!');
|
|
5821
5910
|
return _promise.default.resolve(registerAndConnectResult);
|
|
5822
5911
|
}));
|
|
@@ -5870,7 +5959,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5870
5959
|
}, {
|
|
5871
5960
|
key: "dialInPstn",
|
|
5872
5961
|
value: function dialInPstn() {
|
|
5873
|
-
var
|
|
5962
|
+
var _this35 = this;
|
|
5874
5963
|
if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
|
|
5875
5964
|
|
|
5876
5965
|
var correlationId = this.correlationId,
|
|
@@ -5886,10 +5975,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5886
5975
|
}).catch(function (error) {
|
|
5887
5976
|
var _error$error2;
|
|
5888
5977
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
|
|
5889
|
-
correlation_id:
|
|
5890
|
-
dial_in_url:
|
|
5978
|
+
correlation_id: _this35.correlationId,
|
|
5979
|
+
dial_in_url: _this35.dialInUrl,
|
|
5891
5980
|
locus_id: locusUrl.split('/').pop(),
|
|
5892
|
-
client_url:
|
|
5981
|
+
client_url: _this35.deviceUrl,
|
|
5893
5982
|
reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
|
|
5894
5983
|
stack: error.stack
|
|
5895
5984
|
});
|
|
@@ -5907,7 +5996,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5907
5996
|
}, {
|
|
5908
5997
|
key: "dialOutPstn",
|
|
5909
5998
|
value: function dialOutPstn(phoneNumber) {
|
|
5910
|
-
var
|
|
5999
|
+
var _this36 = this;
|
|
5911
6000
|
if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
|
|
5912
6001
|
|
|
5913
6002
|
var correlationId = this.correlationId,
|
|
@@ -5924,10 +6013,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5924
6013
|
}).catch(function (error) {
|
|
5925
6014
|
var _error$error3;
|
|
5926
6015
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
|
|
5927
|
-
correlation_id:
|
|
5928
|
-
dial_out_url:
|
|
6016
|
+
correlation_id: _this36.correlationId,
|
|
6017
|
+
dial_out_url: _this36.dialOutUrl,
|
|
5929
6018
|
locus_id: locusUrl.split('/').pop(),
|
|
5930
|
-
client_url:
|
|
6019
|
+
client_url: _this36.deviceUrl,
|
|
5931
6020
|
reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
|
|
5932
6021
|
stack: error.stack
|
|
5933
6022
|
});
|
|
@@ -5958,7 +6047,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5958
6047
|
}, {
|
|
5959
6048
|
key: "moveTo",
|
|
5960
6049
|
value: function moveTo(resourceId) {
|
|
5961
|
-
var
|
|
6050
|
+
var _this37 = this;
|
|
5962
6051
|
if (!resourceId) {
|
|
5963
6052
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
|
5964
6053
|
}
|
|
@@ -6002,12 +6091,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6002
6091
|
while (1) switch (_context20.prev = _context20.next) {
|
|
6003
6092
|
case 0:
|
|
6004
6093
|
_context20.prev = 0;
|
|
6005
|
-
if (!(
|
|
6094
|
+
if (!(_this37.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
|
|
6006
6095
|
_context20.next = 4;
|
|
6007
6096
|
break;
|
|
6008
6097
|
}
|
|
6009
6098
|
_context20.next = 4;
|
|
6010
|
-
return
|
|
6099
|
+
return _this37.releaseScreenShareFloor();
|
|
6011
6100
|
case 4:
|
|
6012
6101
|
mediaSettings = {
|
|
6013
6102
|
mediaDirection: {
|
|
@@ -6019,37 +6108,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6019
6108
|
receiveShare: true
|
|
6020
6109
|
}
|
|
6021
6110
|
};
|
|
6022
|
-
|
|
6023
|
-
|
|
6111
|
+
_this37.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
|
|
6112
|
+
_this37.mediaProperties.unsetRemoteMedia();
|
|
6024
6113
|
|
|
6025
6114
|
// when a move to is intiated by the client , Locus delets the existing media node from the server as soon the device answers the meeting
|
|
6026
6115
|
// once the device answers we close the old connection and create new media server connection with only share enabled
|
|
6027
|
-
if (!
|
|
6116
|
+
if (!_this37.statsAnalyzer) {
|
|
6028
6117
|
_context20.next = 10;
|
|
6029
6118
|
break;
|
|
6030
6119
|
}
|
|
6031
6120
|
_context20.next = 10;
|
|
6032
|
-
return
|
|
6121
|
+
return _this37.statsAnalyzer.stopAnalyzer();
|
|
6033
6122
|
case 10:
|
|
6034
6123
|
_context20.next = 12;
|
|
6035
|
-
return
|
|
6124
|
+
return _this37.closeRemoteStreams();
|
|
6036
6125
|
case 12:
|
|
6037
6126
|
_context20.next = 14;
|
|
6038
|
-
return
|
|
6127
|
+
return _this37.closePeerConnections();
|
|
6039
6128
|
case 14:
|
|
6040
|
-
|
|
6041
|
-
|
|
6042
|
-
|
|
6043
|
-
|
|
6129
|
+
_this37.cleanupLocalStreams();
|
|
6130
|
+
_this37.unsetRemoteStreams();
|
|
6131
|
+
_this37.unsetPeerConnections();
|
|
6132
|
+
_this37.reconnectionManager.cleanUp();
|
|
6044
6133
|
_context20.next = 20;
|
|
6045
|
-
return
|
|
6134
|
+
return _this37.addMedia({
|
|
6046
6135
|
audioEnabled: false,
|
|
6047
6136
|
videoEnabled: false,
|
|
6048
6137
|
shareVideoEnabled: true
|
|
6049
6138
|
});
|
|
6050
6139
|
case 20:
|
|
6051
6140
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
|
|
6052
|
-
|
|
6141
|
+
_this37.isMoveToInProgress = false;
|
|
6053
6142
|
_context20.next = 29;
|
|
6054
6143
|
break;
|
|
6055
6144
|
case 24:
|
|
@@ -6057,12 +6146,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6057
6146
|
_context20.t0 = _context20["catch"](0);
|
|
6058
6147
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context20.t0);
|
|
6059
6148
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
|
6060
|
-
correlation_id:
|
|
6061
|
-
locus_id:
|
|
6149
|
+
correlation_id: _this37.correlationId,
|
|
6150
|
+
locus_id: _this37.locusUrl.split('/').pop(),
|
|
6062
6151
|
reason: _context20.t0.message,
|
|
6063
6152
|
stack: _context20.t0.stack
|
|
6064
6153
|
});
|
|
6065
|
-
|
|
6154
|
+
_this37.isMoveToInProgress = false;
|
|
6066
6155
|
case 29:
|
|
6067
6156
|
case "end":
|
|
6068
6157
|
return _context20.stop();
|
|
@@ -6078,17 +6167,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6078
6167
|
resourceId: resourceId,
|
|
6079
6168
|
moveToResource: true
|
|
6080
6169
|
}).then(function () {
|
|
6081
|
-
|
|
6170
|
+
_this37.meetingFiniteStateMachine.join();
|
|
6082
6171
|
}).catch(function (error) {
|
|
6083
|
-
|
|
6172
|
+
_this37.meetingFiniteStateMachine.fail(error);
|
|
6084
6173
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
|
6085
|
-
correlation_id:
|
|
6086
|
-
locus_id:
|
|
6174
|
+
correlation_id: _this37.correlationId,
|
|
6175
|
+
locus_id: _this37.locusUrl.split('/').pop(),
|
|
6087
6176
|
reason: error.message,
|
|
6088
6177
|
stack: error.stack
|
|
6089
6178
|
});
|
|
6090
6179
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', error);
|
|
6091
|
-
|
|
6180
|
+
_this37.isMoveToInProgress = false;
|
|
6092
6181
|
return _promise.default.reject(error);
|
|
6093
6182
|
});
|
|
6094
6183
|
}
|
|
@@ -6103,7 +6192,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6103
6192
|
}, {
|
|
6104
6193
|
key: "moveFrom",
|
|
6105
6194
|
value: function moveFrom(resourceId) {
|
|
6106
|
-
var
|
|
6195
|
+
var _this38 = this;
|
|
6107
6196
|
// On moveFrom ask the developer to re capture it moveFrom then updateMedia
|
|
6108
6197
|
if (!resourceId) {
|
|
6109
6198
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
|
@@ -6118,19 +6207,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6118
6207
|
}
|
|
6119
6208
|
});
|
|
6120
6209
|
return _util2.default.joinMeetingOptions(this).then(function () {
|
|
6121
|
-
return _util2.default.leaveMeeting(
|
|
6210
|
+
return _util2.default.leaveMeeting(_this38, {
|
|
6122
6211
|
resourceId: resourceId,
|
|
6123
6212
|
correlationId: oldCorrelationId,
|
|
6124
6213
|
moveMeeting: true
|
|
6125
6214
|
}).then(function () {
|
|
6126
|
-
|
|
6215
|
+
_this38.resourceId = '';
|
|
6127
6216
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
|
|
6128
6217
|
});
|
|
6129
6218
|
}).catch(function (error) {
|
|
6130
|
-
|
|
6219
|
+
_this38.meetingFiniteStateMachine.fail(error);
|
|
6131
6220
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
|
|
6132
|
-
correlation_id:
|
|
6133
|
-
locus_id:
|
|
6221
|
+
correlation_id: _this38.correlationId,
|
|
6222
|
+
locus_id: _this38.locusUrl.split('/').pop(),
|
|
6134
6223
|
reason: error.message,
|
|
6135
6224
|
stack: error.stack
|
|
6136
6225
|
});
|
|
@@ -6243,9 +6332,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6243
6332
|
}, {
|
|
6244
6333
|
key: "forwardEvent",
|
|
6245
6334
|
value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
|
|
6246
|
-
var
|
|
6335
|
+
var _this39 = this;
|
|
6247
6336
|
eventEmitter.on(eventTypeToForward, function (data) {
|
|
6248
|
-
return _triggerProxy.default.trigger(
|
|
6337
|
+
return _triggerProxy.default.trigger(_this39, {
|
|
6249
6338
|
file: 'meetings',
|
|
6250
6339
|
function: 'addMedia'
|
|
6251
6340
|
}, meetingEventType, data);
|
|
@@ -6432,7 +6521,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6432
6521
|
*/
|
|
6433
6522
|
function () {
|
|
6434
6523
|
var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24() {
|
|
6435
|
-
var
|
|
6524
|
+
var _this40 = this;
|
|
6436
6525
|
var LOG_HEADER, deferSDPAnswer;
|
|
6437
6526
|
return _regenerator.default.wrap(function _callee24$(_context24) {
|
|
6438
6527
|
while (1) switch (_context24.prev = _context24.next) {
|
|
@@ -6449,18 +6538,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6449
6538
|
this.sdpResponseTimer = setTimeout(function () {
|
|
6450
6539
|
_loggerProxy.default.logger.warn("".concat(LOG_HEADER, " timeout! no REMOTE SDP ANSWER received within ").concat(_constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT / 1000, " seconds"));
|
|
6451
6540
|
// @ts-ignore
|
|
6452
|
-
|
|
6541
|
+
_this40.webex.internal.newMetrics.submitClientEvent({
|
|
6453
6542
|
name: 'client.media-engine.remote-sdp-received',
|
|
6454
6543
|
payload: {
|
|
6455
6544
|
canProceed: false,
|
|
6456
6545
|
errors: [
|
|
6457
6546
|
// @ts-ignore
|
|
6458
|
-
|
|
6547
|
+
_this40.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
|
|
6459
6548
|
clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
|
|
6460
6549
|
})]
|
|
6461
6550
|
},
|
|
6462
6551
|
options: {
|
|
6463
|
-
meetingId:
|
|
6552
|
+
meetingId: _this40.id,
|
|
6464
6553
|
rawError: new Error('Timeout waiting for SDP answer')
|
|
6465
6554
|
}
|
|
6466
6555
|
});
|
|
@@ -6846,6 +6935,43 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6846
6935
|
return _cleanUpBeforeRetryWithTurnServer.apply(this, arguments);
|
|
6847
6936
|
}
|
|
6848
6937
|
return cleanUpBeforeRetryWithTurnServer;
|
|
6938
|
+
}())
|
|
6939
|
+
}, {
|
|
6940
|
+
key: "cleanUpBeforeReconnection",
|
|
6941
|
+
value: function () {
|
|
6942
|
+
var _cleanUpBeforeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32() {
|
|
6943
|
+
return _regenerator.default.wrap(function _callee32$(_context32) {
|
|
6944
|
+
while (1) switch (_context32.prev = _context32.next) {
|
|
6945
|
+
case 0:
|
|
6946
|
+
_context32.prev = 0;
|
|
6947
|
+
_context32.next = 3;
|
|
6948
|
+
return this.forceSendStatsReport({
|
|
6949
|
+
callFrom: 'cleanUpBeforeReconnection'
|
|
6950
|
+
});
|
|
6951
|
+
case 3:
|
|
6952
|
+
if (!this.statsAnalyzer) {
|
|
6953
|
+
_context32.next = 6;
|
|
6954
|
+
break;
|
|
6955
|
+
}
|
|
6956
|
+
_context32.next = 6;
|
|
6957
|
+
return this.statsAnalyzer.stopAnalyzer();
|
|
6958
|
+
case 6:
|
|
6959
|
+
_context32.next = 11;
|
|
6960
|
+
break;
|
|
6961
|
+
case 8:
|
|
6962
|
+
_context32.prev = 8;
|
|
6963
|
+
_context32.t0 = _context32["catch"](0);
|
|
6964
|
+
_loggerProxy.default.logger.error('Meeting:index#cleanUpBeforeReconnection --> Error during cleanup: ', _context32.t0);
|
|
6965
|
+
case 11:
|
|
6966
|
+
case "end":
|
|
6967
|
+
return _context32.stop();
|
|
6968
|
+
}
|
|
6969
|
+
}, _callee32, this, [[0, 8]]);
|
|
6970
|
+
}));
|
|
6971
|
+
function cleanUpBeforeReconnection() {
|
|
6972
|
+
return _cleanUpBeforeReconnection.apply(this, arguments);
|
|
6973
|
+
}
|
|
6974
|
+
return cleanUpBeforeReconnection;
|
|
6849
6975
|
}()
|
|
6850
6976
|
/**
|
|
6851
6977
|
* Creates an instance of LocusMediaRequest for this meeting - it is needed for doing any calls
|
|
@@ -6853,7 +6979,6 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6853
6979
|
*
|
|
6854
6980
|
* @returns {void}
|
|
6855
6981
|
*/
|
|
6856
|
-
)
|
|
6857
6982
|
}, {
|
|
6858
6983
|
key: "setupLocusMediaRequest",
|
|
6859
6984
|
value: function setupLocusMediaRequest() {
|
|
@@ -6888,10 +7013,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6888
7013
|
}, {
|
|
6889
7014
|
key: "addMedia",
|
|
6890
7015
|
value: function addMedia() {
|
|
6891
|
-
var
|
|
7016
|
+
var _this41 = this;
|
|
6892
7017
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
6893
7018
|
return this.addMediaInternal(function () {
|
|
6894
|
-
return
|
|
7019
|
+
return _this41.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
|
6895
7020
|
}, undefined, false, options);
|
|
6896
7021
|
}
|
|
6897
7022
|
|
|
@@ -6909,7 +7034,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6909
7034
|
}, {
|
|
6910
7035
|
key: "addMediaInternal",
|
|
6911
7036
|
value: (function () {
|
|
6912
|
-
var _addMediaInternal = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
7037
|
+
var _addMediaInternal = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33(icePhaseCallback, turnServerInfo, forceTurnDiscovery) {
|
|
6913
7038
|
var options,
|
|
6914
7039
|
LOG_HEADER,
|
|
6915
7040
|
localStreams,
|
|
@@ -6922,6 +7047,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6922
7047
|
_options$shareVideoEn,
|
|
6923
7048
|
shareVideoEnabled,
|
|
6924
7049
|
remoteMediaManagerConfig,
|
|
7050
|
+
_options$bundlePolicy,
|
|
6925
7051
|
bundlePolicy,
|
|
6926
7052
|
_this$remoteMediaMana,
|
|
6927
7053
|
_yield$this$mediaProp,
|
|
@@ -6956,35 +7082,35 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6956
7082
|
_selectedCandidatePairChanges,
|
|
6957
7083
|
_numTransports,
|
|
6958
7084
|
_iceCandidateErrors,
|
|
6959
|
-
|
|
6960
|
-
return _regenerator.default.wrap(function
|
|
6961
|
-
while (1) switch (
|
|
7085
|
+
_args33 = arguments;
|
|
7086
|
+
return _regenerator.default.wrap(function _callee33$(_context33) {
|
|
7087
|
+
while (1) switch (_context33.prev = _context33.next) {
|
|
6962
7088
|
case 0:
|
|
6963
|
-
options =
|
|
7089
|
+
options = _args33.length > 3 && _args33[3] !== undefined ? _args33[3] : {};
|
|
6964
7090
|
this.addMediaData.retriedWithTurnServer = false;
|
|
6965
7091
|
this.addMediaData.icePhaseCallback = icePhaseCallback;
|
|
6966
7092
|
this.hasMediaConnectionConnectedAtLeastOnce = false;
|
|
6967
7093
|
LOG_HEADER = 'Meeting:index#addMedia -->';
|
|
6968
7094
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " called with: options=").concat((0, _stringify.default)(options), ", turnServerInfo=").concat((0, _stringify.default)(turnServerInfo), ", forceTurnDiscovery=").concat(forceTurnDiscovery));
|
|
6969
7095
|
if (!(options.allowMediaInLobby !== true && this.meetingState !== _constants.FULL_STATE.ACTIVE)) {
|
|
6970
|
-
|
|
7096
|
+
_context33.next = 8;
|
|
6971
7097
|
break;
|
|
6972
7098
|
}
|
|
6973
7099
|
throw new _webexErrors.MeetingNotActiveError();
|
|
6974
7100
|
case 8:
|
|
6975
7101
|
if (!_util2.default.isUserInLeftState(this.locusInfo)) {
|
|
6976
|
-
|
|
7102
|
+
_context33.next = 10;
|
|
6977
7103
|
break;
|
|
6978
7104
|
}
|
|
6979
7105
|
throw new _webexErrors.UserNotJoinedError();
|
|
6980
7106
|
case 10:
|
|
6981
|
-
localStreams = options.localStreams, _options$audioEnabled = options.audioEnabled, audioEnabled = _options$audioEnabled === void 0 ? true : _options$audioEnabled, _options$videoEnabled = options.videoEnabled, videoEnabled = _options$videoEnabled === void 0 ? true : _options$videoEnabled, _options$shareAudioEn = options.shareAudioEnabled, shareAudioEnabled = _options$shareAudioEn === void 0 ? true : _options$shareAudioEn, _options$shareVideoEn = options.shareVideoEnabled, shareVideoEnabled = _options$shareVideoEn === void 0 ? true : _options$shareVideoEn, remoteMediaManagerConfig = options.remoteMediaManagerConfig, bundlePolicy = options.bundlePolicy;
|
|
7107
|
+
localStreams = options.localStreams, _options$audioEnabled = options.audioEnabled, audioEnabled = _options$audioEnabled === void 0 ? true : _options$audioEnabled, _options$videoEnabled = options.videoEnabled, videoEnabled = _options$videoEnabled === void 0 ? true : _options$videoEnabled, _options$shareAudioEn = options.shareAudioEnabled, shareAudioEnabled = _options$shareAudioEn === void 0 ? true : _options$shareAudioEn, _options$shareVideoEn = options.shareVideoEnabled, shareVideoEnabled = _options$shareVideoEn === void 0 ? true : _options$shareVideoEn, remoteMediaManagerConfig = options.remoteMediaManagerConfig, _options$bundlePolicy = options.bundlePolicy, bundlePolicy = _options$bundlePolicy === void 0 ? 'max-bundle' : _options$bundlePolicy;
|
|
6982
7108
|
this.allowMediaInLobby = options === null || options === void 0 ? void 0 : options.allowMediaInLobby;
|
|
6983
7109
|
|
|
6984
7110
|
// If the user is unjoined or guest waiting in lobby dont allow the user to addMedia
|
|
6985
7111
|
// @ts-ignore - isUserUnadmitted coming from SelfUtil
|
|
6986
7112
|
if (!(this.isUserUnadmitted && !this.wirelessShare && !this.allowMediaInLobby)) {
|
|
6987
|
-
|
|
7113
|
+
_context33.next = 14;
|
|
6988
7114
|
break;
|
|
6989
7115
|
}
|
|
6990
7116
|
throw new _webexErrors.UserInLobbyError();
|
|
@@ -7027,45 +7153,45 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7027
7153
|
});
|
|
7028
7154
|
this.audio = (0, _muteState.createMuteState)(_constants.AUDIO, this, audioEnabled);
|
|
7029
7155
|
this.video = (0, _muteState.createMuteState)(_constants.VIDEO, this, videoEnabled);
|
|
7030
|
-
|
|
7031
|
-
|
|
7156
|
+
_context33.prev = 18;
|
|
7157
|
+
_context33.next = 21;
|
|
7032
7158
|
return this.setUpLocalStreamReferences(localStreams);
|
|
7033
7159
|
case 21:
|
|
7034
7160
|
this.setMercuryListener();
|
|
7035
7161
|
this.createStatsAnalyzer();
|
|
7036
|
-
|
|
7162
|
+
_context33.next = 25;
|
|
7037
7163
|
return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, forceTurnDiscovery, turnServerInfo);
|
|
7038
7164
|
case 25:
|
|
7039
7165
|
if (!(audioEnabled || videoEnabled)) {
|
|
7040
|
-
|
|
7166
|
+
_context33.next = 30;
|
|
7041
7167
|
break;
|
|
7042
7168
|
}
|
|
7043
|
-
|
|
7169
|
+
_context33.next = 28;
|
|
7044
7170
|
return Meeting.handleDeviceLogging(audioEnabled, videoEnabled);
|
|
7045
7171
|
case 28:
|
|
7046
|
-
|
|
7172
|
+
_context33.next = 31;
|
|
7047
7173
|
break;
|
|
7048
7174
|
case 30:
|
|
7049
7175
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " device logging not required"));
|
|
7050
7176
|
case 31:
|
|
7051
7177
|
if (!this.mediaProperties.hasLocalShareStream()) {
|
|
7052
|
-
|
|
7178
|
+
_context33.next = 34;
|
|
7053
7179
|
break;
|
|
7054
7180
|
}
|
|
7055
|
-
|
|
7181
|
+
_context33.next = 34;
|
|
7056
7182
|
return this.enqueueScreenShareFloorRequest();
|
|
7057
7183
|
case 34:
|
|
7058
|
-
|
|
7184
|
+
_context33.next = 36;
|
|
7059
7185
|
return this.mediaProperties.getCurrentConnectionInfo();
|
|
7060
7186
|
case 36:
|
|
7061
|
-
_yield$this$mediaProp =
|
|
7187
|
+
_yield$this$mediaProp = _context33.sent;
|
|
7062
7188
|
connectionType = _yield$this$mediaProp.connectionType;
|
|
7063
7189
|
selectedCandidatePairChanges = _yield$this$mediaProp.selectedCandidatePairChanges;
|
|
7064
7190
|
numTransports = _yield$this$mediaProp.numTransports;
|
|
7065
|
-
|
|
7191
|
+
_context33.next = 42;
|
|
7066
7192
|
return this.webex.meetings.reachability.getReachabilityMetrics();
|
|
7067
7193
|
case 42:
|
|
7068
|
-
reachabilityStats =
|
|
7194
|
+
reachabilityStats = _context33.sent;
|
|
7069
7195
|
iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
|
|
7070
7196
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, _objectSpread(_objectSpread(_objectSpread({
|
|
7071
7197
|
correlation_id: this.correlationId,
|
|
@@ -7090,31 +7216,31 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7090
7216
|
|
|
7091
7217
|
// We can log ReceiveSlot SSRCs only after the SDP exchange, so doing it here:
|
|
7092
7218
|
(_this$remoteMediaMana = this.remoteMediaManager) === null || _this$remoteMediaMana === void 0 ? void 0 : _this$remoteMediaMana.logAllReceiveSlots();
|
|
7093
|
-
|
|
7219
|
+
_context33.next = 68;
|
|
7094
7220
|
break;
|
|
7095
7221
|
case 50:
|
|
7096
|
-
|
|
7097
|
-
|
|
7098
|
-
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "),
|
|
7222
|
+
_context33.prev = 50;
|
|
7223
|
+
_context33.t0 = _context33["catch"](18);
|
|
7224
|
+
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context33.t0);
|
|
7099
7225
|
|
|
7100
7226
|
// @ts-ignore
|
|
7101
|
-
|
|
7227
|
+
_context33.next = 55;
|
|
7102
7228
|
return this.webex.meetings.reachability.getReachabilityMetrics();
|
|
7103
7229
|
case 55:
|
|
7104
|
-
reachabilityMetrics =
|
|
7105
|
-
|
|
7230
|
+
reachabilityMetrics = _context33.sent;
|
|
7231
|
+
_context33.next = 58;
|
|
7106
7232
|
return this.mediaProperties.getCurrentConnectionInfo();
|
|
7107
7233
|
case 58:
|
|
7108
|
-
_yield$this$mediaProp2 =
|
|
7234
|
+
_yield$this$mediaProp2 = _context33.sent;
|
|
7109
7235
|
_selectedCandidatePairChanges = _yield$this$mediaProp2.selectedCandidatePairChanges;
|
|
7110
7236
|
_numTransports = _yield$this$mediaProp2.numTransports;
|
|
7111
7237
|
_iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
|
|
7112
7238
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_FAILURE, _objectSpread(_objectSpread(_objectSpread({
|
|
7113
7239
|
correlation_id: this.correlationId,
|
|
7114
7240
|
locus_id: this.locusUrl.split('/').pop(),
|
|
7115
|
-
reason:
|
|
7116
|
-
stack:
|
|
7117
|
-
code:
|
|
7241
|
+
reason: _context33.t0.message,
|
|
7242
|
+
stack: _context33.t0.stack,
|
|
7243
|
+
code: _context33.t0.code,
|
|
7118
7244
|
selectedCandidatePairChanges: _selectedCandidatePairChanges,
|
|
7119
7245
|
numTransports: _numTransports,
|
|
7120
7246
|
turnDiscoverySkippedReason: this.turnDiscoverySkippedReason,
|
|
@@ -7128,7 +7254,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7128
7254
|
}, reachabilityMetrics), _iceCandidateErrors), {}, {
|
|
7129
7255
|
iceCandidatesCount: this.iceCandidatesCount
|
|
7130
7256
|
}));
|
|
7131
|
-
|
|
7257
|
+
_context33.next = 65;
|
|
7132
7258
|
return this.cleanUpOnAddMediaFailure();
|
|
7133
7259
|
case 65:
|
|
7134
7260
|
// Upload logs on error while adding media
|
|
@@ -7136,21 +7262,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7136
7262
|
file: 'meeting/index',
|
|
7137
7263
|
function: 'addMedia'
|
|
7138
7264
|
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
|
|
7139
|
-
if (
|
|
7265
|
+
if (_context33.t0 instanceof _internalMediaCore.Errors.SdpError) {
|
|
7140
7266
|
this.leave({
|
|
7141
7267
|
reason: _constants.MEETING_REMOVED_REASON.MEETING_CONNECTION_FAILED
|
|
7142
7268
|
});
|
|
7143
7269
|
}
|
|
7144
|
-
throw
|
|
7270
|
+
throw _context33.t0;
|
|
7145
7271
|
case 68:
|
|
7146
|
-
|
|
7272
|
+
_context33.prev = 68;
|
|
7147
7273
|
this.addMediaData.icePhaseCallback = DEFAULT_ICE_PHASE_CALLBACK;
|
|
7148
|
-
return
|
|
7274
|
+
return _context33.finish(68);
|
|
7149
7275
|
case 71:
|
|
7150
7276
|
case "end":
|
|
7151
|
-
return
|
|
7277
|
+
return _context33.stop();
|
|
7152
7278
|
}
|
|
7153
|
-
},
|
|
7279
|
+
}, _callee33, this, [[18, 50, 68, 71]]);
|
|
7154
7280
|
}));
|
|
7155
7281
|
function addMediaInternal(_x32, _x33, _x34) {
|
|
7156
7282
|
return _addMediaInternal.apply(this, arguments);
|
|
@@ -7182,7 +7308,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7182
7308
|
* @memberof Meeting
|
|
7183
7309
|
*/
|
|
7184
7310
|
function enqueueMediaUpdate(mediaUpdateType) {
|
|
7185
|
-
var
|
|
7311
|
+
var _this42 = this;
|
|
7186
7312
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
7187
7313
|
var canUpdateMediaNow = this.canUpdateMedia();
|
|
7188
7314
|
return new _promise.default(function (resolve, reject) {
|
|
@@ -7193,9 +7319,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7193
7319
|
options: options
|
|
7194
7320
|
};
|
|
7195
7321
|
_loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
|
|
7196
|
-
|
|
7322
|
+
_this42.queuedMediaUpdates.push(queueItem);
|
|
7197
7323
|
if (canUpdateMediaNow) {
|
|
7198
|
-
|
|
7324
|
+
_this42.processNextQueuedMediaUpdate();
|
|
7199
7325
|
}
|
|
7200
7326
|
});
|
|
7201
7327
|
}
|
|
@@ -7218,35 +7344,35 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7218
7344
|
* @memberof Meeting
|
|
7219
7345
|
*/
|
|
7220
7346
|
function () {
|
|
7221
|
-
var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
7347
|
+
var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34(options) {
|
|
7222
7348
|
var audioEnabled, videoEnabled, shareAudioEnabled, shareVideoEnabled, _this$audio3, _this$video3;
|
|
7223
|
-
return _regenerator.default.wrap(function
|
|
7224
|
-
while (1) switch (
|
|
7349
|
+
return _regenerator.default.wrap(function _callee34$(_context34) {
|
|
7350
|
+
while (1) switch (_context34.prev = _context34.next) {
|
|
7225
7351
|
case 0:
|
|
7226
7352
|
this.checkMediaConnection();
|
|
7227
7353
|
audioEnabled = options.audioEnabled, videoEnabled = options.videoEnabled, shareAudioEnabled = options.shareAudioEnabled, shareVideoEnabled = options.shareVideoEnabled;
|
|
7228
7354
|
_loggerProxy.default.logger.log("Meeting:index#updateMedia --> called with options=".concat((0, _stringify.default)(options)));
|
|
7229
7355
|
if (this.canUpdateMedia()) {
|
|
7230
|
-
|
|
7356
|
+
_context34.next = 5;
|
|
7231
7357
|
break;
|
|
7232
7358
|
}
|
|
7233
|
-
return
|
|
7359
|
+
return _context34.abrupt("return", this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.UPDATE_MEDIA, options));
|
|
7234
7360
|
case 5:
|
|
7235
7361
|
if (!this.isMultistream) {
|
|
7236
|
-
|
|
7362
|
+
_context34.next = 10;
|
|
7237
7363
|
break;
|
|
7238
7364
|
}
|
|
7239
7365
|
if (!(shareAudioEnabled !== undefined || shareVideoEnabled !== undefined)) {
|
|
7240
|
-
|
|
7366
|
+
_context34.next = 8;
|
|
7241
7367
|
break;
|
|
7242
7368
|
}
|
|
7243
7369
|
throw new Error('toggling shareAudioEnabled or shareVideoEnabled in a multistream meeting is not supported, to control receiving screen share call meeting.remoteMediaManager.setLayout() with appropriate layout');
|
|
7244
7370
|
case 8:
|
|
7245
|
-
|
|
7371
|
+
_context34.next = 12;
|
|
7246
7372
|
break;
|
|
7247
7373
|
case 10:
|
|
7248
7374
|
if (!(shareAudioEnabled !== undefined)) {
|
|
7249
|
-
|
|
7375
|
+
_context34.next = 12;
|
|
7250
7376
|
break;
|
|
7251
7377
|
}
|
|
7252
7378
|
throw new Error('toggling shareAudioEnabled in a transcoded meeting is not supported as of now');
|
|
@@ -7271,18 +7397,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7271
7397
|
this.mediaProperties.mediaDirection.receiveShare = !!(shareAudioEnabled || shareVideoEnabled);
|
|
7272
7398
|
}
|
|
7273
7399
|
if (this.isMultistream) {
|
|
7274
|
-
|
|
7400
|
+
_context34.next = 18;
|
|
7275
7401
|
break;
|
|
7276
7402
|
}
|
|
7277
|
-
|
|
7403
|
+
_context34.next = 18;
|
|
7278
7404
|
return this.updateTranscodedMediaConnection();
|
|
7279
7405
|
case 18:
|
|
7280
|
-
return
|
|
7406
|
+
return _context34.abrupt("return", undefined);
|
|
7281
7407
|
case 19:
|
|
7282
7408
|
case "end":
|
|
7283
|
-
return
|
|
7409
|
+
return _context34.stop();
|
|
7284
7410
|
}
|
|
7285
|
-
},
|
|
7411
|
+
}, _callee34, this);
|
|
7286
7412
|
}));
|
|
7287
7413
|
function updateMedia(_x35) {
|
|
7288
7414
|
return _updateMedia.apply(this, arguments);
|
|
@@ -7300,7 +7426,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7300
7426
|
}, {
|
|
7301
7427
|
key: "acknowledge",
|
|
7302
7428
|
value: function acknowledge(type) {
|
|
7303
|
-
var
|
|
7429
|
+
var _this43 = this;
|
|
7304
7430
|
if (!type) {
|
|
7305
7431
|
return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
|
|
7306
7432
|
}
|
|
@@ -7312,12 +7438,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7312
7438
|
}).then(function (response) {
|
|
7313
7439
|
return _promise.default.resolve(response);
|
|
7314
7440
|
}).then(function (response) {
|
|
7315
|
-
|
|
7441
|
+
_this43.meetingFiniteStateMachine.ring(type);
|
|
7316
7442
|
// @ts-ignore
|
|
7317
|
-
|
|
7443
|
+
_this43.webex.internal.newMetrics.submitClientEvent({
|
|
7318
7444
|
name: 'client.alert.displayed',
|
|
7319
7445
|
options: {
|
|
7320
|
-
meetingId:
|
|
7446
|
+
meetingId: _this43.id
|
|
7321
7447
|
}
|
|
7322
7448
|
});
|
|
7323
7449
|
return _promise.default.resolve({
|
|
@@ -7342,12 +7468,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7342
7468
|
}, {
|
|
7343
7469
|
key: "decline",
|
|
7344
7470
|
value: function decline(reason) {
|
|
7345
|
-
var
|
|
7471
|
+
var _this44 = this;
|
|
7346
7472
|
return _util2.default.declineMeeting(this, reason).then(function (decline) {
|
|
7347
|
-
|
|
7473
|
+
_this44.meetingFiniteStateMachine.decline();
|
|
7348
7474
|
return _promise.default.resolve(decline);
|
|
7349
7475
|
}).catch(function (error) {
|
|
7350
|
-
|
|
7476
|
+
_this44.meetingFiniteStateMachine.fail(error);
|
|
7351
7477
|
return _promise.default.reject(error);
|
|
7352
7478
|
});
|
|
7353
7479
|
}
|
|
@@ -7398,7 +7524,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7398
7524
|
}, {
|
|
7399
7525
|
key: "leave",
|
|
7400
7526
|
value: function leave() {
|
|
7401
|
-
var
|
|
7527
|
+
var _this45 = this;
|
|
7402
7528
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7403
7529
|
var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
|
|
7404
7530
|
|
|
@@ -7410,7 +7536,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7410
7536
|
var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7411
7537
|
return (
|
|
7412
7538
|
// @ts-ignore
|
|
7413
|
-
|
|
7539
|
+
_this45.webex.internal.newMetrics.submitClientEvent({
|
|
7414
7540
|
name: 'client.call.leave',
|
|
7415
7541
|
payload: _objectSpread({
|
|
7416
7542
|
trigger: 'user-interaction',
|
|
@@ -7418,7 +7544,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7418
7544
|
leaveReason: options.clientEventLeaveReason
|
|
7419
7545
|
}, payload),
|
|
7420
7546
|
options: {
|
|
7421
|
-
meetingId:
|
|
7547
|
+
meetingId: _this45.id
|
|
7422
7548
|
}
|
|
7423
7549
|
})
|
|
7424
7550
|
);
|
|
@@ -7427,24 +7553,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7427
7553
|
return _util2.default.leaveMeeting(this, options).then(function (leave) {
|
|
7428
7554
|
// CA team recommends submitting this *after* locus /leave
|
|
7429
7555
|
submitLeaveMetric();
|
|
7430
|
-
|
|
7431
|
-
|
|
7556
|
+
_this45.meetingFiniteStateMachine.leave();
|
|
7557
|
+
_this45.clearMeetingData();
|
|
7432
7558
|
|
|
7433
7559
|
// upload logs on leave irrespective of meeting delete
|
|
7434
|
-
_triggerProxy.default.trigger(
|
|
7560
|
+
_triggerProxy.default.trigger(_this45, {
|
|
7435
7561
|
file: 'meeting/index',
|
|
7436
7562
|
function: 'leave'
|
|
7437
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
7563
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this45);
|
|
7438
7564
|
|
|
7439
7565
|
// TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
|
|
7440
|
-
if (
|
|
7566
|
+
if (_this45.wirelessShare || _this45.guest) {
|
|
7441
7567
|
// If screen sharing clean the meeting object
|
|
7442
|
-
_triggerProxy.default.trigger(
|
|
7568
|
+
_triggerProxy.default.trigger(_this45, {
|
|
7443
7569
|
file: 'meeting/index',
|
|
7444
7570
|
function: 'leave'
|
|
7445
7571
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
|
7446
7572
|
reason: options.reason,
|
|
7447
|
-
meetingId:
|
|
7573
|
+
meetingId: _this45.id
|
|
7448
7574
|
});
|
|
7449
7575
|
}
|
|
7450
7576
|
_loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
|
|
@@ -7461,16 +7587,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7461
7587
|
shownToUser: false
|
|
7462
7588
|
}]
|
|
7463
7589
|
});
|
|
7464
|
-
|
|
7590
|
+
_this45.meetingFiniteStateMachine.fail(error);
|
|
7465
7591
|
_loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
|
|
7466
7592
|
// upload logs on leave irrespective of meeting delete
|
|
7467
|
-
_triggerProxy.default.trigger(
|
|
7593
|
+
_triggerProxy.default.trigger(_this45, {
|
|
7468
7594
|
file: 'meeting/index',
|
|
7469
7595
|
function: 'leave'
|
|
7470
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
7596
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this45);
|
|
7471
7597
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
|
|
7472
|
-
correlation_id:
|
|
7473
|
-
locus_id:
|
|
7598
|
+
correlation_id: _this45.correlationId,
|
|
7599
|
+
locus_id: _this45.locusUrl.split('/').pop(),
|
|
7474
7600
|
reason: error.message,
|
|
7475
7601
|
stack: error.stack,
|
|
7476
7602
|
code: error.code
|
|
@@ -7490,7 +7616,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7490
7616
|
}, {
|
|
7491
7617
|
key: "startWhiteboardShare",
|
|
7492
7618
|
value: function startWhiteboardShare(channelUrl, resourceToken) {
|
|
7493
|
-
var
|
|
7619
|
+
var _this46 = this;
|
|
7494
7620
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
7495
7621
|
return element.name === 'whiteboard';
|
|
7496
7622
|
});
|
|
@@ -7519,13 +7645,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7519
7645
|
body.resourceToken = resourceToken;
|
|
7520
7646
|
}
|
|
7521
7647
|
return this.meetingRequest.changeMeetingFloor(body).then(function () {
|
|
7522
|
-
|
|
7648
|
+
_this46.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
|
7523
7649
|
return _promise.default.resolve();
|
|
7524
7650
|
}).catch(function (error) {
|
|
7525
7651
|
_loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
|
|
7526
7652
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
|
|
7527
|
-
correlation_id:
|
|
7528
|
-
locus_id:
|
|
7653
|
+
correlation_id: _this46.correlationId,
|
|
7654
|
+
locus_id: _this46.locusUrl.split('/').pop(),
|
|
7529
7655
|
reason: error.message,
|
|
7530
7656
|
stack: error.stack,
|
|
7531
7657
|
board: {
|
|
@@ -7548,7 +7674,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7548
7674
|
}, {
|
|
7549
7675
|
key: "stopWhiteboardShare",
|
|
7550
7676
|
value: function stopWhiteboardShare(channelUrl) {
|
|
7551
|
-
var
|
|
7677
|
+
var _this47 = this;
|
|
7552
7678
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
7553
7679
|
return element.name === 'whiteboard';
|
|
7554
7680
|
});
|
|
@@ -7571,8 +7697,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7571
7697
|
}).catch(function (error) {
|
|
7572
7698
|
_loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
|
|
7573
7699
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
|
|
7574
|
-
correlation_id:
|
|
7575
|
-
locus_id:
|
|
7700
|
+
correlation_id: _this47.correlationId,
|
|
7701
|
+
locus_id: _this47.locusUrl.split('/').pop(),
|
|
7576
7702
|
reason: error.message,
|
|
7577
7703
|
stack: error.stack,
|
|
7578
7704
|
board: {
|
|
@@ -7594,7 +7720,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7594
7720
|
}, {
|
|
7595
7721
|
key: "requestScreenShareFloor",
|
|
7596
7722
|
value: function requestScreenShareFloor() {
|
|
7597
|
-
var
|
|
7723
|
+
var _this48 = this;
|
|
7598
7724
|
if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
|
|
7599
7725
|
_loggerProxy.default.logger.log("Meeting:index#requestScreenShareFloor --> NOT requesting floor, because we don't have the share stream anymore (shareStream=".concat(this.mediaProperties.shareVideoStream ? 'yes' : 'no', ", sendShare=").concat(this.mediaProperties.mediaDirection.sendShare, ")"));
|
|
7600
7726
|
this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
|
@@ -7625,34 +7751,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7625
7751
|
resourceUrl: this.resourceUrl,
|
|
7626
7752
|
shareInstanceId: this.localShareInstanceId
|
|
7627
7753
|
}).then(function () {
|
|
7628
|
-
|
|
7754
|
+
_this48.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
|
|
7629
7755
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
|
|
7630
|
-
correlation_id:
|
|
7631
|
-
locus_id:
|
|
7756
|
+
correlation_id: _this48.correlationId,
|
|
7757
|
+
locus_id: _this48.locusUrl.split('/').pop()
|
|
7632
7758
|
});
|
|
7633
7759
|
return _promise.default.resolve();
|
|
7634
7760
|
}).catch(function (error) {
|
|
7635
7761
|
_loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
|
|
7636
7762
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
|
|
7637
|
-
correlation_id:
|
|
7638
|
-
locus_id:
|
|
7763
|
+
correlation_id: _this48.correlationId,
|
|
7764
|
+
locus_id: _this48.locusUrl.split('/').pop(),
|
|
7639
7765
|
reason: error.message,
|
|
7640
7766
|
stack: error.stack
|
|
7641
7767
|
});
|
|
7642
7768
|
|
|
7643
7769
|
// @ts-ignore
|
|
7644
|
-
|
|
7770
|
+
_this48.webex.internal.newMetrics.submitClientEvent({
|
|
7645
7771
|
name: 'client.share.floor-granted.local',
|
|
7646
7772
|
payload: {
|
|
7647
7773
|
mediaType: 'share',
|
|
7648
7774
|
errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
|
|
7649
|
-
shareInstanceId:
|
|
7775
|
+
shareInstanceId: _this48.localShareInstanceId
|
|
7650
7776
|
},
|
|
7651
7777
|
options: {
|
|
7652
|
-
meetingId:
|
|
7778
|
+
meetingId: _this48.id
|
|
7653
7779
|
}
|
|
7654
7780
|
});
|
|
7655
|
-
|
|
7781
|
+
_this48.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
|
7656
7782
|
return _promise.default.reject(error);
|
|
7657
7783
|
});
|
|
7658
7784
|
}
|
|
@@ -7675,10 +7801,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7675
7801
|
}, {
|
|
7676
7802
|
key: "requestScreenShareFloorIfPending",
|
|
7677
7803
|
value: function requestScreenShareFloorIfPending() {
|
|
7678
|
-
var
|
|
7804
|
+
var _this49 = this;
|
|
7679
7805
|
if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
|
|
7680
7806
|
this.requestScreenShareFloor().then(function () {
|
|
7681
|
-
|
|
7807
|
+
_this49.floorGrantPending = false;
|
|
7682
7808
|
});
|
|
7683
7809
|
}
|
|
7684
7810
|
}
|
|
@@ -7692,7 +7818,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7692
7818
|
}, {
|
|
7693
7819
|
key: "releaseScreenShareFloor",
|
|
7694
7820
|
value: function releaseScreenShareFloor() {
|
|
7695
|
-
var
|
|
7821
|
+
var _this50 = this;
|
|
7696
7822
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
|
7697
7823
|
return element.name === _constants.CONTENT;
|
|
7698
7824
|
});
|
|
@@ -7727,8 +7853,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7727
7853
|
}).catch(function (error) {
|
|
7728
7854
|
_loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
|
|
7729
7855
|
_metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
|
|
7730
|
-
correlation_id:
|
|
7731
|
-
locus_id:
|
|
7856
|
+
correlation_id: _this50.correlationId,
|
|
7857
|
+
locus_id: _this50.locusUrl.split('/').pop(),
|
|
7732
7858
|
reason: error.message,
|
|
7733
7859
|
stack: error.stack
|
|
7734
7860
|
});
|
|
@@ -7784,13 +7910,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7784
7910
|
* @param {boolean} mutedEnabled
|
|
7785
7911
|
* @param {boolean} disallowUnmuteEnabled
|
|
7786
7912
|
* @param {boolean} muteOnEntryEnabled
|
|
7913
|
+
* @param {array} roles
|
|
7787
7914
|
* @public
|
|
7788
7915
|
* @memberof Meeting
|
|
7789
7916
|
*/
|
|
7790
7917
|
}, {
|
|
7791
7918
|
key: "setMuteAll",
|
|
7792
|
-
value: function setMuteAll(mutedEnabled, disallowUnmuteEnabled, muteOnEntryEnabled) {
|
|
7793
|
-
return this.controlsOptionsManager.setMuteAll(mutedEnabled, disallowUnmuteEnabled, muteOnEntryEnabled);
|
|
7919
|
+
value: function setMuteAll(mutedEnabled, disallowUnmuteEnabled, muteOnEntryEnabled, roles) {
|
|
7920
|
+
return this.controlsOptionsManager.setMuteAll(mutedEnabled, disallowUnmuteEnabled, muteOnEntryEnabled, roles);
|
|
7794
7921
|
}
|
|
7795
7922
|
|
|
7796
7923
|
/**
|
|
@@ -7907,7 +8034,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7907
8034
|
}, {
|
|
7908
8035
|
key: "changeVideoLayout",
|
|
7909
8036
|
value: function changeVideoLayout(layoutType) {
|
|
7910
|
-
var
|
|
8037
|
+
var _this51 = this;
|
|
7911
8038
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
7912
8039
|
var main = renderInfo.main,
|
|
7913
8040
|
content = renderInfo.content;
|
|
@@ -7961,7 +8088,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7961
8088
|
}
|
|
7962
8089
|
this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
|
|
7963
8090
|
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
|
|
7964
|
-
_triggerProxy.default.trigger(
|
|
8091
|
+
_triggerProxy.default.trigger(_this51, {
|
|
7965
8092
|
file: 'meeting/index',
|
|
7966
8093
|
function: 'changeVideoLayout'
|
|
7967
8094
|
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
|
|
@@ -8077,7 +8204,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8077
8204
|
}, {
|
|
8078
8205
|
key: "endMeetingForAll",
|
|
8079
8206
|
value: function endMeetingForAll() {
|
|
8080
|
-
var
|
|
8207
|
+
var _this52 = this;
|
|
8081
8208
|
// @ts-ignore
|
|
8082
8209
|
this.webex.internal.newMetrics.submitClientEvent({
|
|
8083
8210
|
name: 'client.call.leave',
|
|
@@ -8095,25 +8222,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8095
8222
|
locus_id: this.locusId
|
|
8096
8223
|
});
|
|
8097
8224
|
return _util2.default.endMeetingForAll(this).then(function (end) {
|
|
8098
|
-
|
|
8099
|
-
|
|
8225
|
+
_this52.meetingFiniteStateMachine.end();
|
|
8226
|
+
_this52.clearMeetingData();
|
|
8100
8227
|
// upload logs on leave irrespective of meeting delete
|
|
8101
|
-
_triggerProxy.default.trigger(
|
|
8228
|
+
_triggerProxy.default.trigger(_this52, {
|
|
8102
8229
|
file: 'meeting/index',
|
|
8103
8230
|
function: 'endMeetingForAll'
|
|
8104
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
8231
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this52);
|
|
8105
8232
|
return end;
|
|
8106
8233
|
}).catch(function (error) {
|
|
8107
|
-
|
|
8234
|
+
_this52.meetingFiniteStateMachine.fail(error);
|
|
8108
8235
|
_loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
|
|
8109
8236
|
// upload logs on leave irrespective of meeting delete
|
|
8110
|
-
_triggerProxy.default.trigger(
|
|
8237
|
+
_triggerProxy.default.trigger(_this52, {
|
|
8111
8238
|
file: 'meeting/index',
|
|
8112
8239
|
function: 'endMeetingForAll'
|
|
8113
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
8240
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this52);
|
|
8114
8241
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
|
|
8115
|
-
correlation_id:
|
|
8116
|
-
locus_id:
|
|
8242
|
+
correlation_id: _this52.correlationId,
|
|
8243
|
+
locus_id: _this52.locusUrl.split('/').pop(),
|
|
8117
8244
|
reason: error.message,
|
|
8118
8245
|
stack: error.stack,
|
|
8119
8246
|
code: error.code
|
|
@@ -8202,37 +8329,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8202
8329
|
}, {
|
|
8203
8330
|
key: "enableMusicMode",
|
|
8204
8331
|
value: (function () {
|
|
8205
|
-
var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8206
|
-
return _regenerator.default.wrap(function
|
|
8207
|
-
while (1) switch (
|
|
8332
|
+
var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35(shouldEnableMusicMode) {
|
|
8333
|
+
return _regenerator.default.wrap(function _callee35$(_context35) {
|
|
8334
|
+
while (1) switch (_context35.prev = _context35.next) {
|
|
8208
8335
|
case 0:
|
|
8209
8336
|
this.checkMediaConnection();
|
|
8210
8337
|
if (this.isMultistream) {
|
|
8211
|
-
|
|
8338
|
+
_context35.next = 3;
|
|
8212
8339
|
break;
|
|
8213
8340
|
}
|
|
8214
8341
|
throw new Error('enableMusicMode() only supported with multistream');
|
|
8215
8342
|
case 3:
|
|
8216
8343
|
if (!shouldEnableMusicMode) {
|
|
8217
|
-
|
|
8344
|
+
_context35.next = 8;
|
|
8218
8345
|
break;
|
|
8219
8346
|
}
|
|
8220
|
-
|
|
8347
|
+
_context35.next = 6;
|
|
8221
8348
|
return this.sendSlotManager.setCodecParameters(_internalMediaCore.MediaType.AudioMain, {
|
|
8222
8349
|
maxaveragebitrate: '64000',
|
|
8223
8350
|
maxplaybackrate: '48000'
|
|
8224
8351
|
});
|
|
8225
8352
|
case 6:
|
|
8226
|
-
|
|
8353
|
+
_context35.next = 10;
|
|
8227
8354
|
break;
|
|
8228
8355
|
case 8:
|
|
8229
|
-
|
|
8356
|
+
_context35.next = 10;
|
|
8230
8357
|
return this.sendSlotManager.deleteCodecParameters(_internalMediaCore.MediaType.AudioMain, ['maxaveragebitrate', 'maxplaybackrate']);
|
|
8231
8358
|
case 10:
|
|
8232
8359
|
case "end":
|
|
8233
|
-
return
|
|
8360
|
+
return _context35.stop();
|
|
8234
8361
|
}
|
|
8235
|
-
},
|
|
8362
|
+
}, _callee35, this);
|
|
8236
8363
|
}));
|
|
8237
8364
|
function enableMusicMode(_x36) {
|
|
8238
8365
|
return _enableMusicMode.apply(this, arguments);
|
|
@@ -8255,7 +8382,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8255
8382
|
_this$mediaProperties41,
|
|
8256
8383
|
_this$mediaProperties42,
|
|
8257
8384
|
_this$mediaProperties43,
|
|
8258
|
-
|
|
8385
|
+
_this53 = this;
|
|
8259
8386
|
var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
|
|
8260
8387
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
|
|
8261
8388
|
if (!this.canUpdateMedia()) {
|
|
@@ -8280,8 +8407,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8280
8407
|
}).catch(function (error) {
|
|
8281
8408
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
|
|
8282
8409
|
_metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
|
|
8283
|
-
correlation_id:
|
|
8284
|
-
locus_id:
|
|
8410
|
+
correlation_id: _this53.correlationId,
|
|
8411
|
+
locus_id: _this53.locusUrl.split('/').pop(),
|
|
8285
8412
|
reason: error.message,
|
|
8286
8413
|
stack: error.stack
|
|
8287
8414
|
});
|
|
@@ -8325,25 +8452,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8325
8452
|
}, {
|
|
8326
8453
|
key: "publishStream",
|
|
8327
8454
|
value: (function () {
|
|
8328
|
-
var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8329
|
-
return _regenerator.default.wrap(function
|
|
8330
|
-
while (1) switch (
|
|
8455
|
+
var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee36(mediaType, stream) {
|
|
8456
|
+
return _regenerator.default.wrap(function _callee36$(_context36) {
|
|
8457
|
+
while (1) switch (_context36.prev = _context36.next) {
|
|
8331
8458
|
case 0:
|
|
8332
8459
|
if (stream) {
|
|
8333
|
-
|
|
8460
|
+
_context36.next = 2;
|
|
8334
8461
|
break;
|
|
8335
8462
|
}
|
|
8336
|
-
return
|
|
8463
|
+
return _context36.abrupt("return");
|
|
8337
8464
|
case 2:
|
|
8338
8465
|
if (!this.mediaProperties.webrtcMediaConnection) {
|
|
8339
|
-
|
|
8466
|
+
_context36.next = 7;
|
|
8340
8467
|
break;
|
|
8341
8468
|
}
|
|
8342
8469
|
if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
|
|
8343
|
-
|
|
8470
|
+
_context36.next = 6;
|
|
8344
8471
|
break;
|
|
8345
8472
|
}
|
|
8346
|
-
|
|
8473
|
+
_context36.next = 6;
|
|
8347
8474
|
return this.sendSlotManager.publishStream(mediaType, stream);
|
|
8348
8475
|
case 6:
|
|
8349
8476
|
this.emitPublishStateChangeEvent({
|
|
@@ -8354,9 +8481,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8354
8481
|
});
|
|
8355
8482
|
case 7:
|
|
8356
8483
|
case "end":
|
|
8357
|
-
return
|
|
8484
|
+
return _context36.stop();
|
|
8358
8485
|
}
|
|
8359
|
-
},
|
|
8486
|
+
}, _callee36, this);
|
|
8360
8487
|
}));
|
|
8361
8488
|
function publishStream(_x37, _x38) {
|
|
8362
8489
|
return _publishStream.apply(this, arguments);
|
|
@@ -8374,21 +8501,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8374
8501
|
}, {
|
|
8375
8502
|
key: "unpublishStream",
|
|
8376
8503
|
value: (function () {
|
|
8377
|
-
var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8378
|
-
return _regenerator.default.wrap(function
|
|
8379
|
-
while (1) switch (
|
|
8504
|
+
var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee37(mediaType, stream) {
|
|
8505
|
+
return _regenerator.default.wrap(function _callee37$(_context37) {
|
|
8506
|
+
while (1) switch (_context37.prev = _context37.next) {
|
|
8380
8507
|
case 0:
|
|
8381
8508
|
if (stream) {
|
|
8382
|
-
|
|
8509
|
+
_context37.next = 2;
|
|
8383
8510
|
break;
|
|
8384
8511
|
}
|
|
8385
|
-
return
|
|
8512
|
+
return _context37.abrupt("return");
|
|
8386
8513
|
case 2:
|
|
8387
8514
|
if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
|
|
8388
|
-
|
|
8515
|
+
_context37.next = 5;
|
|
8389
8516
|
break;
|
|
8390
8517
|
}
|
|
8391
|
-
|
|
8518
|
+
_context37.next = 5;
|
|
8392
8519
|
return this.sendSlotManager.unpublishStream(mediaType);
|
|
8393
8520
|
case 5:
|
|
8394
8521
|
this.emitPublishStateChangeEvent({
|
|
@@ -8399,9 +8526,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8399
8526
|
});
|
|
8400
8527
|
case 6:
|
|
8401
8528
|
case "end":
|
|
8402
|
-
return
|
|
8529
|
+
return _context37.stop();
|
|
8403
8530
|
}
|
|
8404
|
-
},
|
|
8531
|
+
}, _callee37, this);
|
|
8405
8532
|
}));
|
|
8406
8533
|
function unpublishStream(_x39, _x40) {
|
|
8407
8534
|
return _unpublishStream.apply(this, arguments);
|
|
@@ -8418,19 +8545,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8418
8545
|
}, {
|
|
8419
8546
|
key: "publishStreams",
|
|
8420
8547
|
value: (function () {
|
|
8421
|
-
var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8548
|
+
var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee38(streams) {
|
|
8422
8549
|
var _streams$screenShare, _streams$screenShare2, _streams$screenShare3, _streams$screenShare4, _streams$screenShare5, _streams$screenShare6;
|
|
8423
8550
|
var streamChecks, _i, _streamChecks, _streamChecks$_i, stream, name, floorRequestNeeded, _streams$screenShare7;
|
|
8424
|
-
return _regenerator.default.wrap(function
|
|
8425
|
-
while (1) switch (
|
|
8551
|
+
return _regenerator.default.wrap(function _callee38$(_context38) {
|
|
8552
|
+
while (1) switch (_context38.prev = _context38.next) {
|
|
8426
8553
|
case 0:
|
|
8427
8554
|
_loggerProxy.default.logger.info("Meeting:index#publishStreams --> called with: ".concat((0, _stringify.default)(streams)));
|
|
8428
8555
|
this.checkMediaConnection();
|
|
8429
8556
|
if (!(!streams.microphone && !streams.camera && !((_streams$screenShare = streams.screenShare) !== null && _streams$screenShare !== void 0 && _streams$screenShare.audio) && !((_streams$screenShare2 = streams.screenShare) !== null && _streams$screenShare2 !== void 0 && _streams$screenShare2.video))) {
|
|
8430
|
-
|
|
8557
|
+
_context38.next = 4;
|
|
8431
8558
|
break;
|
|
8432
8559
|
}
|
|
8433
|
-
return
|
|
8560
|
+
return _context38.abrupt("return");
|
|
8434
8561
|
case 4:
|
|
8435
8562
|
streamChecks = [{
|
|
8436
8563
|
stream: streams === null || streams === void 0 ? void 0 : streams.microphone,
|
|
@@ -8448,62 +8575,62 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8448
8575
|
_i = 0, _streamChecks = streamChecks;
|
|
8449
8576
|
case 6:
|
|
8450
8577
|
if (!(_i < _streamChecks.length)) {
|
|
8451
|
-
|
|
8578
|
+
_context38.next = 13;
|
|
8452
8579
|
break;
|
|
8453
8580
|
}
|
|
8454
8581
|
_streamChecks$_i = _streamChecks[_i], stream = _streamChecks$_i.stream, name = _streamChecks$_i.name;
|
|
8455
8582
|
if (!((stream === null || stream === void 0 ? void 0 : stream.readyState) === 'ended')) {
|
|
8456
|
-
|
|
8583
|
+
_context38.next = 10;
|
|
8457
8584
|
break;
|
|
8458
8585
|
}
|
|
8459
8586
|
throw new Error("Attempted to publish ".concat(name, " stream with ended readyState, correlationId=").concat(this.correlationId));
|
|
8460
8587
|
case 10:
|
|
8461
8588
|
_i++;
|
|
8462
|
-
|
|
8589
|
+
_context38.next = 6;
|
|
8463
8590
|
break;
|
|
8464
8591
|
case 13:
|
|
8465
8592
|
floorRequestNeeded = false; // Screenshare Audio is supported only in multi stream. So we check for screenshare audio presence only if it's a multi stream meeting
|
|
8466
8593
|
if (!(this.isMultistream && (_streams$screenShare5 = streams.screenShare) !== null && _streams$screenShare5 !== void 0 && _streams$screenShare5.audio)) {
|
|
8467
|
-
|
|
8594
|
+
_context38.next = 18;
|
|
8468
8595
|
break;
|
|
8469
8596
|
}
|
|
8470
|
-
|
|
8597
|
+
_context38.next = 17;
|
|
8471
8598
|
return this.setLocalShareAudioStream(streams.screenShare.audio);
|
|
8472
8599
|
case 17:
|
|
8473
8600
|
floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
|
|
8474
8601
|
case 18:
|
|
8475
8602
|
if (!((_streams$screenShare6 = streams.screenShare) !== null && _streams$screenShare6 !== void 0 && _streams$screenShare6.video)) {
|
|
8476
|
-
|
|
8603
|
+
_context38.next = 22;
|
|
8477
8604
|
break;
|
|
8478
8605
|
}
|
|
8479
|
-
|
|
8606
|
+
_context38.next = 21;
|
|
8480
8607
|
return this.setLocalShareVideoStream((_streams$screenShare7 = streams.screenShare) === null || _streams$screenShare7 === void 0 ? void 0 : _streams$screenShare7.video);
|
|
8481
8608
|
case 21:
|
|
8482
8609
|
floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
|
|
8483
8610
|
case 22:
|
|
8484
8611
|
if (!streams.microphone) {
|
|
8485
|
-
|
|
8612
|
+
_context38.next = 25;
|
|
8486
8613
|
break;
|
|
8487
8614
|
}
|
|
8488
|
-
|
|
8615
|
+
_context38.next = 25;
|
|
8489
8616
|
return this.setLocalAudioStream(streams.microphone);
|
|
8490
8617
|
case 25:
|
|
8491
8618
|
if (!streams.camera) {
|
|
8492
|
-
|
|
8619
|
+
_context38.next = 28;
|
|
8493
8620
|
break;
|
|
8494
8621
|
}
|
|
8495
|
-
|
|
8622
|
+
_context38.next = 28;
|
|
8496
8623
|
return this.setLocalVideoStream(streams.camera);
|
|
8497
8624
|
case 28:
|
|
8498
8625
|
if (this.isMultistream) {
|
|
8499
|
-
|
|
8626
|
+
_context38.next = 31;
|
|
8500
8627
|
break;
|
|
8501
8628
|
}
|
|
8502
|
-
|
|
8629
|
+
_context38.next = 31;
|
|
8503
8630
|
return this.updateTranscodedMediaConnection();
|
|
8504
8631
|
case 31:
|
|
8505
8632
|
if (!floorRequestNeeded) {
|
|
8506
|
-
|
|
8633
|
+
_context38.next = 37;
|
|
8507
8634
|
break;
|
|
8508
8635
|
}
|
|
8509
8636
|
this.localShareInstanceId = _uuid.default.v4();
|
|
@@ -8527,13 +8654,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8527
8654
|
// we're sending the http request to Locus to request the screen share floor
|
|
8528
8655
|
// only after the SDP update, because that's how it's always been done for transcoded meetings
|
|
8529
8656
|
// and also if sharing from the start, we need confluence to have been created
|
|
8530
|
-
|
|
8657
|
+
_context38.next = 37;
|
|
8531
8658
|
return this.enqueueScreenShareFloorRequest();
|
|
8532
8659
|
case 37:
|
|
8533
8660
|
case "end":
|
|
8534
|
-
return
|
|
8661
|
+
return _context38.stop();
|
|
8535
8662
|
}
|
|
8536
|
-
},
|
|
8663
|
+
}, _callee38, this);
|
|
8537
8664
|
}));
|
|
8538
8665
|
function publishStreams(_x41) {
|
|
8539
8666
|
return _publishStreams.apply(this, arguments);
|
|
@@ -8550,10 +8677,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8550
8677
|
}, {
|
|
8551
8678
|
key: "unpublishStreams",
|
|
8552
8679
|
value: (function () {
|
|
8553
|
-
var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8680
|
+
var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee39(streams) {
|
|
8554
8681
|
var promises, _iterator, _step, stream;
|
|
8555
|
-
return _regenerator.default.wrap(function
|
|
8556
|
-
while (1) switch (
|
|
8682
|
+
return _regenerator.default.wrap(function _callee39$(_context39) {
|
|
8683
|
+
while (1) switch (_context39.prev = _context39.next) {
|
|
8557
8684
|
case 0:
|
|
8558
8685
|
_loggerProxy.default.logger.info("Meeting:index#unpublishStreams --> called with: ".concat((0, _stringify.default)(streams)));
|
|
8559
8686
|
this.checkMediaConnection();
|
|
@@ -8585,7 +8712,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8585
8712
|
if (!this.isMultistream) {
|
|
8586
8713
|
promises.push(this.updateTranscodedMediaConnection());
|
|
8587
8714
|
}
|
|
8588
|
-
|
|
8715
|
+
_context39.next = 8;
|
|
8589
8716
|
return _promise.default.all(promises);
|
|
8590
8717
|
case 8:
|
|
8591
8718
|
// we're allowing for the SDK to support just audio share as well
|
|
@@ -8606,9 +8733,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8606
8733
|
}
|
|
8607
8734
|
case 9:
|
|
8608
8735
|
case "end":
|
|
8609
|
-
return
|
|
8736
|
+
return _context39.stop();
|
|
8610
8737
|
}
|
|
8611
|
-
},
|
|
8738
|
+
}, _callee39, this);
|
|
8612
8739
|
}));
|
|
8613
8740
|
function unpublishStreams(_x42) {
|
|
8614
8741
|
return _unpublishStreams.apply(this, arguments);
|
|
@@ -8670,55 +8797,55 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8670
8797
|
}], [{
|
|
8671
8798
|
key: "handleDeviceLogging",
|
|
8672
8799
|
value: (function () {
|
|
8673
|
-
var _handleDeviceLogging = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8800
|
+
var _handleDeviceLogging = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee40(isAudioEnabled, isVideoEnabled) {
|
|
8674
8801
|
var devices;
|
|
8675
|
-
return _regenerator.default.wrap(function
|
|
8676
|
-
while (1) switch (
|
|
8802
|
+
return _regenerator.default.wrap(function _callee40$(_context40) {
|
|
8803
|
+
while (1) switch (_context40.prev = _context40.next) {
|
|
8677
8804
|
case 0:
|
|
8678
|
-
|
|
8805
|
+
_context40.prev = 0;
|
|
8679
8806
|
devices = [];
|
|
8680
8807
|
if (!(isVideoEnabled && isAudioEnabled)) {
|
|
8681
|
-
|
|
8808
|
+
_context40.next = 8;
|
|
8682
8809
|
break;
|
|
8683
8810
|
}
|
|
8684
|
-
|
|
8811
|
+
_context40.next = 5;
|
|
8685
8812
|
return (0, _mediaHelpers.getDevices)();
|
|
8686
8813
|
case 5:
|
|
8687
|
-
devices =
|
|
8688
|
-
|
|
8814
|
+
devices = _context40.sent;
|
|
8815
|
+
_context40.next = 18;
|
|
8689
8816
|
break;
|
|
8690
8817
|
case 8:
|
|
8691
8818
|
if (!isVideoEnabled) {
|
|
8692
|
-
|
|
8819
|
+
_context40.next = 14;
|
|
8693
8820
|
break;
|
|
8694
8821
|
}
|
|
8695
|
-
|
|
8822
|
+
_context40.next = 11;
|
|
8696
8823
|
return (0, _mediaHelpers.getDevices)(_media.default.DeviceKind.VIDEO_INPUT);
|
|
8697
8824
|
case 11:
|
|
8698
|
-
devices =
|
|
8699
|
-
|
|
8825
|
+
devices = _context40.sent;
|
|
8826
|
+
_context40.next = 18;
|
|
8700
8827
|
break;
|
|
8701
8828
|
case 14:
|
|
8702
8829
|
if (!isAudioEnabled) {
|
|
8703
|
-
|
|
8830
|
+
_context40.next = 18;
|
|
8704
8831
|
break;
|
|
8705
8832
|
}
|
|
8706
|
-
|
|
8833
|
+
_context40.next = 17;
|
|
8707
8834
|
return (0, _mediaHelpers.getDevices)(_media.default.DeviceKind.AUDIO_INPUT);
|
|
8708
8835
|
case 17:
|
|
8709
|
-
devices =
|
|
8836
|
+
devices = _context40.sent;
|
|
8710
8837
|
case 18:
|
|
8711
8838
|
_util2.default.handleDeviceLogging(devices);
|
|
8712
|
-
|
|
8839
|
+
_context40.next = 23;
|
|
8713
8840
|
break;
|
|
8714
8841
|
case 21:
|
|
8715
|
-
|
|
8716
|
-
|
|
8842
|
+
_context40.prev = 21;
|
|
8843
|
+
_context40.t0 = _context40["catch"](0);
|
|
8717
8844
|
case 23:
|
|
8718
8845
|
case "end":
|
|
8719
|
-
return
|
|
8846
|
+
return _context40.stop();
|
|
8720
8847
|
}
|
|
8721
|
-
},
|
|
8848
|
+
}, _callee40, null, [[0, 21]]);
|
|
8722
8849
|
}));
|
|
8723
8850
|
function handleDeviceLogging(_x43, _x44) {
|
|
8724
8851
|
return _handleDeviceLogging.apply(this, arguments);
|