@webex/plugin-meetings 3.5.0 → 3.6.0-next.2

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 (52) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/config.js +4 -1
  4. package/dist/config.js.map +1 -1
  5. package/dist/constants.js +1 -0
  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/media/index.js +3 -1
  10. package/dist/media/index.js.map +1 -1
  11. package/dist/meeting/in-meeting-actions.js +3 -1
  12. package/dist/meeting/in-meeting-actions.js.map +1 -1
  13. package/dist/meeting/index.js +133 -87
  14. package/dist/meeting/index.js.map +1 -1
  15. package/dist/meeting/util.js +8 -10
  16. package/dist/meeting/util.js.map +1 -1
  17. package/dist/meetings/index.js +100 -26
  18. package/dist/meetings/index.js.map +1 -1
  19. package/dist/roap/request.js +1 -1
  20. package/dist/roap/request.js.map +1 -1
  21. package/dist/types/config.d.ts +2 -0
  22. package/dist/types/constants.d.ts +2 -1
  23. package/dist/types/meeting/in-meeting-actions.d.ts +2 -0
  24. package/dist/types/meeting/index.d.ts +11 -0
  25. package/dist/types/meetings/index.d.ts +43 -2
  26. package/dist/webinar/index.js +1 -1
  27. package/package.json +22 -22
  28. package/src/config.ts +3 -0
  29. package/src/constants.ts +1 -0
  30. package/src/media/index.ts +4 -1
  31. package/src/meeting/in-meeting-actions.ts +3 -0
  32. package/src/meeting/index.ts +57 -2
  33. package/src/meeting/util.ts +27 -31
  34. package/src/meetings/index.ts +126 -37
  35. package/src/roap/request.ts +3 -1
  36. package/test/unit/spec/media/index.ts +4 -0
  37. package/test/unit/spec/meeting/in-meeting-actions.ts +2 -0
  38. package/test/unit/spec/meeting/index.js +58 -17
  39. package/test/unit/spec/meeting/utils.js +50 -85
  40. package/test/unit/spec/meetings/index.js +128 -13
  41. package/dist/networkQualityMonitor/index.js +0 -227
  42. package/dist/networkQualityMonitor/index.js.map +0 -1
  43. package/dist/rtcMetrics/constants.js +0 -11
  44. package/dist/rtcMetrics/constants.js.map +0 -1
  45. package/dist/rtcMetrics/index.js +0 -197
  46. package/dist/rtcMetrics/index.js.map +0 -1
  47. package/dist/types/networkQualityMonitor/index.d.ts +0 -70
  48. package/dist/types/rtcMetrics/constants.d.ts +0 -4
  49. package/dist/types/rtcMetrics/index.d.ts +0 -71
  50. package/src/rtcMetrics/constants.ts +0 -3
  51. package/src/rtcMetrics/index.ts +0 -186
  52. package/test/unit/spec/rtcMetrics/index.ts +0 -154
@@ -86,7 +86,6 @@ var _controlsOptionsManager = _interopRequireDefault(require("../controls-option
86
86
  var _permission = _interopRequireDefault(require("../common/errors/permission"));
87
87
  var _locusMediaRequest = require("./locusMediaRequest");
88
88
  var _connectionStateHandler = require("./connectionStateHandler");
89
- var _rtcMetrics = _interopRequireDefault(require("../rtcMetrics"));
90
89
  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; } } }; }
91
90
  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); }
92
91
  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; }
@@ -381,7 +380,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
381
380
  * @memberof Meeting
382
381
  */
