@webex/plugin-meetings 3.6.0-next.11 → 3.6.0-next.13

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.
Files changed (63) hide show
  1. package/README.md +2 -1
  2. package/dist/breakouts/breakout.js +1 -1
  3. package/dist/breakouts/index.js +1 -1
  4. package/dist/constants.js +24 -2
  5. package/dist/constants.js.map +1 -1
  6. package/dist/controls-options-manager/enums.js +1 -0
  7. package/dist/controls-options-manager/enums.js.map +1 -1
  8. package/dist/controls-options-manager/index.js +10 -3
  9. package/dist/controls-options-manager/index.js.map +1 -1
  10. package/dist/controls-options-manager/types.js.map +1 -1
  11. package/dist/controls-options-manager/util.js +12 -0
  12. package/dist/controls-options-manager/util.js.map +1 -1
  13. package/dist/interpretation/index.js +1 -1
  14. package/dist/interpretation/siLanguage.js +1 -1
  15. package/dist/locus-info/controlsUtils.js +28 -4
  16. package/dist/locus-info/controlsUtils.js.map +1 -1
  17. package/dist/locus-info/fullState.js +2 -1
  18. package/dist/locus-info/fullState.js.map +1 -1
  19. package/dist/locus-info/index.js +61 -3
  20. package/dist/locus-info/index.js.map +1 -1
  21. package/dist/meeting/in-meeting-actions.js +19 -1
  22. package/dist/meeting/in-meeting-actions.js.map +1 -1
  23. package/dist/meeting/index.js +366 -277
  24. package/dist/meeting/index.js.map +1 -1
  25. package/dist/members/index.js +3 -2
  26. package/dist/members/index.js.map +1 -1
  27. package/dist/members/util.js +9 -5
  28. package/dist/members/util.js.map +1 -1
  29. package/dist/types/constants.d.ts +19 -0
  30. package/dist/types/controls-options-manager/enums.d.ts +2 -1
  31. package/dist/types/controls-options-manager/index.d.ts +2 -1
  32. package/dist/types/controls-options-manager/types.d.ts +2 -0
  33. package/dist/types/locus-info/index.d.ts +9 -0
  34. package/dist/types/meeting/in-meeting-actions.d.ts +18 -0
  35. package/dist/types/meeting/index.d.ts +11 -1
  36. package/dist/types/members/index.d.ts +2 -1
  37. package/dist/types/members/util.d.ts +3 -1
  38. package/dist/webinar/index.js +32 -19
  39. package/dist/webinar/index.js.map +1 -1
  40. package/package.json +10 -10
  41. package/src/constants.ts +25 -0
  42. package/src/controls-options-manager/enums.ts +1 -0
  43. package/src/controls-options-manager/index.ts +19 -2
  44. package/src/controls-options-manager/types.ts +2 -0
  45. package/src/controls-options-manager/util.ts +12 -0
  46. package/src/locus-info/controlsUtils.ts +46 -2
  47. package/src/locus-info/fullState.ts +1 -0
  48. package/src/locus-info/index.ts +60 -0
  49. package/src/meeting/in-meeting-actions.ts +37 -0
  50. package/src/meeting/index.ts +93 -7
  51. package/src/members/index.ts +4 -2
  52. package/src/members/util.ts +3 -1
  53. package/src/webinar/index.ts +31 -17
  54. package/test/unit/spec/controls-options-manager/index.js +56 -32
  55. package/test/unit/spec/controls-options-manager/util.js +44 -0
  56. package/test/unit/spec/locus-info/controlsUtils.js +80 -4
  57. package/test/unit/spec/locus-info/index.js +59 -2
  58. package/test/unit/spec/meeting/in-meeting-actions.ts +18 -0
  59. package/test/unit/spec/meeting/index.js +100 -16
  60. package/test/unit/spec/members/index.js +25 -2
  61. package/test/unit/spec/members/request.js +37 -3
  62. package/test/unit/spec/members/utils.js +15 -1
  63. package/test/unit/spec/webinar/index.ts +82 -16
