@webex/plugin-meetings 3.7.0-next.1 → 3.7.0-next.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/config.js +2 -1
  4. package/dist/config.js.map +1 -1
  5. package/dist/constants.js +10 -1
  6. package/dist/constants.js.map +1 -1
  7. package/dist/interpretation/index.js +1 -1
  8. package/dist/interpretation/siLanguage.js +1 -1
  9. package/dist/meeting/in-meeting-actions.js +11 -1
  10. package/dist/meeting/in-meeting-actions.js.map +1 -1
  11. package/dist/meeting/index.js +287 -198
  12. package/dist/meeting/index.js.map +1 -1
  13. package/dist/meeting/util.js +1 -0
  14. package/dist/meeting/util.js.map +1 -1
  15. package/dist/meetings/index.js +4 -1
  16. package/dist/meetings/index.js.map +1 -1
  17. package/dist/members/util.js +4 -2
  18. package/dist/members/util.js.map +1 -1
  19. package/dist/metrics/constants.js +3 -1
  20. package/dist/metrics/constants.js.map +1 -1
  21. package/dist/reachability/clusterReachability.js +12 -11
  22. package/dist/reachability/clusterReachability.js.map +1 -1
  23. package/dist/recording-controller/enums.js +8 -4
  24. package/dist/recording-controller/enums.js.map +1 -1
  25. package/dist/recording-controller/index.js +18 -9
  26. package/dist/recording-controller/index.js.map +1 -1
  27. package/dist/recording-controller/util.js +13 -9
  28. package/dist/recording-controller/util.js.map +1 -1
  29. package/dist/types/config.d.ts +1 -0
  30. package/dist/types/constants.d.ts +8 -0
  31. package/dist/types/meeting/in-meeting-actions.d.ts +10 -0
  32. package/dist/types/meeting/index.d.ts +20 -0
  33. package/dist/types/meetings/index.d.ts +3 -0
  34. package/dist/types/members/util.d.ts +2 -0
  35. package/dist/types/metrics/constants.d.ts +2 -0
  36. package/dist/types/recording-controller/enums.d.ts +5 -2
  37. package/dist/types/recording-controller/index.d.ts +1 -0
  38. package/dist/types/recording-controller/util.d.ts +2 -1
  39. package/dist/webinar/index.js +39 -7
  40. package/dist/webinar/index.js.map +1 -1
  41. package/package.json +21 -21
  42. package/src/config.ts +1 -0
  43. package/src/constants.ts +10 -0
  44. package/src/meeting/in-meeting-actions.ts +21 -0
  45. package/src/meeting/index.ts +94 -0
  46. package/src/meeting/util.ts +1 -0
  47. package/src/meetings/index.ts +6 -0
  48. package/src/members/util.ts +1 -0
  49. package/src/metrics/constants.ts +2 -0
  50. package/src/reachability/clusterReachability.ts +4 -1
  51. package/src/recording-controller/enums.ts +5 -2
  52. package/src/recording-controller/index.ts +17 -4
  53. package/src/recording-controller/util.ts +20 -5
  54. package/src/webinar/index.ts +40 -8
  55. package/test/unit/spec/meeting/in-meeting-actions.ts +13 -1
  56. package/test/unit/spec/meeting/index.js +72 -0
  57. package/test/unit/spec/meeting/utils.js +2 -0
  58. package/test/unit/spec/meetings/index.js +9 -5
  59. package/test/unit/spec/members/utils.js +95 -0
  60. package/test/unit/spec/reachability/clusterReachability.ts +7 -0
  61. package/test/unit/spec/recording-controller/index.js +61 -5
  62. package/test/unit/spec/recording-controller/util.js +39 -3
  63. package/test/unit/spec/webinar/index.ts +47 -0
@@ -39,6 +39,7 @@ var _lodash = require("lodash");
39
39
  var _jwtDecode = _interopRequireDefault(require("jwt-decode"));
40
40
  var _webexCore = require("@webex/webex-core");
41
41
  var _common = require("@webex/common");
42
+ var _commonTimers = require("@webex/common-timers");
42
43
  var _internalPluginMetrics = require("@webex/internal-plugin-metrics");
43
44
  var _internalMediaCore = require("@webex/internal-media-core");
44
45
  var _mediaHelpers = require("@webex/media-helpers");
@@ -552,6 +553,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
552
553
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "iceCandidateErrors", void 0);
553
554
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "iceCandidatesCount", void 0);
554
555
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "rtcMetrics", void 0);
556
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "uploadLogsTimer", void 0);
557
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "logUploadIntervalIndex", void 0);
555
558
  /**
556
559
  * Callback called when a relay event is received from meeting LLM Connection
557
560
  * @param {RelayEvent} e Event object coming from LLM Connection
@@ -1434,6 +1437,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
1434
1437
  _loggerProxy.default.logger.log("Meetings:index#constructor --> Initializing the meeting object with generated correlation id from sdk ".concat(_this.id));
1435
1438
  _this.callStateForMetrics.correlationId = _this.id;
1436
1439
  }
1440
+ _this.logUploadIntervalIndex = 0;
1441
+
1437
1442
  /**
1438
1443
  * @instance
1439
1444
  * @type {String}
@@ -3239,6 +3244,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3239
3244
  });
3240
3245
  this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_PRACTICE_SESSION_STATUS_UPDATED, function (_ref24) {
3241
3246
  var state = _ref24.state;
3247
+ _this13.webinar.updatePracticeSessionStatus(state);
3242
3248
  _triggerProxy.default.trigger(_this13, {
3243
3249
  file: 'meeting/index',
3244
3250
  function: 'setupLocusControlsListener'
@@ -3740,6 +3746,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3740
3746
  }
3741
3747
  });
3742
3748
  }
3749
+ _metrics.default.sendBehavioralMetric(_constants2.default.GUEST_ENTERED_LOBBY, {
3750
+ correlation_id: _this20.correlationId
3751
+ });
3743
3752
  _this20.updateLLMConnection();
3744
3753
  });
3745
3754
  this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ADMITTED_GUEST, /*#__PURE__*/function () {
@@ -3764,6 +3773,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3764
3773
  meetingId: _this20.id
3765
3774
  }
3766
3775
  });
3776
+ _metrics.default.sendBehavioralMetric(_constants2.default.GUEST_EXITED_LOBBY, {
3777
+ correlation_id: _this20.correlationId
3778
+ });
3767
3779
  }
3768
3780
  (_this20$rtcMetrics = _this20.rtcMetrics) === null || _this20$rtcMetrics === void 0 ? void 0 : _this20$rtcMetrics.sendNextMetrics();
3769
3781
  _this20.updateLLMConnection();
@@ -4215,6 +4227,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4215
4227
  canStopRecording: _util4.default.canUserStop(this.userDisplayHints, this.selfUserPolicies),
4216
4228
  canPauseRecording: _util4.default.canUserPause(this.userDisplayHints, this.selfUserPolicies),
4217
4229
  canResumeRecording: _util4.default.canUserResume(this.userDisplayHints, this.selfUserPolicies),
4230
+ isPremiseRecordingEnabled: _util4.default.isPremiseRecordingEnabled(this.userDisplayHints, this.selfUserPolicies),
4218
4231
  canRaiseHand: _util2.default.canUserRaiseHand(this.userDisplayHints),
4219
4232
  canLowerAllHands: _util2.default.canUserLowerAllHands(this.userDisplayHints),
4220
4233
  canLowerSomeoneElsesHand: _util2.default.canUserLowerSomeoneElsesHand(this.userDisplayHints),
@@ -4344,6 +4357,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4344
4357
  requiredHints: [_constants.DISPLAY_HINTS.DISABLE_STAGE_VIEW],
4345
4358
  displayHints: this.userDisplayHints
4346
4359
  }),
