@webex/plugin-meetings 3.7.0-next.3 → 3.7.0-next.31

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 (114) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/common/errors/{webinar-registration-error.js → join-webinar-error.js} +12 -12
  4. package/dist/common/errors/join-webinar-error.js.map +1 -0
  5. package/dist/config.js +1 -1
  6. package/dist/config.js.map +1 -1
  7. package/dist/constants.js +31 -6
  8. package/dist/constants.js.map +1 -1
  9. package/dist/index.js +8 -15
  10. package/dist/index.js.map +1 -1
  11. package/dist/interpretation/index.js +1 -1
  12. package/dist/interpretation/siLanguage.js +1 -1
  13. package/dist/locus-info/index.js +13 -2
  14. package/dist/locus-info/index.js.map +1 -1
  15. package/dist/locus-info/selfUtils.js +30 -17
  16. package/dist/locus-info/selfUtils.js.map +1 -1
  17. package/dist/meeting/in-meeting-actions.js +11 -1
  18. package/dist/meeting/in-meeting-actions.js.map +1 -1
  19. package/dist/meeting/index.js +810 -779
  20. package/dist/meeting/index.js.map +1 -1
  21. package/dist/meeting/request.js +30 -0
  22. package/dist/meeting/request.js.map +1 -1
  23. package/dist/meeting/request.type.js.map +1 -1
  24. package/dist/meeting/util.js +3 -8
  25. package/dist/meeting/util.js.map +1 -1
  26. package/dist/meeting-info/meeting-info-v2.js +29 -17
  27. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  28. package/dist/meetings/index.js +6 -3
  29. package/dist/meetings/index.js.map +1 -1
  30. package/dist/member/index.js +9 -0
  31. package/dist/member/index.js.map +1 -1
  32. package/dist/member/types.js.map +1 -1
  33. package/dist/member/util.js +39 -28
  34. package/dist/member/util.js.map +1 -1
  35. package/dist/members/util.js +4 -2
  36. package/dist/members/util.js.map +1 -1
  37. package/dist/metrics/constants.js +1 -1
  38. package/dist/metrics/constants.js.map +1 -1
  39. package/dist/multistream/remoteMedia.js +30 -15
  40. package/dist/multistream/remoteMedia.js.map +1 -1
  41. package/dist/multistream/sendSlotManager.js +24 -0
  42. package/dist/multistream/sendSlotManager.js.map +1 -1
  43. package/dist/reachability/clusterReachability.js +12 -11
  44. package/dist/reachability/clusterReachability.js.map +1 -1
  45. package/dist/recording-controller/enums.js +8 -4
  46. package/dist/recording-controller/enums.js.map +1 -1
  47. package/dist/recording-controller/index.js +18 -9
  48. package/dist/recording-controller/index.js.map +1 -1
  49. package/dist/recording-controller/util.js +13 -9
  50. package/dist/recording-controller/util.js.map +1 -1
  51. package/dist/types/common/errors/{webinar-registration-error.d.ts → join-webinar-error.d.ts} +2 -2
  52. package/dist/types/constants.d.ts +23 -1
  53. package/dist/types/index.d.ts +3 -3
  54. package/dist/types/locus-info/index.d.ts +2 -1
  55. package/dist/types/meeting/in-meeting-actions.d.ts +10 -0
  56. package/dist/types/meeting/index.d.ts +9 -10
  57. package/dist/types/meeting/request.d.ts +12 -1
  58. package/dist/types/meeting/request.type.d.ts +6 -0
  59. package/dist/types/meeting/util.d.ts +1 -1
  60. package/dist/types/meeting-info/meeting-info-v2.d.ts +4 -4
  61. package/dist/types/meetings/index.d.ts +3 -0
  62. package/dist/types/member/index.d.ts +1 -0
  63. package/dist/types/member/types.d.ts +7 -0
  64. package/dist/types/members/util.d.ts +2 -0
  65. package/dist/types/metrics/constants.d.ts +1 -1
  66. package/dist/types/multistream/sendSlotManager.d.ts +8 -1
  67. package/dist/types/recording-controller/enums.d.ts +5 -2
  68. package/dist/types/recording-controller/index.d.ts +1 -0
  69. package/dist/types/recording-controller/util.d.ts +2 -1
  70. package/dist/webinar/index.js +390 -7
  71. package/dist/webinar/index.js.map +1 -1
  72. package/package.json +23 -22
  73. package/src/common/errors/join-webinar-error.ts +24 -0
  74. package/src/config.ts +1 -1
  75. package/src/constants.ts +28 -3
  76. package/src/index.ts +2 -3
  77. package/src/locus-info/index.ts +17 -2
  78. package/src/locus-info/selfUtils.ts +19 -6
  79. package/src/meeting/in-meeting-actions.ts +21 -0
  80. package/src/meeting/index.ts +147 -54
  81. package/src/meeting/request.ts +26 -1
  82. package/src/meeting/request.type.ts +7 -0
  83. package/src/meeting/util.ts +3 -9
  84. package/src/meeting-info/meeting-info-v2.ts +23 -11
  85. package/src/meetings/index.ts +8 -2
  86. package/src/member/index.ts +9 -0
  87. package/src/member/types.ts +8 -0
  88. package/src/member/util.ts +34 -24
  89. package/src/members/util.ts +1 -0
  90. package/src/metrics/constants.ts +1 -1
  91. package/src/multistream/remoteMedia.ts +28 -15
  92. package/src/multistream/sendSlotManager.ts +31 -0
  93. package/src/reachability/clusterReachability.ts +4 -1
  94. package/src/recording-controller/enums.ts +5 -2
  95. package/src/recording-controller/index.ts +17 -4
  96. package/src/recording-controller/util.ts +20 -5
  97. package/src/webinar/index.ts +235 -9
  98. package/test/unit/spec/locus-info/index.js +222 -0
  99. package/test/unit/spec/locus-info/selfConstant.js +7 -0
  100. package/test/unit/spec/locus-info/selfUtils.js +91 -1
  101. package/test/unit/spec/meeting/in-meeting-actions.ts +13 -1
  102. package/test/unit/spec/meeting/index.js +318 -81
  103. package/test/unit/spec/meeting/utils.js +11 -19
  104. package/test/unit/spec/meeting-info/meetinginfov2.js +9 -4
  105. package/test/unit/spec/meetings/index.js +9 -5
  106. package/test/unit/spec/member/util.js +52 -11
  107. package/test/unit/spec/members/utils.js +95 -0
  108. package/test/unit/spec/multistream/remoteMedia.ts +11 -7
  109. package/test/unit/spec/reachability/clusterReachability.ts +7 -0
  110. package/test/unit/spec/recording-controller/index.js +61 -5
  111. package/test/unit/spec/recording-controller/util.js +39 -3
  112. package/test/unit/spec/webinar/index.ts +504 -0
  113. package/dist/common/errors/webinar-registration-error.js.map +0 -1
  114. package/src/common/errors/webinar-registration-error.ts +0 -27
@@ -18,10 +18,10 @@ _Object$defineProperty(exports, "__esModule", {
18
18
  exports.default = exports.ScreenShareFloorStatus = exports.MEDIA_UPDATE_TYPE = void 0;
19
19
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
20
20
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
21
+ var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
21
22
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
22
23
  var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
23
24
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
24
- var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
25
25
  var _weakMap = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/weak-map"));
26
26
  var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/typeof"));
27
27
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
@@ -87,7 +87,7 @@ var _controlsOptionsManager = _interopRequireDefault(require("../controls-option
87
87
  var _permission = _interopRequireDefault(require("../common/errors/permission"));
88
88
  var _locusMediaRequest = require("./locusMediaRequest");
89
89
  var _connectionStateHandler = require("./connectionStateHandler");
90
- var _webinarRegistrationError = _interopRequireDefault(require("../common/errors/webinar-registration-error"));
90
+ var _joinWebinarError = _interopRequireDefault(require("../common/errors/join-webinar-error"));
91
91
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
92
92
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
93
93
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
@@ -1027,6 +1027,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
1027
1027
  options.data.intervalMetadata.peerReflexiveIP =
1028
1028
  // @ts-ignore
1029
1029
  ((_this$webex$meetings$ = _this.webex.meetings.geoHintInfo) === null || _this$webex$meetings$ === void 0 ? void 0 : _this$webex$meetings$.clientAddress) || options.data.intervalMetadata.peerReflexiveIP || _constants.MQA_STATS.DEFAULT_IP;
1030
+ var members = _this.getMembers().membersCollection.members;
1031
+
1032
+ // Count members that are in the meeting
1033
+ options.data.intervalMetadata.meetingUserCount = (0, _values.default)(members).filter(function (member) {
1034
+ return member.isInMeeting;
1035
+ }).length;
1036
+
1030
1037
  // @ts-ignore
1031
1038
  _this.webex.internal.newMetrics.submitMQE({
1032
1039
  name: 'client.mediaquality.event',
@@ -1520,7 +1527,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
1520
1527
  * @memberof Meeting
1521
1528
  */
1522
1529
  // @ts-ignore
1523
- _this.webinar = new _webinar.default({}, {
1530
+ _this.webinar = new _webinar.default({
1531
+ meetingId: _this.id
1532
+ }, {
1524
1533
  parent: _this.webex
1525
1534
  });
1526
1535
  /**
@@ -2427,19 +2436,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
2427
2436
  }
2428
2437
  throw new _permission.default();
2429
2438
  case 21:
2430
- if (!(_context5.t0 instanceof _meetingInfoV.MeetingInfoV2WebinarRegistrationError)) {
2431
- _context5.next = 28;
2439
+ if (!(_context5.t0 instanceof _meetingInfoV.MeetingInfoV2JoinWebinarError)) {
2440
+ _context5.next = 29;
2432
2441
  break;
2433
2442
  }
2434
2443
  this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.WEBINAR_REGISTRATION;
2444
+ if (_constants.WEBINAR_ERROR_WEBCAST.includes(_context5.t0.wbxAppApiCode)) {
2445
+ this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.NEED_JOIN_WITH_WEBCAST;
2446
+ } else if (_constants.WEBINAR_ERROR_REGISTRATIONID.includes(_context5.t0.wbxAppApiCode)) {
2447
+ this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.WEBINAR_NEED_REGISTRATIONID;
2448
+ }
2435
2449
  this.meetingInfoFailureCode = _context5.t0.wbxAppApiCode;
2436
2450
  if (_context5.t0.meetingInfo) {
2437
2451
  this.meetingInfo = _context5.t0.meetingInfo;
2438
2452
  }
2439
- throw new _webinarRegistrationError.default();
2440
- case 28:
2453
+ throw new _joinWebinarError.default();
2454
+ case 29:
2441
2455
  if (!(_context5.t0 instanceof _meetingInfoV.MeetingInfoV2PasswordError)) {
2442
- _context5.next = 40;
2456
+ _context5.next = 41;
2443
2457
  break;
2444
2458
  }
2445
2459
  _loggerProxy.default.logger.info( // @ts-ignore
@@ -2454,16 +2468,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
2454
2468
  this.passwordStatus = _constants.PASSWORD_STATUS.REQUIRED;
2455
2469
  this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.WRONG_PASSWORD;
2456
2470
  if (!this.requiredCaptcha) {
2457
- _context5.next = 37;
2471
+ _context5.next = 38;
2458
2472
  break;
2459
2473
  }
2460
- _context5.next = 37;
2474
+ _context5.next = 38;
2461
2475
  return this.refreshCaptcha();
2462
- case 37:
2476
+ case 38:
2463
2477
  throw new _passwordError.default();
2464
- case 40:
2478
+ case 41:
2465
2479
  if (!(_context5.t0 instanceof _meetingInfoV.MeetingInfoV2CaptchaError)) {
2466
- _context5.next = 49;
2480
+ _context5.next = 50;
2467
2481
  break;
2468
2482
  }
2469
2483
  _loggerProxy.default.logger.info( // @ts-ignore
@@ -2475,10 +2489,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
2475
2489
  }
2476
2490
  this.requiredCaptcha = _context5.t0.captchaInfo;
2477
2491
  throw new _captchaError.default();
2478
- case 49:
2492
+ case 50:
2479
2493
  this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.OTHER;
2480
2494
  throw _context5.t0;
2481
- case 51:
2495
+ case 52:
2482
2496
  case "end":
2483
2497
  return _context5.stop();
2484
2498
  }
@@ -3244,6 +3258,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3244
3258
  });
3245
3259
  this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_PRACTICE_SESSION_STATUS_UPDATED, function (_ref24) {
3246
3260
  var state = _ref24.state;
3261
+ _this13.webinar.updatePracticeSessionStatus(state);
3247
3262
  _triggerProxy.default.trigger(_this13, {
3248
3263
  file: 'meeting/index',
3249
3264
  function: 'setupLocusControlsListener'
@@ -3310,7 +3325,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3310
3325
  this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_MEDIA_SHARES, /*#__PURE__*/function () {
3311
3326
  var _ref27 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(payload) {
3312
3327
  var _payload$previous, _payload$previous2;
3313
- var _payload$current, contentShare, whiteboardShare, previousContentShare, previousWhiteboardShare, newShareStatus, oldShareStatus, sendStartedSharingRemote, _this14$mediaProperti;
3328
+ var _payload$current, contentShare, whiteboardShare, previousContentShare, previousWhiteboardShare, newShareStatus, _this14$locusInfo, _this14$locusInfo$inf, _this14$webinar, oldShareStatus, sendStartedSharingRemote, _this14$mediaProperti;
3314
3329
  return _regenerator.default.wrap(function _callee8$(_context8) {
3315
3330
  while (1) switch (_context8.prev = _context8.next) {
3316
3331
  case 0:
@@ -3318,7 +3333,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3318
3333
  previousContentShare = (_payload$previous = payload.previous) === null || _payload$previous === void 0 ? void 0 : _payload$previous.content;
3319
3334
  previousWhiteboardShare = (_payload$previous2 = payload.previous) === null || _payload$previous2 === void 0 ? void 0 : _payload$previous2.whiteboard;
3320
3335
  _this14.triggerAnnotationInfoEvent(contentShare, previousContentShare);
3321
- if (!(contentShare.beneficiaryId === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.beneficiaryId) && contentShare.disposition === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.disposition) && contentShare.deviceUrlSharing === previousContentShare.deviceUrlSharing && whiteboardShare.beneficiaryId === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.beneficiaryId) && whiteboardShare.disposition === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.disposition) && whiteboardShare.resourceUrl === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.resourceUrl) && contentShare.resourceType === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.resourceType))) {
3336
+ if (!(!payload.forceUpdate && contentShare.beneficiaryId === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.beneficiaryId) && contentShare.disposition === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.disposition) && contentShare.deviceUrlSharing === previousContentShare.deviceUrlSharing && whiteboardShare.beneficiaryId === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.beneficiaryId) && whiteboardShare.disposition === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.disposition) && whiteboardShare.resourceUrl === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.resourceUrl) && contentShare.resourceType === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.resourceType))) {
3322
3337
  _context8.next = 6;
3323
3338
  break;
3324
3339
  }
@@ -3344,7 +3359,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3344
3359
  // It does not matter who requested to share the whiteboard, everyone gets the same view
3345
3360
  else if (whiteboardShare.disposition === _constants.FLOOR_ACTION.GRANTED) {
3346
3361
  // WHITEBOARD - sharing whiteboard
3347
- newShareStatus = _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE;
3362
+ // Webinar attendee should receive whiteboard as remote share
3363
+ newShareStatus = (_this14$locusInfo = _this14.locusInfo) !== null && _this14$locusInfo !== void 0 && (_this14$locusInfo$inf = _this14$locusInfo.info) !== null && _this14$locusInfo$inf !== void 0 && _this14$locusInfo$inf.isWebinar && (_this14$webinar = _this14.webinar) !== null && _this14$webinar !== void 0 && _this14$webinar.selfIsAttendee ? _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE : _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE;
3348
3364
  }
3349
3365
  // or if content share is either released or null and whiteboard share is either released or null, no one is sharing
3350
3366
  else if ((previousContentShare && contentShare.disposition === _constants.FLOOR_ACTION.RELEASED || contentShare.disposition === null) && (previousWhiteboardShare && whiteboardShare.disposition === _constants.FLOOR_ACTION.RELEASED || whiteboardShare.disposition === null)) {
@@ -3578,7 +3594,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3578
3594
  value: function setUpLocusResourcesListener() {
3579
3595
  var _this17 = this;
3580
3596
  this.locusInfo.on(_constants.LOCUSINFO.EVENTS.LINKS_RESOURCES, function (payload) {
3581
- _this17.webinar.updateWebcastUrl(payload);
3597
+ if (payload) {
3598
+ _this17.webinar.updateWebcastUrl(payload);
3599
+ _triggerProxy.default.trigger(_this17, {
3600
+ file: 'meeting/index',
3601
+ function: 'setUpLocusInfoMeetingInfoListener'
3602
+ }, _constants.EVENT_TRIGGERS.MEETING_RESOURCE_LINKS_UPDATE, {
3603
+ payload: payload
3604
+ });
3605
+ }
3582
3606
  });
3583
3607
  }
3584
3608
 
@@ -3844,6 +3868,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3844
3868
  _this20.setSendNamedMediaGroup(_internalMediaCore.MediaType.AudioMain);
3845
3869
  }
3846
3870
  });
3871
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_MEETING_BRB_CHANGED, function (payload) {
3872
+ _triggerProxy.default.trigger(_this20, {
3873
+ file: 'meeting/index',
3874
+ function: 'setUpLocusInfoSelfListener'
3875
+ }, _constants.EVENT_TRIGGERS.MEETING_SELF_BRB_UPDATE, {
3876
+ payload: payload
3877
+ });
3878
+ });
3847
3879
  this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ROLES_CHANGED, function (payload) {
3848
3880
  var _payload$newRoles, _payload$newRoles2, _payload$newRoles3;
3849
3881
  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));
@@ -4042,6 +4074,62 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4042
4074
  return this.members.admitMembers(memberIds, locusUrls);
4043
4075
  }
4044
4076
 
4077
+ /**
4078
+ * Manages be right back status updates for the current participant.
4079
+ *
4080
+ * @param {boolean} enabled - Indicates whether the user enabled brb or not.
4081
+ * @returns {Promise<void>} resolves when the brb status is updated or does nothing if not in a multistream meeting.
4082
+ * @throws {Error} - Throws an error if the request fails.
4083
+ */
4084
+ }, {
4085
+ key: "beRightBack",
4086
+ value: (function () {
4087
+ var _beRightBack = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(enabled) {
4088
+ var _this23 = this;
4089
+ var errorMessage, error, _errorMessage, _error;
4090
+ return _regenerator.default.wrap(function _callee11$(_context11) {
4091
+ while (1) switch (_context11.prev = _context11.next) {
4092
+ case 0:
4093
+ if (this.isMultistream) {
4094
+ _context11.next = 5;
4095
+ break;
4096
+ }
4097
+ errorMessage = 'Meeting:index#beRightBack --> Not a multistream meeting';
4098
+ error = new Error(errorMessage);
4099
+ _loggerProxy.default.logger.error(error);
4100
+ return _context11.abrupt("return", _promise.default.reject(error));
4101
+ case 5:
4102
+ if (this.mediaProperties.webrtcMediaConnection) {
4103
+ _context11.next = 10;
4104
+ break;
4105
+ }
4106
+ _errorMessage = 'Meeting:index#beRightBack --> WebRTC media connection is not defined';
4107
+ _error = new Error(_errorMessage);
4108
+ _loggerProxy.default.logger.error(_error);
4109
+ return _context11.abrupt("return", _promise.default.reject(_error));
4110
+ case 10:
4111
+ return _context11.abrupt("return", this.meetingRequest.setBrb({
4112
+ enabled: enabled,
4113
+ locusUrl: this.locusUrl,
4114
+ deviceUrl: this.deviceUrl,
4115
+ selfId: this.selfId
4116
+ }).then(function () {
4117
+ _this23.sendSlotManager.setSourceStateOverride(_internalMediaCore.MediaType.VideoMain, enabled ? 'away' : null);
4118
+ }).catch(function (error) {
4119
+ _loggerProxy.default.logger.error('Meeting:index#beRightBack --> Error ', error);
4120
+ return _promise.default.reject(error);
4121
+ }));
4122
+ case 11:
4123
+ case "end":
4124
+ return _context11.stop();
4125
+ }
4126
+ }, _callee11, this);
4127
+ }));
4128
+ function beRightBack(_x11) {
4129
+ return _beRightBack.apply(this, arguments);
4130
+ }
4131
+ return beRightBack;
4132
+ }()
4045
4133
  /**
4046
4134
  * Remove the member from the meeting, boot them
4047
4135
  * @param {String} memberId
@@ -4049,6 +4137,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4049
4137
  * @public
4050
4138
  * @memberof Meeting
4051
4139
  */
4140
+ )
4052
4141
  }, {
4053
4142
  key: "remove",
4054
4143
  value: function remove(memberId) {
@@ -4226,6 +4315,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4226
4315
  canStopRecording: _util4.default.canUserStop(this.userDisplayHints, this.selfUserPolicies),
4227
4316
  canPauseRecording: _util4.default.canUserPause(this.userDisplayHints, this.selfUserPolicies),
4228
4317
  canResumeRecording: _util4.default.canUserResume(this.userDisplayHints, this.selfUserPolicies),
4318
+ isPremiseRecordingEnabled: _util4.default.isPremiseRecordingEnabled(this.userDisplayHints, this.selfUserPolicies),
4229
4319
  canRaiseHand: _util2.default.canUserRaiseHand(this.userDisplayHints),
4230
4320
  canLowerAllHands: _util2.default.canUserLowerAllHands(this.userDisplayHints),
4231
4321
  canLowerSomeoneElsesHand: _util2.default.canUserLowerSomeoneElsesHand(this.userDisplayHints),
@@ -4355,6 +4445,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4355
4445
  requiredHints: [_constants.DISPLAY_HINTS.DISABLE_STAGE_VIEW],
4356
4446
  displayHints: this.userDisplayHints
4357
4447
  }),
