@webex/plugin-meetings 3.7.0-next.33 → 3.7.0-next.35

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.
@@ -88,6 +88,7 @@ var _permission = _interopRequireDefault(require("../common/errors/permission"))
88
88
  var _locusMediaRequest = require("./locusMediaRequest");
89
89
  var _connectionStateHandler = require("./connectionStateHandler");
90
90
  var _joinWebinarError = _interopRequireDefault(require("../common/errors/join-webinar-error"));
91
+ var _multistreamNotSupportedError = _interopRequireDefault(require("../common/errors/multistream-not-supported-error"));
91
92
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
92
93
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
93
94
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
@@ -680,6 +681,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
680
681
  */
681
682
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "roapMessageReceived", function (roapMessage) {
682
683
  var mediaServer = _util3.default.getMediaServer(roapMessage.sdp);
684
+ if (_this.isMultistream && mediaServer !== 'homer') {
685
+ throw new _multistreamNotSupportedError.default("Client asked for multistream backend (Homer), but got ".concat(mediaServer, " instead"));
686
+ }
683
687
  _this.mediaProperties.webrtcMediaConnection.roapMessageReceived(roapMessage);
684
688
  if (mediaServer) {
685
689
  _this.mediaProperties.webrtcMediaConnection.mediaServer = mediaServer;
@@ -774,15 +778,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
774
778
  }), {
775
779
  logText: "".concat(LOG_HEADER, " Roap Offer")
776
780
  }).catch(function (error) {
781
+ var multistreamNotSupported = error instanceof _multistreamNotSupportedError.default;
782
+
777
783
  // @ts-ignore
778
784
  _this.webex.internal.newMetrics.submitClientEvent({
779
785
  name: 'client.media-engine.remote-sdp-received',
780
786
  payload: {
781
- canProceed: false,
787
+ canProceed: multistreamNotSupported,
782
788
  errors: [
783
789
  // @ts-ignore
784
790
  _this.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
785
- clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
791
+ clientErrorCode: multistreamNotSupported ? _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MULTISTREAM_NOT_AVAILABLE_CLIENT_CODE : _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
786
792
  })]
787
793
  },
788
794
  options: {
@@ -790,7 +796,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
790
796
  rawError: error
791
797
  }
792
798
  });
793
- _this.deferSDPAnswer.reject(new Error('failed to send ROAP SDP offer'));
799
+ _this.deferSDPAnswer.reject(error);
794
800
  clearTimeout(_this.sdpResponseTimer);
795
801
  _this.sdpResponseTimer = undefined;
796
802
  });
@@ -1385,10 +1391,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
1385
1391
  _loggerProxy.default.logger.warn('Meeting:index#startKeepAlive --> keepAlive not started: keepAliveSecs <= 1');
1386
1392
  return;
1387
1393
  }
1388
- var keepAliveUrl = _this.joinedWith.keepAliveUrl;
1389
1394
  var keepAliveInterval = (_this.joinedWith.keepAliveSecs - 1) * 750; // taken from UCF
1390
1395
 
