@webex/plugin-meetings 3.1.0-next.14 → 3.1.0-next.16

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.
@@ -209,7 +209,7 @@ var Breakout = _webexCore.WebexPlugin.extend({
209
209
  sessionId: this.sessionId
210
210
  });
211
211
  },
212
- version: "3.1.0-next.14"
212
+ version: "3.1.0-next.16"
213
213
  });
214
214
  var _default = exports.default = Breakout;
215
215
  //# sourceMappingURL=breakout.js.map
@@ -1041,7 +1041,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
1041
1041
  this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
1042
1042
  }
1043
1043
  },
1044
- version: "3.1.0-next.14"
1044
+ version: "3.1.0-next.16"
1045
1045
  });
1046
1046
  var _default = exports.default = Breakouts;
1047
1047
  //# sourceMappingURL=index.js.map
@@ -373,7 +373,7 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
373
373
  throw error;
374
374
  });
375
375
  },
376
- version: "3.1.0-next.14"
376
+ version: "3.1.0-next.16"
377
377
  });
378
378
  var _default = exports.default = SimultaneousInterpretation;
379
379
  //# sourceMappingURL=index.js.map
@@ -18,7 +18,7 @@ var SILanguage = _webexCore.WebexPlugin.extend({
18
18
  languageCode: 'number',
19
19
  languageName: 'string'
20
20
  },
21
- version: "3.1.0-next.14"
21
+ version: "3.1.0-next.16"
22
22
  });
23
23
  var _default = exports.default = SILanguage;
24
24
  //# sourceMappingURL=siLanguage.js.map
