@webex/plugin-meetings 3.6.0-next.9 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) 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/config.js +2 -1
  5. package/dist/config.js.map +1 -1
  6. package/dist/constants.js +24 -2
  7. package/dist/constants.js.map +1 -1
  8. package/dist/controls-options-manager/enums.js +1 -0
  9. package/dist/controls-options-manager/enums.js.map +1 -1
  10. package/dist/controls-options-manager/index.js +10 -3
  11. package/dist/controls-options-manager/index.js.map +1 -1
  12. package/dist/controls-options-manager/types.js.map +1 -1
  13. package/dist/controls-options-manager/util.js +12 -0
  14. package/dist/controls-options-manager/util.js.map +1 -1
  15. package/dist/interpretation/index.js +1 -1
  16. package/dist/interpretation/siLanguage.js +1 -1
  17. package/dist/locus-info/controlsUtils.js +28 -4
  18. package/dist/locus-info/controlsUtils.js.map +1 -1
  19. package/dist/locus-info/fullState.js +2 -1
  20. package/dist/locus-info/fullState.js.map +1 -1
  21. package/dist/locus-info/index.js +61 -3
  22. package/dist/locus-info/index.js.map +1 -1
  23. package/dist/meeting/in-meeting-actions.js +19 -1
  24. package/dist/meeting/in-meeting-actions.js.map +1 -1
  25. package/dist/meeting/index.js +536 -409
  26. package/dist/meeting/index.js.map +1 -1
  27. package/dist/meetings/index.js +2 -0
  28. package/dist/meetings/index.js.map +1 -1
  29. package/dist/members/index.js +3 -2
  30. package/dist/members/index.js.map +1 -1
  31. package/dist/members/util.js +9 -5
  32. package/dist/members/util.js.map +1 -1
  33. package/dist/networkQualityMonitor/index.js +227 -0
  34. package/dist/networkQualityMonitor/index.js.map +1 -0
  35. package/dist/reachability/index.js +3 -3
  36. package/dist/reachability/index.js.map +1 -1
  37. package/dist/reachability/request.js +2 -1
  38. package/dist/reachability/request.js.map +1 -1
  39. package/dist/rtcMetrics/constants.js +11 -0
  40. package/dist/rtcMetrics/constants.js.map +1 -0
  41. package/dist/rtcMetrics/index.js +197 -0
  42. package/dist/rtcMetrics/index.js.map +1 -0
  43. package/dist/types/config.d.ts +1 -0
  44. package/dist/types/constants.d.ts +19 -0
  45. package/dist/types/controls-options-manager/enums.d.ts +2 -1
  46. package/dist/types/controls-options-manager/index.d.ts +2 -1
  47. package/dist/types/controls-options-manager/types.d.ts +2 -0
  48. package/dist/types/locus-info/index.d.ts +9 -0
  49. package/dist/types/meeting/in-meeting-actions.d.ts +18 -0
  50. package/dist/types/meeting/index.d.ts +12 -1
  51. package/dist/types/members/index.d.ts +2 -1
  52. package/dist/types/members/util.d.ts +3 -1
  53. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  54. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  55. package/dist/types/rtcMetrics/index.d.ts +71 -0
  56. package/dist/webinar/index.js +32 -19
  57. package/dist/webinar/index.js.map +1 -1
  58. package/package.json +22 -22
  59. package/src/config.ts +1 -0
  60. package/src/constants.ts +25 -0
  61. package/src/controls-options-manager/enums.ts +1 -0
  62. package/src/controls-options-manager/index.ts +19 -2
  63. package/src/controls-options-manager/types.ts +2 -0
  64. package/src/controls-options-manager/util.ts +12 -0
  65. package/src/locus-info/controlsUtils.ts +46 -2
  66. package/src/locus-info/fullState.ts +1 -0
  67. package/src/locus-info/index.ts +60 -0
  68. package/src/meeting/in-meeting-actions.ts +37 -0
  69. package/src/meeting/index.ts +114 -9
  70. package/src/meetings/index.ts +46 -39
  71. package/src/members/index.ts +4 -2
  72. package/src/members/util.ts +3 -1
  73. package/src/reachability/index.ts +3 -3
  74. package/src/reachability/request.ts +1 -0
  75. package/src/webinar/index.ts +31 -17
  76. package/test/unit/spec/controls-options-manager/index.js +56 -32
  77. package/test/unit/spec/controls-options-manager/util.js +44 -0
  78. package/test/unit/spec/locus-info/controlsUtils.js +80 -4
  79. package/test/unit/spec/locus-info/index.js +59 -2
  80. package/test/unit/spec/meeting/in-meeting-actions.ts +18 -0
  81. package/test/unit/spec/meeting/index.js +222 -82
  82. package/test/unit/spec/meetings/index.js +16 -1
  83. package/test/unit/spec/members/index.js +25 -2
  84. package/test/unit/spec/members/request.js +37 -3
  85. package/test/unit/spec/members/utils.js +15 -1
  86. package/test/unit/spec/reachability/index.ts +1 -1
  87. package/test/unit/spec/reachability/request.js +13 -8
  88. package/test/unit/spec/webinar/index.ts +82 -16
@@ -1004,7 +1004,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
1004
1004
  });
1005
1005
  _this.iceCandidatesCount = 0;
1006
1006
  _this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.MediaConnectionEventNames.ICE_CANDIDATE, function (event) {
1007
- if (event.candidate) {
1007
+ if (event.candidate && event.candidate.candidate && event.candidate.candidate.length > 0) {
1008
1008
  _this.iceCandidatesCount += 1;
1009
1009
  }
1010
1010
  });
@@ -2702,6 +2702,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
2702
2702
  this.setUpLocusInfoSelfListener();
2703
2703
  this.setUpLocusInfoMeetingListener();
2704
2704
  this.setUpLocusServicesListener();
2705
+ this.setUpLocusResourcesListener();
2705
2706
  // members update listeners
2706
2707
  this.setUpLocusFullStateListener();
2707
2708
  this.setUpLocusUrlListener();
@@ -3218,8 +3219,44 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3218
3219
  state: state
3219
3220
  });
3220
3221
  });
3221
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.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.'));
@@ -5288,15 +5376,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5288
5376
  if (!_util2.default.isMediaEstablished(this.currentMediaStatus)) {
5289
5377
  return _promise.default.reject(new _parameter.default('Cannot reconnect, Media has not established to reconnect'));
5290
5378
  }