1391
1396
  _this.keepAliveTimerId = setInterval(function () {
1397
+ var keepAliveUrl = _this.joinedWith.keepAliveUrl;
1392
1398
  _this.meetingRequest.keepAlive({
1393
1399
  keepAliveUrl: keepAliveUrl
1394
1400
  }).catch(function (error) {
@@ -5072,6 +5078,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5072
5078
  * Close the peer connections and remove them from the class.
5073
5079
  * Cleanup any media connection related things.
5074
5080
  *
5081
+ * @param {boolean} resetMuteStates whether to also reset the audio/video mute state information
5075
5082
  * @returns {Promise}
5076
5083
  * @public
5077
5084
  * @memberof Meeting
@@ -5079,6 +5086,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5079
5086
  }, {
5080
5087
  key: "closePeerConnections",
5081
5088
  value: function closePeerConnections() {
5089
+ var resetMuteStates = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
5082
5090
  if (this.mediaProperties.webrtcMediaConnection) {
5083
5091
  if (this.remoteMediaManager) {
5084
5092
  this.remoteMediaManager.stop();
@@ -5092,8 +5100,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5092
5100
  this.sendSlotManager.reset();
5093
5101
  this.setNetworkStatus(undefined);
5094
5102
  }
5095
- this.audio = null;
5096
- this.video = null;
5103
+ if (resetMuteStates) {
5104
+ this.audio = null;
5105
+ this.video = null;
5106
+ }
5097
5107
  return _promise.default.resolve();
5098
5108
  }
5099
5109
 
@@ -5357,7 +5367,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5357
5367
  * @param {Object} options - options to join with media
5358
5368
  * @param {JoinOptions} [options.joinOptions] - see #join()
5359
5369
  * @param {AddMediaOptions} [options.mediaOptions] - see #addMedia()
5360
- * @returns {Promise} -- {join: see join(), media: see addMedia()}
5370
+ * @returns {Promise} -- {join: see join(), media: see addMedia(), multistreamEnabled: flag to indicate if we managed to join in multistream mode}
5361
5371
  * @public
5362
5372
  * @memberof Meeting
5363
5373
  * @example
@@ -5465,32 +5475,43 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5465
5475
  };
5466
5476
  return _context16.abrupt("return", {
5467
5477
  join: joinResponse,
5468
- media: mediaResponse
5478
+ media: mediaResponse,
5479
+ multistreamEnabled: this.isMultistream
5469
5480
  });
5470
5481
  case 42:
5471
5482
  _context16.prev = 42;
5472
5483
  _context16.t0 = _context16["catch"](9);
5473
5484
  _loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> ', _context16.t0);
5474
5485
  this.roap.abortTurnDiscovery();
5475
- if (!(joined && isRetry)) {
5476
- _context16.next = 56;
5486
+
5487
+ // if this was the first attempt, let's do a retry
5488
+ shouldRetry = !isRetry;
5489
+ if (_internalPluginMetrics.CallDiagnosticUtils.isSdpOfferCreationError(_context16.t0)) {
5490
+ // errors related to offer creation (for example missing H264 codec) will happen again no matter how many times we try,
5491
+ // so there is no point doing a retry
5492
+ shouldRetry = false;
5493
+ }
5494
+
5495
+ // we only want to call leave if join was successful and this was a retry or we won't be doing any more retries
5496
+ if (!(joined && (isRetry || !shouldRetry))) {
5497
+ _context16.next = 58;
5477
5498
  break;
5478
5499
  }
5479
- _context16.prev = 47;
5480
- _context16.next = 50;
5500
+ _context16.prev = 49;
5501
+ _context16.next = 52;
5481
5502
  return this.leave({
5482
5503
  resourceId: joinOptions === null || joinOptions === void 0 ? void 0 : joinOptions.resourceId,
5483
5504
  reason: 'joinWithMedia failure'
5484
5505
  });
5485
- case 50:
5486
- _context16.next = 56;
5487
- break;
5488
5506
  case 52:
5489
- _context16.prev = 52;
5490
- _context16.t1 = _context16["catch"](47);
5507
+ _context16.next = 58;
5508
+ break;
5509
+ case 54:
5510
+ _context16.prev = 54;
5511
+ _context16.t1 = _context16["catch"](49);
5491
5512
  _loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> leave error', _context16.t1);
5492
5513
  leaveError = _context16.t1;
5493
- case 56:
5514
+ case 58:
5494
5515
  _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_WITH_MEDIA_FAILURE, {
5495
5516
  correlation_id: this.correlationId,
5496
5517
  locus_id: (_this$locusUrl = this.locusUrl) === null || _this$locusUrl === void 0 ? void 0 : _this$locusUrl.split('/').pop(),
@@ -5502,14 +5523,6 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5502
5523
  }, {
5503
5524
  type: _context16.t0.name
5504
5525
  });
5505
-
5506
- // if this was the first attempt, let's do a retry
5507
- shouldRetry = !isRetry;
5508
- if (_internalPluginMetrics.CallDiagnosticUtils.isSdpOfferCreationError(_context16.t0)) {
5509
- // errors related to offer creation (for example missing H264 codec) will happen again no matter how many times we try,
5510
- // so there is no point doing a retry
5511
- shouldRetry = false;
5512
- }
5513
5526
  if (!shouldRetry) {
5514
5527
  _context16.next = 64;
5515
5528
  break;
@@ -5528,7 +5541,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5528
5541
  case "end":
5529
5542
  return _context16.stop();
5530
5543
  }
5531
- }, _callee16, this, [[9, 42], [47, 52]]);
5544
+ }, _callee16, this, [[9, 42], [49, 54]]);
5532
5545
  }));
5533
5546
  function joinWithMedia() {
5534
5547
  return _joinWithMedia.apply(this, arguments);
@@ -6975,7 +6988,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6975
6988
  return this.createMediaConnection(turnServerInfo, bundlePolicy);
6976
6989
  case 11:
6977
6990
  mc = _context30.sent;
6978
- _loggerProxy.default.logger.info("".concat(LOG_HEADER, " media connection created"));
6991
+ _loggerProxy.default.logger.info("".concat(LOG_HEADER, " media connection created this.isMultistream=").concat(this.isMultistream));
6979
6992
  if (!this.isMultistream) {
6980
6993
  _context30.next = 21;
6981
6994
  break;
@@ -7070,6 +7083,49 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7070
7083
  }
7071
7084
  return cleanUpOnAddMediaFailure;
7072
7085
  }()