@@ -490,6 +490,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
490
490
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "turnDiscoverySkippedReason", void 0);
491
491
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "turnServerUsed", void 0);
492
492
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "areVoiceaEventsSetup", false);
493
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "isMoveToInProgress", false);
493
494
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "voiceaListenerCallbacks", (0, _defineProperty3.default)((0, _defineProperty3.default)((0, _defineProperty3.default)((0, _defineProperty3.default)({}, _internalPluginVoicea.EVENT_TRIGGERS.VOICEA_ANNOUNCEMENT, function (payload) {
494
495
  _this.transcription.languageOptions = payload;
495
496
  _loggerProxy.default.logger.debug("".concat(_util.default.getScopeLog({
@@ -1972,10 +1973,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
1972
1973
  */
1973
1974
  _this.remoteMediaManager = null;
1974
1975
  _this.localAudioStreamMuteStateHandler = function () {
1975
- _this.audio.handleLocalStreamMuteStateChange((0, _assertThisInitialized2.default)(_this));
1976
+ var _this$audio;
1977
+ (_this$audio = _this.audio) === null || _this$audio === void 0 ? void 0 : _this$audio.handleLocalStreamMuteStateChange((0, _assertThisInitialized2.default)(_this));
1976
1978
  };
1977
1979
  _this.localVideoStreamMuteStateHandler = function () {
1978
- _this.video.handleLocalStreamMuteStateChange((0, _assertThisInitialized2.default)(_this));
1980
+ var _this$video;
1981
+ (_this$video = _this.video) === null || _this$video === void 0 ? void 0 : _this$video.handleLocalStreamMuteStateChange((0, _assertThisInitialized2.default)(_this));
1979
1982
  };
1980
1983
 
1981
1984
  // The handling of output track changes should be done inside
@@ -3504,6 +3507,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3504
3507
  }
3505
3508
  });
3506
3509
  }
3510
+ _this19.updateLLMConnection();
3507
3511
  });
3508
3512
  this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ADMITTED_GUEST, /*#__PURE__*/function () {
3509
3513
  var _ref25 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(payload) {
@@ -4291,6 +4295,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4291
4295
  key: "setLocalAudioStream",
4292
4296
  value: (function () {
4293
4297
  var _setLocalAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(localStream) {
4298
+ var _this$audio2;
4294
4299
  var oldStream;
4295
4300
  return _regenerator.default.wrap(function _callee11$(_context11) {
4296
4301
  while (1) switch (_context11.prev = _context11.next) {
@@ -4302,7 +4307,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4302
4307
 
4303
4308
  // we don't update this.mediaProperties.mediaDirection.sendAudio, because we always keep it as true to avoid extra SDP exchanges
4304
4309
  this.mediaProperties.setLocalAudioStream(localStream);
4305
- this.audio.handleLocalStreamChange(this);
4310
+ (_this$audio2 = this.audio) === null || _this$audio2 === void 0 ? void 0 : _this$audio2.handleLocalStreamChange(this);
4306
4311
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localAudioStreamMuteStateHandler);
4307
4312
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localAudioStreamMuteStateHandler);
4308
4313
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
@@ -4338,6 +4343,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4338
4343
  key: "setLocalVideoStream",
4339
4344
  value: (function () {
4340
4345
  var _setLocalVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12(localStream) {
4346
+ var _this$video2;
4341
4347
  var oldStream;
4342
4348
  return _regenerator.default.wrap(function _callee12$(_context12) {
4343
4349
  while (1) switch (_context12.prev = _context12.next) {
@@ -4349,7 +4355,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4349
4355
 
4350
4356
  // we don't update this.mediaProperties.mediaDirection.sendVideo, because we always keep it as true to avoid extra SDP exchanges
4351
4357
  this.mediaProperties.setLocalVideoStream(localStream);
4352
- this.video.handleLocalStreamChange(this);
4358
+ (_this$video2 = this.video) === null || _this$video2 === void 0 ? void 0 : _this$video2.handleLocalStreamChange(this);
4353
4359
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localVideoStreamMuteStateHandler);
4354
4360
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localVideoStreamMuteStateHandler);
4355
4361
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
@@ -5794,22 +5800,41 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5794
5800
  receiveShare: true
5795
5801
  }
5796
5802
  };
5797
- _this35.cleanupLocalStreams();
5798
5803
  _this35.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
5799
5804
  _this35.mediaProperties.unsetRemoteMedia();
5800
5805
 
5801
- // when a move to is intiated by the client , Locus delets the existing media node from the server as soon the DX answers the meeting
5802
- // once the DX answers we establish connection back the media server with only receiveShare enabled
5803
- // @ts-ignore - reconnectMedia does not accept any argument
5806
+ // 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
5807
+ // once the device answers we close the old connection and create new media server connection with only share enabled
5808
+ if (!_this35.statsAnalyzer) {
5809
+ _context20.next = 10;
5810
+ break;
5811
+ }
5804
5812
  _context20.next = 10;
5805
- return _this35.reconnectionManager.reconnectMedia(mediaSettings).then(function () {
5806
- _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
5807
- });
5813
+ return _this35.statsAnalyzer.stopAnalyzer();
5808
5814
  case 10:
5809
- _context20.next = 16;
5810
- break;
5815
+ _context20.next = 12;
5816
+ return _this35.closeRemoteStreams();
5811
5817
  case 12:
5812
- _context20.prev = 12;
5818
+ _context20.next = 14;
5819
+ return _this35.closePeerConnections();
5820
+ case 14:
5821
+ _this35.cleanupLocalStreams();
5822
+ _this35.unsetRemoteStreams();
5823
+ _this35.unsetPeerConnections();
5824
+ _this35.reconnectionManager.cleanUp();
5825
+ _context20.next = 20;
5826
+ return _this35.addMedia({
5827
+ audioEnabled: false,
5828
+ videoEnabled: false,
5829
+ shareVideoEnabled: true
5830
+ });
5831
+ case 20:
5832
+ _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
5833
+ _this35.isMoveToInProgress = false;
5834
+ _context20.next = 29;
5835
+ break;
5836
+ case 24:
5837
+ _context20.prev = 24;
5813
5838
  _context20.t0 = _context20["catch"](0);
5814
5839
  _loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context20.t0);
5815
5840
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
@@ -5818,13 +5843,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5818
5843
  reason: _context20.t0.message,
5819
5844
  stack: _context20.t0.stack
5820
5845
  });
5821
- case 16:
5846
+ _this35.isMoveToInProgress = false;
5847
+ case 29:
5822
5848
  case "end":
5823
5849
  return _context20.stop();
5824
5850
  }
5825
- }, _callee20, null, [[0, 12]]);
5851
+ }, _callee20, null, [[0, 24]]);
5826
5852
  })));
5827
5853
  _loggerProxy.default.logger.info('Meeting:index#moveTo --> Initated moved to using resourceId', resourceId);
5854
+
5855
+ // TODO: Check with locus if SELF_OBSERVING event would ever be not emitted
5856
+ // If yes, introduce a timeout mechanism
5857
+ this.isMoveToInProgress = true;
5828
5858
  return _util2.default.joinMeetingOptions(this, {
5829
5859
  resourceId: resourceId,
5830
5860
  moveToResource: true
@@ -5839,6 +5869,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5839
5869
  stack: error.stack
5840
5870
  });