383
382
  function Meeting(attrs, _options) {
384
- var _attrs$callStateForMe, _this$locusInfo, _this$locusInfo$links, _this$locusInfo$links2, _this$locusInfo$links3, _this$locusInfo2, _this$locusInfo2$full, _this$locusInfo3, _this$locusInfo4;
383
+ var _attrs$callStateForMe, _attrs$callStateForMe2, _this$locusInfo, _this$locusInfo$links, _this$locusInfo$links2, _this$locusInfo$links3, _this$locusInfo2, _this$locusInfo2$full, _this$locusInfo3, _this$locusInfo4;
385
384
  var _this;
386
385
  (0, _classCallCheck2.default)(this, Meeting);
387
386
  _this = _super.call(this, {}, _options);
@@ -1219,31 +1218,35 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
1219
1218
  return _regenerator.default.wrap(function _callee2$(_context2) {
1220
1219
  while (1) switch (_context2.prev = _context2.next) {
1221
1220
  case 0:
1221
+ _loggerProxy.default.logger.info("Meeting:index#handleShareAudioStreamEnded --> audio share stream ended");
1222
+ // current share audio stream has ended, but there might be an active
1223
+ // share video stream. we only leave from wireless share if share has
1224
+ // completely ended, which means no share audio or video streams active
1222
1225
  if (!(_this.wirelessShare && !_this.mediaProperties.shareVideoStream)) {
1223
- _context2.next = 4;
1226
+ _context2.next = 5;
1224
1227
  break;
1225
1228
  }
1226
1229
  _this.leave({
1227
1230
  reason: _constants.MEETING_REMOVED_REASON.USER_ENDED_SHARE_STREAMS
1228
1231
  });
1229
- _context2.next = 12;
1232
+ _context2.next = 13;
1230
1233
  break;
1231
- case 4:
1232
- _context2.prev = 4;
1233
- _context2.next = 7;
1234
+ case 5:
1235
+ _context2.prev = 5;
1236
+ _context2.next = 8;
1234
1237
  return _this.unpublishStreams([_this.mediaProperties.shareAudioStream]);
1235
- case 7:
1236
- _context2.next = 12;
1238
+ case 8:
1239
+ _context2.next = 13;
1237
1240
  break;
1238
- case 9:
1239
- _context2.prev = 9;
1240
- _context2.t0 = _context2["catch"](4);
1241
+ case 10:
1242
+ _context2.prev = 10;
1243
+ _context2.t0 = _context2["catch"](5);
1241
1244
  _loggerProxy.default.logger.log('Meeting:index#handleShareAudioStreamEnded --> Error stopping share: ', _context2.t0);
1242
- case 12:
1245
+ case 13:
1243
1246
  case "end":
1244
1247
  return _context2.stop();
1245
1248
  }
1246
- }, _callee2, null, [[4, 9]]);
1249
+ }, _callee2, null, [[5, 10]]);
1247
1250
  })));
1248
1251
  /**
1249
1252
  * Functionality for when a share video is muted or unmuted.
@@ -1271,33 +1274,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
1271
1274
  return _regenerator.default.wrap(function _callee3$(_context3) {
1272
1275
  while (1) switch (_context3.prev = _context3.next) {
1273
1276
  case 0:
1277
+ _loggerProxy.default.logger.info("Meeting:index#handleShareVideoStreamEnded --> video share stream ended");
1278
+ // current share video stream has ended, but there might be an active
1279
+ // share audio stream. we only leave from wireless share if share has
1280
+ // completely ended, which means no share audio or video streams active
1274
1281
  if (!(_this.wirelessShare && !_this.mediaProperties.shareAudioStream)) {
1275
- _context3.next = 4;
1282
+ _context3.next = 5;
1276
1283
  break;
1277
1284
  }
1278
1285
  _this.leave({
1279
1286
  reason: _constants.MEETING_REMOVED_REASON.USER_ENDED_SHARE_STREAMS
1280
1287
  });
1281
- _context3.next = 12;
1288
+ _context3.next = 13;
1282
1289
  break;
1283
- case 4:
1284
- _context3.prev = 4;
1285
- _context3.next = 7;
1290
+ case 5:
1291
+ _context3.prev = 5;
1292
+ _context3.next = 8;
1286
1293
  return _this.unpublishStreams([_this.mediaProperties.shareVideoStream]);
1287
- case 7:
1288
- _context3.next = 12;
1294
+ case 8:
1295
+ _context3.next = 13;
1289
1296
  break;
1290
- case 9:
1291
- _context3.prev = 9;
1292
- _context3.t0 = _context3["catch"](4);
1297
+ case 10:
1298
+ _context3.prev = 10;
1299
+ _context3.t0 = _context3["catch"](5);
1293
1300
  _loggerProxy.default.logger.log('Meeting:index#handleShareVideoStreamEnded --> Error stopping share: ', _context3.t0);
1294
- case 12:
1295
- _this.triggerStoppedSharing();
1296
1301
  case 13:
1302
+ _this.triggerStoppedSharing();
1303
+ case 14:
1297
1304
  case "end":
1298
1305
  return _context3.stop();
1299
1306
  }
1300
- }, _callee3, null, [[4, 9]]);
1307
+ }, _callee3, null, [[5, 10]]);
1301
1308
  })));
1302
1309
  /**
1303
1310
  * Emits meeting:stoppedSharingLocal
@@ -1410,10 +1417,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
1410
1417
  */