7086
+ /**
7087
+ * Cleans up stats analyzer, peer connection and other things before
7088
+ * we can create a new transcoded media connection
7089
+ *
7090
+ * @private
7091
+ * @returns {Promise<void>}
7092
+ */
7093
+ )
7094
+ }, {
7095
+ key: "downgradeFromMultistreamToTranscoded",
7096
+ value: (function () {
7097
+ var _downgradeFromMultistreamToTranscoded = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32() {
7098
+ var _this$locusMediaReque2;
7099
+ return _regenerator.default.wrap(function _callee32$(_context32) {
7100
+ while (1) switch (_context32.prev = _context32.next) {
7101
+ case 0:
7102
+ if (!this.statsAnalyzer) {
7103
+ _context32.next = 3;
7104
+ break;
7105
+ }
7106
+ _context32.next = 3;
7107
+ return this.statsAnalyzer.stopAnalyzer();
7108
+ case 3:
7109
+ this.statsAnalyzer = null;
7110
+ this.isMultistream = false;
7111
+ if (this.mediaProperties.webrtcMediaConnection) {
7112
+ // close peer connection, but don't reset mute state information, because we will want to use it on the retry
7113
+ this.closePeerConnections(false);
7114
+ this.mediaProperties.unsetPeerConnection();
7115
+ }
7116
+ (_this$locusMediaReque2 = this.locusMediaRequest) === null || _this$locusMediaReque2 === void 0 ? void 0 : _this$locusMediaReque2.downgradeFromMultistreamToTranscoded();
7117
+ this.createStatsAnalyzer();
7118
+ case 8:
7119
+ case "end":
7120
+ return _context32.stop();
7121
+ }
7122
+ }, _callee32, this);
7123
+ }));
7124
+ function downgradeFromMultistreamToTranscoded() {
7125
+ return _downgradeFromMultistreamToTranscoded.apply(this, arguments);
7126
+ }
7127
+ return downgradeFromMultistreamToTranscoded;
7128
+ }()
7073
7129
  /**
7074
7130
  * Sends stats report, closes peer connection and cleans up any media connection
7075
7131
  * related things before trying to establish media connection again with turn server
@@ -7081,11 +7137,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7081
7137
  }, {
7082
7138
  key: "cleanUpBeforeRetryWithTurnServer",
7083
7139
  value: (function () {
7084
- var _cleanUpBeforeRetryWithTurnServer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32() {
7085
- return _regenerator.default.wrap(function _callee32$(_context32) {
7086
- while (1) switch (_context32.prev = _context32.next) {
7140
+ var _cleanUpBeforeRetryWithTurnServer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33() {
7141
+ return _regenerator.default.wrap(function _callee33$(_context33) {
7142
+ while (1) switch (_context33.prev = _context33.next) {
7087
7143
  case 0:
7088
- _context32.next = 2;
7144
+ _context33.next = 2;
7089
7145
  return this.forceSendStatsReport({
7090
7146
  callFrom: 'cleanUpBeforeRetryWithTurnServer'
7091
7147
  });
@@ -7105,9 +7161,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7105
7161
  }
7106
7162
  case 3:
7107
7163
  case "end":
7108
- return _context32.stop();
7164
+ return _context33.stop();
7109
7165
  }
7110
- }, _callee32, this);
7166
+ }, _callee33, this);
7111
7167
  }));
7112
7168
  function cleanUpBeforeRetryWithTurnServer() {
7113
7169
  return _cleanUpBeforeRetryWithTurnServer.apply(this, arguments);
@@ -7117,34 +7173,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7117
7173
  }, {
7118
7174
  key: "cleanUpBeforeReconnection",
7119
7175
  value: function () {
7120
- var _cleanUpBeforeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33() {
7121
- return _regenerator.default.wrap(function _callee33$(_context33) {
7122
- while (1) switch (_context33.prev = _context33.next) {
7176
+ var _cleanUpBeforeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34() {
7177
+ return _regenerator.default.wrap(function _callee34$(_context34) {
7178
+ while (1) switch (_context34.prev = _context34.next) {
7123
7179
  case 0:
7124
- _context33.prev = 0;
7125
- _context33.next = 3;
7180
+ _context34.prev = 0;
7181
+ _context34.next = 3;
7126
7182
  return this.forceSendStatsReport({
7127
7183
  callFrom: 'cleanUpBeforeReconnection'
7128
7184
  });
7129
7185
  case 3:
7130
7186
  if (!this.statsAnalyzer) {
7131
- _context33.next = 6;
7187
+ _context34.next = 6;
7132
7188
  break;
7133
7189
  }
7134
- _context33.next = 6;
7190
+ _context34.next = 6;
7135
7191
  return this.statsAnalyzer.stopAnalyzer();
7136
7192
  case 6:
7137
- _context33.next = 11;
7193
+ _context34.next = 11;
7138
7194
  break;
7139
7195
  case 8:
7140
- _context33.prev = 8;
7141
- _context33.t0 = _context33["catch"](0);
7142
- _loggerProxy.default.logger.error('Meeting:index#cleanUpBeforeReconnection --> Error during cleanup: ', _context33.t0);
7196
+ _context34.prev = 8;
7197
+ _context34.t0 = _context34["catch"](0);
7198
+ _loggerProxy.default.logger.error('Meeting:index#cleanUpBeforeReconnection --> Error during cleanup: ', _context34.t0);
7143
7199
  case 11:
7144
7200
  case "end":
7145
- return _context33.stop();
7201
+ return _context34.stop();
7146
7202
  }
7147
- }, _callee33, this, [[0, 8]]);
7203
+ }, _callee34, this, [[0, 8]]);
7148
7204
  }));
7149
7205
  function cleanUpBeforeReconnection() {
7150
7206
  return _cleanUpBeforeReconnection.apply(this, arguments);
@@ -7212,7 +7268,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7212
7268
  }, {
7213
7269
  key: "addMediaInternal",
7214
7270
  value: (function () {
7215
- var _addMediaInternal = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34(icePhaseCallback, turnServerInfo, forceTurnDiscovery) {
7271
+ var _addMediaInternal = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35(icePhaseCallback, turnServerInfo, forceTurnDiscovery) {
7216
7272
  var options,
7217
7273
  LOG_HEADER,
7218
7274
  localStreams,
@@ -7260,24 +7316,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7260
7316
  _selectedCandidatePairChanges,
7261
7317
  _numTransports,
7262
7318
  _iceCandidateErrors,
7263
- _args34 = arguments;
7264
- return _regenerator.default.wrap(function _callee34$(_context34) {
7265
- while (1) switch (_context34.prev = _context34.next) {
7319
+ _args35 = arguments;
7320
+ return _regenerator.default.wrap(function _callee35$(_context35) {
7321
+ while (1) switch (_context35.prev = _context35.next) {
7266
7322
  case 0:
7267
- options = _args34.length > 3 && _args34[3] !== undefined ? _args34[3] : {};
7323
+ options = _args35.length > 3 && _args35[3] !== undefined ? _args35[3] : {};
7268
7324
  this.addMediaData.retriedWithTurnServer = false;
7269
7325
  this.addMediaData.icePhaseCallback = icePhaseCallback;
7270
7326
  this.hasMediaConnectionConnectedAtLeastOnce = false;
7271
7327
  LOG_HEADER = 'Meeting:index#addMedia -->';
7272
7328
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " called with: options=").concat((0, _stringify.default)(options), ", turnServerInfo=").concat((0, _stringify.default)(turnServerInfo), ", forceTurnDiscovery=").concat(forceTurnDiscovery));
7273
7329
  if (!(options.allowMediaInLobby !== true && this.meetingState !== _constants.FULL_STATE.ACTIVE)) {
7274
- _context34.next = 8;
7330
+ _context35.next = 8;
7275
7331
  break;
7276
7332
  }
7277
7333
  throw new _webexErrors.MeetingNotActiveError();
7278
7334
  case 8:
7279
7335
  if (!_util2.default.isUserInLeftState(this.locusInfo)) {
7280
- _context34.next = 10;
7336
+ _context35.next = 10;
7281
7337
  break;
7282
7338
  }
7283
7339
  throw new _webexErrors.UserNotJoinedError();
@@ -7288,7 +7344,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7288
7344
  // If the user is unjoined or guest waiting in lobby dont allow the user to addMedia
7289
7345
  // @ts-ignore - isUserUnadmitted coming from SelfUtil
7290
7346
  if (!(this.isUserUnadmitted && !this.wirelessShare && !this.allowMediaInLobby)) {
7291
- _context34.next = 14;
7347
+ _context35.next = 14;
7292
7348
  break;
7293
7349
  }
7294
7350
  throw new _webexErrors.UserInLobbyError();
@@ -7331,33 +7387,55 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7331
7387
  });
7332
7388
  this.audio = (0, _muteState.createMuteState)(_constants.AUDIO, this, audioEnabled);
7333
7389
  this.video = (0, _muteState.createMuteState)(_constants.VIDEO, this, videoEnabled);
7334
- _context34.prev = 18;
7335
- _context34.next = 21;
7390
+ _context35.prev = 18;
7391
+ _context35.next = 21;
7336
7392
  return this.setUpLocalStreamReferences(localStreams);
7337
7393
  case 21:
7338
7394
  this.setMercuryListener();
7339
7395
  this.createStatsAnalyzer();
7340
- _context34.next = 25;
7396
+ _context35.prev = 23;
7397
+ _context35.next = 26;
7341
7398
  return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, forceTurnDiscovery, turnServerInfo);
7342
- case 25:
7399
+ case 26:
7400
+ _context35.next = 39;
7401
+ break;
7402
+ case 28:
7403
+ _context35.prev = 28;
7404
+ _context35.t0 = _context35["catch"](23);
7405
+ if (!(_context35.t0 instanceof _multistreamNotSupportedError.default)) {
7406
+ _context35.next = 38;
7407
+ break;
7408
+ }
7409
+ _loggerProxy.default.logger.warn("".concat(LOG_HEADER, " we asked for multistream backend (Homer), but got transcoded backend, recreating media connection..."));
7410
+ _context35.next = 34;
7411
+ return this.downgradeFromMultistreamToTranscoded();
7412
+ case 34:
7413
+ _context35.next = 36;
7414
+ return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, true, undefined);
7415
+ case 36:
7416
+ _context35.next = 39;
7417
+ break;
7418
+ case 38:
7419
+ throw _context35.t0;
7420
+ case 39:
7343
7421
  if (!this.mediaProperties.hasLocalShareStream()) {
7344
- _context34.next = 28;
7422
+ _context35.next = 42;
7345
7423
  break;
7346
7424
  }
7347
- _context34.next = 28;
7425
+ _context35.next = 42;
7348
7426
  return this.enqueueScreenShareFloorRequest();
7349
- case 28:
7350
- _context34.next = 30;
7427
+ case 42:
7428
+ _context35.next = 44;
7351
7429
  return this.mediaProperties.getCurrentConnectionInfo();
7352
- case 30:
7353
- _yield$this$mediaProp = _context34.sent;
7430
+ case 44:
7431
+ _yield$this$mediaProp = _context35.sent;
7354
7432
  connectionType = _yield$this$mediaProp.connectionType;
7355
7433
  selectedCandidatePairChanges = _yield$this$mediaProp.selectedCandidatePairChanges;
7356
7434
  numTransports = _yield$this$mediaProp.numTransports;
7357
- _context34.next = 36;
7435
+ _context35.next = 50;
7358
7436
  return this.webex.meetings.reachability.getReachabilityMetrics();
7359
- case 36:
7360
- reachabilityStats = _context34.sent;
7437
+ case 50:
7438
+ reachabilityStats = _context35.sent;
7361
7439
  iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
7362
7440
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, _objectSpread(_objectSpread(_objectSpread({
7363
7441
  correlation_id: this.correlationId,
@@ -7383,31 +7461,31 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7383
7461
  // We can log ReceiveSlot SSRCs only after the SDP exchange, so doing it here:
7384
7462
  (_this$remoteMediaMana = this.remoteMediaManager) === null || _this$remoteMediaMana === void 0 ? void 0 : _this$remoteMediaMana.logAllReceiveSlots();
7385
7463
  this.startPeriodicLogUpload();
7386
- _context34.next = 63;
7464
+ _context35.next = 77;
7387
7465
  break;
7388
- case 45:
7389
- _context34.prev = 45;
7390
- _context34.t0 = _context34["catch"](18);
7391
- _loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context34.t0);
7466
+ case 59:
7467
+ _context35.prev = 59;
7468
+ _context35.t1 = _context35["catch"](18);
7469
+ _loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context35.t1);
7392
7470
 
7393
7471
  // @ts-ignore
7394
- _context34.next = 50;
7472
+ _context35.next = 64;
7395
7473
  return this.webex.meetings.reachability.getReachabilityMetrics();
7396
- case 50:
7397
- reachabilityMetrics = _context34.sent;
7398
- _context34.next = 53;
7474
+ case 64:
7475
+ reachabilityMetrics = _context35.sent;
7476
+ _context35.next = 67;
7399
7477
  return this.mediaProperties.getCurrentConnectionInfo();
7400
- case 53:
7401
- _yield$this$mediaProp2 = _context34.sent;
7478
+ case 67:
7479
+ _yield$this$mediaProp2 = _context35.sent;
7402
7480
  _selectedCandidatePairChanges = _yield$this$mediaProp2.selectedCandidatePairChanges;
7403
7481
  _numTransports = _yield$this$mediaProp2.numTransports;
7404
7482
  _iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
7405
7483
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_FAILURE, _objectSpread(_objectSpread(_objectSpread({
7406
7484
  correlation_id: this.correlationId,
7407
7485
  locus_id: this.locusUrl.split('/').pop(),
7408
- reason: _context34.t0.message,
7409
- stack: _context34.t0.stack,
7410
- code: _context34.t0.code,
7486
+ reason: _context35.t1.message,
7487
+ stack: _context35.t1.stack,
7488
+ code: _context35.t1.code,
7411
7489
  selectedCandidatePairChanges: _selectedCandidatePairChanges,
7412
7490
  numTransports: _numTransports,
7413
7491
  turnDiscoverySkippedReason: this.turnDiscoverySkippedReason,
@@ -7421,29 +7499,29 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7421
7499
  }, reachabilityMetrics), _iceCandidateErrors), {}, {
7422
7500
  iceCandidatesCount: this.iceCandidatesCount
7423
7501
  }));
7424
- _context34.next = 60;
7502
+ _context35.next = 74;
7425
7503
  return this.cleanUpOnAddMediaFailure();
7426
- case 60:
7504
+ case 74:
7427
7505
  // Upload logs on error while adding media
7428
7506
  _triggerProxy.default.trigger(this, {
7429
7507
  file: 'meeting/index',
7430
7508
  function: 'addMedia'
7431
7509
  }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
7432
- if (_context34.t0 instanceof _internalMediaCore.Errors.SdpError) {
7510
+ if (_context35.t1 instanceof _internalMediaCore.Errors.SdpError) {
7433
7511
  this.leave({
7434
7512
  reason: _constants.MEETING_REMOVED_REASON.MEETING_CONNECTION_FAILED
7435
7513
  });
7436
7514
  }
7437
- throw _context34.t0;
7438
- case 63:
7439
- _context34.prev = 63;
7515
+ throw _context35.t1;
7516
+ case 77:
7517
+ _context35.prev = 77;
7440
7518
  this.addMediaData.icePhaseCallback = DEFAULT_ICE_PHASE_CALLBACK;
7441
- return _context34.finish(63);
7442
- case 66:
7519
+ return _context35.finish(77);
7520
+ case 80:
7443
7521
  case "end":
7444
- return _context34.stop();
7522
+ return _context35.stop();
7445
7523
  }
7446
- }, _callee34, this, [[18, 45, 63, 66]]);
7524
+ }, _callee35, this, [[18, 59, 77, 80], [23, 28]]);
7447
7525
  }));
7448
7526
  function addMediaInternal(_x33, _x34, _x35) {
7449
7527
  return _addMediaInternal.apply(this, arguments);
@@ -7511,35 +7589,35 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7511
7589
  * @memberof Meeting
7512
7590
  */