5841
5871
  _loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', error);
5872
+ _this35.isMoveToInProgress = false;
5842
5873
  return _promise.default.reject(error);
5843
5874
  });
5844
5875
  }
@@ -6322,7 +6353,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6322
6353
  /**
6323
6354
  * Performs TURN discovery as a separate call to the Locus /media API
6324
6355
  *
6325
- * @param {boolean} isRetry
6356
+ * @param {boolean} isReconnecting
6326
6357
  * @param {boolean} isForced
6327
6358
  * @returns {Promise}
6328
6359
  */
@@ -6330,7 +6361,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6330
6361
  }, {
6331
6362
  key: "doTurnDiscovery",
6332
6363
  value: (function () {
6333
- var _doTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee28(isRetry, isForced) {
6364
+ var _doTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee28(isReconnecting, isForced) {
6334
6365
  var cdl, turnDiscoveryResult;
6335
6366
  return _regenerator.default.wrap(function _callee28$(_context28) {
6336
6367
  while (1) switch (_context28.prev = _context28.next) {
@@ -6341,7 +6372,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6341
6372
  name: 'internal.client.add-media.turn-discovery.start'
6342
6373
  });
6343
6374
  _context28.next = 4;
6344
- return this.roap.doTurnDiscovery(this, isRetry, isForced);
6375
+ return this.roap.doTurnDiscovery(this, isReconnecting, isForced);
6345
6376
  case 4:
6346
6377
  turnDiscoveryResult = _context28.sent;
6347
6378
  this.turnDiscoverySkippedReason = turnDiscoveryResult === null || turnDiscoveryResult === void 0 ? void 0 : turnDiscoveryResult.turnDiscoverySkippedReason;
@@ -6386,30 +6417,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6386
6417
  key: "establishMediaConnection",
6387
6418
  value: (function () {
6388
6419
  var _establishMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee29(remoteMediaManagerConfig, bundlePolicy, isForced, turnServerInfo) {
6389
- var LOG_HEADER, isRetry, _yield$this$doTurnDis, mc;
6420
+ var LOG_HEADER, isReconnecting, _yield$this$doTurnDis, mc;
6390
6421
  return _regenerator.default.wrap(function _callee29$(_context29) {
6391
6422
  while (1) switch (_context29.prev = _context29.next) {
6392
6423
  case 0:
6393
6424
  LOG_HEADER = 'Meeting:index#addMedia():establishMediaConnection -->';
6394
- isRetry = this.retriedWithTurnServer;
6395
- _context29.prev = 2;
6425
+ isReconnecting = this.isMoveToInProgress || this.retriedWithTurnServer; // We are forcing turn discovery if the case is moveTo and a turn server was used already
6426
+ if (this.isMoveToInProgress && this.turnServerUsed) {
6427
+ isForced = true;
6428
+ }
6429
+ _context29.prev = 3;
6396
6430
  if (turnServerInfo) {
6397
- _context29.next = 8;
6431
+ _context29.next = 9;
6398
6432
  break;
6399
6433
  }
6400
- _context29.next = 6;
6401
- return this.doTurnDiscovery(isRetry, isForced);
6402
- case 6:
6434
+ _context29.next = 7;
6435
+ return this.doTurnDiscovery(isReconnecting, isForced);
6436
+ case 7:
6403
6437
  _yield$this$doTurnDis = _context29.sent;
6404
6438
  turnServerInfo = _yield$this$doTurnDis.turnServerInfo;
6405
- case 8:
6406
- _context29.next = 10;
6439
+ case 9:
6440
+ _context29.next = 11;
6407
6441
  return this.createMediaConnection(turnServerInfo, bundlePolicy);
6408
- case 10:
6442
+ case 11:
6409
6443
  mc = _context29.sent;
6410
6444
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " media connection created"));
6411
6445
  if (!this.isMultistream) {
6412
- _context29.next = 20;
6446
+ _context29.next = 21;
6413
6447
  break;
6414
6448
  }
6415
6449
  this.remoteMediaManager = new _remoteMediaManager.RemoteMediaManager(this.receiveSlotManager, this.mediaRequestManagers, remoteMediaManagerConfig);
@@ -6417,40 +6451,40 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6417
6451
  this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.InterpretationAudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_INTERPRETATION_AUDIO_CREATED);
6418
6452
  this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.ScreenShareAudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_SCREEN_SHARE_AUDIO_CREATED);
6419
6453
  this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.VideoLayoutChanged, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_VIDEO_LAYOUT_CHANGED);
6420
- _context29.next = 20;
6454
+ _context29.next = 21;
6421
6455
  return this.remoteMediaManager.start();
6422
- case 20:
6423
- _context29.next = 22;
6456
+ case 21:
6457
+ _context29.next = 23;
6424
6458
  return mc.initiateOffer();
6425
- case 22:
6426
- _context29.next = 24;
6459
+ case 23:
6460
+ _context29.next = 25;
6427
6461
  return this.waitForRemoteSDPAnswer();
6428
- case 24:
6462
+ case 25:
6429
6463
  this.handleMediaLogging(this.mediaProperties);
6430
- _context29.next = 31;
6464
+ _context29.next = 32;
6431
6465
  break;
6432
- case 27:
6433
- _context29.prev = 27;
6434
- _context29.t0 = _context29["catch"](2);
6466
+ case 28:
6467
+ _context29.prev = 28;
6468
+ _context29.t0 = _context29["catch"](3);
6435
6469
  _loggerProxy.default.logger.error("".concat(LOG_HEADER, " error establishing media connection, "), _context29.t0);
6436
6470
  throw _context29.t0;
6437
- case 31:
6438
- _context29.prev = 31;
6439
- _context29.next = 34;
6471
+ case 32:
6472
+ _context29.prev = 32;
6473
+ _context29.next = 35;
6440
6474
  return this.waitForMediaConnectionConnected();
6441
- case 34:
6442
- _context29.next = 40;
6475
+ case 35:
6476
+ _context29.next = 41;
6443
6477
  break;
6444
- case 36:
6445
- _context29.prev = 36;
6446
- _context29.t1 = _context29["catch"](31);
6447
- _context29.next = 40;
6478
+ case 37:
6479
+ _context29.prev = 37;
6480
+ _context29.t1 = _context29["catch"](32);
6481
+ _context29.next = 41;
6448
6482
  return this.handleWaitForMediaConnectionConnectedError(_context29.t1, remoteMediaManagerConfig, bundlePolicy);
6449
- case 40:
6483
+ case 41:
6450
6484
  case "end":
6451
6485
  return _context29.stop();
6452
6486
  }
6453
- }, _callee29, this, [[2, 27], [31, 36]]);
6487
+ }, _callee29, this, [[3, 28], [32, 37]]);
6454
6488
  }));