@@ -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.CONTROLS_VIDEO_CHANGED, function (_ref22) {
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 _ref23 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(payload) {
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 _ref23.apply(this, arguments);
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, _payload$services5, _payload$services5$we, _payload$services6, _payload$services6$we;
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
- _this16.webinar.webcastUrlUpdate(payload === null || payload === void 0 ? void 0 : (_payload$services5 = payload.services) === null || _payload$services5 === void 0 ? void 0 : (_payload$services5$we = _payload$services5.webcast) === null || _payload$services5$we === void 0 ? void 0 : _payload$services5$we.url);
3524
- _this16.webinar.webinarAttendeesSearchingUrlUpdate(payload === null || payload === void 0 ? void 0 : (_payload$services6 = payload.services) === null || _payload$services6 === void 0 ? void 0 : (_payload$services6$we = _payload$services6.webinarAttendeesSearching) === null || _payload$services6$we === void 0 ? void 0 : _payload$services6$we.url);
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 _this17 = this;
3589
+ var _this18 = this;
3538
3590
  this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_LOCKED, function (payload) {
3539
3591
  if (payload) {
3540
- _triggerProxy.default.trigger(_this17, {
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(_this17, {
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 (_ref24) {
3559
- var isInitializing = _ref24.isInitializing;
3560
- _this17.updateMeetingActions();
3561
- _this17.recordingController.setDisplayHints(_this17.userDisplayHints);
3562
- _this17.recordingController.setUserPolicy(_this17.selfUserPolicies);
3563
- _this17.controlsOptionsManager.setDisplayHints(_this17.userDisplayHints);
3564
- _this17.handleDataChannelUrlChange(_this17.datachannelUrl);
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(_this17, {
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 _this18 = this;
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(_this18, {
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 _this19 = this;
3670
+ var _this20 = this;
3619
3671
  this.locusInfo.on(_constants.LOCUSINFO.EVENTS.LOCAL_UNMUTE_REQUIRED, function (payload) {
3620
- if (_this19.audio) {
3621
- _this19.audio.handleServerLocalUnmuteRequired(_this19, payload.unmuteAllowed);
3622
- _triggerProxy.default.trigger(_this19, {
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 (_this19.video) {
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 : _this19.video.isRemotelyMuted();
3635
- payload.unmuteAllowed = (_payload$unmuteAllowe = payload.unmuteAllowed) !== null && _payload$unmuteAllowe !== void 0 ? _payload$unmuteAllowe : _this19.video.isUnmuteAllowed();
3636
- _this19.video.handleServerRemoteMuteUpdate(_this19, payload.muted, payload.unmuteAllowed);
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(_this19, {
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 _this19$audio;
3649
- if (_this19.audio) {
3650
- _this19.audio.handleServerRemoteMuteUpdate(_this19, payload.muted, payload.unmuteAllowed);
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 || !((_this19$audio = _this19.audio) !== null && _this19$audio !== void 0 && _this19$audio.isMuted())) {
3656
- _triggerProxy.default.trigger(_this19, {
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(_this19, {
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
- _this19.startKeepAlive();
3676
- _triggerProxy.default.trigger(_this19, {
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
- _this19.webex.internal.newMetrics.submitClientEvent({
3736
+ _this20.webex.internal.newMetrics.submitClientEvent({
3685
3737
  name: 'client.lobby.entered',
3686
3738
  options: {
3687
- meetingId: _this19.id
3739
+ meetingId: _this20.id
3688
3740
  }
3689
3741
  });
3690
3742
  }
3691
- _this19.updateLLMConnection();
3743
+ _this20.updateLLMConnection();
3692
3744
  });
3693
3745
  this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ADMITTED_GUEST, /*#__PURE__*/function () {
3694
- var _ref25 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(payload) {
3695
- var _this19$rtcMetrics;
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
- _this19.stopKeepAlive();
3751
+ _this20.stopKeepAlive();
3700
3752
  if (payload) {
3701
- _triggerProxy.default.trigger(_this19, {
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
- _this19.webex.internal.newMetrics.submitClientEvent({
3761
+ _this20.webex.internal.newMetrics.submitClientEvent({
3710
3762
  name: 'client.lobby.exited',
3711
3763
  options: {
3712
- meetingId: _this19.id
3764
+ meetingId: _this20.id
3713
3765
  }
3714
3766
  });
3715
3767
  }
3716
- (_this19$rtcMetrics = _this19.rtcMetrics) === null || _this19$rtcMetrics === void 0 ? void 0 : _this19$rtcMetrics.sendNextMetrics();
3717
- _this19.updateLLMConnection();
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 _ref25.apply(this, arguments);
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: _this19.correlationId,
3733
- locus_id: _this19.locusId
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
- _this19.reconnect();
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 (_this19.statsAnalyzer) {
3744
- var _this19$mediaProperti, _this19$audio2, _this19$mediaProperti2, _this19$video, _this19$mediaProperti3, _this19$mediaProperti4, _this19$mediaProperti5, _this19$mediaProperti6;
3745
- _this19.statsAnalyzer.updateMediaStatus({
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: ((_this19$mediaProperti = _this19.mediaProperties.mediaDirection) === null || _this19$mediaProperti === void 0 ? void 0 : _this19$mediaProperti.sendAudio) && !((_this19$audio2 = _this19.audio) !== null && _this19$audio2 !== void 0 && _this19$audio2.isMuted()),
3750
- sendVideo: ((_this19$mediaProperti2 = _this19.mediaProperties.mediaDirection) === null || _this19$mediaProperti2 === void 0 ? void 0 : _this19$mediaProperti2.sendVideo) && !((_this19$video = _this19.video) !== null && _this19$video !== void 0 && _this19$video.isMuted()),
3751
- sendShare: (_this19$mediaProperti3 = _this19.mediaProperties.mediaDirection) === null || _this19$mediaProperti3 === void 0 ? void 0 : _this19$mediaProperti3.sendShare,
3752
- receiveAudio: (_this19$mediaProperti4 = _this19.mediaProperties.mediaDirection) === null || _this19$mediaProperti4 === void 0 ? void 0 : _this19$mediaProperti4.receiveAudio,
3753
- receiveVideo: (_this19$mediaProperti5 = _this19.mediaProperties.mediaDirection) === null || _this19$mediaProperti5 === void 0 ? void 0 : _this19$mediaProperti5.receiveVideo,
3754
- receiveShare: (_this19$mediaProperti6 = _this19.mediaProperties.mediaDirection) === null || _this19$mediaProperti6 === void 0 ? void 0 : _this19$mediaProperti6.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(_this19, {
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
- _this19.breakouts.updateBreakoutSessions(payload);
3769
- _triggerProxy.default.trigger(_this19, {
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 = _this19.simultaneousInterpretation.updateSelfInterpretation(payload);
3776
- _triggerProxy.default.trigger(_this19, {
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 && _this19.mediaProperties.audioStream) {
3781
- _this19.setSendNamedMediaGroup(_internalMediaCore.MediaType.AudioMain);
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, _payload$newRoles4;
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
- _this19.breakouts.updateCanManageBreakouts(isModeratorOrCohost);
3788
- _this19.simultaneousInterpretation.updateCanManageInterpreters((_payload$newRoles3 = payload.newRoles) === null || _payload$newRoles3 === void 0 ? void 0 : _payload$newRoles3.includes(_constants.SELF_ROLES.MODERATOR));
3789
- _this19.webinar.updateCanManageWebcast((_payload$newRoles4 = payload.newRoles) === null || _payload$newRoles4 === void 0 ? void 0 : _payload$newRoles4.includes(_constants.SELF_ROLES.MODERATOR));
3790
- _triggerProxy.default.trigger(_this19, {
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(_this19, {
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 _this20 = this;
3868
+ var _this21 = this;
3817
3869
  this.locusInfo.on(_constants.EVENTS.REMOTE_RESPONSE, function (payload) {
3818
- _this20.meetingFiniteStateMachine.remote(payload);
3870
+ _this21.meetingFiniteStateMachine.remote(payload);
3819
3871
  if (payload.remoteDeclined) {
3820
- _this20.leave({
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(_this20, ", error: ").concat(error));
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 _ref26 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(payload) {
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 (!_this20.wirelessShare) {
3887
+ if (!_this21.wirelessShare) {
3836
3888
  _context10.next = 7;
3837
3889
  break;
3838
3890
  }
3839
- if (!_this20.mediaProperties.shareVideoStream) {
3891
+ if (!_this21.mediaProperties.shareVideoStream) {
3840
3892
  _context10.next = 4;
3841
3893
  break;
3842
3894
  }
3843
3895
  _context10.next = 4;
3844
- return _this20.setLocalShareVideoStream(undefined);
3896
+ return _this21.setLocalShareVideoStream(undefined);
3845
3897
  case 4:
3846
- if (!_this20.mediaProperties.shareAudioStream) {
3898
+ if (!_this21.mediaProperties.shareAudioStream) {
3847
3899
  _context10.next = 7;
3848
3900
  break;
3849
3901
  }
3850
3902
  _context10.next = 7;
3851
- return _this20.setLocalShareAudioStream(undefined);
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 _this20.leave({
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(_this20, ", error: ").concat(_context10.t0));
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(_this20);
3877
- _triggerProxy.default.trigger(_this20, {
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: _this20.id
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 _ref26.apply(this, arguments);
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 _this21 = this;
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
- _this21[key] = object[key];
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 _this22 = this;
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(_this22, {
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 _this23 = this;
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 (!_this23.hasWebsocketConnected) {
4855
+ if (!_this24.hasWebsocketConnected) {
4768
4856
  // @ts-ignore
4769
- _this23.webex.internal.newMetrics.submitClientEvent({
4857
+ _this24.webex.internal.newMetrics.submitClientEvent({
4770
4858
  name: 'client.mercury.connection.restored',
4771
4859
  options: {
4772
- meetingId: _this23.id
4860
+ meetingId: _this24.id
4773
4861
  }
4774
4862
  });
4775
4863
  _metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_RESTORED, {
4776
- correlation_id: _this23.correlationId
4864
+ correlation_id: _this24.correlationId
4777
4865
  });
4778
4866
  }
4779
- _this23.hasWebsocketConnected = true;
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
- _this23.webex.internal.newMetrics.submitClientEvent({
4874
+ _this24.webex.internal.newMetrics.submitClientEvent({
4787
4875
  name: 'client.mercury.connection.lost',
4788
4876
  options: {
4789
- meetingId: _this23.id
4877
+ meetingId: _this24.id
4790
4878
  }
4791
4879
  });
4792
4880
  _metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_FAILURE, {
4793
- correlation_id: _this23.correlationId
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 _this24 = this;
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(_this24.mediaProperties.audioStream);
4999
+ _util2.default.handleAudioLogging(_this25.mediaProperties.audioStream);
4912
5000
  // @ts-ignore
4913
- _this24.webex.internal.newMetrics.submitClientEvent({
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: _this24.id
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: _this24.correlationId,
4926
- locus_id: _this24.locusUrl.split('/').pop(),
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 _this25 = this;
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(_this25.mediaProperties.audioStream);
5049
+ _util2.default.handleAudioLogging(_this26.mediaProperties.audioStream);
4962
5050
  // @ts-ignore
4963
- _this25.webex.internal.newMetrics.submitClientEvent({
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: _this25.id
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: _this25.correlationId,
4976
- locus_id: _this25.locusUrl.split('/').pop(),
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 _this26 = this;
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(_this26.mediaProperties.videoStream);
5097
+ _util2.default.handleVideoLogging(_this27.mediaProperties.videoStream);
5010
5098
  // @ts-ignore
5011
- _this26.webex.internal.newMetrics.submitClientEvent({
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: _this26.id
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: _this26.correlationId,
5024
- locus_id: _this26.locusUrl.split('/').pop(),
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 _this27 = this;
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(_this27.mediaProperties.videoStream);
5145
+ _util2.default.handleVideoLogging(_this28.mediaProperties.videoStream);
5058
5146
  // @ts-ignore
5059
- _this27.webex.internal.newMetrics.submitClientEvent({
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: _this27.id
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: _this27.correlationId,
5072
- locus_id: _this27.locusUrl.split('/').pop(),
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 _this28 = this;
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 _this28.joinWithMediaRetryInfo.isRetry ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
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 _this29 = this;
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.'));
@@ -5293,10 +5381,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5293
5381
  while (1) switch (_context16.prev = _context16.next) {
5294
5382
  case 0:
5295
5383
  _context16.next = 2;
5296
- return _this29.waitForRemoteSDPAnswer();
5384
+ return _this30.waitForRemoteSDPAnswer();
5297
5385
  case 2:
5298
5386
  _context16.next = 4;
5299
- return _this29.waitForMediaConnectionConnected();
5387
+ return _this30.waitForMediaConnectionConnected();
5300
5388
  case 4:
5301
5389
  case "end":
5302
5390
  return _context16.stop();
@@ -5310,7 +5398,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5310
5398
  return _promise.default.resolve();
5311
5399
  }
5312
5400
  _loggerProxy.default.logger.error('Meeting:index#reconnect --> Meeting reconnect failed', error);
5313
- _this29.uploadLogs({
5401
+ _this30.uploadLogs({
5314
5402
  file: 'meeting/index',
5315
5403
  function: 'reconnect'
5316
5404
  });
@@ -5357,19 +5445,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5357
5445
  }, {
5358
5446
  key: "setCaptionLanguage",
5359
5447
  value: function setCaptionLanguage(language) {
5360
- var _this30 = this;
5448
+ var _this31 = this;
5361
5449
  return new _promise.default(function (resolve, reject) {
5362
- if (!_this30.isTranscriptionSupported()) {
5450
+ if (!_this31.isTranscriptionSupported()) {
5363
5451
  _loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
5364
5452
  reject(new Error('Webex Assistant is not enabled/supported'));
5365
5453
  }
5366
5454
  try {
5367
5455
  var voiceaListenerCaptionUpdate = function voiceaListenerCaptionUpdate(payload) {
5368
5456
  // @ts-ignore
5369
- _this30.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5457
+ _this31.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5370
5458
  var statusCode = payload.statusCode;
5371
5459
  if (statusCode === 200) {
5372
- _this30.transcription.languageOptions = _objectSpread(_objectSpread({}, _this30.transcription.languageOptions), {}, {
5460
+ _this31.transcription.languageOptions = _objectSpread(_objectSpread({}, _this31.transcription.languageOptions), {}, {
5373
5461
  currentCaptionLanguage: language
5374
5462
  });
5375
5463
  resolve(language);
@@ -5378,9 +5466,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5378
5466
  }
5379
5467
  };
5380
5468
  // @ts-ignore
5381
- _this30.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5469
+ _this31.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5382
5470
  // @ts-ignore
5383
- _this30.webex.internal.voicea.requestLanguage(language);
5471
+ _this31.webex.internal.voicea.requestLanguage(language);
5384
5472
  } catch (error) {
5385
5473
  _loggerProxy.default.logger.error("Meeting:index#setCaptionLanguage --> ".concat(error));
5386
5474
  reject(error);
@@ -5396,23 +5484,23 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5396
5484
  }, {
5397
5485
  key: "setSpokenLanguage",
5398
5486
  value: function setSpokenLanguage(language) {
5399
- var _this31 = this;
5487
+ var _this32 = this;
5400
5488
  return new _promise.default(function (resolve, reject) {
5401
- if (!_this31.isTranscriptionSupported()) {
5489
+ if (!_this32.isTranscriptionSupported()) {
5402
5490
  _loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
5403
5491
  reject(new Error('Webex Assistant is not enabled/supported'));
5404
5492
  }
5405
- if (_this31.getCurUserType() !== 'host') {
5493
+ if (_this32.getCurUserType() !== 'host') {
5406
5494
  _loggerProxy.default.logger.error('Meeting:index#setSpokenLanguage --> Only host can set spoken language');
5407
5495
  reject(new Error('Only host can set spoken language'));
5408
5496
  }
5409
5497
  try {
5410
5498
  var voiceaListenerLanguageUpdate = function voiceaListenerLanguageUpdate(payload) {
5411
5499
  // @ts-ignore
5412
- _this31.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5500
+ _this32.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5413
5501
  var languageCode = payload.languageCode;
5414
5502
  if (languageCode) {
5415
- _this31.transcription.languageOptions = _objectSpread(_objectSpread({}, _this31.transcription.languageOptions), {}, {
5503
+ _this32.transcription.languageOptions = _objectSpread(_objectSpread({}, _this32.transcription.languageOptions), {}, {
5416
5504
  currentSpokenLanguage: languageCode
5417
5505
  });
5418
5506
  resolve(languageCode);
@@ -5422,10 +5510,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5422
5510
  };
5423
5511
 
5424
5512
  // @ts-ignore
5425
- _this31.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5513
+ _this32.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5426
5514
 
5427
5515
  // @ts-ignore
5428
- _this31.webex.internal.voicea.setSpokenLanguage(language);
5516
+ _this32.webex.internal.voicea.setSpokenLanguage(language);
5429
5517
  } catch (error) {
5430
5518
  _loggerProxy.default.logger.error("Meeting:index#setSpokenLanguage --> ".concat(error));
5431
5519
  reject(error);
@@ -5545,7 +5633,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5545
5633
  */
5546
5634
  function () {
5547
5635
  var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18() {
5548
- var _this32 = this;
5636
+ var _this33 = this;
5549
5637
  var options,
5550
5638
  errorMessage,
5551
5639
  error,
@@ -5691,62 +5779,62 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5691
5779
  return _context18.abrupt("return", _promise.default.reject(_context18.t0));
5692
5780
  case 51:
5693
5781
  return _context18.abrupt("return", _util2.default.joinMeetingOptions(this, options).then(function (join) {
5694
- _this32.meetingFiniteStateMachine.join();
5695
- _this32.setupLocusMediaRequest();
5782
+ _this33.meetingFiniteStateMachine.join();
5783
+ _this33.setupLocusMediaRequest();
5696
5784
 
5697
5785
  // @ts-ignore
5698
- _this32.webex.internal.device.meetingStarted();
5699
- (0, _classPrivateFieldSet2.default)(_this32, _isoLocalClientMeetingJoinTime, new Date().toISOString());
5786
+ _this33.webex.internal.device.meetingStarted();
5787
+ (0, _classPrivateFieldSet2.default)(_this33, _isoLocalClientMeetingJoinTime, new Date().toISOString());
5700
5788
  _loggerProxy.default.logger.log('Meeting:index#join --> Success');
5701
5789
  _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
5702
- correlation_id: _this32.correlationId
5790
+ correlation_id: _this33.correlationId
5703
5791
  });
5704
5792
  joinSuccess(join);
5705
- _this32.deferJoin = undefined;
5793
+ _this33.deferJoin = undefined;
5706
5794
  return join;
5707
5795
  }).catch(function (error) {
5708
- var _this32$meetingInfo, _error$error;
5709
- _this32.meetingFiniteStateMachine.fail(error);
5796
+ var _this33$meetingInfo, _error$error;
5797
+ _this33.meetingFiniteStateMachine.fail(error);
5710
5798
  _loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
5711
5799
 
5712
5800
  // @ts-ignore
5713
- _this32.webex.internal.newMetrics.submitClientEvent({
5801
+ _this33.webex.internal.newMetrics.submitClientEvent({
5714
5802
  name: 'client.locus.join.response',
5715
5803
  payload: {
5716
5804
  identifiers: {
5717
- meetingLookupUrl: (_this32$meetingInfo = _this32.meetingInfo) === null || _this32$meetingInfo === void 0 ? void 0 : _this32$meetingInfo.meetingLookupUrl
5805
+ meetingLookupUrl: (_this33$meetingInfo = _this33.meetingInfo) === null || _this33$meetingInfo === void 0 ? void 0 : _this33$meetingInfo.meetingLookupUrl
5718
5806
  }
5719
5807
  },
5720
5808
  options: {
5721
- meetingId: _this32.id,
5809
+ meetingId: _this33.id,
5722
5810
  rawError: error
5723
5811
  }
5724
5812
  });
5725
5813
 
5726
5814
  // TODO: change this to error codes and pre defined dictionary
5727
5815
  _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
5728
- correlation_id: _this32.correlationId,
5816
+ correlation_id: _this33.correlationId,
5729
5817
  reason: (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.message,
5730
5818
  stack: error.stack
5731
5819
  });
5732
5820
 
5733
5821
  // Upload logs on join Failure
5734
- _triggerProxy.default.trigger(_this32, {
5822
+ _triggerProxy.default.trigger(_this33, {
5735
5823
  file: 'meeting/index',
5736
5824
  function: 'join'
5737
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this32);
5825
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this33);
5738
5826
  joinFailed(error);
5739
- _this32.deferJoin = undefined;
5827
+ _this33.deferJoin = undefined;
5740
5828
  return _promise.default.reject(error);
5741
5829
  }).then(function (join) {
5742
5830
  // @ts-ignore - config coming from registerPlugin
5743
- if (_this32.config.enableAutomaticLLM) {
5831
+ if (_this33.config.enableAutomaticLLM) {
5744
5832
  // @ts-ignore
5745
- _this32.webex.internal.llm.on('online', _this32.handleLLMOnline);
5746
- _this32.updateLLMConnection().catch(function (error) {
5833
+ _this33.webex.internal.llm.on('online', _this33.handleLLMOnline);
5834
+ _this33.updateLLMConnection().catch(function (error) {
5747
5835
  _loggerProxy.default.logger.error('Meeting:index#join --> Transcription Socket Connection Failed', error);
5748
5836
  _metrics.default.sendBehavioralMetric(_constants2.default.LLM_CONNECTION_AFTER_JOIN_FAILURE, {
5749
- correlation_id: _this32.correlationId,
5837
+ correlation_id: _this33.correlationId,
5750
5838
  reason: error === null || error === void 0 ? void 0 : error.message,
5751
5839
  stack: error.stack
5752
5840
  });
@@ -5778,7 +5866,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5778
5866
  key: "updateLLMConnection",
5779
5867
  value: (function () {
5780
5868
  var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
5781
- var _this33 = this;
5869
+ var _this34 = this;
5782
5870
  var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, isJoined;
5783
5871
  return _regenerator.default.wrap(function _callee19$(_context19) {
5784
5872
  while (1) switch (_context19.prev = _context19.next) {
@@ -5814,9 +5902,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5814
5902
  case 10:
5815
5903
  return _context19.abrupt("return", this.webex.internal.llm.registerAndConnect(url, datachannelUrl).then(function (registerAndConnectResult) {
5816
5904
  // @ts-ignore - Fix type
5817
- _this33.webex.internal.llm.off('event:relay.event', _this33.processRelayEvent);
5905
+ _this34.webex.internal.llm.off('event:relay.event', _this34.processRelayEvent);
5818
5906
  // @ts-ignore - Fix type
5819
- _this33.webex.internal.llm.on('event:relay.event', _this33.processRelayEvent);
5907
+ _this34.webex.internal.llm.on('event:relay.event', _this34.processRelayEvent);
5820
5908
  _loggerProxy.default.logger.info('Meeting:index#updateLLMConnection --> enabled to receive relay events!');
5821
5909
  return _promise.default.resolve(registerAndConnectResult);
5822
5910
  }));
@@ -5870,7 +5958,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5870
5958
  }, {
5871
5959
  key: "dialInPstn",
5872
5960
  value: function dialInPstn() {
5873
- var _this34 = this;
5961
+ var _this35 = this;
5874
5962
  if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
5875
5963
 
5876
5964
  var correlationId = this.correlationId,
@@ -5886,10 +5974,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5886
5974
  }).catch(function (error) {
5887
5975
  var _error$error2;
5888
5976
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
5889
- correlation_id: _this34.correlationId,
5890
- dial_in_url: _this34.dialInUrl,
5977
+ correlation_id: _this35.correlationId,
5978
+ dial_in_url: _this35.dialInUrl,
5891
5979
  locus_id: locusUrl.split('/').pop(),
5892
- client_url: _this34.deviceUrl,
5980
+ client_url: _this35.deviceUrl,
5893
5981
  reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
5894
5982
  stack: error.stack
5895
5983
  });
@@ -5907,7 +5995,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5907
5995
  }, {
5908
5996
  key: "dialOutPstn",
5909
5997
  value: function dialOutPstn(phoneNumber) {
5910
- var _this35 = this;
5998
+ var _this36 = this;
5911
5999
  if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
5912
6000
 
5913
6001
  var correlationId = this.correlationId,
@@ -5924,10 +6012,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5924
6012
  }).catch(function (error) {
5925
6013
  var _error$error3;
5926
6014
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
5927
- correlation_id: _this35.correlationId,
5928
- dial_out_url: _this35.dialOutUrl,
6015
+ correlation_id: _this36.correlationId,
6016
+ dial_out_url: _this36.dialOutUrl,
5929
6017
  locus_id: locusUrl.split('/').pop(),
5930
- client_url: _this35.deviceUrl,
6018
+ client_url: _this36.deviceUrl,
5931
6019
  reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
5932
6020
  stack: error.stack
5933
6021
  });
@@ -5958,7 +6046,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5958
6046
  }, {
5959
6047
  key: "moveTo",
5960
6048
  value: function moveTo(resourceId) {
5961
- var _this36 = this;
6049
+ var _this37 = this;
5962
6050
  if (!resourceId) {
5963
6051
  throw new _parameter.default('Cannot move call without a resourceId.');
5964
6052
  }
@@ -6002,12 +6090,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6002
6090
  while (1) switch (_context20.prev = _context20.next) {
6003
6091
  case 0:
6004
6092
  _context20.prev = 0;
6005
- if (!(_this36.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
6093
+ if (!(_this37.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
6006
6094
  _context20.next = 4;
6007
6095
  break;
6008
6096
  }
6009
6097
  _context20.next = 4;
6010
- return _this36.releaseScreenShareFloor();
6098
+ return _this37.releaseScreenShareFloor();
6011
6099
  case 4:
6012
6100
  mediaSettings = {
6013
6101
  mediaDirection: {
@@ -6019,37 +6107,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6019
6107
  receiveShare: true
6020
6108
  }
6021
6109
  };
6022
- _this36.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
6023
- _this36.mediaProperties.unsetRemoteMedia();
6110
+ _this37.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
6111
+ _this37.mediaProperties.unsetRemoteMedia();
6024
6112
 
6025
6113
  // 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
6114
  // once the device answers we close the old connection and create new media server connection with only share enabled
6027
- if (!_this36.statsAnalyzer) {
6115
+ if (!_this37.statsAnalyzer) {
6028
6116
  _context20.next = 10;
6029
6117
  break;
6030
6118
  }
6031
6119
  _context20.next = 10;
6032
- return _this36.statsAnalyzer.stopAnalyzer();
6120
+ return _this37.statsAnalyzer.stopAnalyzer();
6033
6121
  case 10:
6034
6122
  _context20.next = 12;
6035
- return _this36.closeRemoteStreams();
6123
+ return _this37.closeRemoteStreams();
6036
6124
  case 12:
6037
6125
  _context20.next = 14;
6038
- return _this36.closePeerConnections();
6126
+ return _this37.closePeerConnections();
6039
6127
  case 14:
6040
- _this36.cleanupLocalStreams();
6041
- _this36.unsetRemoteStreams();
6042
- _this36.unsetPeerConnections();
6043
- _this36.reconnectionManager.cleanUp();
6128
+ _this37.cleanupLocalStreams();
6129
+ _this37.unsetRemoteStreams();
6130
+ _this37.unsetPeerConnections();
6131
+ _this37.reconnectionManager.cleanUp();
6044
6132
  _context20.next = 20;
6045
- return _this36.addMedia({
6133
+ return _this37.addMedia({
6046
6134
  audioEnabled: false,
6047
6135
  videoEnabled: false,
6048
6136
  shareVideoEnabled: true
6049
6137
  });
6050
6138
  case 20:
6051
6139
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
6052
- _this36.isMoveToInProgress = false;
6140
+ _this37.isMoveToInProgress = false;
6053
6141
  _context20.next = 29;
6054
6142
  break;
6055
6143
  case 24:
@@ -6057,12 +6145,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6057
6145
  _context20.t0 = _context20["catch"](0);
6058
6146
  _loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context20.t0);
6059
6147
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
6060
- correlation_id: _this36.correlationId,
6061
- locus_id: _this36.locusUrl.split('/').pop(),
6148
+ correlation_id: _this37.correlationId,
6149
+ locus_id: _this37.locusUrl.split('/').pop(),
6062
6150
  reason: _context20.t0.message,
6063
6151
  stack: _context20.t0.stack
6064
6152
  });
6065
- _this36.isMoveToInProgress = false;
6153
+ _this37.isMoveToInProgress = false;
6066
6154
  case 29:
6067
6155
  case "end":
6068
6156
  return _context20.stop();
@@ -6078,17 +6166,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6078
6166
  resourceId: resourceId,
6079
6167
  moveToResource: true
6080
6168
  }).then(function () {
6081
- _this36.meetingFiniteStateMachine.join();
6169
+ _this37.meetingFiniteStateMachine.join();
6082
6170
  }).catch(function (error) {
6083
- _this36.meetingFiniteStateMachine.fail(error);
6171
+ _this37.meetingFiniteStateMachine.fail(error);
6084
6172
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
6085
- correlation_id: _this36.correlationId,
6086
- locus_id: _this36.locusUrl.split('/').pop(),
6173
+ correlation_id: _this37.correlationId,
6174
+ locus_id: _this37.locusUrl.split('/').pop(),
6087
6175
  reason: error.message,
6088
6176
  stack: error.stack
6089
6177
  });
6090
6178
  _loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', error);
6091
- _this36.isMoveToInProgress = false;
6179
+ _this37.isMoveToInProgress = false;
6092
6180
  return _promise.default.reject(error);
6093
6181
  });
6094
6182
  }
@@ -6103,7 +6191,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6103
6191
  }, {
6104
6192
  key: "moveFrom",
6105
6193
  value: function moveFrom(resourceId) {
6106
- var _this37 = this;
6194
+ var _this38 = this;
6107
6195
  // On moveFrom ask the developer to re capture it moveFrom then updateMedia
6108
6196
  if (!resourceId) {
6109
6197
  throw new _parameter.default('Cannot move call without a resourceId.');
@@ -6118,19 +6206,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6118
6206
  }
6119
6207
  });
6120
6208
  return _util2.default.joinMeetingOptions(this).then(function () {
6121
- return _util2.default.leaveMeeting(_this37, {
6209
+ return _util2.default.leaveMeeting(_this38, {
6122
6210
  resourceId: resourceId,
6123
6211
  correlationId: oldCorrelationId,
6124
6212
  moveMeeting: true
6125
6213
  }).then(function () {
6126
- _this37.resourceId = '';
6214
+ _this38.resourceId = '';
6127
6215
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
6128
6216
  });
6129
6217
  }).catch(function (error) {
6130
- _this37.meetingFiniteStateMachine.fail(error);
6218
+ _this38.meetingFiniteStateMachine.fail(error);
6131
6219
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
6132
- correlation_id: _this37.correlationId,
6133
- locus_id: _this37.locusUrl.split('/').pop(),
6220
+ correlation_id: _this38.correlationId,
6221
+ locus_id: _this38.locusUrl.split('/').pop(),
6134
6222
  reason: error.message,
6135
6223
  stack: error.stack
6136
6224
  });
@@ -6243,9 +6331,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6243
6331
  }, {
6244
6332
  key: "forwardEvent",
6245
6333
  value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
6246
- var _this38 = this;
6334
+ var _this39 = this;
6247
6335
  eventEmitter.on(eventTypeToForward, function (data) {
6248
- return _triggerProxy.default.trigger(_this38, {
6336
+ return _triggerProxy.default.trigger(_this39, {
6249
6337
  file: 'meetings',
6250
6338
  function: 'addMedia'
6251
6339
  }, meetingEventType, data);
@@ -6432,7 +6520,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6432
6520
  */
6433
6521
  function () {
6434
6522
  var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24() {
6435
- var _this39 = this;
6523
+ var _this40 = this;
6436
6524
  var LOG_HEADER, deferSDPAnswer;
6437
6525
  return _regenerator.default.wrap(function _callee24$(_context24) {
6438
6526
  while (1) switch (_context24.prev = _context24.next) {
@@ -6449,18 +6537,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6449
6537
  this.sdpResponseTimer = setTimeout(function () {
6450
6538
  _loggerProxy.default.logger.warn("".concat(LOG_HEADER, " timeout! no REMOTE SDP ANSWER received within ").concat(_constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT / 1000, " seconds"));
6451
6539
  // @ts-ignore
6452
- _this39.webex.internal.newMetrics.submitClientEvent({
6540
+ _this40.webex.internal.newMetrics.submitClientEvent({
6453
6541
  name: 'client.media-engine.remote-sdp-received',
6454
6542
  payload: {
6455
6543
  canProceed: false,
6456
6544
  errors: [
6457
6545
  // @ts-ignore
6458
- _this39.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
6546
+ _this40.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
6459
6547
  clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
6460
6548
  })]
6461
6549
  },
6462
6550
  options: {
6463
- meetingId: _this39.id,
6551
+ meetingId: _this40.id,
6464
6552
  rawError: new Error('Timeout waiting for SDP answer')
6465
6553
  }
6466
6554
  });
@@ -6888,10 +6976,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6888
6976
  }, {
6889
6977
  key: "addMedia",
6890
6978
  value: function addMedia() {
6891
- var _this40 = this;
6979
+ var _this41 = this;
6892
6980
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6893
6981
  return this.addMediaInternal(function () {
6894
- return _this40.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
6982
+ return _this41.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
6895
6983
  }, undefined, false, options);
6896
6984
  }
6897
6985
 
@@ -7182,7 +7270,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7182
7270
  * @memberof Meeting
7183
7271
  */
7184
7272
  function enqueueMediaUpdate(mediaUpdateType) {
7185
- var _this41 = this;
7273
+ var _this42 = this;
7186
7274
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7187
7275
  var canUpdateMediaNow = this.canUpdateMedia();
7188
7276
  return new _promise.default(function (resolve, reject) {
@@ -7193,9 +7281,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7193
7281
  options: options
7194
7282
  };
7195
7283
  _loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
7196
- _this41.queuedMediaUpdates.push(queueItem);
7284
+ _this42.queuedMediaUpdates.push(queueItem);
7197
7285
  if (canUpdateMediaNow) {
7198
- _this41.processNextQueuedMediaUpdate();
7286
+ _this42.processNextQueuedMediaUpdate();
7199
7287
  }
7200
7288
  });
7201
7289
  }
@@ -7300,7 +7388,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7300
7388
  }, {
7301
7389
  key: "acknowledge",
7302
7390
  value: function acknowledge(type) {
7303
- var _this42 = this;
7391
+ var _this43 = this;
7304
7392
  if (!type) {
7305
7393
  return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
7306
7394
  }
@@ -7312,12 +7400,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7312
7400
  }).then(function (response) {
7313
7401
  return _promise.default.resolve(response);
7314
7402
  }).then(function (response) {
7315
- _this42.meetingFiniteStateMachine.ring(type);
7403
+ _this43.meetingFiniteStateMachine.ring(type);
7316
7404
  // @ts-ignore
7317
- _this42.webex.internal.newMetrics.submitClientEvent({
7405
+ _this43.webex.internal.newMetrics.submitClientEvent({
7318
7406
  name: 'client.alert.displayed',
7319
7407
  options: {
7320
- meetingId: _this42.id
7408
+ meetingId: _this43.id
7321
7409
  }
7322
7410
  });
7323
7411
  return _promise.default.resolve({
@@ -7342,12 +7430,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7342
7430
  }, {
7343
7431
  key: "decline",
7344
7432
  value: function decline(reason) {
7345
- var _this43 = this;
7433
+ var _this44 = this;
7346
7434
  return _util2.default.declineMeeting(this, reason).then(function (decline) {
7347
- _this43.meetingFiniteStateMachine.decline();
7435
+ _this44.meetingFiniteStateMachine.decline();
7348
7436
  return _promise.default.resolve(decline);
7349
7437
  }).catch(function (error) {
7350
- _this43.meetingFiniteStateMachine.fail(error);
7438
+ _this44.meetingFiniteStateMachine.fail(error);
7351
7439
  return _promise.default.reject(error);
7352
7440
  });
7353
7441
  }
@@ -7398,7 +7486,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7398
7486
  }, {
7399
7487
  key: "leave",
7400
7488
  value: function leave() {
7401
- var _this44 = this;
7489
+ var _this45 = this;
7402
7490
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7403
7491
  var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
7404
7492
 
@@ -7410,7 +7498,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7410
7498
  var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7411
7499
  return (
7412
7500
  // @ts-ignore
7413
- _this44.webex.internal.newMetrics.submitClientEvent({
7501
+ _this45.webex.internal.newMetrics.submitClientEvent({
7414
7502
  name: 'client.call.leave',
7415
7503
  payload: _objectSpread({
7416
7504
  trigger: 'user-interaction',
@@ -7418,7 +7506,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7418
7506
  leaveReason: options.clientEventLeaveReason
7419
7507
  }, payload),
7420
7508
  options: {
7421
- meetingId: _this44.id
7509
+ meetingId: _this45.id
7422
7510
  }
7423
7511
  })
7424
7512
  );
@@ -7427,24 +7515,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7427
7515
  return _util2.default.leaveMeeting(this, options).then(function (leave) {
7428
7516
  // CA team recommends submitting this *after* locus /leave
7429
7517
  submitLeaveMetric();
7430
- _this44.meetingFiniteStateMachine.leave();
7431
- _this44.clearMeetingData();
7518
+ _this45.meetingFiniteStateMachine.leave();
7519
+ _this45.clearMeetingData();
7432
7520
 
7433
7521
  // upload logs on leave irrespective of meeting delete
7434
- _triggerProxy.default.trigger(_this44, {
7522
+ _triggerProxy.default.trigger(_this45, {
7435
7523
  file: 'meeting/index',
7436
7524
  function: 'leave'
7437
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this44);
7525
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this45);
7438
7526
 
7439
7527
  // TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
7440
- if (_this44.wirelessShare || _this44.guest) {
7528
+ if (_this45.wirelessShare || _this45.guest) {
7441
7529
  // If screen sharing clean the meeting object
7442
- _triggerProxy.default.trigger(_this44, {
7530
+ _triggerProxy.default.trigger(_this45, {
7443
7531
  file: 'meeting/index',
7444
7532
  function: 'leave'
7445
7533
  }, _constants.EVENTS.DESTROY_MEETING, {
7446
7534
  reason: options.reason,
7447
- meetingId: _this44.id
7535
+ meetingId: _this45.id
7448
7536
  });
7449
7537
  }
7450
7538
  _loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
@@ -7461,16 +7549,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7461
7549
  shownToUser: false
7462
7550
  }]
7463
7551
  });
7464
- _this44.meetingFiniteStateMachine.fail(error);
7552
+ _this45.meetingFiniteStateMachine.fail(error);
7465
7553
  _loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
7466
7554
  // upload logs on leave irrespective of meeting delete
7467
- _triggerProxy.default.trigger(_this44, {
7555
+ _triggerProxy.default.trigger(_this45, {
7468
7556
  file: 'meeting/index',
7469
7557
  function: 'leave'
7470
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this44);
7558
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this45);
7471
7559
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
7472
- correlation_id: _this44.correlationId,
7473
- locus_id: _this44.locusUrl.split('/').pop(),
7560
+ correlation_id: _this45.correlationId,
7561
+ locus_id: _this45.locusUrl.split('/').pop(),
7474
7562
  reason: error.message,
7475
7563
  stack: error.stack,
7476
7564
  code: error.code
@@ -7490,7 +7578,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7490
7578
  }, {
7491
7579
  key: "startWhiteboardShare",
7492
7580
  value: function startWhiteboardShare(channelUrl, resourceToken) {
7493
- var _this45 = this;
7581
+ var _this46 = this;
7494
7582
  var whiteboard = this.locusInfo.mediaShares.find(function (element) {
7495
7583
  return element.name === 'whiteboard';
7496
7584
  });
@@ -7519,13 +7607,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7519
7607
  body.resourceToken = resourceToken;
7520
7608
  }
7521
7609
  return this.meetingRequest.changeMeetingFloor(body).then(function () {
7522
- _this45.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7610
+ _this46.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7523
7611
  return _promise.default.resolve();
7524
7612
  }).catch(function (error) {
7525
7613
  _loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
7526
7614
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
7527
- correlation_id: _this45.correlationId,
7528
- locus_id: _this45.locusUrl.split('/').pop(),
7615
+ correlation_id: _this46.correlationId,
7616
+ locus_id: _this46.locusUrl.split('/').pop(),
7529
7617
  reason: error.message,
7530
7618
  stack: error.stack,
7531
7619
  board: {
@@ -7548,7 +7636,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7548
7636
  }, {
7549
7637
  key: "stopWhiteboardShare",
7550
7638
  value: function stopWhiteboardShare(channelUrl) {
7551
- var _this46 = this;
7639
+ var _this47 = this;
7552
7640
  var whiteboard = this.locusInfo.mediaShares.find(function (element) {
7553
7641
  return element.name === 'whiteboard';
7554
7642
  });
@@ -7571,8 +7659,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7571
7659
  }).catch(function (error) {
7572
7660
  _loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
7573
7661
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
7574
- correlation_id: _this46.correlationId,
7575
- locus_id: _this46.locusUrl.split('/').pop(),
7662
+ correlation_id: _this47.correlationId,
7663
+ locus_id: _this47.locusUrl.split('/').pop(),
7576
7664
  reason: error.message,
7577
7665
  stack: error.stack,
7578
7666
  board: {
@@ -7594,7 +7682,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7594
7682
  }, {
7595
7683
  key: "requestScreenShareFloor",
7596
7684
  value: function requestScreenShareFloor() {
7597
- var _this47 = this;
7685
+ var _this48 = this;
7598
7686
  if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
7599
7687
  _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
7688
  this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
@@ -7625,34 +7713,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7625
7713
  resourceUrl: this.resourceUrl,
7626
7714
  shareInstanceId: this.localShareInstanceId
7627
7715
  }).then(function () {
7628
- _this47.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
7716
+ _this48.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
7629
7717
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
7630
- correlation_id: _this47.correlationId,
7631
- locus_id: _this47.locusUrl.split('/').pop()
7718
+ correlation_id: _this48.correlationId,
7719
+ locus_id: _this48.locusUrl.split('/').pop()
7632
7720
  });
7633
7721
  return _promise.default.resolve();
7634
7722
  }).catch(function (error) {
7635
7723
  _loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
7636
7724
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
7637
- correlation_id: _this47.correlationId,
7638
- locus_id: _this47.locusUrl.split('/').pop(),
7725
+ correlation_id: _this48.correlationId,
7726
+ locus_id: _this48.locusUrl.split('/').pop(),
7639
7727
  reason: error.message,
7640
7728
  stack: error.stack
7641
7729
  });
7642
7730
 
7643
7731
  // @ts-ignore
7644
- _this47.webex.internal.newMetrics.submitClientEvent({
7732
+ _this48.webex.internal.newMetrics.submitClientEvent({
7645
7733
  name: 'client.share.floor-granted.local',
7646
7734
  payload: {
7647
7735
  mediaType: 'share',
7648
7736
  errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
7649
- shareInstanceId: _this47.localShareInstanceId
7737
+ shareInstanceId: _this48.localShareInstanceId
7650
7738
  },
7651
7739
  options: {
7652
- meetingId: _this47.id
7740
+ meetingId: _this48.id
7653
7741
  }
7654
7742
  });
7655
- _this47.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7743
+ _this48.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7656
7744
  return _promise.default.reject(error);
7657
7745
  });
7658
7746
  }
@@ -7675,10 +7763,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7675
7763
  }, {
7676
7764
  key: "requestScreenShareFloorIfPending",
7677
7765
  value: function requestScreenShareFloorIfPending() {
7678
- var _this48 = this;
7766
+ var _this49 = this;
7679
7767
  if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
7680
7768
  this.requestScreenShareFloor().then(function () {
7681
- _this48.floorGrantPending = false;
7769
+ _this49.floorGrantPending = false;
7682
7770
  });
7683
7771
  }
7684
7772
  }
@@ -7692,7 +7780,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7692
7780
  }, {
7693
7781
  key: "releaseScreenShareFloor",
7694
7782
  value: function releaseScreenShareFloor() {
7695
- var _this49 = this;
7783
+ var _this50 = this;
7696
7784
  var content = this.locusInfo.mediaShares.find(function (element) {
7697
7785
  return element.name === _constants.CONTENT;
7698
7786
  });
@@ -7727,8 +7815,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7727
7815
  }).catch(function (error) {
7728
7816
  _loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
7729
7817
  _metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
7730
- correlation_id: _this49.correlationId,
7731
- locus_id: _this49.locusUrl.split('/').pop(),
7818
+ correlation_id: _this50.correlationId,
7819
+ locus_id: _this50.locusUrl.split('/').pop(),
7732
7820
  reason: error.message,
7733
7821
  stack: error.stack
7734
7822
  });
@@ -7784,13 +7872,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7784
7872
  * @param {boolean} mutedEnabled
7785
7873
  * @param {boolean} disallowUnmuteEnabled
7786
7874
  * @param {boolean} muteOnEntryEnabled
7875
+ * @param {array} roles
7787
7876
  * @public
7788
7877
  * @memberof Meeting
7789
7878
  */
7790
7879
  }, {
7791
7880
  key: "setMuteAll",
7792
- value: function setMuteAll(mutedEnabled, disallowUnmuteEnabled, muteOnEntryEnabled) {
7793
- return this.controlsOptionsManager.setMuteAll(mutedEnabled, disallowUnmuteEnabled, muteOnEntryEnabled);
7881
+ value: function setMuteAll(mutedEnabled, disallowUnmuteEnabled, muteOnEntryEnabled, roles) {
7882
+ return this.controlsOptionsManager.setMuteAll(mutedEnabled, disallowUnmuteEnabled, muteOnEntryEnabled, roles);
7794
7883
  }
7795
7884
 
7796
7885
  /**
@@ -7907,7 +7996,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7907
7996
  }, {
7908
7997
  key: "changeVideoLayout",
7909
7998
  value: function changeVideoLayout(layoutType) {
7910
- var _this50 = this;
7999
+ var _this51 = this;
7911
8000
  var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7912
8001
  var main = renderInfo.main,
7913
8002
  content = renderInfo.content;
@@ -7961,7 +8050,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7961
8050
  }
7962
8051
  this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
7963
8052
  this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
7964
- _triggerProxy.default.trigger(_this50, {
8053
+ _triggerProxy.default.trigger(_this51, {
7965
8054
  file: 'meeting/index',
7966
8055
  function: 'changeVideoLayout'
7967
8056
  }, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
@@ -8077,7 +8166,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8077
8166
  }, {
8078
8167
  key: "endMeetingForAll",
8079
8168
  value: function endMeetingForAll() {
8080
- var _this51 = this;
8169
+ var _this52 = this;
8081
8170
  // @ts-ignore
8082
8171
  this.webex.internal.newMetrics.submitClientEvent({
8083
8172
  name: 'client.call.leave',
@@ -8095,25 +8184,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8095
8184
  locus_id: this.locusId
8096
8185
  });
8097
8186
  return _util2.default.endMeetingForAll(this).then(function (end) {
8098
- _this51.meetingFiniteStateMachine.end();
8099
- _this51.clearMeetingData();
8187
+ _this52.meetingFiniteStateMachine.end();
8188
+ _this52.clearMeetingData();
8100
8189
  // upload logs on leave irrespective of meeting delete
8101
- _triggerProxy.default.trigger(_this51, {
8190
+ _triggerProxy.default.trigger(_this52, {
8102
8191
  file: 'meeting/index',
8103
8192
  function: 'endMeetingForAll'
8104
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this51);
8193
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this52);
8105
8194
  return end;
8106
8195
  }).catch(function (error) {
8107
- _this51.meetingFiniteStateMachine.fail(error);
8196
+ _this52.meetingFiniteStateMachine.fail(error);
8108
8197
  _loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
8109
8198
  // upload logs on leave irrespective of meeting delete
8110
- _triggerProxy.default.trigger(_this51, {
8199
+ _triggerProxy.default.trigger(_this52, {
8111
8200
  file: 'meeting/index',
8112
8201
  function: 'endMeetingForAll'
8113
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this51);
8202
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this52);
8114
8203
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
8115
- correlation_id: _this51.correlationId,
8116
- locus_id: _this51.locusUrl.split('/').pop(),
8204
+ correlation_id: _this52.correlationId,
8205
+ locus_id: _this52.locusUrl.split('/').pop(),
8117
8206
  reason: error.message,
8118
8207
  stack: error.stack,
8119
8208
  code: error.code
@@ -8255,7 +8344,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8255
8344
  _this$mediaProperties41,
8256
8345
  _this$mediaProperties42,
8257
8346
  _this$mediaProperties43,
8258
- _this52 = this;
8347
+ _this53 = this;
8259
8348
  var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
8260
8349
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
8261
8350
  if (!this.canUpdateMedia()) {
@@ -8280,8 +8369,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8280
8369
  }).catch(function (error) {
8281
8370
  _loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
8282
8371
  _metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
8283
- correlation_id: _this52.correlationId,
8284
- locus_id: _this52.locusUrl.split('/').pop(),
8372
+ correlation_id: _this53.correlationId,
8373
+ locus_id: _this53.locusUrl.split('/').pop(),
8285
8374
  reason: error.message,
8286
8375
  stack: error.stack
8287
8376
  });