4360
+ isPracticeSessionOn: _util5.default.hasHints({
4361
+ requiredHints: [_constants.DISPLAY_HINTS.PRACTICE_SESSION_ON],
4362
+ displayHints: this.userDisplayHints
4363
+ }),
4364
+ isPracticeSessionOff: _util5.default.hasHints({
4365
+ requiredHints: [_constants.DISPLAY_HINTS.PRACTICE_SESSION_OFF],
4366
+ displayHints: this.userDisplayHints
4367
+ }),
4368
+ canStartPracticeSession: _util5.default.hasHints({
4369
+ requiredHints: [_constants.DISPLAY_HINTS.SHOW_PRACTICE_SESSION_START],
4370
+ displayHints: this.userDisplayHints
4371
+ }),
4372
+ canStopPracticeSession: _util5.default.hasHints({
4373
+ requiredHints: [_constants.DISPLAY_HINTS.SHOW_PRACTICE_SESSION_STOP],
4374
+ displayHints: this.userDisplayHints
4375
+ }),
4347
4376
  canShareFile: _util5.default.hasHints({
4348
4377
  requiredHints: [_constants.DISPLAY_HINTS.SHARE_FILE],
4349
4378
  displayHints: this.userDisplayHints
@@ -4488,6 +4517,65 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4488
4517
  _triggerProxy.default.trigger(this, options, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
4489
4518
  }
4490
4519
 
4520
+ /**
4521
+ * sets the timer for periodic log upload
4522
+ * @returns {void}
4523
+ */
4524
+ }, {
4525
+ key: "setLogUploadTimer",
4526
+ value: function setLogUploadTimer() {
4527
+ var _this23 = this;
4528
+ // 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
4529
+ var LOG_UPLOAD_INTERVALS = [0.1, 15, 30, 60]; // in minutes
4530
+
4531
+ var delay = 1000 * 60 *
4532
+ // @ts-ignore - config coming from registerPlugin
4533
+ this.config.logUploadIntervalMultiplicationFactor * LOG_UPLOAD_INTERVALS[this.logUploadIntervalIndex];
4534
+ if (this.logUploadIntervalIndex < LOG_UPLOAD_INTERVALS.length - 1) {
4535
+ this.logUploadIntervalIndex += 1;
4536
+ }
4537
+ this.uploadLogsTimer = (0, _commonTimers.safeSetTimeout)(function () {
4538
+ _this23.uploadLogsTimer = undefined;
4539
+ _this23.uploadLogs();
4540
+
4541
+ // just as an extra precaution, to avoid uploading logs forever in case something goes wrong
4542
+ // and the page remains opened, we stop it if there is no media connection
4543
+ if (!_this23.mediaProperties.webrtcMediaConnection) {
4544
+ return;
4545
+ }
4546
+ _this23.setLogUploadTimer();
4547
+ }, delay);
4548
+ }
4549
+
4550
+ /**
4551
+ * Starts a periodic upload of logs
4552
+ *
4553
+ * @returns {undefined}
4554
+ */
4555
+ }, {
4556
+ key: "startPeriodicLogUpload",
4557
+ value: function startPeriodicLogUpload() {
4558
+ // @ts-ignore - config coming from registerPlugin
4559
+ if (this.config.logUploadIntervalMultiplicationFactor && !this.uploadLogsTimer) {
4560
+ this.logUploadIntervalIndex = 0;
4561
+ this.setLogUploadTimer();
4562
+ }
4563
+ }
4564
+
4565
+ /**
4566
+ * Stops the periodic upload of logs
4567
+ *
4568
+ * @returns {undefined}
4569
+ */
4570
+ }, {
4571
+ key: "stopPeriodicLogUpload",
4572
+ value: function stopPeriodicLogUpload() {
4573
+ if (this.uploadLogsTimer) {
4574
+ clearTimeout(this.uploadLogsTimer);
4575
+ this.uploadLogsTimer = undefined;
4576
+ }
4577
+ }
4578
+
4491
4579
  /**
4492
4580
  * Removes remote audio, video and share streams from class instance's mediaProperties
4493
4581
  * @returns {undefined}
@@ -4522,7 +4610,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4522
4610
  }, {
4523
4611
  key: "closeRemoteStreams",
4524
4612
  value: function closeRemoteStreams() {
4525
- var _this23 = this;
4613
+ var _this24 = this;
4526
4614
  var _this$mediaProperties4 = this.mediaProperties,
4527
4615
  remoteAudioStream = _this$mediaProperties4.remoteAudioStream,
4528
4616
  remoteVideoStream = _this$mediaProperties4.remoteVideoStream,
@@ -4536,7 +4624,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4536
4624
  */
4537
4625
  // eslint-disable-next-line @typescript-eslint/no-shadow
4538
4626
  var triggerMediaStoppedEvent = function triggerMediaStoppedEvent(mediaType) {
4539
- _triggerProxy.default.trigger(_this23, {
4627
+ _triggerProxy.default.trigger(_this24, {
4540
4628
  file: 'meeting/index',
4541
4629
  function: 'closeRemoteStreams'
4542
4630
  }, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
@@ -4844,7 +4932,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4844
4932
  }, {
4845
4933
  key: "setMercuryListener",
4846
4934
  value: function setMercuryListener() {
4847
- var _this24 = this;
4935
+ var _this25 = this;
4848
4936
  // Client will have a socket manager and handle reconnecting to mercury, when we reconnect to mercury
4849
4937
  // if the meeting has active peer connections, it should try to reconnect.
4850
4938
  // @ts-ignore
@@ -4852,33 +4940,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4852
4940
  _loggerProxy.default.logger.info('Meeting:index#setMercuryListener --> Web socket online');
4853
4941
 
4854
4942
  // Only send restore event when it was disconnected before and for connected later
4855
- if (!_this24.hasWebsocketConnected) {
4943
+ if (!_this25.hasWebsocketConnected) {
4856
4944
  // @ts-ignore
4857
- _this24.webex.internal.newMetrics.submitClientEvent({
4945
+ _this25.webex.internal.newMetrics.submitClientEvent({
4858
4946
  name: 'client.mercury.connection.restored',
4859
4947
  options: {
4860
- meetingId: _this24.id
4948
+ meetingId: _this25.id
4861
4949
  }
4862
4950
  });
4863
4951
  _metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_RESTORED, {
4864
- correlation_id: _this24.correlationId
4952
+ correlation_id: _this25.correlationId
4865
4953
  });
4866
4954
  }
4867
- _this24.hasWebsocketConnected = true;
4955
+ _this25.hasWebsocketConnected = true;
4868
4956
  });
4869
4957
 
4870
4958
  // @ts-ignore
4871
4959
  this.webex.internal.mercury.on(_constants.OFFLINE, function () {
4872
4960
  _loggerProxy.default.logger.error('Meeting:index#setMercuryListener --> Web socket offline');
4873
4961
  // @ts-ignore
4874
- _this24.webex.internal.newMetrics.submitClientEvent({
4962
+ _this25.webex.internal.newMetrics.submitClientEvent({
4875
4963
  name: 'client.mercury.connection.lost',
4876
4964
  options: {
4877
- meetingId: _this24.id
4965
+ meetingId: _this25.id
4878
4966
  }
4879
4967
  });
4880
4968
  _metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_FAILURE, {
4881
- correlation_id: _this24.correlationId
4969
+ correlation_id: _this25.correlationId
4882
4970
  });
4883
4971
  });
4884
4972
  }
@@ -4980,7 +5068,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4980
5068
  }, {
4981
5069
  key: "muteAudio",
4982
5070
  value: function muteAudio() {
4983
- var _this25 = this;
5071
+ var _this26 = this;
4984
5072
  if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
4985
5073
  return _promise.default.reject(new _webexErrors.UserNotJoinedError());
4986
5074
  }
@@ -4996,22 +5084,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4996
5084
 
4997
5085
  // First, stop sending the local audio media
4998
5086
  return logRequest(this.audio.handleClientRequest(this, true).then(function () {
4999
- _util2.default.handleAudioLogging(_this25.mediaProperties.audioStream);
5087
+ _util2.default.handleAudioLogging(_this26.mediaProperties.audioStream);
5000
5088
  // @ts-ignore
5001
- _this25.webex.internal.newMetrics.submitClientEvent({
5089
+ _this26.webex.internal.newMetrics.submitClientEvent({
5002
5090
  name: 'client.muted',
5003
5091
  payload: {
5004
5092
  trigger: 'user-interaction',
5005
5093
  mediaType: 'audio'
5006
5094
  },
5007
5095
  options: {
5008
- meetingId: _this25.id
5096
+ meetingId: _this26.id
5009
5097
  }
5010
5098
  });
5011
5099
  }).catch(function (error) {
5012
5100
  _metrics.default.sendBehavioralMetric(_constants2.default.MUTE_AUDIO_FAILURE, {
5013
- correlation_id: _this25.correlationId,
5014
- locus_id: _this25.locusUrl.split('/').pop(),
5101
+ correlation_id: _this26.correlationId,
5102
+ locus_id: _this26.locusUrl.split('/').pop(),
5015
5103
  reason: error.message,
5016
5104
  stack: error.stack
5017
5105
  });
@@ -5030,7 +5118,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5030
5118
  }, {
5031
5119
  key: "unmuteAudio",
5032
5120
  value: function unmuteAudio() {
5033
- var _this26 = this;
5121
+ var _this27 = this;
5034
5122
  if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
5035
5123
  return _promise.default.reject(new _webexErrors.UserNotJoinedError());
5036
5124
  }
@@ -5046,22 +5134,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5046
5134
 
5047
5135
  // First, send the control to unmute the participant on the server
5048
5136
  return logRequest(this.audio.handleClientRequest(this, false).then(function () {
5049
- _util2.default.handleAudioLogging(_this26.mediaProperties.audioStream);
5137
+ _util2.default.handleAudioLogging(_this27.mediaProperties.audioStream);
5050
5138
  // @ts-ignore
5051
- _this26.webex.internal.newMetrics.submitClientEvent({
5139
+ _this27.webex.internal.newMetrics.submitClientEvent({
5052
5140
  name: 'client.unmuted',
5053
5141
  payload: {
5054
5142
  trigger: 'user-interaction',
5055
5143
  mediaType: 'audio'
5056
5144
  },
5057
5145
  options: {
5058
- meetingId: _this26.id
5146
+ meetingId: _this27.id
5059
5147
  }
5060
5148
  });
5061
5149
  }).catch(function (error) {
5062
5150
  _metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_AUDIO_FAILURE, {
5063
- correlation_id: _this26.correlationId,
5064
- locus_id: _this26.locusUrl.split('/').pop(),
5151
+ correlation_id: _this27.correlationId,
5152
+ locus_id: _this27.locusUrl.split('/').pop(),
5065
5153
  reason: error.message,
5066
5154
  stack: error.stack
5067
5155
  });
@@ -5080,7 +5168,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5080
5168
  }, {
5081
5169
  key: "muteVideo",
5082
5170
  value: function muteVideo() {
5083
- var _this27 = this;
5171
+ var _this28 = this;
5084
5172
  if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
5085
5173
  return _promise.default.reject(new _webexErrors.UserNotJoinedError());
5086
5174
  }
@@ -5094,22 +5182,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5094
5182
  return _promise.default.reject(new _parameter.default('no video control associated to the meeting'));
5095
5183
  }
5096
5184
  return logRequest(this.video.handleClientRequest(this, true).then(function () {
5097
- _util2.default.handleVideoLogging(_this27.mediaProperties.videoStream);
5185
+ _util2.default.handleVideoLogging(_this28.mediaProperties.videoStream);
5098
5186
  // @ts-ignore
5099
- _this27.webex.internal.newMetrics.submitClientEvent({
5187
+ _this28.webex.internal.newMetrics.submitClientEvent({
5100
5188
  name: 'client.muted',
5101
5189
  payload: {
5102
5190
  trigger: 'user-interaction',
5103
5191
  mediaType: 'video'
5104
5192
  },
5105
5193
  options: {
5106
- meetingId: _this27.id
5194
+ meetingId: _this28.id
5107
5195
  }
5108
5196
  });
5109
5197
  }).catch(function (error) {
5110
5198
  _metrics.default.sendBehavioralMetric(_constants2.default.MUTE_VIDEO_FAILURE, {
5111
- correlation_id: _this27.correlationId,
5112
- locus_id: _this27.locusUrl.split('/').pop(),
5199
+ correlation_id: _this28.correlationId,
5200
+ locus_id: _this28.locusUrl.split('/').pop(),
5113
5201
  reason: error.message,
5114
5202
  stack: error.stack
5115
5203
  });
@@ -5128,7 +5216,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5128
5216
  }, {
5129
5217
  key: "unmuteVideo",
5130
5218
  value: function unmuteVideo() {
5131
- var _this28 = this;
5219
+ var _this29 = this;
5132
5220
  if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
5133
5221
  return _promise.default.reject(new _webexErrors.UserNotJoinedError());
5134
5222
  }
@@ -5142,22 +5230,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5142
5230
  return _promise.default.reject(new _parameter.default('no audio control associated to the meeting'));
5143
5231
  }
5144
5232
  return logRequest(this.video.handleClientRequest(this, false).then(function () {
5145
- _util2.default.handleVideoLogging(_this28.mediaProperties.videoStream);
5233
+ _util2.default.handleVideoLogging(_this29.mediaProperties.videoStream);
5146
5234
  // @ts-ignore
5147
- _this28.webex.internal.newMetrics.submitClientEvent({
5235
+ _this29.webex.internal.newMetrics.submitClientEvent({
5148
5236
  name: 'client.unmuted',
5149
5237
  payload: {
5150
5238
  trigger: 'user-interaction',
5151
5239
  mediaType: 'video'
5152
5240
  },
5153
5241
  options: {
5154
- meetingId: _this28.id
5242
+ meetingId: _this29.id
5155
5243
  }
5156
5244
  });
5157
5245
  }).catch(function (error) {
5158
5246
  _metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_VIDEO_FAILURE, {
5159
- correlation_id: _this28.correlationId,
5160
- locus_id: _this28.locusUrl.split('/').pop(),
5247
+ correlation_id: _this29.correlationId,
5248
+ locus_id: _this29.locusUrl.split('/').pop(),
5161
5249
  reason: error.message,
5162
5250
  stack: error.stack
5163
5251
  });
@@ -5187,7 +5275,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5187
5275
  key: "joinWithMedia",
5188
5276
  value: (function () {
5189
5277
  var _joinWithMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15() {
5190
- var _this29 = this;
5278
+ var _this30 = this;
5191
5279
  var options,
5192
5280
  mediaOptions,
5193
5281
  _options$joinOptions,
@@ -5270,7 +5358,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5270
5358
  case 35:
5271
5359
  _context15.next = 37;
5272
5360
  return this.addMediaInternal(function () {
5273
- return _this29.joinWithMediaRetryInfo.isRetry ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
5361
+ return _this30.joinWithMediaRetryInfo.isRetry ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
5274
5362
  }, turnServerInfo, forceTurnDiscovery, mediaOptions);
5275
5363
  case 37:
5276
5364
  mediaResponse = _context15.sent;
@@ -5362,7 +5450,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5362
5450
  }, {
5363
5451
  key: "reconnect",
5364
5452
  value: function reconnect(options) {
5365
- var _this30 = this;
5453
+ var _this31 = this;
5366
5454
  _loggerProxy.default.logger.log("Meeting:index#reconnect --> attempting to reconnect meeting ".concat(this.id));
5367
5455
  if (!this.reconnectionManager || !this.reconnectionManager.reconnect) {
5368
5456
  return _promise.default.reject(new _parameter.default('Cannot reconnect, ReconnectionManager must first be defined.'));
@@ -5378,10 +5466,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5378
5466
  while (1) switch (_context16.prev = _context16.next) {
5379
5467
  case 0:
5380
5468
  _context16.next = 2;
5381
- return _this30.waitForRemoteSDPAnswer();
5469
+ return _this31.waitForRemoteSDPAnswer();
5382
5470
  case 2:
5383
5471
  _context16.next = 4;
5384
- return _this30.waitForMediaConnectionConnected();
5472
+ return _this31.waitForMediaConnectionConnected();
5385
5473
  case 4:
5386
5474
  case "end":
5387
5475
  return _context16.stop();
@@ -5395,7 +5483,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5395
5483
  return _promise.default.resolve();
5396
5484
  }
5397
5485
  _loggerProxy.default.logger.error('Meeting:index#reconnect --> Meeting reconnect failed', error);
5398
- _this30.uploadLogs({
5486
+ _this31.uploadLogs({
5399
5487
  file: 'meeting/index',
5400
5488
  function: 'reconnect'
5401
5489
  });
@@ -5442,19 +5530,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5442
5530
  }, {
5443
5531
  key: "setCaptionLanguage",
5444
5532
  value: function setCaptionLanguage(language) {
5445
- var _this31 = this;
5533
+ var _this32 = this;
5446
5534
  return new _promise.default(function (resolve, reject) {
5447
- if (!_this31.isTranscriptionSupported()) {
5535
+ if (!_this32.isTranscriptionSupported()) {
5448
5536
  _loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
5449
5537
  reject(new Error('Webex Assistant is not enabled/supported'));
5450
5538
  }
5451
5539
  try {
5452
5540
  var voiceaListenerCaptionUpdate = function voiceaListenerCaptionUpdate(payload) {
5453
5541
  // @ts-ignore
5454
- _this31.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5542
+ _this32.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5455
5543
  var statusCode = payload.statusCode;
5456
5544
  if (statusCode === 200) {
5457
- _this31.transcription.languageOptions = _objectSpread(_objectSpread({}, _this31.transcription.languageOptions), {}, {
5545
+ _this32.transcription.languageOptions = _objectSpread(_objectSpread({}, _this32.transcription.languageOptions), {}, {
5458
5546
  currentCaptionLanguage: language
5459
5547
  });
5460
5548
  resolve(language);
@@ -5463,9 +5551,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5463
5551
  }
5464
5552
  };
5465
5553
  // @ts-ignore
5466
- _this31.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5554
+ _this32.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5467
5555
  // @ts-ignore
5468
- _this31.webex.internal.voicea.requestLanguage(language);
5556
+ _this32.webex.internal.voicea.requestLanguage(language);
5469
5557
  } catch (error) {
5470
5558
  _loggerProxy.default.logger.error("Meeting:index#setCaptionLanguage --> ".concat(error));
5471
5559
  reject(error);
@@ -5481,23 +5569,23 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5481
5569
  }, {
5482
5570
  key: "setSpokenLanguage",
5483
5571
  value: function setSpokenLanguage(language) {
5484
- var _this32 = this;
5572
+ var _this33 = this;
5485
5573
  return new _promise.default(function (resolve, reject) {
5486
- if (!_this32.isTranscriptionSupported()) {
5574
+ if (!_this33.isTranscriptionSupported()) {
5487
5575
  _loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
5488
5576
  reject(new Error('Webex Assistant is not enabled/supported'));
5489
5577
  }
5490
- if (_this32.getCurUserType() !== 'host') {
5578
+ if (_this33.getCurUserType() !== 'host') {
5491
5579
  _loggerProxy.default.logger.error('Meeting:index#setSpokenLanguage --> Only host can set spoken language');
5492
5580
  reject(new Error('Only host can set spoken language'));
5493
5581
  }
5494
5582
  try {
5495
5583
  var voiceaListenerLanguageUpdate = function voiceaListenerLanguageUpdate(payload) {
5496
5584
  // @ts-ignore
5497
- _this32.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5585
+ _this33.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5498
5586
  var languageCode = payload.languageCode;
5499
5587
  if (languageCode) {
5500
- _this32.transcription.languageOptions = _objectSpread(_objectSpread({}, _this32.transcription.languageOptions), {}, {
5588
+ _this33.transcription.languageOptions = _objectSpread(_objectSpread({}, _this33.transcription.languageOptions), {}, {
5501
5589
  currentSpokenLanguage: languageCode
5502
5590
  });
5503
5591
  resolve(languageCode);
@@ -5507,10 +5595,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5507
5595
  };
5508
5596
 
5509
5597
  // @ts-ignore
5510
- _this32.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5598
+ _this33.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5511
5599
 
5512
5600
  // @ts-ignore
5513
- _this32.webex.internal.voicea.setSpokenLanguage(language);
5601
+ _this33.webex.internal.voicea.setSpokenLanguage(language);
5514
5602
  } catch (error) {
5515
5603
  _loggerProxy.default.logger.error("Meeting:index#setSpokenLanguage --> ".concat(error));
5516
5604
  reject(error);
@@ -5630,7 +5718,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5630
5718
  */
5631
5719
  function () {
5632
5720
  var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18() {
5633
- var _this33 = this;
5721
+ var _this34 = this;
5634
5722
  var options,
5635
5723
  errorMessage,
5636
5724
  error,
@@ -5776,62 +5864,62 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5776
5864
  return _context18.abrupt("return", _promise.default.reject(_context18.t0));
5777
5865
  case 51:
5778
5866
  return _context18.abrupt("return", _util2.default.joinMeetingOptions(this, options).then(function (join) {
5779
- _this33.meetingFiniteStateMachine.join();
5780
- _this33.setupLocusMediaRequest();
5867
+ _this34.meetingFiniteStateMachine.join();
5868
+ _this34.setupLocusMediaRequest();
5781
5869
 
5782
5870
  // @ts-ignore
5783
- _this33.webex.internal.device.meetingStarted();
5784
- (0, _classPrivateFieldSet2.default)(_this33, _isoLocalClientMeetingJoinTime, new Date().toISOString());
5871
+ _this34.webex.internal.device.meetingStarted();
5872
+ (0, _classPrivateFieldSet2.default)(_this34, _isoLocalClientMeetingJoinTime, new Date().toISOString());
5785
5873
  _loggerProxy.default.logger.log('Meeting:index#join --> Success');
5786
5874
  _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
5787
- correlation_id: _this33.correlationId
5875
+ correlation_id: _this34.correlationId
5788
5876
  });
5789
5877
  joinSuccess(join);
5790
- _this33.deferJoin = undefined;
5878
+ _this34.deferJoin = undefined;
5791
5879
  return join;
5792
5880
  }).catch(function (error) {
5793
- var _this33$meetingInfo, _error$error;
5794
- _this33.meetingFiniteStateMachine.fail(error);
5881
+ var _this34$meetingInfo, _error$error;
5882
+ _this34.meetingFiniteStateMachine.fail(error);
5795
5883
  _loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
5796
5884
 
5797
5885
  // @ts-ignore
5798
- _this33.webex.internal.newMetrics.submitClientEvent({
5886
+ _this34.webex.internal.newMetrics.submitClientEvent({
5799
5887
  name: 'client.locus.join.response',
5800
5888
  payload: {
5801
5889
  identifiers: {
5802
- meetingLookupUrl: (_this33$meetingInfo = _this33.meetingInfo) === null || _this33$meetingInfo === void 0 ? void 0 : _this33$meetingInfo.meetingLookupUrl
5890
+ meetingLookupUrl: (_this34$meetingInfo = _this34.meetingInfo) === null || _this34$meetingInfo === void 0 ? void 0 : _this34$meetingInfo.meetingLookupUrl
5803
5891
  }
5804
5892
  },
5805
5893
  options: {
5806
- meetingId: _this33.id,
5894
+ meetingId: _this34.id,
5807
5895
  rawError: error
5808
5896
  }
5809
5897
  });
5810
5898
 
5811
5899
  // TODO: change this to error codes and pre defined dictionary
5812
5900
  _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
5813
- correlation_id: _this33.correlationId,
5901
+ correlation_id: _this34.correlationId,
5814
5902
  reason: (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.message,
5815
5903
  stack: error.stack
5816
5904
  });
5817
5905
 
5818
5906
  // Upload logs on join Failure
5819
- _triggerProxy.default.trigger(_this33, {
5907
+ _triggerProxy.default.trigger(_this34, {
5820
5908
  file: 'meeting/index',
5821
5909
  function: 'join'
5822
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this33);
5910
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this34);
5823
5911
  joinFailed(error);
5824
- _this33.deferJoin = undefined;
5912
+ _this34.deferJoin = undefined;
5825
5913
  return _promise.default.reject(error);
5826
5914
  }).then(function (join) {
5827
5915
  // @ts-ignore - config coming from registerPlugin
5828
- if (_this33.config.enableAutomaticLLM) {
5916
+ if (_this34.config.enableAutomaticLLM) {
5829
5917
  // @ts-ignore
5830
- _this33.webex.internal.llm.on('online', _this33.handleLLMOnline);
5831
- _this33.updateLLMConnection().catch(function (error) {
5918
+ _this34.webex.internal.llm.on('online', _this34.handleLLMOnline);
5919
+ _this34.updateLLMConnection().catch(function (error) {
5832
5920
  _loggerProxy.default.logger.error('Meeting:index#join --> Transcription Socket Connection Failed', error);
5833
5921
  _metrics.default.sendBehavioralMetric(_constants2.default.LLM_CONNECTION_AFTER_JOIN_FAILURE, {
5834
- correlation_id: _this33.correlationId,
5922
+ correlation_id: _this34.correlationId,
5835
5923
  reason: error === null || error === void 0 ? void 0 : error.message,
5836
5924
  stack: error.stack
5837
5925
  });
@@ -5863,7 +5951,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5863
5951
  key: "updateLLMConnection",
5864
5952
  value: (function () {
5865
5953
  var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
5866
- var _this34 = this;
5954
+ var _this35 = this;
5867
5955
  var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, isJoined;
5868
5956
  return _regenerator.default.wrap(function _callee19$(_context19) {
5869
5957
  while (1) switch (_context19.prev = _context19.next) {
@@ -5899,9 +5987,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5899
5987
  case 10:
5900
5988
  return _context19.abrupt("return", this.webex.internal.llm.registerAndConnect(url, datachannelUrl).then(function (registerAndConnectResult) {
5901
5989
  // @ts-ignore - Fix type
5902
- _this34.webex.internal.llm.off('event:relay.event', _this34.processRelayEvent);
5990
+ _this35.webex.internal.llm.off('event:relay.event', _this35.processRelayEvent);
5903
5991
  // @ts-ignore - Fix type
5904
- _this34.webex.internal.llm.on('event:relay.event', _this34.processRelayEvent);
5992
+ _this35.webex.internal.llm.on('event:relay.event', _this35.processRelayEvent);
5905
5993
  _loggerProxy.default.logger.info('Meeting:index#updateLLMConnection --> enabled to receive relay events!');
5906
5994
  return _promise.default.resolve(registerAndConnectResult);
5907
5995
  }));
@@ -5955,7 +6043,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5955
6043
  }, {
5956
6044
  key: "dialInPstn",
5957
6045
  value: function dialInPstn() {
5958
- var _this35 = this;
6046
+ var _this36 = this;
5959
6047
  if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
5960
6048
 
5961
6049
  var correlationId = this.correlationId,
@@ -5971,10 +6059,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5971
6059
  }).catch(function (error) {
5972
6060
  var _error$error2;
5973
6061
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
5974
- correlation_id: _this35.correlationId,
5975
- dial_in_url: _this35.dialInUrl,
6062
+ correlation_id: _this36.correlationId,
6063
+ dial_in_url: _this36.dialInUrl,
5976
6064
  locus_id: locusUrl.split('/').pop(),
5977
- client_url: _this35.deviceUrl,
6065
+ client_url: _this36.deviceUrl,
5978
6066
  reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
5979
6067
  stack: error.stack
5980
6068
  });
@@ -5992,7 +6080,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5992
6080
  }, {
5993
6081
  key: "dialOutPstn",
5994
6082
  value: function dialOutPstn(phoneNumber) {
5995
- var _this36 = this;
6083
+ var _this37 = this;
5996
6084
  if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
5997
6085
 
5998
6086
  var correlationId = this.correlationId,
@@ -6009,10 +6097,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6009
6097
  }).catch(function (error) {
6010
6098
  var _error$error3;
6011
6099
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
6012
- correlation_id: _this36.correlationId,
6013
- dial_out_url: _this36.dialOutUrl,
6100
+ correlation_id: _this37.correlationId,
6101
+ dial_out_url: _this37.dialOutUrl,
6014
6102
  locus_id: locusUrl.split('/').pop(),
6015
- client_url: _this36.deviceUrl,
6103
+ client_url: _this37.deviceUrl,
6016
6104
  reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
6017
6105
  stack: error.stack
6018
6106
  });
@@ -6043,7 +6131,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6043
6131
  }, {
6044
6132
  key: "moveTo",
6045
6133
  value: function moveTo(resourceId) {
6046
- var _this37 = this;
6134
+ var _this38 = this;
6047
6135
  if (!resourceId) {
6048
6136
  throw new _parameter.default('Cannot move call without a resourceId.');
6049
6137
  }
@@ -6087,12 +6175,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6087
6175
  while (1) switch (_context20.prev = _context20.next) {
6088
6176
  case 0:
6089
6177
  _context20.prev = 0;
6090
- if (!(_this37.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
6178
+ if (!(_this38.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
6091
6179
  _context20.next = 4;
6092
6180
  break;
6093
6181
  }
6094
6182
  _context20.next = 4;
6095
- return _this37.releaseScreenShareFloor();
6183
+ return _this38.releaseScreenShareFloor();
6096
6184
  case 4:
6097
6185
  mediaSettings = {
6098
6186
  mediaDirection: {
@@ -6104,37 +6192,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6104
6192
  receiveShare: true
6105
6193
  }
6106
6194
  };
6107
- _this37.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
6108
- _this37.mediaProperties.unsetRemoteMedia();
6195
+ _this38.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
6196
+ _this38.mediaProperties.unsetRemoteMedia();
6109
6197
 
6110
6198
  // 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
6111
6199
  // once the device answers we close the old connection and create new media server connection with only share enabled
6112
- if (!_this37.statsAnalyzer) {
6200
+ if (!_this38.statsAnalyzer) {
6113
6201
  _context20.next = 10;
6114
6202
  break;
6115
6203
  }
6116
6204
  _context20.next = 10;
6117
- return _this37.statsAnalyzer.stopAnalyzer();
6205
+ return _this38.statsAnalyzer.stopAnalyzer();
6118
6206
  case 10:
6119
6207
  _context20.next = 12;
6120
- return _this37.closeRemoteStreams();
6208
+ return _this38.closeRemoteStreams();
6121
6209
  case 12:
6122
6210
  _context20.next = 14;
6123
- return _this37.closePeerConnections();
6211
+ return _this38.closePeerConnections();
6124
6212
  case 14:
6125
- _this37.cleanupLocalStreams();
6126
- _this37.unsetRemoteStreams();
6127
- _this37.unsetPeerConnections();
6128
- _this37.reconnectionManager.cleanUp();
6213
+ _this38.cleanupLocalStreams();
6214
+ _this38.unsetRemoteStreams();
6215
+ _this38.unsetPeerConnections();
6216
+ _this38.reconnectionManager.cleanUp();
6129
6217
  _context20.next = 20;
6130
- return _this37.addMedia({
6218
+ return _this38.addMedia({
6131
6219
  audioEnabled: false,
6132
6220
  videoEnabled: false,
6133
6221
  shareVideoEnabled: true
6134
6222
  });
6135
6223
  case 20:
6136
6224
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
6137
- _this37.isMoveToInProgress = false;
6225
+ _this38.isMoveToInProgress = false;
6138
6226
  _context20.next = 29;
6139
6227
  break;
6140
6228
  case 24:
@@ -6142,12 +6230,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6142
6230
  _context20.t0 = _context20["catch"](0);
6143
6231
  _loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context20.t0);
6144
6232
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
6145
- correlation_id: _this37.correlationId,
6146
- locus_id: _this37.locusUrl.split('/').pop(),
6233
+ correlation_id: _this38.correlationId,
6234
+ locus_id: _this38.locusUrl.split('/').pop(),
6147
6235
  reason: _context20.t0.message,
6148
6236
  stack: _context20.t0.stack
6149
6237
  });
6150
- _this37.isMoveToInProgress = false;
6238
+ _this38.isMoveToInProgress = false;
6151
6239
  case 29:
6152
6240
  case "end":
6153
6241
  return _context20.stop();
@@ -6163,17 +6251,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6163
6251
  resourceId: resourceId,
6164
6252
  moveToResource: true
6165
6253
  }).then(function () {
6166
- _this37.meetingFiniteStateMachine.join();
6254
+ _this38.meetingFiniteStateMachine.join();
6167
6255
  }).catch(function (error) {
6168
- _this37.meetingFiniteStateMachine.fail(error);
6256
+ _this38.meetingFiniteStateMachine.fail(error);
6169
6257
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
6170
- correlation_id: _this37.correlationId,
6171
- locus_id: _this37.locusUrl.split('/').pop(),
6258
+ correlation_id: _this38.correlationId,
6259
+ locus_id: _this38.locusUrl.split('/').pop(),
6172
6260
  reason: error.message,
6173
6261
  stack: error.stack
6174
6262
  });
6175
6263
  _loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', error);
6176
- _this37.isMoveToInProgress = false;
6264
+ _this38.isMoveToInProgress = false;
6177
6265
  return _promise.default.reject(error);
6178
6266
  });
6179
6267
  }
@@ -6188,7 +6276,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6188
6276
  }, {
6189
6277
  key: "moveFrom",
6190
6278
  value: function moveFrom(resourceId) {
6191
- var _this38 = this;
6279
+ var _this39 = this;
6192
6280
  // On moveFrom ask the developer to re capture it moveFrom then updateMedia
6193
6281
  if (!resourceId) {
6194
6282
  throw new _parameter.default('Cannot move call without a resourceId.');
@@ -6203,19 +6291,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6203
6291
  }
6204
6292
  });
6205
6293
  return _util2.default.joinMeetingOptions(this).then(function () {
6206
- return _util2.default.leaveMeeting(_this38, {
6294
+ return _util2.default.leaveMeeting(_this39, {
6207
6295
  resourceId: resourceId,
6208
6296
  correlationId: oldCorrelationId,
6209
6297
  moveMeeting: true
6210
6298
  }).then(function () {
6211
- _this38.resourceId = '';
6299
+ _this39.resourceId = '';
6212
6300
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
6213
6301
  });
6214
6302
  }).catch(function (error) {
6215
- _this38.meetingFiniteStateMachine.fail(error);
6303
+ _this39.meetingFiniteStateMachine.fail(error);
6216
6304
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
6217
- correlation_id: _this38.correlationId,
6218
- locus_id: _this38.locusUrl.split('/').pop(),
6305
+ correlation_id: _this39.correlationId,
6306
+ locus_id: _this39.locusUrl.split('/').pop(),
6219
6307
  reason: error.message,
6220
6308
  stack: error.stack
6221
6309
  });
@@ -6328,9 +6416,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6328
6416
  }, {
6329
6417
  key: "forwardEvent",
6330
6418
  value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
6331
- var _this39 = this;
6419
+ var _this40 = this;
6332
6420
  eventEmitter.on(eventTypeToForward, function (data) {
6333
- return _triggerProxy.default.trigger(_this39, {
6421
+ return _triggerProxy.default.trigger(_this40, {
6334
6422
  file: 'meetings',
6335
6423
  function: 'addMedia'
6336
6424
  }, meetingEventType, data);
@@ -6517,7 +6605,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6517
6605
  */
6518
6606
  function () {
6519
6607
  var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24() {
6520
- var _this40 = this;
6608
+ var _this41 = this;
6521
6609
  var LOG_HEADER, deferSDPAnswer;
6522
6610
  return _regenerator.default.wrap(function _callee24$(_context24) {
6523
6611
  while (1) switch (_context24.prev = _context24.next) {
@@ -6534,18 +6622,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6534
6622
  this.sdpResponseTimer = setTimeout(function () {
6535
6623
  _loggerProxy.default.logger.warn("".concat(LOG_HEADER, " timeout! no REMOTE SDP ANSWER received within ").concat(_constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT / 1000, " seconds"));
6536
6624
  // @ts-ignore
6537
- _this40.webex.internal.newMetrics.submitClientEvent({
6625
+ _this41.webex.internal.newMetrics.submitClientEvent({
6538
6626
  name: 'client.media-engine.remote-sdp-received',
6539
6627
  payload: {
6540
6628
  canProceed: false,
6541
6629
  errors: [
6542
6630
  // @ts-ignore
6543
- _this40.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
6631
+ _this41.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
6544
6632
  clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
6545
6633
  })]
6546
6634
  },
6547
6635
  options: {
6548
- meetingId: _this40.id,
6636
+ meetingId: _this41.id,
6549
6637
  rawError: new Error('Timeout waiting for SDP answer')
6550
6638
  }
6551
6639
  });
@@ -7009,10 +7097,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7009
7097
  }, {
7010
7098
  key: "addMedia",
7011
7099
  value: function addMedia() {
7012
- var _this41 = this;
7100
+ var _this42 = this;
7013
7101
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7014
7102
  return this.addMediaInternal(function () {
7015
- return _this41.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
7103
+ return _this42.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
7016
7104
  }, undefined, false, options);
7017
7105
  }
7018
7106
 
@@ -7212,21 +7300,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7212
7300
 
7213
7301
  // We can log ReceiveSlot SSRCs only after the SDP exchange, so doing it here:
7214
7302
  (_this$remoteMediaMana = this.remoteMediaManager) === null || _this$remoteMediaMana === void 0 ? void 0 : _this$remoteMediaMana.logAllReceiveSlots();
7215
- _context33.next = 68;
7303
+ this.startPeriodicLogUpload();
7304
+ _context33.next = 69;
7216
7305
  break;
7217
- case 50:
7218
- _context33.prev = 50;
7306
+ case 51:
7307
+ _context33.prev = 51;
7219
7308
  _context33.t0 = _context33["catch"](18);
7220
7309
  _loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context33.t0);
7221
7310
 
7222
7311
  // @ts-ignore
7223
- _context33.next = 55;
7312
+ _context33.next = 56;
7224
7313
  return this.webex.meetings.reachability.getReachabilityMetrics();
7225
- case 55:
7314
+ case 56:
7226
7315
  reachabilityMetrics = _context33.sent;
7227
- _context33.next = 58;
7316
+ _context33.next = 59;
7228
7317
  return this.mediaProperties.getCurrentConnectionInfo();
7229
- case 58:
7318
+ case 59:
7230
7319
  _yield$this$mediaProp2 = _context33.sent;
7231
7320
  _selectedCandidatePairChanges = _yield$this$mediaProp2.selectedCandidatePairChanges;
7232
7321
  _numTransports = _yield$this$mediaProp2.numTransports;
@@ -7250,9 +7339,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7250
7339
  }, reachabilityMetrics), _iceCandidateErrors), {}, {
7251
7340
  iceCandidatesCount: this.iceCandidatesCount
7252
7341
  }));
7253
- _context33.next = 65;
7342
+ _context33.next = 66;
7254
7343
  return this.cleanUpOnAddMediaFailure();
7255
- case 65:
7344
+ case 66:
7256
7345
  // Upload logs on error while adding media
7257
7346
  _triggerProxy.default.trigger(this, {
7258
7347
  file: 'meeting/index',
@@ -7264,15 +7353,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7264
7353
  });
7265
7354
  }
7266
7355
  throw _context33.t0;
7267
- case 68:
7268
- _context33.prev = 68;
7356
+ case 69:
7357
+ _context33.prev = 69;
7269
7358
  this.addMediaData.icePhaseCallback = DEFAULT_ICE_PHASE_CALLBACK;
7270
- return _context33.finish(68);
7271
- case 71:
7359
+ return _context33.finish(69);
7360
+ case 72:
7272
7361
  case "end":
7273
7362
  return _context33.stop();
7274
7363
  }
7275
- }, _callee33, this, [[18, 50, 68, 71]]);
7364
+ }, _callee33, this, [[18, 51, 69, 72]]);
7276
7365
  }));
7277
7366
  function addMediaInternal(_x32, _x33, _x34) {
7278
7367
  return _addMediaInternal.apply(this, arguments);
@@ -7304,7 +7393,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7304
7393
  * @memberof Meeting
7305
7394
  */
7306
7395
  function enqueueMediaUpdate(mediaUpdateType) {
7307
- var _this42 = this;
7396
+ var _this43 = this;
7308
7397
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7309
7398
  var canUpdateMediaNow = this.canUpdateMedia();
7310
7399
  return new _promise.default(function (resolve, reject) {
@@ -7315,9 +7404,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7315
7404
  options: options
7316
7405
  };
7317
7406
  _loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
7318
- _this42.queuedMediaUpdates.push(queueItem);
7407
+ _this43.queuedMediaUpdates.push(queueItem);
7319
7408
  if (canUpdateMediaNow) {
7320
- _this42.processNextQueuedMediaUpdate();
7409
+ _this43.processNextQueuedMediaUpdate();
7321
7410
  }
7322
7411
  });
7323
7412
  }
@@ -7422,7 +7511,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7422
7511
  }, {
7423
7512
  key: "acknowledge",
7424
7513
  value: function acknowledge(type) {
7425
- var _this43 = this;
7514
+ var _this44 = this;
7426
7515
  if (!type) {
7427
7516
  return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
7428
7517
  }
@@ -7434,12 +7523,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7434
7523
  }).then(function (response) {
7435
7524
  return _promise.default.resolve(response);
7436
7525
  }).then(function (response) {
7437
- _this43.meetingFiniteStateMachine.ring(type);
7526
+ _this44.meetingFiniteStateMachine.ring(type);
7438
7527
  // @ts-ignore
7439
- _this43.webex.internal.newMetrics.submitClientEvent({
7528
+ _this44.webex.internal.newMetrics.submitClientEvent({
7440
7529
  name: 'client.alert.displayed',
7441
7530
  options: {
7442
- meetingId: _this43.id
7531
+ meetingId: _this44.id
7443
7532
  }
7444
7533
  });
7445
7534
  return _promise.default.resolve({
@@ -7464,12 +7553,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7464
7553
  }, {
7465
7554
  key: "decline",
7466
7555
  value: function decline(reason) {
7467
- var _this44 = this;
7556
+ var _this45 = this;
7468
7557
  return _util2.default.declineMeeting(this, reason).then(function (decline) {
7469
- _this44.meetingFiniteStateMachine.decline();
7558
+ _this45.meetingFiniteStateMachine.decline();
7470
7559
  return _promise.default.resolve(decline);
7471
7560
  }).catch(function (error) {
7472
- _this44.meetingFiniteStateMachine.fail(error);
7561
+ _this45.meetingFiniteStateMachine.fail(error);
7473
7562
  return _promise.default.reject(error);
7474
7563
  });
7475
7564
  }
@@ -7520,7 +7609,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7520
7609
  }, {
7521
7610
  key: "leave",
7522
7611
  value: function leave() {
7523
- var _this45 = this;
7612
+ var _this46 = this;
7524
7613
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7525
7614
  var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
7526
7615
 
@@ -7532,7 +7621,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7532
7621
  var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7533
7622
  return (
7534
7623
  // @ts-ignore
7535
- _this45.webex.internal.newMetrics.submitClientEvent({
7624
+ _this46.webex.internal.newMetrics.submitClientEvent({
7536
7625
  name: 'client.call.leave',
7537
7626
  payload: _objectSpread({
7538
7627
  trigger: 'user-interaction',
@@ -7540,7 +7629,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7540
7629
  leaveReason: options.clientEventLeaveReason
7541
7630
  }, payload),
7542
7631
  options: {
7543
- meetingId: _this45.id
7632
+ meetingId: _this46.id
7544
7633
  }
7545
7634
  })
7546
7635
  );
@@ -7549,24 +7638,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7549
7638
  return _util2.default.leaveMeeting(this, options).then(function (leave) {
7550
7639
  // CA team recommends submitting this *after* locus /leave
7551
7640
  submitLeaveMetric();
7552
- _this45.meetingFiniteStateMachine.leave();
7553
- _this45.clearMeetingData();
7641
+ _this46.meetingFiniteStateMachine.leave();
7642
+ _this46.clearMeetingData();
7554
7643
 
7555
7644
  // upload logs on leave irrespective of meeting delete
7556
- _triggerProxy.default.trigger(_this45, {
7645
+ _triggerProxy.default.trigger(_this46, {
7557
7646
  file: 'meeting/index',
7558
7647
  function: 'leave'
7559
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this45);
7648
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this46);
7560
7649
 
7561
7650
  // TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
7562
- if (_this45.wirelessShare || _this45.guest) {
7651
+ if (_this46.wirelessShare || _this46.guest) {
7563
7652
  // If screen sharing clean the meeting object
7564
- _triggerProxy.default.trigger(_this45, {
7653
+ _triggerProxy.default.trigger(_this46, {
7565
7654
  file: 'meeting/index',
7566
7655
  function: 'leave'
7567
7656
  }, _constants.EVENTS.DESTROY_MEETING, {
7568
7657
  reason: options.reason,
7569
- meetingId: _this45.id
7658
+ meetingId: _this46.id
7570
7659
  });
7571
7660
  }
7572
7661
  _loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
@@ -7583,16 +7672,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7583
7672
  shownToUser: false
7584
7673
  }]
7585
7674
  });
7586
- _this45.meetingFiniteStateMachine.fail(error);
7675
+ _this46.meetingFiniteStateMachine.fail(error);
7587
7676
  _loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
7588
7677
  // upload logs on leave irrespective of meeting delete
7589
- _triggerProxy.default.trigger(_this45, {
7678
+ _triggerProxy.default.trigger(_this46, {
7590
7679
  file: 'meeting/index',
7591
7680
  function: 'leave'
7592
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this45);
7681
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this46);
7593
7682
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
7594
- correlation_id: _this45.correlationId,
7595
- locus_id: _this45.locusUrl.split('/').pop(),
7683
+ correlation_id: _this46.correlationId,
7684
+ locus_id: _this46.locusUrl.split('/').pop(),
7596
7685
  reason: error.message,
7597
7686
  stack: error.stack,
7598
7687
  code: error.code
@@ -7612,7 +7701,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7612
7701
  }, {
7613
7702
  key: "startWhiteboardShare",
7614
7703
  value: function startWhiteboardShare(channelUrl, resourceToken) {
7615
- var _this46 = this;
7704
+ var _this47 = this;
7616
7705
  var whiteboard = this.locusInfo.mediaShares.find(function (element) {
7617
7706
  return element.name === 'whiteboard';
7618
7707
  });
@@ -7641,13 +7730,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7641
7730
  body.resourceToken = resourceToken;
7642
7731
  }
7643
7732
  return this.meetingRequest.changeMeetingFloor(body).then(function () {
7644
- _this46.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7733
+ _this47.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7645
7734
  return _promise.default.resolve();
7646
7735
  }).catch(function (error) {
7647
7736
  _loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
7648
7737
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
7649
- correlation_id: _this46.correlationId,
7650
- locus_id: _this46.locusUrl.split('/').pop(),
7738
+ correlation_id: _this47.correlationId,
7739
+ locus_id: _this47.locusUrl.split('/').pop(),
7651
7740
  reason: error.message,
7652
7741
  stack: error.stack,
7653
7742
  board: {
@@ -7670,7 +7759,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7670
7759
  }, {
7671
7760
  key: "stopWhiteboardShare",
7672
7761
  value: function stopWhiteboardShare(channelUrl) {
7673
- var _this47 = this;
7762
+ var _this48 = this;
7674
7763
  var whiteboard = this.locusInfo.mediaShares.find(function (element) {
7675
7764
  return element.name === 'whiteboard';
7676
7765
  });
@@ -7693,8 +7782,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7693
7782
  }).catch(function (error) {
7694
7783
  _loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
7695
7784
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
7696
- correlation_id: _this47.correlationId,
7697
- locus_id: _this47.locusUrl.split('/').pop(),
7785
+ correlation_id: _this48.correlationId,
7786
+ locus_id: _this48.locusUrl.split('/').pop(),
7698
7787
  reason: error.message,
7699
7788
  stack: error.stack,
7700
7789
  board: {
@@ -7716,7 +7805,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7716
7805
  }, {
7717
7806
  key: "requestScreenShareFloor",
7718
7807
  value: function requestScreenShareFloor() {
7719
- var _this48 = this;
7808
+ var _this49 = this;
7720
7809
  if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
7721
7810
  _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, ")"));
7722
7811
  this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
@@ -7747,34 +7836,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7747
7836
  resourceUrl: this.resourceUrl,
7748
7837
  shareInstanceId: this.localShareInstanceId
7749
7838
  }).then(function () {
7750
- _this48.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
7839
+ _this49.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
7751
7840
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
7752
- correlation_id: _this48.correlationId,
7753
- locus_id: _this48.locusUrl.split('/').pop()
7841
+ correlation_id: _this49.correlationId,
7842
+ locus_id: _this49.locusUrl.split('/').pop()
7754
7843
  });
7755
7844
  return _promise.default.resolve();
7756
7845
  }).catch(function (error) {
7757
7846
  _loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
7758
7847
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
7759
- correlation_id: _this48.correlationId,
7760
- locus_id: _this48.locusUrl.split('/').pop(),
7848
+ correlation_id: _this49.correlationId,
7849
+ locus_id: _this49.locusUrl.split('/').pop(),
7761
7850
  reason: error.message,
7762
7851
  stack: error.stack
7763
7852
  });
7764
7853
 
7765
7854
  // @ts-ignore
7766
- _this48.webex.internal.newMetrics.submitClientEvent({
7855
+ _this49.webex.internal.newMetrics.submitClientEvent({
7767
7856
  name: 'client.share.floor-granted.local',
7768
7857
  payload: {
7769
7858
  mediaType: 'share',
7770
7859
  errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
7771
- shareInstanceId: _this48.localShareInstanceId
7860
+ shareInstanceId: _this49.localShareInstanceId
7772
7861
  },
7773
7862
  options: {
7774
- meetingId: _this48.id
7863
+ meetingId: _this49.id
7775
7864
  }
7776
7865
  });
7777
- _this48.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7866
+ _this49.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7778
7867
  return _promise.default.reject(error);
7779
7868
  });
7780
7869
  }
@@ -7797,10 +7886,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7797
7886
  }, {
7798
7887
  key: "requestScreenShareFloorIfPending",
7799
7888
  value: function requestScreenShareFloorIfPending() {
7800
- var _this49 = this;
7889
+ var _this50 = this;
7801
7890
  if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
7802
7891
  this.requestScreenShareFloor().then(function () {
7803
- _this49.floorGrantPending = false;
7892
+ _this50.floorGrantPending = false;
7804
7893
  });
7805
7894
  }
7806
7895
  }
@@ -7814,7 +7903,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7814
7903
  }, {
7815
7904
  key: "releaseScreenShareFloor",
7816
7905
  value: function releaseScreenShareFloor() {
7817
- var _this50 = this;
7906
+ var _this51 = this;
7818
7907
  var content = this.locusInfo.mediaShares.find(function (element) {
7819
7908
  return element.name === _constants.CONTENT;
7820
7909
  });
@@ -7849,8 +7938,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7849
7938
  }).catch(function (error) {
7850
7939
  _loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
7851
7940
  _metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
7852
- correlation_id: _this50.correlationId,
7853
- locus_id: _this50.locusUrl.split('/').pop(),
7941
+ correlation_id: _this51.correlationId,
7942
+ locus_id: _this51.locusUrl.split('/').pop(),
7854
7943
  reason: error.message,
7855
7944
  stack: error.stack
7856
7945
  });
@@ -8030,7 +8119,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8030
8119
  }, {
8031
8120
  key: "changeVideoLayout",
8032
8121
  value: function changeVideoLayout(layoutType) {
8033
- var _this51 = this;
8122
+ var _this52 = this;
8034
8123
  var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
8035
8124
  var main = renderInfo.main,
8036
8125
  content = renderInfo.content;
@@ -8084,7 +8173,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8084
8173
  }
8085
8174
  this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
8086
8175
  this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
8087
- _triggerProxy.default.trigger(_this51, {
8176
+ _triggerProxy.default.trigger(_this52, {
8088
8177
  file: 'meeting/index',
8089
8178
  function: 'changeVideoLayout'
8090
8179
  }, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
@@ -8200,7 +8289,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8200
8289
  }, {
8201
8290
  key: "endMeetingForAll",
8202
8291
  value: function endMeetingForAll() {
8203
- var _this52 = this;
8292
+ var _this53 = this;
8204
8293
  // @ts-ignore
8205
8294
  this.webex.internal.newMetrics.submitClientEvent({
8206
8295
  name: 'client.call.leave',
@@ -8218,25 +8307,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8218
8307
  locus_id: this.locusId
8219
8308
  });
8220
8309
  return _util2.default.endMeetingForAll(this).then(function (end) {
8221
- _this52.meetingFiniteStateMachine.end();
8222
- _this52.clearMeetingData();
8310
+ _this53.meetingFiniteStateMachine.end();
8311
+ _this53.clearMeetingData();
8223
8312
  // upload logs on leave irrespective of meeting delete
8224
- _triggerProxy.default.trigger(_this52, {
8313
+ _triggerProxy.default.trigger(_this53, {
8225
8314
  file: 'meeting/index',
8226
8315
  function: 'endMeetingForAll'
8227
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this52);
8316
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this53);
8228
8317
  return end;
8229
8318
  }).catch(function (error) {
8230
- _this52.meetingFiniteStateMachine.fail(error);
8319
+ _this53.meetingFiniteStateMachine.fail(error);
8231
8320
  _loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
8232
8321
  // upload logs on leave irrespective of meeting delete
8233
- _triggerProxy.default.trigger(_this52, {
8322
+ _triggerProxy.default.trigger(_this53, {
8234
8323
  file: 'meeting/index',
8235
8324
  function: 'endMeetingForAll'
8236
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this52);
8325
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this53);
8237
8326
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
8238
- correlation_id: _this52.correlationId,
8239
- locus_id: _this52.locusUrl.split('/').pop(),
8327
+ correlation_id: _this53.correlationId,
8328
+ locus_id: _this53.locusUrl.split('/').pop(),
8240
8329
  reason: error.message,
8241
8330
  stack: error.stack,
8242
8331
  code: error.code
@@ -8378,7 +8467,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8378
8467
  _this$mediaProperties41,
8379
8468
  _this$mediaProperties42,
8380
8469
  _this$mediaProperties43,
8381
- _this53 = this;
8470
+ _this54 = this;
8382
8471
  var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
8383
8472
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
8384
8473
  if (!this.canUpdateMedia()) {
@@ -8403,8 +8492,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8403
8492
  }).catch(function (error) {
8404
8493
  _loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
8405
8494
  _metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
8406
- correlation_id: _this53.correlationId,
8407
- locus_id: _this53.locusUrl.split('/').pop(),
8495
+ correlation_id: _this54.correlationId,
8496
+ locus_id: _this54.locusUrl.split('/').pop(),
8408
8497
  reason: error.message,
8409
8498
  stack: error.stack
8410
8499
  });