@webex/plugin-meetings 3.9.0 → 3.10.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/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/index.js +22 -5
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.js +7 -0
- package/dist/interceptors/index.js.map +1 -1
- package/dist/interceptors/locusRouteToken.js +116 -0
- package/dist/interceptors/locusRouteToken.js.map +1 -0
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.js +11 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +56 -14
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/parser.js +4 -1
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/media/properties.js +53 -5
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +8 -0
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +339 -185
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +2 -5
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +177 -14
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +39 -11
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +29 -21
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meetings/index.js +31 -25
- package/dist/meetings/index.js.map +1 -1
- package/dist/member/index.js +9 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js.map +1 -1
- package/dist/member/util.js +10 -0
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +13 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +42 -20
- package/dist/members/index.js.map +1 -1
- package/dist/members/util.js +7 -2
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +2 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/reachability/index.js +3 -3
- package/dist/reachability/index.js.map +1 -1
- package/dist/types/constants.d.ts +7 -0
- package/dist/types/controls-options-manager/index.d.ts +9 -1
- package/dist/types/interceptors/index.d.ts +2 -1
- package/dist/types/interceptors/locusRouteToken.d.ts +38 -0
- package/dist/types/locus-info/index.d.ts +56 -2
- package/dist/types/media/properties.d.ts +21 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +8 -0
- package/dist/types/meeting/index.d.ts +41 -1
- package/dist/types/meeting/request.d.ts +42 -0
- package/dist/types/meeting/util.d.ts +13 -3
- package/dist/types/meeting-info/meeting-info-v2.d.ts +6 -3
- package/dist/types/meetings/index.d.ts +3 -1
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/member/types.d.ts +1 -0
- package/dist/types/member/util.d.ts +5 -0
- package/dist/types/members/collection.d.ts +6 -0
- package/dist/types/members/index.d.ts +12 -2
- package/dist/types/members/util.d.ts +6 -3
- package/dist/types/metrics/constants.d.ts +1 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +23 -23
- package/src/constants.ts +10 -0
- package/src/controls-options-manager/index.ts +26 -5
- package/src/index.ts +2 -1
- package/src/interceptors/index.ts +2 -1
- package/src/interceptors/locusRouteToken.ts +80 -0
- package/src/locus-info/controlsUtils.ts +18 -0
- package/src/locus-info/index.ts +99 -17
- package/src/locus-info/parser.ts +5 -1
- package/src/media/properties.ts +43 -0
- package/src/meeting/in-meeting-actions.ts +16 -0
- package/src/meeting/index.ts +204 -24
- package/src/meeting/muteState.ts +2 -6
- package/src/meeting/request.ts +141 -0
- package/src/meeting/util.ts +50 -20
- package/src/meeting-info/meeting-info-v2.ts +24 -5
- package/src/meetings/index.ts +9 -3
- package/src/member/index.ts +10 -0
- package/src/member/types.ts +1 -0
- package/src/member/util.ts +14 -0
- package/src/members/collection.ts +11 -0
- package/src/members/index.ts +38 -5
- package/src/members/util.ts +18 -2
- package/src/metrics/constants.ts +1 -0
- package/src/reachability/index.ts +3 -3
- package/test/unit/spec/common/browser-detection.js +0 -24
- package/test/unit/spec/controls-options-manager/index.js +47 -0
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interceptors/locusRouteToken.ts +87 -0
- package/test/unit/spec/locus-info/index.js +91 -15
- package/test/unit/spec/locus-info/parser.js +3 -2
- package/test/unit/spec/media/properties.ts +137 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +8 -0
- package/test/unit/spec/meeting/index.js +398 -30
- package/test/unit/spec/meeting/muteState.js +32 -6
- package/test/unit/spec/meeting/request.js +21 -0
- package/test/unit/spec/meeting/utils.js +49 -17
- package/test/unit/spec/meeting-info/meetinginfov2.js +8 -3
- package/test/unit/spec/meetings/index.js +10 -5
- package/test/unit/spec/member/util.js +24 -0
- package/test/unit/spec/members/collection.js +120 -0
- package/test/unit/spec/members/index.js +72 -3
- package/test/unit/spec/members/request.js +55 -0
- package/test/unit/spec/members/utils.js +116 -14
- package/test/unit/spec/reachability/index.ts +158 -3
- package/test/unit/spec/roap/turnDiscovery.ts +3 -3
package/dist/meeting/index.js
CHANGED
|
@@ -476,6 +476,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
476
476
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "shareStatus", void 0);
|
|
477
477
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "screenShareFloorState", void 0);
|
|
478
478
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "statsAnalyzer", void 0);
|
|
479
|
+
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "statsMonitor", void 0);
|
|
479
480
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "transcription", void 0);
|
|
480
481
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "updateMediaConnections", void 0);
|
|
481
482
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "userDisplayHints", void 0);
|
|
@@ -948,6 +949,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
948
949
|
// @ts-ignore
|
|
949
950
|
_this.webex.internal.newMetrics.submitClientEvent({
|
|
950
951
|
name: 'client.ice.start',
|
|
952
|
+
payload: {
|
|
953
|
+
// @ts-ignore
|
|
954
|
+
labels: _util2.default.getCaEventLabelsForIpVersion(_this.webex)
|
|
955
|
+
},
|
|
951
956
|
options: {
|
|
952
957
|
meetingId: _this.id
|
|
953
958
|
}
|
|
@@ -1072,10 +1077,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1072
1077
|
}
|
|
1073
1078
|
}
|
|
1074
1079
|
|
|
1075
|
-
// Count members that are in the meeting.
|
|
1080
|
+
// Count members that are in the meeting or in the lobby.
|
|
1076
1081
|
var members = _this.getMembers().membersCollection.members;
|
|
1077
1082
|
event.data.intervalMetadata.meetingUserCount = (0, _values.default)(members).filter(function (member) {
|
|
1078
|
-
return member.isInMeeting;
|
|
1083
|
+
return member.isInMeeting || member.isInLobby;
|
|
1079
1084
|
}).length;
|
|
1080
1085
|
|
|
1081
1086
|
// @ts-ignore
|
|
@@ -1966,6 +1971,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1966
1971
|
* @memberof Meeting
|
|
1967
1972
|
*/
|
|
1968
1973
|
_this.networkQualityMonitor = null;
|
|
1974
|
+
/**
|
|
1975
|
+
* @instance
|
|
1976
|
+
* @type {StatsMonitor}
|
|
1977
|
+
* @private
|
|
1978
|
+
* @memberof Meeting
|
|
1979
|
+
*/
|
|
1980
|
+
_this.statsMonitor = null;
|
|
1969
1981
|
/**
|
|
1970
1982
|
* Indicates network status of the webrtc media connection
|
|
1971
1983
|
* @instance
|
|
@@ -2601,11 +2613,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2601
2613
|
key: "fetchMeetingInfoInternal",
|
|
2602
2614
|
value: (function () {
|
|
2603
2615
|
var _fetchMeetingInfoInternal = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(_ref8) {
|
|
2604
|
-
var destination, destinationType, _ref8$password, password, _ref8$captchaCode, captchaCode, _ref8$extraParams, extraParams, _ref8$sendCAevents, sendCAevents, _ref8$registrationId, registrationId, captchaInfo, info, _err$body, _err$body2;
|
|
2616
|
+
var destination, destinationType, _ref8$password, password, _ref8$captchaCode, captchaCode, _ref8$extraParams, extraParams, _ref8$sendCAevents, sendCAevents, _ref8$registrationId, registrationId, _ref8$classificationI, classificationId, captchaInfo, info, _err$body, _err$body2;
|
|
2605
2617
|
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
2606
2618
|
while (1) switch (_context5.prev = _context5.next) {
|
|
2607
2619
|
case 0:
|
|
2608
|
-
destination = _ref8.destination, destinationType = _ref8.destinationType, _ref8$password = _ref8.password, password = _ref8$password === void 0 ? null : _ref8$password, _ref8$captchaCode = _ref8.captchaCode, captchaCode = _ref8$captchaCode === void 0 ? null : _ref8$captchaCode, _ref8$extraParams = _ref8.extraParams, extraParams = _ref8$extraParams === void 0 ? {} : _ref8$extraParams, _ref8$sendCAevents = _ref8.sendCAevents, sendCAevents = _ref8$sendCAevents === void 0 ? false : _ref8$sendCAevents, _ref8$registrationId = _ref8.registrationId, registrationId = _ref8$registrationId === void 0 ? null : _ref8$registrationId;
|
|
2620
|
+
destination = _ref8.destination, destinationType = _ref8.destinationType, _ref8$password = _ref8.password, password = _ref8$password === void 0 ? null : _ref8$password, _ref8$captchaCode = _ref8.captchaCode, captchaCode = _ref8$captchaCode === void 0 ? null : _ref8$captchaCode, _ref8$extraParams = _ref8.extraParams, extraParams = _ref8$extraParams === void 0 ? {} : _ref8$extraParams, _ref8$sendCAevents = _ref8.sendCAevents, sendCAevents = _ref8$sendCAevents === void 0 ? false : _ref8$sendCAevents, _ref8$registrationId = _ref8.registrationId, registrationId = _ref8$registrationId === void 0 ? null : _ref8$registrationId, _ref8$classificationI = _ref8.classificationId, classificationId = _ref8$classificationI === void 0 ? null : _ref8$classificationI;
|
|
2609
2621
|
_context5.prev = 1;
|
|
2610
2622
|
captchaInfo = captchaCode ? {
|
|
2611
2623
|
code: captchaCode,
|
|
@@ -2617,7 +2629,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2617
2629
|
this.config.installedOrgID, this.locusId, extraParams, {
|
|
2618
2630
|
meetingId: this.id,
|
|
2619
2631
|
sendCAevents: sendCAevents
|
|
2620
|
-
}, registrationId);
|
|
2632
|
+
}, registrationId, null, classificationId);
|
|
2621
2633
|
case 5:
|
|
2622
2634
|
info = _context5.sent;
|
|
2623
2635
|
this.parseMeetingInfo(info === null || info === void 0 ? void 0 : info.body, this.destination, info === null || info === void 0 ? void 0 : info.errors);
|
|
@@ -3577,26 +3589,35 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3577
3589
|
state: state
|
|
3578
3590
|
});
|
|
3579
3591
|
});
|
|
3580
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.
|
|
3592
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_AUTO_END_MEETING_WARNING_CHANGED, function (_ref28) {
|
|
3581
3593
|
var state = _ref28.state;
|
|
3582
3594
|
_triggerProxy.default.trigger(_this14, {
|
|
3583
3595
|
file: 'meeting/index',
|
|
3584
3596
|
function: 'setupLocusControlsListener'
|
|
3585
|
-
}, _constants.EVENT_TRIGGERS.
|
|
3597
|
+
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_AUTO_END_MEETING_WARNING_UPDATED, {
|
|
3586
3598
|
state: state
|
|
3587
3599
|
});
|
|
3588
3600
|
});
|
|
3589
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.
|
|
3601
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_ANNOTATION_CHANGED, function (_ref29) {
|
|
3590
3602
|
var state = _ref29.state;
|
|
3591
3603
|
_triggerProxy.default.trigger(_this14, {
|
|
3592
3604
|
file: 'meeting/index',
|
|
3593
3605
|
function: 'setupLocusControlsListener'
|
|
3594
|
-
}, _constants.EVENT_TRIGGERS.
|
|
3606
|
+
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_ANNOTATION_UPDATED, {
|
|
3595
3607
|
state: state
|
|
3596
3608
|
});
|
|
3597
3609
|
});
|
|
3598
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.
|
|
3610
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_REMOTE_DESKTOP_CONTROL_CHANGED, function (_ref30) {
|
|
3599
3611
|
var state = _ref30.state;
|
|
3612
|
+
_triggerProxy.default.trigger(_this14, {
|
|
3613
|
+
file: 'meeting/index',
|
|
3614
|
+
function: 'setupLocusControlsListener'
|
|
3615
|
+
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_REMOTE_DESKTOP_CONTROL_UPDATED, {
|
|
3616
|
+
state: state
|
|
3617
|
+
});
|
|
3618
|
+
});
|
|
3619
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_POLLING_QA_CHANGED, function (_ref31) {
|
|
3620
|
+
var state = _ref31.state;
|
|
3600
3621
|
_triggerProxy.default.trigger(_this14, {
|
|
3601
3622
|
file: 'meeting/index',
|
|
3602
3623
|
function: 'setupLocusControlsListener'
|
|
@@ -3643,7 +3664,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3643
3664
|
var _this15 = this;
|
|
3644
3665
|
// Will get triggered on local and remote share
|
|
3645
3666
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_MEDIA_SHARES, /*#__PURE__*/function () {
|
|
3646
|
-
var
|
|
3667
|
+
var _ref32 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(payload) {
|
|
3647
3668
|
var _payload$previous, _payload$previous2;
|
|
3648
3669
|
var _payload$current, contentShare, whiteboardShare, previousContentShare, previousWhiteboardShare, newShareStatus, _this15$locusInfo, _this15$locusInfo$inf, _this15$webinar, oldShareStatus, sendStartedSharingRemote, _this15$mediaProperti;
|
|
3649
3670
|
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
@@ -3695,7 +3716,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3695
3716
|
}
|
|
3696
3717
|
_loggerProxy.default.logger.info("Meeting:index#setUpLocusInfoMediaInactiveListener --> this.shareStatus=".concat(_this15.shareStatus, " newShareStatus=").concat(newShareStatus));
|
|
3697
3718
|
if (!(newShareStatus !== _this15.shareStatus)) {
|
|
3698
|
-
_context8.next =
|
|
3719
|
+
_context8.next = 48;
|
|
3699
3720
|
break;
|
|
3700
3721
|
}
|
|
3701
3722
|
oldShareStatus = _this15.shareStatus; // update our state before we send out any notifications
|
|
@@ -3703,14 +3724,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3703
3724
|
|
|
3704
3725
|
// send out "stop" notifications for the old state
|
|
3705
3726
|
_context8.t0 = oldShareStatus;
|
|
3706
|
-
_context8.next = _context8.t0 === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE ? 15 : _context8.t0 === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE ? 17 : _context8.t0 === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE ? 19 : _context8.t0 === _constants.SHARE_STATUS.NO_SHARE ?
|
|
3727
|
+
_context8.next = _context8.t0 === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE ? 15 : _context8.t0 === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE ? 17 : _context8.t0 === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE ? 19 : _context8.t0 === _constants.SHARE_STATUS.NO_SHARE ? 23 : 24;
|
|
3707
3728
|
break;
|
|
3708
3729
|
case 15:
|
|
3709
3730
|
_triggerProxy.default.trigger(_this15, {
|
|
3710
3731
|
file: 'meetings/index',
|
|
3711
3732
|
function: 'remoteShare'
|
|
3712
3733
|
}, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_REMOTE);
|
|
3713
|
-
return _context8.abrupt("break",
|
|
3734
|
+
return _context8.abrupt("break", 25);
|
|
3714
3735
|
case 17:
|
|
3715
3736
|
_triggerProxy.default.trigger(_this15, {
|
|
3716
3737
|
file: 'meeting/index',
|
|
@@ -3718,51 +3739,76 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3718
3739
|
}, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_LOCAL, {
|
|
3719
3740
|
reason: _constants.SHARE_STOPPED_REASON.SELF_STOPPED
|
|
3720
3741
|
});
|
|
3721
|
-
return _context8.abrupt("break",
|
|
3742
|
+
return _context8.abrupt("break", 25);
|
|
3722
3743
|
case 19:
|
|
3723
3744
|
_triggerProxy.default.trigger(_this15, {
|
|
3724
3745
|
file: 'meeting/index',
|
|
3725
3746
|
function: 'stopWhiteboardShare'
|
|
3726
3747
|
}, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_WHITEBOARD);
|
|
3727
|
-
|
|
3728
|
-
|
|
3729
|
-
|
|
3730
|
-
|
|
3731
|
-
|
|
3748
|
+
// @ts-ignore
|
|
3749
|
+
_this15.webex.internal.newMetrics.callDiagnosticLatencies.saveTimestamp({
|
|
3750
|
+
key: 'internal.client.share.stopped'
|
|
3751
|
+
});
|
|
3752
|
+
// @ts-ignore
|
|
3753
|
+
_this15.webex.internal.newMetrics.submitClientEvent({
|
|
3754
|
+
name: 'client.share.stopped',
|
|
3755
|
+
payload: {
|
|
3756
|
+
mediaType: 'whiteboard',
|
|
3757
|
+
shareDuration:
|
|
3758
|
+
// @ts-ignore
|
|
3759
|
+
_this15.webex.internal.newMetrics.callDiagnosticLatencies.getShareDuration()
|
|
3760
|
+
},
|
|
3761
|
+
options: {
|
|
3762
|
+
meetingId: _this15.id
|
|
3763
|
+
}
|
|
3764
|
+
});
|
|
3765
|
+
return _context8.abrupt("break", 25);
|
|
3732
3766
|
case 23:
|
|
3767
|
+
return _context8.abrupt("break", 25);
|
|
3768
|
+
case 24:
|
|
3769
|
+
return _context8.abrupt("break", 25);
|
|
3770
|
+
case 25:
|
|
3733
3771
|
_context8.t1 = newShareStatus;
|
|
3734
|
-
_context8.next = _context8.t1 === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE ?
|
|
3772
|
+
_context8.next = _context8.t1 === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE ? 28 : _context8.t1 === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE ? 37 : _context8.t1 === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE ? 40 : _context8.t1 === _constants.SHARE_STATUS.NO_SHARE ? 43 : 44;
|
|
3735
3773
|
break;
|
|
3736
|
-
case
|
|
3774
|
+
case 28:
|
|
3737
3775
|
sendStartedSharingRemote = function sendStartedSharingRemote() {
|
|
3776
|
+
var _this15$locusInfo2, _this15$locusInfo2$in, _this15$webinar2;
|
|
3738
3777
|
_this15.remoteShareInstanceId = contentShare.shareInstanceId;
|
|
3739
3778
|
_this15.shareCAEventSentStatus.receiveStart = false;
|
|
3740
3779
|
_this15.shareCAEventSentStatus.receiveStop = false;
|
|
3780
|
+
var finalBeneficiaryId = contentShare.beneficiaryId;
|
|
3781
|
+
// In case of attendee in webinar, the whiteboard is shared by other participants
|
|
3782
|
+
if ((_this15$locusInfo2 = _this15.locusInfo) !== null && _this15$locusInfo2 !== void 0 && (_this15$locusInfo2$in = _this15$locusInfo2.info) !== null && _this15$locusInfo2$in !== void 0 && _this15$locusInfo2$in.isWebinar && (_this15$webinar2 = _this15.webinar) !== null && _this15$webinar2 !== void 0 && _this15$webinar2.selfIsAttendee) {
|
|
3783
|
+
if (!finalBeneficiaryId && whiteboardShare.beneficiaryId) {
|
|
3784
|
+
finalBeneficiaryId = whiteboardShare.beneficiaryId;
|
|
3785
|
+
}
|
|
3786
|
+
}
|
|
3741
3787
|
_triggerProxy.default.trigger(_this15, {
|
|
3742
3788
|
file: 'meetings/index',
|
|
3743
3789
|
function: 'remoteShare'
|
|
3744
3790
|
}, _constants.EVENT_TRIGGERS.MEETING_STARTED_SHARING_REMOTE, {
|
|
3745
|
-
memberId:
|
|
3791
|
+
memberId: finalBeneficiaryId,
|
|
3746
3792
|
url: contentShare.url,
|
|
3747
3793
|
shareInstanceId: _this15.remoteShareInstanceId,
|
|
3748
3794
|
annotationInfo: contentShare.annotation,
|
|
3749
3795
|
resourceType: contentShare.resourceType
|
|
3750
3796
|
});
|
|
3751
3797
|
};
|
|
3752
|
-
_context8.prev =
|
|
3798
|
+
_context8.prev = 29;
|
|
3753
3799
|
if (!((_this15$mediaProperti = _this15.mediaProperties.mediaDirection) !== null && _this15$mediaProperti !== void 0 && _this15$mediaProperti.sendShare && oldShareStatus === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE)) {
|
|
3754
|
-
_context8.next =
|
|
3800
|
+
_context8.next = 33;
|
|
3755
3801
|
break;
|
|
3756
3802
|
}
|
|
3757
|
-
_context8.next =
|
|
3803
|
+
_context8.next = 33;
|
|
3758
3804
|
return _this15.unpublishStreams([_this15.mediaProperties.shareVideoStream, _this15.mediaProperties.shareAudioStream]);
|
|
3759
|
-
case
|
|
3760
|
-
_context8.prev =
|
|
3805
|
+
case 33:
|
|
3806
|
+
_context8.prev = 33;
|
|
3761
3807
|
sendStartedSharingRemote();
|
|
3762
|
-
return _context8.finish(
|
|
3763
|
-
case
|
|
3764
|
-
return _context8.abrupt("break",
|
|
3765
|
-
case
|
|
3808
|
+
return _context8.finish(33);
|
|
3809
|
+
case 36:
|
|
3810
|
+
return _context8.abrupt("break", 45);
|
|
3811
|
+
case 37:
|
|
3766
3812
|
_triggerProxy.default.trigger(_this15, {
|
|
3767
3813
|
file: 'meeting/index',
|
|
3768
3814
|
function: 'share'
|
|
@@ -3778,8 +3824,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3778
3824
|
meetingId: _this15.id
|
|
3779
3825
|
}
|
|
3780
3826
|
});
|
|
3781
|
-
return _context8.abrupt("break",
|
|
3782
|
-
case
|
|
3827
|
+
return _context8.abrupt("break", 45);
|
|
3828
|
+
case 40:
|
|
3783
3829
|
_triggerProxy.default.trigger(_this15, {
|
|
3784
3830
|
file: 'meeting/index',
|
|
3785
3831
|
function: 'startWhiteboardShare'
|
|
@@ -3797,16 +3843,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3797
3843
|
meetingId: _this15.id
|
|
3798
3844
|
}
|
|
3799
3845
|
});
|
|
3800
|
-
return _context8.abrupt("break",
|
|
3801
|
-
case 41:
|
|
3802
|
-
return _context8.abrupt("break", 43);
|
|
3803
|
-
case 42:
|
|
3804
|
-
return _context8.abrupt("break", 43);
|
|
3846
|
+
return _context8.abrupt("break", 45);
|
|
3805
3847
|
case 43:
|
|
3848
|
+
return _context8.abrupt("break", 45);
|
|
3849
|
+
case 44:
|
|
3850
|
+
return _context8.abrupt("break", 45);
|
|
3851
|
+
case 45:
|
|
3806
3852
|
_this15.members.locusMediaSharesUpdate(payload);
|
|
3807
|
-
_context8.next =
|
|
3853
|
+
_context8.next = 49;
|
|
3808
3854
|
break;
|
|
3809
|
-
case
|
|
3855
|
+
case 48:
|
|
3810
3856
|
if (newShareStatus === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE) {
|
|
3811
3857
|
// if we got here, then some remote participant has stolen
|
|
3812
3858
|
// the presentation from another remote participant
|
|
@@ -3846,14 +3892,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3846
3892
|
});
|
|
3847
3893
|
_this15.members.locusMediaSharesUpdate(payload);
|
|
3848
3894
|
}
|
|
3849
|
-
case
|
|
3895
|
+
case 49:
|
|
3850
3896
|
case "end":
|
|
3851
3897
|
return _context8.stop();
|
|
3852
3898
|
}
|
|
3853
|
-
}, _callee8, null, [[
|
|
3899
|
+
}, _callee8, null, [[29,, 33, 36]]);
|
|
3854
3900
|
}));
|
|
3855
3901
|
return function (_x8) {
|
|
3856
|
-
return
|
|
3902
|
+
return _ref32.apply(this, arguments);
|
|
3857
3903
|
};
|
|
3858
3904
|
}());
|
|
3859
3905
|
}
|
|
@@ -3871,20 +3917,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3871
3917
|
var _this16 = this;
|
|
3872
3918
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_URL, function (payload) {
|
|
3873
3919
|
var _this16$locusUrl;
|
|
3874
|
-
|
|
3875
|
-
|
|
3876
|
-
_this16.
|
|
3877
|
-
_this16.
|
|
3878
|
-
_this16.
|
|
3920
|
+
var url = payload.url,
|
|
3921
|
+
isMainLocus = payload.isMainLocus;
|
|
3922
|
+
_this16.members.locusUrlUpdate(url);
|
|
3923
|
+
_this16.breakouts.locusUrlUpdate(url);
|
|
3924
|
+
_this16.simultaneousInterpretation.locusUrlUpdate(url);
|
|
3925
|
+
_this16.annotation.locusUrlUpdate(url);
|
|
3926
|
+
_this16.locusUrl = url;
|
|
3879
3927
|
_this16.locusId = (_this16$locusUrl = _this16.locusUrl) === null || _this16$locusUrl === void 0 ? void 0 : _this16$locusUrl.split('/').pop();
|
|
3880
3928
|
_this16.recordingController.setLocusUrl(_this16.locusUrl);
|
|
3881
|
-
_this16.controlsOptionsManager.setLocusUrl(_this16.locusUrl);
|
|
3882
|
-
_this16.webinar.locusUrlUpdate(
|
|
3929
|
+
_this16.controlsOptionsManager.setLocusUrl(_this16.locusUrl, !!isMainLocus);
|
|
3930
|
+
_this16.webinar.locusUrlUpdate(url);
|
|
3883
3931
|
_triggerProxy.default.trigger(_this16, {
|
|
3884
3932
|
file: 'meeting/index',
|
|
3885
3933
|
function: 'setUpLocusSelfListener'
|
|
3886
3934
|
}, _constants.EVENT_TRIGGERS.MEETING_LOCUS_URL_UPDATE, {
|
|
3887
|
-
locusUrl:
|
|
3935
|
+
locusUrl: url
|
|
3888
3936
|
});
|
|
3889
3937
|
});
|
|
3890
3938
|
}
|
|
@@ -3967,8 +4015,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3967
4015
|
});
|
|
3968
4016
|
}
|
|
3969
4017
|
});
|
|
3970
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, function (
|
|
3971
|
-
var isInitializing =
|
|
4018
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, function (_ref33) {
|
|
4019
|
+
var isInitializing = _ref33.isInitializing;
|
|
3972
4020
|
_this19.updateMeetingActions();
|
|
3973
4021
|
_this19.recordingController.setDisplayHints(_this19.userDisplayHints);
|
|
3974
4022
|
_this19.recordingController.setUserPolicy(_this19.selfUserPolicies);
|
|
@@ -4106,7 +4154,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4106
4154
|
_this21.updateLLMConnection();
|
|
4107
4155
|
});
|
|
4108
4156
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ADMITTED_GUEST, /*#__PURE__*/function () {
|
|
4109
|
-
var
|
|
4157
|
+
var _ref34 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(payload) {
|
|
4110
4158
|
var _this21$rtcMetrics;
|
|
4111
4159
|
return _regenerator.default.wrap(function _callee9$(_context9) {
|
|
4112
4160
|
while (1) switch (_context9.prev = _context9.next) {
|
|
@@ -4140,7 +4188,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4140
4188
|
}, _callee9);
|
|
4141
4189
|
}));
|
|
4142
4190
|
return function (_x9) {
|
|
4143
|
-
return
|
|
4191
|
+
return _ref34.apply(this, arguments);
|
|
4144
4192
|
};
|
|
4145
4193
|
}());
|
|
4146
4194
|
|
|
@@ -4259,7 +4307,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4259
4307
|
}
|
|
4260
4308
|
});
|
|
4261
4309
|
this.locusInfo.on(_constants.EVENTS.DESTROY_MEETING, /*#__PURE__*/function () {
|
|
4262
|
-
var
|
|
4310
|
+
var _ref35 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(payload) {
|
|
4263
4311
|
return _regenerator.default.wrap(function _callee10$(_context10) {
|
|
4264
4312
|
while (1) switch (_context10.prev = _context10.next) {
|
|
4265
4313
|
case 0:
|
|
@@ -4319,7 +4367,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4319
4367
|
}, _callee10, null, [[8, 14]]);
|
|
4320
4368
|
}));
|
|
4321
4369
|
return function (_x10) {
|
|
4322
|
-
return
|
|
4370
|
+
return _ref35.apply(this, arguments);
|
|
4323
4371
|
};
|
|
4324
4372
|
}());
|
|
4325
4373
|
}
|
|
@@ -4667,6 +4715,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4667
4715
|
canPauseRecording: _util4.default.canUserPause(this.userDisplayHints, this.selfUserPolicies),
|
|
4668
4716
|
canResumeRecording: _util4.default.canUserResume(this.userDisplayHints, this.selfUserPolicies),
|
|
4669
4717
|
isPremiseRecordingEnabled: _util4.default.isPremiseRecordingEnabled(this.userDisplayHints, this.selfUserPolicies),
|
|
4718
|
+
showAutoEndMeetingWarning: _util2.default.showAutoEndMeetingWarning(this.userDisplayHints),
|
|
4670
4719
|
canRaiseHand: _util2.default.canUserRaiseHand(this.userDisplayHints),
|
|
4671
4720
|
canLowerAllHands: _util2.default.canUserLowerAllHands(this.userDisplayHints),
|
|
4672
4721
|
canLowerSomeoneElsesHand: _util2.default.canUserLowerSomeoneElsesHand(this.userDisplayHints),
|
|
@@ -4680,8 +4729,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4680
4729
|
isLocalRecordingStarted: _util2.default.isLocalRecordingStarted(this.userDisplayHints),
|
|
4681
4730
|
isLocalRecordingStopped: _util2.default.isLocalRecordingStopped(this.userDisplayHints),
|
|
4682
4731
|
isLocalRecordingPaused: _util2.default.isLocalRecordingPaused(this.userDisplayHints),
|
|
4732
|
+
isLocalStreamingStarted: _util2.default.isLocalStreamingStarted(this.userDisplayHints),
|
|
4733
|
+
isLocalStreamingStopped: _util2.default.isLocalStreamingStopped(this.userDisplayHints),
|
|
4683
4734
|
isManualCaptionActive: _util2.default.isManualCaptionActive(this.userDisplayHints),
|
|
4684
4735
|
isSaveTranscriptsEnabled: _util2.default.isSaveTranscriptsEnabled(this.userDisplayHints),
|
|
4736
|
+
isSpokenLanguageAutoDetectionEnabled: _util2.default.isSpokenLanguageAutoDetectionEnabled(this.userDisplayHints),
|
|
4685
4737
|
isWebexAssistantActive: _util2.default.isWebexAssistantActive(this.userDisplayHints),
|
|
4686
4738
|
canViewCaptionPanel: _util2.default.canViewCaptionPanel(this.userDisplayHints),
|
|
4687
4739
|
isRealTimeTranslationEnabled: _util2.default.isRealTimeTranslationEnabled(this.userDisplayHints),
|
|
@@ -7062,14 +7114,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7062
7114
|
}, {
|
|
7063
7115
|
key: "createStatsAnalyzer",
|
|
7064
7116
|
value: function createStatsAnalyzer() {
|
|
7117
|
+
var _this44 = this;
|
|
7065
7118
|
// @ts-ignore - config coming from registerPlugin
|
|
7066
7119
|
if (this.config.stats.enableStatsAnalyzer) {
|
|
7067
7120
|
// @ts-ignore - config coming from registerPlugin
|
|
7068
7121
|
this.networkQualityMonitor = new _internalMediaCore.NetworkQualityMonitor(this.config.stats);
|
|
7122
|
+
this.statsMonitor = new _internalMediaCore.StatsMonitor();
|
|
7069
7123
|
this.statsAnalyzer = new _internalMediaCore.StatsAnalyzer({
|
|
7070
7124
|
// @ts-ignore - config coming from registerPlugin
|
|
7071
7125
|
config: this.config.stats,
|
|
7072
7126
|
networkQualityMonitor: this.networkQualityMonitor,
|
|
7127
|
+
statsMonitor: this.statsMonitor,
|
|
7073
7128
|
isMultistream: this.isMultistream
|
|
7074
7129
|
});
|
|
7075
7130
|
this.shareCAEventSentStatus = {
|
|
@@ -7080,6 +7135,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7080
7135
|
};
|
|
7081
7136
|
this.setupStatsAnalyzerEventHandlers();
|
|
7082
7137
|
this.networkQualityMonitor.on(_internalMediaCore.NetworkQualityEventNames.NETWORK_QUALITY, this.sendNetworkQualityEvent.bind(this));
|
|
7138
|
+
this.statsMonitor.on(_internalMediaCore.StatsMonitorEventNames.INBOUND_AUDIO_ISSUE, function (data) {
|
|
7139
|
+
// Before forwarding any inbound audio issues to the app, make sure that we have at least one other
|
|
7140
|
+
// participant in the meeting with unmuted audio.
|
|
7141
|
+
// We don't check this.mediaProperties.mediaDirection here, because that's already handled in statsAnalyzer,
|
|
7142
|
+
// so we won't get this event if we are not setup to receive any audio
|
|
7143
|
+
var atLeastOneUnmutedOtherMember = (0, _values.default)(_this44.members.membersCollection.getAll()).find(function (member) {
|
|
7144
|
+
return !member.isSelf && !member.isPairedWithSelf && !member.isAudioMuted;
|
|
7145
|
+
});
|
|
7146
|
+
if (atLeastOneUnmutedOtherMember) {
|
|
7147
|
+
_this44.mediaProperties.sendMediaIssueMetric('inbound_audio', data.issueSubType, _this44.correlationId);
|
|
7148
|
+
_triggerProxy.default.trigger(_this44, {
|
|
7149
|
+
file: 'meeting/index',
|
|
7150
|
+
function: 'createStatsAnalyzer'
|
|
7151
|
+
}, _constants.EVENT_TRIGGERS.MEDIA_INBOUND_AUDIO_ISSUE_DETECTED, data);
|
|
7152
|
+
}
|
|
7153
|
+
});
|
|
7083
7154
|
}
|
|
7084
7155
|
}
|
|
7085
7156
|
|
|
@@ -7094,7 +7165,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7094
7165
|
key: "waitForRemoteSDPAnswer",
|
|
7095
7166
|
value: (function () {
|
|
7096
7167
|
var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25() {
|
|
7097
|
-
var
|
|
7168
|
+
var _this45 = this;
|
|
7098
7169
|
var LOG_HEADER, deferSDPAnswer;
|
|
7099
7170
|
return _regenerator.default.wrap(function _callee25$(_context25) {
|
|
7100
7171
|
while (1) switch (_context25.prev = _context25.next) {
|
|
@@ -7113,18 +7184,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7113
7184
|
var error = new Error('Timed out waiting for REMOTE SDP ANSWER');
|
|
7114
7185
|
|
|
7115
7186
|
// @ts-ignore
|
|
7116
|
-
|
|
7187
|
+
_this45.webex.internal.newMetrics.submitClientEvent({
|
|
7117
7188
|
name: 'client.media-engine.remote-sdp-received',
|
|
7118
7189
|
payload: {
|
|
7119
7190
|
canProceed: false,
|
|
7120
7191
|
errors: [
|
|
7121
7192
|
// @ts-ignore
|
|
7122
|
-
|
|
7193
|
+
_this45.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
|
|
7123
7194
|
clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
|
|
7124
7195
|
})]
|
|
7125
7196
|
},
|
|
7126
7197
|
options: {
|
|
7127
|
-
meetingId:
|
|
7198
|
+
meetingId: _this45.id,
|
|
7128
7199
|
rawError: error
|
|
7129
7200
|
}
|
|
7130
7201
|
});
|
|
@@ -7433,6 +7504,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7433
7504
|
key: "cleanUpOnAddMediaFailure",
|
|
7434
7505
|
value: (function () {
|
|
7435
7506
|
var _cleanUpOnAddMediaFailure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee31() {
|
|
7507
|
+
var _this$networkQualityM, _this$statsMonitor;
|
|
7436
7508
|
return _regenerator.default.wrap(function _callee31$(_context31) {
|
|
7437
7509
|
while (1) switch (_context31.prev = _context31.next) {
|
|
7438
7510
|
case 0:
|
|
@@ -7444,19 +7516,23 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7444
7516
|
return this.statsAnalyzer.stopAnalyzer();
|
|
7445
7517
|
case 3:
|
|
7446
7518
|
this.statsAnalyzer = null;
|
|
7519
|
+
(_this$networkQualityM = this.networkQualityMonitor) === null || _this$networkQualityM === void 0 ? void 0 : _this$networkQualityM.removeAllListeners();
|
|
7520
|
+
this.networkQualityMonitor = null;
|
|
7521
|
+
(_this$statsMonitor = this.statsMonitor) === null || _this$statsMonitor === void 0 ? void 0 : _this$statsMonitor.removeAllListeners();
|
|
7522
|
+
this.statsMonitor = null;
|
|
7447
7523
|
|
|
7448
7524
|
// when media fails, we want to upload a webrtc dump to see whats going on
|
|
7449
7525
|
// this function is async, but returns once the stats have been gathered
|
|
7450
|
-
_context31.next =
|
|
7526
|
+
_context31.next = 10;
|
|
7451
7527
|
return this.forceSendStatsReport({
|
|
7452
7528
|
callFrom: 'addMedia'
|
|
7453
7529
|
});
|
|
7454
|
-
case
|
|
7530
|
+
case 10:
|
|
7455
7531
|
if (this.mediaProperties.webrtcMediaConnection) {
|
|
7456
7532
|
this.closePeerConnections();
|
|
7457
7533
|
this.unsetPeerConnections();
|
|
7458
7534
|
}
|
|
7459
|
-
case
|
|
7535
|
+
case 11:
|
|
7460
7536
|
case "end":
|
|
7461
7537
|
return _context31.stop();
|
|
7462
7538
|
}
|
|
@@ -7479,7 +7555,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7479
7555
|
key: "downgradeFromMultistreamToTranscoded",
|
|
7480
7556
|
value: (function () {
|
|
7481
7557
|
var _downgradeFromMultistreamToTranscoded = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32() {
|
|
7482
|
-
var _this$locusMediaReque2;
|
|
7558
|
+
var _this$networkQualityM2, _this$statsMonitor2, _this$locusMediaReque2;
|
|
7483
7559
|
return _regenerator.default.wrap(function _callee32$(_context32) {
|
|
7484
7560
|
while (1) switch (_context32.prev = _context32.next) {
|
|
7485
7561
|
case 0:
|
|
@@ -7491,6 +7567,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7491
7567
|
return this.statsAnalyzer.stopAnalyzer();
|
|
7492
7568
|
case 3:
|
|
7493
7569
|
this.statsAnalyzer = null;
|
|
7570
|
+
(_this$networkQualityM2 = this.networkQualityMonitor) === null || _this$networkQualityM2 === void 0 ? void 0 : _this$networkQualityM2.removeAllListeners();
|
|
7571
|
+
this.networkQualityMonitor = null;
|
|
7572
|
+
(_this$statsMonitor2 = this.statsMonitor) === null || _this$statsMonitor2 === void 0 ? void 0 : _this$statsMonitor2.removeAllListeners();
|
|
7573
|
+
this.statsMonitor = null;
|
|
7494
7574
|
this.isMultistream = false;
|
|
7495
7575
|
if (this.mediaProperties.webrtcMediaConnection) {
|
|
7496
7576
|
// close peer connection, but don't reset mute state information, because we will want to use it on the retry
|
|
@@ -7499,7 +7579,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7499
7579
|
}
|
|
7500
7580
|
(_this$locusMediaReque2 = this.locusMediaRequest) === null || _this$locusMediaReque2 === void 0 ? void 0 : _this$locusMediaReque2.downgradeFromMultistreamToTranscoded();
|
|
7501
7581
|
this.createStatsAnalyzer();
|
|
7502
|
-
case
|
|
7582
|
+
case 12:
|
|
7503
7583
|
case "end":
|
|
7504
7584
|
return _context32.stop();
|
|
7505
7585
|
}
|
|
@@ -7631,10 +7711,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7631
7711
|
}, {
|
|
7632
7712
|
key: "addMedia",
|
|
7633
7713
|
value: function addMedia() {
|
|
7634
|
-
var
|
|
7714
|
+
var _this46 = this;
|
|
7635
7715
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7636
7716
|
return this.addMediaInternal(function () {
|
|
7637
|
-
return
|
|
7717
|
+
return _this46.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
|
7638
7718
|
}, undefined, false, options);
|
|
7639
7719
|
}
|
|
7640
7720
|
|
|
@@ -7677,6 +7757,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7677
7757
|
receiveVideo,
|
|
7678
7758
|
sendAudio,
|
|
7679
7759
|
receiveAudio,
|
|
7760
|
+
ipver,
|
|
7680
7761
|
_this$remoteMediaMana,
|
|
7681
7762
|
_yield$this$mediaProp,
|
|
7682
7763
|
connectionType,
|
|
@@ -7741,14 +7822,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7741
7822
|
receiveAudio = audioEnabled && (rawReceiveAudio !== null && rawReceiveAudio !== void 0 ? rawReceiveAudio : true);
|
|
7742
7823
|
this.allowMediaInLobby = options === null || options === void 0 ? void 0 : options.allowMediaInLobby;
|
|
7743
7824
|
|
|
7825
|
+
// @ts-ignore
|
|
7826
|
+
ipver = _util2.default.getIpVersion(this.webex); // used just for metrics
|
|
7744
7827
|
// If the user is unjoined or guest waiting in lobby dont allow the user to addMedia
|
|
7745
7828
|
// @ts-ignore - isUserUnadmitted coming from SelfUtil
|
|
7746
7829
|
if (!(this.isUserUnadmitted && !this.wirelessShare && !this.allowMediaInLobby)) {
|
|
7747
|
-
_context35.next =
|
|
7830
|
+
_context35.next = 20;
|
|
7748
7831
|
break;
|
|
7749
7832
|
}
|
|
7750
7833
|
throw new _webexErrors.UserInLobbyError();
|
|
7751
|
-
case
|
|
7834
|
+
case 20:
|
|
7752
7835
|
// @ts-ignore
|
|
7753
7836
|
this.webex.internal.newMetrics.submitClientEvent({
|
|
7754
7837
|
name: 'client.media.capabilities',
|
|
@@ -7788,63 +7871,64 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7788
7871
|
this.audio = (0, _muteState.createMuteState)(_constants.AUDIO, this, audioEnabled);
|
|
7789
7872
|
this.video = (0, _muteState.createMuteState)(_constants.VIDEO, this, videoEnabled);
|
|
7790
7873
|
this.brbState = (0, _brbState.createBrbState)(this, false);
|
|
7791
|
-
_context35.prev =
|
|
7792
|
-
_context35.next =
|
|
7874
|
+
_context35.prev = 25;
|
|
7875
|
+
_context35.next = 28;
|
|
7793
7876
|
return this.setUpLocalStreamReferences(localStreams);
|
|
7794
|
-
case
|
|
7877
|
+
case 28:
|
|
7795
7878
|
this.setMercuryListener();
|
|
7796
7879
|
this.createStatsAnalyzer();
|
|
7797
|
-
_context35.prev =
|
|
7798
|
-
_context35.next =
|
|
7880
|
+
_context35.prev = 30;
|
|
7881
|
+
_context35.next = 33;
|
|
7799
7882
|
return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, forceTurnDiscovery, turnServerInfo);
|
|
7800
|
-
case
|
|
7801
|
-
_context35.next =
|
|
7883
|
+
case 33:
|
|
7884
|
+
_context35.next = 46;
|
|
7802
7885
|
break;
|
|
7803
|
-
case
|
|
7804
|
-
_context35.prev =
|
|
7805
|
-
_context35.t0 = _context35["catch"](
|
|
7886
|
+
case 35:
|
|
7887
|
+
_context35.prev = 35;
|
|
7888
|
+
_context35.t0 = _context35["catch"](30);
|
|
7806
7889
|
if (!(_context35.t0 instanceof _multistreamNotSupportedError.default)) {
|
|
7807
|
-
_context35.next =
|
|
7890
|
+
_context35.next = 45;
|
|
7808
7891
|
break;
|
|
7809
7892
|
}
|
|
7810
7893
|
_loggerProxy.default.logger.warn("".concat(LOG_HEADER, " we asked for multistream backend (Homer), but got transcoded backend, recreating media connection..."));
|
|
7811
|
-
_context35.next =
|
|
7894
|
+
_context35.next = 41;
|
|
7812
7895
|
return this.downgradeFromMultistreamToTranscoded();
|
|
7813
|
-
case
|
|
7814
|
-
_context35.next =
|
|
7896
|
+
case 41:
|
|
7897
|
+
_context35.next = 43;
|
|
7815
7898
|
return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, true, undefined);
|
|
7816
|
-
case
|
|
7817
|
-
_context35.next =
|
|
7899
|
+
case 43:
|
|
7900
|
+
_context35.next = 46;
|
|
7818
7901
|
break;
|
|
7819
|
-
case 44:
|
|
7820
|
-
throw _context35.t0;
|
|
7821
7902
|
case 45:
|
|
7903
|
+
throw _context35.t0;
|
|
7904
|
+
case 46:
|
|
7822
7905
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " media connected, finalizing..."));
|
|
7823
7906
|
if (!this.mediaProperties.hasLocalShareStream()) {
|
|
7824
|
-
_context35.next =
|
|
7907
|
+
_context35.next = 50;
|
|
7825
7908
|
break;
|
|
7826
7909
|
}
|
|
7827
|
-
_context35.next =
|
|
7910
|
+
_context35.next = 50;
|
|
7828
7911
|
return this.enqueueScreenShareFloorRequest();
|
|
7829
|
-
case
|
|
7830
|
-
_context35.next =
|
|
7912
|
+
case 50:
|
|
7913
|
+
_context35.next = 52;
|
|
7831
7914
|
return this.mediaProperties.getCurrentConnectionInfo();
|
|
7832
|
-
case
|
|
7915
|
+
case 52:
|
|
7833
7916
|
_yield$this$mediaProp = _context35.sent;
|
|
7834
7917
|
connectionType = _yield$this$mediaProp.connectionType;
|
|
7835
7918
|
ipVersion = _yield$this$mediaProp.ipVersion;
|
|
7836
7919
|
selectedCandidatePairChanges = _yield$this$mediaProp.selectedCandidatePairChanges;
|
|
7837
7920
|
numTransports = _yield$this$mediaProp.numTransports;
|
|
7838
7921
|
iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
|
|
7839
|
-
_context35.next =
|
|
7922
|
+
_context35.next = 60;
|
|
7840
7923
|
return this.getMediaReachabilityMetricFields();
|
|
7841
|
-
case
|
|
7924
|
+
case 60:
|
|
7842
7925
|
reachabilityMetrics = _context35.sent;
|
|
7843
7926
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, _objectSpread(_objectSpread(_objectSpread({
|
|
7844
7927
|
correlation_id: this.correlationId,
|
|
7845
7928
|
locus_id: this.locusUrl.split('/').pop(),
|
|
7846
7929
|
connectionType: connectionType,
|
|
7847
7930
|
ipVersion: ipVersion,
|
|
7931
|
+
ipver: ipver,
|
|
7848
7932
|
selectedCandidatePairChanges: selectedCandidatePairChanges,
|
|
7849
7933
|
numTransports: numTransports,
|
|
7850
7934
|
isMultistream: this.isMultistream,
|
|
@@ -7868,21 +7952,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7868
7952
|
// We can log ReceiveSlot SSRCs only after the SDP exchange, so doing it here:
|
|
7869
7953
|
(_this$remoteMediaMana = this.remoteMediaManager) === null || _this$remoteMediaMana === void 0 ? void 0 : _this$remoteMediaMana.logAllReceiveSlots();
|
|
7870
7954
|
this.startPeriodicLogUpload();
|
|
7871
|
-
_context35.next =
|
|
7955
|
+
_context35.next = 86;
|
|
7872
7956
|
break;
|
|
7873
|
-
case
|
|
7874
|
-
_context35.prev =
|
|
7875
|
-
_context35.t1 = _context35["catch"](
|
|
7957
|
+
case 68:
|
|
7958
|
+
_context35.prev = 68;
|
|
7959
|
+
_context35.t1 = _context35["catch"](25);
|
|
7876
7960
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context35.t1);
|
|
7877
7961
|
|
|
7878
7962
|
// @ts-ignore
|
|
7879
|
-
_context35.next =
|
|
7963
|
+
_context35.next = 73;
|
|
7880
7964
|
return this.getMediaReachabilityMetricFields();
|
|
7881
|
-
case
|
|
7965
|
+
case 73:
|
|
7882
7966
|
_reachabilityMetrics = _context35.sent;
|
|
7883
|
-
_context35.next =
|
|
7967
|
+
_context35.next = 76;
|
|
7884
7968
|
return this.mediaProperties.getCurrentConnectionInfo();
|
|
7885
|
-
case
|
|
7969
|
+
case 76:
|
|
7886
7970
|
_yield$this$mediaProp2 = _context35.sent;
|
|
7887
7971
|
_selectedCandidatePairChanges = _yield$this$mediaProp2.selectedCandidatePairChanges;
|
|
7888
7972
|
_numTransports = _yield$this$mediaProp2.numTransports;
|
|
@@ -7904,11 +7988,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7904
7988
|
connectionState: ((_this$mediaProperties22 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties22 === void 0 ? void 0 : (_this$mediaProperties23 = _this$mediaProperties22.multistreamConnection) === null || _this$mediaProperties23 === void 0 ? void 0 : (_this$mediaProperties24 = _this$mediaProperties23.pc) === null || _this$mediaProperties24 === void 0 ? void 0 : (_this$mediaProperties25 = _this$mediaProperties24.pc) === null || _this$mediaProperties25 === void 0 ? void 0 : _this$mediaProperties25.connectionState) || ((_this$mediaProperties26 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties26 === void 0 ? void 0 : (_this$mediaProperties27 = _this$mediaProperties26.mediaConnection) === null || _this$mediaProperties27 === void 0 ? void 0 : (_this$mediaProperties28 = _this$mediaProperties27.pc) === null || _this$mediaProperties28 === void 0 ? void 0 : _this$mediaProperties28.connectionState) || 'unknown',
|
|
7905
7989
|
iceConnectionState: ((_this$mediaProperties29 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties29 === void 0 ? void 0 : (_this$mediaProperties30 = _this$mediaProperties29.multistreamConnection) === null || _this$mediaProperties30 === void 0 ? void 0 : (_this$mediaProperties31 = _this$mediaProperties30.pc) === null || _this$mediaProperties31 === void 0 ? void 0 : (_this$mediaProperties32 = _this$mediaProperties31.pc) === null || _this$mediaProperties32 === void 0 ? void 0 : _this$mediaProperties32.iceConnectionState) || ((_this$mediaProperties33 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties33 === void 0 ? void 0 : (_this$mediaProperties34 = _this$mediaProperties33.mediaConnection) === null || _this$mediaProperties34 === void 0 ? void 0 : (_this$mediaProperties35 = _this$mediaProperties34.pc) === null || _this$mediaProperties35 === void 0 ? void 0 : _this$mediaProperties35.iceConnectionState) || 'unknown'
|
|
7906
7990
|
}, _reachabilityMetrics), _iceCandidateErrors), {}, {
|
|
7907
|
-
iceCandidatesCount: this.iceCandidatesCount
|
|
7991
|
+
iceCandidatesCount: this.iceCandidatesCount,
|
|
7992
|
+
ipver: ipver
|
|
7908
7993
|
}));
|
|
7909
|
-
_context35.next =
|
|
7994
|
+
_context35.next = 83;
|
|
7910
7995
|
return this.cleanUpOnAddMediaFailure();
|
|
7911
|
-
case
|
|
7996
|
+
case 83:
|
|
7912
7997
|
// Upload logs on error while adding media
|
|
7913
7998
|
_triggerProxy.default.trigger(this, {
|
|
7914
7999
|
file: 'meeting/index',
|
|
@@ -7920,15 +8005,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7920
8005
|
});
|
|
7921
8006
|
}
|
|
7922
8007
|
throw _context35.t1;
|
|
7923
|
-
case
|
|
7924
|
-
_context35.prev =
|
|
8008
|
+
case 86:
|
|
8009
|
+
_context35.prev = 86;
|
|
7925
8010
|
this.addMediaData.icePhaseCallback = DEFAULT_ICE_PHASE_CALLBACK;
|
|
7926
|
-
return _context35.finish(
|
|
7927
|
-
case
|
|
8011
|
+
return _context35.finish(86);
|
|
8012
|
+
case 89:
|
|
7928
8013
|
case "end":
|
|
7929
8014
|
return _context35.stop();
|
|
7930
8015
|
}
|
|
7931
|
-
}, _callee35, this, [[
|
|
8016
|
+
}, _callee35, this, [[25, 68, 86, 89], [30, 35]]);
|
|
7932
8017
|
}));
|
|
7933
8018
|
function addMediaInternal(_x33, _x34, _x35) {
|
|
7934
8019
|
return _addMediaInternal.apply(this, arguments);
|
|
@@ -7960,7 +8045,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7960
8045
|
* @memberof Meeting
|
|
7961
8046
|
*/
|
|
7962
8047
|
function enqueueMediaUpdate(mediaUpdateType) {
|
|
7963
|
-
var
|
|
8048
|
+
var _this47 = this;
|
|
7964
8049
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
7965
8050
|
var canUpdateMediaNow = this.canUpdateMedia();
|
|
7966
8051
|
return new _promise.default(function (resolve, reject) {
|
|
@@ -7971,9 +8056,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7971
8056
|
options: options
|
|
7972
8057
|
};
|
|
7973
8058
|
_loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
|
|
7974
|
-
|
|
8059
|
+
_this47.queuedMediaUpdates.push(queueItem);
|
|
7975
8060
|
if (canUpdateMediaNow) {
|
|
7976
|
-
|
|
8061
|
+
_this47.processNextQueuedMediaUpdate();
|
|
7977
8062
|
}
|
|
7978
8063
|
});
|
|
7979
8064
|
}
|
|
@@ -8078,7 +8163,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8078
8163
|
}, {
|
|
8079
8164
|
key: "acknowledge",
|
|
8080
8165
|
value: function acknowledge(type) {
|
|
8081
|
-
var
|
|
8166
|
+
var _this48 = this;
|
|
8082
8167
|
if (!type) {
|
|
8083
8168
|
return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
|
|
8084
8169
|
}
|
|
@@ -8090,12 +8175,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8090
8175
|
}).then(function (response) {
|
|
8091
8176
|
return _promise.default.resolve(response);
|
|
8092
8177
|
}).then(function (response) {
|
|
8093
|
-
|
|
8178
|
+
_this48.meetingFiniteStateMachine.ring(type);
|
|
8094
8179
|
// @ts-ignore
|
|
8095
|
-
|
|
8180
|
+
_this48.webex.internal.newMetrics.submitClientEvent({
|
|
8096
8181
|
name: 'client.alert.displayed',
|
|
8097
8182
|
options: {
|
|
8098
|
-
meetingId:
|
|
8183
|
+
meetingId: _this48.id
|
|
8099
8184
|
}
|
|
8100
8185
|
});
|
|
8101
8186
|
return _promise.default.resolve({
|
|
@@ -8120,12 +8205,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8120
8205
|
}, {
|
|
8121
8206
|
key: "decline",
|
|
8122
8207
|
value: function decline(reason) {
|
|
8123
|
-
var
|
|
8208
|
+
var _this49 = this;
|
|
8124
8209
|
return _util2.default.declineMeeting(this, reason).then(function (decline) {
|
|
8125
|
-
|
|
8210
|
+
_this49.meetingFiniteStateMachine.decline();
|
|
8126
8211
|
return _promise.default.resolve(decline);
|
|
8127
8212
|
}).catch(function (error) {
|
|
8128
|
-
|
|
8213
|
+
_this49.meetingFiniteStateMachine.fail(error);
|
|
8129
8214
|
return _promise.default.reject(error);
|
|
8130
8215
|
});
|
|
8131
8216
|
}
|
|
@@ -8176,7 +8261,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8176
8261
|
}, {
|
|
8177
8262
|
key: "leave",
|
|
8178
8263
|
value: function leave() {
|
|
8179
|
-
var
|
|
8264
|
+
var _this50 = this;
|
|
8180
8265
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
8181
8266
|
var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
|
|
8182
8267
|
|
|
@@ -8188,7 +8273,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8188
8273
|
var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
8189
8274
|
return (
|
|
8190
8275
|
// @ts-ignore
|
|
8191
|
-
|
|
8276
|
+
_this50.webex.internal.newMetrics.submitClientEvent({
|
|
8192
8277
|
name: 'client.call.leave',
|
|
8193
8278
|
payload: _objectSpread({
|
|
8194
8279
|
trigger: 'user-interaction',
|
|
@@ -8196,7 +8281,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8196
8281
|
leaveReason: options.clientEventLeaveReason
|
|
8197
8282
|
}, payload),
|
|
8198
8283
|
options: {
|
|
8199
|
-
meetingId:
|
|
8284
|
+
meetingId: _this50.id
|
|
8200
8285
|
}
|
|
8201
8286
|
})
|
|
8202
8287
|
);
|
|
@@ -8205,24 +8290,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8205
8290
|
return _util2.default.leaveMeeting(this, options).then(function (leave) {
|
|
8206
8291
|
// CA team recommends submitting this *after* locus /leave
|
|
8207
8292
|
submitLeaveMetric();
|
|
8208
|
-
|
|
8209
|
-
|
|
8293
|
+
_this50.meetingFiniteStateMachine.leave();
|
|
8294
|
+
_this50.clearMeetingData();
|
|
8210
8295
|
|
|
8211
8296
|
// upload logs on leave irrespective of meeting delete
|
|
8212
|
-
_triggerProxy.default.trigger(
|
|
8297
|
+
_triggerProxy.default.trigger(_this50, {
|
|
8213
8298
|
file: 'meeting/index',
|
|
8214
8299
|
function: 'leave'
|
|
8215
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
8300
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this50);
|
|
8216
8301
|
|
|
8217
8302
|
// TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
|
|
8218
|
-
if (
|
|
8303
|
+
if (_this50.wirelessShare || _this50.guest) {
|
|
8219
8304
|
// If screen sharing clean the meeting object
|
|
8220
|
-
_triggerProxy.default.trigger(
|
|
8305
|
+
_triggerProxy.default.trigger(_this50, {
|
|
8221
8306
|
file: 'meeting/index',
|
|
8222
8307
|
function: 'leave'
|
|
8223
8308
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
|
8224
8309
|
reason: options.reason,
|
|
8225
|
-
meetingId:
|
|
8310
|
+
meetingId: _this50.id
|
|
8226
8311
|
});
|
|
8227
8312
|
}
|
|
8228
8313
|
_loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
|
|
@@ -8239,16 +8324,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8239
8324
|
shownToUser: false
|
|
8240
8325
|
}]
|
|
8241
8326
|
});
|
|
8242
|
-
|
|
8327
|
+
_this50.meetingFiniteStateMachine.fail(error);
|
|
8243
8328
|
_loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
|
|
8244
8329
|
// upload logs on leave irrespective of meeting delete
|
|
8245
|
-
_triggerProxy.default.trigger(
|
|
8330
|
+
_triggerProxy.default.trigger(_this50, {
|
|
8246
8331
|
file: 'meeting/index',
|
|
8247
8332
|
function: 'leave'
|
|
8248
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
8333
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this50);
|
|
8249
8334
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
|
|
8250
|
-
correlation_id:
|
|
8251
|
-
locus_id:
|
|
8335
|
+
correlation_id: _this50.correlationId,
|
|
8336
|
+
locus_id: _this50.locusUrl.split('/').pop(),
|
|
8252
8337
|
reason: error.message,
|
|
8253
8338
|
stack: error.stack,
|
|
8254
8339
|
code: error.code
|
|
@@ -8268,7 +8353,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8268
8353
|
}, {
|
|
8269
8354
|
key: "startWhiteboardShare",
|
|
8270
8355
|
value: function startWhiteboardShare(channelUrl, resourceToken) {
|
|
8271
|
-
var
|
|
8356
|
+
var _this51 = this;
|
|
8272
8357
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
8273
8358
|
return element.name === 'whiteboard';
|
|
8274
8359
|
});
|
|
@@ -8301,13 +8386,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8301
8386
|
body.resourceToken = resourceToken;
|
|
8302
8387
|
}
|
|
8303
8388
|
return this.meetingRequest.changeMeetingFloor(body).then(function () {
|
|
8304
|
-
|
|
8389
|
+
_this51.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
|
8305
8390
|
return _promise.default.resolve();
|
|
8306
8391
|
}).catch(function (error) {
|
|
8307
8392
|
_loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
|
|
8308
8393
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
|
|
8309
|
-
correlation_id:
|
|
8310
|
-
locus_id:
|
|
8394
|
+
correlation_id: _this51.correlationId,
|
|
8395
|
+
locus_id: _this51.locusUrl.split('/').pop(),
|
|
8311
8396
|
reason: error.message,
|
|
8312
8397
|
stack: error.stack,
|
|
8313
8398
|
board: {
|
|
@@ -8330,7 +8415,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8330
8415
|
}, {
|
|
8331
8416
|
key: "stopWhiteboardShare",
|
|
8332
8417
|
value: function stopWhiteboardShare(channelUrl) {
|
|
8333
|
-
var
|
|
8418
|
+
var _this52 = this;
|
|
8334
8419
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
8335
8420
|
return element.name === 'whiteboard';
|
|
8336
8421
|
});
|
|
@@ -8359,8 +8444,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8359
8444
|
}).catch(function (error) {
|
|
8360
8445
|
_loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
|
|
8361
8446
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
|
|
8362
|
-
correlation_id:
|
|
8363
|
-
locus_id:
|
|
8447
|
+
correlation_id: _this52.correlationId,
|
|
8448
|
+
locus_id: _this52.locusUrl.split('/').pop(),
|
|
8364
8449
|
reason: error.message,
|
|
8365
8450
|
stack: error.stack,
|
|
8366
8451
|
board: {
|
|
@@ -8382,7 +8467,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8382
8467
|
}, {
|
|
8383
8468
|
key: "requestScreenShareFloor",
|
|
8384
8469
|
value: function requestScreenShareFloor() {
|
|
8385
|
-
var
|
|
8470
|
+
var _this53 = this;
|
|
8386
8471
|
if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
|
|
8387
8472
|
_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, ")"));
|
|
8388
8473
|
this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
|
@@ -8413,34 +8498,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8413
8498
|
resourceUrl: this.resourceUrl,
|
|
8414
8499
|
shareInstanceId: this.localShareInstanceId
|
|
8415
8500
|
}).then(function () {
|
|
8416
|
-
|
|
8501
|
+
_this53.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
|
|
8417
8502
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
|
|
8418
|
-
correlation_id:
|
|
8419
|
-
locus_id:
|
|
8503
|
+
correlation_id: _this53.correlationId,
|
|
8504
|
+
locus_id: _this53.locusUrl.split('/').pop()
|
|
8420
8505
|
});
|
|
8421
8506
|
return _promise.default.resolve();
|
|
8422
8507
|
}).catch(function (error) {
|
|
8423
8508
|
_loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
|
|
8424
8509
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
|
|
8425
|
-
correlation_id:
|
|
8426
|
-
locus_id:
|
|
8510
|
+
correlation_id: _this53.correlationId,
|
|
8511
|
+
locus_id: _this53.locusUrl.split('/').pop(),
|
|
8427
8512
|
reason: error.message,
|
|
8428
8513
|
stack: error.stack
|
|
8429
8514
|
});
|
|
8430
8515
|
|
|
8431
8516
|
// @ts-ignore
|
|
8432
|
-
|
|
8517
|
+
_this53.webex.internal.newMetrics.submitClientEvent({
|
|
8433
8518
|
name: 'client.share.floor-granted.local',
|
|
8434
8519
|
payload: {
|
|
8435
8520
|
mediaType: 'share',
|
|
8436
8521
|
errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
|
|
8437
|
-
shareInstanceId:
|
|
8522
|
+
shareInstanceId: _this53.localShareInstanceId
|
|
8438
8523
|
},
|
|
8439
8524
|
options: {
|
|
8440
|
-
meetingId:
|
|
8525
|
+
meetingId: _this53.id
|
|
8441
8526
|
}
|
|
8442
8527
|
});
|
|
8443
|
-
|
|
8528
|
+
_this53.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
|
8444
8529
|
return _promise.default.reject(error);
|
|
8445
8530
|
});
|
|
8446
8531
|
}
|
|
@@ -8463,10 +8548,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8463
8548
|
}, {
|
|
8464
8549
|
key: "requestScreenShareFloorIfPending",
|
|
8465
8550
|
value: function requestScreenShareFloorIfPending() {
|
|
8466
|
-
var
|
|
8551
|
+
var _this54 = this;
|
|
8467
8552
|
if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
|
|
8468
8553
|
this.requestScreenShareFloor().then(function () {
|
|
8469
|
-
|
|
8554
|
+
_this54.floorGrantPending = false;
|
|
8470
8555
|
});
|
|
8471
8556
|
}
|
|
8472
8557
|
}
|
|
@@ -8480,7 +8565,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8480
8565
|
}, {
|
|
8481
8566
|
key: "releaseScreenShareFloor",
|
|
8482
8567
|
value: function releaseScreenShareFloor() {
|
|
8483
|
-
var
|
|
8568
|
+
var _this55 = this;
|
|
8484
8569
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
|
8485
8570
|
return element.name === _constants.CONTENT;
|
|
8486
8571
|
});
|
|
@@ -8521,8 +8606,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8521
8606
|
}).catch(function (error) {
|
|
8522
8607
|
_loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
|
|
8523
8608
|
_metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
|
|
8524
|
-
correlation_id:
|
|
8525
|
-
locus_id:
|
|
8609
|
+
correlation_id: _this55.correlationId,
|
|
8610
|
+
locus_id: _this55.locusUrl.split('/').pop(),
|
|
8526
8611
|
reason: error.message,
|
|
8527
8612
|
stack: error.stack
|
|
8528
8613
|
});
|
|
@@ -8702,7 +8787,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8702
8787
|
}, {
|
|
8703
8788
|
key: "changeVideoLayout",
|
|
8704
8789
|
value: function changeVideoLayout(layoutType) {
|
|
8705
|
-
var
|
|
8790
|
+
var _this56 = this;
|
|
8706
8791
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
8707
8792
|
var main = renderInfo.main,
|
|
8708
8793
|
content = renderInfo.content;
|
|
@@ -8756,7 +8841,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8756
8841
|
}
|
|
8757
8842
|
this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
|
|
8758
8843
|
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
|
|
8759
|
-
_triggerProxy.default.trigger(
|
|
8844
|
+
_triggerProxy.default.trigger(_this56, {
|
|
8760
8845
|
file: 'meeting/index',
|
|
8761
8846
|
function: 'changeVideoLayout'
|
|
8762
8847
|
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
|
|
@@ -8872,7 +8957,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8872
8957
|
}, {
|
|
8873
8958
|
key: "endMeetingForAll",
|
|
8874
8959
|
value: function endMeetingForAll() {
|
|
8875
|
-
var
|
|
8960
|
+
var _this57 = this;
|
|
8876
8961
|
// @ts-ignore
|
|
8877
8962
|
this.webex.internal.newMetrics.submitClientEvent({
|
|
8878
8963
|
name: 'client.call.leave',
|
|
@@ -8890,25 +8975,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8890
8975
|
locus_id: this.locusId
|
|
8891
8976
|
});
|
|
8892
8977
|
return _util2.default.endMeetingForAll(this).then(function (end) {
|
|
8893
|
-
|
|
8894
|
-
|
|
8978
|
+
_this57.meetingFiniteStateMachine.end();
|
|
8979
|
+
_this57.clearMeetingData();
|
|
8895
8980
|
// upload logs on leave irrespective of meeting delete
|
|
8896
|
-
_triggerProxy.default.trigger(
|
|
8981
|
+
_triggerProxy.default.trigger(_this57, {
|
|
8897
8982
|
file: 'meeting/index',
|
|
8898
8983
|
function: 'endMeetingForAll'
|
|
8899
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
8984
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this57);
|
|
8900
8985
|
return end;
|
|
8901
8986
|
}).catch(function (error) {
|
|
8902
|
-
|
|
8987
|
+
_this57.meetingFiniteStateMachine.fail(error);
|
|
8903
8988
|
_loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
|
|
8904
8989
|
// upload logs on leave irrespective of meeting delete
|
|
8905
|
-
_triggerProxy.default.trigger(
|
|
8990
|
+
_triggerProxy.default.trigger(_this57, {
|
|
8906
8991
|
file: 'meeting/index',
|
|
8907
8992
|
function: 'endMeetingForAll'
|
|
8908
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
8993
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this57);
|
|
8909
8994
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
|
|
8910
|
-
correlation_id:
|
|
8911
|
-
locus_id:
|
|
8995
|
+
correlation_id: _this57.correlationId,
|
|
8996
|
+
locus_id: _this57.locusUrl.split('/').pop(),
|
|
8912
8997
|
reason: error.message,
|
|
8913
8998
|
stack: error.stack,
|
|
8914
8999
|
code: error.code
|
|
@@ -8950,6 +9035,36 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8950
9035
|
return _promise.default.reject(new Error('Error sending reaction, service url not found.'));
|
|
8951
9036
|
}
|
|
8952
9037
|
|
|
9038
|
+
/**
|
|
9039
|
+
* Extend the current meeting duration.
|
|
9040
|
+
*
|
|
9041
|
+
* @param {number} extensionMinutes - how many minutes to extend
|
|
9042
|
+
* @returns {Promise}
|
|
9043
|
+
* @public
|
|
9044
|
+
* @memberof Meeting
|
|
9045
|
+
*/
|
|
9046
|
+
}, {
|
|
9047
|
+
key: "extendMeeting",
|
|
9048
|
+
value: function extendMeeting(_ref38) {
|
|
9049
|
+
var meetingPolicyUrl = _ref38.meetingPolicyUrl,
|
|
9050
|
+
meetingInstanceId = _ref38.meetingInstanceId,
|
|
9051
|
+
participantId = _ref38.participantId,
|
|
9052
|
+
_ref38$extensionMinut = _ref38.extensionMinutes,
|
|
9053
|
+
extensionMinutes = _ref38$extensionMinut === void 0 ? 30 : _ref38$extensionMinut;
|
|
9054
|
+
if (!meetingInstanceId || !participantId) {
|
|
9055
|
+
return _promise.default.reject(new Error('Missing meetingInstanceId or participantId'));
|
|
9056
|
+
}
|
|
9057
|
+
if (!meetingPolicyUrl) {
|
|
9058
|
+
return _promise.default.reject(new Error('Missing meetingPolicyUrl'));
|
|
9059
|
+
}
|
|
9060
|
+
return this.meetingRequest.extendMeeting({
|
|
9061
|
+
meetingInstanceId: meetingInstanceId,
|
|
9062
|
+
participantId: participantId,
|
|
9063
|
+
extensionMinutes: extensionMinutes,
|
|
9064
|
+
meetingPolicyUrl: meetingPolicyUrl
|
|
9065
|
+
});
|
|
9066
|
+
}
|
|
9067
|
+
|
|
8953
9068
|
/**
|
|
8954
9069
|
* Method to enable or disable reactions inside the meeting.
|
|
8955
9070
|
*
|
|
@@ -9069,7 +9184,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
9069
9184
|
_this$mediaProperties43,
|
|
9070
9185
|
_this$mediaProperties44,
|
|
9071
9186
|
_this$mediaProperties45,
|
|
9072
|
-
|
|
9187
|
+
_this58 = this;
|
|
9073
9188
|
var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
|
|
9074
9189
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
|
|
9075
9190
|
if (!this.canUpdateMedia()) {
|
|
@@ -9094,8 +9209,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
9094
9209
|
}).catch(function (error) {
|
|
9095
9210
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
|
|
9096
9211
|
_metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
|
|
9097
|
-
correlation_id:
|
|
9098
|
-
locus_id:
|
|
9212
|
+
correlation_id: _this58.correlationId,
|
|
9213
|
+
locus_id: _this58.locusUrl.split('/').pop(),
|
|
9099
9214
|
reason: error.message,
|
|
9100
9215
|
stack: error.stack
|
|
9101
9216
|
});
|
|
@@ -9549,17 +9664,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
9549
9664
|
}, {
|
|
9550
9665
|
key: "setStage",
|
|
9551
9666
|
value: function setStage() {
|
|
9552
|
-
var
|
|
9553
|
-
|
|
9554
|
-
activeSpeakerProportion =
|
|
9555
|
-
customBackground =
|
|
9556
|
-
customLogo =
|
|
9557
|
-
customNameLabel =
|
|
9558
|
-
importantParticipants =
|
|
9559
|
-
|
|
9560
|
-
lockAttendeeViewOnStage =
|
|
9561
|
-
|
|
9562
|
-
showActiveSpeaker =
|
|
9667
|
+
var _ref39 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
9668
|
+
_ref39$activeSpeakerP = _ref39.activeSpeakerProportion,
|
|
9669
|
+
activeSpeakerProportion = _ref39$activeSpeakerP === void 0 ? 0.5 : _ref39$activeSpeakerP,
|
|
9670
|
+
customBackground = _ref39.customBackground,
|
|
9671
|
+
customLogo = _ref39.customLogo,
|
|
9672
|
+
customNameLabel = _ref39.customNameLabel,
|
|
9673
|
+
importantParticipants = _ref39.importantParticipants,
|
|
9674
|
+
_ref39$lockAttendeeVi = _ref39.lockAttendeeViewOnStage,
|
|
9675
|
+
lockAttendeeViewOnStage = _ref39$lockAttendeeVi === void 0 ? false : _ref39$lockAttendeeVi,
|
|
9676
|
+
_ref39$showActiveSpea = _ref39.showActiveSpeaker,
|
|
9677
|
+
showActiveSpeaker = _ref39$showActiveSpea === void 0 ? false : _ref39$showActiveSpea;
|
|
9563
9678
|
var videoLayout = {
|
|
9564
9679
|
overrideDefault: true,
|
|
9565
9680
|
lockAttendeeViewOnStageOnly: lockAttendeeViewOnStage,
|
|
@@ -9616,6 +9731,45 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
9616
9731
|
};
|
|
9617
9732
|
return this.meetingRequest.synchronizeStage(this.locusUrl, videoLayout);
|
|
9618
9733
|
}
|
|
9734
|
+
|
|
9735
|
+
/**
|
|
9736
|
+
* Notifies the host with the given meeting UUID and display names.
|
|
9737
|
+
*
|
|
9738
|
+
* @param {string} meetingUuid - The UUID of the meeting.
|
|
9739
|
+
* @param {string[]} displayName - An array of display names to notify the host with.
|
|
9740
|
+
* @returns {Promise<any>} The result of the notifyHost request.
|
|
9741
|
+
*/
|
|
9742
|
+
}, {
|
|
9743
|
+
key: "notifyHost",
|
|
9744
|
+
value: function notifyHost(meetingUuid, displayName) {
|
|
9745
|
+
return this.meetingRequest.notifyHost(this.meetingInfo.siteFullUrl, this.locusId, meetingUuid, displayName);
|
|
9746
|
+
}
|
|
9747
|
+
|
|
9748
|
+
/**
|
|
9749
|
+
* Call out a SIP participant to a meeting
|
|
9750
|
+
* @param {string} address - The SIP address or phone number
|
|
9751
|
+
* @param {string} displayName - The display name for the participant
|
|
9752
|
+
* @param {string} [correlationId] - Optional correlation ID
|
|
9753
|
+
* @returns {Promise} Promise that resolves when the call-out is initiated
|
|
9754
|
+
*/
|
|
9755
|
+
}, {
|
|
9756
|
+
key: "sipCallOut",
|
|
9757
|
+
value: function sipCallOut(address, displayName) {
|
|
9758
|
+
return this.meetingRequest.sipCallOut(this.meetingInfo.meetingId, this.meetingInfo.meetingId, address, displayName);
|
|
9759
|
+
}
|
|
9760
|
+
|
|
9761
|
+
/**
|
|
9762
|
+
* Cancel an ongoing SIP call-out
|
|
9763
|
+
* @param {string} participantId - The participant ID to cancel
|
|
9764
|
+
* @returns {Promise} Promise that resolves when the call-out is cancelled
|
|
9765
|
+
* @public
|
|
9766
|
+
* @memberof Meetings
|
|
9767
|
+
*/
|
|
9768
|
+
}, {
|
|
9769
|
+
key: "cancelSipCallOut",
|
|
9770
|
+
value: function cancelSipCallOut(participantId) {
|
|
9771
|
+
return this.meetingRequest.cancelSipCallOut(participantId);
|
|
9772
|
+
}
|
|
9619
9773
|
}]);
|
|
9620
9774
|
return Meeting;
|
|
9621
9775
|
}(_webexCore.StatelessWebexPlugin);
|