4448
+ isPracticeSessionOn: _util5.default.hasHints({
4449
+ requiredHints: [_constants.DISPLAY_HINTS.PRACTICE_SESSION_ON],
4450
+ displayHints: this.userDisplayHints
4451
+ }),
4452
+ isPracticeSessionOff: _util5.default.hasHints({
4453
+ requiredHints: [_constants.DISPLAY_HINTS.PRACTICE_SESSION_OFF],
4454
+ displayHints: this.userDisplayHints
4455
+ }),
4456
+ canStartPracticeSession: _util5.default.hasHints({
4457
+ requiredHints: [_constants.DISPLAY_HINTS.SHOW_PRACTICE_SESSION_START],
4458
+ displayHints: this.userDisplayHints
4459
+ }),
4460
+ canStopPracticeSession: _util5.default.hasHints({
4461
+ requiredHints: [_constants.DISPLAY_HINTS.SHOW_PRACTICE_SESSION_STOP],
4462
+ displayHints: this.userDisplayHints
4463
+ }),
4358
4464
  canShareFile: _util5.default.hasHints({
4359
4465
  requiredHints: [_constants.DISPLAY_HINTS.SHARE_FILE],
4360
4466
  displayHints: this.userDisplayHints
@@ -4506,25 +4612,26 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4506
4612
  }, {
4507
4613
  key: "setLogUploadTimer",
4508
4614
  value: function setLogUploadTimer() {
4509
- var _this23 = this;
4615
+ var _this24 = this;
4510
4616
  // start with short timeouts and increase them later on so in case users have very long multi-hour meetings we don't get too fragmented logs
4511
- var LOG_UPLOAD_INTERVALS = [0.1, 1, 15, 15, 30, 30, 30, 60];
4512
- var delay = 1000 *
4617
+ var LOG_UPLOAD_INTERVALS = [0.1, 15, 30, 60]; // in minutes
4618
+
4619
+ var delay = 1000 * 60 *
4513
4620
  // @ts-ignore - config coming from registerPlugin
4514
4621
  this.config.logUploadIntervalMultiplicationFactor * LOG_UPLOAD_INTERVALS[this.logUploadIntervalIndex];
4515
4622
  if (this.logUploadIntervalIndex < LOG_UPLOAD_INTERVALS.length - 1) {
4516
4623
  this.logUploadIntervalIndex += 1;
4517
4624
  }
4518
4625
  this.uploadLogsTimer = (0, _commonTimers.safeSetTimeout)(function () {
4519
- _this23.uploadLogsTimer = undefined;
4520
- _this23.uploadLogs();
4626
+ _this24.uploadLogsTimer = undefined;
4627
+ _this24.uploadLogs();
4521
4628
 
4522
4629
  // just as an extra precaution, to avoid uploading logs forever in case something goes wrong
4523
4630
  // and the page remains opened, we stop it if there is no media connection
4524
- if (!_this23.mediaProperties.webrtcMediaConnection) {
4631
+ if (!_this24.mediaProperties.webrtcMediaConnection) {
4525
4632
  return;
4526
4633
  }
4527
- _this23.setLogUploadTimer();
4634
+ _this24.setLogUploadTimer();
4528
4635
  }, delay);
4529
4636
  }
4530
4637
 
@@ -4591,7 +4698,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4591
4698
  }, {
4592
4699
  key: "closeRemoteStreams",
4593
4700
  value: function closeRemoteStreams() {
4594
- var _this24 = this;
4701
+ var _this25 = this;
4595
4702
  var _this$mediaProperties4 = this.mediaProperties,
4596
4703
  remoteAudioStream = _this$mediaProperties4.remoteAudioStream,
4597
4704
  remoteVideoStream = _this$mediaProperties4.remoteVideoStream,
@@ -4605,7 +4712,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4605
4712
  */
4606
4713
  // eslint-disable-next-line @typescript-eslint/no-shadow
4607
4714
  var triggerMediaStoppedEvent = function triggerMediaStoppedEvent(mediaType) {
4608
- _triggerProxy.default.trigger(_this24, {
4715
+ _triggerProxy.default.trigger(_this25, {
4609
4716
  file: 'meeting/index',
4610
4717
  function: 'closeRemoteStreams'
4611
4718
  }, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
@@ -4639,11 +4746,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4639
4746
  }, {
4640
4747
  key: "setLocalAudioStream",
4641
4748
  value: (function () {
4642
- var _setLocalAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(localStream) {
4749
+ var _setLocalAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12(localStream) {
4643
4750
  var _this$audio2;
4644
4751
  var oldStream;
4645
- return _regenerator.default.wrap(function _callee11$(_context11) {
4646
- while (1) switch (_context11.prev = _context11.next) {
4752
+ return _regenerator.default.wrap(function _callee12$(_context12) {
4753
+ while (1) switch (_context12.prev = _context12.next) {
4647
4754
  case 0:
4648
4755
  oldStream = this.mediaProperties.audioStream;
4649
4756
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localAudioStreamMuteStateHandler);
@@ -4657,21 +4764,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4657
4764
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localAudioStreamMuteStateHandler);
4658
4765
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
4659
4766
  if (!(!this.isMultistream || !localStream)) {
4660
- _context11.next = 12;
4767
+ _context12.next = 12;
4661
4768
  break;
4662
4769
  }
4663
- _context11.next = 12;
4770
+ _context12.next = 12;
4664
4771
  return this.unpublishStream(_internalMediaCore.MediaType.AudioMain, oldStream);
4665
4772
  case 12:
4666
- _context11.next = 14;
4773
+ _context12.next = 14;
4667
4774
  return this.publishStream(_internalMediaCore.MediaType.AudioMain, this.mediaProperties.audioStream);
4668
4775
  case 14:
4669
4776
  case "end":
4670
- return _context11.stop();
4777
+ return _context12.stop();
4671
4778
  }
4672
- }, _callee11, this);
4779
+ }, _callee12, this);
4673
4780
  }));
4674
- function setLocalAudioStream(_x11) {
4781
+ function setLocalAudioStream(_x12) {
4675
4782
  return _setLocalAudioStream.apply(this, arguments);
4676
4783
  }
4677
4784
  return setLocalAudioStream;
@@ -4687,11 +4794,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4687
4794
  }, {
4688
4795
  key: "setLocalVideoStream",
4689
4796
  value: (function () {
4690
- var _setLocalVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12(localStream) {
4797
+ var _setLocalVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13(localStream) {
4691
4798
  var _this$video2;
4692
4799
  var oldStream;
4693
- return _regenerator.default.wrap(function _callee12$(_context12) {
4694
- while (1) switch (_context12.prev = _context12.next) {
4800
+ return _regenerator.default.wrap(function _callee13$(_context13) {
4801
+ while (1) switch (_context13.prev = _context13.next) {
4695
4802
  case 0:
4696
4803
  oldStream = this.mediaProperties.videoStream;
4697
4804
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localVideoStreamMuteStateHandler);
@@ -4705,21 +4812,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4705
4812
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localVideoStreamMuteStateHandler);
4706
4813
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
4707
4814
  if (!(!this.isMultistream || !localStream)) {
4708
- _context12.next = 12;
4815
+ _context13.next = 12;
4709
4816
  break;
4710
4817
  }
4711
- _context12.next = 12;
4818
+ _context13.next = 12;
4712
4819
  return this.unpublishStream(_internalMediaCore.MediaType.VideoMain, oldStream);
4713
4820
  case 12:
4714
- _context12.next = 14;
4821
+ _context13.next = 14;
4715
4822
  return this.publishStream(_internalMediaCore.MediaType.VideoMain, this.mediaProperties.videoStream);
4716
4823
  case 14:
4717
4824
  case "end":
4718
- return _context12.stop();
4825
+ return _context13.stop();
4719
4826
  }
4720
- }, _callee12, this);
4827
+ }, _callee13, this);
4721
4828
  }));
4722
- function setLocalVideoStream(_x12) {
4829
+ function setLocalVideoStream(_x13) {
4723
4830
  return _setLocalVideoStream.apply(this, arguments);
4724
4831
  }
4725
4832
  return setLocalVideoStream;
@@ -4736,10 +4843,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4736
4843
  }, {
4737
4844
  key: "setLocalShareVideoStream",
4738
4845
  value: (function () {
4739
- var _setLocalShareVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13(localDisplayStream) {
4846
+ var _setLocalShareVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14(localDisplayStream) {
4740
4847
  var oldStream;
4741
- return _regenerator.default.wrap(function _callee13$(_context13) {
4742
- while (1) switch (_context13.prev = _context13.next) {
4848
+ return _regenerator.default.wrap(function _callee14$(_context14) {
4849
+ while (1) switch (_context14.prev = _context14.next) {
4743
4850
  case 0:
4744
4851
  oldStream = this.mediaProperties.shareVideoStream;
4745
4852
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.handleShareVideoStreamMuteStateChange);
@@ -4751,21 +4858,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4751
4858
  localDisplayStream === null || localDisplayStream === void 0 ? void 0 : localDisplayStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
4752
4859
  this.mediaProperties.mediaDirection.sendShare = this.mediaProperties.hasLocalShareStream();
4753
4860
  if (!(!this.isMultistream || !localDisplayStream)) {
4754
- _context13.next = 12;
4861
+ _context14.next = 12;
4755
4862
  break;
4756
4863
  }
4757
- _context13.next = 12;
4864
+ _context14.next = 12;
4758
4865
  return this.unpublishStream(_internalMediaCore.MediaType.VideoSlides, oldStream);
4759
4866
  case 12:
4760
- _context13.next = 14;
4867
+ _context14.next = 14;
4761
4868
  return this.publishStream(_internalMediaCore.MediaType.VideoSlides, this.mediaProperties.shareVideoStream);
4762
4869
  case 14:
4763
4870
  case "end":
4764
- return _context13.stop();
4871
+ return _context14.stop();
4765
4872
  }
4766
- }, _callee13, this);
4873
+ }, _callee14, this);
4767
4874
  }));
4768
- function setLocalShareVideoStream(_x13) {
4875
+ function setLocalShareVideoStream(_x14) {
4769
4876
  return _setLocalShareVideoStream.apply(this, arguments);
4770
4877
  }
4771
4878
  return setLocalShareVideoStream;
@@ -4781,10 +4888,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4781
4888
  }, {
4782
4889
  key: "setLocalShareAudioStream",
4783
4890
  value: (function () {
4784
- var _setLocalShareAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14(localSystemAudioStream) {
4891
+ var _setLocalShareAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15(localSystemAudioStream) {
4785
4892
  var oldStream;
4786
- return _regenerator.default.wrap(function _callee14$(_context14) {
4787
- while (1) switch (_context14.prev = _context14.next) {
4893
+ return _regenerator.default.wrap(function _callee15$(_context15) {
4894
+ while (1) switch (_context15.prev = _context15.next) {
4788
4895
  case 0:
4789
4896
  oldStream = this.mediaProperties.shareAudioStream;
4790
4897
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.StreamEventNames.Ended, this.handleShareAudioStreamEnded);
@@ -4794,21 +4901,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4794
4901
  localSystemAudioStream === null || localSystemAudioStream === void 0 ? void 0 : localSystemAudioStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
4795
4902
  this.mediaProperties.mediaDirection.sendShare = this.mediaProperties.hasLocalShareStream();
4796
4903
  if (!(!this.isMultistream || !localSystemAudioStream)) {
4797
- _context14.next = 10;
4904
+ _context15.next = 10;
4798
4905
  break;
4799
4906
  }
4800
- _context14.next = 10;
4907
+ _context15.next = 10;
4801
4908
  return this.unpublishStream(_internalMediaCore.MediaType.AudioSlides, oldStream);
4802
4909
  case 10:
4803
- _context14.next = 12;
4910
+ _context15.next = 12;
4804
4911
  return this.publishStream(_internalMediaCore.MediaType.AudioSlides, this.mediaProperties.shareAudioStream);
4805
4912
  case 12:
4806
4913
  case "end":
4807
- return _context14.stop();
4914
+ return _context15.stop();
4808
4915
  }
4809
- }, _callee14, this);
4916
+ }, _callee15, this);
4810
4917
  }));
4811
- function setLocalShareAudioStream(_x14) {
4918
+ function setLocalShareAudioStream(_x15) {
4812
4919
  return _setLocalShareAudioStream.apply(this, arguments);
4813
4920
  }
4814
4921
  return setLocalShareAudioStream;
@@ -4913,7 +5020,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4913
5020
  }, {
4914
5021
  key: "setMercuryListener",
4915
5022
  value: function setMercuryListener() {
4916
- var _this25 = this;
5023
+ var _this26 = this;
4917
5024
  // Client will have a socket manager and handle reconnecting to mercury, when we reconnect to mercury
4918
5025
  // if the meeting has active peer connections, it should try to reconnect.
4919
5026
  // @ts-ignore
@@ -4921,33 +5028,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4921
5028
  _loggerProxy.default.logger.info('Meeting:index#setMercuryListener --> Web socket online');
4922
5029
 
4923
5030
  // Only send restore event when it was disconnected before and for connected later
4924
- if (!_this25.hasWebsocketConnected) {
5031
+ if (!_this26.hasWebsocketConnected) {
4925
5032
  // @ts-ignore
4926
- _this25.webex.internal.newMetrics.submitClientEvent({
5033
+ _this26.webex.internal.newMetrics.submitClientEvent({
4927
5034
  name: 'client.mercury.connection.restored',
4928
5035
  options: {
4929
- meetingId: _this25.id
5036
+ meetingId: _this26.id
4930
5037
  }
4931
5038
  });
4932
5039
  _metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_RESTORED, {
4933
- correlation_id: _this25.correlationId
5040
+ correlation_id: _this26.correlationId
4934
5041
  });
4935
5042
  }
4936
- _this25.hasWebsocketConnected = true;
5043
+ _this26.hasWebsocketConnected = true;
4937
5044
  });
4938
5045
 
4939
5046
  // @ts-ignore
4940
5047
  this.webex.internal.mercury.on(_constants.OFFLINE, function () {
4941
5048
  _loggerProxy.default.logger.error('Meeting:index#setMercuryListener --> Web socket offline');
4942
5049
  // @ts-ignore
4943
- _this25.webex.internal.newMetrics.submitClientEvent({
5050
+ _this26.webex.internal.newMetrics.submitClientEvent({
4944
5051
  name: 'client.mercury.connection.lost',
4945
5052
  options: {
4946
- meetingId: _this25.id
5053
+ meetingId: _this26.id
4947
5054
  }
4948
5055
  });
4949
5056
  _metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_FAILURE, {
4950
- correlation_id: _this25.correlationId
5057
+ correlation_id: _this26.correlationId
4951
5058
  });
4952
5059
  });
4953
5060
  }
@@ -5049,7 +5156,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5049
5156
  }, {
5050
5157
  key: "muteAudio",
5051
5158
  value: function muteAudio() {
5052
- var _this26 = this;
5159
+ var _this27 = this;
5053
5160
  if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
5054
5161
  return _promise.default.reject(new _webexErrors.UserNotJoinedError());
5055
5162
  }
@@ -5065,22 +5172,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5065
5172
 
5066
5173
  // First, stop sending the local audio media
5067
5174
  return logRequest(this.audio.handleClientRequest(this, true).then(function () {
5068
- _util2.default.handleAudioLogging(_this26.mediaProperties.audioStream);
5175
+ _util2.default.handleAudioLogging(_this27.mediaProperties.audioStream);
5069
5176
  // @ts-ignore
5070
- _this26.webex.internal.newMetrics.submitClientEvent({
5177
+ _this27.webex.internal.newMetrics.submitClientEvent({
5071
5178
  name: 'client.muted',
5072
5179
  payload: {
5073
5180
  trigger: 'user-interaction',
5074
5181
  mediaType: 'audio'
5075
5182
  },
5076
5183
  options: {
5077
- meetingId: _this26.id
5184
+ meetingId: _this27.id
5078
5185
  }
5079
5186
  });
5080
5187
  }).catch(function (error) {
5081
5188
  _metrics.default.sendBehavioralMetric(_constants2.default.MUTE_AUDIO_FAILURE, {
5082
- correlation_id: _this26.correlationId,
5083
- locus_id: _this26.locusUrl.split('/').pop(),
5189
+ correlation_id: _this27.correlationId,
5190
+ locus_id: _this27.locusUrl.split('/').pop(),
5084
5191
  reason: error.message,
5085
5192
  stack: error.stack
5086
5193
  });
@@ -5099,7 +5206,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5099
5206
  }, {
5100
5207
  key: "unmuteAudio",
5101
5208
  value: function unmuteAudio() {
5102
- var _this27 = this;
5209
+ var _this28 = this;
5103
5210
  if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
5104
5211
  return _promise.default.reject(new _webexErrors.UserNotJoinedError());
5105
5212
  }
@@ -5115,22 +5222,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5115
5222
 
5116
5223
  // First, send the control to unmute the participant on the server
5117
5224
  return logRequest(this.audio.handleClientRequest(this, false).then(function () {
5118
- _util2.default.handleAudioLogging(_this27.mediaProperties.audioStream);
5225
+ _util2.default.handleAudioLogging(_this28.mediaProperties.audioStream);
5119
5226
  // @ts-ignore
5120
- _this27.webex.internal.newMetrics.submitClientEvent({
5227
+ _this28.webex.internal.newMetrics.submitClientEvent({
5121
5228
  name: 'client.unmuted',
5122
5229
  payload: {
5123
5230
  trigger: 'user-interaction',
5124
5231
  mediaType: 'audio'
5125
5232
  },
5126
5233
  options: {
5127
- meetingId: _this27.id
5234
+ meetingId: _this28.id
5128
5235
  }
5129
5236
  });
5130
5237
  }).catch(function (error) {
5131
5238
  _metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_AUDIO_FAILURE, {
5132
- correlation_id: _this27.correlationId,
5133
- locus_id: _this27.locusUrl.split('/').pop(),
5239
+ correlation_id: _this28.correlationId,
5240
+ locus_id: _this28.locusUrl.split('/').pop(),
5134
5241
  reason: error.message,
5135
5242
  stack: error.stack
5136
5243
  });
@@ -5149,7 +5256,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5149
5256
  }, {
5150
5257
  key: "muteVideo",
5151
5258
  value: function muteVideo() {
5152
- var _this28 = this;
5259
+ var _this29 = this;
5153
5260
  if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
5154
5261
  return _promise.default.reject(new _webexErrors.UserNotJoinedError());
5155
5262
  }
@@ -5163,22 +5270,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5163
5270
  return _promise.default.reject(new _parameter.default('no video control associated to the meeting'));
5164
5271
  }
5165
5272
  return logRequest(this.video.handleClientRequest(this, true).then(function () {
5166
- _util2.default.handleVideoLogging(_this28.mediaProperties.videoStream);
5273
+ _util2.default.handleVideoLogging(_this29.mediaProperties.videoStream);
5167
5274
  // @ts-ignore
5168
- _this28.webex.internal.newMetrics.submitClientEvent({
5275
+ _this29.webex.internal.newMetrics.submitClientEvent({
5169
5276
  name: 'client.muted',
5170
5277
  payload: {
5171
5278
  trigger: 'user-interaction',
5172
5279
  mediaType: 'video'
5173
5280
  },
5174
5281
  options: {
5175
- meetingId: _this28.id
5282
+ meetingId: _this29.id
5176
5283
  }
5177
5284
  });
5178
5285
  }).catch(function (error) {
5179
5286
  _metrics.default.sendBehavioralMetric(_constants2.default.MUTE_VIDEO_FAILURE, {
5180
- correlation_id: _this28.correlationId,
5181
- locus_id: _this28.locusUrl.split('/').pop(),
5287
+ correlation_id: _this29.correlationId,
5288
+ locus_id: _this29.locusUrl.split('/').pop(),
5182
5289
  reason: error.message,
5183
5290
  stack: error.stack
5184
5291
  });
@@ -5197,7 +5304,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5197
5304
  }, {
5198
5305
  key: "unmuteVideo",
5199
5306
  value: function unmuteVideo() {
5200
- var _this29 = this;
5307
+ var _this30 = this;
5201
5308
  if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
5202
5309
  return _promise.default.reject(new _webexErrors.UserNotJoinedError());
5203
5310
  }
@@ -5211,22 +5318,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5211
5318
  return _promise.default.reject(new _parameter.default('no audio control associated to the meeting'));
5212
5319
  }
5213
5320
  return logRequest(this.video.handleClientRequest(this, false).then(function () {
5214
- _util2.default.handleVideoLogging(_this29.mediaProperties.videoStream);
5321
+ _util2.default.handleVideoLogging(_this30.mediaProperties.videoStream);
5215
5322
  // @ts-ignore
5216
- _this29.webex.internal.newMetrics.submitClientEvent({
5323
+ _this30.webex.internal.newMetrics.submitClientEvent({
5217
5324
  name: 'client.unmuted',
5218
5325
  payload: {
5219
5326
  trigger: 'user-interaction',
5220
5327
  mediaType: 'video'
5221
5328
  },
5222
5329
  options: {
5223
- meetingId: _this29.id
5330
+ meetingId: _this30.id
5224
5331
  }
5225
5332
  });
5226
5333
  }).catch(function (error) {
5227
5334
  _metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_VIDEO_FAILURE, {
5228
- correlation_id: _this29.correlationId,
5229
- locus_id: _this29.locusUrl.split('/').pop(),
5335
+ correlation_id: _this30.correlationId,
5336
+ locus_id: _this30.locusUrl.split('/').pop(),
5230
5337
  reason: error.message,
5231
5338
  stack: error.stack
5232
5339
  });
@@ -5255,8 +5362,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5255
5362
  }, {
5256
5363
  key: "joinWithMedia",
5257
5364
  value: (function () {
5258
- var _joinWithMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15() {
5259
- var _this30 = this;
5365
+ var _joinWithMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
5366
+ var _this31 = this;
5260
5367
  var options,
5261
5368
  mediaOptions,
5262
5369
  _options$joinOptions,
@@ -5276,51 +5383,51 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5276
5383
  _leaveError,
5277
5384
  leaveError,
5278
5385
  shouldRetry,
5279
- _args15 = arguments;
5280
- return _regenerator.default.wrap(function _callee15$(_context15) {
5281
- while (1) switch (_context15.prev = _context15.next) {
5386
+ _args16 = arguments;
5387
+ return _regenerator.default.wrap(function _callee16$(_context16) {
5388
+ while (1) switch (_context16.prev = _context16.next) {
5282
5389
  case 0:
5283
- options = _args15.length > 0 && _args15[0] !== undefined ? _args15[0] : {};
5390
+ options = _args16.length > 0 && _args16[0] !== undefined ? _args16[0] : {};
5284
5391
  mediaOptions = options.mediaOptions, _options$joinOptions = options.joinOptions, joinOptions = _options$joinOptions === void 0 ? {} : _options$joinOptions;
5285
5392
  _this$joinWithMediaRe = this.joinWithMediaRetryInfo, isRetry = _this$joinWithMediaRe.isRetry, prevJoinResponse = _this$joinWithMediaRe.prevJoinResponse;
5286
5393
  if (mediaOptions !== null && mediaOptions !== void 0 && mediaOptions.allowMediaInLobby) {
5287
- _context15.next = 5;
5394
+ _context16.next = 5;
5288
5395
  break;
5289
5396
  }
5290
- return _context15.abrupt("return", _promise.default.reject(new _parameter.default('joinWithMedia() can only be used with allowMediaInLobby set to true')));
5397
+ return _context16.abrupt("return", _promise.default.reject(new _parameter.default('joinWithMedia() can only be used with allowMediaInLobby set to true')));
5291
5398
  case 5:
5292
5399
  this.allowMediaInLobby = true;
5293
5400
  _loggerProxy.default.logger.info('Meeting:index#joinWithMedia called');
5294
5401
  joined = false;
5295
5402
  joinResponse = prevJoinResponse;
5296
- _context15.prev = 9;
5403
+ _context16.prev = 9;
5297
5404
  forceTurnDiscovery = false;
5298
5405
  if (joinResponse) {
5299
- _context15.next = 33;
5406
+ _context16.next = 33;
5300
5407
  break;
5301
5408
  }
5302
- _context15.next = 14;
5409
+ _context16.next = 14;
5303
5410
  return this.roap.generateTurnDiscoveryRequestMessage(this, true);
5304
5411
  case 14:
5305
- turnDiscoveryRequest = _context15.sent;
5412
+ turnDiscoveryRequest = _context16.sent;
5306
5413
  turnDiscoverySkippedReason = turnDiscoveryRequest.turnDiscoverySkippedReason;
5307
5414
  joinOptions.roapMessage = turnDiscoveryRequest.roapMessage;
5308
5415
  _loggerProxy.default.logger.info('Meeting:index#joinWithMedia ---> calling join with joinOptions, ', joinOptions);
5309
- _context15.next = 20;
5416
+ _context16.next = 20;
5310
5417
  return this.join(joinOptions);
5311
5418
  case 20:
5312
- joinResponse = _context15.sent;
5419
+ joinResponse = _context16.sent;
5313
5420
  joined = true;
5314
5421
 
5315
5422
  // if we sent out TURN discovery Roap message with join, process the TURN discovery response
5316
5423
  if (!joinOptions.roapMessage) {
5317
- _context15.next = 31;
5424
+ _context16.next = 31;
5318
5425
  break;
5319
5426
  }
5320
- _context15.next = 25;
5427
+ _context16.next = 25;
5321
5428
  return this.roap.handleTurnDiscoveryHttpResponse(this, joinResponse);
5322
5429
  case 25:
5323
- _yield$this$roap$hand = _context15.sent;
5430
+ _yield$this$roap$hand = _context16.sent;
5324
5431
  turnServerInfo = _yield$this$roap$hand.turnServerInfo;
5325
5432
  turnDiscoverySkippedReason = _yield$this$roap$hand.turnDiscoverySkippedReason;
5326
5433
  this.turnDiscoverySkippedReason = turnDiscoverySkippedReason;
@@ -5329,7 +5436,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5329
5436
  this.roap.abortTurnDiscovery();
5330
5437
  }
5331
5438
  case 31:
5332
- _context15.next = 35;
5439
+ _context16.next = 35;
5333
5440
  break;
5334
5441
  case 33:
5335
5442
  // This is a retry, when join succeeded but addMedia failed, so we'll just call addMedia() again,
@@ -5337,82 +5444,82 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5337
5444
  forceTurnDiscovery = true;
5338
5445
  joined = true;
5339
5446
  case 35:
5340
- _context15.next = 37;
5447
+ _context16.next = 37;
5341
5448
  return this.addMediaInternal(function () {
5342
- return _this30.joinWithMediaRetryInfo.isRetry ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
5449
+ return _this31.joinWithMediaRetryInfo.isRetry ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
5343
5450
  }, turnServerInfo, forceTurnDiscovery, mediaOptions);
5344
5451
  case 37:
5345
- mediaResponse = _context15.sent;
5452
+ mediaResponse = _context16.sent;
5346
5453
  this.joinWithMediaRetryInfo = {
5347
5454
  isRetry: false,
5348
5455
  prevJoinResponse: undefined
5349
5456
  };
5350
- return _context15.abrupt("return", {
5457
+ return _context16.abrupt("return", {
5351
5458
  join: joinResponse,
5352
5459
  media: mediaResponse
5353
5460
  });
5354
5461
  case 42:
5355
- _context15.prev = 42;
5356
- _context15.t0 = _context15["catch"](9);
5357
- _loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> ', _context15.t0);
5462
+ _context16.prev = 42;
5463
+ _context16.t0 = _context16["catch"](9);
5464
+ _loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> ', _context16.t0);
5358
5465
  this.roap.abortTurnDiscovery();
5359
5466
  if (!(joined && isRetry)) {
5360
- _context15.next = 56;
5467
+ _context16.next = 56;
5361
5468
  break;
5362
5469
  }
5363
- _context15.prev = 47;
5364
- _context15.next = 50;
5470
+ _context16.prev = 47;
5471
+ _context16.next = 50;
5365
5472
  return this.leave({
5366
5473
  resourceId: joinOptions === null || joinOptions === void 0 ? void 0 : joinOptions.resourceId,
5367
5474
  reason: 'joinWithMedia failure'
5368
5475
  });
5369
5476
  case 50:
5370
- _context15.next = 56;
5477
+ _context16.next = 56;
5371
5478
  break;
5372
5479
  case 52:
5373
- _context15.prev = 52;
5374
- _context15.t1 = _context15["catch"](47);
5375
- _loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> leave error', _context15.t1);
5376
- leaveError = _context15.t1;
5480
+ _context16.prev = 52;
5481
+ _context16.t1 = _context16["catch"](47);
5482
+ _loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> leave error', _context16.t1);
5483
+ leaveError = _context16.t1;
5377
5484
  case 56:
5378
5485
  _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_WITH_MEDIA_FAILURE, {
5379
5486
  correlation_id: this.correlationId,
5380
5487
  locus_id: (_this$locusUrl = this.locusUrl) === null || _this$locusUrl === void 0 ? void 0 : _this$locusUrl.split('/').pop(),
5381
5488
  // if join fails, we may end up with no locusUrl
5382
- reason: _context15.t0.message,
5383
- stack: _context15.t0.stack,
5489
+ reason: _context16.t0.message,
5490
+ stack: _context16.t0.stack,
5384
5491
  leaveErrorReason: (_leaveError = leaveError) === null || _leaveError === void 0 ? void 0 : _leaveError.message,
5385
5492
  isRetry: isRetry
5386
5493
  }, {
5387
- type: _context15.t0.name
5494
+ type: _context16.t0.name
5388
5495
  });
5389
5496
 
5390
5497
  // if this was the first attempt, let's do a retry
5391
5498
  shouldRetry = !isRetry;
5392
- if (_internalPluginMetrics.CallDiagnosticUtils.isSdpOfferCreationError(_context15.t0)) {
5499
+ if (_internalPluginMetrics.CallDiagnosticUtils.isSdpOfferCreationError(_context16.t0)) {
5393
5500
  // errors related to offer creation (for example missing H264 codec) will happen again no matter how many times we try,
5394
5501
  // so there is no point doing a retry
5395
5502
  shouldRetry = false;
5396
5503
  }
5397
5504
  if (!shouldRetry) {
5398
- _context15.next = 64;
5505
+ _context16.next = 64;
5399
5506
  break;
5400
5507
  }
5401
5508
  _loggerProxy.default.logger.warn('Meeting:index#joinWithMedia --> retrying call to joinWithMedia');
5402
5509
  this.joinWithMediaRetryInfo.isRetry = true;
5403
5510
  this.joinWithMediaRetryInfo.prevJoinResponse = joinResponse;
5404
- return _context15.abrupt("return", this.joinWithMedia(options));
5511
+ return _context16.abrupt("return", this.joinWithMedia(options));
5405
5512
  case 64:
5406
5513
  this.joinWithMediaRetryInfo = {
5407
5514
  isRetry: false,
5408
5515
  prevJoinResponse: undefined
5409
5516
  };
5410
- throw _context15.t0;
5517
+ throw _context16.t0;
5411
5518
  case 66:
5412
5519
  case "end":
5413
- return _context15.stop();
5520
+ return _context16.stop();
5414
5521
  }
5415
- }, _callee15, this, [[9, 42], [47, 52]]);
5522
+ }, _callee16, this, [[9, 42], [47, 52]]);
5416
5523
  }));
5417
5524
  function joinWithMedia() {
5418
5525
  return _joinWithMedia.apply(this, arguments);
@@ -5431,7 +5538,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5431
5538
  }, {
5432
5539
  key: "reconnect",
5433
5540
  value: function reconnect(options) {
5434
- var _this31 = this;
5541
+ var _this32 = this;
5435
5542
  _loggerProxy.default.logger.log("Meeting:index#reconnect --> attempting to reconnect meeting ".concat(this.id));
5436
5543
  if (!this.reconnectionManager || !this.reconnectionManager.reconnect) {
5437
5544
  return _promise.default.reject(new _parameter.default('Cannot reconnect, ReconnectionManager must first be defined.'));
@@ -5442,20 +5549,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5442
5549
  return _promise.default.reject(new _parameter.default('Cannot reconnect, Media has not established to reconnect'));
5443
5550
  }
5444
5551
  this.cleanUpBeforeReconnection();
5445
- return this.reconnectionManager.reconnect(options, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
5446
- return _regenerator.default.wrap(function _callee16$(_context16) {
5447
- while (1) switch (_context16.prev = _context16.next) {
5552
+ return this.reconnectionManager.reconnect(options, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17() {
5553
+ return _regenerator.default.wrap(function _callee17$(_context17) {
5554
+ while (1) switch (_context17.prev = _context17.next) {
5448
5555
  case 0:
5449
- _context16.next = 2;
5450
- return _this31.waitForRemoteSDPAnswer();
5556
+ _context17.next = 2;
5557
+ return _this32.waitForRemoteSDPAnswer();
5451
5558
  case 2:
5452
- _context16.next = 4;
5453
- return _this31.waitForMediaConnectionConnected();
5559
+ _context17.next = 4;
5560
+ return _this32.waitForMediaConnectionConnected();
5454
5561
  case 4:
5455
5562
  case "end":
5456
- return _context16.stop();
5563
+ return _context17.stop();
5457
5564
  }
5458
- }, _callee16);
5565
+ }, _callee17);
5459
5566
  }))).then(function () {
5460
5567
  _loggerProxy.default.logger.log('Meeting:index#reconnect --> Meeting reconnect success');
5461
5568
  }).catch(function (error) {
@@ -5464,7 +5571,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5464
5571
  return _promise.default.resolve();
5465
5572
  }
5466
5573
  _loggerProxy.default.logger.error('Meeting:index#reconnect --> Meeting reconnect failed', error);
5467
- _this31.uploadLogs({
5574
+ _this32.uploadLogs({
5468
5575
  file: 'meeting/index',
5469
5576
  function: 'reconnect'
5470
5577
  });
@@ -5511,19 +5618,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5511
5618
  }, {
5512
5619
  key: "setCaptionLanguage",
5513
5620
  value: function setCaptionLanguage(language) {
5514
- var _this32 = this;
5621
+ var _this33 = this;
5515
5622
  return new _promise.default(function (resolve, reject) {
5516
- if (!_this32.isTranscriptionSupported()) {
5623
+ if (!_this33.isTranscriptionSupported()) {
5517
5624
  _loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
5518
5625
  reject(new Error('Webex Assistant is not enabled/supported'));
5519
5626
  }
5520
5627
  try {
5521
5628
  var voiceaListenerCaptionUpdate = function voiceaListenerCaptionUpdate(payload) {
5522
5629
  // @ts-ignore
5523
- _this32.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5630
+ _this33.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5524
5631
  var statusCode = payload.statusCode;
5525
5632
  if (statusCode === 200) {
5526
- _this32.transcription.languageOptions = _objectSpread(_objectSpread({}, _this32.transcription.languageOptions), {}, {
5633
+ _this33.transcription.languageOptions = _objectSpread(_objectSpread({}, _this33.transcription.languageOptions), {}, {
5527
5634
  currentCaptionLanguage: language
5528
5635
  });
5529
5636
  resolve(language);
@@ -5532,9 +5639,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5532
5639
  }
5533
5640
  };
5534
5641
  // @ts-ignore
5535
- _this32.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5642
+ _this33.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5536
5643
  // @ts-ignore
5537
- _this32.webex.internal.voicea.requestLanguage(language);
5644
+ _this33.webex.internal.voicea.requestLanguage(language);
5538
5645
  } catch (error) {
5539
5646
  _loggerProxy.default.logger.error("Meeting:index#setCaptionLanguage --> ".concat(error));
5540
5647
  reject(error);
@@ -5550,23 +5657,23 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5550
5657
  }, {
5551
5658
  key: "setSpokenLanguage",
5552
5659
  value: function setSpokenLanguage(language) {
5553
- var _this33 = this;
5660
+ var _this34 = this;
5554
5661
  return new _promise.default(function (resolve, reject) {
5555
- if (!_this33.isTranscriptionSupported()) {
5662
+ if (!_this34.isTranscriptionSupported()) {
5556
5663
  _loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
5557
5664
  reject(new Error('Webex Assistant is not enabled/supported'));
5558
5665
  }
5559
- if (_this33.getCurUserType() !== 'host') {
5666
+ if (_this34.getCurUserType() !== 'host') {
5560
5667
  _loggerProxy.default.logger.error('Meeting:index#setSpokenLanguage --> Only host can set spoken language');
5561
5668
  reject(new Error('Only host can set spoken language'));
5562
5669
  }
5563
5670
  try {
5564
5671
  var voiceaListenerLanguageUpdate = function voiceaListenerLanguageUpdate(payload) {
5565
5672
  // @ts-ignore
5566
- _this33.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5673
+ _this34.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5567
5674
  var languageCode = payload.languageCode;
5568
5675
  if (languageCode) {
5569
- _this33.transcription.languageOptions = _objectSpread(_objectSpread({}, _this33.transcription.languageOptions), {}, {
5676
+ _this34.transcription.languageOptions = _objectSpread(_objectSpread({}, _this34.transcription.languageOptions), {}, {
5570
5677
  currentSpokenLanguage: languageCode
5571
5678
  });
5572
5679
  resolve(languageCode);
@@ -5576,10 +5683,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5576
5683
  };
5577
5684
 
5578
5685
  // @ts-ignore
5579
- _this33.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5686
+ _this34.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5580
5687
 
5581
5688
  // @ts-ignore
5582
- _this33.webex.internal.voicea.setSpokenLanguage(language);
5689
+ _this34.webex.internal.voicea.setSpokenLanguage(language);
5583
5690
  } catch (error) {
5584
5691
  _loggerProxy.default.logger.error("Meeting:index#setSpokenLanguage --> ".concat(error));
5585
5692
  reject(error);
@@ -5596,48 +5703,48 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5596
5703
  }, {
5597
5704
  key: "startTranscription",
5598
5705
  value: (function () {
5599
- var _startTranscription = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17(options) {
5600
- return _regenerator.default.wrap(function _callee17$(_context17) {
5601
- while (1) switch (_context17.prev = _context17.next) {
5706
+ var _startTranscription = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18(options) {
5707
+ return _regenerator.default.wrap(function _callee18$(_context18) {
5708
+ while (1) switch (_context18.prev = _context18.next) {
5602
5709
  case 0:
5603
5710
  if (!this.isJoined()) {
5604
- _context17.next = 14;
5711
+ _context18.next = 14;
5605
5712
  break;
5606
5713
  }
5607
5714
  _loggerProxy.default.logger.info('Meeting:index#startTranscription --> Attempting to enable transcription!');
5608
- _context17.prev = 2;
5715
+ _context18.prev = 2;
5609
5716
  if (!this.areVoiceaEventsSetup) {
5610
5717
  this.setUpVoiceaListeners();
5611
5718
  }
5612
5719
 
5613
5720
  // @ts-ignore
5614
- _context17.next = 6;
5721
+ _context18.next = 6;
5615
5722
  return this.webex.internal.voicea.turnOnCaptions(options === null || options === void 0 ? void 0 : options.spokenLanguage);
5616
5723
  case 6:
5617
- _context17.next = 12;
5724
+ _context18.next = 12;
5618
5725
  break;
5619
5726
  case 8:
5620
- _context17.prev = 8;
5621
- _context17.t0 = _context17["catch"](2);
5622
- _loggerProxy.default.logger.error("Meeting:index#startTranscription --> ".concat(_context17.t0));
5727
+ _context18.prev = 8;
5728
+ _context18.t0 = _context18["catch"](2);
5729
+ _loggerProxy.default.logger.error("Meeting:index#startTranscription --> ".concat(_context18.t0));
5623
5730
  _metrics.default.sendBehavioralMetric(_constants2.default.RECEIVE_TRANSCRIPTION_FAILURE, {
5624
5731
  correlation_id: this.correlationId,
5625
- reason: _context17.t0.message,
5626
- stack: _context17.t0.stack
5732
+ reason: _context18.t0.message,
5733
+ stack: _context18.t0.stack
5627
5734
  });
5628
5735
  case 12:
5629
- _context17.next = 16;
5736
+ _context18.next = 16;
5630
5737
  break;
5631
5738
  case 14:
5632
5739
  _loggerProxy.default.logger.error("Meeting:index#startTranscription --> meeting joined : ".concat(this.isJoined()));
5633
5740
  throw new Error('Meeting is not joined');
5634
5741
  case 16:
5635
5742
  case "end":
5636
- return _context17.stop();
5743
+ return _context18.stop();
5637
5744
  }
5638
- }, _callee17, this, [[2, 8]]);
5745
+ }, _callee18, this, [[2, 8]]);
5639
5746
  }));
5640
- function startTranscription(_x15) {
5747
+ function startTranscription(_x16) {
5641
5748
  return _startTranscription.apply(this, arguments);
5642
5749
  }
5643
5750
  return startTranscription;
@@ -5698,36 +5805,36 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5698
5805
  * Scenario D: Joining any other way (sip, pstn, conversationUrl, link just need to specify resourceId)
5699
5806
  */
5700
5807
  function () {
5701
- var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18() {
5702
- var _this34 = this;
5808
+ var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
5809
+ var _this35 = this;
5703
5810
  var options,
5704
5811
  errorMessage,
5705
5812
  error,
5706
5813
  joinFailed,
5707
5814
  joinSuccess,
5708
- _errorMessage,
5709
- _error,
5710
5815
  _errorMessage2,
5711
5816
  _error2,
5712
- _args18 = arguments;
5713
- return _regenerator.default.wrap(function _callee18$(_context18) {
5714
- while (1) switch (_context18.prev = _context18.next) {
5817
+ _errorMessage3,
5818
+ _error3,
5819
+ _args19 = arguments;
5820
+ return _regenerator.default.wrap(function _callee19$(_context19) {
5821
+ while (1) switch (_context19.prev = _context19.next) {
5715
5822
  case 0:
5716
- options = _args18.length > 0 && _args18[0] !== undefined ? _args18[0] : {};
5823
+ options = _args19.length > 0 && _args19[0] !== undefined ? _args19[0] : {};
5717
5824
  if (this.webex.meetings.registered) {
5718
- _context18.next = 6;
5825
+ _context19.next = 6;
5719
5826
  break;
5720
5827
  }
5721
5828
  errorMessage = 'Meeting:index#join --> Device not registered';
5722
5829
  error = new Error(errorMessage);
5723
5830
  _loggerProxy.default.logger.error(errorMessage);
5724
- return _context18.abrupt("return", _promise.default.reject(error));
5831
+ return _context19.abrupt("return", _promise.default.reject(error));
5725
5832
  case 6:
5726
5833
  if (!this.deferJoin) {
5727
- _context18.next = 8;
5834
+ _context19.next = 8;
5728
5835
  break;
5729
5836
  }
5730
- return _context18.abrupt("return", this.deferJoin);
5837
+ return _context19.abrupt("return", this.deferJoin);
5731
5838
  case 8:
5732
5839
  // Create a deferred promise for a consistent resolve value from utils.
5733
5840
  // This also prevents redundant API calls.
@@ -5751,18 +5858,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5751
5858
  this.meetingFiniteStateMachine.reset();
5752
5859
  }
5753
5860
 
5754
- // @ts-ignore
5755
- this.webex.internal.newMetrics.submitClientEvent({
5756
- name: 'client.call.initiated',
5757
- payload: {
5758
- trigger: this.callStateForMetrics.joinTrigger || 'user-interaction',
5759
- isRoapCallEnabled: true,
5760
- pstnAudioType: options === null || options === void 0 ? void 0 : options.pstnAudioType
5761
- },
5762
- options: {
5763
- meetingId: this.id
5764
- }
5765
- });
5861
+ // send client.call.initiated unless told not to
5862
+ if (options.sendCallInitiated !== false) {
5863
+ // @ts-ignore
5864
+ this.webex.internal.newMetrics.submitClientEvent({
5865
+ name: 'client.call.initiated',
5866
+ payload: {
5867
+ trigger: this.callStateForMetrics.joinTrigger || 'user-interaction',
5868
+ isRoapCallEnabled: true,
5869
+ pstnAudioType: options === null || options === void 0 ? void 0 : options.pstnAudioType
5870
+ },
5871
+ options: {
5872
+ meetingId: this.id
5873
+ }
5874
+ });
5875
+ }
5766
5876
  _loggerProxy.default.logger.log('Meeting:index#join --> Joining a meeting');
5767
5877
  if (this.meetingFiniteStateMachine.state === _constants.MEETING_STATE_MACHINE.STATES.ENDED) {
5768
5878
  this.meetingFiniteStateMachine.reset();
@@ -5776,131 +5886,131 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5776
5886
  this.wirelessShare = true;
5777
5887
  }
5778
5888
  if (!options.meetingQuality) {
5779
- _context18.next = 36;
5889
+ _context19.next = 36;
5780
5890
  break;
5781
5891
  }
5782
5892
  if (!(typeof options.meetingQuality === 'string')) {
5783
- _context18.next = 27;
5893
+ _context19.next = 27;
5784
5894
  break;
5785
5895
  }
5786
5896
  if (_constants.QUALITY_LEVELS[options.meetingQuality]) {
5787
- _context18.next = 26;
5897
+ _context19.next = 26;
5788
5898
  break;
5789
5899
  }
5790
- _errorMessage = "Meeting:index#join --> ".concat(options.meetingQuality, " not defined");
5791
- _error = new Error(_errorMessage);
5792
- _loggerProxy.default.logger.error(_errorMessage);
5793
- joinFailed(_error);
5900
+ _errorMessage2 = "Meeting:index#join --> ".concat(options.meetingQuality, " not defined");
5901
+ _error2 = new Error(_errorMessage2);
5902
+ _loggerProxy.default.logger.error(_errorMessage2);
5903
+ joinFailed(_error2);
5794
5904
  this.deferJoin = undefined;
5795
- return _context18.abrupt("return", _promise.default.reject(_error));
5905
+ return _context19.abrupt("return", _promise.default.reject(_error2));
5796
5906
  case 26:
5797
5907
  this.mediaProperties.setRemoteQualityLevel(options.meetingQuality);
5798
5908
  case 27:
5799
5909
  if (!((0, _typeof2.default)(options.meetingQuality) === 'object')) {
5800
- _context18.next = 36;
5910
+ _context19.next = 36;
5801
5911
  break;
5802
5912
  }
5803
5913
  if (_constants.QUALITY_LEVELS[options.meetingQuality.remote]) {
5804
- _context18.next = 35;
5914
+ _context19.next = 35;
5805
5915
  break;
5806
5916
  }
5807
- _errorMessage2 = "Meeting:index#join --> ".concat(options.meetingQuality.remote, " not defined");
5808
- _loggerProxy.default.logger.error(_errorMessage2);
5809
- _error2 = new Error(_errorMessage2);
5810
- joinFailed(_error2);
5917
+ _errorMessage3 = "Meeting:index#join --> ".concat(options.meetingQuality.remote, " not defined");
5918
+ _loggerProxy.default.logger.error(_errorMessage3);
5919
+ _error3 = new Error(_errorMessage3);
5920
+ joinFailed(_error3);
5811
5921
  this.deferJoin = undefined;
5812
- return _context18.abrupt("return", _promise.default.reject(new Error(_errorMessage2)));
5922
+ return _context19.abrupt("return", _promise.default.reject(new Error(_errorMessage3)));
5813
5923
  case 35:
5814
5924
  if (options.meetingQuality.remote) {
5815
5925
  this.mediaProperties.setRemoteQualityLevel(options.meetingQuality.remote);
5816
5926
  }
5817
5927
  case 36:
5818
5928
  this.isMultistream = !!options.enableMultistream;
5819
- _context18.prev = 37;
5820
- _context18.next = 40;
5929
+ _context19.prev = 37;
5930
+ _context19.next = 40;
5821
5931
  return this.checkAndRefreshPermissionToken(_constants.MEETING_PERMISSION_TOKEN_REFRESH_THRESHOLD_IN_SEC, _constants.MEETING_PERMISSION_TOKEN_REFRESH_REASON);
5822
5932
  case 40:
5823
- _context18.next = 51;
5933
+ _context19.next = 51;
5824
5934
  break;
5825
5935
  case 42:
5826
- _context18.prev = 42;
5827
- _context18.t0 = _context18["catch"](37);
5828
- _loggerProxy.default.logger.error('Meeting:index#join --> Failed to refresh permission token:', _context18.t0);
5829
- if (!(_context18.t0 instanceof _captchaError.default || _context18.t0 instanceof _passwordError.default || _context18.t0 instanceof _permission.default)) {
5830
- _context18.next = 51;
5936
+ _context19.prev = 42;
5937
+ _context19.t0 = _context19["catch"](37);
5938
+ _loggerProxy.default.logger.error('Meeting:index#join --> Failed to refresh permission token:', _context19.t0);
5939
+ if (!(_context19.t0 instanceof _captchaError.default || _context19.t0 instanceof _passwordError.default || _context19.t0 instanceof _permission.default)) {
5940
+ _context19.next = 51;
5831
5941
  break;
5832
5942
  }
5833
- this.meetingFiniteStateMachine.fail(_context18.t0);
5943
+ this.meetingFiniteStateMachine.fail(_context19.t0);
5834
5944
 
5835
5945
  // Upload logs on refreshpermissionToken refresh Failure
5836
5946
  _triggerProxy.default.trigger(this, {
5837
5947
  file: 'meeting/index',
5838
5948
  function: 'join'
5839
5949
  }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
5840
- joinFailed(_context18.t0);
5950
+ joinFailed(_context19.t0);
5841
5951
  this.deferJoin = undefined;
5842
5952
 
5843
5953
  // if refresh permission token requires captcha, password or permission, we are throwing the errors
5844
5954
  // and bubble it up to client
5845
- return _context18.abrupt("return", _promise.default.reject(_context18.t0));
5955
+ return _context19.abrupt("return", _promise.default.reject(_context19.t0));
5846
5956
  case 51:
5847
- return _context18.abrupt("return", _util2.default.joinMeetingOptions(this, options).then(function (join) {
5848
- _this34.meetingFiniteStateMachine.join();
5849
- _this34.setupLocusMediaRequest();
5957
+ return _context19.abrupt("return", _util2.default.joinMeetingOptions(this, options).then(function (join) {
5958
+ _this35.meetingFiniteStateMachine.join();
5959
+ _this35.setupLocusMediaRequest();
5850
5960
 
5851
5961
  // @ts-ignore
5852
- _this34.webex.internal.device.meetingStarted();
5853
- (0, _classPrivateFieldSet2.default)(_this34, _isoLocalClientMeetingJoinTime, new Date().toISOString());
5962
+ _this35.webex.internal.device.meetingStarted();
5963
+ (0, _classPrivateFieldSet2.default)(_this35, _isoLocalClientMeetingJoinTime, new Date().toISOString());
5854
5964
  _loggerProxy.default.logger.log('Meeting:index#join --> Success');
5855
5965
  _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
5856
- correlation_id: _this34.correlationId
5966
+ correlation_id: _this35.correlationId
5857
5967
  });
5858
5968
  joinSuccess(join);
5859
- _this34.deferJoin = undefined;
5969
+ _this35.deferJoin = undefined;
5860
5970
  return join;
5861
5971
  }).catch(function (error) {
5862
- var _this34$meetingInfo, _error$error;
5863
- _this34.meetingFiniteStateMachine.fail(error);
5972
+ var _this35$meetingInfo, _error$error;
5973
+ _this35.meetingFiniteStateMachine.fail(error);
5864
5974
  _loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
5865
5975
 
5866
5976
  // @ts-ignore
5867
- _this34.webex.internal.newMetrics.submitClientEvent({
5977
+ _this35.webex.internal.newMetrics.submitClientEvent({
5868
5978
  name: 'client.locus.join.response',
5869
5979
  payload: {
5870
5980
  identifiers: {
5871
- meetingLookupUrl: (_this34$meetingInfo = _this34.meetingInfo) === null || _this34$meetingInfo === void 0 ? void 0 : _this34$meetingInfo.meetingLookupUrl
5981
+ meetingLookupUrl: (_this35$meetingInfo = _this35.meetingInfo) === null || _this35$meetingInfo === void 0 ? void 0 : _this35$meetingInfo.meetingLookupUrl
5872
5982
  }
5873
5983
  },
5874
5984
  options: {
5875
- meetingId: _this34.id,
5985
+ meetingId: _this35.id,
5876
5986
  rawError: error
5877
5987
  }
5878
5988
  });
5879
5989
 
5880
5990
  // TODO: change this to error codes and pre defined dictionary
5881
5991
  _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
5882
- correlation_id: _this34.correlationId,
5992
+ correlation_id: _this35.correlationId,
5883
5993
  reason: (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.message,
5884
5994
  stack: error.stack
5885
5995
  });
5886
5996
 
5887
5997
  // Upload logs on join Failure
5888
- _triggerProxy.default.trigger(_this34, {
5998
+ _triggerProxy.default.trigger(_this35, {
5889
5999
  file: 'meeting/index',
5890
6000
  function: 'join'
5891
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this34);
6001
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this35);
5892
6002
  joinFailed(error);
5893
- _this34.deferJoin = undefined;
6003
+ _this35.deferJoin = undefined;
5894
6004
  return _promise.default.reject(error);
5895
6005
  }).then(function (join) {
5896
6006
  // @ts-ignore - config coming from registerPlugin
5897
- if (_this34.config.enableAutomaticLLM) {
6007
+ if (_this35.config.enableAutomaticLLM) {
5898
6008
  // @ts-ignore
5899
- _this34.webex.internal.llm.on('online', _this34.handleLLMOnline);
5900
- _this34.updateLLMConnection().catch(function (error) {
6009
+ _this35.webex.internal.llm.on('online', _this35.handleLLMOnline);
6010
+ _this35.updateLLMConnection().catch(function (error) {
5901
6011
  _loggerProxy.default.logger.error('Meeting:index#join --> Transcription Socket Connection Failed', error);
5902
6012
  _metrics.default.sendBehavioralMetric(_constants2.default.LLM_CONNECTION_AFTER_JOIN_FAILURE, {
5903
- correlation_id: _this34.correlationId,
6013
+ correlation_id: _this35.correlationId,
5904
6014
  reason: error === null || error === void 0 ? void 0 : error.message,
5905
6015
  stack: error.stack
5906
6016
  });
@@ -5912,9 +6022,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5912
6022
  }));
5913
6023
  case 52:
5914
6024
  case "end":
5915
- return _context18.stop();
6025
+ return _context19.stop();
5916
6026
  }
5917
- }, _callee18, this, [[37, 42]]);
6027
+ }, _callee19, this, [[37, 42]]);
5918
6028
  }));
5919
6029
  function join() {
5920
6030
  return _join.apply(this, arguments);
@@ -5931,54 +6041,55 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5931
6041
  }, {
5932
6042
  key: "updateLLMConnection",
5933
6043
  value: (function () {
5934
- var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
5935
- var _this35 = this;
5936
- var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, isJoined;
5937
- return _regenerator.default.wrap(function _callee19$(_context19) {
5938
- while (1) switch (_context19.prev = _context19.next) {
6044
+ var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20() {
6045
+ var _this36 = this;
6046
+ var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, practiceSessionDatachannelUrl, isJoined, dataChannelUrl;
6047
+ return _regenerator.default.wrap(function _callee20$(_context20) {
6048
+ while (1) switch (_context20.prev = _context20.next) {
5939
6049
  case 0:
5940
6050
  // @ts-ignore - Fix type
5941
- _this$locusInfo6 = this.locusInfo, url = _this$locusInfo6.url, _this$locusInfo6$info = _this$locusInfo6.info, _this$locusInfo6$info2 = _this$locusInfo6$info === void 0 ? {} : _this$locusInfo6$info, datachannelUrl = _this$locusInfo6$info2.datachannelUrl;
5942
- isJoined = this.isJoined(); // @ts-ignore - Fix type
6051
+ _this$locusInfo6 = this.locusInfo, url = _this$locusInfo6.url, _this$locusInfo6$info = _this$locusInfo6.info, _this$locusInfo6$info2 = _this$locusInfo6$info === void 0 ? {} : _this$locusInfo6$info, datachannelUrl = _this$locusInfo6$info2.datachannelUrl, practiceSessionDatachannelUrl = _this$locusInfo6$info2.practiceSessionDatachannelUrl;
6052
+ isJoined = this.isJoined(); // webinar panelist should use new data channel in practice session
6053
+ dataChannelUrl = this.webinar.isJoinPracticeSessionDataChannel() && practiceSessionDatachannelUrl ? practiceSessionDatachannelUrl : datachannelUrl; // @ts-ignore - Fix type
5943
6054
  if (!this.webex.internal.llm.isConnected()) {
5944
- _context19.next = 8;
6055
+ _context20.next = 9;
5945
6056
  break;
5946
6057
  }
5947
6058
  if (!(
5948
6059
  // @ts-ignore - Fix type
5949
6060
  url === this.webex.internal.llm.getLocusUrl() &&
5950
6061
  // @ts-ignore - Fix type
5951
- datachannelUrl === this.webex.internal.llm.getDatachannelUrl() && isJoined)) {
5952
- _context19.next = 5;
6062
+ dataChannelUrl === this.webex.internal.llm.getDatachannelUrl() && isJoined)) {
6063
+ _context20.next = 6;
5953
6064
  break;
5954
6065
  }
5955
- return _context19.abrupt("return", undefined);
5956
- case 5:
5957
- _context19.next = 7;
6066
+ return _context20.abrupt("return", undefined);
6067
+ case 6:
6068
+ _context20.next = 8;
5958
6069
  return this.webex.internal.llm.disconnectLLM();
5959
- case 7:
6070
+ case 8:
5960
6071
  // @ts-ignore - Fix type
5961
6072
  this.webex.internal.llm.off('event:relay.event', this.processRelayEvent);
5962
- case 8:
6073
+ case 9:
5963
6074
  if (isJoined) {
5964
- _context19.next = 10;
6075
+ _context20.next = 11;
5965
6076
  break;
5966
6077
  }
5967
- return _context19.abrupt("return", undefined);
5968
- case 10:
5969
- return _context19.abrupt("return", this.webex.internal.llm.registerAndConnect(url, datachannelUrl).then(function (registerAndConnectResult) {
6078
+ return _context20.abrupt("return", undefined);
6079
+ case 11:
6080
+ return _context20.abrupt("return", this.webex.internal.llm.registerAndConnect(url, dataChannelUrl).then(function (registerAndConnectResult) {
5970
6081
  // @ts-ignore - Fix type
5971
- _this35.webex.internal.llm.off('event:relay.event', _this35.processRelayEvent);
6082
+ _this36.webex.internal.llm.off('event:relay.event', _this36.processRelayEvent);
5972
6083
  // @ts-ignore - Fix type
5973
- _this35.webex.internal.llm.on('event:relay.event', _this35.processRelayEvent);
6084
+ _this36.webex.internal.llm.on('event:relay.event', _this36.processRelayEvent);
5974
6085
  _loggerProxy.default.logger.info('Meeting:index#updateLLMConnection --> enabled to receive relay events!');
5975
6086
  return _promise.default.resolve(registerAndConnectResult);
5976
6087
  }));
5977
- case 11:
6088
+ case 12:
5978
6089
  case "end":
5979
- return _context19.stop();
6090
+ return _context20.stop();
5980
6091
  }
5981
- }, _callee19, this);
6092
+ }, _callee20, this);
5982
6093
  }));
5983
6094
  function updateLLMConnection() {
5984
6095
  return _updateLLMConnection.apply(this, arguments);
@@ -6024,7 +6135,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6024
6135
  }, {
6025
6136
  key: "dialInPstn",
6026
6137
  value: function dialInPstn() {
6027
- var _this36 = this;
6138
+ var _this37 = this;
6028
6139
  if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
6029
6140
 
6030
6141
  var correlationId = this.correlationId,
@@ -6040,10 +6151,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6040
6151
  }).catch(function (error) {
6041
6152
  var _error$error2;
6042
6153
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
6043
- correlation_id: _this36.correlationId,
6044
- dial_in_url: _this36.dialInUrl,
6154
+ correlation_id: _this37.correlationId,
6155
+ dial_in_url: _this37.dialInUrl,
6045
6156
  locus_id: locusUrl.split('/').pop(),
6046
- client_url: _this36.deviceUrl,
6157
+ client_url: _this37.deviceUrl,
6047
6158
  reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
6048
6159
  stack: error.stack
6049
6160
  });
@@ -6061,7 +6172,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6061
6172
  }, {
6062
6173
  key: "dialOutPstn",
6063
6174
  value: function dialOutPstn(phoneNumber) {
6064
- var _this37 = this;
6175
+ var _this38 = this;
6065
6176
  if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
6066
6177
 
6067
6178
  var correlationId = this.correlationId,
@@ -6078,10 +6189,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6078
6189
  }).catch(function (error) {
6079
6190
  var _error$error3;
6080
6191
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
6081
- correlation_id: _this37.correlationId,
6082
- dial_out_url: _this37.dialOutUrl,
6192
+ correlation_id: _this38.correlationId,
6193
+ dial_out_url: _this38.dialOutUrl,
6083
6194
  locus_id: locusUrl.split('/').pop(),
6084
- client_url: _this37.deviceUrl,
6195
+ client_url: _this38.deviceUrl,
6085
6196
  reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
6086
6197
  stack: error.stack
6087
6198
  });
@@ -6112,7 +6223,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6112
6223
  }, {
6113
6224
  key: "moveTo",
6114
6225
  value: function moveTo(resourceId) {
6115
- var _this38 = this;
6226
+ var _this39 = this;
6116
6227
  if (!resourceId) {
6117
6228
  throw new _parameter.default('Cannot move call without a resourceId.');
6118
6229
  }
@@ -6150,18 +6261,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6150
6261
  meetingId: this.id
6151
6262
  }
6152
6263
  });
6153
- this.locusInfo.once(_constants.LOCUSINFO.EVENTS.SELF_OBSERVING, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20() {
6264
+ this.locusInfo.once(_constants.LOCUSINFO.EVENTS.SELF_OBSERVING, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21() {
6154
6265
  var mediaSettings;
6155
- return _regenerator.default.wrap(function _callee20$(_context20) {
6156
- while (1) switch (_context20.prev = _context20.next) {
6266
+ return _regenerator.default.wrap(function _callee21$(_context21) {
6267
+ while (1) switch (_context21.prev = _context21.next) {
6157
6268
  case 0:
6158
- _context20.prev = 0;
6159
- if (!(_this38.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
6160
- _context20.next = 4;
6269
+ _context21.prev = 0;
6270
+ if (!(_this39.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
6271
+ _context21.next = 4;
6161
6272
  break;
6162
6273
  }
6163
- _context20.next = 4;
6164
- return _this38.releaseScreenShareFloor();
6274
+ _context21.next = 4;
6275
+ return _this39.releaseScreenShareFloor();
6165
6276
  case 4:
6166
6277
  mediaSettings = {
6167
6278
  mediaDirection: {
@@ -6173,55 +6284,55 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6173
6284
  receiveShare: true
6174
6285
  }
6175
6286
  };
6176
- _this38.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
6177
- _this38.mediaProperties.unsetRemoteMedia();
6287
+ _this39.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
6288
+ _this39.mediaProperties.unsetRemoteMedia();
6178
6289
 
6179
6290
  // 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
6180
6291
  // once the device answers we close the old connection and create new media server connection with only share enabled
6181
- if (!_this38.statsAnalyzer) {
6182
- _context20.next = 10;
6292
+ if (!_this39.statsAnalyzer) {
6293
+ _context21.next = 10;
6183
6294
  break;
6184
6295
  }
6185
- _context20.next = 10;
6186
- return _this38.statsAnalyzer.stopAnalyzer();
6296
+ _context21.next = 10;
6297
+ return _this39.statsAnalyzer.stopAnalyzer();
6187
6298
  case 10:
6188
- _context20.next = 12;
6189
- return _this38.closeRemoteStreams();
6299
+ _context21.next = 12;
6300
+ return _this39.closeRemoteStreams();
6190
6301
  case 12:
6191
- _context20.next = 14;
6192
- return _this38.closePeerConnections();
6302
+ _context21.next = 14;
6303
+ return _this39.closePeerConnections();
6193
6304
  case 14:
6194
- _this38.cleanupLocalStreams();
6195
- _this38.unsetRemoteStreams();
6196
- _this38.unsetPeerConnections();
6197
- _this38.reconnectionManager.cleanUp();
6198
- _context20.next = 20;
6199
- return _this38.addMedia({
6305
+ _this39.cleanupLocalStreams();
6306
+ _this39.unsetRemoteStreams();
6307
+ _this39.unsetPeerConnections();
6308
+ _this39.reconnectionManager.cleanUp();
6309
+ _context21.next = 20;
6310
+ return _this39.addMedia({
6200
6311
  audioEnabled: false,
6201
6312
  videoEnabled: false,
6202
6313
  shareVideoEnabled: true
6203
6314
  });
6204
6315
  case 20:
6205
6316
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
6206
- _this38.isMoveToInProgress = false;
6207
- _context20.next = 29;
6317
+ _this39.isMoveToInProgress = false;
6318
+ _context21.next = 29;
6208
6319
  break;
6209
6320
  case 24:
6210
- _context20.prev = 24;
6211
- _context20.t0 = _context20["catch"](0);
6212
- _loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context20.t0);
6321
+ _context21.prev = 24;
6322
+ _context21.t0 = _context21["catch"](0);
6323
+ _loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context21.t0);
6213
6324
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
6214
- correlation_id: _this38.correlationId,
6215
- locus_id: _this38.locusUrl.split('/').pop(),
6216
- reason: _context20.t0.message,
6217
- stack: _context20.t0.stack
6325
+ correlation_id: _this39.correlationId,
6326
+ locus_id: _this39.locusUrl.split('/').pop(),
6327
+ reason: _context21.t0.message,
6328
+ stack: _context21.t0.stack
6218
6329
  });
6219
- _this38.isMoveToInProgress = false;
6330
+ _this39.isMoveToInProgress = false;
6220
6331
  case 29:
6221
6332
  case "end":
6222
- return _context20.stop();
6333
+ return _context21.stop();
6223
6334
  }
6224
- }, _callee20, null, [[0, 24]]);
6335
+ }, _callee21, null, [[0, 24]]);
6225
6336
  })));
6226
6337
  _loggerProxy.default.logger.info('Meeting:index#moveTo --> Initated moved to using resourceId', resourceId);
6227
6338
 
@@ -6232,17 +6343,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6232
6343
  resourceId: resourceId,
6233
6344
  moveToResource: true
6234
6345
  }).then(function () {
6235
- _this38.meetingFiniteStateMachine.join();
6346
+ _this39.meetingFiniteStateMachine.join();
6236
6347
  }).catch(function (error) {
6237
- _this38.meetingFiniteStateMachine.fail(error);
6348
+ _this39.meetingFiniteStateMachine.fail(error);
6238
6349
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
6239
- correlation_id: _this38.correlationId,
6240
- locus_id: _this38.locusUrl.split('/').pop(),
6350
+ correlation_id: _this39.correlationId,
6351
+ locus_id: _this39.locusUrl.split('/').pop(),
6241
6352
  reason: error.message,
6242
6353
  stack: error.stack
6243
6354
  });
6244
6355
  _loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', error);
6245
- _this38.isMoveToInProgress = false;
6356
+ _this39.isMoveToInProgress = false;
6246
6357
  return _promise.default.reject(error);
6247
6358
  });
6248
6359
  }
@@ -6257,7 +6368,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6257
6368
  }, {
6258
6369
  key: "moveFrom",
6259
6370
  value: function moveFrom(resourceId) {
6260
- var _this39 = this;
6371
+ var _this40 = this;
6261
6372
  // On moveFrom ask the developer to re capture it moveFrom then updateMedia
6262
6373
  if (!resourceId) {
6263
6374
  throw new _parameter.default('Cannot move call without a resourceId.');
@@ -6272,19 +6383,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6272
6383
  }
6273
6384
  });
6274
6385
  return _util2.default.joinMeetingOptions(this).then(function () {
6275
- return _util2.default.leaveMeeting(_this39, {
6386
+ return _util2.default.leaveMeeting(_this40, {
6276
6387
  resourceId: resourceId,
6277
6388
  correlationId: oldCorrelationId,
6278
6389
  moveMeeting: true
6279
6390
  }).then(function () {
6280
- _this39.resourceId = '';
6391
+ _this40.resourceId = '';
6281
6392
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
6282
6393
  });
6283
6394
  }).catch(function (error) {
6284
- _this39.meetingFiniteStateMachine.fail(error);
6395
+ _this40.meetingFiniteStateMachine.fail(error);
6285
6396
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
6286
- correlation_id: _this39.correlationId,
6287
- locus_id: _this39.locusUrl.split('/').pop(),
6397
+ correlation_id: _this40.correlationId,
6398
+ locus_id: _this40.locusUrl.split('/').pop(),
6288
6399
  reason: error.message,
6289
6400
  stack: error.stack
6290
6401
  });
@@ -6309,10 +6420,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6309
6420
  }, {
6310
6421
  key: "createMediaConnection",
6311
6422
  value: (function () {
6312
- var _createMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21(turnServerInfo, bundlePolicy) {
6423
+ var _createMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee22(turnServerInfo, bundlePolicy) {
6313
6424
  var mc, audioEnabled, videoEnabled, shareEnabled;
6314
- return _regenerator.default.wrap(function _callee21$(_context21) {
6315
- while (1) switch (_context21.prev = _context21.next) {
6425
+ return _regenerator.default.wrap(function _callee22$(_context22) {
6426
+ while (1) switch (_context22.prev = _context22.next) {
6316
6427
  case 0:
6317
6428
  this.rtcMetrics = this.isMultistream ?
6318
6429
  // @ts-ignore
@@ -6344,42 +6455,42 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6344
6455
 
6345
6456
  // publish the streams
6346
6457
  if (!this.mediaProperties.audioStream) {
6347
- _context21.next = 9;
6458
+ _context22.next = 9;
6348
6459
  break;
6349
6460
  }
6350
6461
  this.setSendNamedMediaGroup(_internalMediaCore.MediaType.AudioMain);
6351
- _context21.next = 9;
6462
+ _context22.next = 9;
6352
6463
  return this.publishStream(_internalMediaCore.MediaType.AudioMain, this.mediaProperties.audioStream);
6353
6464
  case 9:
6354
6465
  if (!this.mediaProperties.videoStream) {
6355
- _context21.next = 12;
6466
+ _context22.next = 12;
6356
6467
  break;
6357
6468
  }
6358
- _context21.next = 12;
6469
+ _context22.next = 12;
6359
6470
  return this.publishStream(_internalMediaCore.MediaType.VideoMain, this.mediaProperties.videoStream);
6360
6471
  case 12:
6361
6472
  if (!this.mediaProperties.shareVideoStream) {
6362
- _context21.next = 15;
6473
+ _context22.next = 15;
6363
6474
  break;
6364
6475
  }
6365
- _context21.next = 15;
6476
+ _context22.next = 15;
6366
6477
  return this.publishStream(_internalMediaCore.MediaType.VideoSlides, this.mediaProperties.shareVideoStream);
6367
6478
  case 15:
6368
6479
  if (!(this.isMultistream && this.mediaProperties.shareAudioStream)) {
6369
- _context21.next = 18;
6480
+ _context22.next = 18;
6370
6481
  break;
6371
6482
  }
6372
- _context21.next = 18;
6483
+ _context22.next = 18;
6373
6484
  return this.publishStream(_internalMediaCore.MediaType.AudioSlides, this.mediaProperties.shareAudioStream);
6374
6485
  case 18:
6375
- return _context21.abrupt("return", mc);
6486
+ return _context22.abrupt("return", mc);
6376
6487
  case 19:
6377
6488
  case "end":
6378
- return _context21.stop();
6489
+ return _context22.stop();
6379
6490
  }
6380
- }, _callee21, this);
6491
+ }, _callee22, this);
6381
6492
  }));
6382
- function createMediaConnection(_x16, _x17) {
6493
+ function createMediaConnection(_x17, _x18) {
6383
6494
  return _createMediaConnection.apply(this, arguments);
6384
6495
  }
6385
6496
  return createMediaConnection;
@@ -6397,9 +6508,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6397
6508
  }, {
6398
6509
  key: "forwardEvent",
6399
6510
  value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
6400
- var _this40 = this;
6511
+ var _this41 = this;
6401
6512
  eventEmitter.on(eventTypeToForward, function (data) {
6402
- return _triggerProxy.default.trigger(_this40, {
6513
+ return _triggerProxy.default.trigger(_this41, {
6403
6514
  file: 'meetings',
6404
6515
  function: 'addMedia'
6405
6516
  }, meetingEventType, data);
@@ -6417,11 +6528,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6417
6528
  }, {
6418
6529
  key: "setUpLocalStreamReferences",
6419
6530
  value: (function () {
6420
- var _setUpLocalStreamReferences = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee22(localStreams) {
6531
+ var _setUpLocalStreamReferences = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee23(localStreams) {
6421
6532
  var _localStreams$microph, _localStreams$camera, _localStreams$screenS, _localStreams$screenS2, _localStreams$screenS3, _localStreams$screenS4, _localStreams$screenS5, _localStreams$screenS6;
6422
6533
  var setUpStreamPromises;
6423
- return _regenerator.default.wrap(function _callee22$(_context22) {
6424
- while (1) switch (_context22.prev = _context22.next) {
6534
+ return _regenerator.default.wrap(function _callee23$(_context23) {
6535
+ while (1) switch (_context23.prev = _context23.next) {
6425
6536
  case 0:
6426
6537
  setUpStreamPromises = [];
6427
6538
  if (localStreams !== null && localStreams !== void 0 && localStreams.microphone && (localStreams === null || localStreams === void 0 ? void 0 : (_localStreams$microph = localStreams.microphone) === null || _localStreams$microph === void 0 ? void 0 : _localStreams$microph.readyState) !== 'ended') {
@@ -6436,24 +6547,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6436
6547
  if (localStreams !== null && localStreams !== void 0 && (_localStreams$screenS4 = localStreams.screenShare) !== null && _localStreams$screenS4 !== void 0 && _localStreams$screenS4.audio && (localStreams === null || localStreams === void 0 ? void 0 : (_localStreams$screenS5 = localStreams.screenShare) === null || _localStreams$screenS5 === void 0 ? void 0 : (_localStreams$screenS6 = _localStreams$screenS5.audio) === null || _localStreams$screenS6 === void 0 ? void 0 : _localStreams$screenS6.readyState) !== 'ended') {
6437
6548
  setUpStreamPromises.push(this.setLocalShareAudioStream(localStreams.screenShare.audio));
6438
6549
  }
6439
- _context22.prev = 5;
6440
- _context22.next = 8;
6550
+ _context23.prev = 5;
6551
+ _context23.next = 8;
6441
6552
  return _promise.default.all(setUpStreamPromises);
6442
6553
  case 8:
6443
- _context22.next = 14;
6554
+ _context23.next = 14;
6444
6555
  break;
6445
6556
  case 10:
6446
- _context22.prev = 10;
6447
- _context22.t0 = _context22["catch"](5);
6448
- _loggerProxy.default.logger.error("Meeting:index#addMedia():setUpLocalStreamReferences --> Error , ", _context22.t0);
6449
- throw _context22.t0;
6557
+ _context23.prev = 10;
6558
+ _context23.t0 = _context23["catch"](5);
6559
+ _loggerProxy.default.logger.error("Meeting:index#addMedia():setUpLocalStreamReferences --> Error , ", _context23.t0);
6560
+ throw _context23.t0;
6450
6561
  case 14:
6451
6562
  case "end":
6452
- return _context22.stop();
6563
+ return _context23.stop();
6453
6564
  }
6454
- }, _callee22, this, [[5, 10]]);
6565
+ }, _callee23, this, [[5, 10]]);
6455
6566
  }));
6456
- function setUpLocalStreamReferences(_x18) {
6567
+ function setUpLocalStreamReferences(_x19) {
6457
6568
  return _setUpLocalStreamReferences.apply(this, arguments);
6458
6569
  }
6459
6570
  return setUpLocalStreamReferences;
@@ -6468,72 +6579,72 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6468
6579
  }, {
6469
6580
  key: "waitForMediaConnectionConnected",
6470
6581
  value: (function () {
6471
- var _waitForMediaConnectionConnected = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee23() {
6582
+ var _waitForMediaConnectionConnected = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24() {
6472
6583
  var iceConnected, _this$mediaProperties6, _this$mediaProperties7, _this$mediaProperties8, _this$mediaProperties9, _this$mediaProperties10, _this$mediaProperties11, _this$mediaProperties12;
6473
- return _regenerator.default.wrap(function _callee23$(_context23) {
6474
- while (1) switch (_context23.prev = _context23.next) {
6584
+ return _regenerator.default.wrap(function _callee24$(_context24) {
6585
+ while (1) switch (_context24.prev = _context24.next) {
6475
6586
  case 0:
6476
- _context23.prev = 0;
6477
- _context23.next = 3;
6587
+ _context24.prev = 0;
6588
+ _context24.next = 3;
6478
6589
  return this.mediaProperties.waitForMediaConnectionConnected();
6479
6590
  case 3:
6480
- _context23.next = 30;
6591
+ _context24.next = 30;
6481
6592
  break;
6482
6593
  case 5:
6483
- _context23.prev = 5;
6484
- _context23.t0 = _context23["catch"](0);
6485
- iceConnected = _context23.t0.iceConnected;
6594
+ _context24.prev = 5;
6595
+ _context24.t0 = _context24["catch"](0);
6596
+ iceConnected = _context24.t0.iceConnected;
6486
6597
  if (this.hasMediaConnectionConnectedAtLeastOnce) {
6487
- _context23.next = 29;
6598
+ _context24.next = 29;
6488
6599
  break;
6489
6600
  }
6490
- _context23.t1 = this.webex.internal.newMetrics;
6491
- _context23.t2 = !this.turnServerUsed;
6492
- _context23.t3 = this.addMediaData.icePhaseCallback();
6493
- _context23.t4 = this.webex.internal.newMetrics.callDiagnosticMetrics;
6494
- _context23.t5 = _internalPluginMetrics.CallDiagnosticUtils;
6495
- _context23.t6 = ((_this$mediaProperties6 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties6 === void 0 ? void 0 : (_this$mediaProperties7 = _this$mediaProperties6.multistreamConnection) === null || _this$mediaProperties7 === void 0 ? void 0 : (_this$mediaProperties8 = _this$mediaProperties7.pc) === null || _this$mediaProperties8 === void 0 ? void 0 : (_this$mediaProperties9 = _this$mediaProperties8.pc) === null || _this$mediaProperties9 === void 0 ? void 0 : _this$mediaProperties9.signalingState) || ((_this$mediaProperties10 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties10 === void 0 ? void 0 : (_this$mediaProperties11 = _this$mediaProperties10.mediaConnection) === null || _this$mediaProperties11 === void 0 ? void 0 : (_this$mediaProperties12 = _this$mediaProperties11.pc) === null || _this$mediaProperties12 === void 0 ? void 0 : _this$mediaProperties12.signalingState) || 'unknown';
6496
- _context23.t7 = iceConnected;
6497
- _context23.t8 = this.turnServerUsed;
6498
- _context23.next = 19;
6601
+ _context24.t1 = this.webex.internal.newMetrics;
6602
+ _context24.t2 = !this.turnServerUsed;
6603
+ _context24.t3 = this.addMediaData.icePhaseCallback();
6604
+ _context24.t4 = this.webex.internal.newMetrics.callDiagnosticMetrics;
6605
+ _context24.t5 = _internalPluginMetrics.CallDiagnosticUtils;
6606
+ _context24.t6 = ((_this$mediaProperties6 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties6 === void 0 ? void 0 : (_this$mediaProperties7 = _this$mediaProperties6.multistreamConnection) === null || _this$mediaProperties7 === void 0 ? void 0 : (_this$mediaProperties8 = _this$mediaProperties7.pc) === null || _this$mediaProperties8 === void 0 ? void 0 : (_this$mediaProperties9 = _this$mediaProperties8.pc) === null || _this$mediaProperties9 === void 0 ? void 0 : _this$mediaProperties9.signalingState) || ((_this$mediaProperties10 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties10 === void 0 ? void 0 : (_this$mediaProperties11 = _this$mediaProperties10.mediaConnection) === null || _this$mediaProperties11 === void 0 ? void 0 : (_this$mediaProperties12 = _this$mediaProperties11.pc) === null || _this$mediaProperties12 === void 0 ? void 0 : _this$mediaProperties12.signalingState) || 'unknown';
6607
+ _context24.t7 = iceConnected;
6608
+ _context24.t8 = this.turnServerUsed;
6609
+ _context24.next = 19;
6499
6610
  return this.webex.meetings.reachability.isWebexMediaBackendUnreachable().catch(function () {
6500
6611
  return false;
6501
6612
  });
6502
6613
  case 19:
6503
- _context23.t9 = _context23.sent;
6504
- _context23.t10 = {
6505
- signalingState: _context23.t6,
6506
- iceConnected: _context23.t7,
6507
- turnServerUsed: _context23.t8,
6508
- unreachable: _context23.t9
6614
+ _context24.t9 = _context24.sent;
6615
+ _context24.t10 = {
6616
+ signalingState: _context24.t6,
6617
+ iceConnected: _context24.t7,
6618
+ turnServerUsed: _context24.t8,
6619
+ unreachable: _context24.t9
6509
6620
  };
6510
- _context23.t11 = _context23.t5.generateClientErrorCodeForIceFailure.call(_context23.t5, _context23.t10);
6511
- _context23.t12 = {
6512
- clientErrorCode: _context23.t11
6621
+ _context24.t11 = _context24.t5.generateClientErrorCodeForIceFailure.call(_context24.t5, _context24.t10);
6622
+ _context24.t12 = {
6623
+ clientErrorCode: _context24.t11
6513
6624
  };
6514
- _context23.t13 = _context23.t4.getErrorPayloadForClientErrorCode.call(_context23.t4, _context23.t12);
6515
- _context23.t14 = [_context23.t13];
6516
- _context23.t15 = {
6517
- canProceed: _context23.t2,
6518
- icePhase: _context23.t3,
6519
- errors: _context23.t14
6625
+ _context24.t13 = _context24.t4.getErrorPayloadForClientErrorCode.call(_context24.t4, _context24.t12);
6626
+ _context24.t14 = [_context24.t13];
6627
+ _context24.t15 = {
6628
+ canProceed: _context24.t2,
6629
+ icePhase: _context24.t3,
6630
+ errors: _context24.t14
6520
6631
  };
6521
- _context23.t16 = {
6632
+ _context24.t16 = {
6522
6633
  meetingId: this.id
6523
6634
  };
6524
- _context23.t17 = {
6635
+ _context24.t17 = {
6525
6636
  name: 'client.ice.end',
6526
- payload: _context23.t15,
6527
- options: _context23.t16
6637
+ payload: _context24.t15,
6638
+ options: _context24.t16
6528
6639
  };
6529
- _context23.t1.submitClientEvent.call(_context23.t1, _context23.t17);
6640
+ _context24.t1.submitClientEvent.call(_context24.t1, _context24.t17);
6530
6641
  case 29:
6531
6642
  throw new Error("Timed out waiting for media connection to be connected, correlationId=".concat(this.correlationId));
6532
6643
  case 30:
6533
6644
  case "end":
6534
- return _context23.stop();
6645
+ return _context24.stop();
6535
6646
  }
6536
- }, _callee23, this, [[0, 5]]);
6647
+ }, _callee24, this, [[0, 5]]);
6537
6648
  }));
6538
6649
  function waitForMediaConnectionConnected() {
6539
6650
  return _waitForMediaConnectionConnected.apply(this, arguments);
@@ -6565,18 +6676,6 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6565
6676
  }
6566
6677
  }
6567
6678
 
6568
- /**
6569
- * Handles device logging
6570
- *
6571
- * @private
6572
- * @static
6573
- * @param {boolean} isAudioEnabled
6574
- * @param {boolean} isVideoEnabled
6575
- * @returns {Promise<void>}
6576
- */
6577
- }, {
6578
- key: "waitForRemoteSDPAnswer",
6579
- value: (
6580
6679
  /**
6581
6680
  * Returns a promise. This promise is created once the local sdp offer has been successfully created and is resolved
6582
6681
  * once the remote sdp answer has been received.
@@ -6584,49 +6683,51 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6584
6683
  * @private
6585
6684
  * @returns {Promise<void>}
6586
6685
  */
6587
- function () {
6588
- var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24() {
6589
- var _this41 = this;
6686
+ }, {
6687
+ key: "waitForRemoteSDPAnswer",
6688
+ value: (function () {
6689
+ var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25() {
6690
+ var _this42 = this;
6590
6691
  var LOG_HEADER, deferSDPAnswer;
6591
- return _regenerator.default.wrap(function _callee24$(_context24) {
6592
- while (1) switch (_context24.prev = _context24.next) {
6692
+ return _regenerator.default.wrap(function _callee25$(_context25) {
6693
+ while (1) switch (_context25.prev = _context25.next) {
6593
6694
  case 0:
6594
6695
  LOG_HEADER = 'Meeting:index#addMedia():waitForRemoteSDPAnswer -->';
6595
6696
  if (this.deferSDPAnswer) {
6596
- _context24.next = 4;
6697
+ _context25.next = 4;
6597
6698
  break;
6598
6699
  }
6599
6700
  _loggerProxy.default.logger.warn("".concat(LOG_HEADER, " offer not created yet"));
6600
- return _context24.abrupt("return", _promise.default.reject(new Error('waitForRemoteSDPAnswer() called before local sdp offer created')));
6701
+ return _context25.abrupt("return", _promise.default.reject(new Error('waitForRemoteSDPAnswer() called before local sdp offer created')));
6601
6702
  case 4:
6602
6703
  deferSDPAnswer = this.deferSDPAnswer;
6603
6704
  this.sdpResponseTimer = setTimeout(function () {
6604
6705
  _loggerProxy.default.logger.warn("".concat(LOG_HEADER, " timeout! no REMOTE SDP ANSWER received within ").concat(_constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT / 1000, " seconds"));
6605
6706
  // @ts-ignore
6606
- _this41.webex.internal.newMetrics.submitClientEvent({
6707
+ _this42.webex.internal.newMetrics.submitClientEvent({
6607
6708
  name: 'client.media-engine.remote-sdp-received',
6608
6709
  payload: {
6609
6710
  canProceed: false,
6610
6711
  errors: [
6611
6712
  // @ts-ignore
6612
- _this41.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
6713
+ _this42.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
6613
6714
  clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
6614
6715
  })]
6615
6716
  },
6616
6717
  options: {
6617
- meetingId: _this41.id,
6718
+ meetingId: _this42.id,
6618
6719
  rawError: new Error('Timeout waiting for SDP answer')
6619
6720
  }
6620
6721
  });
6621
6722
  deferSDPAnswer.reject(new Error('Timed out waiting for REMOTE SDP ANSWER'));
6622
6723
  }, _constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT);
6623
6724
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " waiting for REMOTE SDP ANSWER..."));
6624
- return _context24.abrupt("return", deferSDPAnswer.promise);
6725
+ return _context25.abrupt("return", deferSDPAnswer.promise);
6625
6726
  case 8:
6626
6727
  case "end":
6627
- return _context24.stop();
6728
+ return _context25.stop();
6628
6729
  }
6629
- }, _callee24, this);
6730
+ }, _callee25, this);
6630
6731
  }));
6631
6732
  function waitForRemoteSDPAnswer() {
6632
6733
  return _waitForRemoteSDPAnswer.apply(this, arguments);
@@ -6645,30 +6746,30 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6645
6746
  }, {
6646
6747
  key: "retryEstablishMediaConnectionWithForcedTurnDiscovery",
6647
6748
  value: (function () {
6648
- var _retryEstablishMediaConnectionWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25(remoteMediaManagerConfig, bundlePolicy) {
6749
+ var _retryEstablishMediaConnectionWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee26(remoteMediaManagerConfig, bundlePolicy) {
6649
6750
  var LOG_HEADER;
6650
- return _regenerator.default.wrap(function _callee25$(_context25) {
6651
- while (1) switch (_context25.prev = _context25.next) {
6751
+ return _regenerator.default.wrap(function _callee26$(_context26) {
6752
+ while (1) switch (_context26.prev = _context26.next) {
6652
6753
  case 0:
6653
6754
  LOG_HEADER = 'Meeting:index#addMedia():retryEstablishMediaConnectionWithForcedTurnDiscovery -->';
6654
- _context25.prev = 1;
6655
- _context25.next = 4;
6755
+ _context26.prev = 1;
6756
+ _context26.next = 4;
6656
6757
  return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, true);
6657
6758
  case 4:
6658
- _context25.next = 10;
6759
+ _context26.next = 10;
6659
6760
  break;
6660
6761
  case 6:
6661
- _context25.prev = 6;
6662
- _context25.t0 = _context25["catch"](1);
6663
- _loggerProxy.default.logger.error("".concat(LOG_HEADER, " retry with TURN-TLS failed, media connection unable to connect, "), _context25.t0);
6664
- throw _context25.t0;
6762
+ _context26.prev = 6;
6763
+ _context26.t0 = _context26["catch"](1);
6764
+ _loggerProxy.default.logger.error("".concat(LOG_HEADER, " retry with TURN-TLS failed, media connection unable to connect, "), _context26.t0);
6765
+ throw _context26.t0;
6665
6766
  case 10:
6666
6767
  case "end":
6667
- return _context25.stop();
6768
+ return _context26.stop();
6668
6769
  }
6669
- }, _callee25, this, [[1, 6]]);
6770
+ }, _callee26, this, [[1, 6]]);
6670
6771
  }));
6671
- function retryEstablishMediaConnectionWithForcedTurnDiscovery(_x19, _x20) {
6772
+ function retryEstablishMediaConnectionWithForcedTurnDiscovery(_x20, _x21) {
6672
6773
  return _retryEstablishMediaConnectionWithForcedTurnDiscovery.apply(this, arguments);
6673
6774
  }
6674
6775
  return retryEstablishMediaConnectionWithForcedTurnDiscovery;
@@ -6686,14 +6787,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6686
6787
  }, {
6687
6788
  key: "retryWithForcedTurnDiscovery",
6688
6789
  value: (function () {
6689
- var _retryWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee26(remoteMediaManagerConfig, bundlePolicy) {
6790
+ var _retryWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee27(remoteMediaManagerConfig, bundlePolicy) {
6690
6791
  var LOG_HEADER;
6691
- return _regenerator.default.wrap(function _callee26$(_context26) {
6692
- while (1) switch (_context26.prev = _context26.next) {
6792
+ return _regenerator.default.wrap(function _callee27$(_context27) {
6793
+ while (1) switch (_context27.prev = _context27.next) {
6693
6794
  case 0:
6694
6795
  this.addMediaData.retriedWithTurnServer = true;
6695
6796
  LOG_HEADER = 'Meeting:index#addMedia():retryWithForcedTurnDiscovery -->';
6696
- _context26.next = 4;
6797
+ _context27.next = 4;
6697
6798
  return this.cleanUpBeforeRetryWithTurnServer();
6698
6799
  case 4:
6699
6800
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_RETRY, {
@@ -6703,24 +6804,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6703
6804
  reason: 'forcingTurnTls'
6704
6805
  });
6705
6806
  if (!(this.state === _constants.MEETING_STATE.STATES.LEFT)) {
6706
- _context26.next = 9;
6807
+ _context27.next = 9;
6707
6808
  break;
6708
6809
  }
6709
6810
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " meeting state was LEFT after first attempt to establish media connection. Attempting to rejoin. "));
6710
- _context26.next = 9;
6811
+ _context27.next = 9;
6711
6812
  return this.join({
6712
6813
  rejoin: true
6713
6814
  });
6714
6815
  case 9:
6715
- _context26.next = 11;
6816
+ _context27.next = 11;
6716
6817
  return this.retryEstablishMediaConnectionWithForcedTurnDiscovery(remoteMediaManagerConfig, bundlePolicy);
6717
6818
  case 11:
6718
6819
  case "end":
6719
- return _context26.stop();
6820
+ return _context27.stop();
6720
6821
  }
6721
- }, _callee26, this);
6822
+ }, _callee27, this);
6722
6823
  }));
6723
- function retryWithForcedTurnDiscovery(_x21, _x22) {
6824
+ function retryWithForcedTurnDiscovery(_x22, _x23) {
6724
6825
  return _retryWithForcedTurnDiscovery.apply(this, arguments);
6725
6826
  }
6726
6827
  return retryWithForcedTurnDiscovery;
@@ -6740,32 +6841,32 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6740
6841
  }, {
6741
6842
  key: "handleWaitForMediaConnectionConnectedError",
6742
6843
  value: (function () {
6743
- var _handleWaitForMediaConnectionConnectedError = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee27(error, remoteMediaManagerConfig, bundlePolicy) {
6844
+ var _handleWaitForMediaConnectionConnectedError = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee28(error, remoteMediaManagerConfig, bundlePolicy) {
6744
6845
  var LOG_HEADER;
6745
- return _regenerator.default.wrap(function _callee27$(_context27) {
6746
- while (1) switch (_context27.prev = _context27.next) {
6846
+ return _regenerator.default.wrap(function _callee28$(_context28) {
6847
+ while (1) switch (_context28.prev = _context28.next) {
6747
6848
  case 0:
6748
6849
  LOG_HEADER = 'Meeting:index#addMedia():handleWaitForMediaConnectionConnectedError -->'; // @ts-ignore - config coming from registerPlugin
6749
6850
  if (this.turnServerUsed) {
6750
- _context27.next = 7;
6851
+ _context28.next = 7;
6751
6852
  break;
6752
6853
  }
6753
6854
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " error waiting for media to connect on UDP, TCP, retrying using TURN-TLS, "), error);
6754
- _context27.next = 5;
6855
+ _context28.next = 5;
6755
6856
  return this.retryWithForcedTurnDiscovery(remoteMediaManagerConfig, bundlePolicy);
6756
6857
  case 5:
6757
- _context27.next = 9;
6858
+ _context28.next = 9;
6758
6859
  break;
6759
6860
  case 7:
6760
6861
  _loggerProxy.default.logger.error("".concat(LOG_HEADER, " error waiting for media to connect using UDP, TCP and TURN-TLS"), error);
6761
6862
  throw new _webexErrors.AddMediaFailed();
6762
6863
  case 9:
6763
6864
  case "end":
6764
- return _context27.stop();
6865
+ return _context28.stop();
6765
6866
  }
6766
- }, _callee27, this);
6867
+ }, _callee28, this);
6767
6868
  }));
6768
- function handleWaitForMediaConnectionConnectedError(_x23, _x24, _x25) {
6869
+ function handleWaitForMediaConnectionConnectedError(_x24, _x25, _x26) {
6769
6870
  return _handleWaitForMediaConnectionConnectedError.apply(this, arguments);
6770
6871
  }
6771
6872
  return handleWaitForMediaConnectionConnectedError;
@@ -6781,20 +6882,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6781
6882
  }, {
6782
6883
  key: "doTurnDiscovery",
6783
6884
  value: (function () {
6784
- var _doTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee28(isReconnecting, isForced) {
6885
+ var _doTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee29(isReconnecting, isForced) {
6785
6886
  var cdl, turnDiscoveryResult;
6786
- return _regenerator.default.wrap(function _callee28$(_context28) {
6787
- while (1) switch (_context28.prev = _context28.next) {
6887
+ return _regenerator.default.wrap(function _callee29$(_context29) {
6888
+ while (1) switch (_context29.prev = _context29.next) {
6788
6889
  case 0:
6789
6890
  // @ts-ignore
6790
6891
  cdl = this.webex.internal.newMetrics.callDiagnosticLatencies; // @ts-ignore
6791
6892
  this.webex.internal.newMetrics.submitInternalEvent({
6792
6893
  name: 'internal.client.add-media.turn-discovery.start'
6793
6894
  });
6794
- _context28.next = 4;
6895
+ _context29.next = 4;
6795
6896
  return this.roap.doTurnDiscovery(this, isReconnecting, isForced);
6796
6897
  case 4:
6797
- turnDiscoveryResult = _context28.sent;
6898
+ turnDiscoveryResult = _context29.sent;
6798
6899
  this.turnDiscoverySkippedReason = turnDiscoveryResult === null || turnDiscoveryResult === void 0 ? void 0 : turnDiscoveryResult.turnDiscoverySkippedReason;
6799
6900
  this.turnServerUsed = !this.turnDiscoverySkippedReason;
6800
6901
 
@@ -6810,14 +6911,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6810
6911
  retriedWithTurnServer: this.addMediaData.retriedWithTurnServer
6811
6912
  });
6812
6913
  }
6813
- return _context28.abrupt("return", turnDiscoveryResult);
6914
+ return _context29.abrupt("return", turnDiscoveryResult);
6814
6915
  case 10:
6815
6916
  case "end":
6816
- return _context28.stop();
6917
+ return _context29.stop();
6817
6918
  }
6818
- }, _callee28, this);
6919
+ }, _callee29, this);
6819
6920
  }));
6820
- function doTurnDiscovery(_x26, _x27) {
6921
+ function doTurnDiscovery(_x27, _x28) {
6821
6922
  return _doTurnDiscovery.apply(this, arguments);
6822
6923
  }
6823
6924
  return doTurnDiscovery;
@@ -6836,35 +6937,35 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6836
6937
  }, {
6837
6938
  key: "establishMediaConnection",
6838
6939
  value: (function () {
6839
- var _establishMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee29(remoteMediaManagerConfig, bundlePolicy, isForced, turnServerInfo) {
6940
+ var _establishMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee30(remoteMediaManagerConfig, bundlePolicy, isForced, turnServerInfo) {
6840
6941
  var _this$locusMediaReque;
6841
6942
  var LOG_HEADER, isReconnecting, _yield$this$doTurnDis, mc;
6842
- return _regenerator.default.wrap(function _callee29$(_context29) {
6843
- while (1) switch (_context29.prev = _context29.next) {
6943
+ return _regenerator.default.wrap(function _callee30$(_context30) {
6944
+ while (1) switch (_context30.prev = _context30.next) {
6844
6945
  case 0:
6845
6946
  LOG_HEADER = 'Meeting:index#addMedia():establishMediaConnection -->';
6846
6947
  isReconnecting = this.isMoveToInProgress || !!((_this$locusMediaReque = this.locusMediaRequest) !== null && _this$locusMediaReque !== void 0 && _this$locusMediaReque.isConfluenceCreated()); // We are forcing turn discovery if the case is moveTo and a turn server was used already
6847
6948
  if (this.isMoveToInProgress && this.turnServerUsed) {
6848
6949
  isForced = true;
6849
6950
  }
6850
- _context29.prev = 3;
6951
+ _context30.prev = 3;
6851
6952
  if (turnServerInfo) {
6852
- _context29.next = 9;
6953
+ _context30.next = 9;
6853
6954
  break;
6854
6955
  }
6855
- _context29.next = 7;
6956
+ _context30.next = 7;
6856
6957
  return this.doTurnDiscovery(isReconnecting, isForced);
6857
6958
  case 7:
6858
- _yield$this$doTurnDis = _context29.sent;
6959
+ _yield$this$doTurnDis = _context30.sent;
6859
6960
  turnServerInfo = _yield$this$doTurnDis.turnServerInfo;
6860
6961
  case 9:
6861
- _context29.next = 11;
6962
+ _context30.next = 11;
6862
6963
  return this.createMediaConnection(turnServerInfo, bundlePolicy);
6863
6964
  case 11:
6864
- mc = _context29.sent;
6965
+ mc = _context30.sent;
6865
6966
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " media connection created"));
6866
6967
  if (!this.isMultistream) {
6867
- _context29.next = 21;
6968
+ _context30.next = 21;
6868
6969
  break;
6869
6970
  }
6870
6971
  this.remoteMediaManager = new _remoteMediaManager.RemoteMediaManager(this.receiveSlotManager, this.mediaRequestManagers, remoteMediaManagerConfig);
@@ -6872,42 +6973,42 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6872
6973
  this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.InterpretationAudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_INTERPRETATION_AUDIO_CREATED);
6873
6974
  this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.ScreenShareAudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_SCREEN_SHARE_AUDIO_CREATED);
6874
6975
  this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.VideoLayoutChanged, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_VIDEO_LAYOUT_CHANGED);
6875
- _context29.next = 21;
6976
+ _context30.next = 21;
6876
6977
  return this.remoteMediaManager.start();
6877
6978
  case 21:
6878
- _context29.next = 23;
6979
+ _context30.next = 23;
6879
6980
  return mc.initiateOffer();
6880
6981
  case 23:
6881
- _context29.next = 25;
6982
+ _context30.next = 25;
6882
6983
  return this.waitForRemoteSDPAnswer();
6883
6984
  case 25:
6884
6985
  this.handleMediaLogging(this.mediaProperties);
6885
- _context29.next = 32;
6986
+ _context30.next = 32;
6886
6987
  break;
6887
6988
  case 28:
6888
- _context29.prev = 28;
6889
- _context29.t0 = _context29["catch"](3);
6890
- _loggerProxy.default.logger.error("".concat(LOG_HEADER, " error establishing media connection, "), _context29.t0);
6891
- throw _context29.t0;
6989
+ _context30.prev = 28;
6990
+ _context30.t0 = _context30["catch"](3);
6991
+ _loggerProxy.default.logger.error("".concat(LOG_HEADER, " error establishing media connection, "), _context30.t0);
6992
+ throw _context30.t0;
6892
6993
  case 32:
6893
- _context29.prev = 32;
6894
- _context29.next = 35;
6994
+ _context30.prev = 32;
6995
+ _context30.next = 35;
6895
6996
  return this.waitForMediaConnectionConnected();
6896
6997
  case 35:
6897
- _context29.next = 41;
6998
+ _context30.next = 41;
6898
6999
  break;
6899
7000
  case 37:
6900
- _context29.prev = 37;
6901
- _context29.t1 = _context29["catch"](32);
6902
- _context29.next = 41;
6903
- return this.handleWaitForMediaConnectionConnectedError(_context29.t1, remoteMediaManagerConfig, bundlePolicy);
7001
+ _context30.prev = 37;
7002
+ _context30.t1 = _context30["catch"](32);
7003
+ _context30.next = 41;
7004
+ return this.handleWaitForMediaConnectionConnectedError(_context30.t1, remoteMediaManagerConfig, bundlePolicy);
6904
7005
  case 41:
6905
7006
  case "end":
6906
- return _context29.stop();
7007
+ return _context30.stop();
6907
7008
  }
6908
- }, _callee29, this, [[3, 28], [32, 37]]);
7009
+ }, _callee30, this, [[3, 28], [32, 37]]);
6909
7010
  }));
6910
- function establishMediaConnection(_x28, _x29, _x30, _x31) {
7011
+ function establishMediaConnection(_x29, _x30, _x31, _x32) {
6911
7012
  return _establishMediaConnection.apply(this, arguments);
6912
7013
  }
6913
7014
  return establishMediaConnection;
@@ -6922,22 +7023,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6922
7023
  }, {
6923
7024
  key: "cleanUpOnAddMediaFailure",
6924
7025
  value: (function () {
6925
- var _cleanUpOnAddMediaFailure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee30() {
6926
- return _regenerator.default.wrap(function _callee30$(_context30) {
6927
- while (1) switch (_context30.prev = _context30.next) {
7026
+ var _cleanUpOnAddMediaFailure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee31() {
7027
+ return _regenerator.default.wrap(function _callee31$(_context31) {
7028
+ while (1) switch (_context31.prev = _context31.next) {
6928
7029
  case 0:
6929
7030
  if (!this.statsAnalyzer) {
6930
- _context30.next = 3;
7031
+ _context31.next = 3;
6931
7032
  break;
6932
7033
  }
6933
- _context30.next = 3;
7034
+ _context31.next = 3;
6934
7035
  return this.statsAnalyzer.stopAnalyzer();
6935
7036
  case 3:
6936
7037
  this.statsAnalyzer = null;
6937
7038
 
6938
7039
  // when media fails, we want to upload a webrtc dump to see whats going on
6939
7040
  // this function is async, but returns once the stats have been gathered
6940
- _context30.next = 6;
7041
+ _context31.next = 6;
6941
7042
  return this.forceSendStatsReport({
6942
7043
  callFrom: 'addMedia'
6943
7044
  });
@@ -6948,9 +7049,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6948
7049
  }
6949
7050
  case 7:
6950
7051
  case "end":
6951
- return _context30.stop();
7052
+ return _context31.stop();
6952
7053
  }
6953
- }, _callee30, this);
7054
+ }, _callee31, this);
6954
7055
  }));
6955
7056
  function cleanUpOnAddMediaFailure() {
6956
7057
  return _cleanUpOnAddMediaFailure.apply(this, arguments);
@@ -6968,11 +7069,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6968
7069
  }, {
6969
7070
  key: "cleanUpBeforeRetryWithTurnServer",
6970
7071
  value: (function () {
6971
- var _cleanUpBeforeRetryWithTurnServer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee31() {
6972
- return _regenerator.default.wrap(function _callee31$(_context31) {
6973
- while (1) switch (_context31.prev = _context31.next) {
7072
+ var _cleanUpBeforeRetryWithTurnServer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32() {
7073
+ return _regenerator.default.wrap(function _callee32$(_context32) {
7074
+ while (1) switch (_context32.prev = _context32.next) {
6974
7075
  case 0:
6975
- _context31.next = 2;
7076
+ _context32.next = 2;
6976
7077
  return this.forceSendStatsReport({
6977
7078
  callFrom: 'cleanUpBeforeRetryWithTurnServer'
6978
7079
  });
@@ -6992,9 +7093,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6992
7093
  }
6993
7094
  case 3:
6994
7095
  case "end":
6995
- return _context31.stop();
7096
+ return _context32.stop();
6996
7097
  }
6997
- }, _callee31, this);
7098
+ }, _callee32, this);
6998
7099
  }));
6999
7100
  function cleanUpBeforeRetryWithTurnServer() {
7000
7101
  return _cleanUpBeforeRetryWithTurnServer.apply(this, arguments);
@@ -7004,34 +7105,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7004
7105
  }, {
7005
7106
  key: "cleanUpBeforeReconnection",
7006
7107
  value: function () {
7007
- var _cleanUpBeforeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32() {
7008
- return _regenerator.default.wrap(function _callee32$(_context32) {
7009
- while (1) switch (_context32.prev = _context32.next) {
7108
+ var _cleanUpBeforeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33() {
7109
+ return _regenerator.default.wrap(function _callee33$(_context33) {
7110
+ while (1) switch (_context33.prev = _context33.next) {
7010
7111
  case 0:
7011
- _context32.prev = 0;
7012
- _context32.next = 3;
7112
+ _context33.prev = 0;
7113
+ _context33.next = 3;
7013
7114
  return this.forceSendStatsReport({
7014
7115
  callFrom: 'cleanUpBeforeReconnection'
7015
7116
  });
7016
7117
  case 3:
7017
7118
  if (!this.statsAnalyzer) {
7018
- _context32.next = 6;
7119
+ _context33.next = 6;
7019
7120
  break;
7020
7121
  }
7021
- _context32.next = 6;
7122
+ _context33.next = 6;
7022
7123
  return this.statsAnalyzer.stopAnalyzer();
7023
7124
  case 6:
7024
- _context32.next = 11;
7125
+ _context33.next = 11;
7025
7126
  break;
7026
7127
  case 8:
7027
- _context32.prev = 8;
7028
- _context32.t0 = _context32["catch"](0);
7029
- _loggerProxy.default.logger.error('Meeting:index#cleanUpBeforeReconnection --> Error during cleanup: ', _context32.t0);
7128
+ _context33.prev = 8;
7129
+ _context33.t0 = _context33["catch"](0);
7130
+ _loggerProxy.default.logger.error('Meeting:index#cleanUpBeforeReconnection --> Error during cleanup: ', _context33.t0);
7030
7131
  case 11:
7031
7132
  case "end":
7032
- return _context32.stop();
7133
+ return _context33.stop();
7033
7134
  }
7034
- }, _callee32, this, [[0, 8]]);
7135
+ }, _callee33, this, [[0, 8]]);
7035
7136
  }));
7036
7137
  function cleanUpBeforeReconnection() {
7037
7138
  return _cleanUpBeforeReconnection.apply(this, arguments);
@@ -7078,10 +7179,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7078
7179
  }, {
7079
7180
  key: "addMedia",
7080
7181
  value: function addMedia() {
7081
- var _this42 = this;
7182
+ var _this43 = this;
7082
7183
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7083
7184
  return this.addMediaInternal(function () {
7084
- return _this42.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
7185
+ return _this43.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
7085
7186
  }, undefined, false, options);
7086
7187
  }
7087
7188
 
@@ -7099,7 +7200,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7099
7200
  }, {
7100
7201
  key: "addMediaInternal",
7101
7202
  value: (function () {
7102
- var _addMediaInternal = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33(icePhaseCallback, turnServerInfo, forceTurnDiscovery) {
7203
+ var _addMediaInternal = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34(icePhaseCallback, turnServerInfo, forceTurnDiscovery) {
7103
7204
  var options,
7104
7205
  LOG_HEADER,
7105
7206
  localStreams,
@@ -7147,24 +7248,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7147
7248
  _selectedCandidatePairChanges,
7148
7249
  _numTransports,
7149
7250
  _iceCandidateErrors,
7150
- _args33 = arguments;
7151
- return _regenerator.default.wrap(function _callee33$(_context33) {
7152
- while (1) switch (_context33.prev = _context33.next) {
7251
+ _args34 = arguments;
7252
+ return _regenerator.default.wrap(function _callee34$(_context34) {
7253
+ while (1) switch (_context34.prev = _context34.next) {
7153
7254
  case 0:
7154
- options = _args33.length > 3 && _args33[3] !== undefined ? _args33[3] : {};
7255
+ options = _args34.length > 3 && _args34[3] !== undefined ? _args34[3] : {};
7155
7256
  this.addMediaData.retriedWithTurnServer = false;
7156
7257
  this.addMediaData.icePhaseCallback = icePhaseCallback;
7157
7258
  this.hasMediaConnectionConnectedAtLeastOnce = false;
7158
7259
  LOG_HEADER = 'Meeting:index#addMedia -->';
7159
7260
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " called with: options=").concat((0, _stringify.default)(options), ", turnServerInfo=").concat((0, _stringify.default)(turnServerInfo), ", forceTurnDiscovery=").concat(forceTurnDiscovery));
7160
7261
  if (!(options.allowMediaInLobby !== true && this.meetingState !== _constants.FULL_STATE.ACTIVE)) {
7161
- _context33.next = 8;
7262
+ _context34.next = 8;
7162
7263
  break;
7163
7264
  }
7164
7265
  throw new _webexErrors.MeetingNotActiveError();
7165
7266
  case 8:
7166
7267
  if (!_util2.default.isUserInLeftState(this.locusInfo)) {
7167
- _context33.next = 10;
7268
+ _context34.next = 10;
7168
7269
  break;
7169
7270
  }
7170
7271
  throw new _webexErrors.UserNotJoinedError();
@@ -7175,7 +7276,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7175
7276
  // If the user is unjoined or guest waiting in lobby dont allow the user to addMedia
7176
7277
  // @ts-ignore - isUserUnadmitted coming from SelfUtil
7177
7278
  if (!(this.isUserUnadmitted && !this.wirelessShare && !this.allowMediaInLobby)) {
7178
- _context33.next = 14;
7279
+ _context34.next = 14;
7179
7280
  break;
7180
7281
  }
7181
7282
  throw new _webexErrors.UserInLobbyError();
@@ -7218,45 +7319,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7218
7319
  });
7219
7320
  this.audio = (0, _muteState.createMuteState)(_constants.AUDIO, this, audioEnabled);
7220
7321
  this.video = (0, _muteState.createMuteState)(_constants.VIDEO, this, videoEnabled);
7221
- _context33.prev = 18;
7222
- _context33.next = 21;
7322
+ _context34.prev = 18;
7323
+ _context34.next = 21;
7223
7324
  return this.setUpLocalStreamReferences(localStreams);
7224
7325
  case 21:
7225
7326
  this.setMercuryListener();
7226
7327
  this.createStatsAnalyzer();
7227
- _context33.next = 25;
7328
+ _context34.next = 25;
7228
7329
  return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, forceTurnDiscovery, turnServerInfo);
7229
7330
  case 25:
7230
- if (!(audioEnabled || videoEnabled)) {
7231
- _context33.next = 30;
7232
- break;
7233
- }
7234
- _context33.next = 28;
7235
- return Meeting.handleDeviceLogging(audioEnabled, videoEnabled);
7236
- case 28:
7237
- _context33.next = 31;
7238
- break;
7239
- case 30:
7240
- _loggerProxy.default.logger.info("".concat(LOG_HEADER, " device logging not required"));
7241
- case 31:
7242
7331
  if (!this.mediaProperties.hasLocalShareStream()) {
7243
- _context33.next = 34;
7332
+ _context34.next = 28;
7244
7333
  break;
7245
7334
  }
7246
- _context33.next = 34;
7335
+ _context34.next = 28;
7247
7336
  return this.enqueueScreenShareFloorRequest();
7248
- case 34:
7249
- _context33.next = 36;
7337
+ case 28:
7338
+ _context34.next = 30;
7250
7339
  return this.mediaProperties.getCurrentConnectionInfo();
7251
- case 36:
7252
- _yield$this$mediaProp = _context33.sent;
7340
+ case 30:
7341
+ _yield$this$mediaProp = _context34.sent;
7253
7342
  connectionType = _yield$this$mediaProp.connectionType;
7254
7343
  selectedCandidatePairChanges = _yield$this$mediaProp.selectedCandidatePairChanges;
7255
7344
  numTransports = _yield$this$mediaProp.numTransports;
7256
- _context33.next = 42;
7345
+ _context34.next = 36;
7257
7346
  return this.webex.meetings.reachability.getReachabilityMetrics();
7258
- case 42:
7259
- reachabilityStats = _context33.sent;
7347
+ case 36:
7348
+ reachabilityStats = _context34.sent;
7260
7349
  iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
7261
7350
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, _objectSpread(_objectSpread(_objectSpread({
7262
7351
  correlation_id: this.correlationId,
@@ -7282,31 +7371,31 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7282
7371
  // We can log ReceiveSlot SSRCs only after the SDP exchange, so doing it here:
7283
7372
  (_this$remoteMediaMana = this.remoteMediaManager) === null || _this$remoteMediaMana === void 0 ? void 0 : _this$remoteMediaMana.logAllReceiveSlots();
7284
7373
  this.startPeriodicLogUpload();
7285
- _context33.next = 69;
7374
+ _context34.next = 63;
7286
7375
  break;
7287
- case 51:
7288
- _context33.prev = 51;
7289
- _context33.t0 = _context33["catch"](18);
7290
- _loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context33.t0);
7376
+ case 45:
7377
+ _context34.prev = 45;
7378
+ _context34.t0 = _context34["catch"](18);
7379
+ _loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context34.t0);
7291
7380
 
7292
7381
  // @ts-ignore
7293
- _context33.next = 56;
7382
+ _context34.next = 50;
7294
7383
  return this.webex.meetings.reachability.getReachabilityMetrics();
7295
- case 56:
7296
- reachabilityMetrics = _context33.sent;
7297
- _context33.next = 59;
7384
+ case 50:
7385
+ reachabilityMetrics = _context34.sent;
7386
+ _context34.next = 53;
7298
7387
  return this.mediaProperties.getCurrentConnectionInfo();
7299
- case 59:
7300
- _yield$this$mediaProp2 = _context33.sent;
7388
+ case 53:
7389
+ _yield$this$mediaProp2 = _context34.sent;
7301
7390
  _selectedCandidatePairChanges = _yield$this$mediaProp2.selectedCandidatePairChanges;
7302
7391
  _numTransports = _yield$this$mediaProp2.numTransports;
7303
7392
  _iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
7304
7393
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_FAILURE, _objectSpread(_objectSpread(_objectSpread({
7305
7394
  correlation_id: this.correlationId,
7306
7395
  locus_id: this.locusUrl.split('/').pop(),
7307
- reason: _context33.t0.message,
7308
- stack: _context33.t0.stack,
7309
- code: _context33.t0.code,
7396
+ reason: _context34.t0.message,
7397
+ stack: _context34.t0.stack,
7398
+ code: _context34.t0.code,
7310
7399
  selectedCandidatePairChanges: _selectedCandidatePairChanges,
7311
7400
  numTransports: _numTransports,
7312
7401
  turnDiscoverySkippedReason: this.turnDiscoverySkippedReason,
@@ -7320,31 +7409,31 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7320
7409
  }, reachabilityMetrics), _iceCandidateErrors), {}, {
7321
7410
  iceCandidatesCount: this.iceCandidatesCount
7322
7411
  }));
7323
- _context33.next = 66;
7412
+ _context34.next = 60;
7324
7413
  return this.cleanUpOnAddMediaFailure();
7325
- case 66:
7414
+ case 60:
7326
7415
  // Upload logs on error while adding media
7327
7416
  _triggerProxy.default.trigger(this, {
7328
7417
  file: 'meeting/index',
7329
7418
  function: 'addMedia'
7330
7419
  }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
7331
- if (_context33.t0 instanceof _internalMediaCore.Errors.SdpError) {
7420
+ if (_context34.t0 instanceof _internalMediaCore.Errors.SdpError) {
7332
7421
  this.leave({
7333
7422
  reason: _constants.MEETING_REMOVED_REASON.MEETING_CONNECTION_FAILED
7334
7423
  });
7335
7424
  }
7336
- throw _context33.t0;
7337
- case 69:
7338
- _context33.prev = 69;
7425
+ throw _context34.t0;
7426
+ case 63:
7427
+ _context34.prev = 63;
7339
7428
  this.addMediaData.icePhaseCallback = DEFAULT_ICE_PHASE_CALLBACK;
7340
- return _context33.finish(69);
7341
- case 72:
7429
+ return _context34.finish(63);
7430
+ case 66:
7342
7431
  case "end":
7343
- return _context33.stop();
7432
+ return _context34.stop();
7344
7433
  }
7345
- }, _callee33, this, [[18, 51, 69, 72]]);
7434
+ }, _callee34, this, [[18, 45, 63, 66]]);
7346
7435
  }));
7347
- function addMediaInternal(_x32, _x33, _x34) {
7436
+ function addMediaInternal(_x33, _x34, _x35) {
7348
7437
  return _addMediaInternal.apply(this, arguments);
7349
7438
  }
7350
7439
  return addMediaInternal;
@@ -7374,7 +7463,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7374
7463
  * @memberof Meeting
7375
7464
  */
7376
7465
  function enqueueMediaUpdate(mediaUpdateType) {
7377
- var _this43 = this;
7466
+ var _this44 = this;
7378
7467
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7379
7468
  var canUpdateMediaNow = this.canUpdateMedia();
7380
7469
  return new _promise.default(function (resolve, reject) {
@@ -7385,9 +7474,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7385
7474
  options: options
7386
7475
  };
7387
7476
  _loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
7388
- _this43.queuedMediaUpdates.push(queueItem);
7477
+ _this44.queuedMediaUpdates.push(queueItem);
7389
7478
  if (canUpdateMediaNow) {
7390
- _this43.processNextQueuedMediaUpdate();
7479
+ _this44.processNextQueuedMediaUpdate();
7391
7480
  }
7392
7481
  });
7393
7482
  }
@@ -7410,35 +7499,35 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7410
7499
  * @memberof Meeting
7411
7500
  */
7412
7501
  function () {
7413
- var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34(options) {
7502
+ var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35(options) {
7414
7503
  var audioEnabled, videoEnabled, shareAudioEnabled, shareVideoEnabled, _this$audio3, _this$video3;
7415
- return _regenerator.default.wrap(function _callee34$(_context34) {
7416
- while (1) switch (_context34.prev = _context34.next) {
7504
+ return _regenerator.default.wrap(function _callee35$(_context35) {
7505
+ while (1) switch (_context35.prev = _context35.next) {
7417
7506
  case 0:
7418
7507
  this.checkMediaConnection();
7419
7508
  audioEnabled = options.audioEnabled, videoEnabled = options.videoEnabled, shareAudioEnabled = options.shareAudioEnabled, shareVideoEnabled = options.shareVideoEnabled;
7420
7509
  _loggerProxy.default.logger.log("Meeting:index#updateMedia --> called with options=".concat((0, _stringify.default)(options)));
7421
7510
  if (this.canUpdateMedia()) {
7422
- _context34.next = 5;
7511
+ _context35.next = 5;
7423
7512
  break;
7424
7513
  }
7425
- return _context34.abrupt("return", this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.UPDATE_MEDIA, options));
7514
+ return _context35.abrupt("return", this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.UPDATE_MEDIA, options));
7426
7515
  case 5:
7427
7516
  if (!this.isMultistream) {
7428
- _context34.next = 10;
7517
+ _context35.next = 10;
7429
7518
  break;
7430
7519
  }
7431
7520
  if (!(shareAudioEnabled !== undefined || shareVideoEnabled !== undefined)) {
7432
- _context34.next = 8;
7521
+ _context35.next = 8;
7433
7522
  break;
7434
7523
  }
7435
7524
  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');
7436
7525
  case 8:
7437
- _context34.next = 12;
7526
+ _context35.next = 12;
7438
7527
  break;
7439
7528
  case 10:
7440
7529
  if (!(shareAudioEnabled !== undefined)) {
7441
- _context34.next = 12;
7530
+ _context35.next = 12;
7442
7531
  break;
7443
7532
  }
7444
7533
  throw new Error('toggling shareAudioEnabled in a transcoded meeting is not supported as of now');
@@ -7463,20 +7552,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7463
7552
  this.mediaProperties.mediaDirection.receiveShare = !!(shareAudioEnabled || shareVideoEnabled);
7464
7553
  }
7465
7554
  if (this.isMultistream) {
7466
- _context34.next = 18;
7555
+ _context35.next = 18;
7467
7556
  break;
7468
7557
  }
7469
- _context34.next = 18;
7558
+ _context35.next = 18;
7470
7559
  return this.updateTranscodedMediaConnection();
7471
7560
  case 18:
7472
- return _context34.abrupt("return", undefined);
7561
+ return _context35.abrupt("return", undefined);
7473
7562
  case 19:
7474
7563
  case "end":
7475
- return _context34.stop();
7564
+ return _context35.stop();
7476
7565
  }
7477
- }, _callee34, this);
7566
+ }, _callee35, this);
7478
7567
  }));
7479
- function updateMedia(_x35) {
7568
+ function updateMedia(_x36) {
7480
7569
  return _updateMedia.apply(this, arguments);
7481
7570
  }
7482
7571
  return updateMedia;
@@ -7492,7 +7581,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7492
7581
  }, {
7493
7582
  key: "acknowledge",
7494
7583
  value: function acknowledge(type) {
7495
- var _this44 = this;
7584
+ var _this45 = this;
7496
7585
  if (!type) {
7497
7586
  return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
7498
7587
  }
@@ -7504,12 +7593,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7504
7593
  }).then(function (response) {
7505
7594
  return _promise.default.resolve(response);
7506
7595
  }).then(function (response) {
7507
- _this44.meetingFiniteStateMachine.ring(type);
7596
+ _this45.meetingFiniteStateMachine.ring(type);
7508
7597
  // @ts-ignore
7509
- _this44.webex.internal.newMetrics.submitClientEvent({
7598
+ _this45.webex.internal.newMetrics.submitClientEvent({
7510
7599
  name: 'client.alert.displayed',
7511
7600
  options: {
7512
- meetingId: _this44.id
7601
+ meetingId: _this45.id
7513
7602
  }
7514
7603
  });
7515
7604
  return _promise.default.resolve({
@@ -7534,12 +7623,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7534
7623
  }, {
7535
7624
  key: "decline",
7536
7625
  value: function decline(reason) {
7537
- var _this45 = this;
7626
+ var _this46 = this;
7538
7627
  return _util2.default.declineMeeting(this, reason).then(function (decline) {
7539
- _this45.meetingFiniteStateMachine.decline();
7628
+ _this46.meetingFiniteStateMachine.decline();
7540
7629
  return _promise.default.resolve(decline);
7541
7630
  }).catch(function (error) {
7542
- _this45.meetingFiniteStateMachine.fail(error);
7631
+ _this46.meetingFiniteStateMachine.fail(error);
7543
7632
  return _promise.default.reject(error);
7544
7633
  });
7545
7634
  }
@@ -7590,7 +7679,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7590
7679
  }, {
7591
7680
  key: "leave",
7592
7681
  value: function leave() {
7593
- var _this46 = this;
7682
+ var _this47 = this;
7594
7683
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7595
7684
  var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
7596
7685
 
@@ -7602,7 +7691,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7602
7691
  var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7603
7692
  return (
7604
7693
  // @ts-ignore
7605
- _this46.webex.internal.newMetrics.submitClientEvent({
7694
+ _this47.webex.internal.newMetrics.submitClientEvent({
7606
7695
  name: 'client.call.leave',
7607
7696
  payload: _objectSpread({
7608
7697
  trigger: 'user-interaction',
@@ -7610,7 +7699,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7610
7699
  leaveReason: options.clientEventLeaveReason
7611
7700
  }, payload),
7612
7701
  options: {
7613
- meetingId: _this46.id
7702
+ meetingId: _this47.id
7614
7703
  }
7615
7704
  })
7616
7705
  );
@@ -7619,24 +7708,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7619
7708
  return _util2.default.leaveMeeting(this, options).then(function (leave) {
7620
7709
  // CA team recommends submitting this *after* locus /leave
7621
7710
  submitLeaveMetric();
7622
- _this46.meetingFiniteStateMachine.leave();
7623
- _this46.clearMeetingData();
7711
+ _this47.meetingFiniteStateMachine.leave();
7712
+ _this47.clearMeetingData();
7624
7713
 
7625
7714
  // upload logs on leave irrespective of meeting delete
7626
- _triggerProxy.default.trigger(_this46, {
7715
+ _triggerProxy.default.trigger(_this47, {
7627
7716
  file: 'meeting/index',
7628
7717
  function: 'leave'
7629
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this46);
7718
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this47);
7630
7719
 
7631
7720
  // TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
7632
- if (_this46.wirelessShare || _this46.guest) {
7721
+ if (_this47.wirelessShare || _this47.guest) {
7633
7722
  // If screen sharing clean the meeting object
7634
- _triggerProxy.default.trigger(_this46, {
7723
+ _triggerProxy.default.trigger(_this47, {
7635
7724
  file: 'meeting/index',
7636
7725
  function: 'leave'
7637
7726
  }, _constants.EVENTS.DESTROY_MEETING, {
7638
7727
  reason: options.reason,
7639
- meetingId: _this46.id
7728
+ meetingId: _this47.id
7640
7729
  });
7641
7730
  }
7642
7731
  _loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
@@ -7653,16 +7742,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7653
7742
  shownToUser: false
7654
7743
  }]
7655
7744
  });
7656
- _this46.meetingFiniteStateMachine.fail(error);
7745
+ _this47.meetingFiniteStateMachine.fail(error);
7657
7746
  _loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
7658
7747
  // upload logs on leave irrespective of meeting delete
7659
- _triggerProxy.default.trigger(_this46, {
7748
+ _triggerProxy.default.trigger(_this47, {
7660
7749
  file: 'meeting/index',
7661
7750
  function: 'leave'
7662
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this46);
7751
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this47);
7663
7752
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
7664
- correlation_id: _this46.correlationId,
7665
- locus_id: _this46.locusUrl.split('/').pop(),
7753
+ correlation_id: _this47.correlationId,
7754
+ locus_id: _this47.locusUrl.split('/').pop(),
7666
7755
  reason: error.message,
7667
7756
  stack: error.stack,
7668
7757
  code: error.code
@@ -7682,7 +7771,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7682
7771
  }, {
7683
7772
  key: "startWhiteboardShare",
7684
7773
  value: function startWhiteboardShare(channelUrl, resourceToken) {
7685
- var _this47 = this;
7774
+ var _this48 = this;
7686
7775
  var whiteboard = this.locusInfo.mediaShares.find(function (element) {
7687
7776
  return element.name === 'whiteboard';
7688
7777
  });
@@ -7711,13 +7800,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7711
7800
  body.resourceToken = resourceToken;
7712
7801
  }
7713
7802
  return this.meetingRequest.changeMeetingFloor(body).then(function () {
7714
- _this47.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7803
+ _this48.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7715
7804
  return _promise.default.resolve();
7716
7805
  }).catch(function (error) {
7717
7806
  _loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
7718
7807
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
7719
- correlation_id: _this47.correlationId,
7720
- locus_id: _this47.locusUrl.split('/').pop(),
7808
+ correlation_id: _this48.correlationId,
7809
+ locus_id: _this48.locusUrl.split('/').pop(),
7721
7810
  reason: error.message,
7722
7811
  stack: error.stack,
7723
7812
  board: {
@@ -7740,7 +7829,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7740
7829
  }, {
7741
7830
  key: "stopWhiteboardShare",
7742
7831
  value: function stopWhiteboardShare(channelUrl) {
7743
- var _this48 = this;
7832
+ var _this49 = this;
7744
7833
  var whiteboard = this.locusInfo.mediaShares.find(function (element) {
7745
7834
  return element.name === 'whiteboard';
7746
7835
  });
@@ -7763,8 +7852,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7763
7852
  }).catch(function (error) {
7764
7853
  _loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
7765
7854
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
7766
- correlation_id: _this48.correlationId,
7767
- locus_id: _this48.locusUrl.split('/').pop(),
7855
+ correlation_id: _this49.correlationId,
7856
+ locus_id: _this49.locusUrl.split('/').pop(),
7768
7857
  reason: error.message,
7769
7858
  stack: error.stack,
7770
7859
  board: {
@@ -7786,7 +7875,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7786
7875
  }, {
7787
7876
  key: "requestScreenShareFloor",
7788
7877
  value: function requestScreenShareFloor() {
7789
- var _this49 = this;
7878
+ var _this50 = this;
7790
7879
  if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
7791
7880
  _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, ")"));
7792
7881
  this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
@@ -7817,34 +7906,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7817
7906
  resourceUrl: this.resourceUrl,
7818
7907
  shareInstanceId: this.localShareInstanceId
7819
7908
  }).then(function () {
7820
- _this49.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
7909
+ _this50.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
7821
7910
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
7822
- correlation_id: _this49.correlationId,
7823
- locus_id: _this49.locusUrl.split('/').pop()
7911
+ correlation_id: _this50.correlationId,
7912
+ locus_id: _this50.locusUrl.split('/').pop()
7824
7913
  });
7825
7914
  return _promise.default.resolve();
7826
7915
  }).catch(function (error) {
7827
7916
  _loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
7828
7917
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
7829
- correlation_id: _this49.correlationId,
7830
- locus_id: _this49.locusUrl.split('/').pop(),
7918
+ correlation_id: _this50.correlationId,
7919
+ locus_id: _this50.locusUrl.split('/').pop(),
7831
7920
  reason: error.message,
7832
7921
  stack: error.stack
7833
7922
  });
7834
7923
 
7835
7924
  // @ts-ignore
7836
- _this49.webex.internal.newMetrics.submitClientEvent({
7925
+ _this50.webex.internal.newMetrics.submitClientEvent({
7837
7926
  name: 'client.share.floor-granted.local',
7838
7927
  payload: {
7839
7928
  mediaType: 'share',
7840
7929
  errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
7841
- shareInstanceId: _this49.localShareInstanceId
7930
+ shareInstanceId: _this50.localShareInstanceId
7842
7931
  },
7843
7932
  options: {
7844
- meetingId: _this49.id
7933
+ meetingId: _this50.id
7845
7934
  }
7846
7935
  });
7847
- _this49.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7936
+ _this50.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7848
7937
  return _promise.default.reject(error);
7849
7938
  });
7850
7939
  }
@@ -7867,10 +7956,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7867
7956
  }, {
7868
7957
  key: "requestScreenShareFloorIfPending",
7869
7958
  value: function requestScreenShareFloorIfPending() {
7870
- var _this50 = this;
7959
+ var _this51 = this;
7871
7960
  if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
7872
7961
  this.requestScreenShareFloor().then(function () {
7873
- _this50.floorGrantPending = false;
7962
+ _this51.floorGrantPending = false;
7874
7963
  });
7875
7964
  }
7876
7965
  }
@@ -7884,7 +7973,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7884
7973
  }, {
7885
7974
  key: "releaseScreenShareFloor",
7886
7975
  value: function releaseScreenShareFloor() {
7887
- var _this51 = this;
7976
+ var _this52 = this;
7888
7977
  var content = this.locusInfo.mediaShares.find(function (element) {
7889
7978
  return element.name === _constants.CONTENT;
7890
7979
  });
@@ -7919,8 +8008,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7919
8008
  }).catch(function (error) {
7920
8009
  _loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
7921
8010
  _metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
7922
- correlation_id: _this51.correlationId,
7923
- locus_id: _this51.locusUrl.split('/').pop(),
8011
+ correlation_id: _this52.correlationId,
8012
+ locus_id: _this52.locusUrl.split('/').pop(),
7924
8013
  reason: error.message,
7925
8014
  stack: error.stack
7926
8015
  });
@@ -8100,7 +8189,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8100
8189
  }, {
8101
8190
  key: "changeVideoLayout",
8102
8191
  value: function changeVideoLayout(layoutType) {
8103
- var _this52 = this;
8192
+ var _this53 = this;
8104
8193
  var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
8105
8194
  var main = renderInfo.main,
8106
8195
  content = renderInfo.content;
@@ -8154,7 +8243,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8154
8243
  }
8155
8244
  this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
8156
8245
  this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
8157
- _triggerProxy.default.trigger(_this52, {
8246
+ _triggerProxy.default.trigger(_this53, {
8158
8247
  file: 'meeting/index',
8159
8248
  function: 'changeVideoLayout'
8160
8249
  }, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
@@ -8270,7 +8359,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8270
8359
  }, {
8271
8360
  key: "endMeetingForAll",
8272
8361
  value: function endMeetingForAll() {
8273
- var _this53 = this;
8362
+ var _this54 = this;
8274
8363
  // @ts-ignore
8275
8364
  this.webex.internal.newMetrics.submitClientEvent({
8276
8365
  name: 'client.call.leave',
@@ -8288,25 +8377,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8288
8377
  locus_id: this.locusId
8289
8378
  });
8290
8379
  return _util2.default.endMeetingForAll(this).then(function (end) {
8291
- _this53.meetingFiniteStateMachine.end();
8292
- _this53.clearMeetingData();
8380
+ _this54.meetingFiniteStateMachine.end();
8381
+ _this54.clearMeetingData();
8293
8382
  // upload logs on leave irrespective of meeting delete
8294
- _triggerProxy.default.trigger(_this53, {
8383
+ _triggerProxy.default.trigger(_this54, {
8295
8384
  file: 'meeting/index',
8296
8385
  function: 'endMeetingForAll'
8297
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this53);
8386
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this54);
8298
8387
  return end;
8299
8388
  }).catch(function (error) {
8300
- _this53.meetingFiniteStateMachine.fail(error);
8389
+ _this54.meetingFiniteStateMachine.fail(error);
8301
8390
  _loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
8302
8391
  // upload logs on leave irrespective of meeting delete
8303
- _triggerProxy.default.trigger(_this53, {
8392
+ _triggerProxy.default.trigger(_this54, {
8304
8393
  file: 'meeting/index',
8305
8394
  function: 'endMeetingForAll'
8306
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this53);
8395
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this54);
8307
8396
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
8308
- correlation_id: _this53.correlationId,
8309
- locus_id: _this53.locusUrl.split('/').pop(),
8397
+ correlation_id: _this54.correlationId,
8398
+ locus_id: _this54.locusUrl.split('/').pop(),
8310
8399
  reason: error.message,
8311
8400
  stack: error.stack,
8312
8401
  code: error.code
@@ -8395,39 +8484,39 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8395
8484
  }, {
8396
8485
  key: "enableMusicMode",
8397
8486
  value: (function () {
8398
- var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35(shouldEnableMusicMode) {
8399
- return _regenerator.default.wrap(function _callee35$(_context35) {
8400
- while (1) switch (_context35.prev = _context35.next) {
8487
+ var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee36(shouldEnableMusicMode) {
8488
+ return _regenerator.default.wrap(function _callee36$(_context36) {
8489
+ while (1) switch (_context36.prev = _context36.next) {
8401
8490
  case 0:
8402
8491
  this.checkMediaConnection();
8403
8492
  if (this.isMultistream) {
8404
- _context35.next = 3;
8493
+ _context36.next = 3;
8405
8494
  break;
8406
8495
  }
8407
8496
  throw new Error('enableMusicMode() only supported with multistream');
8408
8497
  case 3:
8409
8498
  if (!shouldEnableMusicMode) {
8410
- _context35.next = 8;
8499
+ _context36.next = 8;
8411
8500
  break;
8412
8501
  }
8413
- _context35.next = 6;
8502
+ _context36.next = 6;
8414
8503
  return this.sendSlotManager.setCodecParameters(_internalMediaCore.MediaType.AudioMain, {
8415
8504
  maxaveragebitrate: '64000',
8416
8505
  maxplaybackrate: '48000'
8417
8506
  });
8418
8507
  case 6:
8419
- _context35.next = 10;
8508
+ _context36.next = 10;
8420
8509
  break;
8421
8510
  case 8:
8422
- _context35.next = 10;
8511
+ _context36.next = 10;
8423
8512
  return this.sendSlotManager.deleteCodecParameters(_internalMediaCore.MediaType.AudioMain, ['maxaveragebitrate', 'maxplaybackrate']);
8424
8513
  case 10:
8425
8514
  case "end":
8426
- return _context35.stop();
8515
+ return _context36.stop();
8427
8516
  }
8428
- }, _callee35, this);
8517
+ }, _callee36, this);
8429
8518
  }));
8430
- function enableMusicMode(_x36) {
8519
+ function enableMusicMode(_x37) {
8431
8520
  return _enableMusicMode.apply(this, arguments);
8432
8521
  }
8433
8522
  return enableMusicMode;
@@ -8448,7 +8537,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8448
8537
  _this$mediaProperties41,
8449
8538
  _this$mediaProperties42,
8450
8539
  _this$mediaProperties43,
8451
- _this54 = this;
8540
+ _this55 = this;
8452
8541
  var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
8453
8542
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
8454
8543
  if (!this.canUpdateMedia()) {
@@ -8473,8 +8562,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8473
8562
  }).catch(function (error) {
8474
8563
  _loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
8475
8564
  _metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
8476
- correlation_id: _this54.correlationId,
8477
- locus_id: _this54.locusUrl.split('/').pop(),
8565
+ correlation_id: _this55.correlationId,
8566
+ locus_id: _this55.locusUrl.split('/').pop(),
8478
8567
  reason: error.message,
8479
8568
  stack: error.stack
8480
8569
  });
@@ -8518,25 +8607,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8518
8607
  }, {
8519
8608
  key: "publishStream",
8520
8609
  value: (function () {
8521
- var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee36(mediaType, stream) {
8522
- return _regenerator.default.wrap(function _callee36$(_context36) {
8523
- while (1) switch (_context36.prev = _context36.next) {
8610
+ var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee37(mediaType, stream) {
8611
+ return _regenerator.default.wrap(function _callee37$(_context37) {
8612
+ while (1) switch (_context37.prev = _context37.next) {
8524
8613
  case 0:
8525
8614
  if (stream) {
8526
- _context36.next = 2;
8615
+ _context37.next = 2;
8527
8616
  break;
8528
8617
  }
8529
- return _context36.abrupt("return");
8618
+ return _context37.abrupt("return");
8530
8619
  case 2:
8531
8620
  if (!this.mediaProperties.webrtcMediaConnection) {
8532
- _context36.next = 7;
8621
+ _context37.next = 7;
8533
8622
  break;
8534
8623
  }
8535
8624
  if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
8536
- _context36.next = 6;
8625
+ _context37.next = 6;
8537
8626
  break;
8538
8627
  }
8539
- _context36.next = 6;
8628
+ _context37.next = 6;
8540
8629
  return this.sendSlotManager.publishStream(mediaType, stream);
8541
8630
  case 6:
8542
8631
  this.emitPublishStateChangeEvent({
@@ -8547,11 +8636,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8547
8636
  });
8548
8637
  case 7:
8549
8638
  case "end":
8550
- return _context36.stop();
8639
+ return _context37.stop();
8551
8640
  }
8552
- }, _callee36, this);
8641
+ }, _callee37, this);
8553
8642
  }));
8554
- function publishStream(_x37, _x38) {
8643
+ function publishStream(_x38, _x39) {
8555
8644
  return _publishStream.apply(this, arguments);
8556
8645
  }
8557
8646
  return publishStream;
@@ -8567,21 +8656,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8567
8656
  }, {
8568
8657
  key: "unpublishStream",
8569
8658
  value: (function () {
8570
- var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee37(mediaType, stream) {
8571
- return _regenerator.default.wrap(function _callee37$(_context37) {
8572
- while (1) switch (_context37.prev = _context37.next) {
8659
+ var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee38(mediaType, stream) {
8660
+ return _regenerator.default.wrap(function _callee38$(_context38) {
8661
+ while (1) switch (_context38.prev = _context38.next) {
8573
8662
  case 0:
8574
8663
  if (stream) {
8575
- _context37.next = 2;
8664
+ _context38.next = 2;
8576
8665
  break;
8577
8666
  }
8578
- return _context37.abrupt("return");
8667
+ return _context38.abrupt("return");
8579
8668
  case 2:
8580
8669
  if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
8581
- _context37.next = 5;
8670
+ _context38.next = 5;
8582
8671
  break;
8583
8672
  }
8584
- _context37.next = 5;
8673
+ _context38.next = 5;
8585
8674
  return this.sendSlotManager.unpublishStream(mediaType);
8586
8675
  case 5:
8587
8676
  this.emitPublishStateChangeEvent({
@@ -8592,11 +8681,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8592
8681
  });
8593
8682
  case 6:
8594
8683
  case "end":
8595
- return _context37.stop();
8684
+ return _context38.stop();
8596
8685
  }
8597
- }, _callee37, this);
8686
+ }, _callee38, this);
8598
8687
  }));
8599
- function unpublishStream(_x39, _x40) {
8688
+ function unpublishStream(_x40, _x41) {
8600
8689
  return _unpublishStream.apply(this, arguments);
8601
8690
  }
8602
8691
  return unpublishStream;
@@ -8611,19 +8700,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8611
8700
  }, {
8612
8701
  key: "publishStreams",
8613
8702
  value: (function () {
8614
- var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee38(streams) {
8703
+ var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee39(streams) {
8615
8704
  var _streams$screenShare, _streams$screenShare2, _streams$screenShare3, _streams$screenShare4, _streams$screenShare5, _streams$screenShare6;
8616
8705
  var streamChecks, _i, _streamChecks, _streamChecks$_i, stream, name, floorRequestNeeded, _streams$screenShare7;
8617
- return _regenerator.default.wrap(function _callee38$(_context38) {
8618
- while (1) switch (_context38.prev = _context38.next) {
8706
+ return _regenerator.default.wrap(function _callee39$(_context39) {
8707
+ while (1) switch (_context39.prev = _context39.next) {
8619
8708
  case 0:
8620
8709
  _loggerProxy.default.logger.info("Meeting:index#publishStreams --> called with: ".concat((0, _stringify.default)(streams)));
8621
8710
  this.checkMediaConnection();
8622
8711
  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))) {
8623
- _context38.next = 4;
8712
+ _context39.next = 4;
8624
8713
  break;
8625
8714
  }
8626
- return _context38.abrupt("return");
8715
+ return _context39.abrupt("return");
8627
8716
  case 4:
8628
8717
  streamChecks = [{
8629
8718
  stream: streams === null || streams === void 0 ? void 0 : streams.microphone,
@@ -8641,62 +8730,62 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8641
8730
  _i = 0, _streamChecks = streamChecks;
8642
8731
  case 6:
8643
8732
  if (!(_i < _streamChecks.length)) {
8644
- _context38.next = 13;
8733
+ _context39.next = 13;
8645
8734
  break;
8646
8735
  }
8647
8736
  _streamChecks$_i = _streamChecks[_i], stream = _streamChecks$_i.stream, name = _streamChecks$_i.name;
8648
8737
  if (!((stream === null || stream === void 0 ? void 0 : stream.readyState) === 'ended')) {
8649
- _context38.next = 10;
8738
+ _context39.next = 10;
8650
8739
  break;
8651
8740
  }
8652
8741
  throw new Error("Attempted to publish ".concat(name, " stream with ended readyState, correlationId=").concat(this.correlationId));
8653
8742
  case 10:
8654
8743
  _i++;
8655
- _context38.next = 6;
8744
+ _context39.next = 6;
8656
8745
  break;
8657
8746
  case 13:
8658
8747
  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
8659
8748
  if (!(this.isMultistream && (_streams$screenShare5 = streams.screenShare) !== null && _streams$screenShare5 !== void 0 && _streams$screenShare5.audio)) {
8660
- _context38.next = 18;
8749
+ _context39.next = 18;
8661
8750
  break;
8662
8751
  }
8663
- _context38.next = 17;
8752
+ _context39.next = 17;
8664
8753
  return this.setLocalShareAudioStream(streams.screenShare.audio);
8665
8754
  case 17:
8666
8755
  floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
8667
8756
  case 18:
8668
8757
  if (!((_streams$screenShare6 = streams.screenShare) !== null && _streams$screenShare6 !== void 0 && _streams$screenShare6.video)) {
8669
- _context38.next = 22;
8758
+ _context39.next = 22;
8670
8759
  break;
8671
8760
  }
8672
- _context38.next = 21;
8761
+ _context39.next = 21;
8673
8762
  return this.setLocalShareVideoStream((_streams$screenShare7 = streams.screenShare) === null || _streams$screenShare7 === void 0 ? void 0 : _streams$screenShare7.video);
8674
8763
  case 21:
8675
8764
  floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
8676
8765
  case 22:
8677
8766
  if (!streams.microphone) {
8678
- _context38.next = 25;
8767
+ _context39.next = 25;
8679
8768
  break;
8680
8769
  }
8681
- _context38.next = 25;
8770
+ _context39.next = 25;
8682
8771
  return this.setLocalAudioStream(streams.microphone);
8683
8772
  case 25:
8684
8773
  if (!streams.camera) {
8685
- _context38.next = 28;
8774
+ _context39.next = 28;
8686
8775
  break;
8687
8776
  }
8688
- _context38.next = 28;
8777
+ _context39.next = 28;
8689
8778
  return this.setLocalVideoStream(streams.camera);
8690
8779
  case 28:
8691
8780
  if (this.isMultistream) {
8692
- _context38.next = 31;
8781
+ _context39.next = 31;
8693
8782
  break;
8694
8783
  }
8695
- _context38.next = 31;
8784
+ _context39.next = 31;
8696
8785
  return this.updateTranscodedMediaConnection();
8697
8786
  case 31:
8698
8787
  if (!floorRequestNeeded) {
8699
- _context38.next = 37;
8788
+ _context39.next = 37;
8700
8789
  break;
8701
8790
  }
8702
8791
  this.localShareInstanceId = _uuid.default.v4();
@@ -8720,15 +8809,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8720
8809
  // we're sending the http request to Locus to request the screen share floor
8721
8810
  // only after the SDP update, because that's how it's always been done for transcoded meetings
8722
8811
  // and also if sharing from the start, we need confluence to have been created
8723
- _context38.next = 37;
8812
+ _context39.next = 37;
8724
8813
  return this.enqueueScreenShareFloorRequest();
8725
8814
  case 37:
8726
8815
  case "end":
8727
- return _context38.stop();
8816
+ return _context39.stop();
8728
8817
  }
8729
- }, _callee38, this);
8818
+ }, _callee39, this);
8730
8819
  }));
8731
- function publishStreams(_x41) {
8820
+ function publishStreams(_x42) {
8732
8821
  return _publishStreams.apply(this, arguments);
8733
8822
  }
8734
8823
  return publishStreams;
@@ -8743,10 +8832,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8743
8832
  }, {
8744
8833
  key: "unpublishStreams",
8745
8834
  value: (function () {
8746
- var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee39(streams) {
8835
+ var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee40(streams) {
8747
8836
  var promises, _iterator, _step, stream;
8748
- return _regenerator.default.wrap(function _callee39$(_context39) {
8749
- while (1) switch (_context39.prev = _context39.next) {
8837
+ return _regenerator.default.wrap(function _callee40$(_context40) {
8838
+ while (1) switch (_context40.prev = _context40.next) {
8750
8839
  case 0:
8751
8840
  _loggerProxy.default.logger.info("Meeting:index#unpublishStreams --> called with: ".concat((0, _stringify.default)(streams)));
8752
8841
  this.checkMediaConnection();
@@ -8778,7 +8867,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8778
8867
  if (!this.isMultistream) {
8779
8868
  promises.push(this.updateTranscodedMediaConnection());
8780
8869
  }
8781
- _context39.next = 8;
8870
+ _context40.next = 8;
8782
8871
  return _promise.default.all(promises);
8783
8872
  case 8:
8784
8873
  // we're allowing for the SDK to support just audio share as well
@@ -8799,11 +8888,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8799
8888
  }
8800
8889
  case 9:
8801
8890
  case "end":
8802
- return _context39.stop();
8891
+ return _context40.stop();
8803
8892
  }
8804
- }, _callee39, this);
8893
+ }, _callee40, this);
8805
8894
  }));
8806
- function unpublishStreams(_x42) {
8895
+ function unpublishStreams(_x43) {
8807
8896
  return _unpublishStreams.apply(this, arguments);
8808
8897
  }
8809
8898
  return unpublishStreams;
@@ -8860,64 +8949,6 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8860
8949
  }
8861
8950
  return _promise.default.resolve();
8862
8951
  }
8863
- }], [{
8864
- key: "handleDeviceLogging",
8865
- value: (function () {
8866
- var _handleDeviceLogging = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee40(isAudioEnabled, isVideoEnabled) {
8867
- var devices;
8868
- return _regenerator.default.wrap(function _callee40$(_context40) {
8869
- while (1) switch (_context40.prev = _context40.next) {
8870
- case 0:
8871
- _context40.prev = 0;
8872
- devices = [];
8873
- if (!(isVideoEnabled && isAudioEnabled)) {
8874
- _context40.next = 8;
8875
- break;
8876
- }
8877
- _context40.next = 5;
8878
- return (0, _mediaHelpers.getDevices)();
8879
- case 5:
8880
- devices = _context40.sent;
8881
- _context40.next = 18;
8882
- break;
8883
- case 8:
8884
- if (!isVideoEnabled) {
8885
- _context40.next = 14;
8886
- break;
8887
- }
8888
- _context40.next = 11;
8889
- return (0, _mediaHelpers.getDevices)(_media.default.DeviceKind.VIDEO_INPUT);
8890
- case 11:
8891
- devices = _context40.sent;
8892
- _context40.next = 18;
8893
- break;
8894
- case 14:
8895
- if (!isAudioEnabled) {
8896
- _context40.next = 18;
8897
- break;
8898
- }
8899
- _context40.next = 17;
8900
- return (0, _mediaHelpers.getDevices)(_media.default.DeviceKind.AUDIO_INPUT);
8901
- case 17:
8902
- devices = _context40.sent;
8903
- case 18:
8904
- _util2.default.handleDeviceLogging(devices);
8905
- _context40.next = 23;
8906
- break;
8907
- case 21:
8908
- _context40.prev = 21;
8909
- _context40.t0 = _context40["catch"](0);
8910
- case 23:
8911
- case "end":
8912
- return _context40.stop();
8913
- }
8914
- }, _callee40, null, [[0, 21]]);
8915
- }));
8916
- function handleDeviceLogging(_x43, _x44) {
8917
- return _handleDeviceLogging.apply(this, arguments);
8918
- }
8919
- return handleDeviceLogging;
8920
- }())
8921
8952
  }]);
8922
8953
  return Meeting;
8923
8954
  }(_webexCore.StatelessWebexPlugin);