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

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