7513
7591
  function () {
7514
- var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35(options) {
7592
+ var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee36(options) {
7515
7593
  var audioEnabled, videoEnabled, shareAudioEnabled, shareVideoEnabled, _this$audio3, _this$video3;
7516
- return _regenerator.default.wrap(function _callee35$(_context35) {
7517
- while (1) switch (_context35.prev = _context35.next) {
7594
+ return _regenerator.default.wrap(function _callee36$(_context36) {
7595
+ while (1) switch (_context36.prev = _context36.next) {
7518
7596
  case 0:
7519
7597
  this.checkMediaConnection();
7520
7598
  audioEnabled = options.audioEnabled, videoEnabled = options.videoEnabled, shareAudioEnabled = options.shareAudioEnabled, shareVideoEnabled = options.shareVideoEnabled;
7521
7599
  _loggerProxy.default.logger.log("Meeting:index#updateMedia --> called with options=".concat((0, _stringify.default)(options)));
7522
7600
  if (this.canUpdateMedia()) {
7523
- _context35.next = 5;
7601
+ _context36.next = 5;
7524
7602
  break;
7525
7603
  }
7526
- return _context35.abrupt("return", this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.UPDATE_MEDIA, options));
7604
+ return _context36.abrupt("return", this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.UPDATE_MEDIA, options));
7527
7605
  case 5:
7528
7606
  if (!this.isMultistream) {
7529
- _context35.next = 10;
7607
+ _context36.next = 10;
7530
7608
  break;
7531
7609
  }
7532
7610
  if (!(shareAudioEnabled !== undefined || shareVideoEnabled !== undefined)) {
7533
- _context35.next = 8;
7611
+ _context36.next = 8;
7534
7612
  break;
7535
7613
  }
7536
7614
  throw new Error('toggling shareAudioEnabled or shareVideoEnabled in a multistream meeting is not supported, to control receiving screen share call meeting.remoteMediaManager.setLayout() with appropriate layout');
7537
7615
  case 8:
7538
- _context35.next = 12;
7616
+ _context36.next = 12;
7539
7617
  break;
7540
7618
  case 10:
7541
7619
  if (!(shareAudioEnabled !== undefined)) {
7542
- _context35.next = 12;
7620
+ _context36.next = 12;
7543
7621
  break;
7544
7622
  }
7545
7623
  throw new Error('toggling shareAudioEnabled in a transcoded meeting is not supported as of now');
@@ -7564,18 +7642,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7564
7642
  this.mediaProperties.mediaDirection.receiveShare = !!(shareAudioEnabled || shareVideoEnabled);
7565
7643
  }
7566
7644
  if (this.isMultistream) {
7567
- _context35.next = 18;
7645
+ _context36.next = 18;
7568
7646
  break;
7569
7647
  }
7570
- _context35.next = 18;
7648
+ _context36.next = 18;
7571
7649
  return this.updateTranscodedMediaConnection();
7572
7650
  case 18:
7573
- return _context35.abrupt("return", undefined);
7651
+ return _context36.abrupt("return", undefined);
7574
7652
  case 19:
7575
7653
  case "end":
7576
- return _context35.stop();
7654
+ return _context36.stop();
7577
7655
  }
7578
- }, _callee35, this);
7656
+ }, _callee36, this);
7579
7657
  }));
