@webex/plugin-meetings 3.5.0 → 3.6.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.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/common/errors/webinar-registration-error.js +50 -0
- package/dist/common/errors/webinar-registration-error.js.map +1 -0
- package/dist/config.js +4 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/parser.js +5 -1
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/media/index.js +3 -1
- package/dist/media/index.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +3 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +185 -103
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +5 -2
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/util.js +8 -10
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +68 -17
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meetings/index.js +102 -27
- package/dist/meetings/index.js.map +1 -1
- package/dist/metrics/constants.js +2 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/remoteMedia.js +4 -0
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/roap/request.js +1 -1
- package/dist/roap/request.js.map +1 -1
- package/dist/types/common/errors/webinar-registration-error.d.ts +14 -0
- package/dist/types/config.d.ts +2 -0
- package/dist/types/constants.d.ts +8 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/meeting/in-meeting-actions.d.ts +2 -0
- package/dist/types/meeting/index.d.ts +11 -0
- package/dist/types/meeting/muteState.d.ts +2 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +23 -0
- package/dist/types/meetings/index.d.ts +43 -2
- package/dist/types/metrics/constants.d.ts +1 -0
- package/dist/types/multistream/remoteMedia.d.ts +1 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +22 -22
- package/src/common/errors/webinar-registration-error.ts +27 -0
- package/src/config.ts +3 -0
- package/src/constants.ts +7 -0
- package/src/index.ts +2 -0
- package/src/locus-info/parser.ts +8 -1
- package/src/media/index.ts +4 -1
- package/src/meeting/in-meeting-actions.ts +3 -0
- package/src/meeting/index.ts +82 -13
- package/src/meeting/muteState.ts +6 -2
- package/src/meeting/util.ts +27 -31
- package/src/meeting-info/meeting-info-v2.ts +51 -0
- package/src/meetings/index.ts +129 -38
- package/src/metrics/constants.ts +1 -0
- package/src/multistream/remoteMedia.ts +5 -0
- package/src/roap/request.ts +3 -1
- package/test/unit/spec/locus-info/index.js +29 -0
- package/test/unit/spec/media/index.ts +4 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +2 -0
- package/test/unit/spec/meeting/index.js +118 -18
- package/test/unit/spec/meeting/muteState.js +8 -4
- package/test/unit/spec/meeting/utils.js +50 -85
- package/test/unit/spec/meeting-info/meetinginfov2.js +37 -0
- package/test/unit/spec/meetings/index.js +128 -13
- package/test/unit/spec/multistream/remoteMedia.ts +16 -2
- package/dist/networkQualityMonitor/index.js +0 -227
- package/dist/networkQualityMonitor/index.js.map +0 -1
- package/dist/rtcMetrics/constants.js +0 -11
- package/dist/rtcMetrics/constants.js.map +0 -1
- package/dist/rtcMetrics/index.js +0 -197
- package/dist/rtcMetrics/index.js.map +0 -1
- package/dist/types/networkQualityMonitor/index.d.ts +0 -70
- package/dist/types/rtcMetrics/constants.d.ts +0 -4
- package/dist/types/rtcMetrics/index.d.ts +0 -71
- package/src/rtcMetrics/constants.ts +0 -3
- package/src/rtcMetrics/index.ts +0 -186
- package/test/unit/spec/rtcMetrics/index.ts +0 -154
package/dist/meeting/index.js
CHANGED
|
@@ -86,7 +86,7 @@ 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
|
|
89
|
+
var _webinarRegistrationError = _interopRequireDefault(require("../common/errors/webinar-registration-error"));
|
|
90
90
|
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
91
|
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
92
|
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 +381,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
381
381
|
* @memberof Meeting
|
|
382
382
|
*/
|
|
383
383
|
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;
|
|
384
|
+
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
385
|
var _this;
|
|
386
386
|
(0, _classCallCheck2.default)(this, Meeting);
|
|
387
387
|
_this = _super.call(this, {}, _options);
|
|
@@ -1219,31 +1219,35 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1219
1219
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
1220
1220
|
while (1) switch (_context2.prev = _context2.next) {
|
|
1221
1221
|
case 0:
|
|
1222
|
+
_loggerProxy.default.logger.info("Meeting:index#handleShareAudioStreamEnded --> audio share stream ended");
|
|
1223
|
+
// current share audio stream has ended, but there might be an active
|
|
1224
|
+
// share video stream. we only leave from wireless share if share has
|
|
1225
|
+
// completely ended, which means no share audio or video streams active
|
|
1222
1226
|
if (!(_this.wirelessShare && !_this.mediaProperties.shareVideoStream)) {
|
|
1223
|
-
_context2.next =
|
|
1227
|
+
_context2.next = 5;
|
|
1224
1228
|
break;
|
|
1225
1229
|
}
|
|
1226
1230
|
_this.leave({
|
|
1227
1231
|
reason: _constants.MEETING_REMOVED_REASON.USER_ENDED_SHARE_STREAMS
|
|
1228
1232
|
});
|
|
1229
|
-
_context2.next =
|
|
1233
|
+
_context2.next = 13;
|
|
1230
1234
|
break;
|
|
1231
|
-
case
|
|
1232
|
-
_context2.prev =
|
|
1233
|
-
_context2.next =
|
|
1235
|
+
case 5:
|
|
1236
|
+
_context2.prev = 5;
|
|
1237
|
+
_context2.next = 8;
|
|
1234
1238
|
return _this.unpublishStreams([_this.mediaProperties.shareAudioStream]);
|
|
1235
|
-
case
|
|
1236
|
-
_context2.next =
|
|
1239
|
+
case 8:
|
|
1240
|
+
_context2.next = 13;
|
|
1237
1241
|
break;
|
|
1238
|
-
case
|
|
1239
|
-
_context2.prev =
|
|
1240
|
-
_context2.t0 = _context2["catch"](
|
|
1242
|
+
case 10:
|
|
1243
|
+
_context2.prev = 10;
|
|
1244
|
+
_context2.t0 = _context2["catch"](5);
|
|
1241
1245
|
_loggerProxy.default.logger.log('Meeting:index#handleShareAudioStreamEnded --> Error stopping share: ', _context2.t0);
|
|
1242
|
-
case
|
|
1246
|
+
case 13:
|
|
1243
1247
|
case "end":
|
|
1244
1248
|
return _context2.stop();
|
|
1245
1249
|
}
|
|
1246
|
-
}, _callee2, null, [[
|
|
1250
|
+
}, _callee2, null, [[5, 10]]);
|
|
1247
1251
|
})));
|
|
1248
1252
|
/**
|
|
1249
1253
|
* Functionality for when a share video is muted or unmuted.
|
|
@@ -1271,33 +1275,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1271
1275
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
1272
1276
|
while (1) switch (_context3.prev = _context3.next) {
|
|
1273
1277
|
case 0:
|
|
1278
|
+
_loggerProxy.default.logger.info("Meeting:index#handleShareVideoStreamEnded --> video share stream ended");
|
|
1279
|
+
// current share video stream has ended, but there might be an active
|
|
1280
|
+
// share audio stream. we only leave from wireless share if share has
|
|
1281
|
+
// completely ended, which means no share audio or video streams active
|
|
1274
1282
|
if (!(_this.wirelessShare && !_this.mediaProperties.shareAudioStream)) {
|
|
1275
|
-
_context3.next =
|
|
1283
|
+
_context3.next = 5;
|
|
1276
1284
|
break;
|
|
1277
1285
|
}
|
|
1278
1286
|
_this.leave({
|
|
1279
1287
|
reason: _constants.MEETING_REMOVED_REASON.USER_ENDED_SHARE_STREAMS
|
|
1280
1288
|
});
|
|
1281
|
-
_context3.next =
|
|
1289
|
+
_context3.next = 13;
|
|
1282
1290
|
break;
|
|
1283
|
-
case
|
|
1284
|
-
_context3.prev =
|
|
1285
|
-
_context3.next =
|
|
1291
|
+
case 5:
|
|
1292
|
+
_context3.prev = 5;
|
|
1293
|
+
_context3.next = 8;
|
|
1286
1294
|
return _this.unpublishStreams([_this.mediaProperties.shareVideoStream]);
|
|
1287
|
-
case
|
|
1288
|
-
_context3.next =
|
|
1295
|
+
case 8:
|
|
1296
|
+
_context3.next = 13;
|
|
1289
1297
|
break;
|
|
1290
|
-
case
|
|
1291
|
-
_context3.prev =
|
|
1292
|
-
_context3.t0 = _context3["catch"](
|
|
1298
|
+
case 10:
|
|
1299
|
+
_context3.prev = 10;
|
|
1300
|
+
_context3.t0 = _context3["catch"](5);
|
|
1293
1301
|
_loggerProxy.default.logger.log('Meeting:index#handleShareVideoStreamEnded --> Error stopping share: ', _context3.t0);
|
|
1294
|
-
case 12:
|
|
1295
|
-
_this.triggerStoppedSharing();
|
|
1296
1302
|
case 13:
|
|
1303
|
+
_this.triggerStoppedSharing();
|
|
1304
|
+
case 14:
|
|
1297
1305
|
case "end":
|
|
1298
1306
|
return _context3.stop();
|
|
1299
1307
|
}
|
|
1300
|
-
}, _callee3, null, [[
|
|
1308
|
+
}, _callee3, null, [[5, 10]]);
|
|
1301
1309
|
})));
|
|
1302
1310
|
/**
|
|
1303
1311
|
* Emits meeting:stoppedSharingLocal
|
|
@@ -1410,10 +1418,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1410
1418
|
*/
|
|
1411
1419
|
_this.callStateForMetrics = attrs.callStateForMetrics || {};
|
|
1412
1420
|
var _correlationId = attrs.correlationId || ((_attrs$callStateForMe = attrs.callStateForMetrics) === null || _attrs$callStateForMe === void 0 ? void 0 : _attrs$callStateForMe.correlationId);
|
|
1421
|
+
var sessionCorrelationId = attrs.sessionCorrelationId || ((_attrs$callStateForMe2 = attrs.callStateForMetrics) === null || _attrs$callStateForMe2 === void 0 ? void 0 : _attrs$callStateForMe2.sessionCorrelationId);
|
|
1422
|
+
if (sessionCorrelationId) {
|
|
1423
|
+
_loggerProxy.default.logger.log("Meetings:index#constructor --> Initializing the meeting object with session correlation id from app ".concat(_correlationId));
|
|
1424
|
+
_this.callStateForMetrics.sessionCorrelationId = sessionCorrelationId;
|
|
1425
|
+
} else {
|
|
1426
|
+
_loggerProxy.default.logger.log("Meetings:index#constructor --> No session correlation id supplied. None will be generated and this field will remain blank");
|
|
1427
|
+
// TODO: supply a session from the meetings instance
|
|
1428
|
+
_this.callStateForMetrics.sessionCorrelationId = '';
|
|
1429
|
+
}
|
|
1413
1430
|
if (_correlationId) {
|
|
1414
1431
|
_loggerProxy.default.logger.log("Meetings:index#constructor --> Initializing the meeting object with correlation id from app ".concat(_correlationId));
|
|
1415
1432
|
_this.callStateForMetrics.correlationId = _correlationId;
|
|
1416
1433
|
} else {
|
|
1434
|
+
_loggerProxy.default.logger.log("Meetings:index#constructor --> Initializing the meeting object with generated correlation id from sdk ".concat(_this.id));
|
|
1417
1435
|
_this.callStateForMetrics.correlationId = _this.id;
|
|
1418
1436
|
}
|
|
1419
1437
|
/**
|
|
@@ -2236,6 +2254,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2236
2254
|
this.callStateForMetrics.correlationId = correlationId;
|
|
2237
2255
|
}
|
|
2238
2256
|
|
|
2257
|
+
/**
|
|
2258
|
+
* Getter - Returns callStateForMetrics.sessionCorrelationId
|
|
2259
|
+
* @returns {string}
|
|
2260
|
+
*/
|
|
2261
|
+
}, {
|
|
2262
|
+
key: "sessionCorrelationId",
|
|
2263
|
+
get: function get() {
|
|
2264
|
+
return this.callStateForMetrics.sessionCorrelationId;
|
|
2265
|
+
}
|
|
2266
|
+
|
|
2267
|
+
/**
|
|
2268
|
+
* Setter - sets callStateForMetrics.sessionCorrelationId
|
|
2269
|
+
* @param {string} sessionCorrelationId
|
|
2270
|
+
*/,
|
|
2271
|
+
set: function set(sessionCorrelationId) {
|
|
2272
|
+
this.callStateForMetrics.sessionCorrelationId = sessionCorrelationId;
|
|
2273
|
+
}
|
|
2274
|
+
|
|
2239
2275
|
/**
|
|
2240
2276
|
* Getter - Returns isoLocalClientMeetingJoinTime
|
|
2241
2277
|
* This will be set once on meeting join, and not updated again
|
|
@@ -2386,8 +2422,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2386
2422
|
}
|
|
2387
2423
|
throw new _permission.default();
|
|
2388
2424
|
case 21:
|
|
2425
|
+
if (!(_context5.t0 instanceof _meetingInfoV.MeetingInfoV2WebinarRegistrationError)) {
|
|
2426
|
+
_context5.next = 28;
|
|
2427
|
+
break;
|
|
2428
|
+
}
|
|
2429
|
+
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.WEBINAR_REGISTRATION;
|
|
2430
|
+
this.meetingInfoFailureCode = _context5.t0.wbxAppApiCode;
|
|
2431
|
+
if (_context5.t0.meetingInfo) {
|
|
2432
|
+
this.meetingInfo = _context5.t0.meetingInfo;
|
|
2433
|
+
}
|
|
2434
|
+
throw new _webinarRegistrationError.default();
|
|
2435
|
+
case 28:
|
|
2389
2436
|
if (!(_context5.t0 instanceof _meetingInfoV.MeetingInfoV2PasswordError)) {
|
|
2390
|
-
_context5.next =
|
|
2437
|
+
_context5.next = 40;
|
|
2391
2438
|
break;
|
|
2392
2439
|
}
|
|
2393
2440
|
_loggerProxy.default.logger.info( // @ts-ignore
|
|
@@ -2402,16 +2449,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2402
2449
|
this.passwordStatus = _constants.PASSWORD_STATUS.REQUIRED;
|
|
2403
2450
|
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.WRONG_PASSWORD;
|
|
2404
2451
|
if (!this.requiredCaptcha) {
|
|
2405
|
-
_context5.next =
|
|
2452
|
+
_context5.next = 37;
|
|
2406
2453
|
break;
|
|
2407
2454
|
}
|
|
2408
|
-
_context5.next =
|
|
2455
|
+
_context5.next = 37;
|
|
2409
2456
|
return this.refreshCaptcha();
|
|
2410
|
-
case
|
|
2457
|
+
case 37:
|
|
2411
2458
|
throw new _passwordError.default();
|
|
2412
|
-
case
|
|
2459
|
+
case 40:
|
|
2413
2460
|
if (!(_context5.t0 instanceof _meetingInfoV.MeetingInfoV2CaptchaError)) {
|
|
2414
|
-
_context5.next =
|
|
2461
|
+
_context5.next = 49;
|
|
2415
2462
|
break;
|
|
2416
2463
|
}
|
|
2417
2464
|
_loggerProxy.default.logger.info( // @ts-ignore
|
|
@@ -2423,10 +2470,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2423
2470
|
}
|
|
2424
2471
|
this.requiredCaptcha = _context5.t0.captchaInfo;
|
|
2425
2472
|
throw new _captchaError.default();
|
|
2426
|
-
case
|
|
2473
|
+
case 49:
|
|
2427
2474
|
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.OTHER;
|
|
2428
2475
|
throw _context5.t0;
|
|
2429
|
-
case
|
|
2476
|
+
case 51:
|
|
2430
2477
|
case "end":
|
|
2431
2478
|
return _context5.stop();
|
|
2432
2479
|
}
|
|
@@ -3261,8 +3308,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3261
3308
|
else if ((previousContentShare && contentShare.disposition === _constants.FLOOR_ACTION.RELEASED || contentShare.disposition === null) && (previousWhiteboardShare && whiteboardShare.disposition === _constants.FLOOR_ACTION.RELEASED || whiteboardShare.disposition === null)) {
|
|
3262
3309
|
newShareStatus = _constants.SHARE_STATUS.NO_SHARE;
|
|
3263
3310
|
}
|
|
3311
|
+
_loggerProxy.default.logger.info("Meeting:index#setUpLocusInfoMediaInactiveListener --> this.shareStatus=".concat(_this14.shareStatus, " newShareStatus=").concat(newShareStatus));
|
|
3264
3312
|
if (!(newShareStatus !== _this14.shareStatus)) {
|
|
3265
|
-
_context8.next =
|
|
3313
|
+
_context8.next = 46;
|
|
3266
3314
|
break;
|
|
3267
3315
|
}
|
|
3268
3316
|
oldShareStatus = _this14.shareStatus; // update our state before we send out any notifications
|
|
@@ -3270,37 +3318,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3270
3318
|
|
|
3271
3319
|
// send out "stop" notifications for the old state
|
|
3272
3320
|
_context8.t0 = oldShareStatus;
|
|
3273
|
-
_context8.next = _context8.t0 === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE ?
|
|
3321
|
+
_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
3322
|
break;
|
|
3275
|
-
case
|
|
3323
|
+
case 15:
|
|
3276
3324
|
_triggerProxy.default.trigger(_this14, {
|
|
3277
3325
|
file: 'meetings/index',
|
|
3278
3326
|
function: 'remoteShare'
|
|
3279
3327
|
}, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_REMOTE);
|
|
3280
|
-
return _context8.abrupt("break",
|
|
3281
|
-
case
|
|
3328
|
+
return _context8.abrupt("break", 23);
|
|
3329
|
+
case 17:
|
|
3282
3330
|
_triggerProxy.default.trigger(_this14, {
|
|
3283
3331
|
file: 'meeting/index',
|
|
3284
3332
|
function: 'localShare'
|
|
3285
3333
|
}, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_LOCAL, {
|
|
3286
3334
|
reason: _constants.SHARE_STOPPED_REASON.SELF_STOPPED
|
|
3287
3335
|
});
|
|
3288
|
-
return _context8.abrupt("break",
|
|
3289
|
-
case
|
|
3336
|
+
return _context8.abrupt("break", 23);
|
|
3337
|
+
case 19:
|
|
3290
3338
|
_triggerProxy.default.trigger(_this14, {
|
|
3291
3339
|
file: 'meeting/index',
|
|
3292
3340
|
function: 'stopWhiteboardShare'
|
|
3293
3341
|
}, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_WHITEBOARD);
|
|
3294
|
-
return _context8.abrupt("break",
|
|
3295
|
-
case 20:
|
|
3296
|
-
return _context8.abrupt("break", 22);
|
|
3342
|
+
return _context8.abrupt("break", 23);
|
|
3297
3343
|
case 21:
|
|
3298
|
-
return _context8.abrupt("break",
|
|
3344
|
+
return _context8.abrupt("break", 23);
|
|
3299
3345
|
case 22:
|
|
3346
|
+
return _context8.abrupt("break", 23);
|
|
3347
|
+
case 23:
|
|
3300
3348
|
_context8.t1 = newShareStatus;
|
|
3301
|
-
_context8.next = _context8.t1 === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE ?
|
|
3349
|
+
_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
3350
|
break;
|
|
3303
|
-
case
|
|
3351
|
+
case 26:
|
|
3304
3352
|
sendStartedSharingRemote = function sendStartedSharingRemote() {
|
|
3305
3353
|
_this14.remoteShareInstanceId = contentShare.shareInstanceId;
|
|
3306
3354
|
_triggerProxy.default.trigger(_this14, {
|
|
@@ -3314,20 +3362,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3314
3362
|
resourceType: contentShare.resourceType
|
|
3315
3363
|
});
|
|
3316
3364
|
};
|
|
3317
|
-
_context8.prev =
|
|
3365
|
+
_context8.prev = 27;
|
|
3318
3366
|
if (!((_this14$mediaProperti = _this14.mediaProperties.mediaDirection) !== null && _this14$mediaProperti !== void 0 && _this14$mediaProperti.sendShare && oldShareStatus === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE)) {
|
|
3319
|
-
_context8.next =
|
|
3367
|
+
_context8.next = 31;
|
|
3320
3368
|
break;
|
|
3321
3369
|
}
|
|
3322
|
-
_context8.next =
|
|
3370
|
+
_context8.next = 31;
|
|
3323
3371
|
return _this14.unpublishStreams([_this14.mediaProperties.shareVideoStream, _this14.mediaProperties.shareAudioStream]);
|
|
3324
|
-
case
|
|
3325
|
-
_context8.prev =
|
|
3372
|
+
case 31:
|
|
3373
|
+
_context8.prev = 31;
|
|
3326
3374
|
sendStartedSharingRemote();
|
|
3327
|
-
return _context8.finish(
|
|
3328
|
-
case 33:
|
|
3329
|
-
return _context8.abrupt("break", 42);
|
|
3375
|
+
return _context8.finish(31);
|
|
3330
3376
|
case 34:
|
|
3377
|
+
return _context8.abrupt("break", 43);
|
|
3378
|
+
case 35:
|
|
3331
3379
|
_triggerProxy.default.trigger(_this14, {
|
|
3332
3380
|
file: 'meeting/index',
|
|
3333
3381
|
function: 'share'
|
|
@@ -3343,8 +3391,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3343
3391
|
meetingId: _this14.id
|
|
3344
3392
|
}
|
|
3345
3393
|
});
|
|
3346
|
-
return _context8.abrupt("break",
|
|
3347
|
-
case
|
|
3394
|
+
return _context8.abrupt("break", 43);
|
|
3395
|
+
case 38:
|
|
3348
3396
|
_triggerProxy.default.trigger(_this14, {
|
|
3349
3397
|
file: 'meeting/index',
|
|
3350
3398
|
function: 'startWhiteboardShare'
|
|
@@ -3362,16 +3410,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3362
3410
|
meetingId: _this14.id
|
|
3363
3411
|
}
|
|
3364
3412
|
});
|
|
3365
|
-
return _context8.abrupt("break",
|
|
3366
|
-
case 40:
|
|
3367
|
-
return _context8.abrupt("break", 42);
|
|
3413
|
+
return _context8.abrupt("break", 43);
|
|
3368
3414
|
case 41:
|
|
3369
|
-
return _context8.abrupt("break",
|
|
3415
|
+
return _context8.abrupt("break", 43);
|
|
3370
3416
|
case 42:
|
|
3417
|
+
return _context8.abrupt("break", 43);
|
|
3418
|
+
case 43:
|
|
3371
3419
|
_this14.members.locusMediaSharesUpdate(payload);
|
|
3372
|
-
_context8.next =
|
|
3420
|
+
_context8.next = 47;
|
|
3373
3421
|
break;
|
|
3374
|
-
case
|
|
3422
|
+
case 46:
|
|
3375
3423
|
if (newShareStatus === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE) {
|
|
3376
3424
|
// if we got here, then some remote participant has stolen
|
|
3377
3425
|
// the presentation from another remote participant
|
|
@@ -3409,11 +3457,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3409
3457
|
});
|
|
3410
3458
|
_this14.members.locusMediaSharesUpdate(payload);
|
|
3411
3459
|
}
|
|
3412
|
-
case
|
|
3460
|
+
case 47:
|
|
3413
3461
|
case "end":
|
|
3414
3462
|
return _context8.stop();
|
|
3415
3463
|
}
|
|
3416
|
-
}, _callee8, null, [[
|
|
3464
|
+
}, _callee8, null, [[27,, 31, 34]]);
|
|
3417
3465
|
}));
|
|
3418
3466
|
return function (_x8) {
|
|
3419
3467
|
return _ref23.apply(this, arguments);
|
|
@@ -3570,7 +3618,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3570
3618
|
var _this19 = this;
|
|
3571
3619
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.LOCAL_UNMUTE_REQUIRED, function (payload) {
|
|
3572
3620
|
if (_this19.audio) {
|
|
3573
|
-
_this19.audio.handleServerLocalUnmuteRequired(_this19);
|
|
3621
|
+
_this19.audio.handleServerLocalUnmuteRequired(_this19, payload.unmuteAllowed);
|
|
3574
3622
|
_triggerProxy.default.trigger(_this19, {
|
|
3575
3623
|
file: 'meeting/index',
|
|
3576
3624
|
function: 'setUpLocusInfoSelfListener'
|
|
@@ -4223,6 +4271,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4223
4271
|
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_CHAT],
|
|
4224
4272
|
policies: this.selfUserPolicies
|
|
4225
4273
|
}),
|
|
4274
|
+
canPollingAndQA: _util5.default.hasPolicies({
|
|
4275
|
+
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_POLLING_AND_QA],
|
|
4276
|
+
policies: this.selfUserPolicies
|
|
4277
|
+
}),
|
|
4226
4278
|
canShareApplication: _util5.default.hasHints({
|
|
4227
4279
|
requiredHints: [_constants.DISPLAY_HINTS.SHARE_APPLICATION],
|
|
4228
4280
|
displayHints: this.userDisplayHints
|
|
@@ -6110,7 +6162,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6110
6162
|
case 0:
|
|
6111
6163
|
this.rtcMetrics = this.isMultistream ?
|
|
6112
6164
|
// @ts-ignore
|
|
6113
|
-
new
|
|
6165
|
+
new _internalPluginMetrics.RtcMetrics(this.webex, {
|
|
6166
|
+
meetingId: this.id
|
|
6167
|
+
}, this.correlationId) : undefined;
|
|
6114
6168
|
mc = _media.default.createMediaConnection(this.isMultistream, this.getMediaConnectionDebugId(), this.id, {
|
|
6115
6169
|
rtcMetrics: this.rtcMetrics,
|
|
6116
6170
|
mediaProperties: this.mediaProperties,
|
|
@@ -6120,7 +6174,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6120
6174
|
// @ts-ignore - config coming from registerPlugin
|
|
6121
6175
|
enableExtmap: this.config.enableExtmap,
|
|
6122
6176
|
turnServerInfo: turnServerInfo,
|
|
6123
|
-
bundlePolicy: bundlePolicy
|
|
6177
|
+
bundlePolicy: bundlePolicy,
|
|
6178
|
+
// @ts-ignore - config coming from registerPlugin
|
|
6179
|
+
iceCandidatesTimeout: this.config.iceCandidatesGatheringTimeout
|
|
6124
6180
|
});
|
|
6125
6181
|
this.mediaProperties.setMediaPeerConnection(mc);
|
|
6126
6182
|
this.setupMediaConnectionListeners();
|
|
@@ -8363,66 +8419,91 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8363
8419
|
key: "publishStreams",
|
|
8364
8420
|
value: (function () {
|
|
8365
8421
|
var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee37(streams) {
|
|
8366
|
-
var _streams$screenShare, _streams$screenShare2, _streams$
|
|
8367
|
-
var floorRequestNeeded, _streams$
|
|
8422
|
+
var _streams$screenShare, _streams$screenShare2, _streams$screenShare3, _streams$screenShare4, _streams$screenShare5, _streams$screenShare6;
|
|
8423
|
+
var streamChecks, _i, _streamChecks, _streamChecks$_i, stream, name, floorRequestNeeded, _streams$screenShare7;
|
|
8368
8424
|
return _regenerator.default.wrap(function _callee37$(_context37) {
|
|
8369
8425
|
while (1) switch (_context37.prev = _context37.next) {
|
|
8370
8426
|
case 0:
|
|
8427
|
+
_loggerProxy.default.logger.info("Meeting:index#publishStreams --> called with: ".concat((0, _stringify.default)(streams)));
|
|
8371
8428
|
this.checkMediaConnection();
|
|
8372
8429
|
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 =
|
|
8430
|
+
_context37.next = 4;
|
|
8374
8431
|
break;
|
|
8375
8432
|
}
|
|
8376
8433
|
return _context37.abrupt("return");
|
|
8377
|
-
case
|
|
8378
|
-
|
|
8379
|
-
|
|
8434
|
+
case 4:
|
|
8435
|
+
streamChecks = [{
|
|
8436
|
+
stream: streams === null || streams === void 0 ? void 0 : streams.microphone,
|
|
8437
|
+
name: 'microphone'
|
|
8438
|
+
}, {
|
|
8439
|
+
stream: streams === null || streams === void 0 ? void 0 : streams.camera,
|
|
8440
|
+
name: 'camera'
|
|
8441
|
+
}, {
|
|
8442
|
+
stream: streams === null || streams === void 0 ? void 0 : (_streams$screenShare3 = streams.screenShare) === null || _streams$screenShare3 === void 0 ? void 0 : _streams$screenShare3.audio,
|
|
8443
|
+
name: 'screenShare audio'
|
|
8444
|
+
}, {
|
|
8445
|
+
stream: streams === null || streams === void 0 ? void 0 : (_streams$screenShare4 = streams.screenShare) === null || _streams$screenShare4 === void 0 ? void 0 : _streams$screenShare4.video,
|
|
8446
|
+
name: 'screenShare video'
|
|
8447
|
+
}];
|
|
8448
|
+
_i = 0, _streamChecks = streamChecks;
|
|
8449
|
+
case 6:
|
|
8450
|
+
if (!(_i < _streamChecks.length)) {
|
|
8451
|
+
_context37.next = 13;
|
|
8380
8452
|
break;
|
|
8381
8453
|
}
|
|
8382
|
-
|
|
8383
|
-
|
|
8384
|
-
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
|
-
if (!(this.isMultistream && (_streams$screenShare7 = streams.screenShare) !== null && _streams$screenShare7 !== void 0 && _streams$screenShare7.audio)) {
|
|
8454
|
+
_streamChecks$_i = _streamChecks[_i], stream = _streamChecks$_i.stream, name = _streamChecks$_i.name;
|
|
8455
|
+
if (!((stream === null || stream === void 0 ? void 0 : stream.readyState) === 'ended')) {
|
|
8386
8456
|
_context37.next = 10;
|
|
8387
8457
|
break;
|
|
8388
8458
|
}
|
|
8389
|
-
|
|
8459
|
+
throw new Error("Attempted to publish ".concat(name, " stream with ended readyState, correlationId=").concat(this.correlationId));
|
|
8460
|
+
case 10:
|
|
8461
|
+
_i++;
|
|
8462
|
+
_context37.next = 6;
|
|
8463
|
+
break;
|
|
8464
|
+
case 13:
|
|
8465
|
+
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
|
|
8466
|
+
if (!(this.isMultistream && (_streams$screenShare5 = streams.screenShare) !== null && _streams$screenShare5 !== void 0 && _streams$screenShare5.audio)) {
|
|
8467
|
+
_context37.next = 18;
|
|
8468
|
+
break;
|
|
8469
|
+
}
|
|
8470
|
+
_context37.next = 17;
|
|
8390
8471
|
return this.setLocalShareAudioStream(streams.screenShare.audio);
|
|
8391
|
-
case
|
|
8472
|
+
case 17:
|
|
8392
8473
|
floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
|
|
8393
|
-
case
|
|
8394
|
-
if (!((_streams$
|
|
8395
|
-
_context37.next =
|
|
8474
|
+
case 18:
|
|
8475
|
+
if (!((_streams$screenShare6 = streams.screenShare) !== null && _streams$screenShare6 !== void 0 && _streams$screenShare6.video)) {
|
|
8476
|
+
_context37.next = 22;
|
|
8396
8477
|
break;
|
|
8397
8478
|
}
|
|
8398
|
-
_context37.next =
|
|
8399
|
-
return this.setLocalShareVideoStream((_streams$
|
|
8400
|
-
case
|
|
8479
|
+
_context37.next = 21;
|
|
8480
|
+
return this.setLocalShareVideoStream((_streams$screenShare7 = streams.screenShare) === null || _streams$screenShare7 === void 0 ? void 0 : _streams$screenShare7.video);
|
|
8481
|
+
case 21:
|
|
8401
8482
|
floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
|
|
8402
|
-
case
|
|
8483
|
+
case 22:
|
|
8403
8484
|
if (!streams.microphone) {
|
|
8404
|
-
_context37.next =
|
|
8485
|
+
_context37.next = 25;
|
|
8405
8486
|
break;
|
|
8406
8487
|
}
|
|
8407
|
-
_context37.next =
|
|
8488
|
+
_context37.next = 25;
|
|
8408
8489
|
return this.setLocalAudioStream(streams.microphone);
|
|
8409
|
-
case
|
|
8490
|
+
case 25:
|
|
8410
8491
|
if (!streams.camera) {
|
|
8411
|
-
_context37.next =
|
|
8492
|
+
_context37.next = 28;
|
|
8412
8493
|
break;
|
|
8413
8494
|
}
|
|
8414
|
-
_context37.next =
|
|
8495
|
+
_context37.next = 28;
|
|
8415
8496
|
return this.setLocalVideoStream(streams.camera);
|
|
8416
|
-
case
|
|
8497
|
+
case 28:
|
|
8417
8498
|
if (this.isMultistream) {
|
|
8418
|
-
_context37.next =
|
|
8499
|
+
_context37.next = 31;
|
|
8419
8500
|
break;
|
|
8420
8501
|
}
|
|
8421
|
-
_context37.next =
|
|
8502
|
+
_context37.next = 31;
|
|
8422
8503
|
return this.updateTranscodedMediaConnection();
|
|
8423
|
-
case
|
|
8504
|
+
case 31:
|
|
8424
8505
|
if (!floorRequestNeeded) {
|
|
8425
|
-
_context37.next =
|
|
8506
|
+
_context37.next = 37;
|
|
8426
8507
|
break;
|
|
8427
8508
|
}
|
|
8428
8509
|
this.localShareInstanceId = _uuid.default.v4();
|
|
@@ -8446,9 +8527,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8446
8527
|
// we're sending the http request to Locus to request the screen share floor
|
|
8447
8528
|
// only after the SDP update, because that's how it's always been done for transcoded meetings
|
|
8448
8529
|
// and also if sharing from the start, we need confluence to have been created
|
|
8449
|
-
_context37.next =
|
|
8530
|
+
_context37.next = 37;
|
|
8450
8531
|
return this.enqueueScreenShareFloorRequest();
|
|
8451
|
-
case
|
|
8532
|
+
case 37:
|
|
8452
8533
|
case "end":
|
|
8453
8534
|
return _context37.stop();
|
|
8454
8535
|
}
|
|
@@ -8474,6 +8555,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8474
8555
|
return _regenerator.default.wrap(function _callee38$(_context38) {
|
|
8475
8556
|
while (1) switch (_context38.prev = _context38.next) {
|
|
8476
8557
|
case 0:
|
|
8558
|
+
_loggerProxy.default.logger.info("Meeting:index#unpublishStreams --> called with: ".concat((0, _stringify.default)(streams)));
|
|
8477
8559
|
this.checkMediaConnection();
|
|
8478
8560
|
promises = [];
|
|
8479
8561
|
_iterator = _createForOfIteratorHelper(streams.filter(function (t) {
|
|
@@ -8503,9 +8585,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8503
8585
|
if (!this.isMultistream) {
|
|
8504
8586
|
promises.push(this.updateTranscodedMediaConnection());
|
|
8505
8587
|
}
|
|
8506
|
-
_context38.next =
|
|
8588
|
+
_context38.next = 8;
|
|
8507
8589
|
return _promise.default.all(promises);
|
|
8508
|
-
case
|
|
8590
|
+
case 8:
|
|
8509
8591
|
// we're allowing for the SDK to support just audio share as well
|
|
8510
8592
|
// so a share could be active with only video, only audio, or both
|
|
8511
8593
|
// we're only releasing the floor if both streams have ended
|
|
@@ -8522,7 +8604,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8522
8604
|
// nothing to do here, error is logged already inside releaseScreenShareFloor()
|
|
8523
8605
|
}
|
|
8524
8606
|
}
|
|
8525
|
-
case
|
|
8607
|
+
case 9:
|
|
8526
8608
|
case "end":
|
|
8527
8609
|
return _context38.stop();
|
|
8528
8610
|
}
|