1411
1418
  _this.callStateForMetrics = attrs.callStateForMetrics || {};
1412
1419
  var _correlationId = attrs.correlationId || ((_attrs$callStateForMe = attrs.callStateForMetrics) === null || _attrs$callStateForMe === void 0 ? void 0 : _attrs$callStateForMe.correlationId);
1420
+ var sessionCorrelationId = attrs.sessionCorrelationId || ((_attrs$callStateForMe2 = attrs.callStateForMetrics) === null || _attrs$callStateForMe2 === void 0 ? void 0 : _attrs$callStateForMe2.sessionCorrelationId);
1421
+ if (sessionCorrelationId) {
1422
+ _loggerProxy.default.logger.log("Meetings:index#constructor --> Initializing the meeting object with session correlation id from app ".concat(_correlationId));
1423
+ _this.callStateForMetrics.sessionCorrelationId = sessionCorrelationId;
1424
+ } else {
1425
+ _loggerProxy.default.logger.log("Meetings:index#constructor --> No session correlation id supplied. None will be generated and this field will remain blank");
1426
+ // TODO: supply a session from the meetings instance
1427
+ _this.callStateForMetrics.sessionCorrelationId = '';
1428
+ }
1413
1429
  if (_correlationId) {
1414
1430
  _loggerProxy.default.logger.log("Meetings:index#constructor --> Initializing the meeting object with correlation id from app ".concat(_correlationId));
1415
1431
  _this.callStateForMetrics.correlationId = _correlationId;
1416
1432
  } else {
1433
+ _loggerProxy.default.logger.log("Meetings:index#constructor --> Initializing the meeting object with generated correlation id from sdk ".concat(_this.id));
1417
1434
  _this.callStateForMetrics.correlationId = _this.id;
1418
1435
  }