7580
7658
  function updateMedia(_x36) {
7581
7659
  return _updateMedia.apply(this, arguments);
@@ -8217,7 +8295,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8217
8295
  }
8218
8296
  if (layoutType) {
8219
8297
  if (!_constants.LAYOUT_TYPES.includes(layoutType)) {
8220
- return this.rejectWithErrorLog('Meeting:index#changeVideoLayout --> cannot change video layout, invalid layoutType received.');
8298
+ return this.rejectWithErrorLog("Meeting:index#changeVideoLayout --> cannot change video layout, invalid layoutType \"".concat(layoutType, "\" received."));
8221
8299
  }
8222
8300
  layoutInfo.layoutType = layoutType;
8223
8301
  }
@@ -8496,37 +8574,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8496
8574
  }, {
8497
8575
  key: "enableMusicMode",
8498
8576
  value: (function () {
8499
- var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee36(shouldEnableMusicMode) {
8500
- return _regenerator.default.wrap(function _callee36$(_context36) {
8501
- while (1) switch (_context36.prev = _context36.next) {
8577
+ var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee37(shouldEnableMusicMode) {
8578
+ return _regenerator.default.wrap(function _callee37$(_context37) {
8579
+ while (1) switch (_context37.prev = _context37.next) {
8502
8580
  case 0:
8503
8581
  this.checkMediaConnection();
8504
8582
  if (this.isMultistream) {
8505
- _context36.next = 3;
8583
+ _context37.next = 3;
8506
8584
  break;
8507
8585
  }
8508
8586
  throw new Error('enableMusicMode() only supported with multistream');
8509
8587
  case 3:
8510
8588
  if (!shouldEnableMusicMode) {
8511
- _context36.next = 8;
8589
+ _context37.next = 8;
8512
8590
  break;
8513
8591
  }
8514
- _context36.next = 6;
8592
+ _context37.next = 6;
8515
8593
  return this.sendSlotManager.setCodecParameters(_internalMediaCore.MediaType.AudioMain, {
8516
8594
  maxaveragebitrate: '64000',
8517
8595
  maxplaybackrate: '48000'
8518
8596
  });
8519
8597
  case 6:
8520
- _context36.next = 10;
8598
+ _context37.next = 10;
8521
8599
  break;
8522
8600
  case 8:
8523
- _context36.next = 10;
8601
+ _context37.next = 10;
8524
8602
  return this.sendSlotManager.deleteCodecParameters(_internalMediaCore.MediaType.AudioMain, ['maxaveragebitrate', 'maxplaybackrate']);
8525
8603
  case 10:
8526
8604
  case "end":
8527
- return _context36.stop();
8605
+ return _context37.stop();
8528
8606
  }
8529
- }, _callee36, this);
8607
+ }, _callee37, this);
8530
8608
  }));
8531
8609
  function enableMusicMode(_x37) {
8532
8610
  return _enableMusicMode.apply(this, arguments);
@@ -8619,25 +8697,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8619
8697
  }, {
8620
8698
  key: "publishStream",
8621
8699
  value: (function () {
8622
- var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee37(mediaType, stream) {
8623
- return _regenerator.default.wrap(function _callee37$(_context37) {
8624
- while (1) switch (_context37.prev = _context37.next) {
8700
+ var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee38(mediaType, stream) {
8701
+ return _regenerator.default.wrap(function _callee38$(_context38) {
8702
+ while (1) switch (_context38.prev = _context38.next) {
8625
8703
  case 0:
8626
8704
  if (stream) {
8627
- _context37.next = 2;
8705
+ _context38.next = 2;
8628
8706
  break;
8629
8707
  }
8630
- return _context37.abrupt("return");
8708
+ return _context38.abrupt("return");
8631
8709
  case 2:
8632
8710
  if (!this.mediaProperties.webrtcMediaConnection) {
8633
- _context37.next = 7;
8711
+ _context38.next = 7;
8634
8712
  break;
8635
8713
  }
8636
8714
  if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
8637
- _context37.next = 6;
8715
+ _context38.next = 6;
8638
8716
  break;
8639
8717
  }
8640
- _context37.next = 6;
8718
+ _context38.next = 6;
8641
8719
  return this.sendSlotManager.publishStream(mediaType, stream);
8642
8720
  case 6:
8643
8721
  this.emitPublishStateChangeEvent({
@@ -8648,9 +8726,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8648
8726
  });
8649
8727
  case 7:
8650
8728
  case "end":
8651
- return _context37.stop();
8729
+ return _context38.stop();
8652
8730
  }
8653
- }, _callee37, this);
8731
+ }, _callee38, this);
8654
8732
  }));
8655
8733
  function publishStream(_x38, _x39) {
8656
8734
  return _publishStream.apply(this, arguments);
@@ -8668,21 +8746,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8668
8746
  }, {
8669
8747
  key: "unpublishStream",
8670
8748
  value: (function () {
8671
- var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee38(mediaType, stream) {
8672
- return _regenerator.default.wrap(function _callee38$(_context38) {
8673
- while (1) switch (_context38.prev = _context38.next) {
8749
+ var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee39(mediaType, stream) {
8750
+ return _regenerator.default.wrap(function _callee39$(_context39) {
8751
+ while (1) switch (_context39.prev = _context39.next) {
8674
8752
  case 0:
8675
8753
  if (stream) {
8676
- _context38.next = 2;
8754
+ _context39.next = 2;
8677
8755
  break;
8678
8756
  }
8679
- return _context38.abrupt("return");
8757
+ return _context39.abrupt("return");
8680
8758
  case 2:
8681
8759
  if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
8682
- _context38.next = 5;
8760
+ _context39.next = 5;
8683
8761
  break;
8684
8762
  }
8685
- _context38.next = 5;
8763
+ _context39.next = 5;
8686
8764
  return this.sendSlotManager.unpublishStream(mediaType);
8687
8765
  case 5:
8688
8766
  this.emitPublishStateChangeEvent({
@@ -8693,9 +8771,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8693
8771
  });
8694
8772
  case 6:
8695
8773
  case "end":
8696
- return _context38.stop();
8774
+ return _context39.stop();
8697
8775
  }
8698
- }, _callee38, this);
8776
+ }, _callee39, this);
8699
8777
  }));
8700
8778
  function unpublishStream(_x40, _x41) {
8701
8779
  return _unpublishStream.apply(this, arguments);
@@ -8712,19 +8790,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8712
8790
  }, {
8713
8791
  key: "publishStreams",
8714
8792
  value: (function () {
8715
- var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee39(streams) {
8793
+ var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee40(streams) {
8716
8794
  var _streams$screenShare, _streams$screenShare2, _streams$screenShare3, _streams$screenShare4, _streams$screenShare5, _streams$screenShare6;
8717
8795
  var streamChecks, _i, _streamChecks, _streamChecks$_i, stream, name, floorRequestNeeded, _streams$screenShare7;
8718
- return _regenerator.default.wrap(function _callee39$(_context39) {
8719
- while (1) switch (_context39.prev = _context39.next) {
8796
+ return _regenerator.default.wrap(function _callee40$(_context40) {
8797
+ while (1) switch (_context40.prev = _context40.next) {
8720
8798
  case 0:
8721
8799
  _loggerProxy.default.logger.info("Meeting:index#publishStreams --> called with: ".concat((0, _stringify.default)(streams)));
8722
8800
  this.checkMediaConnection();
8723
8801
  if (!(!streams.microphone && !streams.camera && !((_streams$screenShare = streams.screenShare) !== null && _streams$screenShare !== void 0 && _streams$screenShare.audio) && !((_streams$screenShare2 = streams.screenShare) !== null && _streams$screenShare2 !== void 0 && _streams$screenShare2.video))) {
8724
- _context39.next = 4;
8802
+ _context40.next = 4;
8725
8803
  break;
8726
8804
  }
8727
- return _context39.abrupt("return");
8805
+ return _context40.abrupt("return");
8728
8806
  case 4:
8729
8807
  streamChecks = [{
8730
8808
  stream: streams === null || streams === void 0 ? void 0 : streams.microphone,
@@ -8742,62 +8820,62 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8742
8820
  _i = 0, _streamChecks = streamChecks;
8743
8821
  case 6:
8744
8822
  if (!(_i < _streamChecks.length)) {
8745
- _context39.next = 13;
8823
+ _context40.next = 13;
8746
8824
  break;
8747
8825
  }
8748
8826
  _streamChecks$_i = _streamChecks[_i], stream = _streamChecks$_i.stream, name = _streamChecks$_i.name;
8749
8827
  if (!((stream === null || stream === void 0 ? void 0 : stream.readyState) === 'ended')) {
8750
- _context39.next = 10;
8828
+ _context40.next = 10;
8751
8829
  break;
8752
8830
  }
8753
8831
  throw new Error("Attempted to publish ".concat(name, " stream with ended readyState, correlationId=").concat(this.correlationId));
8754
8832
  case 10:
8755
8833
  _i++;
8756
- _context39.next = 6;
8834
+ _context40.next = 6;
8757
8835
  break;
8758
8836
  case 13:
8759
8837
  floorRequestNeeded = false; // Screenshare Audio is supported only in multi stream. So we check for screenshare audio presence only if it's a multi stream meeting
8760
8838
  if (!(this.isMultistream && (_streams$screenShare5 = streams.screenShare) !== null && _streams$screenShare5 !== void 0 && _streams$screenShare5.audio)) {
8761
- _context39.next = 18;
8839
+ _context40.next = 18;
8762
8840
  break;
8763
8841
  }
8764
- _context39.next = 17;
8842
+ _context40.next = 17;
8765
8843
  return this.setLocalShareAudioStream(streams.screenShare.audio);
8766
8844
  case 17:
8767
8845
  floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
8768
8846
  case 18:
8769
8847
  if (!((_streams$screenShare6 = streams.screenShare) !== null && _streams$screenShare6 !== void 0 && _streams$screenShare6.video)) {
8770
- _context39.next = 22;
8848
+ _context40.next = 22;
8771
8849
  break;
8772
8850
  }
8773
- _context39.next = 21;
8851
+ _context40.next = 21;
8774
8852
  return this.setLocalShareVideoStream((_streams$screenShare7 = streams.screenShare) === null || _streams$screenShare7 === void 0 ? void 0 : _streams$screenShare7.video);
8775
8853
  case 21:
8776
8854
  floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
8777
8855
  case 22:
8778
8856
  if (!streams.microphone) {
8779
- _context39.next = 25;
8857
+ _context40.next = 25;
8780
8858
  break;
8781
8859
  }
8782
- _context39.next = 25;
8860
+ _context40.next = 25;
8783
8861
  return this.setLocalAudioStream(streams.microphone);
8784
8862
  case 25:
8785
8863
  if (!streams.camera) {
8786
- _context39.next = 28;
8864
+ _context40.next = 28;
8787
8865
  break;
8788
8866
  }
8789
- _context39.next = 28;
8867
+ _context40.next = 28;
8790
8868
  return this.setLocalVideoStream(streams.camera);
8791
8869
  case 28:
8792
8870
  if (this.isMultistream) {
8793
- _context39.next = 31;
8871
+ _context40.next = 31;
8794
8872
  break;
8795
8873
  }
8796
- _context39.next = 31;
8874
+ _context40.next = 31;
8797
8875
  return this.updateTranscodedMediaConnection();
8798
8876
  case 31:
8799
8877
  if (!floorRequestNeeded) {
8800
- _context39.next = 37;
8878
+ _context40.next = 37;
8801
8879
  break;
8802
8880
  }
8803
8881
  this.localShareInstanceId = _uuid.default.v4();
@@ -8821,13 +8899,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8821
8899
  // we're sending the http request to Locus to request the screen share floor
8822
8900
  // only after the SDP update, because that's how it's always been done for transcoded meetings
8823
8901
  // and also if sharing from the start, we need confluence to have been created
8824
- _context39.next = 37;
8902
+ _context40.next = 37;
8825
8903
  return this.enqueueScreenShareFloorRequest();
8826
8904
  case 37:
8827
8905
  case "end":
8828
- return _context39.stop();
8906
+ return _context40.stop();
8829
8907
  }
8830
- }, _callee39, this);
8908
+ }, _callee40, this);
8831
8909
  }));
8832
8910
  function publishStreams(_x42) {
8833
8911
  return _publishStreams.apply(this, arguments);
@@ -8844,10 +8922,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8844
8922
  }, {
8845
8923
  key: "unpublishStreams",
8846
8924
  value: (function () {
8847
- var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee40(streams) {
8925
+ var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee41(streams) {
8848
8926
  var promises, _iterator, _step, stream;
8849
- return _regenerator.default.wrap(function _callee40$(_context40) {
8850
- while (1) switch (_context40.prev = _context40.next) {
8927
+ return _regenerator.default.wrap(function _callee41$(_context41) {
8928
+ while (1) switch (_context41.prev = _context41.next) {
8851
8929
  case 0:
8852
8930
  _loggerProxy.default.logger.info("Meeting:index#unpublishStreams --> called with: ".concat((0, _stringify.default)(streams)));
8853
8931
  this.checkMediaConnection();
@@ -8879,7 +8957,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8879
8957
  if (!this.isMultistream) {
8880
8958
  promises.push(this.updateTranscodedMediaConnection());
8881
8959
  }
8882
- _context40.next = 8;
8960
+ _context41.next = 8;
8883
8961
  return _promise.default.all(promises);
8884
8962
  case 8:
8885
8963
  // we're allowing for the SDK to support just audio share as well
@@ -8900,9 +8978,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8900
8978
  }
8901
8979
  case 9:
8902
8980
  case "end":
8903
- return _context40.stop();
8981
+ return _context41.stop();
8904
8982
  }
8905
- }, _callee40, this);
8983
+ }, _callee41, this);
8906
8984
  }));
8907
8985
  function unpublishStreams(_x43) {
8908
8986
  return _unpublishStreams.apply(this, arguments);