6455
6489
  function establishMediaConnection(_x28, _x29, _x30, _x31) {
6456
6490
  return _establishMediaConnection.apply(this, arguments);
@@ -6876,7 +6910,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6876
6910
  */
6877
6911
  function () {
6878
6912
  var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33(options) {
6879
- var audioEnabled, videoEnabled, shareAudioEnabled, shareVideoEnabled;
6913
+ var audioEnabled, videoEnabled, shareAudioEnabled, shareVideoEnabled, _this$audio3, _this$video3;
6880
6914
  return _regenerator.default.wrap(function _callee33$(_context33) {
6881
6915
  while (1) switch (_context33.prev = _context33.next) {
6882
6916
  case 0:
@@ -6911,7 +6945,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6911
6945
  if (audioEnabled !== undefined) {
6912
6946
  this.mediaProperties.mediaDirection.sendAudio = audioEnabled;
6913
6947
  this.mediaProperties.mediaDirection.receiveAudio = audioEnabled;
6914
- this.audio.enable(this, audioEnabled);
6948
+ (_this$audio3 = this.audio) === null || _this$audio3 === void 0 ? void 0 : _this$audio3.enable(this, audioEnabled);
6915
6949
  if (this.isMultistream) {
6916
6950
  this.sendSlotManager.setActive(_internalMediaCore.MediaType.AudioMain, audioEnabled);
6917
6951
  }
@@ -6919,7 +6953,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6919
6953
  if (videoEnabled !== undefined) {
6920
6954
  this.mediaProperties.mediaDirection.sendVideo = videoEnabled;
6921
6955
  this.mediaProperties.mediaDirection.receiveVideo = videoEnabled;
6922
- this.video.enable(this, videoEnabled);
6956
+ (_this$video3 = this.video) === null || _this$video3 === void 0 ? void 0 : _this$video3.enable(this, videoEnabled);
6923
6957
  if (this.isMultistream) {
6924
6958
  this.sendSlotManager.setActive(_internalMediaCore.MediaType.VideoMain, videoEnabled);
6925
6959
  }