1419
1436
  /**
@@ -2236,6 +2253,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
2236
2253
  this.callStateForMetrics.correlationId = correlationId;
2237
2254
  }
2238
2255
 
2256
+ /**
2257
+ * Getter - Returns callStateForMetrics.sessionCorrelationId
2258
+ * @returns {string}
2259
+ */
2260
+ }, {
2261
+ key: "sessionCorrelationId",
2262
+ get: function get() {
2263
+ return this.callStateForMetrics.sessionCorrelationId;
2264
+ }
2265
+
2266
+ /**
2267
+ * Setter - sets callStateForMetrics.sessionCorrelationId
2268
+ * @param {string} sessionCorrelationId
2269
+ */,
2270
+ set: function set(sessionCorrelationId) {
2271
+ this.callStateForMetrics.sessionCorrelationId = sessionCorrelationId;
2272
+ }
2273
+
2239
2274
  /**
2240
2275
  * Getter - Returns isoLocalClientMeetingJoinTime
2241
2276
  * This will be set once on meeting join, and not updated again
@@ -3261,8 +3296,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3261
3296
  else if ((previousContentShare && contentShare.disposition === _constants.FLOOR_ACTION.RELEASED || contentShare.disposition === null) && (previousWhiteboardShare && whiteboardShare.disposition === _constants.FLOOR_ACTION.RELEASED || whiteboardShare.disposition === null)) {
3262
3297
  newShareStatus = _constants.SHARE_STATUS.NO_SHARE;
3263
3298
  }
3299
+ _loggerProxy.default.logger.info("Meeting:index#setUpLocusInfoMediaInactiveListener --> this.shareStatus=".concat(_this14.shareStatus, " newShareStatus=").concat(newShareStatus));
3264
3300
  if (!(newShareStatus !== _this14.shareStatus)) {
3265
- _context8.next = 45;
3301
+ _context8.next = 46;
3266
3302
  break;
3267
3303
  }
3268
3304
  oldShareStatus = _this14.shareStatus; // update our state before we send out any notifications
@@ -3270,37 +3306,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3270
3306
 
3271
3307
  // send out "stop" notifications for the old state
3272
3308
  _context8.t0 = oldShareStatus;
3273
- _context8.next = _context8.t0 === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE ? 14 : _context8.t0 === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE ? 16 : _context8.t0 === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE ? 18 : _context8.t0 === _constants.SHARE_STATUS.NO_SHARE ? 20 : 21;
3309
+ _context8.next = _context8.t0 === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE ? 15 : _context8.t0 === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE ? 17 : _context8.t0 === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE ? 19 : _context8.t0 === _constants.SHARE_STATUS.NO_SHARE ? 21 : 22;
3274
3310
  break;
3275
- case 14:
3311
+ case 15:
3276
3312
  _triggerProxy.default.trigger(_this14, {
3277
3313
  file: 'meetings/index',
3278
3314
  function: 'remoteShare'
3279
3315
  }, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_REMOTE);
3280
- return _context8.abrupt("break", 22);
3281
- case 16:
3316
+ return _context8.abrupt("break", 23);
3317
+ case 17:
3282
3318
  _triggerProxy.default.trigger(_this14, {
3283
3319
  file: 'meeting/index',
3284
3320
  function: 'localShare'
3285
3321
  }, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_LOCAL, {
3286
3322
  reason: _constants.SHARE_STOPPED_REASON.SELF_STOPPED
3287
3323
  });
3288
- return _context8.abrupt("break", 22);
3289
- case 18:
3324
+ return _context8.abrupt("break", 23);
3325
+ case 19:
3290
3326
  _triggerProxy.default.trigger(_this14, {
3291
3327
  file: 'meeting/index',
3292
3328
  function: 'stopWhiteboardShare'
3293
3329
  }, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_WHITEBOARD);
3294
- return _context8.abrupt("break", 22);
3295
- case 20:
3296
- return _context8.abrupt("break", 22);
3330
+ return _context8.abrupt("break", 23);
3297
3331
  case 21:
3298
- return _context8.abrupt("break", 22);
3332
+ return _context8.abrupt("break", 23);
3299
3333
  case 22:
3334
+ return _context8.abrupt("break", 23);
3335
+ case 23:
3300
3336
  _context8.t1 = newShareStatus;
3301
- _context8.next = _context8.t1 === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE ? 25 : _context8.t1 === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE ? 34 : _context8.t1 === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE ? 37 : _context8.t1 === _constants.SHARE_STATUS.NO_SHARE ? 40 : 41;
3337
+ _context8.next = _context8.t1 === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE ? 26 : _context8.t1 === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE ? 35 : _context8.t1 === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE ? 38 : _context8.t1 === _constants.SHARE_STATUS.NO_SHARE ? 41 : 42;
3302
3338
  break;
3303
- case 25:
3339
+ case 26:
3304
3340
  sendStartedSharingRemote = function sendStartedSharingRemote() {
3305
3341
  _this14.remoteShareInstanceId = contentShare.shareInstanceId;
3306
3342
  _triggerProxy.default.trigger(_this14, {
@@ -3314,20 +3350,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3314
3350
  resourceType: contentShare.resourceType
3315
3351
  });
3316
3352
  };
3317
- _context8.prev = 26;
3353
+ _context8.prev = 27;
3318
3354
  if (!((_this14$mediaProperti = _this14.mediaProperties.mediaDirection) !== null && _this14$mediaProperti !== void 0 && _this14$mediaProperti.sendShare && oldShareStatus === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE)) {
3319
- _context8.next = 30;
3355
+ _context8.next = 31;
3320
3356
  break;
3321
3357
  }
3322
- _context8.next = 30;
3358
+ _context8.next = 31;
3323
3359
  return _this14.unpublishStreams([_this14.mediaProperties.shareVideoStream, _this14.mediaProperties.shareAudioStream]);
3324
- case 30:
3325
- _context8.prev = 30;
3360
+ case 31:
3361
+ _context8.prev = 31;
3326
3362
  sendStartedSharingRemote();
3327
- return _context8.finish(30);
3328
- case 33:
3329
- return _context8.abrupt("break", 42);
3363
+ return _context8.finish(31);
3330
3364
  case 34:
3365
+ return _context8.abrupt("break", 43);
3366
+ case 35:
3331
3367
  _triggerProxy.default.trigger(_this14, {
3332
3368
  file: 'meeting/index',
3333
3369
  function: 'share'
@@ -3343,8 +3379,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3343
3379
  meetingId: _this14.id
3344
3380
  }
3345
3381
  });
3346
- return _context8.abrupt("break", 42);
3347
- case 37:
3382
+ return _context8.abrupt("break", 43);
3383
+ case 38:
3348
3384
  _triggerProxy.default.trigger(_this14, {
3349
3385
  file: 'meeting/index',
3350
3386
  function: 'startWhiteboardShare'
@@ -3362,16 +3398,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3362
3398
  meetingId: _this14.id
3363
3399
  }
3364
3400
  });
3365
- return _context8.abrupt("break", 42);
3366
- case 40:
3367
- return _context8.abrupt("break", 42);
3401
+ return _context8.abrupt("break", 43);
3368
3402
  case 41:
3369
- return _context8.abrupt("break", 42);
3403
+ return _context8.abrupt("break", 43);
3370
3404
  case 42:
3405
+ return _context8.abrupt("break", 43);
3406
+ case 43:
3371
3407
  _this14.members.locusMediaSharesUpdate(payload);
3372
- _context8.next = 46;
3408
+ _context8.next = 47;
3373
3409
  break;
3374
- case 45:
3410
+ case 46:
3375
3411
  if (newShareStatus === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE) {
3376
3412
  // if we got here, then some remote participant has stolen
3377
3413
  // the presentation from another remote participant
@@ -3409,11 +3445,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3409
3445
  });
3410
3446
  _this14.members.locusMediaSharesUpdate(payload);
3411
3447
  }
3412
- case 46:
3448
+ case 47:
3413
3449
  case "end":
3414
3450
  return _context8.stop();
3415
3451
  }
3416
- }, _callee8, null, [[26,, 30, 33]]);
3452
+ }, _callee8, null, [[27,, 31, 34]]);
3417
3453
  }));
3418
3454
  return function (_x8) {
3419
3455
  return _ref23.apply(this, arguments);
@@ -4223,6 +4259,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4223
4259
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_CHAT],
4224
4260
  policies: this.selfUserPolicies
4225
4261
  }),
4262
+ canPollingAndQA: _util5.default.hasPolicies({
4263
+ requiredPolicies: [_constants.SELF_POLICY.SUPPORT_POLLING_AND_QA],
4264
+ policies: this.selfUserPolicies
4265
+ }),
4226
4266
  canShareApplication: _util5.default.hasHints({
4227
4267
  requiredHints: [_constants.DISPLAY_HINTS.SHARE_APPLICATION],
4228
4268
  displayHints: this.userDisplayHints
@@ -6110,7 +6150,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6110
6150
  case 0:
6111
6151
  this.rtcMetrics = this.isMultistream ?
6112
6152
  // @ts-ignore
6113
- new _rtcMetrics.default(this.webex, this.id, this.correlationId) : undefined;
6153
+ new _internalPluginMetrics.RtcMetrics(this.webex, {
6154
+ meetingId: this.id
6155
+ }, this.correlationId) : undefined;
6114
6156
  mc = _media.default.createMediaConnection(this.isMultistream, this.getMediaConnectionDebugId(), this.id, {
6115
6157
  rtcMetrics: this.rtcMetrics,
6116
6158
  mediaProperties: this.mediaProperties,
@@ -6120,7 +6162,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6120
6162
  // @ts-ignore - config coming from registerPlugin
6121
6163
  enableExtmap: this.config.enableExtmap,
6122
6164
  turnServerInfo: turnServerInfo,
6123
- bundlePolicy: bundlePolicy
6165
+ bundlePolicy: bundlePolicy,
6166
+ // @ts-ignore - config coming from registerPlugin
6167
+ iceCandidatesTimeout: this.config.iceCandidatesGatheringTimeout
6124
6168
  });
6125
6169
  this.mediaProperties.setMediaPeerConnection(mc);
6126
6170
  this.setupMediaConnectionListeners();
@@ -8368,61 +8412,62 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8368
8412
  return _regenerator.default.wrap(function _callee37$(_context37) {
8369
8413
  while (1) switch (_context37.prev = _context37.next) {
8370
8414
  case 0:
8415
+ _loggerProxy.default.logger.info("Meeting:index#publishStreams --> called with: ".concat((0, _stringify.default)(streams)));
8371
8416
  this.checkMediaConnection();
8372
8417
  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))) {
8373
- _context37.next = 3;
8418
+ _context37.next = 4;
8374
8419
  break;
8375
8420
  }
8376
8421
  return _context37.abrupt("return");
8377
- case 3:
8422
+ case 4:
8378
8423
  if (!((streams === null || streams === void 0 ? void 0 : (_streams$microphone = streams.microphone) === null || _streams$microphone === void 0 ? void 0 : _streams$microphone.readyState) === 'ended' || (streams === null || streams === void 0 ? void 0 : (_streams$camera = streams.camera) === null || _streams$camera === void 0 ? void 0 : _streams$camera.readyState) === 'ended' || (streams === null || streams === void 0 ? void 0 : (_streams$screenShare3 = streams.screenShare) === null || _streams$screenShare3 === void 0 ? void 0 : (_streams$screenShare4 = _streams$screenShare3.audio) === null || _streams$screenShare4 === void 0 ? void 0 : _streams$screenShare4.readyState) === 'ended' || (streams === null || streams === void 0 ? void 0 : (_streams$screenShare5 = streams.screenShare) === null || _streams$screenShare5 === void 0 ? void 0 : (_streams$screenShare6 = _streams$screenShare5.video) === null || _streams$screenShare6 === void 0 ? void 0 : _streams$screenShare6.readyState) === 'ended')) {
8379
- _context37.next = 5;
8424
+ _context37.next = 6;
8380
8425
  break;
8381
8426
  }
8382
8427
  throw new Error("Attempted to publish stream with ended readyState, correlationId=".concat(this.correlationId));
8383
- case 5:
8428
+ case 6:
8384
8429
  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
8385
8430
  if (!(this.isMultistream && (_streams$screenShare7 = streams.screenShare) !== null && _streams$screenShare7 !== void 0 && _streams$screenShare7.audio)) {
8386
- _context37.next = 10;
8431
+ _context37.next = 11;
8387
8432
  break;
8388
8433
  }
8389
- _context37.next = 9;
8434
+ _context37.next = 10;
8390
8435
  return this.setLocalShareAudioStream(streams.screenShare.audio);
8391
- case 9:
8392
- floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
8393
8436
  case 10:
8437
+ floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
8438
+ case 11:
8394
8439
  if (!((_streams$screenShare8 = streams.screenShare) !== null && _streams$screenShare8 !== void 0 && _streams$screenShare8.video)) {
8395
- _context37.next = 14;
8440
+ _context37.next = 15;
8396
8441
  break;
8397
8442
  }
8398
- _context37.next = 13;
8443
+ _context37.next = 14;
8399
8444
  return this.setLocalShareVideoStream((_streams$screenShare9 = streams.screenShare) === null || _streams$screenShare9 === void 0 ? void 0 : _streams$screenShare9.video);
8400
- case 13:
8401
- floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
8402
8445
  case 14:
8446
+ floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
8447
+ case 15:
8403
8448
  if (!streams.microphone) {
8404
- _context37.next = 17;
8449
+ _context37.next = 18;
8405
8450
  break;
8406
8451
  }
8407
- _context37.next = 17;
8452
+ _context37.next = 18;
8408
8453
  return this.setLocalAudioStream(streams.microphone);
8409
- case 17:
8454
+ case 18:
8410
8455
  if (!streams.camera) {
8411
- _context37.next = 20;
8456
+ _context37.next = 21;
8412
8457
  break;
8413
8458
  }
8414
- _context37.next = 20;
8459
+ _context37.next = 21;
8415
8460
  return this.setLocalVideoStream(streams.camera);
8416
- case 20:
8461
+ case 21:
8417
8462
  if (this.isMultistream) {
8418
- _context37.next = 23;
8463
+ _context37.next = 24;
8419
8464
  break;
8420
8465
  }
8421
- _context37.next = 23;
8466
+ _context37.next = 24;
8422
8467
  return this.updateTranscodedMediaConnection();
8423
- case 23:
8468
+ case 24:
8424
8469
  if (!floorRequestNeeded) {
8425
- _context37.next = 29;
8470
+ _context37.next = 30;
8426
8471
  break;
8427
8472
  }
8428
8473
  this.localShareInstanceId = _uuid.default.v4();
@@ -8446,9 +8491,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8446
8491
  // we're sending the http request to Locus to request the screen share floor
8447
8492
  // only after the SDP update, because that's how it's always been done for transcoded meetings
8448
8493
  // and also if sharing from the start, we need confluence to have been created
8449
- _context37.next = 29;
8494
+ _context37.next = 30;
8450
8495
  return this.enqueueScreenShareFloorRequest();
8451
- case 29:
8496
+ case 30:
8452
8497
  case "end":
8453
8498
  return _context37.stop();
8454
8499
  }
@@ -8474,6 +8519,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8474
8519
  return _regenerator.default.wrap(function _callee38$(_context38) {
8475
8520
  while (1) switch (_context38.prev = _context38.next) {
8476
8521
  case 0:
8522
+ _loggerProxy.default.logger.info("Meeting:index#unpublishStreams --> called with: ".concat((0, _stringify.default)(streams)));
8477
8523
  this.checkMediaConnection();
8478
8524
  promises = [];
8479
8525
  _iterator = _createForOfIteratorHelper(streams.filter(function (t) {
@@ -8503,9 +8549,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8503
8549
  if (!this.isMultistream) {
8504
8550
  promises.push(this.updateTranscodedMediaConnection());
8505
8551
  }
8506
- _context38.next = 7;
8552
+ _context38.next = 8;
8507
8553
  return _promise.default.all(promises);
8508
- case 7:
8554
+ case 8:
8509
8555
  // we're allowing for the SDK to support just audio share as well
8510
8556
  // so a share could be active with only video, only audio, or both
8511
8557
  // we're only releasing the floor if both streams have ended
@@ -8522,7 +8568,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8522
8568
  // nothing to do here, error is logged already inside releaseScreenShareFloor()
8523
8569
  }
8524
8570
  }
8525
- case 8:
8571
+ case 9:
8526
8572
  case "end":
8527
8573
  return _context38.stop();
8528
8574
  }