5379
+ this.cleanUpBeforeReconnection();
5291
5380
  return this.reconnectionManager.reconnect(options, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
5292
5381
  return _regenerator.default.wrap(function _callee16$(_context16) {
5293
5382
  while (1) switch (_context16.prev = _context16.next) {
5294
5383
  case 0:
5295
5384
  _context16.next = 2;
5296
- return _this29.waitForRemoteSDPAnswer();
5385
+ return _this30.waitForRemoteSDPAnswer();
5297
5386
  case 2:
5298
5387
  _context16.next = 4;
5299
- return _this29.waitForMediaConnectionConnected();
5388
+ return _this30.waitForMediaConnectionConnected();
5300
5389
  case 4:
5301
5390
  case "end":
5302
5391
  return _context16.stop();
@@ -5310,7 +5399,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5310
5399
  return _promise.default.resolve();
5311
5400
  }
5312
5401
  _loggerProxy.default.logger.error('Meeting:index#reconnect --> Meeting reconnect failed', error);
5313
- _this29.uploadLogs({
5402
+ _this30.uploadLogs({
5314
5403
  file: 'meeting/index',
5315
5404
  function: 'reconnect'
5316
5405
  });
@@ -5357,19 +5446,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5357
5446
  }, {
5358
5447
  key: "setCaptionLanguage",
5359
5448
  value: function setCaptionLanguage(language) {
5360
- var _this30 = this;
5449
+ var _this31 = this;
5361
5450
  return new _promise.default(function (resolve, reject) {
5362
- if (!_this30.isTranscriptionSupported()) {
5451
+ if (!_this31.isTranscriptionSupported()) {
5363
5452
  _loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
5364
5453
  reject(new Error('Webex Assistant is not enabled/supported'));
5365
5454
  }
5366
5455
  try {
5367
5456
  var voiceaListenerCaptionUpdate = function voiceaListenerCaptionUpdate(payload) {
5368
5457
  // @ts-ignore
5369
- _this30.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5458
+ _this31.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5370
5459
  var statusCode = payload.statusCode;
5371
5460
  if (statusCode === 200) {
5372
- _this30.transcription.languageOptions = _objectSpread(_objectSpread({}, _this30.transcription.languageOptions), {}, {
5461
+ _this31.transcription.languageOptions = _objectSpread(_objectSpread({}, _this31.transcription.languageOptions), {}, {
5373
5462
  currentCaptionLanguage: language
5374
5463
  });
5375
5464
  resolve(language);
@@ -5378,9 +5467,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5378
5467
  }
5379
5468
  };
5380
5469
  // @ts-ignore
5381
- _this30.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5470
+ _this31.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5382
5471
  // @ts-ignore
5383
- _this30.webex.internal.voicea.requestLanguage(language);
5472
+ _this31.webex.internal.voicea.requestLanguage(language);
5384
5473
  } catch (error) {
5385
5474
  _loggerProxy.default.logger.error("Meeting:index#setCaptionLanguage --> ".concat(error));
5386
5475
  reject(error);
@@ -5396,23 +5485,23 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5396
5485
  }, {
5397
5486
  key: "setSpokenLanguage",
5398
5487
  value: function setSpokenLanguage(language) {
5399
- var _this31 = this;
5488
+ var _this32 = this;
5400
5489
  return new _promise.default(function (resolve, reject) {
5401
- if (!_this31.isTranscriptionSupported()) {
5490
+ if (!_this32.isTranscriptionSupported()) {
5402
5491
  _loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
5403
5492
  reject(new Error('Webex Assistant is not enabled/supported'));
5404
5493
  }
5405
- if (_this31.getCurUserType() !== 'host') {
5494
+ if (_this32.getCurUserType() !== 'host') {
5406
5495
  _loggerProxy.default.logger.error('Meeting:index#setSpokenLanguage --> Only host can set spoken language');
5407
5496
  reject(new Error('Only host can set spoken language'));
5408
5497
  }
5409
5498
  try {
5410
5499
  var voiceaListenerLanguageUpdate = function voiceaListenerLanguageUpdate(payload) {
5411
5500
  // @ts-ignore
5412
- _this31.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5501
+ _this32.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5413
5502
  var languageCode = payload.languageCode;
5414
5503
  if (languageCode) {
5415
- _this31.transcription.languageOptions = _objectSpread(_objectSpread({}, _this31.transcription.languageOptions), {}, {
5504
+ _this32.transcription.languageOptions = _objectSpread(_objectSpread({}, _this32.transcription.languageOptions), {}, {
5416
5505
  currentSpokenLanguage: languageCode
5417
5506
  });
5418
5507
  resolve(languageCode);
@@ -5422,10 +5511,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5422
5511
  };
5423
5512
 
5424
5513
  // @ts-ignore
5425
- _this31.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5514
+ _this32.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5426
5515
 
5427
5516
  // @ts-ignore
5428
- _this31.webex.internal.voicea.setSpokenLanguage(language);
5517
+ _this32.webex.internal.voicea.setSpokenLanguage(language);
5429
5518
  } catch (error) {
5430
5519
  _loggerProxy.default.logger.error("Meeting:index#setSpokenLanguage --> ".concat(error));
5431
5520
  reject(error);
@@ -5545,7 +5634,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5545
5634
  */
5546
5635
  function () {
5547
5636
  var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18() {
5548
- var _this32 = this;
5637
+ var _this33 = this;
5549
5638
  var options,
5550
5639
  errorMessage,
5551
5640
  error,
@@ -5691,62 +5780,62 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5691
5780
  return _context18.abrupt("return", _promise.default.reject(_context18.t0));
5692
5781
  case 51:
5693
5782
  return _context18.abrupt("return", _util2.default.joinMeetingOptions(this, options).then(function (join) {
5694
- _this32.meetingFiniteStateMachine.join();
5695
- _this32.setupLocusMediaRequest();
5783
+ _this33.meetingFiniteStateMachine.join();
5784
+ _this33.setupLocusMediaRequest();
5696
5785
 
5697
5786
  // @ts-ignore
5698
- _this32.webex.internal.device.meetingStarted();
5699
- (0, _classPrivateFieldSet2.default)(_this32, _isoLocalClientMeetingJoinTime, new Date().toISOString());
5787
+ _this33.webex.internal.device.meetingStarted();
5788
+ (0, _classPrivateFieldSet2.default)(_this33, _isoLocalClientMeetingJoinTime, new Date().toISOString());
5700
5789
  _loggerProxy.default.logger.log('Meeting:index#join --> Success');
5701
5790
  _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
5702
- correlation_id: _this32.correlationId
5791
+ correlation_id: _this33.correlationId
5703
5792
  });
5704
5793
  joinSuccess(join);
5705
- _this32.deferJoin = undefined;
5794
+ _this33.deferJoin = undefined;
5706
5795
  return join;
5707
5796
  }).catch(function (error) {
5708
- var _this32$meetingInfo, _error$error;
5709
- _this32.meetingFiniteStateMachine.fail(error);
5797
+ var _this33$meetingInfo, _error$error;
5798
+ _this33.meetingFiniteStateMachine.fail(error);
5710
5799
  _loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
5711
5800
 
5712
5801
  // @ts-ignore
5713
- _this32.webex.internal.newMetrics.submitClientEvent({
5802
+ _this33.webex.internal.newMetrics.submitClientEvent({
5714
5803
  name: 'client.locus.join.response',
5715
5804
  payload: {
5716
5805
  identifiers: {
5717
- meetingLookupUrl: (_this32$meetingInfo = _this32.meetingInfo) === null || _this32$meetingInfo === void 0 ? void 0 : _this32$meetingInfo.meetingLookupUrl
5806
+ meetingLookupUrl: (_this33$meetingInfo = _this33.meetingInfo) === null || _this33$meetingInfo === void 0 ? void 0 : _this33$meetingInfo.meetingLookupUrl
5718
5807
  }
5719
5808
  },
5720
5809
  options: {
5721
- meetingId: _this32.id,
5810
+ meetingId: _this33.id,
5722
5811
  rawError: error
5723
5812
  }
5724
5813
  });
5725
5814
 
5726
5815
  // TODO: change this to error codes and pre defined dictionary
5727
5816
  _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
5728
- correlation_id: _this32.correlationId,
5817
+ correlation_id: _this33.correlationId,
5729
5818
  reason: (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.message,
5730
5819
  stack: error.stack
5731
5820
  });
5732
5821
 
5733
5822
  // Upload logs on join Failure
5734
- _triggerProxy.default.trigger(_this32, {
5823
+ _triggerProxy.default.trigger(_this33, {
5735
5824
  file: 'meeting/index',
5736
5825
  function: 'join'
5737
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this32);
5826
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this33);
5738
5827
  joinFailed(error);
5739
- _this32.deferJoin = undefined;
5828
+ _this33.deferJoin = undefined;
5740
5829
  return _promise.default.reject(error);
5741
5830
  }).then(function (join) {
5742
5831
  // @ts-ignore - config coming from registerPlugin
5743
- if (_this32.config.enableAutomaticLLM) {
5832
+ if (_this33.config.enableAutomaticLLM) {
5744
5833
  // @ts-ignore
5745
- _this32.webex.internal.llm.on('online', _this32.handleLLMOnline);
5746
- _this32.updateLLMConnection().catch(function (error) {
5834
+ _this33.webex.internal.llm.on('online', _this33.handleLLMOnline);
5835
+ _this33.updateLLMConnection().catch(function (error) {
5747
5836
  _loggerProxy.default.logger.error('Meeting:index#join --> Transcription Socket Connection Failed', error);
5748
5837
  _metrics.default.sendBehavioralMetric(_constants2.default.LLM_CONNECTION_AFTER_JOIN_FAILURE, {
5749
- correlation_id: _this32.correlationId,
5838
+ correlation_id: _this33.correlationId,
5750
5839
  reason: error === null || error === void 0 ? void 0 : error.message,
5751
5840
  stack: error.stack
5752
5841
  });
@@ -5778,7 +5867,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5778
5867
  key: "updateLLMConnection",
5779
5868
  value: (function () {
5780
5869
  var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
5781
- var _this33 = this;
5870
+ var _this34 = this;
5782
5871
  var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, isJoined;
5783
5872
  return _regenerator.default.wrap(function _callee19$(_context19) {
5784
5873
  while (1) switch (_context19.prev = _context19.next) {
@@ -5814,9 +5903,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5814
5903
  case 10:
5815
5904
  return _context19.abrupt("return", this.webex.internal.llm.registerAndConnect(url, datachannelUrl).then(function (registerAndConnectResult) {
5816
5905
  // @ts-ignore - Fix type
5817
- _this33.webex.internal.llm.off('event:relay.event', _this33.processRelayEvent);
5906
+ _this34.webex.internal.llm.off('event:relay.event', _this34.processRelayEvent);
5818
5907
  // @ts-ignore - Fix type
5819
- _this33.webex.internal.llm.on('event:relay.event', _this33.processRelayEvent);
5908
+ _this34.webex.internal.llm.on('event:relay.event', _this34.processRelayEvent);
5820
5909
  _loggerProxy.default.logger.info('Meeting:index#updateLLMConnection --> enabled to receive relay events!');
5821
5910
  return _promise.default.resolve(registerAndConnectResult);
5822
5911
  }));
@@ -5870,7 +5959,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5870
5959
  }, {
5871
5960
  key: "dialInPstn",
5872
5961
  value: function dialInPstn() {
5873
- var _this34 = this;
5962
+ var _this35 = this;
5874
5963
  if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
5875
5964
 
5876
5965
  var correlationId = this.correlationId,
@@ -5886,10 +5975,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5886
5975
  }).catch(function (error) {
5887
5976
  var _error$error2;
5888
5977
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
5889
- correlation_id: _this34.correlationId,
5890
- dial_in_url: _this34.dialInUrl,
5978
+ correlation_id: _this35.correlationId,
5979
+ dial_in_url: _this35.dialInUrl,
5891
5980
  locus_id: locusUrl.split('/').pop(),
5892
- client_url: _this34.deviceUrl,
5981
+ client_url: _this35.deviceUrl,
5893
5982
  reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
5894
5983
  stack: error.stack
5895
5984
  });
@@ -5907,7 +5996,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5907
5996
  }, {
5908
5997
  key: "dialOutPstn",
5909
5998
  value: function dialOutPstn(phoneNumber) {
5910
- var _this35 = this;
5999
+ var _this36 = this;
5911
6000
  if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
5912
6001
 
5913
6002
  var correlationId = this.correlationId,
@@ -5924,10 +6013,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5924
6013
  }).catch(function (error) {
5925
6014
  var _error$error3;
5926
6015
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
5927
- correlation_id: _this35.correlationId,
5928
- dial_out_url: _this35.dialOutUrl,
6016
+ correlation_id: _this36.correlationId,
6017
+ dial_out_url: _this36.dialOutUrl,
5929
6018
  locus_id: locusUrl.split('/').pop(),
5930
- client_url: _this35.deviceUrl,
6019
+ client_url: _this36.deviceUrl,
5931
6020
  reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
5932
6021
  stack: error.stack
5933
6022
  });
@@ -5958,7 +6047,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5958
6047
  }, {
5959
6048
  key: "moveTo",
5960
6049
  value: function moveTo(resourceId) {
5961
- var _this36 = this;
6050
+ var _this37 = this;
5962
6051
  if (!resourceId) {
5963
6052
  throw new _parameter.default('Cannot move call without a resourceId.');
5964
6053
  }
@@ -6002,12 +6091,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6002
6091
  while (1) switch (_context20.prev = _context20.next) {
6003
6092
  case 0:
6004
6093
  _context20.prev = 0;
6005
- if (!(_this36.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
6094
+ if (!(_this37.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
6006
6095
  _context20.next = 4;
6007
6096
  break;
6008
6097
  }
6009
6098
  _context20.next = 4;
6010
- return _this36.releaseScreenShareFloor();
6099
+ return _this37.releaseScreenShareFloor();
6011
6100
  case 4:
6012
6101
  mediaSettings = {
6013
6102
  mediaDirection: {
@@ -6019,37 +6108,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6019
6108
  receiveShare: true
6020
6109
  }
6021
6110
  };
6022
- _this36.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
6023
- _this36.mediaProperties.unsetRemoteMedia();
6111
+ _this37.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
6112
+ _this37.mediaProperties.unsetRemoteMedia();
6024
6113
 
6025
6114
  // when a move to is intiated by the client , Locus delets the existing media node from the server as soon the device answers the meeting
6026
6115
  // once the device answers we close the old connection and create new media server connection with only share enabled
6027
- if (!_this36.statsAnalyzer) {
6116
+ if (!_this37.statsAnalyzer) {
6028
6117
  _context20.next = 10;
6029
6118
  break;
6030
6119
  }
6031
6120
  _context20.next = 10;
6032
- return _this36.statsAnalyzer.stopAnalyzer();
6121
+ return _this37.statsAnalyzer.stopAnalyzer();
6033
6122
  case 10:
6034
6123
  _context20.next = 12;
6035
- return _this36.closeRemoteStreams();
6124
+ return _this37.closeRemoteStreams();
6036
6125
  case 12:
6037
6126
  _context20.next = 14;
6038
- return _this36.closePeerConnections();
6127
+ return _this37.closePeerConnections();
6039
6128
  case 14:
6040
- _this36.cleanupLocalStreams();
6041
- _this36.unsetRemoteStreams();
6042
- _this36.unsetPeerConnections();
6043
- _this36.reconnectionManager.cleanUp();
6129
+ _this37.cleanupLocalStreams();
6130
+ _this37.unsetRemoteStreams();
6131
+ _this37.unsetPeerConnections();
6132
+ _this37.reconnectionManager.cleanUp();
6044
6133
  _context20.next = 20;
6045
- return _this36.addMedia({
6134
+ return _this37.addMedia({
6046
6135
  audioEnabled: false,
6047
6136
  videoEnabled: false,
6048
6137
  shareVideoEnabled: true
6049
6138
  });
6050
6139
  case 20:
6051
6140
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
6052
- _this36.isMoveToInProgress = false;
6141
+ _this37.isMoveToInProgress = false;
6053
6142
  _context20.next = 29;
6054
6143
  break;
6055
6144
  case 24:
@@ -6057,12 +6146,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6057
6146
  _context20.t0 = _context20["catch"](0);
6058
6147
  _loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context20.t0);
6059
6148
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
6060
- correlation_id: _this36.correlationId,
6061
- locus_id: _this36.locusUrl.split('/').pop(),
6149
+ correlation_id: _this37.correlationId,
6150
+ locus_id: _this37.locusUrl.split('/').pop(),
6062
6151
  reason: _context20.t0.message,
6063
6152
  stack: _context20.t0.stack
6064
6153
  });
6065
- _this36.isMoveToInProgress = false;
6154
+ _this37.isMoveToInProgress = false;
6066
6155
  case 29:
6067
6156
  case "end":
6068
6157
  return _context20.stop();
@@ -6078,17 +6167,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6078
6167
  resourceId: resourceId,
6079
6168
  moveToResource: true
6080
6169
  }).then(function () {
6081
- _this36.meetingFiniteStateMachine.join();
6170
+ _this37.meetingFiniteStateMachine.join();
6082
6171
  }).catch(function (error) {
6083
- _this36.meetingFiniteStateMachine.fail(error);
6172
+ _this37.meetingFiniteStateMachine.fail(error);
6084
6173
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
6085
- correlation_id: _this36.correlationId,
6086
- locus_id: _this36.locusUrl.split('/').pop(),
6174
+ correlation_id: _this37.correlationId,
6175
+ locus_id: _this37.locusUrl.split('/').pop(),
6087
6176
  reason: error.message,
6088
6177
  stack: error.stack
6089
6178
  });
6090
6179
  _loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', error);
6091
- _this36.isMoveToInProgress = false;
6180
+ _this37.isMoveToInProgress = false;
6092
6181
  return _promise.default.reject(error);
6093
6182
  });
6094
6183
  }
@@ -6103,7 +6192,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6103
6192
  }, {
6104
6193
  key: "moveFrom",
6105
6194
  value: function moveFrom(resourceId) {
6106
- var _this37 = this;
6195
+ var _this38 = this;
6107
6196
  // On moveFrom ask the developer to re capture it moveFrom then updateMedia
6108
6197
  if (!resourceId) {
6109
6198
  throw new _parameter.default('Cannot move call without a resourceId.');
@@ -6118,19 +6207,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6118
6207
  }
6119
6208
  });
6120
6209
  return _util2.default.joinMeetingOptions(this).then(function () {
6121
- return _util2.default.leaveMeeting(_this37, {
6210
+ return _util2.default.leaveMeeting(_this38, {
6122
6211
  resourceId: resourceId,
6123
6212
  correlationId: oldCorrelationId,
6124
6213
  moveMeeting: true
6125
6214
  }).then(function () {
6126
- _this37.resourceId = '';
6215
+ _this38.resourceId = '';
6127
6216
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
6128
6217
  });
6129
6218
  }).catch(function (error) {
6130
- _this37.meetingFiniteStateMachine.fail(error);
6219
+ _this38.meetingFiniteStateMachine.fail(error);
6131
6220
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
6132
- correlation_id: _this37.correlationId,
6133
- locus_id: _this37.locusUrl.split('/').pop(),
6221
+ correlation_id: _this38.correlationId,
6222
+ locus_id: _this38.locusUrl.split('/').pop(),
6134
6223
  reason: error.message,
6135
6224
  stack: error.stack
6136
6225
  });
@@ -6243,9 +6332,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6243
6332
  }, {
6244
6333
  key: "forwardEvent",
6245
6334
  value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
6246
- var _this38 = this;
6335
+ var _this39 = this;
6247
6336
  eventEmitter.on(eventTypeToForward, function (data) {
6248
- return _triggerProxy.default.trigger(_this38, {
6337
+ return _triggerProxy.default.trigger(_this39, {
6249
6338
  file: 'meetings',
6250
6339
  function: 'addMedia'
6251
6340
  }, meetingEventType, data);
@@ -6432,7 +6521,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6432
6521
  */
6433
6522
  function () {
6434
6523
  var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24() {
6435
- var _this39 = this;
6524
+ var _this40 = this;
6436
6525
  var LOG_HEADER, deferSDPAnswer;
6437
6526
  return _regenerator.default.wrap(function _callee24$(_context24) {
6438
6527
  while (1) switch (_context24.prev = _context24.next) {
@@ -6449,18 +6538,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6449
6538
  this.sdpResponseTimer = setTimeout(function () {
6450
6539
  _loggerProxy.default.logger.warn("".concat(LOG_HEADER, " timeout! no REMOTE SDP ANSWER received within ").concat(_constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT / 1000, " seconds"));
6451
6540
  // @ts-ignore
6452
- _this39.webex.internal.newMetrics.submitClientEvent({
6541
+ _this40.webex.internal.newMetrics.submitClientEvent({
6453
6542
  name: 'client.media-engine.remote-sdp-received',
6454
6543
  payload: {
6455
6544
  canProceed: false,
6456
6545
  errors: [
6457
6546
  // @ts-ignore
6458
- _this39.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
6547
+ _this40.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
6459
6548
  clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
6460
6549
  })]
6461
6550
  },
6462
6551
  options: {
6463
- meetingId: _this39.id,
6552
+ meetingId: _this40.id,
6464
6553
  rawError: new Error('Timeout waiting for SDP answer')
6465
6554
  }
6466
6555
  });
@@ -6846,6 +6935,43 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6846
6935
  return _cleanUpBeforeRetryWithTurnServer.apply(this, arguments);
6847
6936
  }
6848
6937
  return cleanUpBeforeRetryWithTurnServer;
6938
+ }())
6939
+ }, {
6940
+ key: "cleanUpBeforeReconnection",
6941
+ value: function () {
6942
+ var _cleanUpBeforeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32() {
6943
+ return _regenerator.default.wrap(function _callee32$(_context32) {
6944
+ while (1) switch (_context32.prev = _context32.next) {
6945
+ case 0:
6946
+ _context32.prev = 0;
6947
+ _context32.next = 3;
6948
+ return this.forceSendStatsReport({
6949
+ callFrom: 'cleanUpBeforeReconnection'
6950
+ });
6951
+ case 3:
6952
+ if (!this.statsAnalyzer) {
6953
+ _context32.next = 6;
6954
+ break;
6955
+ }
6956
+ _context32.next = 6;
6957
+ return this.statsAnalyzer.stopAnalyzer();
6958
+ case 6:
6959
+ _context32.next = 11;
6960
+ break;
6961
+ case 8:
6962
+ _context32.prev = 8;
6963
+ _context32.t0 = _context32["catch"](0);
6964
+ _loggerProxy.default.logger.error('Meeting:index#cleanUpBeforeReconnection --> Error during cleanup: ', _context32.t0);
6965
+ case 11:
6966
+ case "end":
6967
+ return _context32.stop();
6968
+ }
6969
+ }, _callee32, this, [[0, 8]]);
6970
+ }));
6971
+ function cleanUpBeforeReconnection() {
6972
+ return _cleanUpBeforeReconnection.apply(this, arguments);
6973
+ }
6974
+ return cleanUpBeforeReconnection;
6849
6975
  }()
6850
6976
  /**
6851
6977
  * Creates an instance of LocusMediaRequest for this meeting - it is needed for doing any calls
@@ -6853,7 +6979,6 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6853
6979
  *
6854
6980
  * @returns {void}
6855
6981
  */
6856
- )
6857
6982
  }, {
6858
6983
  key: "setupLocusMediaRequest",
6859
6984
  value: function setupLocusMediaRequest() {
@@ -6888,10 +7013,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6888
7013
  }, {
6889
7014
  key: "addMedia",
6890
7015
  value: function addMedia() {
6891
- var _this40 = this;
7016
+ var _this41 = this;
6892
7017
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6893
7018
  return this.addMediaInternal(function () {
6894
- return _this40.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
7019
+ return _this41.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
6895
7020
  }, undefined, false, options);
6896
7021
  }
6897
7022
 
@@ -6909,7 +7034,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6909
7034
  }, {
6910
7035
  key: "addMediaInternal",
6911
7036
  value: (function () {
6912
- var _addMediaInternal = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32(icePhaseCallback, turnServerInfo, forceTurnDiscovery) {
7037
+ var _addMediaInternal = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33(icePhaseCallback, turnServerInfo, forceTurnDiscovery) {
6913
7038
  var options,
6914
7039
  LOG_HEADER,
6915
7040
  localStreams,
@@ -6922,6 +7047,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6922
7047
  _options$shareVideoEn,
6923
7048
  shareVideoEnabled,
6924
7049
  remoteMediaManagerConfig,
7050
+ _options$bundlePolicy,
6925
7051
  bundlePolicy,
6926
7052
  _this$remoteMediaMana,
6927
7053
  _yield$this$mediaProp,
@@ -6956,35 +7082,35 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6956
7082
  _selectedCandidatePairChanges,
6957
7083
  _numTransports,
6958
7084
  _iceCandidateErrors,
6959
- _args32 = arguments;
6960
- return _regenerator.default.wrap(function _callee32$(_context32) {
6961
- while (1) switch (_context32.prev = _context32.next) {
7085
+ _args33 = arguments;
7086
+ return _regenerator.default.wrap(function _callee33$(_context33) {
7087
+ while (1) switch (_context33.prev = _context33.next) {
6962
7088
  case 0:
6963
- options = _args32.length > 3 && _args32[3] !== undefined ? _args32[3] : {};
7089
+ options = _args33.length > 3 && _args33[3] !== undefined ? _args33[3] : {};
6964
7090
  this.addMediaData.retriedWithTurnServer = false;
6965
7091
  this.addMediaData.icePhaseCallback = icePhaseCallback;
6966
7092
  this.hasMediaConnectionConnectedAtLeastOnce = false;
6967
7093
  LOG_HEADER = 'Meeting:index#addMedia -->';
6968
7094
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " called with: options=").concat((0, _stringify.default)(options), ", turnServerInfo=").concat((0, _stringify.default)(turnServerInfo), ", forceTurnDiscovery=").concat(forceTurnDiscovery));
6969
7095
  if (!(options.allowMediaInLobby !== true && this.meetingState !== _constants.FULL_STATE.ACTIVE)) {
6970
- _context32.next = 8;
7096
+ _context33.next = 8;
6971
7097
  break;
6972
7098
  }
6973
7099
  throw new _webexErrors.MeetingNotActiveError();
6974
7100
  case 8:
6975
7101
  if (!_util2.default.isUserInLeftState(this.locusInfo)) {
6976
- _context32.next = 10;
7102
+ _context33.next = 10;
6977
7103
  break;
6978
7104
  }
6979
7105
  throw new _webexErrors.UserNotJoinedError();
6980
7106
  case 10:
6981
- localStreams = options.localStreams, _options$audioEnabled = options.audioEnabled, audioEnabled = _options$audioEnabled === void 0 ? true : _options$audioEnabled, _options$videoEnabled = options.videoEnabled, videoEnabled = _options$videoEnabled === void 0 ? true : _options$videoEnabled, _options$shareAudioEn = options.shareAudioEnabled, shareAudioEnabled = _options$shareAudioEn === void 0 ? true : _options$shareAudioEn, _options$shareVideoEn = options.shareVideoEnabled, shareVideoEnabled = _options$shareVideoEn === void 0 ? true : _options$shareVideoEn, remoteMediaManagerConfig = options.remoteMediaManagerConfig, bundlePolicy = options.bundlePolicy;
7107
+ localStreams = options.localStreams, _options$audioEnabled = options.audioEnabled, audioEnabled = _options$audioEnabled === void 0 ? true : _options$audioEnabled, _options$videoEnabled = options.videoEnabled, videoEnabled = _options$videoEnabled === void 0 ? true : _options$videoEnabled, _options$shareAudioEn = options.shareAudioEnabled, shareAudioEnabled = _options$shareAudioEn === void 0 ? true : _options$shareAudioEn, _options$shareVideoEn = options.shareVideoEnabled, shareVideoEnabled = _options$shareVideoEn === void 0 ? true : _options$shareVideoEn, remoteMediaManagerConfig = options.remoteMediaManagerConfig, _options$bundlePolicy = options.bundlePolicy, bundlePolicy = _options$bundlePolicy === void 0 ? 'max-bundle' : _options$bundlePolicy;
6982
7108
  this.allowMediaInLobby = options === null || options === void 0 ? void 0 : options.allowMediaInLobby;
6983
7109
 
6984
7110
  // If the user is unjoined or guest waiting in lobby dont allow the user to addMedia
6985
7111
  // @ts-ignore - isUserUnadmitted coming from SelfUtil
6986
7112
  if (!(this.isUserUnadmitted && !this.wirelessShare && !this.allowMediaInLobby)) {
6987
- _context32.next = 14;
7113
+ _context33.next = 14;
6988
7114
  break;
6989
7115
  }
6990
7116
  throw new _webexErrors.UserInLobbyError();
@@ -7027,45 +7153,45 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7027
7153
  });
7028
7154
  this.audio = (0, _muteState.createMuteState)(_constants.AUDIO, this, audioEnabled);
7029
7155
  this.video = (0, _muteState.createMuteState)(_constants.VIDEO, this, videoEnabled);
7030
- _context32.prev = 18;
7031
- _context32.next = 21;
7156
+ _context33.prev = 18;
7157
+ _context33.next = 21;
7032
7158
  return this.setUpLocalStreamReferences(localStreams);
7033
7159
  case 21:
7034
7160
  this.setMercuryListener();
7035
7161
  this.createStatsAnalyzer();
7036
- _context32.next = 25;
7162
+ _context33.next = 25;
7037
7163
  return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, forceTurnDiscovery, turnServerInfo);
7038
7164
  case 25:
7039
7165
  if (!(audioEnabled || videoEnabled)) {
7040
- _context32.next = 30;
7166
+ _context33.next = 30;
7041
7167
  break;
7042
7168
  }
7043
- _context32.next = 28;
7169
+ _context33.next = 28;
7044
7170
  return Meeting.handleDeviceLogging(audioEnabled, videoEnabled);
7045
7171
  case 28:
7046
- _context32.next = 31;
7172
+ _context33.next = 31;
7047
7173
  break;
7048
7174
  case 30:
7049
7175
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " device logging not required"));
7050
7176
  case 31:
7051
7177
  if (!this.mediaProperties.hasLocalShareStream()) {
7052
- _context32.next = 34;
7178
+ _context33.next = 34;
7053
7179
  break;
7054
7180
  }
7055
- _context32.next = 34;
7181
+ _context33.next = 34;
7056
7182
  return this.enqueueScreenShareFloorRequest();
7057
7183
  case 34:
7058
- _context32.next = 36;
7184
+ _context33.next = 36;
7059
7185
  return this.mediaProperties.getCurrentConnectionInfo();
7060
7186
  case 36:
7061
- _yield$this$mediaProp = _context32.sent;
7187
+ _yield$this$mediaProp = _context33.sent;
7062
7188
  connectionType = _yield$this$mediaProp.connectionType;
7063
7189
  selectedCandidatePairChanges = _yield$this$mediaProp.selectedCandidatePairChanges;
7064
7190
  numTransports = _yield$this$mediaProp.numTransports;
7065
- _context32.next = 42;
7191
+ _context33.next = 42;
7066
7192
  return this.webex.meetings.reachability.getReachabilityMetrics();
7067
7193
  case 42:
7068
- reachabilityStats = _context32.sent;
7194
+ reachabilityStats = _context33.sent;
7069
7195
  iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
7070
7196
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, _objectSpread(_objectSpread(_objectSpread({
7071
7197
  correlation_id: this.correlationId,
@@ -7090,31 +7216,31 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7090
7216
 
7091
7217
  // We can log ReceiveSlot SSRCs only after the SDP exchange, so doing it here:
7092
7218
  (_this$remoteMediaMana = this.remoteMediaManager) === null || _this$remoteMediaMana === void 0 ? void 0 : _this$remoteMediaMana.logAllReceiveSlots();
7093
- _context32.next = 68;
7219
+ _context33.next = 68;
7094
7220
  break;
7095
7221
  case 50:
7096
- _context32.prev = 50;
7097
- _context32.t0 = _context32["catch"](18);
7098
- _loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context32.t0);
7222
+ _context33.prev = 50;
7223
+ _context33.t0 = _context33["catch"](18);
7224
+ _loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context33.t0);
7099
7225
 
7100
7226
  // @ts-ignore
7101
- _context32.next = 55;
7227
+ _context33.next = 55;
7102
7228
  return this.webex.meetings.reachability.getReachabilityMetrics();
7103
7229
  case 55:
7104
- reachabilityMetrics = _context32.sent;
7105
- _context32.next = 58;
7230
+ reachabilityMetrics = _context33.sent;
7231
+ _context33.next = 58;
7106
7232
  return this.mediaProperties.getCurrentConnectionInfo();
7107
7233
  case 58:
7108
- _yield$this$mediaProp2 = _context32.sent;
7234
+ _yield$this$mediaProp2 = _context33.sent;
7109
7235
  _selectedCandidatePairChanges = _yield$this$mediaProp2.selectedCandidatePairChanges;
7110
7236
  _numTransports = _yield$this$mediaProp2.numTransports;
7111
7237
  _iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
7112
7238
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_FAILURE, _objectSpread(_objectSpread(_objectSpread({
7113
7239
  correlation_id: this.correlationId,
7114
7240
  locus_id: this.locusUrl.split('/').pop(),
7115
- reason: _context32.t0.message,
7116
- stack: _context32.t0.stack,
7117
- code: _context32.t0.code,
7241
+ reason: _context33.t0.message,
7242
+ stack: _context33.t0.stack,
7243
+ code: _context33.t0.code,
7118
7244
  selectedCandidatePairChanges: _selectedCandidatePairChanges,
7119
7245
  numTransports: _numTransports,
7120
7246
  turnDiscoverySkippedReason: this.turnDiscoverySkippedReason,
@@ -7128,7 +7254,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7128
7254
  }, reachabilityMetrics), _iceCandidateErrors), {}, {
7129
7255
  iceCandidatesCount: this.iceCandidatesCount
7130
7256
  }));
7131
- _context32.next = 65;
7257
+ _context33.next = 65;
7132
7258
  return this.cleanUpOnAddMediaFailure();
7133
7259
  case 65:
7134
7260
  // Upload logs on error while adding media
@@ -7136,21 +7262,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7136
7262
  file: 'meeting/index',
7137
7263
  function: 'addMedia'
7138
7264
  }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
7139
- if (_context32.t0 instanceof _internalMediaCore.Errors.SdpError) {
7265
+ if (_context33.t0 instanceof _internalMediaCore.Errors.SdpError) {
7140
7266
  this.leave({
7141
7267
  reason: _constants.MEETING_REMOVED_REASON.MEETING_CONNECTION_FAILED
7142
7268
  });
7143
7269
  }
7144
- throw _context32.t0;
7270
+ throw _context33.t0;
7145
7271
  case 68:
7146
- _context32.prev = 68;
7272
+ _context33.prev = 68;
7147
7273
  this.addMediaData.icePhaseCallback = DEFAULT_ICE_PHASE_CALLBACK;
7148
- return _context32.finish(68);
7274
+ return _context33.finish(68);
7149
7275
  case 71:
7150
7276
  case "end":
7151
- return _context32.stop();
7277
+ return _context33.stop();
7152
7278
  }
7153
- }, _callee32, this, [[18, 50, 68, 71]]);
7279
+ }, _callee33, this, [[18, 50, 68, 71]]);
7154
7280
  }));
7155
7281
  function addMediaInternal(_x32, _x33, _x34) {
7156
7282
  return _addMediaInternal.apply(this, arguments);
@@ -7182,7 +7308,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7182
7308
  * @memberof Meeting
7183
7309
  */
7184
7310
  function enqueueMediaUpdate(mediaUpdateType) {
7185
- var _this41 = this;
7311
+ var _this42 = this;
7186
7312
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7187
7313
  var canUpdateMediaNow = this.canUpdateMedia();
7188
7314
  return new _promise.default(function (resolve, reject) {
@@ -7193,9 +7319,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7193
7319
  options: options
7194
7320
  };
7195
7321
  _loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
7196
- _this41.queuedMediaUpdates.push(queueItem);
7322
+ _this42.queuedMediaUpdates.push(queueItem);
7197
7323
  if (canUpdateMediaNow) {
7198
- _this41.processNextQueuedMediaUpdate();
7324
+ _this42.processNextQueuedMediaUpdate();
7199
7325
  }
7200
7326
  });
7201
7327
  }
@@ -7218,35 +7344,35 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7218
7344
  * @memberof Meeting
7219
7345
  */
7220
7346
  function () {
7221
- var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33(options) {
7347
+ var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34(options) {
7222
7348
  var audioEnabled, videoEnabled, shareAudioEnabled, shareVideoEnabled, _this$audio3, _this$video3;
7223
- return _regenerator.default.wrap(function _callee33$(_context33) {
7224
- while (1) switch (_context33.prev = _context33.next) {
7349
+ return _regenerator.default.wrap(function _callee34$(_context34) {
7350
+ while (1) switch (_context34.prev = _context34.next) {
7225
7351
  case 0:
7226
7352
  this.checkMediaConnection();
7227
7353
  audioEnabled = options.audioEnabled, videoEnabled = options.videoEnabled, shareAudioEnabled = options.shareAudioEnabled, shareVideoEnabled = options.shareVideoEnabled;
7228
7354
  _loggerProxy.default.logger.log("Meeting:index#updateMedia --> called with options=".concat((0, _stringify.default)(options)));
7229
7355
  if (this.canUpdateMedia()) {
7230
- _context33.next = 5;
7356
+ _context34.next = 5;
7231
7357
  break;
7232
7358
  }
7233
- return _context33.abrupt("return", this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.UPDATE_MEDIA, options));
7359
+ return _context34.abrupt("return", this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.UPDATE_MEDIA, options));
7234
7360
  case 5:
7235
7361
  if (!this.isMultistream) {
7236
- _context33.next = 10;
7362
+ _context34.next = 10;
7237
7363
  break;
7238
7364
  }
7239
7365
  if (!(shareAudioEnabled !== undefined || shareVideoEnabled !== undefined)) {
7240
- _context33.next = 8;
7366
+ _context34.next = 8;
7241
7367
  break;
7242
7368
  }
7243
7369
  throw new Error('toggling shareAudioEnabled or shareVideoEnabled in a multistream meeting is not supported, to control receiving screen share call meeting.remoteMediaManager.setLayout() with appropriate layout');
7244
7370
  case 8:
7245
- _context33.next = 12;
7371
+ _context34.next = 12;
7246
7372
  break;
7247
7373
  case 10:
7248
7374
  if (!(shareAudioEnabled !== undefined)) {
7249
- _context33.next = 12;
7375
+ _context34.next = 12;
7250
7376
  break;
7251
7377
  }
7252
7378
  throw new Error('toggling shareAudioEnabled in a transcoded meeting is not supported as of now');
@@ -7271,18 +7397,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7271
7397
  this.mediaProperties.mediaDirection.receiveShare = !!(shareAudioEnabled || shareVideoEnabled);
7272
7398
  }
7273
7399
  if (this.isMultistream) {
7274
- _context33.next = 18;
7400
+ _context34.next = 18;
7275
7401
  break;
7276
7402
  }
7277
- _context33.next = 18;
7403
+ _context34.next = 18;
7278
7404
  return this.updateTranscodedMediaConnection();
7279
7405
  case 18:
7280
- return _context33.abrupt("return", undefined);
7406
+ return _context34.abrupt("return", undefined);
7281
7407
  case 19:
7282
7408
  case "end":
7283
- return _context33.stop();
7409
+ return _context34.stop();
7284
7410
  }
7285
- }, _callee33, this);
7411
+ }, _callee34, this);
7286
7412
  }));
7287
7413
  function updateMedia(_x35) {
7288
7414
  return _updateMedia.apply(this, arguments);
@@ -7300,7 +7426,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7300
7426
  }, {
7301
7427
  key: "acknowledge",
7302
7428
  value: function acknowledge(type) {
7303
- var _this42 = this;
7429
+ var _this43 = this;
7304
7430
  if (!type) {
7305
7431
  return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
7306
7432
  }
@@ -7312,12 +7438,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7312
7438
  }).then(function (response) {
7313
7439
  return _promise.default.resolve(response);
7314
7440
  }).then(function (response) {
7315
- _this42.meetingFiniteStateMachine.ring(type);
7441
+ _this43.meetingFiniteStateMachine.ring(type);
7316
7442
  // @ts-ignore
7317
- _this42.webex.internal.newMetrics.submitClientEvent({
7443
+ _this43.webex.internal.newMetrics.submitClientEvent({
7318
7444
  name: 'client.alert.displayed',
7319
7445
  options: {
7320
- meetingId: _this42.id
7446
+ meetingId: _this43.id
7321
7447
  }
7322
7448
  });
7323
7449
  return _promise.default.resolve({
@@ -7342,12 +7468,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7342
7468
  }, {
7343
7469
  key: "decline",
7344
7470
  value: function decline(reason) {
7345
- var _this43 = this;
7471
+ var _this44 = this;
7346
7472
  return _util2.default.declineMeeting(this, reason).then(function (decline) {
7347
- _this43.meetingFiniteStateMachine.decline();
7473
+ _this44.meetingFiniteStateMachine.decline();
7348
7474
  return _promise.default.resolve(decline);
7349
7475
  }).catch(function (error) {
7350
- _this43.meetingFiniteStateMachine.fail(error);
7476
+ _this44.meetingFiniteStateMachine.fail(error);
7351
7477
  return _promise.default.reject(error);
7352
7478
  });
7353
7479
  }
@@ -7398,7 +7524,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7398
7524
  }, {
7399
7525
  key: "leave",
7400
7526
  value: function leave() {
7401
- var _this44 = this;
7527
+ var _this45 = this;
7402
7528
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7403
7529
  var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
7404
7530
 
@@ -7410,7 +7536,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7410
7536
  var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7411
7537
  return (
7412
7538
  // @ts-ignore
7413
- _this44.webex.internal.newMetrics.submitClientEvent({
7539
+ _this45.webex.internal.newMetrics.submitClientEvent({
7414
7540
  name: 'client.call.leave',
7415
7541
  payload: _objectSpread({
7416
7542
  trigger: 'user-interaction',
@@ -7418,7 +7544,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7418
7544
  leaveReason: options.clientEventLeaveReason
7419
7545
  }, payload),
7420
7546
  options: {
7421
- meetingId: _this44.id
7547
+ meetingId: _this45.id
7422
7548
  }
7423
7549
  })
7424
7550
  );
@@ -7427,24 +7553,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7427
7553
  return _util2.default.leaveMeeting(this, options).then(function (leave) {
7428
7554
  // CA team recommends submitting this *after* locus /leave
7429
7555
  submitLeaveMetric();
7430
- _this44.meetingFiniteStateMachine.leave();
7431
- _this44.clearMeetingData();
7556
+ _this45.meetingFiniteStateMachine.leave();
7557
+ _this45.clearMeetingData();
7432
7558
 
7433
7559
  // upload logs on leave irrespective of meeting delete
7434
- _triggerProxy.default.trigger(_this44, {
7560
+ _triggerProxy.default.trigger(_this45, {
7435
7561
  file: 'meeting/index',
7436
7562
  function: 'leave'
7437
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this44);
7563
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this45);
7438
7564
 
7439
7565
  // TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
7440
- if (_this44.wirelessShare || _this44.guest) {
7566
+ if (_this45.wirelessShare || _this45.guest) {
7441
7567
  // If screen sharing clean the meeting object
7442
- _triggerProxy.default.trigger(_this44, {
7568
+ _triggerProxy.default.trigger(_this45, {
7443
7569
  file: 'meeting/index',
7444
7570
  function: 'leave'
7445
7571
  }, _constants.EVENTS.DESTROY_MEETING, {
7446
7572
  reason: options.reason,
7447
- meetingId: _this44.id
7573
+ meetingId: _this45.id
7448
7574
  });
7449
7575
  }
7450
7576
  _loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
@@ -7461,16 +7587,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7461
7587
  shownToUser: false
7462
7588
  }]
7463
7589
  });
7464
- _this44.meetingFiniteStateMachine.fail(error);
7590
+ _this45.meetingFiniteStateMachine.fail(error);
7465
7591
  _loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
7466
7592
  // upload logs on leave irrespective of meeting delete
7467
- _triggerProxy.default.trigger(_this44, {
7593
+ _triggerProxy.default.trigger(_this45, {
7468
7594
  file: 'meeting/index',
7469
7595
  function: 'leave'
7470
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this44);
7596
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this45);
7471
7597
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
7472
- correlation_id: _this44.correlationId,
7473
- locus_id: _this44.locusUrl.split('/').pop(),
7598
+ correlation_id: _this45.correlationId,
7599
+ locus_id: _this45.locusUrl.split('/').pop(),
7474
7600
  reason: error.message,
7475
7601
  stack: error.stack,
7476
7602
  code: error.code
@@ -7490,7 +7616,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7490
7616
  }, {
7491
7617
  key: "startWhiteboardShare",
7492
7618
  value: function startWhiteboardShare(channelUrl, resourceToken) {
7493
- var _this45 = this;
7619
+ var _this46 = this;
7494
7620
  var whiteboard = this.locusInfo.mediaShares.find(function (element) {
7495
7621
  return element.name === 'whiteboard';
7496
7622
  });
@@ -7519,13 +7645,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7519
7645
  body.resourceToken = resourceToken;
7520
7646
  }
7521
7647
  return this.meetingRequest.changeMeetingFloor(body).then(function () {
7522
- _this45.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7648
+ _this46.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7523
7649
  return _promise.default.resolve();
7524
7650
  }).catch(function (error) {
7525
7651
  _loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
7526
7652
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
7527
- correlation_id: _this45.correlationId,
7528
- locus_id: _this45.locusUrl.split('/').pop(),
7653
+ correlation_id: _this46.correlationId,
7654
+ locus_id: _this46.locusUrl.split('/').pop(),
7529
7655
  reason: error.message,
7530
7656
  stack: error.stack,
7531
7657
  board: {
@@ -7548,7 +7674,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7548
7674
  }, {
7549
7675
  key: "stopWhiteboardShare",
7550
7676
  value: function stopWhiteboardShare(channelUrl) {
7551
- var _this46 = this;
7677
+ var _this47 = this;
7552
7678
  var whiteboard = this.locusInfo.mediaShares.find(function (element) {
7553
7679
  return element.name === 'whiteboard';
7554
7680
  });
@@ -7571,8 +7697,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7571
7697
  }).catch(function (error) {
7572
7698
  _loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
7573
7699
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
7574
- correlation_id: _this46.correlationId,
7575
- locus_id: _this46.locusUrl.split('/').pop(),
7700
+ correlation_id: _this47.correlationId,
7701
+ locus_id: _this47.locusUrl.split('/').pop(),
7576
7702
  reason: error.message,
7577
7703
  stack: error.stack,
7578
7704
  board: {
@@ -7594,7 +7720,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7594
7720
  }, {
7595
7721
  key: "requestScreenShareFloor",
7596
7722
  value: function requestScreenShareFloor() {
7597
- var _this47 = this;
7723
+ var _this48 = this;
7598
7724
  if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
7599
7725
  _loggerProxy.default.logger.log("Meeting:index#requestScreenShareFloor --> NOT requesting floor, because we don't have the share stream anymore (shareStream=".concat(this.mediaProperties.shareVideoStream ? 'yes' : 'no', ", sendShare=").concat(this.mediaProperties.mediaDirection.sendShare, ")"));
7600
7726
  this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
@@ -7625,34 +7751,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7625
7751
  resourceUrl: this.resourceUrl,
7626
7752
  shareInstanceId: this.localShareInstanceId
7627
7753
  }).then(function () {
7628
- _this47.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
7754
+ _this48.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
7629
7755
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
7630
- correlation_id: _this47.correlationId,
7631
- locus_id: _this47.locusUrl.split('/').pop()
7756
+ correlation_id: _this48.correlationId,
7757
+ locus_id: _this48.locusUrl.split('/').pop()
7632
7758
  });
7633
7759
  return _promise.default.resolve();
7634
7760
  }).catch(function (error) {
7635
7761
  _loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
7636
7762
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
7637
- correlation_id: _this47.correlationId,
7638
- locus_id: _this47.locusUrl.split('/').pop(),
7763
+ correlation_id: _this48.correlationId,
7764
+ locus_id: _this48.locusUrl.split('/').pop(),
7639
7765
  reason: error.message,
7640
7766
  stack: error.stack
7641
7767
  });
7642
7768
 
7643
7769
  // @ts-ignore
7644
- _this47.webex.internal.newMetrics.submitClientEvent({
7770
+ _this48.webex.internal.newMetrics.submitClientEvent({
7645
7771
  name: 'client.share.floor-granted.local',
7646
7772
  payload: {
7647
7773
  mediaType: 'share',
7648
7774
  errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
7649
- shareInstanceId: _this47.localShareInstanceId
7775
+ shareInstanceId: _this48.localShareInstanceId
7650
7776
  },
7651
7777
  options: {
7652
- meetingId: _this47.id
7778
+ meetingId: _this48.id
7653
7779
  }
7654
7780
  });
7655
- _this47.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7781
+ _this48.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7656
7782
  return _promise.default.reject(error);
7657
7783
  });
7658
7784
  }
@@ -7675,10 +7801,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7675
7801
  }, {
7676
7802
  key: "requestScreenShareFloorIfPending",
7677
7803
  value: function requestScreenShareFloorIfPending() {
7678
- var _this48 = this;
7804
+ var _this49 = this;
7679
7805
  if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
7680
7806
  this.requestScreenShareFloor().then(function () {
7681
- _this48.floorGrantPending = false;
7807
+ _this49.floorGrantPending = false;
7682
7808
  });
7683
7809
  }
7684
7810
  }
@@ -7692,7 +7818,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7692
7818
  }, {
7693
7819
  key: "releaseScreenShareFloor",
7694
7820
  value: function releaseScreenShareFloor() {
7695
- var _this49 = this;
7821
+ var _this50 = this;
7696
7822
  var content = this.locusInfo.mediaShares.find(function (element) {
7697
7823
  return element.name === _constants.CONTENT;
7698
7824
  });
@@ -7727,8 +7853,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7727
7853
  }).catch(function (error) {
7728
7854
  _loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
7729
7855
  _metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
7730
- correlation_id: _this49.correlationId,
7731
- locus_id: _this49.locusUrl.split('/').pop(),
7856
+ correlation_id: _this50.correlationId,
7857
+ locus_id: _this50.locusUrl.split('/').pop(),
7732
7858
  reason: error.message,
7733
7859
  stack: error.stack
7734
7860
  });
@@ -7784,13 +7910,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7784
7910
  * @param {boolean} mutedEnabled
7785
7911
  * @param {boolean} disallowUnmuteEnabled
7786
7912
  * @param {boolean} muteOnEntryEnabled
7913
+ * @param {array} roles
7787
7914
  * @public
7788
7915
  * @memberof Meeting
7789
7916
  */
7790
7917
  }, {
7791
7918
  key: "setMuteAll",
7792
- value: function setMuteAll(mutedEnabled, disallowUnmuteEnabled, muteOnEntryEnabled) {
7793
- return this.controlsOptionsManager.setMuteAll(mutedEnabled, disallowUnmuteEnabled, muteOnEntryEnabled);
7919
+ value: function setMuteAll(mutedEnabled, disallowUnmuteEnabled, muteOnEntryEnabled, roles) {
7920
+ return this.controlsOptionsManager.setMuteAll(mutedEnabled, disallowUnmuteEnabled, muteOnEntryEnabled, roles);
7794
7921
  }
7795
7922
 
7796
7923
  /**
@@ -7907,7 +8034,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7907
8034
  }, {
7908
8035
  key: "changeVideoLayout",
7909
8036
  value: function changeVideoLayout(layoutType) {
7910
- var _this50 = this;
8037
+ var _this51 = this;
7911
8038
  var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7912
8039
  var main = renderInfo.main,
7913
8040
  content = renderInfo.content;
@@ -7961,7 +8088,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7961
8088
  }
7962
8089
  this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
7963
8090
  this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
7964
- _triggerProxy.default.trigger(_this50, {
8091
+ _triggerProxy.default.trigger(_this51, {
7965
8092
  file: 'meeting/index',
7966
8093
  function: 'changeVideoLayout'
7967
8094
  }, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
@@ -8077,7 +8204,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8077
8204
  }, {
8078
8205
  key: "endMeetingForAll",
8079
8206
  value: function endMeetingForAll() {
8080
- var _this51 = this;
8207
+ var _this52 = this;
8081
8208
  // @ts-ignore
8082
8209
  this.webex.internal.newMetrics.submitClientEvent({
8083
8210
  name: 'client.call.leave',
@@ -8095,25 +8222,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8095
8222
  locus_id: this.locusId
8096
8223
  });
8097
8224
  return _util2.default.endMeetingForAll(this).then(function (end) {
8098
- _this51.meetingFiniteStateMachine.end();
8099
- _this51.clearMeetingData();
8225
+ _this52.meetingFiniteStateMachine.end();
8226
+ _this52.clearMeetingData();
8100
8227
  // upload logs on leave irrespective of meeting delete
8101
- _triggerProxy.default.trigger(_this51, {
8228
+ _triggerProxy.default.trigger(_this52, {
8102
8229
  file: 'meeting/index',
8103
8230
  function: 'endMeetingForAll'
8104
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this51);
8231
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this52);
8105
8232
  return end;
8106
8233
  }).catch(function (error) {
8107
- _this51.meetingFiniteStateMachine.fail(error);
8234
+ _this52.meetingFiniteStateMachine.fail(error);
8108
8235
  _loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
8109
8236
  // upload logs on leave irrespective of meeting delete
8110
- _triggerProxy.default.trigger(_this51, {
8237
+ _triggerProxy.default.trigger(_this52, {
8111
8238
  file: 'meeting/index',
8112
8239
  function: 'endMeetingForAll'
8113
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this51);
8240
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this52);
8114
8241
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
8115
- correlation_id: _this51.correlationId,
8116
- locus_id: _this51.locusUrl.split('/').pop(),
8242
+ correlation_id: _this52.correlationId,
8243
+ locus_id: _this52.locusUrl.split('/').pop(),
8117
8244
  reason: error.message,
8118
8245
  stack: error.stack,
8119
8246
  code: error.code
@@ -8202,37 +8329,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8202
8329
  }, {
8203
8330
  key: "enableMusicMode",
8204
8331
  value: (function () {
8205
- var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34(shouldEnableMusicMode) {
8206
- return _regenerator.default.wrap(function _callee34$(_context34) {
8207
- while (1) switch (_context34.prev = _context34.next) {
8332
+ var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35(shouldEnableMusicMode) {
8333
+ return _regenerator.default.wrap(function _callee35$(_context35) {
8334
+ while (1) switch (_context35.prev = _context35.next) {
8208
8335
  case 0:
8209
8336
  this.checkMediaConnection();
8210
8337
  if (this.isMultistream) {
8211
- _context34.next = 3;
8338
+ _context35.next = 3;
8212
8339
  break;
8213
8340
  }
8214
8341
  throw new Error('enableMusicMode() only supported with multistream');
8215
8342
  case 3:
8216
8343
  if (!shouldEnableMusicMode) {
8217
- _context34.next = 8;
8344
+ _context35.next = 8;
8218
8345
  break;
8219
8346
  }
8220
- _context34.next = 6;
8347
+ _context35.next = 6;
8221
8348
  return this.sendSlotManager.setCodecParameters(_internalMediaCore.MediaType.AudioMain, {
8222
8349
  maxaveragebitrate: '64000',
8223
8350
  maxplaybackrate: '48000'
8224
8351
  });
8225
8352
  case 6:
8226
- _context34.next = 10;
8353
+ _context35.next = 10;
8227
8354
  break;
8228
8355
  case 8:
8229
- _context34.next = 10;
8356
+ _context35.next = 10;
8230
8357
  return this.sendSlotManager.deleteCodecParameters(_internalMediaCore.MediaType.AudioMain, ['maxaveragebitrate', 'maxplaybackrate']);
8231
8358
  case 10:
8232
8359
  case "end":
8233
- return _context34.stop();
8360
+ return _context35.stop();
8234
8361
  }
8235
- }, _callee34, this);
8362
+ }, _callee35, this);
8236
8363
  }));
8237
8364
  function enableMusicMode(_x36) {
8238
8365
  return _enableMusicMode.apply(this, arguments);
@@ -8255,7 +8382,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8255
8382
  _this$mediaProperties41,
8256
8383
  _this$mediaProperties42,
8257
8384
  _this$mediaProperties43,
8258
- _this52 = this;
8385
+ _this53 = this;
8259
8386
  var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
8260
8387
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
8261
8388
  if (!this.canUpdateMedia()) {
@@ -8280,8 +8407,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8280
8407
  }).catch(function (error) {
8281
8408
  _loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
8282
8409
  _metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
8283
- correlation_id: _this52.correlationId,
8284
- locus_id: _this52.locusUrl.split('/').pop(),
8410
+ correlation_id: _this53.correlationId,
8411
+ locus_id: _this53.locusUrl.split('/').pop(),
8285
8412
  reason: error.message,
8286
8413
  stack: error.stack
8287
8414
  });
@@ -8325,25 +8452,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8325
8452
  }, {
8326
8453
  key: "publishStream",
8327
8454
  value: (function () {
8328
- var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35(mediaType, stream) {
8329
- return _regenerator.default.wrap(function _callee35$(_context35) {
8330
- while (1) switch (_context35.prev = _context35.next) {
8455
+ var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee36(mediaType, stream) {
8456
+ return _regenerator.default.wrap(function _callee36$(_context36) {
8457
+ while (1) switch (_context36.prev = _context36.next) {
8331
8458
  case 0:
8332
8459
  if (stream) {
8333
- _context35.next = 2;
8460
+ _context36.next = 2;
8334
8461
  break;
8335
8462
  }
8336
- return _context35.abrupt("return");
8463
+ return _context36.abrupt("return");
8337
8464
  case 2:
8338
8465
  if (!this.mediaProperties.webrtcMediaConnection) {
8339
- _context35.next = 7;
8466
+ _context36.next = 7;
8340
8467
  break;
8341
8468
  }
8342
8469
  if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
8343
- _context35.next = 6;
8470
+ _context36.next = 6;
8344
8471
  break;
8345
8472
  }
8346
- _context35.next = 6;
8473
+ _context36.next = 6;
8347
8474
  return this.sendSlotManager.publishStream(mediaType, stream);
8348
8475
  case 6:
8349
8476
  this.emitPublishStateChangeEvent({
@@ -8354,9 +8481,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8354
8481
  });
8355
8482
  case 7:
8356
8483
  case "end":
8357
- return _context35.stop();
8484
+ return _context36.stop();
8358
8485
  }
8359
- }, _callee35, this);
8486
+ }, _callee36, this);
8360
8487
  }));
8361
8488
  function publishStream(_x37, _x38) {
8362
8489
  return _publishStream.apply(this, arguments);
@@ -8374,21 +8501,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8374
8501
  }, {
8375
8502
  key: "unpublishStream",
8376
8503
  value: (function () {
8377
- var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee36(mediaType, stream) {
8378
- return _regenerator.default.wrap(function _callee36$(_context36) {
8379
- while (1) switch (_context36.prev = _context36.next) {
8504
+ var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee37(mediaType, stream) {
8505
+ return _regenerator.default.wrap(function _callee37$(_context37) {
8506
+ while (1) switch (_context37.prev = _context37.next) {
8380
8507
  case 0:
8381
8508
  if (stream) {
8382
- _context36.next = 2;
8509
+ _context37.next = 2;
8383
8510
  break;
8384
8511
  }
8385
- return _context36.abrupt("return");
8512
+ return _context37.abrupt("return");
8386
8513
  case 2:
8387
8514
  if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
8388
- _context36.next = 5;
8515
+ _context37.next = 5;
8389
8516
  break;
8390
8517
  }
8391
- _context36.next = 5;
8518
+ _context37.next = 5;
8392
8519
  return this.sendSlotManager.unpublishStream(mediaType);
8393
8520
  case 5:
8394
8521
  this.emitPublishStateChangeEvent({
@@ -8399,9 +8526,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8399
8526
  });
8400
8527
  case 6:
8401
8528
  case "end":
8402
- return _context36.stop();
8529
+ return _context37.stop();
8403
8530
  }
8404
- }, _callee36, this);
8531
+ }, _callee37, this);
8405
8532
  }));
8406
8533
  function unpublishStream(_x39, _x40) {
8407
8534
  return _unpublishStream.apply(this, arguments);
@@ -8418,19 +8545,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8418
8545
  }, {
8419
8546
  key: "publishStreams",
8420
8547
  value: (function () {
8421
- var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee37(streams) {
8548
+ var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee38(streams) {
8422
8549
  var _streams$screenShare, _streams$screenShare2, _streams$screenShare3, _streams$screenShare4, _streams$screenShare5, _streams$screenShare6;
8423
8550
  var streamChecks, _i, _streamChecks, _streamChecks$_i, stream, name, floorRequestNeeded, _streams$screenShare7;
8424
- return _regenerator.default.wrap(function _callee37$(_context37) {
8425
- while (1) switch (_context37.prev = _context37.next) {
8551
+ return _regenerator.default.wrap(function _callee38$(_context38) {
8552
+ while (1) switch (_context38.prev = _context38.next) {
8426
8553
  case 0:
8427
8554
  _loggerProxy.default.logger.info("Meeting:index#publishStreams --> called with: ".concat((0, _stringify.default)(streams)));
8428
8555
  this.checkMediaConnection();
8429
8556
  if (!(!streams.microphone && !streams.camera && !((_streams$screenShare = streams.screenShare) !== null && _streams$screenShare !== void 0 && _streams$screenShare.audio) && !((_streams$screenShare2 = streams.screenShare) !== null && _streams$screenShare2 !== void 0 && _streams$screenShare2.video))) {
8430
- _context37.next = 4;
8557
+ _context38.next = 4;
8431
8558
  break;
8432
8559
  }
8433
- return _context37.abrupt("return");
8560
+ return _context38.abrupt("return");
8434
8561
  case 4:
8435
8562
  streamChecks = [{
8436
8563
  stream: streams === null || streams === void 0 ? void 0 : streams.microphone,
@@ -8448,62 +8575,62 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8448
8575
  _i = 0, _streamChecks = streamChecks;
8449
8576
  case 6:
8450
8577
  if (!(_i < _streamChecks.length)) {
8451
- _context37.next = 13;
8578
+ _context38.next = 13;
8452
8579
  break;
8453
8580
  }
8454
8581
  _streamChecks$_i = _streamChecks[_i], stream = _streamChecks$_i.stream, name = _streamChecks$_i.name;
8455
8582
  if (!((stream === null || stream === void 0 ? void 0 : stream.readyState) === 'ended')) {
8456
- _context37.next = 10;
8583
+ _context38.next = 10;
8457
8584
  break;
8458
8585
  }
8459
8586
  throw new Error("Attempted to publish ".concat(name, " stream with ended readyState, correlationId=").concat(this.correlationId));
8460
8587
  case 10:
8461
8588
  _i++;
8462
- _context37.next = 6;
8589
+ _context38.next = 6;
8463
8590
  break;
8464
8591
  case 13:
8465
8592
  floorRequestNeeded = false; // Screenshare Audio is supported only in multi stream. So we check for screenshare audio presence only if it's a multi stream meeting
8466
8593
  if (!(this.isMultistream && (_streams$screenShare5 = streams.screenShare) !== null && _streams$screenShare5 !== void 0 && _streams$screenShare5.audio)) {
8467
- _context37.next = 18;
8594
+ _context38.next = 18;
8468
8595
  break;
8469
8596
  }
8470
- _context37.next = 17;
8597
+ _context38.next = 17;
8471
8598
  return this.setLocalShareAudioStream(streams.screenShare.audio);
8472
8599
  case 17:
8473
8600
  floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
8474
8601
  case 18:
8475
8602
  if (!((_streams$screenShare6 = streams.screenShare) !== null && _streams$screenShare6 !== void 0 && _streams$screenShare6.video)) {
8476
- _context37.next = 22;
8603
+ _context38.next = 22;
8477
8604
  break;
8478
8605
  }
8479
- _context37.next = 21;
8606
+ _context38.next = 21;
8480
8607
  return this.setLocalShareVideoStream((_streams$screenShare7 = streams.screenShare) === null || _streams$screenShare7 === void 0 ? void 0 : _streams$screenShare7.video);
8481
8608
  case 21:
8482
8609
  floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
8483
8610
  case 22:
8484
8611
  if (!streams.microphone) {
8485
- _context37.next = 25;
8612
+ _context38.next = 25;
8486
8613
  break;
8487
8614
  }
8488
- _context37.next = 25;
8615
+ _context38.next = 25;
8489
8616
  return this.setLocalAudioStream(streams.microphone);
8490
8617
  case 25:
8491
8618
  if (!streams.camera) {
8492
- _context37.next = 28;
8619
+ _context38.next = 28;
8493
8620
  break;
8494
8621
  }
8495
- _context37.next = 28;
8622
+ _context38.next = 28;
8496
8623
  return this.setLocalVideoStream(streams.camera);
8497
8624
  case 28:
8498
8625
  if (this.isMultistream) {
8499
- _context37.next = 31;
8626
+ _context38.next = 31;
8500
8627
  break;
8501
8628
  }
8502
- _context37.next = 31;
8629
+ _context38.next = 31;
8503
8630
  return this.updateTranscodedMediaConnection();
8504
8631
  case 31:
8505
8632
  if (!floorRequestNeeded) {
8506
- _context37.next = 37;
8633
+ _context38.next = 37;
8507
8634
  break;
8508
8635
  }
8509
8636
  this.localShareInstanceId = _uuid.default.v4();
@@ -8527,13 +8654,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8527
8654
  // we're sending the http request to Locus to request the screen share floor
8528
8655
  // only after the SDP update, because that's how it's always been done for transcoded meetings
8529
8656
  // and also if sharing from the start, we need confluence to have been created
8530
- _context37.next = 37;
8657
+ _context38.next = 37;
8531
8658
  return this.enqueueScreenShareFloorRequest();
8532
8659
  case 37:
8533
8660
  case "end":
8534
- return _context37.stop();
8661
+ return _context38.stop();
8535
8662
  }
8536
- }, _callee37, this);
8663
+ }, _callee38, this);
8537
8664
  }));
8538
8665
  function publishStreams(_x41) {
8539
8666
  return _publishStreams.apply(this, arguments);
@@ -8550,10 +8677,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8550
8677
  }, {
8551
8678
  key: "unpublishStreams",
8552
8679
  value: (function () {
8553
- var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee38(streams) {
8680
+ var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee39(streams) {
8554
8681
  var promises, _iterator, _step, stream;
8555
- return _regenerator.default.wrap(function _callee38$(_context38) {
8556
- while (1) switch (_context38.prev = _context38.next) {
8682
+ return _regenerator.default.wrap(function _callee39$(_context39) {
8683
+ while (1) switch (_context39.prev = _context39.next) {
8557
8684
  case 0:
8558
8685
  _loggerProxy.default.logger.info("Meeting:index#unpublishStreams --> called with: ".concat((0, _stringify.default)(streams)));
8559
8686
  this.checkMediaConnection();
@@ -8585,7 +8712,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8585
8712
  if (!this.isMultistream) {
8586
8713
  promises.push(this.updateTranscodedMediaConnection());
8587
8714
  }
8588
- _context38.next = 8;
8715
+ _context39.next = 8;
8589
8716
  return _promise.default.all(promises);
8590
8717
  case 8:
8591
8718
  // we're allowing for the SDK to support just audio share as well
@@ -8606,9 +8733,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8606
8733
  }
8607
8734
  case 9:
8608
8735
  case "end":
8609
- return _context38.stop();
8736
+ return _context39.stop();
8610
8737
  }
8611
- }, _callee38, this);
8738
+ }, _callee39, this);
8612
8739
  }));
8613
8740
  function unpublishStreams(_x42) {
8614
8741
  return _unpublishStreams.apply(this, arguments);
@@ -8670,55 +8797,55 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8670
8797
  }], [{
8671
8798
  key: "handleDeviceLogging",
8672
8799
  value: (function () {
8673
- var _handleDeviceLogging = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee39(isAudioEnabled, isVideoEnabled) {
8800
+ var _handleDeviceLogging = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee40(isAudioEnabled, isVideoEnabled) {
8674
8801
  var devices;
8675
- return _regenerator.default.wrap(function _callee39$(_context39) {
8676
- while (1) switch (_context39.prev = _context39.next) {
8802
+ return _regenerator.default.wrap(function _callee40$(_context40) {
8803
+ while (1) switch (_context40.prev = _context40.next) {
8677
8804
  case 0:
8678
- _context39.prev = 0;
8805
+ _context40.prev = 0;
8679
8806
  devices = [];
8680
8807
  if (!(isVideoEnabled && isAudioEnabled)) {
8681
- _context39.next = 8;
8808
+ _context40.next = 8;
8682
8809
  break;
8683
8810
  }
8684
- _context39.next = 5;
8811
+ _context40.next = 5;
8685
8812
  return (0, _mediaHelpers.getDevices)();
8686
8813
  case 5:
8687
- devices = _context39.sent;
8688
- _context39.next = 18;
8814
+ devices = _context40.sent;
8815
+ _context40.next = 18;
8689
8816
  break;
8690
8817
  case 8:
8691
8818
  if (!isVideoEnabled) {
8692
- _context39.next = 14;
8819
+ _context40.next = 14;
8693
8820
  break;
8694
8821
  }
8695
- _context39.next = 11;
8822
+ _context40.next = 11;
8696
8823
  return (0, _mediaHelpers.getDevices)(_media.default.DeviceKind.VIDEO_INPUT);
8697
8824
  case 11:
8698
- devices = _context39.sent;
8699
- _context39.next = 18;
8825
+ devices = _context40.sent;
8826
+ _context40.next = 18;
8700
8827
  break;
8701
8828
  case 14:
8702
8829
  if (!isAudioEnabled) {
8703
- _context39.next = 18;
8830
+ _context40.next = 18;
8704
8831
  break;
8705
8832
  }
8706
- _context39.next = 17;
8833
+ _context40.next = 17;
8707
8834
  return (0, _mediaHelpers.getDevices)(_media.default.DeviceKind.AUDIO_INPUT);
8708
8835
  case 17:
8709
- devices = _context39.sent;
8836
+ devices = _context40.sent;
8710
8837
  case 18:
8711
8838
  _util2.default.handleDeviceLogging(devices);
8712
- _context39.next = 23;
8839
+ _context40.next = 23;
8713
8840
  break;
8714
8841
  case 21:
8715
- _context39.prev = 21;
8716
- _context39.t0 = _context39["catch"](0);
8842
+ _context40.prev = 21;
8843
+ _context40.t0 = _context40["catch"](0);
8717
8844
  case 23:
8718
8845
  case "end":
8719
- return _context39.stop();
8846
+ return _context40.stop();
8720
8847
  }
8721
- }, _callee39, null, [[0, 21]]);
8848
+ }, _callee40, null, [[0, 21]]);
8722
8849
  }));
8723
8850
  function handleDeviceLogging(_x43, _x44) {
8724
8851
  return _handleDeviceLogging.apply(this, arguments);