@webex/plugin-meetings 3.7.0-next.3 → 3.7.0-next.30
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 → join-webinar-error.js} +12 -12
- package/dist/common/errors/join-webinar-error.js.map +1 -0
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +31 -6
- package/dist/constants.js.map +1 -1
- package/dist/index.js +8 -15
- 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/index.js +13 -2
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/selfUtils.js +30 -17
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +11 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +810 -779
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/request.js +30 -0
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +3 -8
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +29 -17
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meetings/index.js +6 -3
- package/dist/meetings/index.js.map +1 -1
- package/dist/member/index.js +9 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js.map +1 -1
- package/dist/member/util.js +39 -28
- package/dist/member/util.js.map +1 -1
- package/dist/members/util.js +4 -2
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +1 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/remoteMedia.js +30 -15
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +24 -0
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/reachability/clusterReachability.js +12 -11
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/recording-controller/enums.js +8 -4
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.js +18 -9
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +13 -9
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/types/common/errors/{webinar-registration-error.d.ts → join-webinar-error.d.ts} +2 -2
- package/dist/types/constants.d.ts +23 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/locus-info/index.d.ts +2 -1
- package/dist/types/meeting/in-meeting-actions.d.ts +10 -0
- package/dist/types/meeting/index.d.ts +9 -10
- package/dist/types/meeting/request.d.ts +12 -1
- package/dist/types/meeting/request.type.d.ts +6 -0
- package/dist/types/meeting/util.d.ts +1 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +4 -4
- package/dist/types/meetings/index.d.ts +3 -0
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/member/types.d.ts +7 -0
- package/dist/types/members/util.d.ts +2 -0
- package/dist/types/metrics/constants.d.ts +1 -1
- package/dist/types/multistream/sendSlotManager.d.ts +8 -1
- package/dist/types/recording-controller/enums.d.ts +5 -2
- package/dist/types/recording-controller/index.d.ts +1 -0
- package/dist/types/recording-controller/util.d.ts +2 -1
- package/dist/webinar/index.js +390 -7
- package/dist/webinar/index.js.map +1 -1
- package/package.json +23 -22
- package/src/common/errors/join-webinar-error.ts +24 -0
- package/src/config.ts +1 -1
- package/src/constants.ts +28 -3
- package/src/index.ts +2 -3
- package/src/locus-info/index.ts +17 -2
- package/src/locus-info/selfUtils.ts +19 -6
- package/src/meeting/in-meeting-actions.ts +21 -0
- package/src/meeting/index.ts +147 -54
- package/src/meeting/request.ts +26 -1
- package/src/meeting/request.type.ts +7 -0
- package/src/meeting/util.ts +3 -9
- package/src/meeting-info/meeting-info-v2.ts +23 -11
- package/src/meetings/index.ts +8 -2
- package/src/member/index.ts +9 -0
- package/src/member/types.ts +8 -0
- package/src/member/util.ts +34 -24
- package/src/members/util.ts +1 -0
- package/src/metrics/constants.ts +1 -1
- package/src/multistream/remoteMedia.ts +28 -15
- package/src/multistream/sendSlotManager.ts +31 -0
- package/src/reachability/clusterReachability.ts +4 -1
- package/src/recording-controller/enums.ts +5 -2
- package/src/recording-controller/index.ts +17 -4
- package/src/recording-controller/util.ts +20 -5
- package/src/webinar/index.ts +235 -9
- package/test/unit/spec/locus-info/index.js +222 -0
- package/test/unit/spec/locus-info/selfConstant.js +7 -0
- package/test/unit/spec/locus-info/selfUtils.js +91 -1
- package/test/unit/spec/meeting/in-meeting-actions.ts +13 -1
- package/test/unit/spec/meeting/index.js +318 -81
- package/test/unit/spec/meeting/utils.js +11 -19
- package/test/unit/spec/meeting-info/meetinginfov2.js +9 -4
- package/test/unit/spec/meetings/index.js +9 -5
- package/test/unit/spec/member/util.js +52 -11
- package/test/unit/spec/members/utils.js +95 -0
- package/test/unit/spec/multistream/remoteMedia.ts +11 -7
- package/test/unit/spec/reachability/clusterReachability.ts +7 -0
- package/test/unit/spec/recording-controller/index.js +61 -5
- package/test/unit/spec/recording-controller/util.js +39 -3
- package/test/unit/spec/webinar/index.ts +504 -0
- package/dist/common/errors/webinar-registration-error.js.map +0 -1
- package/src/common/errors/webinar-registration-error.ts +0 -27
package/dist/meeting/index.js
CHANGED
|
@@ -18,10 +18,10 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
18
18
|
exports.default = exports.ScreenShareFloorStatus = exports.MEDIA_UPDATE_TYPE = void 0;
|
|
19
19
|
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
20
20
|
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
21
|
+
var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
|
|
21
22
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
22
23
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
|
|
23
24
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
24
|
-
var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
|
|
25
25
|
var _weakMap = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/weak-map"));
|
|
26
26
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/typeof"));
|
|
27
27
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
@@ -87,7 +87,7 @@ var _controlsOptionsManager = _interopRequireDefault(require("../controls-option
|
|
|
87
87
|
var _permission = _interopRequireDefault(require("../common/errors/permission"));
|
|
88
88
|
var _locusMediaRequest = require("./locusMediaRequest");
|
|
89
89
|
var _connectionStateHandler = require("./connectionStateHandler");
|
|
90
|
-
var
|
|
90
|
+
var _joinWebinarError = _interopRequireDefault(require("../common/errors/join-webinar-error"));
|
|
91
91
|
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
92
|
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
93
|
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; }
|
|
@@ -1027,6 +1027,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1027
1027
|
options.data.intervalMetadata.peerReflexiveIP =
|
|
1028
1028
|
// @ts-ignore
|
|
1029
1029
|
((_this$webex$meetings$ = _this.webex.meetings.geoHintInfo) === null || _this$webex$meetings$ === void 0 ? void 0 : _this$webex$meetings$.clientAddress) || options.data.intervalMetadata.peerReflexiveIP || _constants.MQA_STATS.DEFAULT_IP;
|
|
1030
|
+
var members = _this.getMembers().membersCollection.members;
|
|
1031
|
+
|
|
1032
|
+
// Count members that are in the meeting
|
|
1033
|
+
options.data.intervalMetadata.meetingUserCount = (0, _values.default)(members).filter(function (member) {
|
|
1034
|
+
return member.isInMeeting;
|
|
1035
|
+
}).length;
|
|
1036
|
+
|
|
1030
1037
|
// @ts-ignore
|
|
1031
1038
|
_this.webex.internal.newMetrics.submitMQE({
|
|
1032
1039
|
name: 'client.mediaquality.event',
|
|
@@ -1520,7 +1527,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1520
1527
|
* @memberof Meeting
|
|
1521
1528
|
*/
|
|
1522
1529
|
// @ts-ignore
|
|
1523
|
-
_this.webinar = new _webinar.default({
|
|
1530
|
+
_this.webinar = new _webinar.default({
|
|
1531
|
+
meetingId: _this.id
|
|
1532
|
+
}, {
|
|
1524
1533
|
parent: _this.webex
|
|
1525
1534
|
});
|
|
1526
1535
|
/**
|
|
@@ -2427,19 +2436,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2427
2436
|
}
|
|
2428
2437
|
throw new _permission.default();
|
|
2429
2438
|
case 21:
|
|
2430
|
-
if (!(_context5.t0 instanceof _meetingInfoV.
|
|
2431
|
-
_context5.next =
|
|
2439
|
+
if (!(_context5.t0 instanceof _meetingInfoV.MeetingInfoV2JoinWebinarError)) {
|
|
2440
|
+
_context5.next = 29;
|
|
2432
2441
|
break;
|
|
2433
2442
|
}
|
|
2434
2443
|
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.WEBINAR_REGISTRATION;
|
|
2444
|
+
if (_constants.WEBINAR_ERROR_WEBCAST.includes(_context5.t0.wbxAppApiCode)) {
|
|
2445
|
+
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.NEED_JOIN_WITH_WEBCAST;
|
|
2446
|
+
} else if (_constants.WEBINAR_ERROR_REGISTRATIONID.includes(_context5.t0.wbxAppApiCode)) {
|
|
2447
|
+
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.WEBINAR_NEED_REGISTRATIONID;
|
|
2448
|
+
}
|
|
2435
2449
|
this.meetingInfoFailureCode = _context5.t0.wbxAppApiCode;
|
|
2436
2450
|
if (_context5.t0.meetingInfo) {
|
|
2437
2451
|
this.meetingInfo = _context5.t0.meetingInfo;
|
|
2438
2452
|
}
|
|
2439
|
-
throw new
|
|
2440
|
-
case
|
|
2453
|
+
throw new _joinWebinarError.default();
|
|
2454
|
+
case 29:
|
|
2441
2455
|
if (!(_context5.t0 instanceof _meetingInfoV.MeetingInfoV2PasswordError)) {
|
|
2442
|
-
_context5.next =
|
|
2456
|
+
_context5.next = 41;
|
|
2443
2457
|
break;
|
|
2444
2458
|
}
|
|
2445
2459
|
_loggerProxy.default.logger.info( // @ts-ignore
|
|
@@ -2454,16 +2468,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2454
2468
|
this.passwordStatus = _constants.PASSWORD_STATUS.REQUIRED;
|
|
2455
2469
|
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.WRONG_PASSWORD;
|
|
2456
2470
|
if (!this.requiredCaptcha) {
|
|
2457
|
-
_context5.next =
|
|
2471
|
+
_context5.next = 38;
|
|
2458
2472
|
break;
|
|
2459
2473
|
}
|
|
2460
|
-
_context5.next =
|
|
2474
|
+
_context5.next = 38;
|
|
2461
2475
|
return this.refreshCaptcha();
|
|
2462
|
-
case
|
|
2476
|
+
case 38:
|
|
2463
2477
|
throw new _passwordError.default();
|
|
2464
|
-
case
|
|
2478
|
+
case 41:
|
|
2465
2479
|
if (!(_context5.t0 instanceof _meetingInfoV.MeetingInfoV2CaptchaError)) {
|
|
2466
|
-
_context5.next =
|
|
2480
|
+
_context5.next = 50;
|
|
2467
2481
|
break;
|
|
2468
2482
|
}
|
|
2469
2483
|
_loggerProxy.default.logger.info( // @ts-ignore
|
|
@@ -2475,10 +2489,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2475
2489
|
}
|
|
2476
2490
|
this.requiredCaptcha = _context5.t0.captchaInfo;
|
|
2477
2491
|
throw new _captchaError.default();
|
|
2478
|
-
case
|
|
2492
|
+
case 50:
|
|
2479
2493
|
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.OTHER;
|
|
2480
2494
|
throw _context5.t0;
|
|
2481
|
-
case
|
|
2495
|
+
case 52:
|
|
2482
2496
|
case "end":
|
|
2483
2497
|
return _context5.stop();
|
|
2484
2498
|
}
|
|
@@ -3244,6 +3258,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3244
3258
|
});
|
|
3245
3259
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_PRACTICE_SESSION_STATUS_UPDATED, function (_ref24) {
|
|
3246
3260
|
var state = _ref24.state;
|
|
3261
|
+
_this13.webinar.updatePracticeSessionStatus(state);
|
|
3247
3262
|
_triggerProxy.default.trigger(_this13, {
|
|
3248
3263
|
file: 'meeting/index',
|
|
3249
3264
|
function: 'setupLocusControlsListener'
|
|
@@ -3310,7 +3325,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3310
3325
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_MEDIA_SHARES, /*#__PURE__*/function () {
|
|
3311
3326
|
var _ref27 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(payload) {
|
|
3312
3327
|
var _payload$previous, _payload$previous2;
|
|
3313
|
-
var _payload$current, contentShare, whiteboardShare, previousContentShare, previousWhiteboardShare, newShareStatus, oldShareStatus, sendStartedSharingRemote, _this14$mediaProperti;
|
|
3328
|
+
var _payload$current, contentShare, whiteboardShare, previousContentShare, previousWhiteboardShare, newShareStatus, _this14$locusInfo, _this14$locusInfo$inf, _this14$webinar, oldShareStatus, sendStartedSharingRemote, _this14$mediaProperti;
|
|
3314
3329
|
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
3315
3330
|
while (1) switch (_context8.prev = _context8.next) {
|
|
3316
3331
|
case 0:
|
|
@@ -3318,7 +3333,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3318
3333
|
previousContentShare = (_payload$previous = payload.previous) === null || _payload$previous === void 0 ? void 0 : _payload$previous.content;
|
|
3319
3334
|
previousWhiteboardShare = (_payload$previous2 = payload.previous) === null || _payload$previous2 === void 0 ? void 0 : _payload$previous2.whiteboard;
|
|
3320
3335
|
_this14.triggerAnnotationInfoEvent(contentShare, previousContentShare);
|
|
3321
|
-
if (!(contentShare.beneficiaryId === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.beneficiaryId) && contentShare.disposition === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.disposition) && contentShare.deviceUrlSharing === previousContentShare.deviceUrlSharing && whiteboardShare.beneficiaryId === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.beneficiaryId) && whiteboardShare.disposition === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.disposition) && whiteboardShare.resourceUrl === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.resourceUrl) && contentShare.resourceType === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.resourceType))) {
|
|
3336
|
+
if (!(!payload.forceUpdate && contentShare.beneficiaryId === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.beneficiaryId) && contentShare.disposition === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.disposition) && contentShare.deviceUrlSharing === previousContentShare.deviceUrlSharing && whiteboardShare.beneficiaryId === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.beneficiaryId) && whiteboardShare.disposition === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.disposition) && whiteboardShare.resourceUrl === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.resourceUrl) && contentShare.resourceType === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.resourceType))) {
|
|
3322
3337
|
_context8.next = 6;
|
|
3323
3338
|
break;
|
|
3324
3339
|
}
|
|
@@ -3344,7 +3359,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3344
3359
|
// It does not matter who requested to share the whiteboard, everyone gets the same view
|
|
3345
3360
|
else if (whiteboardShare.disposition === _constants.FLOOR_ACTION.GRANTED) {
|
|
3346
3361
|
// WHITEBOARD - sharing whiteboard
|
|
3347
|
-
|
|
3362
|
+
// Webinar attendee should receive whiteboard as remote share
|
|
3363
|
+
newShareStatus = (_this14$locusInfo = _this14.locusInfo) !== null && _this14$locusInfo !== void 0 && (_this14$locusInfo$inf = _this14$locusInfo.info) !== null && _this14$locusInfo$inf !== void 0 && _this14$locusInfo$inf.isWebinar && (_this14$webinar = _this14.webinar) !== null && _this14$webinar !== void 0 && _this14$webinar.selfIsAttendee ? _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE : _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE;
|
|
3348
3364
|
}
|
|
3349
3365
|
// or if content share is either released or null and whiteboard share is either released or null, no one is sharing
|
|
3350
3366
|
else if ((previousContentShare && contentShare.disposition === _constants.FLOOR_ACTION.RELEASED || contentShare.disposition === null) && (previousWhiteboardShare && whiteboardShare.disposition === _constants.FLOOR_ACTION.RELEASED || whiteboardShare.disposition === null)) {
|
|
@@ -3578,7 +3594,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3578
3594
|
value: function setUpLocusResourcesListener() {
|
|
3579
3595
|
var _this17 = this;
|
|
3580
3596
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.LINKS_RESOURCES, function (payload) {
|
|
3581
|
-
|
|
3597
|
+
if (payload) {
|
|
3598
|
+
_this17.webinar.updateWebcastUrl(payload);
|
|
3599
|
+
_triggerProxy.default.trigger(_this17, {
|
|
3600
|
+
file: 'meeting/index',
|
|
3601
|
+
function: 'setUpLocusInfoMeetingInfoListener'
|
|
3602
|
+
}, _constants.EVENT_TRIGGERS.MEETING_RESOURCE_LINKS_UPDATE, {
|
|
3603
|
+
payload: payload
|
|
3604
|
+
});
|
|
3605
|
+
}
|
|
3582
3606
|
});
|
|
3583
3607
|
}
|
|
3584
3608
|
|
|
@@ -3844,6 +3868,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3844
3868
|
_this20.setSendNamedMediaGroup(_internalMediaCore.MediaType.AudioMain);
|
|
3845
3869
|
}
|
|
3846
3870
|
});
|
|
3871
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_MEETING_BRB_CHANGED, function (payload) {
|
|
3872
|
+
_triggerProxy.default.trigger(_this20, {
|
|
3873
|
+
file: 'meeting/index',
|
|
3874
|
+
function: 'setUpLocusInfoSelfListener'
|
|
3875
|
+
}, _constants.EVENT_TRIGGERS.MEETING_SELF_BRB_UPDATE, {
|
|
3876
|
+
payload: payload
|
|
3877
|
+
});
|
|
3878
|
+
});
|
|
3847
3879
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ROLES_CHANGED, function (payload) {
|
|
3848
3880
|
var _payload$newRoles, _payload$newRoles2, _payload$newRoles3;
|
|
3849
3881
|
var isModeratorOrCohost = ((_payload$newRoles = payload.newRoles) === null || _payload$newRoles === void 0 ? void 0 : _payload$newRoles.includes(_constants.SELF_ROLES.MODERATOR)) || ((_payload$newRoles2 = payload.newRoles) === null || _payload$newRoles2 === void 0 ? void 0 : _payload$newRoles2.includes(_constants.SELF_ROLES.COHOST));
|
|
@@ -4042,6 +4074,62 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4042
4074
|
return this.members.admitMembers(memberIds, locusUrls);
|
|
4043
4075
|
}
|
|
4044
4076
|
|
|
4077
|
+
/**
|
|
4078
|
+
* Manages be right back status updates for the current participant.
|
|
4079
|
+
*
|
|
4080
|
+
* @param {boolean} enabled - Indicates whether the user enabled brb or not.
|
|
4081
|
+
* @returns {Promise<void>} resolves when the brb status is updated or does nothing if not in a multistream meeting.
|
|
4082
|
+
* @throws {Error} - Throws an error if the request fails.
|
|
4083
|
+
*/
|
|
4084
|
+
}, {
|
|
4085
|
+
key: "beRightBack",
|
|
4086
|
+
value: (function () {
|
|
4087
|
+
var _beRightBack = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(enabled) {
|
|
4088
|
+
var _this23 = this;
|
|
4089
|
+
var errorMessage, error, _errorMessage, _error;
|
|
4090
|
+
return _regenerator.default.wrap(function _callee11$(_context11) {
|
|
4091
|
+
while (1) switch (_context11.prev = _context11.next) {
|
|
4092
|
+
case 0:
|
|
4093
|
+
if (this.isMultistream) {
|
|
4094
|
+
_context11.next = 5;
|
|
4095
|
+
break;
|
|
4096
|
+
}
|
|
4097
|
+
errorMessage = 'Meeting:index#beRightBack --> Not a multistream meeting';
|
|
4098
|
+
error = new Error(errorMessage);
|
|
4099
|
+
_loggerProxy.default.logger.error(error);
|
|
4100
|
+
return _context11.abrupt("return", _promise.default.reject(error));
|
|
4101
|
+
case 5:
|
|
4102
|
+
if (this.mediaProperties.webrtcMediaConnection) {
|
|
4103
|
+
_context11.next = 10;
|
|
4104
|
+
break;
|
|
4105
|
+
}
|
|
4106
|
+
_errorMessage = 'Meeting:index#beRightBack --> WebRTC media connection is not defined';
|
|
4107
|
+
_error = new Error(_errorMessage);
|
|
4108
|
+
_loggerProxy.default.logger.error(_error);
|
|
4109
|
+
return _context11.abrupt("return", _promise.default.reject(_error));
|
|
4110
|
+
case 10:
|
|
4111
|
+
return _context11.abrupt("return", this.meetingRequest.setBrb({
|
|
4112
|
+
enabled: enabled,
|
|
4113
|
+
locusUrl: this.locusUrl,
|
|
4114
|
+
deviceUrl: this.deviceUrl,
|
|
4115
|
+
selfId: this.selfId
|
|
4116
|
+
}).then(function () {
|
|
4117
|
+
_this23.sendSlotManager.setSourceStateOverride(_internalMediaCore.MediaType.VideoMain, enabled ? 'away' : null);
|
|
4118
|
+
}).catch(function (error) {
|
|
4119
|
+
_loggerProxy.default.logger.error('Meeting:index#beRightBack --> Error ', error);
|
|
4120
|
+
return _promise.default.reject(error);
|
|
4121
|
+
}));
|
|
4122
|
+
case 11:
|
|
4123
|
+
case "end":
|
|
4124
|
+
return _context11.stop();
|
|
4125
|
+
}
|
|
4126
|
+
}, _callee11, this);
|
|
4127
|
+
}));
|
|
4128
|
+
function beRightBack(_x11) {
|
|
4129
|
+
return _beRightBack.apply(this, arguments);
|
|
4130
|
+
}
|
|
4131
|
+
return beRightBack;
|
|
4132
|
+
}()
|
|
4045
4133
|
/**
|
|
4046
4134
|
* Remove the member from the meeting, boot them
|
|
4047
4135
|
* @param {String} memberId
|
|
@@ -4049,6 +4137,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4049
4137
|
* @public
|
|
4050
4138
|
* @memberof Meeting
|
|
4051
4139
|
*/
|
|
4140
|
+
)
|
|
4052
4141
|
}, {
|
|
4053
4142
|
key: "remove",
|
|
4054
4143
|
value: function remove(memberId) {
|
|
@@ -4226,6 +4315,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4226
4315
|
canStopRecording: _util4.default.canUserStop(this.userDisplayHints, this.selfUserPolicies),
|
|
4227
4316
|
canPauseRecording: _util4.default.canUserPause(this.userDisplayHints, this.selfUserPolicies),
|
|
4228
4317
|
canResumeRecording: _util4.default.canUserResume(this.userDisplayHints, this.selfUserPolicies),
|
|
4318
|
+
isPremiseRecordingEnabled: _util4.default.isPremiseRecordingEnabled(this.userDisplayHints, this.selfUserPolicies),
|
|
4229
4319
|
canRaiseHand: _util2.default.canUserRaiseHand(this.userDisplayHints),
|
|
4230
4320
|
canLowerAllHands: _util2.default.canUserLowerAllHands(this.userDisplayHints),
|
|
4231
4321
|
canLowerSomeoneElsesHand: _util2.default.canUserLowerSomeoneElsesHand(this.userDisplayHints),
|
|
@@ -4355,6 +4445,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4355
4445
|
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_STAGE_VIEW],
|
|
4356
4446
|
displayHints: this.userDisplayHints
|
|
4357
4447
|
}),
|
|
4448
|
+
isPracticeSessionOn: _util5.default.hasHints({
|
|
4449
|
+
requiredHints: [_constants.DISPLAY_HINTS.PRACTICE_SESSION_ON],
|
|
4450
|
+
displayHints: this.userDisplayHints
|
|
4451
|
+
}),
|
|
4452
|
+
isPracticeSessionOff: _util5.default.hasHints({
|
|
4453
|
+
requiredHints: [_constants.DISPLAY_HINTS.PRACTICE_SESSION_OFF],
|
|
4454
|
+
displayHints: this.userDisplayHints
|
|
4455
|
+
}),
|
|
4456
|
+
canStartPracticeSession: _util5.default.hasHints({
|
|
4457
|
+
requiredHints: [_constants.DISPLAY_HINTS.SHOW_PRACTICE_SESSION_START],
|
|
4458
|
+
displayHints: this.userDisplayHints
|
|
4459
|
+
}),
|
|
4460
|
+
canStopPracticeSession: _util5.default.hasHints({
|
|
4461
|
+
requiredHints: [_constants.DISPLAY_HINTS.SHOW_PRACTICE_SESSION_STOP],
|
|
4462
|
+
displayHints: this.userDisplayHints
|
|
4463
|
+
}),
|
|
4358
4464
|
canShareFile: _util5.default.hasHints({
|
|
4359
4465
|
requiredHints: [_constants.DISPLAY_HINTS.SHARE_FILE],
|
|
4360
4466
|
displayHints: this.userDisplayHints
|
|
@@ -4506,25 +4612,26 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4506
4612
|
}, {
|
|
4507
4613
|
key: "setLogUploadTimer",
|
|
4508
4614
|
value: function setLogUploadTimer() {
|
|
4509
|
-
var
|
|
4615
|
+
var _this24 = this;
|
|
4510
4616
|
// start with short timeouts and increase them later on so in case users have very long multi-hour meetings we don't get too fragmented logs
|
|
4511
|
-
var LOG_UPLOAD_INTERVALS = [0.1,
|
|
4512
|
-
|
|
4617
|
+
var LOG_UPLOAD_INTERVALS = [0.1, 15, 30, 60]; // in minutes
|
|
4618
|
+
|
|
4619
|
+
var delay = 1000 * 60 *
|
|
4513
4620
|
// @ts-ignore - config coming from registerPlugin
|
|
4514
4621
|
this.config.logUploadIntervalMultiplicationFactor * LOG_UPLOAD_INTERVALS[this.logUploadIntervalIndex];
|
|
4515
4622
|
if (this.logUploadIntervalIndex < LOG_UPLOAD_INTERVALS.length - 1) {
|
|
4516
4623
|
this.logUploadIntervalIndex += 1;
|
|
4517
4624
|
}
|
|
4518
4625
|
this.uploadLogsTimer = (0, _commonTimers.safeSetTimeout)(function () {
|
|
4519
|
-
|
|
4520
|
-
|
|
4626
|
+
_this24.uploadLogsTimer = undefined;
|
|
4627
|
+
_this24.uploadLogs();
|
|
4521
4628
|
|
|
4522
4629
|
// just as an extra precaution, to avoid uploading logs forever in case something goes wrong
|
|
4523
4630
|
// and the page remains opened, we stop it if there is no media connection
|
|
4524
|
-
if (!
|
|
4631
|
+
if (!_this24.mediaProperties.webrtcMediaConnection) {
|
|
4525
4632
|
return;
|
|
4526
4633
|
}
|
|
4527
|
-
|
|
4634
|
+
_this24.setLogUploadTimer();
|
|
4528
4635
|
}, delay);
|
|
4529
4636
|
}
|
|
4530
4637
|
|
|
@@ -4591,7 +4698,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4591
4698
|
}, {
|
|
4592
4699
|
key: "closeRemoteStreams",
|
|
4593
4700
|
value: function closeRemoteStreams() {
|
|
4594
|
-
var
|
|
4701
|
+
var _this25 = this;
|
|
4595
4702
|
var _this$mediaProperties4 = this.mediaProperties,
|
|
4596
4703
|
remoteAudioStream = _this$mediaProperties4.remoteAudioStream,
|
|
4597
4704
|
remoteVideoStream = _this$mediaProperties4.remoteVideoStream,
|
|
@@ -4605,7 +4712,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4605
4712
|
*/
|
|
4606
4713
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
4607
4714
|
var triggerMediaStoppedEvent = function triggerMediaStoppedEvent(mediaType) {
|
|
4608
|
-
_triggerProxy.default.trigger(
|
|
4715
|
+
_triggerProxy.default.trigger(_this25, {
|
|
4609
4716
|
file: 'meeting/index',
|
|
4610
4717
|
function: 'closeRemoteStreams'
|
|
4611
4718
|
}, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
|
|
@@ -4639,11 +4746,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4639
4746
|
}, {
|
|
4640
4747
|
key: "setLocalAudioStream",
|
|
4641
4748
|
value: (function () {
|
|
4642
|
-
var _setLocalAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
4749
|
+
var _setLocalAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12(localStream) {
|
|
4643
4750
|
var _this$audio2;
|
|
4644
4751
|
var oldStream;
|
|
4645
|
-
return _regenerator.default.wrap(function
|
|
4646
|
-
while (1) switch (
|
|
4752
|
+
return _regenerator.default.wrap(function _callee12$(_context12) {
|
|
4753
|
+
while (1) switch (_context12.prev = _context12.next) {
|
|
4647
4754
|
case 0:
|
|
4648
4755
|
oldStream = this.mediaProperties.audioStream;
|
|
4649
4756
|
oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localAudioStreamMuteStateHandler);
|
|
@@ -4657,21 +4764,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4657
4764
|
localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localAudioStreamMuteStateHandler);
|
|
4658
4765
|
localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
|
|
4659
4766
|
if (!(!this.isMultistream || !localStream)) {
|
|
4660
|
-
|
|
4767
|
+
_context12.next = 12;
|
|
4661
4768
|
break;
|
|
4662
4769
|
}
|
|
4663
|
-
|
|
4770
|
+
_context12.next = 12;
|
|
4664
4771
|
return this.unpublishStream(_internalMediaCore.MediaType.AudioMain, oldStream);
|
|
4665
4772
|
case 12:
|
|
4666
|
-
|
|
4773
|
+
_context12.next = 14;
|
|
4667
4774
|
return this.publishStream(_internalMediaCore.MediaType.AudioMain, this.mediaProperties.audioStream);
|
|
4668
4775
|
case 14:
|
|
4669
4776
|
case "end":
|
|
4670
|
-
return
|
|
4777
|
+
return _context12.stop();
|
|
4671
4778
|
}
|
|
4672
|
-
},
|
|
4779
|
+
}, _callee12, this);
|
|
4673
4780
|
}));
|
|
4674
|
-
function setLocalAudioStream(
|
|
4781
|
+
function setLocalAudioStream(_x12) {
|
|
4675
4782
|
return _setLocalAudioStream.apply(this, arguments);
|
|
4676
4783
|
}
|
|
4677
4784
|
return setLocalAudioStream;
|
|
@@ -4687,11 +4794,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4687
4794
|
}, {
|
|
4688
4795
|
key: "setLocalVideoStream",
|
|
4689
4796
|
value: (function () {
|
|
4690
|
-
var _setLocalVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
4797
|
+
var _setLocalVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13(localStream) {
|
|
4691
4798
|
var _this$video2;
|
|
4692
4799
|
var oldStream;
|
|
4693
|
-
return _regenerator.default.wrap(function
|
|
4694
|
-
while (1) switch (
|
|
4800
|
+
return _regenerator.default.wrap(function _callee13$(_context13) {
|
|
4801
|
+
while (1) switch (_context13.prev = _context13.next) {
|
|
4695
4802
|
case 0:
|
|
4696
4803
|
oldStream = this.mediaProperties.videoStream;
|
|
4697
4804
|
oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localVideoStreamMuteStateHandler);
|
|
@@ -4705,21 +4812,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4705
4812
|
localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localVideoStreamMuteStateHandler);
|
|
4706
4813
|
localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
|
|
4707
4814
|
if (!(!this.isMultistream || !localStream)) {
|
|
4708
|
-
|
|
4815
|
+
_context13.next = 12;
|
|
4709
4816
|
break;
|
|
4710
4817
|
}
|
|
4711
|
-
|
|
4818
|
+
_context13.next = 12;
|
|
4712
4819
|
return this.unpublishStream(_internalMediaCore.MediaType.VideoMain, oldStream);
|
|
4713
4820
|
case 12:
|
|
4714
|
-
|
|
4821
|
+
_context13.next = 14;
|
|
4715
4822
|
return this.publishStream(_internalMediaCore.MediaType.VideoMain, this.mediaProperties.videoStream);
|
|
4716
4823
|
case 14:
|
|
4717
4824
|
case "end":
|
|
4718
|
-
return
|
|
4825
|
+
return _context13.stop();
|
|
4719
4826
|
}
|
|
4720
|
-
},
|
|
4827
|
+
}, _callee13, this);
|
|
4721
4828
|
}));
|
|
4722
|
-
function setLocalVideoStream(
|
|
4829
|
+
function setLocalVideoStream(_x13) {
|
|
4723
4830
|
return _setLocalVideoStream.apply(this, arguments);
|
|
4724
4831
|
}
|
|
4725
4832
|
return setLocalVideoStream;
|
|
@@ -4736,10 +4843,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4736
4843
|
}, {
|
|
4737
4844
|
key: "setLocalShareVideoStream",
|
|
4738
4845
|
value: (function () {
|
|
4739
|
-
var _setLocalShareVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
4846
|
+
var _setLocalShareVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14(localDisplayStream) {
|
|
4740
4847
|
var oldStream;
|
|
4741
|
-
return _regenerator.default.wrap(function
|
|
4742
|
-
while (1) switch (
|
|
4848
|
+
return _regenerator.default.wrap(function _callee14$(_context14) {
|
|
4849
|
+
while (1) switch (_context14.prev = _context14.next) {
|
|
4743
4850
|
case 0:
|
|
4744
4851
|
oldStream = this.mediaProperties.shareVideoStream;
|
|
4745
4852
|
oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.handleShareVideoStreamMuteStateChange);
|
|
@@ -4751,21 +4858,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4751
4858
|
localDisplayStream === null || localDisplayStream === void 0 ? void 0 : localDisplayStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
|
|
4752
4859
|
this.mediaProperties.mediaDirection.sendShare = this.mediaProperties.hasLocalShareStream();
|
|
4753
4860
|
if (!(!this.isMultistream || !localDisplayStream)) {
|
|
4754
|
-
|
|
4861
|
+
_context14.next = 12;
|
|
4755
4862
|
break;
|
|
4756
4863
|
}
|
|
4757
|
-
|
|
4864
|
+
_context14.next = 12;
|
|
4758
4865
|
return this.unpublishStream(_internalMediaCore.MediaType.VideoSlides, oldStream);
|
|
4759
4866
|
case 12:
|
|
4760
|
-
|
|
4867
|
+
_context14.next = 14;
|
|
4761
4868
|
return this.publishStream(_internalMediaCore.MediaType.VideoSlides, this.mediaProperties.shareVideoStream);
|
|
4762
4869
|
case 14:
|
|
4763
4870
|
case "end":
|
|
4764
|
-
return
|
|
4871
|
+
return _context14.stop();
|
|
4765
4872
|
}
|
|
4766
|
-
},
|
|
4873
|
+
}, _callee14, this);
|
|
4767
4874
|
}));
|
|
4768
|
-
function setLocalShareVideoStream(
|
|
4875
|
+
function setLocalShareVideoStream(_x14) {
|
|
4769
4876
|
return _setLocalShareVideoStream.apply(this, arguments);
|
|
4770
4877
|
}
|
|
4771
4878
|
return setLocalShareVideoStream;
|
|
@@ -4781,10 +4888,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4781
4888
|
}, {
|
|
4782
4889
|
key: "setLocalShareAudioStream",
|
|
4783
4890
|
value: (function () {
|
|
4784
|
-
var _setLocalShareAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
4891
|
+
var _setLocalShareAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15(localSystemAudioStream) {
|
|
4785
4892
|
var oldStream;
|
|
4786
|
-
return _regenerator.default.wrap(function
|
|
4787
|
-
while (1) switch (
|
|
4893
|
+
return _regenerator.default.wrap(function _callee15$(_context15) {
|
|
4894
|
+
while (1) switch (_context15.prev = _context15.next) {
|
|
4788
4895
|
case 0:
|
|
4789
4896
|
oldStream = this.mediaProperties.shareAudioStream;
|
|
4790
4897
|
oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.StreamEventNames.Ended, this.handleShareAudioStreamEnded);
|
|
@@ -4794,21 +4901,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4794
4901
|
localSystemAudioStream === null || localSystemAudioStream === void 0 ? void 0 : localSystemAudioStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
|
|
4795
4902
|
this.mediaProperties.mediaDirection.sendShare = this.mediaProperties.hasLocalShareStream();
|
|
4796
4903
|
if (!(!this.isMultistream || !localSystemAudioStream)) {
|
|
4797
|
-
|
|
4904
|
+
_context15.next = 10;
|
|
4798
4905
|
break;
|
|
4799
4906
|
}
|
|
4800
|
-
|
|
4907
|
+
_context15.next = 10;
|
|
4801
4908
|
return this.unpublishStream(_internalMediaCore.MediaType.AudioSlides, oldStream);
|
|
4802
4909
|
case 10:
|
|
4803
|
-
|
|
4910
|
+
_context15.next = 12;
|
|
4804
4911
|
return this.publishStream(_internalMediaCore.MediaType.AudioSlides, this.mediaProperties.shareAudioStream);
|
|
4805
4912
|
case 12:
|
|
4806
4913
|
case "end":
|
|
4807
|
-
return
|
|
4914
|
+
return _context15.stop();
|
|
4808
4915
|
}
|
|
4809
|
-
},
|
|
4916
|
+
}, _callee15, this);
|
|
4810
4917
|
}));
|
|
4811
|
-
function setLocalShareAudioStream(
|
|
4918
|
+
function setLocalShareAudioStream(_x15) {
|
|
4812
4919
|
return _setLocalShareAudioStream.apply(this, arguments);
|
|
4813
4920
|
}
|
|
4814
4921
|
return setLocalShareAudioStream;
|
|
@@ -4913,7 +5020,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4913
5020
|
}, {
|
|
4914
5021
|
key: "setMercuryListener",
|
|
4915
5022
|
value: function setMercuryListener() {
|
|
4916
|
-
var
|
|
5023
|
+
var _this26 = this;
|
|
4917
5024
|
// Client will have a socket manager and handle reconnecting to mercury, when we reconnect to mercury
|
|
4918
5025
|
// if the meeting has active peer connections, it should try to reconnect.
|
|
4919
5026
|
// @ts-ignore
|
|
@@ -4921,33 +5028,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4921
5028
|
_loggerProxy.default.logger.info('Meeting:index#setMercuryListener --> Web socket online');
|
|
4922
5029
|
|
|
4923
5030
|
// Only send restore event when it was disconnected before and for connected later
|
|
4924
|
-
if (!
|
|
5031
|
+
if (!_this26.hasWebsocketConnected) {
|
|
4925
5032
|
// @ts-ignore
|
|
4926
|
-
|
|
5033
|
+
_this26.webex.internal.newMetrics.submitClientEvent({
|
|
4927
5034
|
name: 'client.mercury.connection.restored',
|
|
4928
5035
|
options: {
|
|
4929
|
-
meetingId:
|
|
5036
|
+
meetingId: _this26.id
|
|
4930
5037
|
}
|
|
4931
5038
|
});
|
|
4932
5039
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_RESTORED, {
|
|
4933
|
-
correlation_id:
|
|
5040
|
+
correlation_id: _this26.correlationId
|
|
4934
5041
|
});
|
|
4935
5042
|
}
|
|
4936
|
-
|
|
5043
|
+
_this26.hasWebsocketConnected = true;
|
|
4937
5044
|
});
|
|
4938
5045
|
|
|
4939
5046
|
// @ts-ignore
|
|
4940
5047
|
this.webex.internal.mercury.on(_constants.OFFLINE, function () {
|
|
4941
5048
|
_loggerProxy.default.logger.error('Meeting:index#setMercuryListener --> Web socket offline');
|
|
4942
5049
|
// @ts-ignore
|
|
4943
|
-
|
|
5050
|
+
_this26.webex.internal.newMetrics.submitClientEvent({
|
|
4944
5051
|
name: 'client.mercury.connection.lost',
|
|
4945
5052
|
options: {
|
|
4946
|
-
meetingId:
|
|
5053
|
+
meetingId: _this26.id
|
|
4947
5054
|
}
|
|
4948
5055
|
});
|
|
4949
5056
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_FAILURE, {
|
|
4950
|
-
correlation_id:
|
|
5057
|
+
correlation_id: _this26.correlationId
|
|
4951
5058
|
});
|
|
4952
5059
|
});
|
|
4953
5060
|
}
|
|
@@ -5049,7 +5156,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5049
5156
|
}, {
|
|
5050
5157
|
key: "muteAudio",
|
|
5051
5158
|
value: function muteAudio() {
|
|
5052
|
-
var
|
|
5159
|
+
var _this27 = this;
|
|
5053
5160
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
|
5054
5161
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
5055
5162
|
}
|
|
@@ -5065,22 +5172,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5065
5172
|
|
|
5066
5173
|
// First, stop sending the local audio media
|
|
5067
5174
|
return logRequest(this.audio.handleClientRequest(this, true).then(function () {
|
|
5068
|
-
_util2.default.handleAudioLogging(
|
|
5175
|
+
_util2.default.handleAudioLogging(_this27.mediaProperties.audioStream);
|
|
5069
5176
|
// @ts-ignore
|
|
5070
|
-
|
|
5177
|
+
_this27.webex.internal.newMetrics.submitClientEvent({
|
|
5071
5178
|
name: 'client.muted',
|
|
5072
5179
|
payload: {
|
|
5073
5180
|
trigger: 'user-interaction',
|
|
5074
5181
|
mediaType: 'audio'
|
|
5075
5182
|
},
|
|
5076
5183
|
options: {
|
|
5077
|
-
meetingId:
|
|
5184
|
+
meetingId: _this27.id
|
|
5078
5185
|
}
|
|
5079
5186
|
});
|
|
5080
5187
|
}).catch(function (error) {
|
|
5081
5188
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_AUDIO_FAILURE, {
|
|
5082
|
-
correlation_id:
|
|
5083
|
-
locus_id:
|
|
5189
|
+
correlation_id: _this27.correlationId,
|
|
5190
|
+
locus_id: _this27.locusUrl.split('/').pop(),
|
|
5084
5191
|
reason: error.message,
|
|
5085
5192
|
stack: error.stack
|
|
5086
5193
|
});
|
|
@@ -5099,7 +5206,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5099
5206
|
}, {
|
|
5100
5207
|
key: "unmuteAudio",
|
|
5101
5208
|
value: function unmuteAudio() {
|
|
5102
|
-
var
|
|
5209
|
+
var _this28 = this;
|
|
5103
5210
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
|
5104
5211
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
5105
5212
|
}
|
|
@@ -5115,22 +5222,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5115
5222
|
|
|
5116
5223
|
// First, send the control to unmute the participant on the server
|
|
5117
5224
|
return logRequest(this.audio.handleClientRequest(this, false).then(function () {
|
|
5118
|
-
_util2.default.handleAudioLogging(
|
|
5225
|
+
_util2.default.handleAudioLogging(_this28.mediaProperties.audioStream);
|
|
5119
5226
|
// @ts-ignore
|
|
5120
|
-
|
|
5227
|
+
_this28.webex.internal.newMetrics.submitClientEvent({
|
|
5121
5228
|
name: 'client.unmuted',
|
|
5122
5229
|
payload: {
|
|
5123
5230
|
trigger: 'user-interaction',
|
|
5124
5231
|
mediaType: 'audio'
|
|
5125
5232
|
},
|
|
5126
5233
|
options: {
|
|
5127
|
-
meetingId:
|
|
5234
|
+
meetingId: _this28.id
|
|
5128
5235
|
}
|
|
5129
5236
|
});
|
|
5130
5237
|
}).catch(function (error) {
|
|
5131
5238
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_AUDIO_FAILURE, {
|
|
5132
|
-
correlation_id:
|
|
5133
|
-
locus_id:
|
|
5239
|
+
correlation_id: _this28.correlationId,
|
|
5240
|
+
locus_id: _this28.locusUrl.split('/').pop(),
|
|
5134
5241
|
reason: error.message,
|
|
5135
5242
|
stack: error.stack
|
|
5136
5243
|
});
|
|
@@ -5149,7 +5256,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5149
5256
|
}, {
|
|
5150
5257
|
key: "muteVideo",
|
|
5151
5258
|
value: function muteVideo() {
|
|
5152
|
-
var
|
|
5259
|
+
var _this29 = this;
|
|
5153
5260
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
|
5154
5261
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
5155
5262
|
}
|
|
@@ -5163,22 +5270,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5163
5270
|
return _promise.default.reject(new _parameter.default('no video control associated to the meeting'));
|
|
5164
5271
|
}
|
|
5165
5272
|
return logRequest(this.video.handleClientRequest(this, true).then(function () {
|
|
5166
|
-
_util2.default.handleVideoLogging(
|
|
5273
|
+
_util2.default.handleVideoLogging(_this29.mediaProperties.videoStream);
|
|
5167
5274
|
// @ts-ignore
|
|
5168
|
-
|
|
5275
|
+
_this29.webex.internal.newMetrics.submitClientEvent({
|
|
5169
5276
|
name: 'client.muted',
|
|
5170
5277
|
payload: {
|
|
5171
5278
|
trigger: 'user-interaction',
|
|
5172
5279
|
mediaType: 'video'
|
|
5173
5280
|
},
|
|
5174
5281
|
options: {
|
|
5175
|
-
meetingId:
|
|
5282
|
+
meetingId: _this29.id
|
|
5176
5283
|
}
|
|
5177
5284
|
});
|
|
5178
5285
|
}).catch(function (error) {
|
|
5179
5286
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_VIDEO_FAILURE, {
|
|
5180
|
-
correlation_id:
|
|
5181
|
-
locus_id:
|
|
5287
|
+
correlation_id: _this29.correlationId,
|
|
5288
|
+
locus_id: _this29.locusUrl.split('/').pop(),
|
|
5182
5289
|
reason: error.message,
|
|
5183
5290
|
stack: error.stack
|
|
5184
5291
|
});
|
|
@@ -5197,7 +5304,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5197
5304
|
}, {
|
|
5198
5305
|
key: "unmuteVideo",
|
|
5199
5306
|
value: function unmuteVideo() {
|
|
5200
|
-
var
|
|
5307
|
+
var _this30 = this;
|
|
5201
5308
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
|
5202
5309
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
5203
5310
|
}
|
|
@@ -5211,22 +5318,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5211
5318
|
return _promise.default.reject(new _parameter.default('no audio control associated to the meeting'));
|
|
5212
5319
|
}
|
|
5213
5320
|
return logRequest(this.video.handleClientRequest(this, false).then(function () {
|
|
5214
|
-
_util2.default.handleVideoLogging(
|
|
5321
|
+
_util2.default.handleVideoLogging(_this30.mediaProperties.videoStream);
|
|
5215
5322
|
// @ts-ignore
|
|
5216
|
-
|
|
5323
|
+
_this30.webex.internal.newMetrics.submitClientEvent({
|
|
5217
5324
|
name: 'client.unmuted',
|
|
5218
5325
|
payload: {
|
|
5219
5326
|
trigger: 'user-interaction',
|
|
5220
5327
|
mediaType: 'video'
|
|
5221
5328
|
},
|
|
5222
5329
|
options: {
|
|
5223
|
-
meetingId:
|
|
5330
|
+
meetingId: _this30.id
|
|
5224
5331
|
}
|
|
5225
5332
|
});
|
|
5226
5333
|
}).catch(function (error) {
|
|
5227
5334
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_VIDEO_FAILURE, {
|
|
5228
|
-
correlation_id:
|
|
5229
|
-
locus_id:
|
|
5335
|
+
correlation_id: _this30.correlationId,
|
|
5336
|
+
locus_id: _this30.locusUrl.split('/').pop(),
|
|
5230
5337
|
reason: error.message,
|
|
5231
5338
|
stack: error.stack
|
|
5232
5339
|
});
|
|
@@ -5255,8 +5362,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5255
5362
|
}, {
|
|
5256
5363
|
key: "joinWithMedia",
|
|
5257
5364
|
value: (function () {
|
|
5258
|
-
var _joinWithMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
5259
|
-
var
|
|
5365
|
+
var _joinWithMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
|
|
5366
|
+
var _this31 = this;
|
|
5260
5367
|
var options,
|
|
5261
5368
|
mediaOptions,
|
|
5262
5369
|
_options$joinOptions,
|
|
@@ -5276,51 +5383,51 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5276
5383
|
_leaveError,
|
|
5277
5384
|
leaveError,
|
|
5278
5385
|
shouldRetry,
|
|
5279
|
-
|
|
5280
|
-
return _regenerator.default.wrap(function
|
|
5281
|
-
while (1) switch (
|
|
5386
|
+
_args16 = arguments;
|
|
5387
|
+
return _regenerator.default.wrap(function _callee16$(_context16) {
|
|
5388
|
+
while (1) switch (_context16.prev = _context16.next) {
|
|
5282
5389
|
case 0:
|
|
5283
|
-
options =
|
|
5390
|
+
options = _args16.length > 0 && _args16[0] !== undefined ? _args16[0] : {};
|
|
5284
5391
|
mediaOptions = options.mediaOptions, _options$joinOptions = options.joinOptions, joinOptions = _options$joinOptions === void 0 ? {} : _options$joinOptions;
|
|
5285
5392
|
_this$joinWithMediaRe = this.joinWithMediaRetryInfo, isRetry = _this$joinWithMediaRe.isRetry, prevJoinResponse = _this$joinWithMediaRe.prevJoinResponse;
|
|
5286
5393
|
if (mediaOptions !== null && mediaOptions !== void 0 && mediaOptions.allowMediaInLobby) {
|
|
5287
|
-
|
|
5394
|
+
_context16.next = 5;
|
|
5288
5395
|
break;
|
|
5289
5396
|
}
|
|
5290
|
-
return
|
|
5397
|
+
return _context16.abrupt("return", _promise.default.reject(new _parameter.default('joinWithMedia() can only be used with allowMediaInLobby set to true')));
|
|
5291
5398
|
case 5:
|
|
5292
5399
|
this.allowMediaInLobby = true;
|
|
5293
5400
|
_loggerProxy.default.logger.info('Meeting:index#joinWithMedia called');
|
|
5294
5401
|
joined = false;
|
|
5295
5402
|
joinResponse = prevJoinResponse;
|
|
5296
|
-
|
|
5403
|
+
_context16.prev = 9;
|
|
5297
5404
|
forceTurnDiscovery = false;
|
|
5298
5405
|
if (joinResponse) {
|
|
5299
|
-
|
|
5406
|
+
_context16.next = 33;
|
|
5300
5407
|
break;
|
|
5301
5408
|
}
|
|
5302
|
-
|
|
5409
|
+
_context16.next = 14;
|
|
5303
5410
|
return this.roap.generateTurnDiscoveryRequestMessage(this, true);
|
|
5304
5411
|
case 14:
|
|
5305
|
-
turnDiscoveryRequest =
|
|
5412
|
+
turnDiscoveryRequest = _context16.sent;
|
|
5306
5413
|
turnDiscoverySkippedReason = turnDiscoveryRequest.turnDiscoverySkippedReason;
|
|
5307
5414
|
joinOptions.roapMessage = turnDiscoveryRequest.roapMessage;
|
|
5308
5415
|
_loggerProxy.default.logger.info('Meeting:index#joinWithMedia ---> calling join with joinOptions, ', joinOptions);
|
|
5309
|
-
|
|
5416
|
+
_context16.next = 20;
|
|
5310
5417
|
return this.join(joinOptions);
|
|
5311
5418
|
case 20:
|
|
5312
|
-
joinResponse =
|
|
5419
|
+
joinResponse = _context16.sent;
|
|
5313
5420
|
joined = true;
|
|
5314
5421
|
|
|
5315
5422
|
// if we sent out TURN discovery Roap message with join, process the TURN discovery response
|
|
5316
5423
|
if (!joinOptions.roapMessage) {
|
|
5317
|
-
|
|
5424
|
+
_context16.next = 31;
|
|
5318
5425
|
break;
|
|
5319
5426
|
}
|
|
5320
|
-
|
|
5427
|
+
_context16.next = 25;
|
|
5321
5428
|
return this.roap.handleTurnDiscoveryHttpResponse(this, joinResponse);
|
|
5322
5429
|
case 25:
|
|
5323
|
-
_yield$this$roap$hand =
|
|
5430
|
+
_yield$this$roap$hand = _context16.sent;
|
|
5324
5431
|
turnServerInfo = _yield$this$roap$hand.turnServerInfo;
|
|
5325
5432
|
turnDiscoverySkippedReason = _yield$this$roap$hand.turnDiscoverySkippedReason;
|
|
5326
5433
|
this.turnDiscoverySkippedReason = turnDiscoverySkippedReason;
|
|
@@ -5329,7 +5436,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5329
5436
|
this.roap.abortTurnDiscovery();
|
|
5330
5437
|
}
|
|
5331
5438
|
case 31:
|
|
5332
|
-
|
|
5439
|
+
_context16.next = 35;
|
|
5333
5440
|
break;
|
|
5334
5441
|
case 33:
|
|
5335
5442
|
// This is a retry, when join succeeded but addMedia failed, so we'll just call addMedia() again,
|
|
@@ -5337,82 +5444,82 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5337
5444
|
forceTurnDiscovery = true;
|
|
5338
5445
|
joined = true;
|
|
5339
5446
|
case 35:
|
|
5340
|
-
|
|
5447
|
+
_context16.next = 37;
|
|
5341
5448
|
return this.addMediaInternal(function () {
|
|
5342
|
-
return
|
|
5449
|
+
return _this31.joinWithMediaRetryInfo.isRetry ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
|
5343
5450
|
}, turnServerInfo, forceTurnDiscovery, mediaOptions);
|
|
5344
5451
|
case 37:
|
|
5345
|
-
mediaResponse =
|
|
5452
|
+
mediaResponse = _context16.sent;
|
|
5346
5453
|
this.joinWithMediaRetryInfo = {
|
|
5347
5454
|
isRetry: false,
|
|
5348
5455
|
prevJoinResponse: undefined
|
|
5349
5456
|
};
|
|
5350
|
-
return
|
|
5457
|
+
return _context16.abrupt("return", {
|
|
5351
5458
|
join: joinResponse,
|
|
5352
5459
|
media: mediaResponse
|
|
5353
5460
|
});
|
|
5354
5461
|
case 42:
|
|
5355
|
-
|
|
5356
|
-
|
|
5357
|
-
_loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> ',
|
|
5462
|
+
_context16.prev = 42;
|
|
5463
|
+
_context16.t0 = _context16["catch"](9);
|
|
5464
|
+
_loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> ', _context16.t0);
|
|
5358
5465
|
this.roap.abortTurnDiscovery();
|
|
5359
5466
|
if (!(joined && isRetry)) {
|
|
5360
|
-
|
|
5467
|
+
_context16.next = 56;
|
|
5361
5468
|
break;
|
|
5362
5469
|
}
|
|
5363
|
-
|
|
5364
|
-
|
|
5470
|
+
_context16.prev = 47;
|
|
5471
|
+
_context16.next = 50;
|
|
5365
5472
|
return this.leave({
|
|
5366
5473
|
resourceId: joinOptions === null || joinOptions === void 0 ? void 0 : joinOptions.resourceId,
|
|
5367
5474
|
reason: 'joinWithMedia failure'
|
|
5368
5475
|
});
|
|
5369
5476
|
case 50:
|
|
5370
|
-
|
|
5477
|
+
_context16.next = 56;
|
|
5371
5478
|
break;
|
|
5372
5479
|
case 52:
|
|
5373
|
-
|
|
5374
|
-
|
|
5375
|
-
_loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> leave error',
|
|
5376
|
-
leaveError =
|
|
5480
|
+
_context16.prev = 52;
|
|
5481
|
+
_context16.t1 = _context16["catch"](47);
|
|
5482
|
+
_loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> leave error', _context16.t1);
|
|
5483
|
+
leaveError = _context16.t1;
|
|
5377
5484
|
case 56:
|
|
5378
5485
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_WITH_MEDIA_FAILURE, {
|
|
5379
5486
|
correlation_id: this.correlationId,
|
|
5380
5487
|
locus_id: (_this$locusUrl = this.locusUrl) === null || _this$locusUrl === void 0 ? void 0 : _this$locusUrl.split('/').pop(),
|
|
5381
5488
|
// if join fails, we may end up with no locusUrl
|
|
5382
|
-
reason:
|
|
5383
|
-
stack:
|
|
5489
|
+
reason: _context16.t0.message,
|
|
5490
|
+
stack: _context16.t0.stack,
|
|
5384
5491
|
leaveErrorReason: (_leaveError = leaveError) === null || _leaveError === void 0 ? void 0 : _leaveError.message,
|
|
5385
5492
|
isRetry: isRetry
|
|
5386
5493
|
}, {
|
|
5387
|
-
type:
|
|
5494
|
+
type: _context16.t0.name
|
|
5388
5495
|
});
|
|
5389
5496
|
|
|
5390
5497
|
// if this was the first attempt, let's do a retry
|
|
5391
5498
|
shouldRetry = !isRetry;
|
|
5392
|
-
if (_internalPluginMetrics.CallDiagnosticUtils.isSdpOfferCreationError(
|
|
5499
|
+
if (_internalPluginMetrics.CallDiagnosticUtils.isSdpOfferCreationError(_context16.t0)) {
|
|
5393
5500
|
// errors related to offer creation (for example missing H264 codec) will happen again no matter how many times we try,
|
|
5394
5501
|
// so there is no point doing a retry
|
|
5395
5502
|
shouldRetry = false;
|
|
5396
5503
|
}
|
|
5397
5504
|
if (!shouldRetry) {
|
|
5398
|
-
|
|
5505
|
+
_context16.next = 64;
|
|
5399
5506
|
break;
|
|
5400
5507
|
}
|
|
5401
5508
|
_loggerProxy.default.logger.warn('Meeting:index#joinWithMedia --> retrying call to joinWithMedia');
|
|
5402
5509
|
this.joinWithMediaRetryInfo.isRetry = true;
|
|
5403
5510
|
this.joinWithMediaRetryInfo.prevJoinResponse = joinResponse;
|
|
5404
|
-
return
|
|
5511
|
+
return _context16.abrupt("return", this.joinWithMedia(options));
|
|
5405
5512
|
case 64:
|
|
5406
5513
|
this.joinWithMediaRetryInfo = {
|
|
5407
5514
|
isRetry: false,
|
|
5408
5515
|
prevJoinResponse: undefined
|
|
5409
5516
|
};
|
|
5410
|
-
throw
|
|
5517
|
+
throw _context16.t0;
|
|
5411
5518
|
case 66:
|
|
5412
5519
|
case "end":
|
|
5413
|
-
return
|
|
5520
|
+
return _context16.stop();
|
|
5414
5521
|
}
|
|
5415
|
-
},
|
|
5522
|
+
}, _callee16, this, [[9, 42], [47, 52]]);
|
|
5416
5523
|
}));
|
|
5417
5524
|
function joinWithMedia() {
|
|
5418
5525
|
return _joinWithMedia.apply(this, arguments);
|
|
@@ -5431,7 +5538,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5431
5538
|
}, {
|
|
5432
5539
|
key: "reconnect",
|
|
5433
5540
|
value: function reconnect(options) {
|
|
5434
|
-
var
|
|
5541
|
+
var _this32 = this;
|
|
5435
5542
|
_loggerProxy.default.logger.log("Meeting:index#reconnect --> attempting to reconnect meeting ".concat(this.id));
|
|
5436
5543
|
if (!this.reconnectionManager || !this.reconnectionManager.reconnect) {
|
|
5437
5544
|
return _promise.default.reject(new _parameter.default('Cannot reconnect, ReconnectionManager must first be defined.'));
|
|
@@ -5442,20 +5549,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5442
5549
|
return _promise.default.reject(new _parameter.default('Cannot reconnect, Media has not established to reconnect'));
|
|
5443
5550
|
}
|
|
5444
5551
|
this.cleanUpBeforeReconnection();
|
|
5445
|
-
return this.reconnectionManager.reconnect(options, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
5446
|
-
return _regenerator.default.wrap(function
|
|
5447
|
-
while (1) switch (
|
|
5552
|
+
return this.reconnectionManager.reconnect(options, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17() {
|
|
5553
|
+
return _regenerator.default.wrap(function _callee17$(_context17) {
|
|
5554
|
+
while (1) switch (_context17.prev = _context17.next) {
|
|
5448
5555
|
case 0:
|
|
5449
|
-
|
|
5450
|
-
return
|
|
5556
|
+
_context17.next = 2;
|
|
5557
|
+
return _this32.waitForRemoteSDPAnswer();
|
|
5451
5558
|
case 2:
|
|
5452
|
-
|
|
5453
|
-
return
|
|
5559
|
+
_context17.next = 4;
|
|
5560
|
+
return _this32.waitForMediaConnectionConnected();
|
|
5454
5561
|
case 4:
|
|
5455
5562
|
case "end":
|
|
5456
|
-
return
|
|
5563
|
+
return _context17.stop();
|
|
5457
5564
|
}
|
|
5458
|
-
},
|
|
5565
|
+
}, _callee17);
|
|
5459
5566
|
}))).then(function () {
|
|
5460
5567
|
_loggerProxy.default.logger.log('Meeting:index#reconnect --> Meeting reconnect success');
|
|
5461
5568
|
}).catch(function (error) {
|
|
@@ -5464,7 +5571,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5464
5571
|
return _promise.default.resolve();
|
|
5465
5572
|
}
|
|
5466
5573
|
_loggerProxy.default.logger.error('Meeting:index#reconnect --> Meeting reconnect failed', error);
|
|
5467
|
-
|
|
5574
|
+
_this32.uploadLogs({
|
|
5468
5575
|
file: 'meeting/index',
|
|
5469
5576
|
function: 'reconnect'
|
|
5470
5577
|
});
|
|
@@ -5511,19 +5618,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5511
5618
|
}, {
|
|
5512
5619
|
key: "setCaptionLanguage",
|
|
5513
5620
|
value: function setCaptionLanguage(language) {
|
|
5514
|
-
var
|
|
5621
|
+
var _this33 = this;
|
|
5515
5622
|
return new _promise.default(function (resolve, reject) {
|
|
5516
|
-
if (!
|
|
5623
|
+
if (!_this33.isTranscriptionSupported()) {
|
|
5517
5624
|
_loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
|
|
5518
5625
|
reject(new Error('Webex Assistant is not enabled/supported'));
|
|
5519
5626
|
}
|
|
5520
5627
|
try {
|
|
5521
5628
|
var voiceaListenerCaptionUpdate = function voiceaListenerCaptionUpdate(payload) {
|
|
5522
5629
|
// @ts-ignore
|
|
5523
|
-
|
|
5630
|
+
_this33.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
|
|
5524
5631
|
var statusCode = payload.statusCode;
|
|
5525
5632
|
if (statusCode === 200) {
|
|
5526
|
-
|
|
5633
|
+
_this33.transcription.languageOptions = _objectSpread(_objectSpread({}, _this33.transcription.languageOptions), {}, {
|
|
5527
5634
|
currentCaptionLanguage: language
|
|
5528
5635
|
});
|
|
5529
5636
|
resolve(language);
|
|
@@ -5532,9 +5639,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5532
5639
|
}
|
|
5533
5640
|
};
|
|
5534
5641
|
// @ts-ignore
|
|
5535
|
-
|
|
5642
|
+
_this33.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
|
|
5536
5643
|
// @ts-ignore
|
|
5537
|
-
|
|
5644
|
+
_this33.webex.internal.voicea.requestLanguage(language);
|
|
5538
5645
|
} catch (error) {
|
|
5539
5646
|
_loggerProxy.default.logger.error("Meeting:index#setCaptionLanguage --> ".concat(error));
|
|
5540
5647
|
reject(error);
|
|
@@ -5550,23 +5657,23 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5550
5657
|
}, {
|
|
5551
5658
|
key: "setSpokenLanguage",
|
|
5552
5659
|
value: function setSpokenLanguage(language) {
|
|
5553
|
-
var
|
|
5660
|
+
var _this34 = this;
|
|
5554
5661
|
return new _promise.default(function (resolve, reject) {
|
|
5555
|
-
if (!
|
|
5662
|
+
if (!_this34.isTranscriptionSupported()) {
|
|
5556
5663
|
_loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
|
|
5557
5664
|
reject(new Error('Webex Assistant is not enabled/supported'));
|
|
5558
5665
|
}
|
|
5559
|
-
if (
|
|
5666
|
+
if (_this34.getCurUserType() !== 'host') {
|
|
5560
5667
|
_loggerProxy.default.logger.error('Meeting:index#setSpokenLanguage --> Only host can set spoken language');
|
|
5561
5668
|
reject(new Error('Only host can set spoken language'));
|
|
5562
5669
|
}
|
|
5563
5670
|
try {
|
|
5564
5671
|
var voiceaListenerLanguageUpdate = function voiceaListenerLanguageUpdate(payload) {
|
|
5565
5672
|
// @ts-ignore
|
|
5566
|
-
|
|
5673
|
+
_this34.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
|
|
5567
5674
|
var languageCode = payload.languageCode;
|
|
5568
5675
|
if (languageCode) {
|
|
5569
|
-
|
|
5676
|
+
_this34.transcription.languageOptions = _objectSpread(_objectSpread({}, _this34.transcription.languageOptions), {}, {
|
|
5570
5677
|
currentSpokenLanguage: languageCode
|
|
5571
5678
|
});
|
|
5572
5679
|
resolve(languageCode);
|
|
@@ -5576,10 +5683,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5576
5683
|
};
|
|
5577
5684
|
|
|
5578
5685
|
// @ts-ignore
|
|
5579
|
-
|
|
5686
|
+
_this34.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
|
|
5580
5687
|
|
|
5581
5688
|
// @ts-ignore
|
|
5582
|
-
|
|
5689
|
+
_this34.webex.internal.voicea.setSpokenLanguage(language);
|
|
5583
5690
|
} catch (error) {
|
|
5584
5691
|
_loggerProxy.default.logger.error("Meeting:index#setSpokenLanguage --> ".concat(error));
|
|
5585
5692
|
reject(error);
|
|
@@ -5596,48 +5703,48 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5596
5703
|
}, {
|
|
5597
5704
|
key: "startTranscription",
|
|
5598
5705
|
value: (function () {
|
|
5599
|
-
var _startTranscription = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
5600
|
-
return _regenerator.default.wrap(function
|
|
5601
|
-
while (1) switch (
|
|
5706
|
+
var _startTranscription = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18(options) {
|
|
5707
|
+
return _regenerator.default.wrap(function _callee18$(_context18) {
|
|
5708
|
+
while (1) switch (_context18.prev = _context18.next) {
|
|
5602
5709
|
case 0:
|
|
5603
5710
|
if (!this.isJoined()) {
|
|
5604
|
-
|
|
5711
|
+
_context18.next = 14;
|
|
5605
5712
|
break;
|
|
5606
5713
|
}
|
|
5607
5714
|
_loggerProxy.default.logger.info('Meeting:index#startTranscription --> Attempting to enable transcription!');
|
|
5608
|
-
|
|
5715
|
+
_context18.prev = 2;
|
|
5609
5716
|
if (!this.areVoiceaEventsSetup) {
|
|
5610
5717
|
this.setUpVoiceaListeners();
|
|
5611
5718
|
}
|
|
5612
5719
|
|
|
5613
5720
|
// @ts-ignore
|
|
5614
|
-
|
|
5721
|
+
_context18.next = 6;
|
|
5615
5722
|
return this.webex.internal.voicea.turnOnCaptions(options === null || options === void 0 ? void 0 : options.spokenLanguage);
|
|
5616
5723
|
case 6:
|
|
5617
|
-
|
|
5724
|
+
_context18.next = 12;
|
|
5618
5725
|
break;
|
|
5619
5726
|
case 8:
|
|
5620
|
-
|
|
5621
|
-
|
|
5622
|
-
_loggerProxy.default.logger.error("Meeting:index#startTranscription --> ".concat(
|
|
5727
|
+
_context18.prev = 8;
|
|
5728
|
+
_context18.t0 = _context18["catch"](2);
|
|
5729
|
+
_loggerProxy.default.logger.error("Meeting:index#startTranscription --> ".concat(_context18.t0));
|
|
5623
5730
|
_metrics.default.sendBehavioralMetric(_constants2.default.RECEIVE_TRANSCRIPTION_FAILURE, {
|
|
5624
5731
|
correlation_id: this.correlationId,
|
|
5625
|
-
reason:
|
|
5626
|
-
stack:
|
|
5732
|
+
reason: _context18.t0.message,
|
|
5733
|
+
stack: _context18.t0.stack
|
|
5627
5734
|
});
|
|
5628
5735
|
case 12:
|
|
5629
|
-
|
|
5736
|
+
_context18.next = 16;
|
|
5630
5737
|
break;
|
|
5631
5738
|
case 14:
|
|
5632
5739
|
_loggerProxy.default.logger.error("Meeting:index#startTranscription --> meeting joined : ".concat(this.isJoined()));
|
|
5633
5740
|
throw new Error('Meeting is not joined');
|
|
5634
5741
|
case 16:
|
|
5635
5742
|
case "end":
|
|
5636
|
-
return
|
|
5743
|
+
return _context18.stop();
|
|
5637
5744
|
}
|
|
5638
|
-
},
|
|
5745
|
+
}, _callee18, this, [[2, 8]]);
|
|
5639
5746
|
}));
|
|
5640
|
-
function startTranscription(
|
|
5747
|
+
function startTranscription(_x16) {
|
|
5641
5748
|
return _startTranscription.apply(this, arguments);
|
|
5642
5749
|
}
|
|
5643
5750
|
return startTranscription;
|
|
@@ -5698,36 +5805,36 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5698
5805
|
* Scenario D: Joining any other way (sip, pstn, conversationUrl, link just need to specify resourceId)
|
|
5699
5806
|
*/
|
|
5700
5807
|
function () {
|
|
5701
|
-
var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
5702
|
-
var
|
|
5808
|
+
var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
|
|
5809
|
+
var _this35 = this;
|
|
5703
5810
|
var options,
|
|
5704
5811
|
errorMessage,
|
|
5705
5812
|
error,
|
|
5706
5813
|
joinFailed,
|
|
5707
5814
|
joinSuccess,
|
|
5708
|
-
_errorMessage,
|
|
5709
|
-
_error,
|
|
5710
5815
|
_errorMessage2,
|
|
5711
5816
|
_error2,
|
|
5712
|
-
|
|
5713
|
-
|
|
5714
|
-
|
|
5817
|
+
_errorMessage3,
|
|
5818
|
+
_error3,
|
|
5819
|
+
_args19 = arguments;
|
|
5820
|
+
return _regenerator.default.wrap(function _callee19$(_context19) {
|
|
5821
|
+
while (1) switch (_context19.prev = _context19.next) {
|
|
5715
5822
|
case 0:
|
|
5716
|
-
options =
|
|
5823
|
+
options = _args19.length > 0 && _args19[0] !== undefined ? _args19[0] : {};
|
|
5717
5824
|
if (this.webex.meetings.registered) {
|
|
5718
|
-
|
|
5825
|
+
_context19.next = 6;
|
|
5719
5826
|
break;
|
|
5720
5827
|
}
|
|
5721
5828
|
errorMessage = 'Meeting:index#join --> Device not registered';
|
|
5722
5829
|
error = new Error(errorMessage);
|
|
5723
5830
|
_loggerProxy.default.logger.error(errorMessage);
|
|
5724
|
-
return
|
|
5831
|
+
return _context19.abrupt("return", _promise.default.reject(error));
|
|
5725
5832
|
case 6:
|
|
5726
5833
|
if (!this.deferJoin) {
|
|
5727
|
-
|
|
5834
|
+
_context19.next = 8;
|
|
5728
5835
|
break;
|
|
5729
5836
|
}
|
|
5730
|
-
return
|
|
5837
|
+
return _context19.abrupt("return", this.deferJoin);
|
|
5731
5838
|
case 8:
|
|
5732
5839
|
// Create a deferred promise for a consistent resolve value from utils.
|
|
5733
5840
|
// This also prevents redundant API calls.
|
|
@@ -5751,18 +5858,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5751
5858
|
this.meetingFiniteStateMachine.reset();
|
|
5752
5859
|
}
|
|
5753
5860
|
|
|
5754
|
-
//
|
|
5755
|
-
|
|
5756
|
-
|
|
5757
|
-
|
|
5758
|
-
|
|
5759
|
-
|
|
5760
|
-
|
|
5761
|
-
|
|
5762
|
-
|
|
5763
|
-
|
|
5764
|
-
|
|
5765
|
-
|
|
5861
|
+
// send client.call.initiated unless told not to
|
|
5862
|
+
if (options.sendCallInitiated !== false) {
|
|
5863
|
+
// @ts-ignore
|
|
5864
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
5865
|
+
name: 'client.call.initiated',
|
|
5866
|
+
payload: {
|
|
5867
|
+
trigger: this.callStateForMetrics.joinTrigger || 'user-interaction',
|
|
5868
|
+
isRoapCallEnabled: true,
|
|
5869
|
+
pstnAudioType: options === null || options === void 0 ? void 0 : options.pstnAudioType
|
|
5870
|
+
},
|
|
5871
|
+
options: {
|
|
5872
|
+
meetingId: this.id
|
|
5873
|
+
}
|
|
5874
|
+
});
|
|
5875
|
+
}
|
|
5766
5876
|
_loggerProxy.default.logger.log('Meeting:index#join --> Joining a meeting');
|
|
5767
5877
|
if (this.meetingFiniteStateMachine.state === _constants.MEETING_STATE_MACHINE.STATES.ENDED) {
|
|
5768
5878
|
this.meetingFiniteStateMachine.reset();
|
|
@@ -5776,131 +5886,131 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5776
5886
|
this.wirelessShare = true;
|
|
5777
5887
|
}
|
|
5778
5888
|
if (!options.meetingQuality) {
|
|
5779
|
-
|
|
5889
|
+
_context19.next = 36;
|
|
5780
5890
|
break;
|
|
5781
5891
|
}
|
|
5782
5892
|
if (!(typeof options.meetingQuality === 'string')) {
|
|
5783
|
-
|
|
5893
|
+
_context19.next = 27;
|
|
5784
5894
|
break;
|
|
5785
5895
|
}
|
|
5786
5896
|
if (_constants.QUALITY_LEVELS[options.meetingQuality]) {
|
|
5787
|
-
|
|
5897
|
+
_context19.next = 26;
|
|
5788
5898
|
break;
|
|
5789
5899
|
}
|
|
5790
|
-
|
|
5791
|
-
|
|
5792
|
-
_loggerProxy.default.logger.error(
|
|
5793
|
-
joinFailed(
|
|
5900
|
+
_errorMessage2 = "Meeting:index#join --> ".concat(options.meetingQuality, " not defined");
|
|
5901
|
+
_error2 = new Error(_errorMessage2);
|
|
5902
|
+
_loggerProxy.default.logger.error(_errorMessage2);
|
|
5903
|
+
joinFailed(_error2);
|
|
5794
5904
|
this.deferJoin = undefined;
|
|
5795
|
-
return
|
|
5905
|
+
return _context19.abrupt("return", _promise.default.reject(_error2));
|
|
5796
5906
|
case 26:
|
|
5797
5907
|
this.mediaProperties.setRemoteQualityLevel(options.meetingQuality);
|
|
5798
5908
|
case 27:
|
|
5799
5909
|
if (!((0, _typeof2.default)(options.meetingQuality) === 'object')) {
|
|
5800
|
-
|
|
5910
|
+
_context19.next = 36;
|
|
5801
5911
|
break;
|
|
5802
5912
|
}
|
|
5803
5913
|
if (_constants.QUALITY_LEVELS[options.meetingQuality.remote]) {
|
|
5804
|
-
|
|
5914
|
+
_context19.next = 35;
|
|
5805
5915
|
break;
|
|
5806
5916
|
}
|
|
5807
|
-
|
|
5808
|
-
_loggerProxy.default.logger.error(
|
|
5809
|
-
|
|
5810
|
-
joinFailed(
|
|
5917
|
+
_errorMessage3 = "Meeting:index#join --> ".concat(options.meetingQuality.remote, " not defined");
|
|
5918
|
+
_loggerProxy.default.logger.error(_errorMessage3);
|
|
5919
|
+
_error3 = new Error(_errorMessage3);
|
|
5920
|
+
joinFailed(_error3);
|
|
5811
5921
|
this.deferJoin = undefined;
|
|
5812
|
-
return
|
|
5922
|
+
return _context19.abrupt("return", _promise.default.reject(new Error(_errorMessage3)));
|
|
5813
5923
|
case 35:
|
|
5814
5924
|
if (options.meetingQuality.remote) {
|
|
5815
5925
|
this.mediaProperties.setRemoteQualityLevel(options.meetingQuality.remote);
|
|
5816
5926
|
}
|
|
5817
5927
|
case 36:
|
|
5818
5928
|
this.isMultistream = !!options.enableMultistream;
|
|
5819
|
-
|
|
5820
|
-
|
|
5929
|
+
_context19.prev = 37;
|
|
5930
|
+
_context19.next = 40;
|
|
5821
5931
|
return this.checkAndRefreshPermissionToken(_constants.MEETING_PERMISSION_TOKEN_REFRESH_THRESHOLD_IN_SEC, _constants.MEETING_PERMISSION_TOKEN_REFRESH_REASON);
|
|
5822
5932
|
case 40:
|
|
5823
|
-
|
|
5933
|
+
_context19.next = 51;
|
|
5824
5934
|
break;
|
|
5825
5935
|
case 42:
|
|
5826
|
-
|
|
5827
|
-
|
|
5828
|
-
_loggerProxy.default.logger.error('Meeting:index#join --> Failed to refresh permission token:',
|
|
5829
|
-
if (!(
|
|
5830
|
-
|
|
5936
|
+
_context19.prev = 42;
|
|
5937
|
+
_context19.t0 = _context19["catch"](37);
|
|
5938
|
+
_loggerProxy.default.logger.error('Meeting:index#join --> Failed to refresh permission token:', _context19.t0);
|
|
5939
|
+
if (!(_context19.t0 instanceof _captchaError.default || _context19.t0 instanceof _passwordError.default || _context19.t0 instanceof _permission.default)) {
|
|
5940
|
+
_context19.next = 51;
|
|
5831
5941
|
break;
|
|
5832
5942
|
}
|
|
5833
|
-
this.meetingFiniteStateMachine.fail(
|
|
5943
|
+
this.meetingFiniteStateMachine.fail(_context19.t0);
|
|
5834
5944
|
|
|
5835
5945
|
// Upload logs on refreshpermissionToken refresh Failure
|
|
5836
5946
|
_triggerProxy.default.trigger(this, {
|
|
5837
5947
|
file: 'meeting/index',
|
|
5838
5948
|
function: 'join'
|
|
5839
5949
|
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
|
|
5840
|
-
joinFailed(
|
|
5950
|
+
joinFailed(_context19.t0);
|
|
5841
5951
|
this.deferJoin = undefined;
|
|
5842
5952
|
|
|
5843
5953
|
// if refresh permission token requires captcha, password or permission, we are throwing the errors
|
|
5844
5954
|
// and bubble it up to client
|
|
5845
|
-
return
|
|
5955
|
+
return _context19.abrupt("return", _promise.default.reject(_context19.t0));
|
|
5846
5956
|
case 51:
|
|
5847
|
-
return
|
|
5848
|
-
|
|
5849
|
-
|
|
5957
|
+
return _context19.abrupt("return", _util2.default.joinMeetingOptions(this, options).then(function (join) {
|
|
5958
|
+
_this35.meetingFiniteStateMachine.join();
|
|
5959
|
+
_this35.setupLocusMediaRequest();
|
|
5850
5960
|
|
|
5851
5961
|
// @ts-ignore
|
|
5852
|
-
|
|
5853
|
-
(0, _classPrivateFieldSet2.default)(
|
|
5962
|
+
_this35.webex.internal.device.meetingStarted();
|
|
5963
|
+
(0, _classPrivateFieldSet2.default)(_this35, _isoLocalClientMeetingJoinTime, new Date().toISOString());
|
|
5854
5964
|
_loggerProxy.default.logger.log('Meeting:index#join --> Success');
|
|
5855
5965
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
|
|
5856
|
-
correlation_id:
|
|
5966
|
+
correlation_id: _this35.correlationId
|
|
5857
5967
|
});
|
|
5858
5968
|
joinSuccess(join);
|
|
5859
|
-
|
|
5969
|
+
_this35.deferJoin = undefined;
|
|
5860
5970
|
return join;
|
|
5861
5971
|
}).catch(function (error) {
|
|
5862
|
-
var
|
|
5863
|
-
|
|
5972
|
+
var _this35$meetingInfo, _error$error;
|
|
5973
|
+
_this35.meetingFiniteStateMachine.fail(error);
|
|
5864
5974
|
_loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
|
|
5865
5975
|
|
|
5866
5976
|
// @ts-ignore
|
|
5867
|
-
|
|
5977
|
+
_this35.webex.internal.newMetrics.submitClientEvent({
|
|
5868
5978
|
name: 'client.locus.join.response',
|
|
5869
5979
|
payload: {
|
|
5870
5980
|
identifiers: {
|
|
5871
|
-
meetingLookupUrl: (
|
|
5981
|
+
meetingLookupUrl: (_this35$meetingInfo = _this35.meetingInfo) === null || _this35$meetingInfo === void 0 ? void 0 : _this35$meetingInfo.meetingLookupUrl
|
|
5872
5982
|
}
|
|
5873
5983
|
},
|
|
5874
5984
|
options: {
|
|
5875
|
-
meetingId:
|
|
5985
|
+
meetingId: _this35.id,
|
|
5876
5986
|
rawError: error
|
|
5877
5987
|
}
|
|
5878
5988
|
});
|
|
5879
5989
|
|
|
5880
5990
|
// TODO: change this to error codes and pre defined dictionary
|
|
5881
5991
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
|
|
5882
|
-
correlation_id:
|
|
5992
|
+
correlation_id: _this35.correlationId,
|
|
5883
5993
|
reason: (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.message,
|
|
5884
5994
|
stack: error.stack
|
|
5885
5995
|
});
|
|
5886
5996
|
|
|
5887
5997
|
// Upload logs on join Failure
|
|
5888
|
-
_triggerProxy.default.trigger(
|
|
5998
|
+
_triggerProxy.default.trigger(_this35, {
|
|
5889
5999
|
file: 'meeting/index',
|
|
5890
6000
|
function: 'join'
|
|
5891
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
6001
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this35);
|
|
5892
6002
|
joinFailed(error);
|
|
5893
|
-
|
|
6003
|
+
_this35.deferJoin = undefined;
|
|
5894
6004
|
return _promise.default.reject(error);
|
|
5895
6005
|
}).then(function (join) {
|
|
5896
6006
|
// @ts-ignore - config coming from registerPlugin
|
|
5897
|
-
if (
|
|
6007
|
+
if (_this35.config.enableAutomaticLLM) {
|
|
5898
6008
|
// @ts-ignore
|
|
5899
|
-
|
|
5900
|
-
|
|
6009
|
+
_this35.webex.internal.llm.on('online', _this35.handleLLMOnline);
|
|
6010
|
+
_this35.updateLLMConnection().catch(function (error) {
|
|
5901
6011
|
_loggerProxy.default.logger.error('Meeting:index#join --> Transcription Socket Connection Failed', error);
|
|
5902
6012
|
_metrics.default.sendBehavioralMetric(_constants2.default.LLM_CONNECTION_AFTER_JOIN_FAILURE, {
|
|
5903
|
-
correlation_id:
|
|
6013
|
+
correlation_id: _this35.correlationId,
|
|
5904
6014
|
reason: error === null || error === void 0 ? void 0 : error.message,
|
|
5905
6015
|
stack: error.stack
|
|
5906
6016
|
});
|
|
@@ -5912,9 +6022,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5912
6022
|
}));
|
|
5913
6023
|
case 52:
|
|
5914
6024
|
case "end":
|
|
5915
|
-
return
|
|
6025
|
+
return _context19.stop();
|
|
5916
6026
|
}
|
|
5917
|
-
},
|
|
6027
|
+
}, _callee19, this, [[37, 42]]);
|
|
5918
6028
|
}));
|
|
5919
6029
|
function join() {
|
|
5920
6030
|
return _join.apply(this, arguments);
|
|
@@ -5931,54 +6041,55 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5931
6041
|
}, {
|
|
5932
6042
|
key: "updateLLMConnection",
|
|
5933
6043
|
value: (function () {
|
|
5934
|
-
var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
5935
|
-
var
|
|
5936
|
-
var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, isJoined;
|
|
5937
|
-
return _regenerator.default.wrap(function
|
|
5938
|
-
while (1) switch (
|
|
6044
|
+
var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20() {
|
|
6045
|
+
var _this36 = this;
|
|
6046
|
+
var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, practiceSessionDatachannelUrl, isJoined, dataChannelUrl;
|
|
6047
|
+
return _regenerator.default.wrap(function _callee20$(_context20) {
|
|
6048
|
+
while (1) switch (_context20.prev = _context20.next) {
|
|
5939
6049
|
case 0:
|
|
5940
6050
|
// @ts-ignore - Fix type
|
|
5941
|
-
_this$locusInfo6 = this.locusInfo, url = _this$locusInfo6.url, _this$locusInfo6$info = _this$locusInfo6.info, _this$locusInfo6$info2 = _this$locusInfo6$info === void 0 ? {} : _this$locusInfo6$info, datachannelUrl = _this$locusInfo6$info2.datachannelUrl;
|
|
5942
|
-
isJoined = this.isJoined(); //
|
|
6051
|
+
_this$locusInfo6 = this.locusInfo, url = _this$locusInfo6.url, _this$locusInfo6$info = _this$locusInfo6.info, _this$locusInfo6$info2 = _this$locusInfo6$info === void 0 ? {} : _this$locusInfo6$info, datachannelUrl = _this$locusInfo6$info2.datachannelUrl, practiceSessionDatachannelUrl = _this$locusInfo6$info2.practiceSessionDatachannelUrl;
|
|
6052
|
+
isJoined = this.isJoined(); // webinar panelist should use new data channel in practice session
|
|
6053
|
+
dataChannelUrl = this.webinar.isJoinPracticeSessionDataChannel() && practiceSessionDatachannelUrl ? practiceSessionDatachannelUrl : datachannelUrl; // @ts-ignore - Fix type
|
|
5943
6054
|
if (!this.webex.internal.llm.isConnected()) {
|
|
5944
|
-
|
|
6055
|
+
_context20.next = 9;
|
|
5945
6056
|
break;
|
|
5946
6057
|
}
|
|
5947
6058
|
if (!(
|
|
5948
6059
|
// @ts-ignore - Fix type
|
|
5949
6060
|
url === this.webex.internal.llm.getLocusUrl() &&
|
|
5950
6061
|
// @ts-ignore - Fix type
|
|
5951
|
-
|
|
5952
|
-
|
|
6062
|
+
dataChannelUrl === this.webex.internal.llm.getDatachannelUrl() && isJoined)) {
|
|
6063
|
+
_context20.next = 6;
|
|
5953
6064
|
break;
|
|
5954
6065
|
}
|
|
5955
|
-
return
|
|
5956
|
-
case
|
|
5957
|
-
|
|
6066
|
+
return _context20.abrupt("return", undefined);
|
|
6067
|
+
case 6:
|
|
6068
|
+
_context20.next = 8;
|
|
5958
6069
|
return this.webex.internal.llm.disconnectLLM();
|
|
5959
|
-
case
|
|
6070
|
+
case 8:
|
|
5960
6071
|
// @ts-ignore - Fix type
|
|
5961
6072
|
this.webex.internal.llm.off('event:relay.event', this.processRelayEvent);
|
|
5962
|
-
case
|
|
6073
|
+
case 9:
|
|
5963
6074
|
if (isJoined) {
|
|
5964
|
-
|
|
6075
|
+
_context20.next = 11;
|
|
5965
6076
|
break;
|
|
5966
6077
|
}
|
|
5967
|
-
return
|
|
5968
|
-
case
|
|
5969
|
-
return
|
|
6078
|
+
return _context20.abrupt("return", undefined);
|
|
6079
|
+
case 11:
|
|
6080
|
+
return _context20.abrupt("return", this.webex.internal.llm.registerAndConnect(url, dataChannelUrl).then(function (registerAndConnectResult) {
|
|
5970
6081
|
// @ts-ignore - Fix type
|
|
5971
|
-
|
|
6082
|
+
_this36.webex.internal.llm.off('event:relay.event', _this36.processRelayEvent);
|
|
5972
6083
|
// @ts-ignore - Fix type
|
|
5973
|
-
|
|
6084
|
+
_this36.webex.internal.llm.on('event:relay.event', _this36.processRelayEvent);
|
|
5974
6085
|
_loggerProxy.default.logger.info('Meeting:index#updateLLMConnection --> enabled to receive relay events!');
|
|
5975
6086
|
return _promise.default.resolve(registerAndConnectResult);
|
|
5976
6087
|
}));
|
|
5977
|
-
case
|
|
6088
|
+
case 12:
|
|
5978
6089
|
case "end":
|
|
5979
|
-
return
|
|
6090
|
+
return _context20.stop();
|
|
5980
6091
|
}
|
|
5981
|
-
},
|
|
6092
|
+
}, _callee20, this);
|
|
5982
6093
|
}));
|
|
5983
6094
|
function updateLLMConnection() {
|
|
5984
6095
|
return _updateLLMConnection.apply(this, arguments);
|
|
@@ -6024,7 +6135,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6024
6135
|
}, {
|
|
6025
6136
|
key: "dialInPstn",
|
|
6026
6137
|
value: function dialInPstn() {
|
|
6027
|
-
var
|
|
6138
|
+
var _this37 = this;
|
|
6028
6139
|
if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
|
|
6029
6140
|
|
|
6030
6141
|
var correlationId = this.correlationId,
|
|
@@ -6040,10 +6151,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6040
6151
|
}).catch(function (error) {
|
|
6041
6152
|
var _error$error2;
|
|
6042
6153
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
|
|
6043
|
-
correlation_id:
|
|
6044
|
-
dial_in_url:
|
|
6154
|
+
correlation_id: _this37.correlationId,
|
|
6155
|
+
dial_in_url: _this37.dialInUrl,
|
|
6045
6156
|
locus_id: locusUrl.split('/').pop(),
|
|
6046
|
-
client_url:
|
|
6157
|
+
client_url: _this37.deviceUrl,
|
|
6047
6158
|
reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
|
|
6048
6159
|
stack: error.stack
|
|
6049
6160
|
});
|
|
@@ -6061,7 +6172,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6061
6172
|
}, {
|
|
6062
6173
|
key: "dialOutPstn",
|
|
6063
6174
|
value: function dialOutPstn(phoneNumber) {
|
|
6064
|
-
var
|
|
6175
|
+
var _this38 = this;
|
|
6065
6176
|
if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
|
|
6066
6177
|
|
|
6067
6178
|
var correlationId = this.correlationId,
|
|
@@ -6078,10 +6189,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6078
6189
|
}).catch(function (error) {
|
|
6079
6190
|
var _error$error3;
|
|
6080
6191
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
|
|
6081
|
-
correlation_id:
|
|
6082
|
-
dial_out_url:
|
|
6192
|
+
correlation_id: _this38.correlationId,
|
|
6193
|
+
dial_out_url: _this38.dialOutUrl,
|
|
6083
6194
|
locus_id: locusUrl.split('/').pop(),
|
|
6084
|
-
client_url:
|
|
6195
|
+
client_url: _this38.deviceUrl,
|
|
6085
6196
|
reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
|
|
6086
6197
|
stack: error.stack
|
|
6087
6198
|
});
|
|
@@ -6112,7 +6223,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6112
6223
|
}, {
|
|
6113
6224
|
key: "moveTo",
|
|
6114
6225
|
value: function moveTo(resourceId) {
|
|
6115
|
-
var
|
|
6226
|
+
var _this39 = this;
|
|
6116
6227
|
if (!resourceId) {
|
|
6117
6228
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
|
6118
6229
|
}
|
|
@@ -6150,18 +6261,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6150
6261
|
meetingId: this.id
|
|
6151
6262
|
}
|
|
6152
6263
|
});
|
|
6153
|
-
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.SELF_OBSERVING, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6264
|
+
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.SELF_OBSERVING, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21() {
|
|
6154
6265
|
var mediaSettings;
|
|
6155
|
-
return _regenerator.default.wrap(function
|
|
6156
|
-
while (1) switch (
|
|
6266
|
+
return _regenerator.default.wrap(function _callee21$(_context21) {
|
|
6267
|
+
while (1) switch (_context21.prev = _context21.next) {
|
|
6157
6268
|
case 0:
|
|
6158
|
-
|
|
6159
|
-
if (!(
|
|
6160
|
-
|
|
6269
|
+
_context21.prev = 0;
|
|
6270
|
+
if (!(_this39.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
|
|
6271
|
+
_context21.next = 4;
|
|
6161
6272
|
break;
|
|
6162
6273
|
}
|
|
6163
|
-
|
|
6164
|
-
return
|
|
6274
|
+
_context21.next = 4;
|
|
6275
|
+
return _this39.releaseScreenShareFloor();
|
|
6165
6276
|
case 4:
|
|
6166
6277
|
mediaSettings = {
|
|
6167
6278
|
mediaDirection: {
|
|
@@ -6173,55 +6284,55 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6173
6284
|
receiveShare: true
|
|
6174
6285
|
}
|
|
6175
6286
|
};
|
|
6176
|
-
|
|
6177
|
-
|
|
6287
|
+
_this39.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
|
|
6288
|
+
_this39.mediaProperties.unsetRemoteMedia();
|
|
6178
6289
|
|
|
6179
6290
|
// when a move to is intiated by the client , Locus delets the existing media node from the server as soon the device answers the meeting
|
|
6180
6291
|
// once the device answers we close the old connection and create new media server connection with only share enabled
|
|
6181
|
-
if (!
|
|
6182
|
-
|
|
6292
|
+
if (!_this39.statsAnalyzer) {
|
|
6293
|
+
_context21.next = 10;
|
|
6183
6294
|
break;
|
|
6184
6295
|
}
|
|
6185
|
-
|
|
6186
|
-
return
|
|
6296
|
+
_context21.next = 10;
|
|
6297
|
+
return _this39.statsAnalyzer.stopAnalyzer();
|
|
6187
6298
|
case 10:
|
|
6188
|
-
|
|
6189
|
-
return
|
|
6299
|
+
_context21.next = 12;
|
|
6300
|
+
return _this39.closeRemoteStreams();
|
|
6190
6301
|
case 12:
|
|
6191
|
-
|
|
6192
|
-
return
|
|
6302
|
+
_context21.next = 14;
|
|
6303
|
+
return _this39.closePeerConnections();
|
|
6193
6304
|
case 14:
|
|
6194
|
-
|
|
6195
|
-
|
|
6196
|
-
|
|
6197
|
-
|
|
6198
|
-
|
|
6199
|
-
return
|
|
6305
|
+
_this39.cleanupLocalStreams();
|
|
6306
|
+
_this39.unsetRemoteStreams();
|
|
6307
|
+
_this39.unsetPeerConnections();
|
|
6308
|
+
_this39.reconnectionManager.cleanUp();
|
|
6309
|
+
_context21.next = 20;
|
|
6310
|
+
return _this39.addMedia({
|
|
6200
6311
|
audioEnabled: false,
|
|
6201
6312
|
videoEnabled: false,
|
|
6202
6313
|
shareVideoEnabled: true
|
|
6203
6314
|
});
|
|
6204
6315
|
case 20:
|
|
6205
6316
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
|
|
6206
|
-
|
|
6207
|
-
|
|
6317
|
+
_this39.isMoveToInProgress = false;
|
|
6318
|
+
_context21.next = 29;
|
|
6208
6319
|
break;
|
|
6209
6320
|
case 24:
|
|
6210
|
-
|
|
6211
|
-
|
|
6212
|
-
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId',
|
|
6321
|
+
_context21.prev = 24;
|
|
6322
|
+
_context21.t0 = _context21["catch"](0);
|
|
6323
|
+
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context21.t0);
|
|
6213
6324
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
|
6214
|
-
correlation_id:
|
|
6215
|
-
locus_id:
|
|
6216
|
-
reason:
|
|
6217
|
-
stack:
|
|
6325
|
+
correlation_id: _this39.correlationId,
|
|
6326
|
+
locus_id: _this39.locusUrl.split('/').pop(),
|
|
6327
|
+
reason: _context21.t0.message,
|
|
6328
|
+
stack: _context21.t0.stack
|
|
6218
6329
|
});
|
|
6219
|
-
|
|
6330
|
+
_this39.isMoveToInProgress = false;
|
|
6220
6331
|
case 29:
|
|
6221
6332
|
case "end":
|
|
6222
|
-
return
|
|
6333
|
+
return _context21.stop();
|
|
6223
6334
|
}
|
|
6224
|
-
},
|
|
6335
|
+
}, _callee21, null, [[0, 24]]);
|
|
6225
6336
|
})));
|
|
6226
6337
|
_loggerProxy.default.logger.info('Meeting:index#moveTo --> Initated moved to using resourceId', resourceId);
|
|
6227
6338
|
|
|
@@ -6232,17 +6343,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6232
6343
|
resourceId: resourceId,
|
|
6233
6344
|
moveToResource: true
|
|
6234
6345
|
}).then(function () {
|
|
6235
|
-
|
|
6346
|
+
_this39.meetingFiniteStateMachine.join();
|
|
6236
6347
|
}).catch(function (error) {
|
|
6237
|
-
|
|
6348
|
+
_this39.meetingFiniteStateMachine.fail(error);
|
|
6238
6349
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
|
6239
|
-
correlation_id:
|
|
6240
|
-
locus_id:
|
|
6350
|
+
correlation_id: _this39.correlationId,
|
|
6351
|
+
locus_id: _this39.locusUrl.split('/').pop(),
|
|
6241
6352
|
reason: error.message,
|
|
6242
6353
|
stack: error.stack
|
|
6243
6354
|
});
|
|
6244
6355
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', error);
|
|
6245
|
-
|
|
6356
|
+
_this39.isMoveToInProgress = false;
|
|
6246
6357
|
return _promise.default.reject(error);
|
|
6247
6358
|
});
|
|
6248
6359
|
}
|
|
@@ -6257,7 +6368,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6257
6368
|
}, {
|
|
6258
6369
|
key: "moveFrom",
|
|
6259
6370
|
value: function moveFrom(resourceId) {
|
|
6260
|
-
var
|
|
6371
|
+
var _this40 = this;
|
|
6261
6372
|
// On moveFrom ask the developer to re capture it moveFrom then updateMedia
|
|
6262
6373
|
if (!resourceId) {
|
|
6263
6374
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
|
@@ -6272,19 +6383,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6272
6383
|
}
|
|
6273
6384
|
});
|
|
6274
6385
|
return _util2.default.joinMeetingOptions(this).then(function () {
|
|
6275
|
-
return _util2.default.leaveMeeting(
|
|
6386
|
+
return _util2.default.leaveMeeting(_this40, {
|
|
6276
6387
|
resourceId: resourceId,
|
|
6277
6388
|
correlationId: oldCorrelationId,
|
|
6278
6389
|
moveMeeting: true
|
|
6279
6390
|
}).then(function () {
|
|
6280
|
-
|
|
6391
|
+
_this40.resourceId = '';
|
|
6281
6392
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
|
|
6282
6393
|
});
|
|
6283
6394
|
}).catch(function (error) {
|
|
6284
|
-
|
|
6395
|
+
_this40.meetingFiniteStateMachine.fail(error);
|
|
6285
6396
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
|
|
6286
|
-
correlation_id:
|
|
6287
|
-
locus_id:
|
|
6397
|
+
correlation_id: _this40.correlationId,
|
|
6398
|
+
locus_id: _this40.locusUrl.split('/').pop(),
|
|
6288
6399
|
reason: error.message,
|
|
6289
6400
|
stack: error.stack
|
|
6290
6401
|
});
|
|
@@ -6309,10 +6420,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6309
6420
|
}, {
|
|
6310
6421
|
key: "createMediaConnection",
|
|
6311
6422
|
value: (function () {
|
|
6312
|
-
var _createMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6423
|
+
var _createMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee22(turnServerInfo, bundlePolicy) {
|
|
6313
6424
|
var mc, audioEnabled, videoEnabled, shareEnabled;
|
|
6314
|
-
return _regenerator.default.wrap(function
|
|
6315
|
-
while (1) switch (
|
|
6425
|
+
return _regenerator.default.wrap(function _callee22$(_context22) {
|
|
6426
|
+
while (1) switch (_context22.prev = _context22.next) {
|
|
6316
6427
|
case 0:
|
|
6317
6428
|
this.rtcMetrics = this.isMultistream ?
|
|
6318
6429
|
// @ts-ignore
|
|
@@ -6344,42 +6455,42 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6344
6455
|
|
|
6345
6456
|
// publish the streams
|
|
6346
6457
|
if (!this.mediaProperties.audioStream) {
|
|
6347
|
-
|
|
6458
|
+
_context22.next = 9;
|
|
6348
6459
|
break;
|
|
6349
6460
|
}
|
|
6350
6461
|
this.setSendNamedMediaGroup(_internalMediaCore.MediaType.AudioMain);
|
|
6351
|
-
|
|
6462
|
+
_context22.next = 9;
|
|
6352
6463
|
return this.publishStream(_internalMediaCore.MediaType.AudioMain, this.mediaProperties.audioStream);
|
|
6353
6464
|
case 9:
|
|
6354
6465
|
if (!this.mediaProperties.videoStream) {
|
|
6355
|
-
|
|
6466
|
+
_context22.next = 12;
|
|
6356
6467
|
break;
|
|
6357
6468
|
}
|
|
6358
|
-
|
|
6469
|
+
_context22.next = 12;
|
|
6359
6470
|
return this.publishStream(_internalMediaCore.MediaType.VideoMain, this.mediaProperties.videoStream);
|
|
6360
6471
|
case 12:
|
|
6361
6472
|
if (!this.mediaProperties.shareVideoStream) {
|
|
6362
|
-
|
|
6473
|
+
_context22.next = 15;
|
|
6363
6474
|
break;
|
|
6364
6475
|
}
|
|
6365
|
-
|
|
6476
|
+
_context22.next = 15;
|
|
6366
6477
|
return this.publishStream(_internalMediaCore.MediaType.VideoSlides, this.mediaProperties.shareVideoStream);
|
|
6367
6478
|
case 15:
|
|
6368
6479
|
if (!(this.isMultistream && this.mediaProperties.shareAudioStream)) {
|
|
6369
|
-
|
|
6480
|
+
_context22.next = 18;
|
|
6370
6481
|
break;
|
|
6371
6482
|
}
|
|
6372
|
-
|
|
6483
|
+
_context22.next = 18;
|
|
6373
6484
|
return this.publishStream(_internalMediaCore.MediaType.AudioSlides, this.mediaProperties.shareAudioStream);
|
|
6374
6485
|
case 18:
|
|
6375
|
-
return
|
|
6486
|
+
return _context22.abrupt("return", mc);
|
|
6376
6487
|
case 19:
|
|
6377
6488
|
case "end":
|
|
6378
|
-
return
|
|
6489
|
+
return _context22.stop();
|
|
6379
6490
|
}
|
|
6380
|
-
},
|
|
6491
|
+
}, _callee22, this);
|
|
6381
6492
|
}));
|
|
6382
|
-
function createMediaConnection(
|
|
6493
|
+
function createMediaConnection(_x17, _x18) {
|
|
6383
6494
|
return _createMediaConnection.apply(this, arguments);
|
|
6384
6495
|
}
|
|
6385
6496
|
return createMediaConnection;
|
|
@@ -6397,9 +6508,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6397
6508
|
}, {
|
|
6398
6509
|
key: "forwardEvent",
|
|
6399
6510
|
value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
|
|
6400
|
-
var
|
|
6511
|
+
var _this41 = this;
|
|
6401
6512
|
eventEmitter.on(eventTypeToForward, function (data) {
|
|
6402
|
-
return _triggerProxy.default.trigger(
|
|
6513
|
+
return _triggerProxy.default.trigger(_this41, {
|
|
6403
6514
|
file: 'meetings',
|
|
6404
6515
|
function: 'addMedia'
|
|
6405
6516
|
}, meetingEventType, data);
|
|
@@ -6417,11 +6528,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6417
6528
|
}, {
|
|
6418
6529
|
key: "setUpLocalStreamReferences",
|
|
6419
6530
|
value: (function () {
|
|
6420
|
-
var _setUpLocalStreamReferences = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6531
|
+
var _setUpLocalStreamReferences = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee23(localStreams) {
|
|
6421
6532
|
var _localStreams$microph, _localStreams$camera, _localStreams$screenS, _localStreams$screenS2, _localStreams$screenS3, _localStreams$screenS4, _localStreams$screenS5, _localStreams$screenS6;
|
|
6422
6533
|
var setUpStreamPromises;
|
|
6423
|
-
return _regenerator.default.wrap(function
|
|
6424
|
-
while (1) switch (
|
|
6534
|
+
return _regenerator.default.wrap(function _callee23$(_context23) {
|
|
6535
|
+
while (1) switch (_context23.prev = _context23.next) {
|
|
6425
6536
|
case 0:
|
|
6426
6537
|
setUpStreamPromises = [];
|
|
6427
6538
|
if (localStreams !== null && localStreams !== void 0 && localStreams.microphone && (localStreams === null || localStreams === void 0 ? void 0 : (_localStreams$microph = localStreams.microphone) === null || _localStreams$microph === void 0 ? void 0 : _localStreams$microph.readyState) !== 'ended') {
|
|
@@ -6436,24 +6547,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6436
6547
|
if (localStreams !== null && localStreams !== void 0 && (_localStreams$screenS4 = localStreams.screenShare) !== null && _localStreams$screenS4 !== void 0 && _localStreams$screenS4.audio && (localStreams === null || localStreams === void 0 ? void 0 : (_localStreams$screenS5 = localStreams.screenShare) === null || _localStreams$screenS5 === void 0 ? void 0 : (_localStreams$screenS6 = _localStreams$screenS5.audio) === null || _localStreams$screenS6 === void 0 ? void 0 : _localStreams$screenS6.readyState) !== 'ended') {
|
|
6437
6548
|
setUpStreamPromises.push(this.setLocalShareAudioStream(localStreams.screenShare.audio));
|
|
6438
6549
|
}
|
|
6439
|
-
|
|
6440
|
-
|
|
6550
|
+
_context23.prev = 5;
|
|
6551
|
+
_context23.next = 8;
|
|
6441
6552
|
return _promise.default.all(setUpStreamPromises);
|
|
6442
6553
|
case 8:
|
|
6443
|
-
|
|
6554
|
+
_context23.next = 14;
|
|
6444
6555
|
break;
|
|
6445
6556
|
case 10:
|
|
6446
|
-
|
|
6447
|
-
|
|
6448
|
-
_loggerProxy.default.logger.error("Meeting:index#addMedia():setUpLocalStreamReferences --> Error , ",
|
|
6449
|
-
throw
|
|
6557
|
+
_context23.prev = 10;
|
|
6558
|
+
_context23.t0 = _context23["catch"](5);
|
|
6559
|
+
_loggerProxy.default.logger.error("Meeting:index#addMedia():setUpLocalStreamReferences --> Error , ", _context23.t0);
|
|
6560
|
+
throw _context23.t0;
|
|
6450
6561
|
case 14:
|
|
6451
6562
|
case "end":
|
|
6452
|
-
return
|
|
6563
|
+
return _context23.stop();
|
|
6453
6564
|
}
|
|
6454
|
-
},
|
|
6565
|
+
}, _callee23, this, [[5, 10]]);
|
|
6455
6566
|
}));
|
|
6456
|
-
function setUpLocalStreamReferences(
|
|
6567
|
+
function setUpLocalStreamReferences(_x19) {
|
|
6457
6568
|
return _setUpLocalStreamReferences.apply(this, arguments);
|
|
6458
6569
|
}
|
|
6459
6570
|
return setUpLocalStreamReferences;
|
|
@@ -6468,72 +6579,72 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6468
6579
|
}, {
|
|
6469
6580
|
key: "waitForMediaConnectionConnected",
|
|
6470
6581
|
value: (function () {
|
|
6471
|
-
var _waitForMediaConnectionConnected = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6582
|
+
var _waitForMediaConnectionConnected = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24() {
|
|
6472
6583
|
var iceConnected, _this$mediaProperties6, _this$mediaProperties7, _this$mediaProperties8, _this$mediaProperties9, _this$mediaProperties10, _this$mediaProperties11, _this$mediaProperties12;
|
|
6473
|
-
return _regenerator.default.wrap(function
|
|
6474
|
-
while (1) switch (
|
|
6584
|
+
return _regenerator.default.wrap(function _callee24$(_context24) {
|
|
6585
|
+
while (1) switch (_context24.prev = _context24.next) {
|
|
6475
6586
|
case 0:
|
|
6476
|
-
|
|
6477
|
-
|
|
6587
|
+
_context24.prev = 0;
|
|
6588
|
+
_context24.next = 3;
|
|
6478
6589
|
return this.mediaProperties.waitForMediaConnectionConnected();
|
|
6479
6590
|
case 3:
|
|
6480
|
-
|
|
6591
|
+
_context24.next = 30;
|
|
6481
6592
|
break;
|
|
6482
6593
|
case 5:
|
|
6483
|
-
|
|
6484
|
-
|
|
6485
|
-
iceConnected =
|
|
6594
|
+
_context24.prev = 5;
|
|
6595
|
+
_context24.t0 = _context24["catch"](0);
|
|
6596
|
+
iceConnected = _context24.t0.iceConnected;
|
|
6486
6597
|
if (this.hasMediaConnectionConnectedAtLeastOnce) {
|
|
6487
|
-
|
|
6598
|
+
_context24.next = 29;
|
|
6488
6599
|
break;
|
|
6489
6600
|
}
|
|
6490
|
-
|
|
6491
|
-
|
|
6492
|
-
|
|
6493
|
-
|
|
6494
|
-
|
|
6495
|
-
|
|
6496
|
-
|
|
6497
|
-
|
|
6498
|
-
|
|
6601
|
+
_context24.t1 = this.webex.internal.newMetrics;
|
|
6602
|
+
_context24.t2 = !this.turnServerUsed;
|
|
6603
|
+
_context24.t3 = this.addMediaData.icePhaseCallback();
|
|
6604
|
+
_context24.t4 = this.webex.internal.newMetrics.callDiagnosticMetrics;
|
|
6605
|
+
_context24.t5 = _internalPluginMetrics.CallDiagnosticUtils;
|
|
6606
|
+
_context24.t6 = ((_this$mediaProperties6 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties6 === void 0 ? void 0 : (_this$mediaProperties7 = _this$mediaProperties6.multistreamConnection) === null || _this$mediaProperties7 === void 0 ? void 0 : (_this$mediaProperties8 = _this$mediaProperties7.pc) === null || _this$mediaProperties8 === void 0 ? void 0 : (_this$mediaProperties9 = _this$mediaProperties8.pc) === null || _this$mediaProperties9 === void 0 ? void 0 : _this$mediaProperties9.signalingState) || ((_this$mediaProperties10 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties10 === void 0 ? void 0 : (_this$mediaProperties11 = _this$mediaProperties10.mediaConnection) === null || _this$mediaProperties11 === void 0 ? void 0 : (_this$mediaProperties12 = _this$mediaProperties11.pc) === null || _this$mediaProperties12 === void 0 ? void 0 : _this$mediaProperties12.signalingState) || 'unknown';
|
|
6607
|
+
_context24.t7 = iceConnected;
|
|
6608
|
+
_context24.t8 = this.turnServerUsed;
|
|
6609
|
+
_context24.next = 19;
|
|
6499
6610
|
return this.webex.meetings.reachability.isWebexMediaBackendUnreachable().catch(function () {
|
|
6500
6611
|
return false;
|
|
6501
6612
|
});
|
|
6502
6613
|
case 19:
|
|
6503
|
-
|
|
6504
|
-
|
|
6505
|
-
signalingState:
|
|
6506
|
-
iceConnected:
|
|
6507
|
-
turnServerUsed:
|
|
6508
|
-
unreachable:
|
|
6614
|
+
_context24.t9 = _context24.sent;
|
|
6615
|
+
_context24.t10 = {
|
|
6616
|
+
signalingState: _context24.t6,
|
|
6617
|
+
iceConnected: _context24.t7,
|
|
6618
|
+
turnServerUsed: _context24.t8,
|
|
6619
|
+
unreachable: _context24.t9
|
|
6509
6620
|
};
|
|
6510
|
-
|
|
6511
|
-
|
|
6512
|
-
clientErrorCode:
|
|
6621
|
+
_context24.t11 = _context24.t5.generateClientErrorCodeForIceFailure.call(_context24.t5, _context24.t10);
|
|
6622
|
+
_context24.t12 = {
|
|
6623
|
+
clientErrorCode: _context24.t11
|
|
6513
6624
|
};
|
|
6514
|
-
|
|
6515
|
-
|
|
6516
|
-
|
|
6517
|
-
canProceed:
|
|
6518
|
-
icePhase:
|
|
6519
|
-
errors:
|
|
6625
|
+
_context24.t13 = _context24.t4.getErrorPayloadForClientErrorCode.call(_context24.t4, _context24.t12);
|
|
6626
|
+
_context24.t14 = [_context24.t13];
|
|
6627
|
+
_context24.t15 = {
|
|
6628
|
+
canProceed: _context24.t2,
|
|
6629
|
+
icePhase: _context24.t3,
|
|
6630
|
+
errors: _context24.t14
|
|
6520
6631
|
};
|
|
6521
|
-
|
|
6632
|
+
_context24.t16 = {
|
|
6522
6633
|
meetingId: this.id
|
|
6523
6634
|
};
|
|
6524
|
-
|
|
6635
|
+
_context24.t17 = {
|
|
6525
6636
|
name: 'client.ice.end',
|
|
6526
|
-
payload:
|
|
6527
|
-
options:
|
|
6637
|
+
payload: _context24.t15,
|
|
6638
|
+
options: _context24.t16
|
|
6528
6639
|
};
|
|
6529
|
-
|
|
6640
|
+
_context24.t1.submitClientEvent.call(_context24.t1, _context24.t17);
|
|
6530
6641
|
case 29:
|
|
6531
6642
|
throw new Error("Timed out waiting for media connection to be connected, correlationId=".concat(this.correlationId));
|
|
6532
6643
|
case 30:
|
|
6533
6644
|
case "end":
|
|
6534
|
-
return
|
|
6645
|
+
return _context24.stop();
|
|
6535
6646
|
}
|
|
6536
|
-
},
|
|
6647
|
+
}, _callee24, this, [[0, 5]]);
|
|
6537
6648
|
}));
|
|
6538
6649
|
function waitForMediaConnectionConnected() {
|
|
6539
6650
|
return _waitForMediaConnectionConnected.apply(this, arguments);
|
|
@@ -6565,18 +6676,6 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6565
6676
|
}
|
|
6566
6677
|
}
|
|
6567
6678
|
|
|
6568
|
-
/**
|
|
6569
|
-
* Handles device logging
|
|
6570
|
-
*
|
|
6571
|
-
* @private
|
|
6572
|
-
* @static
|
|
6573
|
-
* @param {boolean} isAudioEnabled
|
|
6574
|
-
* @param {boolean} isVideoEnabled
|
|
6575
|
-
* @returns {Promise<void>}
|
|
6576
|
-
*/
|
|
6577
|
-
}, {
|
|
6578
|
-
key: "waitForRemoteSDPAnswer",
|
|
6579
|
-
value: (
|
|
6580
6679
|
/**
|
|
6581
6680
|
* Returns a promise. This promise is created once the local sdp offer has been successfully created and is resolved
|
|
6582
6681
|
* once the remote sdp answer has been received.
|
|
@@ -6584,49 +6683,51 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6584
6683
|
* @private
|
|
6585
6684
|
* @returns {Promise<void>}
|
|
6586
6685
|
*/
|
|
6587
|
-
|
|
6588
|
-
|
|
6589
|
-
|
|
6686
|
+
}, {
|
|
6687
|
+
key: "waitForRemoteSDPAnswer",
|
|
6688
|
+
value: (function () {
|
|
6689
|
+
var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25() {
|
|
6690
|
+
var _this42 = this;
|
|
6590
6691
|
var LOG_HEADER, deferSDPAnswer;
|
|
6591
|
-
return _regenerator.default.wrap(function
|
|
6592
|
-
while (1) switch (
|
|
6692
|
+
return _regenerator.default.wrap(function _callee25$(_context25) {
|
|
6693
|
+
while (1) switch (_context25.prev = _context25.next) {
|
|
6593
6694
|
case 0:
|
|
6594
6695
|
LOG_HEADER = 'Meeting:index#addMedia():waitForRemoteSDPAnswer -->';
|
|
6595
6696
|
if (this.deferSDPAnswer) {
|
|
6596
|
-
|
|
6697
|
+
_context25.next = 4;
|
|
6597
6698
|
break;
|
|
6598
6699
|
}
|
|
6599
6700
|
_loggerProxy.default.logger.warn("".concat(LOG_HEADER, " offer not created yet"));
|
|
6600
|
-
return
|
|
6701
|
+
return _context25.abrupt("return", _promise.default.reject(new Error('waitForRemoteSDPAnswer() called before local sdp offer created')));
|
|
6601
6702
|
case 4:
|
|
6602
6703
|
deferSDPAnswer = this.deferSDPAnswer;
|
|
6603
6704
|
this.sdpResponseTimer = setTimeout(function () {
|
|
6604
6705
|
_loggerProxy.default.logger.warn("".concat(LOG_HEADER, " timeout! no REMOTE SDP ANSWER received within ").concat(_constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT / 1000, " seconds"));
|
|
6605
6706
|
// @ts-ignore
|
|
6606
|
-
|
|
6707
|
+
_this42.webex.internal.newMetrics.submitClientEvent({
|
|
6607
6708
|
name: 'client.media-engine.remote-sdp-received',
|
|
6608
6709
|
payload: {
|
|
6609
6710
|
canProceed: false,
|
|
6610
6711
|
errors: [
|
|
6611
6712
|
// @ts-ignore
|
|
6612
|
-
|
|
6713
|
+
_this42.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
|
|
6613
6714
|
clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
|
|
6614
6715
|
})]
|
|
6615
6716
|
},
|
|
6616
6717
|
options: {
|
|
6617
|
-
meetingId:
|
|
6718
|
+
meetingId: _this42.id,
|
|
6618
6719
|
rawError: new Error('Timeout waiting for SDP answer')
|
|
6619
6720
|
}
|
|
6620
6721
|
});
|
|
6621
6722
|
deferSDPAnswer.reject(new Error('Timed out waiting for REMOTE SDP ANSWER'));
|
|
6622
6723
|
}, _constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT);
|
|
6623
6724
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " waiting for REMOTE SDP ANSWER..."));
|
|
6624
|
-
return
|
|
6725
|
+
return _context25.abrupt("return", deferSDPAnswer.promise);
|
|
6625
6726
|
case 8:
|
|
6626
6727
|
case "end":
|
|
6627
|
-
return
|
|
6728
|
+
return _context25.stop();
|
|
6628
6729
|
}
|
|
6629
|
-
},
|
|
6730
|
+
}, _callee25, this);
|
|
6630
6731
|
}));
|
|
6631
6732
|
function waitForRemoteSDPAnswer() {
|
|
6632
6733
|
return _waitForRemoteSDPAnswer.apply(this, arguments);
|
|
@@ -6645,30 +6746,30 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6645
6746
|
}, {
|
|
6646
6747
|
key: "retryEstablishMediaConnectionWithForcedTurnDiscovery",
|
|
6647
6748
|
value: (function () {
|
|
6648
|
-
var _retryEstablishMediaConnectionWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6749
|
+
var _retryEstablishMediaConnectionWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee26(remoteMediaManagerConfig, bundlePolicy) {
|
|
6649
6750
|
var LOG_HEADER;
|
|
6650
|
-
return _regenerator.default.wrap(function
|
|
6651
|
-
while (1) switch (
|
|
6751
|
+
return _regenerator.default.wrap(function _callee26$(_context26) {
|
|
6752
|
+
while (1) switch (_context26.prev = _context26.next) {
|
|
6652
6753
|
case 0:
|
|
6653
6754
|
LOG_HEADER = 'Meeting:index#addMedia():retryEstablishMediaConnectionWithForcedTurnDiscovery -->';
|
|
6654
|
-
|
|
6655
|
-
|
|
6755
|
+
_context26.prev = 1;
|
|
6756
|
+
_context26.next = 4;
|
|
6656
6757
|
return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, true);
|
|
6657
6758
|
case 4:
|
|
6658
|
-
|
|
6759
|
+
_context26.next = 10;
|
|
6659
6760
|
break;
|
|
6660
6761
|
case 6:
|
|
6661
|
-
|
|
6662
|
-
|
|
6663
|
-
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " retry with TURN-TLS failed, media connection unable to connect, "),
|
|
6664
|
-
throw
|
|
6762
|
+
_context26.prev = 6;
|
|
6763
|
+
_context26.t0 = _context26["catch"](1);
|
|
6764
|
+
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " retry with TURN-TLS failed, media connection unable to connect, "), _context26.t0);
|
|
6765
|
+
throw _context26.t0;
|
|
6665
6766
|
case 10:
|
|
6666
6767
|
case "end":
|
|
6667
|
-
return
|
|
6768
|
+
return _context26.stop();
|
|
6668
6769
|
}
|
|
6669
|
-
},
|
|
6770
|
+
}, _callee26, this, [[1, 6]]);
|
|
6670
6771
|
}));
|
|
6671
|
-
function retryEstablishMediaConnectionWithForcedTurnDiscovery(
|
|
6772
|
+
function retryEstablishMediaConnectionWithForcedTurnDiscovery(_x20, _x21) {
|
|
6672
6773
|
return _retryEstablishMediaConnectionWithForcedTurnDiscovery.apply(this, arguments);
|
|
6673
6774
|
}
|
|
6674
6775
|
return retryEstablishMediaConnectionWithForcedTurnDiscovery;
|
|
@@ -6686,14 +6787,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6686
6787
|
}, {
|
|
6687
6788
|
key: "retryWithForcedTurnDiscovery",
|
|
6688
6789
|
value: (function () {
|
|
6689
|
-
var _retryWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6790
|
+
var _retryWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee27(remoteMediaManagerConfig, bundlePolicy) {
|
|
6690
6791
|
var LOG_HEADER;
|
|
6691
|
-
return _regenerator.default.wrap(function
|
|
6692
|
-
while (1) switch (
|
|
6792
|
+
return _regenerator.default.wrap(function _callee27$(_context27) {
|
|
6793
|
+
while (1) switch (_context27.prev = _context27.next) {
|
|
6693
6794
|
case 0:
|
|
6694
6795
|
this.addMediaData.retriedWithTurnServer = true;
|
|
6695
6796
|
LOG_HEADER = 'Meeting:index#addMedia():retryWithForcedTurnDiscovery -->';
|
|
6696
|
-
|
|
6797
|
+
_context27.next = 4;
|
|
6697
6798
|
return this.cleanUpBeforeRetryWithTurnServer();
|
|
6698
6799
|
case 4:
|
|
6699
6800
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_RETRY, {
|
|
@@ -6703,24 +6804,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6703
6804
|
reason: 'forcingTurnTls'
|
|
6704
6805
|
});
|
|
6705
6806
|
if (!(this.state === _constants.MEETING_STATE.STATES.LEFT)) {
|
|
6706
|
-
|
|
6807
|
+
_context27.next = 9;
|
|
6707
6808
|
break;
|
|
6708
6809
|
}
|
|
6709
6810
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " meeting state was LEFT after first attempt to establish media connection. Attempting to rejoin. "));
|
|
6710
|
-
|
|
6811
|
+
_context27.next = 9;
|
|
6711
6812
|
return this.join({
|
|
6712
6813
|
rejoin: true
|
|
6713
6814
|
});
|
|
6714
6815
|
case 9:
|
|
6715
|
-
|
|
6816
|
+
_context27.next = 11;
|
|
6716
6817
|
return this.retryEstablishMediaConnectionWithForcedTurnDiscovery(remoteMediaManagerConfig, bundlePolicy);
|
|
6717
6818
|
case 11:
|
|
6718
6819
|
case "end":
|
|
6719
|
-
return
|
|
6820
|
+
return _context27.stop();
|
|
6720
6821
|
}
|
|
6721
|
-
},
|
|
6822
|
+
}, _callee27, this);
|
|
6722
6823
|
}));
|
|
6723
|
-
function retryWithForcedTurnDiscovery(
|
|
6824
|
+
function retryWithForcedTurnDiscovery(_x22, _x23) {
|
|
6724
6825
|
return _retryWithForcedTurnDiscovery.apply(this, arguments);
|
|
6725
6826
|
}
|
|
6726
6827
|
return retryWithForcedTurnDiscovery;
|
|
@@ -6740,32 +6841,32 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6740
6841
|
}, {
|
|
6741
6842
|
key: "handleWaitForMediaConnectionConnectedError",
|
|
6742
6843
|
value: (function () {
|
|
6743
|
-
var _handleWaitForMediaConnectionConnectedError = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6844
|
+
var _handleWaitForMediaConnectionConnectedError = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee28(error, remoteMediaManagerConfig, bundlePolicy) {
|
|
6744
6845
|
var LOG_HEADER;
|
|
6745
|
-
return _regenerator.default.wrap(function
|
|
6746
|
-
while (1) switch (
|
|
6846
|
+
return _regenerator.default.wrap(function _callee28$(_context28) {
|
|
6847
|
+
while (1) switch (_context28.prev = _context28.next) {
|
|
6747
6848
|
case 0:
|
|
6748
6849
|
LOG_HEADER = 'Meeting:index#addMedia():handleWaitForMediaConnectionConnectedError -->'; // @ts-ignore - config coming from registerPlugin
|
|
6749
6850
|
if (this.turnServerUsed) {
|
|
6750
|
-
|
|
6851
|
+
_context28.next = 7;
|
|
6751
6852
|
break;
|
|
6752
6853
|
}
|
|
6753
6854
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " error waiting for media to connect on UDP, TCP, retrying using TURN-TLS, "), error);
|
|
6754
|
-
|
|
6855
|
+
_context28.next = 5;
|
|
6755
6856
|
return this.retryWithForcedTurnDiscovery(remoteMediaManagerConfig, bundlePolicy);
|
|
6756
6857
|
case 5:
|
|
6757
|
-
|
|
6858
|
+
_context28.next = 9;
|
|
6758
6859
|
break;
|
|
6759
6860
|
case 7:
|
|
6760
6861
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " error waiting for media to connect using UDP, TCP and TURN-TLS"), error);
|
|
6761
6862
|
throw new _webexErrors.AddMediaFailed();
|
|
6762
6863
|
case 9:
|
|
6763
6864
|
case "end":
|
|
6764
|
-
return
|
|
6865
|
+
return _context28.stop();
|
|
6765
6866
|
}
|
|
6766
|
-
},
|
|
6867
|
+
}, _callee28, this);
|
|
6767
6868
|
}));
|
|
6768
|
-
function handleWaitForMediaConnectionConnectedError(
|
|
6869
|
+
function handleWaitForMediaConnectionConnectedError(_x24, _x25, _x26) {
|
|
6769
6870
|
return _handleWaitForMediaConnectionConnectedError.apply(this, arguments);
|
|
6770
6871
|
}
|
|
6771
6872
|
return handleWaitForMediaConnectionConnectedError;
|
|
@@ -6781,20 +6882,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6781
6882
|
}, {
|
|
6782
6883
|
key: "doTurnDiscovery",
|
|
6783
6884
|
value: (function () {
|
|
6784
|
-
var _doTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6885
|
+
var _doTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee29(isReconnecting, isForced) {
|
|
6785
6886
|
var cdl, turnDiscoveryResult;
|
|
6786
|
-
return _regenerator.default.wrap(function
|
|
6787
|
-
while (1) switch (
|
|
6887
|
+
return _regenerator.default.wrap(function _callee29$(_context29) {
|
|
6888
|
+
while (1) switch (_context29.prev = _context29.next) {
|
|
6788
6889
|
case 0:
|
|
6789
6890
|
// @ts-ignore
|
|
6790
6891
|
cdl = this.webex.internal.newMetrics.callDiagnosticLatencies; // @ts-ignore
|
|
6791
6892
|
this.webex.internal.newMetrics.submitInternalEvent({
|
|
6792
6893
|
name: 'internal.client.add-media.turn-discovery.start'
|
|
6793
6894
|
});
|
|
6794
|
-
|
|
6895
|
+
_context29.next = 4;
|
|
6795
6896
|
return this.roap.doTurnDiscovery(this, isReconnecting, isForced);
|
|
6796
6897
|
case 4:
|
|
6797
|
-
turnDiscoveryResult =
|
|
6898
|
+
turnDiscoveryResult = _context29.sent;
|
|
6798
6899
|
this.turnDiscoverySkippedReason = turnDiscoveryResult === null || turnDiscoveryResult === void 0 ? void 0 : turnDiscoveryResult.turnDiscoverySkippedReason;
|
|
6799
6900
|
this.turnServerUsed = !this.turnDiscoverySkippedReason;
|
|
6800
6901
|
|
|
@@ -6810,14 +6911,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6810
6911
|
retriedWithTurnServer: this.addMediaData.retriedWithTurnServer
|
|
6811
6912
|
});
|
|
6812
6913
|
}
|
|
6813
|
-
return
|
|
6914
|
+
return _context29.abrupt("return", turnDiscoveryResult);
|
|
6814
6915
|
case 10:
|
|
6815
6916
|
case "end":
|
|
6816
|
-
return
|
|
6917
|
+
return _context29.stop();
|
|
6817
6918
|
}
|
|
6818
|
-
},
|
|
6919
|
+
}, _callee29, this);
|
|
6819
6920
|
}));
|
|
6820
|
-
function doTurnDiscovery(
|
|
6921
|
+
function doTurnDiscovery(_x27, _x28) {
|
|
6821
6922
|
return _doTurnDiscovery.apply(this, arguments);
|
|
6822
6923
|
}
|
|
6823
6924
|
return doTurnDiscovery;
|
|
@@ -6836,35 +6937,35 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6836
6937
|
}, {
|
|
6837
6938
|
key: "establishMediaConnection",
|
|
6838
6939
|
value: (function () {
|
|
6839
|
-
var _establishMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6940
|
+
var _establishMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee30(remoteMediaManagerConfig, bundlePolicy, isForced, turnServerInfo) {
|
|
6840
6941
|
var _this$locusMediaReque;
|
|
6841
6942
|
var LOG_HEADER, isReconnecting, _yield$this$doTurnDis, mc;
|
|
6842
|
-
return _regenerator.default.wrap(function
|
|
6843
|
-
while (1) switch (
|
|
6943
|
+
return _regenerator.default.wrap(function _callee30$(_context30) {
|
|
6944
|
+
while (1) switch (_context30.prev = _context30.next) {
|
|
6844
6945
|
case 0:
|
|
6845
6946
|
LOG_HEADER = 'Meeting:index#addMedia():establishMediaConnection -->';
|
|
6846
6947
|
isReconnecting = this.isMoveToInProgress || !!((_this$locusMediaReque = this.locusMediaRequest) !== null && _this$locusMediaReque !== void 0 && _this$locusMediaReque.isConfluenceCreated()); // We are forcing turn discovery if the case is moveTo and a turn server was used already
|
|
6847
6948
|
if (this.isMoveToInProgress && this.turnServerUsed) {
|
|
6848
6949
|
isForced = true;
|
|
6849
6950
|
}
|
|
6850
|
-
|
|
6951
|
+
_context30.prev = 3;
|
|
6851
6952
|
if (turnServerInfo) {
|
|
6852
|
-
|
|
6953
|
+
_context30.next = 9;
|
|
6853
6954
|
break;
|
|
6854
6955
|
}
|
|
6855
|
-
|
|
6956
|
+
_context30.next = 7;
|
|
6856
6957
|
return this.doTurnDiscovery(isReconnecting, isForced);
|
|
6857
6958
|
case 7:
|
|
6858
|
-
_yield$this$doTurnDis =
|
|
6959
|
+
_yield$this$doTurnDis = _context30.sent;
|
|
6859
6960
|
turnServerInfo = _yield$this$doTurnDis.turnServerInfo;
|
|
6860
6961
|
case 9:
|
|
6861
|
-
|
|
6962
|
+
_context30.next = 11;
|
|
6862
6963
|
return this.createMediaConnection(turnServerInfo, bundlePolicy);
|
|
6863
6964
|
case 11:
|
|
6864
|
-
mc =
|
|
6965
|
+
mc = _context30.sent;
|
|
6865
6966
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " media connection created"));
|
|
6866
6967
|
if (!this.isMultistream) {
|
|
6867
|
-
|
|
6968
|
+
_context30.next = 21;
|
|
6868
6969
|
break;
|
|
6869
6970
|
}
|
|
6870
6971
|
this.remoteMediaManager = new _remoteMediaManager.RemoteMediaManager(this.receiveSlotManager, this.mediaRequestManagers, remoteMediaManagerConfig);
|
|
@@ -6872,42 +6973,42 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6872
6973
|
this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.InterpretationAudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_INTERPRETATION_AUDIO_CREATED);
|
|
6873
6974
|
this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.ScreenShareAudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_SCREEN_SHARE_AUDIO_CREATED);
|
|
6874
6975
|
this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.VideoLayoutChanged, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_VIDEO_LAYOUT_CHANGED);
|
|
6875
|
-
|
|
6976
|
+
_context30.next = 21;
|
|
6876
6977
|
return this.remoteMediaManager.start();
|
|
6877
6978
|
case 21:
|
|
6878
|
-
|
|
6979
|
+
_context30.next = 23;
|
|
6879
6980
|
return mc.initiateOffer();
|
|
6880
6981
|
case 23:
|
|
6881
|
-
|
|
6982
|
+
_context30.next = 25;
|
|
6882
6983
|
return this.waitForRemoteSDPAnswer();
|
|
6883
6984
|
case 25:
|
|
6884
6985
|
this.handleMediaLogging(this.mediaProperties);
|
|
6885
|
-
|
|
6986
|
+
_context30.next = 32;
|
|
6886
6987
|
break;
|
|
6887
6988
|
case 28:
|
|
6888
|
-
|
|
6889
|
-
|
|
6890
|
-
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " error establishing media connection, "),
|
|
6891
|
-
throw
|
|
6989
|
+
_context30.prev = 28;
|
|
6990
|
+
_context30.t0 = _context30["catch"](3);
|
|
6991
|
+
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " error establishing media connection, "), _context30.t0);
|
|
6992
|
+
throw _context30.t0;
|
|
6892
6993
|
case 32:
|
|
6893
|
-
|
|
6894
|
-
|
|
6994
|
+
_context30.prev = 32;
|
|
6995
|
+
_context30.next = 35;
|
|
6895
6996
|
return this.waitForMediaConnectionConnected();
|
|
6896
6997
|
case 35:
|
|
6897
|
-
|
|
6998
|
+
_context30.next = 41;
|
|
6898
6999
|
break;
|
|
6899
7000
|
case 37:
|
|
6900
|
-
|
|
6901
|
-
|
|
6902
|
-
|
|
6903
|
-
return this.handleWaitForMediaConnectionConnectedError(
|
|
7001
|
+
_context30.prev = 37;
|
|
7002
|
+
_context30.t1 = _context30["catch"](32);
|
|
7003
|
+
_context30.next = 41;
|
|
7004
|
+
return this.handleWaitForMediaConnectionConnectedError(_context30.t1, remoteMediaManagerConfig, bundlePolicy);
|
|
6904
7005
|
case 41:
|
|
6905
7006
|
case "end":
|
|
6906
|
-
return
|
|
7007
|
+
return _context30.stop();
|
|
6907
7008
|
}
|
|
6908
|
-
},
|
|
7009
|
+
}, _callee30, this, [[3, 28], [32, 37]]);
|
|
6909
7010
|
}));
|
|
6910
|
-
function establishMediaConnection(
|
|
7011
|
+
function establishMediaConnection(_x29, _x30, _x31, _x32) {
|
|
6911
7012
|
return _establishMediaConnection.apply(this, arguments);
|
|
6912
7013
|
}
|
|
6913
7014
|
return establishMediaConnection;
|
|
@@ -6922,22 +7023,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6922
7023
|
}, {
|
|
6923
7024
|
key: "cleanUpOnAddMediaFailure",
|
|
6924
7025
|
value: (function () {
|
|
6925
|
-
var _cleanUpOnAddMediaFailure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6926
|
-
return _regenerator.default.wrap(function
|
|
6927
|
-
while (1) switch (
|
|
7026
|
+
var _cleanUpOnAddMediaFailure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee31() {
|
|
7027
|
+
return _regenerator.default.wrap(function _callee31$(_context31) {
|
|
7028
|
+
while (1) switch (_context31.prev = _context31.next) {
|
|
6928
7029
|
case 0:
|
|
6929
7030
|
if (!this.statsAnalyzer) {
|
|
6930
|
-
|
|
7031
|
+
_context31.next = 3;
|
|
6931
7032
|
break;
|
|
6932
7033
|
}
|
|
6933
|
-
|
|
7034
|
+
_context31.next = 3;
|
|
6934
7035
|
return this.statsAnalyzer.stopAnalyzer();
|
|
6935
7036
|
case 3:
|
|
6936
7037
|
this.statsAnalyzer = null;
|
|
6937
7038
|
|
|
6938
7039
|
// when media fails, we want to upload a webrtc dump to see whats going on
|
|
6939
7040
|
// this function is async, but returns once the stats have been gathered
|
|
6940
|
-
|
|
7041
|
+
_context31.next = 6;
|
|
6941
7042
|
return this.forceSendStatsReport({
|
|
6942
7043
|
callFrom: 'addMedia'
|
|
6943
7044
|
});
|
|
@@ -6948,9 +7049,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6948
7049
|
}
|
|
6949
7050
|
case 7:
|
|
6950
7051
|
case "end":
|
|
6951
|
-
return
|
|
7052
|
+
return _context31.stop();
|
|
6952
7053
|
}
|
|
6953
|
-
},
|
|
7054
|
+
}, _callee31, this);
|
|
6954
7055
|
}));
|
|
6955
7056
|
function cleanUpOnAddMediaFailure() {
|
|
6956
7057
|
return _cleanUpOnAddMediaFailure.apply(this, arguments);
|
|
@@ -6968,11 +7069,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6968
7069
|
}, {
|
|
6969
7070
|
key: "cleanUpBeforeRetryWithTurnServer",
|
|
6970
7071
|
value: (function () {
|
|
6971
|
-
var _cleanUpBeforeRetryWithTurnServer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6972
|
-
return _regenerator.default.wrap(function
|
|
6973
|
-
while (1) switch (
|
|
7072
|
+
var _cleanUpBeforeRetryWithTurnServer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32() {
|
|
7073
|
+
return _regenerator.default.wrap(function _callee32$(_context32) {
|
|
7074
|
+
while (1) switch (_context32.prev = _context32.next) {
|
|
6974
7075
|
case 0:
|
|
6975
|
-
|
|
7076
|
+
_context32.next = 2;
|
|
6976
7077
|
return this.forceSendStatsReport({
|
|
6977
7078
|
callFrom: 'cleanUpBeforeRetryWithTurnServer'
|
|
6978
7079
|
});
|
|
@@ -6992,9 +7093,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6992
7093
|
}
|
|
6993
7094
|
case 3:
|
|
6994
7095
|
case "end":
|
|
6995
|
-
return
|
|
7096
|
+
return _context32.stop();
|
|
6996
7097
|
}
|
|
6997
|
-
},
|
|
7098
|
+
}, _callee32, this);
|
|
6998
7099
|
}));
|
|
6999
7100
|
function cleanUpBeforeRetryWithTurnServer() {
|
|
7000
7101
|
return _cleanUpBeforeRetryWithTurnServer.apply(this, arguments);
|
|
@@ -7004,34 +7105,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7004
7105
|
}, {
|
|
7005
7106
|
key: "cleanUpBeforeReconnection",
|
|
7006
7107
|
value: function () {
|
|
7007
|
-
var _cleanUpBeforeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
7008
|
-
return _regenerator.default.wrap(function
|
|
7009
|
-
while (1) switch (
|
|
7108
|
+
var _cleanUpBeforeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33() {
|
|
7109
|
+
return _regenerator.default.wrap(function _callee33$(_context33) {
|
|
7110
|
+
while (1) switch (_context33.prev = _context33.next) {
|
|
7010
7111
|
case 0:
|
|
7011
|
-
|
|
7012
|
-
|
|
7112
|
+
_context33.prev = 0;
|
|
7113
|
+
_context33.next = 3;
|
|
7013
7114
|
return this.forceSendStatsReport({
|
|
7014
7115
|
callFrom: 'cleanUpBeforeReconnection'
|
|
7015
7116
|
});
|
|
7016
7117
|
case 3:
|
|
7017
7118
|
if (!this.statsAnalyzer) {
|
|
7018
|
-
|
|
7119
|
+
_context33.next = 6;
|
|
7019
7120
|
break;
|
|
7020
7121
|
}
|
|
7021
|
-
|
|
7122
|
+
_context33.next = 6;
|
|
7022
7123
|
return this.statsAnalyzer.stopAnalyzer();
|
|
7023
7124
|
case 6:
|
|
7024
|
-
|
|
7125
|
+
_context33.next = 11;
|
|
7025
7126
|
break;
|
|
7026
7127
|
case 8:
|
|
7027
|
-
|
|
7028
|
-
|
|
7029
|
-
_loggerProxy.default.logger.error('Meeting:index#cleanUpBeforeReconnection --> Error during cleanup: ',
|
|
7128
|
+
_context33.prev = 8;
|
|
7129
|
+
_context33.t0 = _context33["catch"](0);
|
|
7130
|
+
_loggerProxy.default.logger.error('Meeting:index#cleanUpBeforeReconnection --> Error during cleanup: ', _context33.t0);
|
|
7030
7131
|
case 11:
|
|
7031
7132
|
case "end":
|
|
7032
|
-
return
|
|
7133
|
+
return _context33.stop();
|
|
7033
7134
|
}
|
|
7034
|
-
},
|
|
7135
|
+
}, _callee33, this, [[0, 8]]);
|
|
7035
7136
|
}));
|
|
7036
7137
|
function cleanUpBeforeReconnection() {
|
|
7037
7138
|
return _cleanUpBeforeReconnection.apply(this, arguments);
|
|
@@ -7078,10 +7179,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7078
7179
|
}, {
|
|
7079
7180
|
key: "addMedia",
|
|
7080
7181
|
value: function addMedia() {
|
|
7081
|
-
var
|
|
7182
|
+
var _this43 = this;
|
|
7082
7183
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7083
7184
|
return this.addMediaInternal(function () {
|
|
7084
|
-
return
|
|
7185
|
+
return _this43.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
|
7085
7186
|
}, undefined, false, options);
|
|
7086
7187
|
}
|
|
7087
7188
|
|
|
@@ -7099,7 +7200,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7099
7200
|
}, {
|
|
7100
7201
|
key: "addMediaInternal",
|
|
7101
7202
|
value: (function () {
|
|
7102
|
-
var _addMediaInternal = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
7203
|
+
var _addMediaInternal = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34(icePhaseCallback, turnServerInfo, forceTurnDiscovery) {
|
|
7103
7204
|
var options,
|
|
7104
7205
|
LOG_HEADER,
|
|
7105
7206
|
localStreams,
|
|
@@ -7147,24 +7248,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7147
7248
|
_selectedCandidatePairChanges,
|
|
7148
7249
|
_numTransports,
|
|
7149
7250
|
_iceCandidateErrors,
|
|
7150
|
-
|
|
7151
|
-
return _regenerator.default.wrap(function
|
|
7152
|
-
while (1) switch (
|
|
7251
|
+
_args34 = arguments;
|
|
7252
|
+
return _regenerator.default.wrap(function _callee34$(_context34) {
|
|
7253
|
+
while (1) switch (_context34.prev = _context34.next) {
|
|
7153
7254
|
case 0:
|
|
7154
|
-
options =
|
|
7255
|
+
options = _args34.length > 3 && _args34[3] !== undefined ? _args34[3] : {};
|
|
7155
7256
|
this.addMediaData.retriedWithTurnServer = false;
|
|
7156
7257
|
this.addMediaData.icePhaseCallback = icePhaseCallback;
|
|
7157
7258
|
this.hasMediaConnectionConnectedAtLeastOnce = false;
|
|
7158
7259
|
LOG_HEADER = 'Meeting:index#addMedia -->';
|
|
7159
7260
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " called with: options=").concat((0, _stringify.default)(options), ", turnServerInfo=").concat((0, _stringify.default)(turnServerInfo), ", forceTurnDiscovery=").concat(forceTurnDiscovery));
|
|
7160
7261
|
if (!(options.allowMediaInLobby !== true && this.meetingState !== _constants.FULL_STATE.ACTIVE)) {
|
|
7161
|
-
|
|
7262
|
+
_context34.next = 8;
|
|
7162
7263
|
break;
|
|
7163
7264
|
}
|
|
7164
7265
|
throw new _webexErrors.MeetingNotActiveError();
|
|
7165
7266
|
case 8:
|
|
7166
7267
|
if (!_util2.default.isUserInLeftState(this.locusInfo)) {
|
|
7167
|
-
|
|
7268
|
+
_context34.next = 10;
|
|
7168
7269
|
break;
|
|
7169
7270
|
}
|
|
7170
7271
|
throw new _webexErrors.UserNotJoinedError();
|
|
@@ -7175,7 +7276,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7175
7276
|
// If the user is unjoined or guest waiting in lobby dont allow the user to addMedia
|
|
7176
7277
|
// @ts-ignore - isUserUnadmitted coming from SelfUtil
|
|
7177
7278
|
if (!(this.isUserUnadmitted && !this.wirelessShare && !this.allowMediaInLobby)) {
|
|
7178
|
-
|
|
7279
|
+
_context34.next = 14;
|
|
7179
7280
|
break;
|
|
7180
7281
|
}
|
|
7181
7282
|
throw new _webexErrors.UserInLobbyError();
|
|
@@ -7218,45 +7319,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7218
7319
|
});
|
|
7219
7320
|
this.audio = (0, _muteState.createMuteState)(_constants.AUDIO, this, audioEnabled);
|
|
7220
7321
|
this.video = (0, _muteState.createMuteState)(_constants.VIDEO, this, videoEnabled);
|
|
7221
|
-
|
|
7222
|
-
|
|
7322
|
+
_context34.prev = 18;
|
|
7323
|
+
_context34.next = 21;
|
|
7223
7324
|
return this.setUpLocalStreamReferences(localStreams);
|
|
7224
7325
|
case 21:
|
|
7225
7326
|
this.setMercuryListener();
|
|
7226
7327
|
this.createStatsAnalyzer();
|
|
7227
|
-
|
|
7328
|
+
_context34.next = 25;
|
|
7228
7329
|
return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, forceTurnDiscovery, turnServerInfo);
|
|
7229
7330
|
case 25:
|
|
7230
|
-
if (!(audioEnabled || videoEnabled)) {
|
|
7231
|
-
_context33.next = 30;
|
|
7232
|
-
break;
|
|
7233
|
-
}
|
|
7234
|
-
_context33.next = 28;
|
|
7235
|
-
return Meeting.handleDeviceLogging(audioEnabled, videoEnabled);
|
|
7236
|
-
case 28:
|
|
7237
|
-
_context33.next = 31;
|
|
7238
|
-
break;
|
|
7239
|
-
case 30:
|
|
7240
|
-
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " device logging not required"));
|
|
7241
|
-
case 31:
|
|
7242
7331
|
if (!this.mediaProperties.hasLocalShareStream()) {
|
|
7243
|
-
|
|
7332
|
+
_context34.next = 28;
|
|
7244
7333
|
break;
|
|
7245
7334
|
}
|
|
7246
|
-
|
|
7335
|
+
_context34.next = 28;
|
|
7247
7336
|
return this.enqueueScreenShareFloorRequest();
|
|
7248
|
-
case
|
|
7249
|
-
|
|
7337
|
+
case 28:
|
|
7338
|
+
_context34.next = 30;
|
|
7250
7339
|
return this.mediaProperties.getCurrentConnectionInfo();
|
|
7251
|
-
case
|
|
7252
|
-
_yield$this$mediaProp =
|
|
7340
|
+
case 30:
|
|
7341
|
+
_yield$this$mediaProp = _context34.sent;
|
|
7253
7342
|
connectionType = _yield$this$mediaProp.connectionType;
|
|
7254
7343
|
selectedCandidatePairChanges = _yield$this$mediaProp.selectedCandidatePairChanges;
|
|
7255
7344
|
numTransports = _yield$this$mediaProp.numTransports;
|
|
7256
|
-
|
|
7345
|
+
_context34.next = 36;
|
|
7257
7346
|
return this.webex.meetings.reachability.getReachabilityMetrics();
|
|
7258
|
-
case
|
|
7259
|
-
reachabilityStats =
|
|
7347
|
+
case 36:
|
|
7348
|
+
reachabilityStats = _context34.sent;
|
|
7260
7349
|
iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
|
|
7261
7350
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, _objectSpread(_objectSpread(_objectSpread({
|
|
7262
7351
|
correlation_id: this.correlationId,
|
|
@@ -7282,31 +7371,31 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7282
7371
|
// We can log ReceiveSlot SSRCs only after the SDP exchange, so doing it here:
|
|
7283
7372
|
(_this$remoteMediaMana = this.remoteMediaManager) === null || _this$remoteMediaMana === void 0 ? void 0 : _this$remoteMediaMana.logAllReceiveSlots();
|
|
7284
7373
|
this.startPeriodicLogUpload();
|
|
7285
|
-
|
|
7374
|
+
_context34.next = 63;
|
|
7286
7375
|
break;
|
|
7287
|
-
case
|
|
7288
|
-
|
|
7289
|
-
|
|
7290
|
-
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "),
|
|
7376
|
+
case 45:
|
|
7377
|
+
_context34.prev = 45;
|
|
7378
|
+
_context34.t0 = _context34["catch"](18);
|
|
7379
|
+
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context34.t0);
|
|
7291
7380
|
|
|
7292
7381
|
// @ts-ignore
|
|
7293
|
-
|
|
7382
|
+
_context34.next = 50;
|
|
7294
7383
|
return this.webex.meetings.reachability.getReachabilityMetrics();
|
|
7295
|
-
case
|
|
7296
|
-
reachabilityMetrics =
|
|
7297
|
-
|
|
7384
|
+
case 50:
|
|
7385
|
+
reachabilityMetrics = _context34.sent;
|
|
7386
|
+
_context34.next = 53;
|
|
7298
7387
|
return this.mediaProperties.getCurrentConnectionInfo();
|
|
7299
|
-
case
|
|
7300
|
-
_yield$this$mediaProp2 =
|
|
7388
|
+
case 53:
|
|
7389
|
+
_yield$this$mediaProp2 = _context34.sent;
|
|
7301
7390
|
_selectedCandidatePairChanges = _yield$this$mediaProp2.selectedCandidatePairChanges;
|
|
7302
7391
|
_numTransports = _yield$this$mediaProp2.numTransports;
|
|
7303
7392
|
_iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
|
|
7304
7393
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_FAILURE, _objectSpread(_objectSpread(_objectSpread({
|
|
7305
7394
|
correlation_id: this.correlationId,
|
|
7306
7395
|
locus_id: this.locusUrl.split('/').pop(),
|
|
7307
|
-
reason:
|
|
7308
|
-
stack:
|
|
7309
|
-
code:
|
|
7396
|
+
reason: _context34.t0.message,
|
|
7397
|
+
stack: _context34.t0.stack,
|
|
7398
|
+
code: _context34.t0.code,
|
|
7310
7399
|
selectedCandidatePairChanges: _selectedCandidatePairChanges,
|
|
7311
7400
|
numTransports: _numTransports,
|
|
7312
7401
|
turnDiscoverySkippedReason: this.turnDiscoverySkippedReason,
|
|
@@ -7320,31 +7409,31 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7320
7409
|
}, reachabilityMetrics), _iceCandidateErrors), {}, {
|
|
7321
7410
|
iceCandidatesCount: this.iceCandidatesCount
|
|
7322
7411
|
}));
|
|
7323
|
-
|
|
7412
|
+
_context34.next = 60;
|
|
7324
7413
|
return this.cleanUpOnAddMediaFailure();
|
|
7325
|
-
case
|
|
7414
|
+
case 60:
|
|
7326
7415
|
// Upload logs on error while adding media
|
|
7327
7416
|
_triggerProxy.default.trigger(this, {
|
|
7328
7417
|
file: 'meeting/index',
|
|
7329
7418
|
function: 'addMedia'
|
|
7330
7419
|
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
|
|
7331
|
-
if (
|
|
7420
|
+
if (_context34.t0 instanceof _internalMediaCore.Errors.SdpError) {
|
|
7332
7421
|
this.leave({
|
|
7333
7422
|
reason: _constants.MEETING_REMOVED_REASON.MEETING_CONNECTION_FAILED
|
|
7334
7423
|
});
|
|
7335
7424
|
}
|
|
7336
|
-
throw
|
|
7337
|
-
case
|
|
7338
|
-
|
|
7425
|
+
throw _context34.t0;
|
|
7426
|
+
case 63:
|
|
7427
|
+
_context34.prev = 63;
|
|
7339
7428
|
this.addMediaData.icePhaseCallback = DEFAULT_ICE_PHASE_CALLBACK;
|
|
7340
|
-
return
|
|
7341
|
-
case
|
|
7429
|
+
return _context34.finish(63);
|
|
7430
|
+
case 66:
|
|
7342
7431
|
case "end":
|
|
7343
|
-
return
|
|
7432
|
+
return _context34.stop();
|
|
7344
7433
|
}
|
|
7345
|
-
},
|
|
7434
|
+
}, _callee34, this, [[18, 45, 63, 66]]);
|
|
7346
7435
|
}));
|
|
7347
|
-
function addMediaInternal(
|
|
7436
|
+
function addMediaInternal(_x33, _x34, _x35) {
|
|
7348
7437
|
return _addMediaInternal.apply(this, arguments);
|
|
7349
7438
|
}
|
|
7350
7439
|
return addMediaInternal;
|
|
@@ -7374,7 +7463,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7374
7463
|
* @memberof Meeting
|
|
7375
7464
|
*/
|
|
7376
7465
|
function enqueueMediaUpdate(mediaUpdateType) {
|
|
7377
|
-
var
|
|
7466
|
+
var _this44 = this;
|
|
7378
7467
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
7379
7468
|
var canUpdateMediaNow = this.canUpdateMedia();
|
|
7380
7469
|
return new _promise.default(function (resolve, reject) {
|
|
@@ -7385,9 +7474,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7385
7474
|
options: options
|
|
7386
7475
|
};
|
|
7387
7476
|
_loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
|
|
7388
|
-
|
|
7477
|
+
_this44.queuedMediaUpdates.push(queueItem);
|
|
7389
7478
|
if (canUpdateMediaNow) {
|
|
7390
|
-
|
|
7479
|
+
_this44.processNextQueuedMediaUpdate();
|
|
7391
7480
|
}
|
|
7392
7481
|
});
|
|
7393
7482
|
}
|
|
@@ -7410,35 +7499,35 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7410
7499
|
* @memberof Meeting
|
|
7411
7500
|
*/
|
|
7412
7501
|
function () {
|
|
7413
|
-
var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
7502
|
+
var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35(options) {
|
|
7414
7503
|
var audioEnabled, videoEnabled, shareAudioEnabled, shareVideoEnabled, _this$audio3, _this$video3;
|
|
7415
|
-
return _regenerator.default.wrap(function
|
|
7416
|
-
while (1) switch (
|
|
7504
|
+
return _regenerator.default.wrap(function _callee35$(_context35) {
|
|
7505
|
+
while (1) switch (_context35.prev = _context35.next) {
|
|
7417
7506
|
case 0:
|
|
7418
7507
|
this.checkMediaConnection();
|
|
7419
7508
|
audioEnabled = options.audioEnabled, videoEnabled = options.videoEnabled, shareAudioEnabled = options.shareAudioEnabled, shareVideoEnabled = options.shareVideoEnabled;
|
|
7420
7509
|
_loggerProxy.default.logger.log("Meeting:index#updateMedia --> called with options=".concat((0, _stringify.default)(options)));
|
|
7421
7510
|
if (this.canUpdateMedia()) {
|
|
7422
|
-
|
|
7511
|
+
_context35.next = 5;
|
|
7423
7512
|
break;
|
|
7424
7513
|
}
|
|
7425
|
-
return
|
|
7514
|
+
return _context35.abrupt("return", this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.UPDATE_MEDIA, options));
|
|
7426
7515
|
case 5:
|
|
7427
7516
|
if (!this.isMultistream) {
|
|
7428
|
-
|
|
7517
|
+
_context35.next = 10;
|
|
7429
7518
|
break;
|
|
7430
7519
|
}
|
|
7431
7520
|
if (!(shareAudioEnabled !== undefined || shareVideoEnabled !== undefined)) {
|
|
7432
|
-
|
|
7521
|
+
_context35.next = 8;
|
|
7433
7522
|
break;
|
|
7434
7523
|
}
|
|
7435
7524
|
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');
|
|
7436
7525
|
case 8:
|
|
7437
|
-
|
|
7526
|
+
_context35.next = 12;
|
|
7438
7527
|
break;
|
|
7439
7528
|
case 10:
|
|
7440
7529
|
if (!(shareAudioEnabled !== undefined)) {
|
|
7441
|
-
|
|
7530
|
+
_context35.next = 12;
|
|
7442
7531
|
break;
|
|
7443
7532
|
}
|
|
7444
7533
|
throw new Error('toggling shareAudioEnabled in a transcoded meeting is not supported as of now');
|
|
@@ -7463,20 +7552,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7463
7552
|
this.mediaProperties.mediaDirection.receiveShare = !!(shareAudioEnabled || shareVideoEnabled);
|
|
7464
7553
|
}
|
|
7465
7554
|
if (this.isMultistream) {
|
|
7466
|
-
|
|
7555
|
+
_context35.next = 18;
|
|
7467
7556
|
break;
|
|
7468
7557
|
}
|
|
7469
|
-
|
|
7558
|
+
_context35.next = 18;
|
|
7470
7559
|
return this.updateTranscodedMediaConnection();
|
|
7471
7560
|
case 18:
|
|
7472
|
-
return
|
|
7561
|
+
return _context35.abrupt("return", undefined);
|
|
7473
7562
|
case 19:
|
|
7474
7563
|
case "end":
|
|
7475
|
-
return
|
|
7564
|
+
return _context35.stop();
|
|
7476
7565
|
}
|
|
7477
|
-
},
|
|
7566
|
+
}, _callee35, this);
|
|
7478
7567
|
}));
|
|
7479
|
-
function updateMedia(
|
|
7568
|
+
function updateMedia(_x36) {
|
|
7480
7569
|
return _updateMedia.apply(this, arguments);
|
|
7481
7570
|
}
|
|
7482
7571
|
return updateMedia;
|
|
@@ -7492,7 +7581,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7492
7581
|
}, {
|
|
7493
7582
|
key: "acknowledge",
|
|
7494
7583
|
value: function acknowledge(type) {
|
|
7495
|
-
var
|
|
7584
|
+
var _this45 = this;
|
|
7496
7585
|
if (!type) {
|
|
7497
7586
|
return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
|
|
7498
7587
|
}
|
|
@@ -7504,12 +7593,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7504
7593
|
}).then(function (response) {
|
|
7505
7594
|
return _promise.default.resolve(response);
|
|
7506
7595
|
}).then(function (response) {
|
|
7507
|
-
|
|
7596
|
+
_this45.meetingFiniteStateMachine.ring(type);
|
|
7508
7597
|
// @ts-ignore
|
|
7509
|
-
|
|
7598
|
+
_this45.webex.internal.newMetrics.submitClientEvent({
|
|
7510
7599
|
name: 'client.alert.displayed',
|
|
7511
7600
|
options: {
|
|
7512
|
-
meetingId:
|
|
7601
|
+
meetingId: _this45.id
|
|
7513
7602
|
}
|
|
7514
7603
|
});
|
|
7515
7604
|
return _promise.default.resolve({
|
|
@@ -7534,12 +7623,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7534
7623
|
}, {
|
|
7535
7624
|
key: "decline",
|
|
7536
7625
|
value: function decline(reason) {
|
|
7537
|
-
var
|
|
7626
|
+
var _this46 = this;
|
|
7538
7627
|
return _util2.default.declineMeeting(this, reason).then(function (decline) {
|
|
7539
|
-
|
|
7628
|
+
_this46.meetingFiniteStateMachine.decline();
|
|
7540
7629
|
return _promise.default.resolve(decline);
|
|
7541
7630
|
}).catch(function (error) {
|
|
7542
|
-
|
|
7631
|
+
_this46.meetingFiniteStateMachine.fail(error);
|
|
7543
7632
|
return _promise.default.reject(error);
|
|
7544
7633
|
});
|
|
7545
7634
|
}
|
|
@@ -7590,7 +7679,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7590
7679
|
}, {
|
|
7591
7680
|
key: "leave",
|
|
7592
7681
|
value: function leave() {
|
|
7593
|
-
var
|
|
7682
|
+
var _this47 = this;
|
|
7594
7683
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7595
7684
|
var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
|
|
7596
7685
|
|
|
@@ -7602,7 +7691,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7602
7691
|
var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7603
7692
|
return (
|
|
7604
7693
|
// @ts-ignore
|
|
7605
|
-
|
|
7694
|
+
_this47.webex.internal.newMetrics.submitClientEvent({
|
|
7606
7695
|
name: 'client.call.leave',
|
|
7607
7696
|
payload: _objectSpread({
|
|
7608
7697
|
trigger: 'user-interaction',
|
|
@@ -7610,7 +7699,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7610
7699
|
leaveReason: options.clientEventLeaveReason
|
|
7611
7700
|
}, payload),
|
|
7612
7701
|
options: {
|
|
7613
|
-
meetingId:
|
|
7702
|
+
meetingId: _this47.id
|
|
7614
7703
|
}
|
|
7615
7704
|
})
|
|
7616
7705
|
);
|
|
@@ -7619,24 +7708,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7619
7708
|
return _util2.default.leaveMeeting(this, options).then(function (leave) {
|
|
7620
7709
|
// CA team recommends submitting this *after* locus /leave
|
|
7621
7710
|
submitLeaveMetric();
|
|
7622
|
-
|
|
7623
|
-
|
|
7711
|
+
_this47.meetingFiniteStateMachine.leave();
|
|
7712
|
+
_this47.clearMeetingData();
|
|
7624
7713
|
|
|
7625
7714
|
// upload logs on leave irrespective of meeting delete
|
|
7626
|
-
_triggerProxy.default.trigger(
|
|
7715
|
+
_triggerProxy.default.trigger(_this47, {
|
|
7627
7716
|
file: 'meeting/index',
|
|
7628
7717
|
function: 'leave'
|
|
7629
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
7718
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this47);
|
|
7630
7719
|
|
|
7631
7720
|
// TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
|
|
7632
|
-
if (
|
|
7721
|
+
if (_this47.wirelessShare || _this47.guest) {
|
|
7633
7722
|
// If screen sharing clean the meeting object
|
|
7634
|
-
_triggerProxy.default.trigger(
|
|
7723
|
+
_triggerProxy.default.trigger(_this47, {
|
|
7635
7724
|
file: 'meeting/index',
|
|
7636
7725
|
function: 'leave'
|
|
7637
7726
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
|
7638
7727
|
reason: options.reason,
|
|
7639
|
-
meetingId:
|
|
7728
|
+
meetingId: _this47.id
|
|
7640
7729
|
});
|
|
7641
7730
|
}
|
|
7642
7731
|
_loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
|
|
@@ -7653,16 +7742,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7653
7742
|
shownToUser: false
|
|
7654
7743
|
}]
|
|
7655
7744
|
});
|
|
7656
|
-
|
|
7745
|
+
_this47.meetingFiniteStateMachine.fail(error);
|
|
7657
7746
|
_loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
|
|
7658
7747
|
// upload logs on leave irrespective of meeting delete
|
|
7659
|
-
_triggerProxy.default.trigger(
|
|
7748
|
+
_triggerProxy.default.trigger(_this47, {
|
|
7660
7749
|
file: 'meeting/index',
|
|
7661
7750
|
function: 'leave'
|
|
7662
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
7751
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this47);
|
|
7663
7752
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
|
|
7664
|
-
correlation_id:
|
|
7665
|
-
locus_id:
|
|
7753
|
+
correlation_id: _this47.correlationId,
|
|
7754
|
+
locus_id: _this47.locusUrl.split('/').pop(),
|
|
7666
7755
|
reason: error.message,
|
|
7667
7756
|
stack: error.stack,
|
|
7668
7757
|
code: error.code
|
|
@@ -7682,7 +7771,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7682
7771
|
}, {
|
|
7683
7772
|
key: "startWhiteboardShare",
|
|
7684
7773
|
value: function startWhiteboardShare(channelUrl, resourceToken) {
|
|
7685
|
-
var
|
|
7774
|
+
var _this48 = this;
|
|
7686
7775
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
7687
7776
|
return element.name === 'whiteboard';
|
|
7688
7777
|
});
|
|
@@ -7711,13 +7800,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7711
7800
|
body.resourceToken = resourceToken;
|
|
7712
7801
|
}
|
|
7713
7802
|
return this.meetingRequest.changeMeetingFloor(body).then(function () {
|
|
7714
|
-
|
|
7803
|
+
_this48.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
|
7715
7804
|
return _promise.default.resolve();
|
|
7716
7805
|
}).catch(function (error) {
|
|
7717
7806
|
_loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
|
|
7718
7807
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
|
|
7719
|
-
correlation_id:
|
|
7720
|
-
locus_id:
|
|
7808
|
+
correlation_id: _this48.correlationId,
|
|
7809
|
+
locus_id: _this48.locusUrl.split('/').pop(),
|
|
7721
7810
|
reason: error.message,
|
|
7722
7811
|
stack: error.stack,
|
|
7723
7812
|
board: {
|
|
@@ -7740,7 +7829,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7740
7829
|
}, {
|
|
7741
7830
|
key: "stopWhiteboardShare",
|
|
7742
7831
|
value: function stopWhiteboardShare(channelUrl) {
|
|
7743
|
-
var
|
|
7832
|
+
var _this49 = this;
|
|
7744
7833
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
7745
7834
|
return element.name === 'whiteboard';
|
|
7746
7835
|
});
|
|
@@ -7763,8 +7852,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7763
7852
|
}).catch(function (error) {
|
|
7764
7853
|
_loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
|
|
7765
7854
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
|
|
7766
|
-
correlation_id:
|
|
7767
|
-
locus_id:
|
|
7855
|
+
correlation_id: _this49.correlationId,
|
|
7856
|
+
locus_id: _this49.locusUrl.split('/').pop(),
|
|
7768
7857
|
reason: error.message,
|
|
7769
7858
|
stack: error.stack,
|
|
7770
7859
|
board: {
|
|
@@ -7786,7 +7875,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7786
7875
|
}, {
|
|
7787
7876
|
key: "requestScreenShareFloor",
|
|
7788
7877
|
value: function requestScreenShareFloor() {
|
|
7789
|
-
var
|
|
7878
|
+
var _this50 = this;
|
|
7790
7879
|
if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
|
|
7791
7880
|
_loggerProxy.default.logger.log("Meeting:index#requestScreenShareFloor --> NOT requesting floor, because we don't have the share stream anymore (shareStream=".concat(this.mediaProperties.shareVideoStream ? 'yes' : 'no', ", sendShare=").concat(this.mediaProperties.mediaDirection.sendShare, ")"));
|
|
7792
7881
|
this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
|
@@ -7817,34 +7906,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7817
7906
|
resourceUrl: this.resourceUrl,
|
|
7818
7907
|
shareInstanceId: this.localShareInstanceId
|
|
7819
7908
|
}).then(function () {
|
|
7820
|
-
|
|
7909
|
+
_this50.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
|
|
7821
7910
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
|
|
7822
|
-
correlation_id:
|
|
7823
|
-
locus_id:
|
|
7911
|
+
correlation_id: _this50.correlationId,
|
|
7912
|
+
locus_id: _this50.locusUrl.split('/').pop()
|
|
7824
7913
|
});
|
|
7825
7914
|
return _promise.default.resolve();
|
|
7826
7915
|
}).catch(function (error) {
|
|
7827
7916
|
_loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
|
|
7828
7917
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
|
|
7829
|
-
correlation_id:
|
|
7830
|
-
locus_id:
|
|
7918
|
+
correlation_id: _this50.correlationId,
|
|
7919
|
+
locus_id: _this50.locusUrl.split('/').pop(),
|
|
7831
7920
|
reason: error.message,
|
|
7832
7921
|
stack: error.stack
|
|
7833
7922
|
});
|
|
7834
7923
|
|
|
7835
7924
|
// @ts-ignore
|
|
7836
|
-
|
|
7925
|
+
_this50.webex.internal.newMetrics.submitClientEvent({
|
|
7837
7926
|
name: 'client.share.floor-granted.local',
|
|
7838
7927
|
payload: {
|
|
7839
7928
|
mediaType: 'share',
|
|
7840
7929
|
errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
|
|
7841
|
-
shareInstanceId:
|
|
7930
|
+
shareInstanceId: _this50.localShareInstanceId
|
|
7842
7931
|
},
|
|
7843
7932
|
options: {
|
|
7844
|
-
meetingId:
|
|
7933
|
+
meetingId: _this50.id
|
|
7845
7934
|
}
|
|
7846
7935
|
});
|
|
7847
|
-
|
|
7936
|
+
_this50.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
|
7848
7937
|
return _promise.default.reject(error);
|
|
7849
7938
|
});
|
|
7850
7939
|
}
|
|
@@ -7867,10 +7956,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7867
7956
|
}, {
|
|
7868
7957
|
key: "requestScreenShareFloorIfPending",
|
|
7869
7958
|
value: function requestScreenShareFloorIfPending() {
|
|
7870
|
-
var
|
|
7959
|
+
var _this51 = this;
|
|
7871
7960
|
if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
|
|
7872
7961
|
this.requestScreenShareFloor().then(function () {
|
|
7873
|
-
|
|
7962
|
+
_this51.floorGrantPending = false;
|
|
7874
7963
|
});
|
|
7875
7964
|
}
|
|
7876
7965
|
}
|
|
@@ -7884,7 +7973,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7884
7973
|
}, {
|
|
7885
7974
|
key: "releaseScreenShareFloor",
|
|
7886
7975
|
value: function releaseScreenShareFloor() {
|
|
7887
|
-
var
|
|
7976
|
+
var _this52 = this;
|
|
7888
7977
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
|
7889
7978
|
return element.name === _constants.CONTENT;
|
|
7890
7979
|
});
|
|
@@ -7919,8 +8008,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7919
8008
|
}).catch(function (error) {
|
|
7920
8009
|
_loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
|
|
7921
8010
|
_metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
|
|
7922
|
-
correlation_id:
|
|
7923
|
-
locus_id:
|
|
8011
|
+
correlation_id: _this52.correlationId,
|
|
8012
|
+
locus_id: _this52.locusUrl.split('/').pop(),
|
|
7924
8013
|
reason: error.message,
|
|
7925
8014
|
stack: error.stack
|
|
7926
8015
|
});
|
|
@@ -8100,7 +8189,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8100
8189
|
}, {
|
|
8101
8190
|
key: "changeVideoLayout",
|
|
8102
8191
|
value: function changeVideoLayout(layoutType) {
|
|
8103
|
-
var
|
|
8192
|
+
var _this53 = this;
|
|
8104
8193
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
8105
8194
|
var main = renderInfo.main,
|
|
8106
8195
|
content = renderInfo.content;
|
|
@@ -8154,7 +8243,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8154
8243
|
}
|
|
8155
8244
|
this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
|
|
8156
8245
|
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
|
|
8157
|
-
_triggerProxy.default.trigger(
|
|
8246
|
+
_triggerProxy.default.trigger(_this53, {
|
|
8158
8247
|
file: 'meeting/index',
|
|
8159
8248
|
function: 'changeVideoLayout'
|
|
8160
8249
|
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
|
|
@@ -8270,7 +8359,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8270
8359
|
}, {
|
|
8271
8360
|
key: "endMeetingForAll",
|
|
8272
8361
|
value: function endMeetingForAll() {
|
|
8273
|
-
var
|
|
8362
|
+
var _this54 = this;
|
|
8274
8363
|
// @ts-ignore
|
|
8275
8364
|
this.webex.internal.newMetrics.submitClientEvent({
|
|
8276
8365
|
name: 'client.call.leave',
|
|
@@ -8288,25 +8377,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8288
8377
|
locus_id: this.locusId
|
|
8289
8378
|
});
|
|
8290
8379
|
return _util2.default.endMeetingForAll(this).then(function (end) {
|
|
8291
|
-
|
|
8292
|
-
|
|
8380
|
+
_this54.meetingFiniteStateMachine.end();
|
|
8381
|
+
_this54.clearMeetingData();
|
|
8293
8382
|
// upload logs on leave irrespective of meeting delete
|
|
8294
|
-
_triggerProxy.default.trigger(
|
|
8383
|
+
_triggerProxy.default.trigger(_this54, {
|
|
8295
8384
|
file: 'meeting/index',
|
|
8296
8385
|
function: 'endMeetingForAll'
|
|
8297
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
8386
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this54);
|
|
8298
8387
|
return end;
|
|
8299
8388
|
}).catch(function (error) {
|
|
8300
|
-
|
|
8389
|
+
_this54.meetingFiniteStateMachine.fail(error);
|
|
8301
8390
|
_loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
|
|
8302
8391
|
// upload logs on leave irrespective of meeting delete
|
|
8303
|
-
_triggerProxy.default.trigger(
|
|
8392
|
+
_triggerProxy.default.trigger(_this54, {
|
|
8304
8393
|
file: 'meeting/index',
|
|
8305
8394
|
function: 'endMeetingForAll'
|
|
8306
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
8395
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this54);
|
|
8307
8396
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
|
|
8308
|
-
correlation_id:
|
|
8309
|
-
locus_id:
|
|
8397
|
+
correlation_id: _this54.correlationId,
|
|
8398
|
+
locus_id: _this54.locusUrl.split('/').pop(),
|
|
8310
8399
|
reason: error.message,
|
|
8311
8400
|
stack: error.stack,
|
|
8312
8401
|
code: error.code
|
|
@@ -8395,39 +8484,39 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8395
8484
|
}, {
|
|
8396
8485
|
key: "enableMusicMode",
|
|
8397
8486
|
value: (function () {
|
|
8398
|
-
var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8399
|
-
return _regenerator.default.wrap(function
|
|
8400
|
-
while (1) switch (
|
|
8487
|
+
var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee36(shouldEnableMusicMode) {
|
|
8488
|
+
return _regenerator.default.wrap(function _callee36$(_context36) {
|
|
8489
|
+
while (1) switch (_context36.prev = _context36.next) {
|
|
8401
8490
|
case 0:
|
|
8402
8491
|
this.checkMediaConnection();
|
|
8403
8492
|
if (this.isMultistream) {
|
|
8404
|
-
|
|
8493
|
+
_context36.next = 3;
|
|
8405
8494
|
break;
|
|
8406
8495
|
}
|
|
8407
8496
|
throw new Error('enableMusicMode() only supported with multistream');
|
|
8408
8497
|
case 3:
|
|
8409
8498
|
if (!shouldEnableMusicMode) {
|
|
8410
|
-
|
|
8499
|
+
_context36.next = 8;
|
|
8411
8500
|
break;
|
|
8412
8501
|
}
|
|
8413
|
-
|
|
8502
|
+
_context36.next = 6;
|
|
8414
8503
|
return this.sendSlotManager.setCodecParameters(_internalMediaCore.MediaType.AudioMain, {
|
|
8415
8504
|
maxaveragebitrate: '64000',
|
|
8416
8505
|
maxplaybackrate: '48000'
|
|
8417
8506
|
});
|
|
8418
8507
|
case 6:
|
|
8419
|
-
|
|
8508
|
+
_context36.next = 10;
|
|
8420
8509
|
break;
|
|
8421
8510
|
case 8:
|
|
8422
|
-
|
|
8511
|
+
_context36.next = 10;
|
|
8423
8512
|
return this.sendSlotManager.deleteCodecParameters(_internalMediaCore.MediaType.AudioMain, ['maxaveragebitrate', 'maxplaybackrate']);
|
|
8424
8513
|
case 10:
|
|
8425
8514
|
case "end":
|
|
8426
|
-
return
|
|
8515
|
+
return _context36.stop();
|
|
8427
8516
|
}
|
|
8428
|
-
},
|
|
8517
|
+
}, _callee36, this);
|
|
8429
8518
|
}));
|
|
8430
|
-
function enableMusicMode(
|
|
8519
|
+
function enableMusicMode(_x37) {
|
|
8431
8520
|
return _enableMusicMode.apply(this, arguments);
|
|
8432
8521
|
}
|
|
8433
8522
|
return enableMusicMode;
|
|
@@ -8448,7 +8537,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8448
8537
|
_this$mediaProperties41,
|
|
8449
8538
|
_this$mediaProperties42,
|
|
8450
8539
|
_this$mediaProperties43,
|
|
8451
|
-
|
|
8540
|
+
_this55 = this;
|
|
8452
8541
|
var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
|
|
8453
8542
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
|
|
8454
8543
|
if (!this.canUpdateMedia()) {
|
|
@@ -8473,8 +8562,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8473
8562
|
}).catch(function (error) {
|
|
8474
8563
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
|
|
8475
8564
|
_metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
|
|
8476
|
-
correlation_id:
|
|
8477
|
-
locus_id:
|
|
8565
|
+
correlation_id: _this55.correlationId,
|
|
8566
|
+
locus_id: _this55.locusUrl.split('/').pop(),
|
|
8478
8567
|
reason: error.message,
|
|
8479
8568
|
stack: error.stack
|
|
8480
8569
|
});
|
|
@@ -8518,25 +8607,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8518
8607
|
}, {
|
|
8519
8608
|
key: "publishStream",
|
|
8520
8609
|
value: (function () {
|
|
8521
|
-
var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8522
|
-
return _regenerator.default.wrap(function
|
|
8523
|
-
while (1) switch (
|
|
8610
|
+
var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee37(mediaType, stream) {
|
|
8611
|
+
return _regenerator.default.wrap(function _callee37$(_context37) {
|
|
8612
|
+
while (1) switch (_context37.prev = _context37.next) {
|
|
8524
8613
|
case 0:
|
|
8525
8614
|
if (stream) {
|
|
8526
|
-
|
|
8615
|
+
_context37.next = 2;
|
|
8527
8616
|
break;
|
|
8528
8617
|
}
|
|
8529
|
-
return
|
|
8618
|
+
return _context37.abrupt("return");
|
|
8530
8619
|
case 2:
|
|
8531
8620
|
if (!this.mediaProperties.webrtcMediaConnection) {
|
|
8532
|
-
|
|
8621
|
+
_context37.next = 7;
|
|
8533
8622
|
break;
|
|
8534
8623
|
}
|
|
8535
8624
|
if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
|
|
8536
|
-
|
|
8625
|
+
_context37.next = 6;
|
|
8537
8626
|
break;
|
|
8538
8627
|
}
|
|
8539
|
-
|
|
8628
|
+
_context37.next = 6;
|
|
8540
8629
|
return this.sendSlotManager.publishStream(mediaType, stream);
|
|
8541
8630
|
case 6:
|
|
8542
8631
|
this.emitPublishStateChangeEvent({
|
|
@@ -8547,11 +8636,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8547
8636
|
});
|
|
8548
8637
|
case 7:
|
|
8549
8638
|
case "end":
|
|
8550
|
-
return
|
|
8639
|
+
return _context37.stop();
|
|
8551
8640
|
}
|
|
8552
|
-
},
|
|
8641
|
+
}, _callee37, this);
|
|
8553
8642
|
}));
|
|
8554
|
-
function publishStream(
|
|
8643
|
+
function publishStream(_x38, _x39) {
|
|
8555
8644
|
return _publishStream.apply(this, arguments);
|
|
8556
8645
|
}
|
|
8557
8646
|
return publishStream;
|
|
@@ -8567,21 +8656,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8567
8656
|
}, {
|
|
8568
8657
|
key: "unpublishStream",
|
|
8569
8658
|
value: (function () {
|
|
8570
|
-
var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8571
|
-
return _regenerator.default.wrap(function
|
|
8572
|
-
while (1) switch (
|
|
8659
|
+
var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee38(mediaType, stream) {
|
|
8660
|
+
return _regenerator.default.wrap(function _callee38$(_context38) {
|
|
8661
|
+
while (1) switch (_context38.prev = _context38.next) {
|
|
8573
8662
|
case 0:
|
|
8574
8663
|
if (stream) {
|
|
8575
|
-
|
|
8664
|
+
_context38.next = 2;
|
|
8576
8665
|
break;
|
|
8577
8666
|
}
|
|
8578
|
-
return
|
|
8667
|
+
return _context38.abrupt("return");
|
|
8579
8668
|
case 2:
|
|
8580
8669
|
if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
|
|
8581
|
-
|
|
8670
|
+
_context38.next = 5;
|
|
8582
8671
|
break;
|
|
8583
8672
|
}
|
|
8584
|
-
|
|
8673
|
+
_context38.next = 5;
|
|
8585
8674
|
return this.sendSlotManager.unpublishStream(mediaType);
|
|
8586
8675
|
case 5:
|
|
8587
8676
|
this.emitPublishStateChangeEvent({
|
|
@@ -8592,11 +8681,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8592
8681
|
});
|
|
8593
8682
|
case 6:
|
|
8594
8683
|
case "end":
|
|
8595
|
-
return
|
|
8684
|
+
return _context38.stop();
|
|
8596
8685
|
}
|
|
8597
|
-
},
|
|
8686
|
+
}, _callee38, this);
|
|
8598
8687
|
}));
|
|
8599
|
-
function unpublishStream(
|
|
8688
|
+
function unpublishStream(_x40, _x41) {
|
|
8600
8689
|
return _unpublishStream.apply(this, arguments);
|
|
8601
8690
|
}
|
|
8602
8691
|
return unpublishStream;
|
|
@@ -8611,19 +8700,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8611
8700
|
}, {
|
|
8612
8701
|
key: "publishStreams",
|
|
8613
8702
|
value: (function () {
|
|
8614
|
-
var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8703
|
+
var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee39(streams) {
|
|
8615
8704
|
var _streams$screenShare, _streams$screenShare2, _streams$screenShare3, _streams$screenShare4, _streams$screenShare5, _streams$screenShare6;
|
|
8616
8705
|
var streamChecks, _i, _streamChecks, _streamChecks$_i, stream, name, floorRequestNeeded, _streams$screenShare7;
|
|
8617
|
-
return _regenerator.default.wrap(function
|
|
8618
|
-
while (1) switch (
|
|
8706
|
+
return _regenerator.default.wrap(function _callee39$(_context39) {
|
|
8707
|
+
while (1) switch (_context39.prev = _context39.next) {
|
|
8619
8708
|
case 0:
|
|
8620
8709
|
_loggerProxy.default.logger.info("Meeting:index#publishStreams --> called with: ".concat((0, _stringify.default)(streams)));
|
|
8621
8710
|
this.checkMediaConnection();
|
|
8622
8711
|
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))) {
|
|
8623
|
-
|
|
8712
|
+
_context39.next = 4;
|
|
8624
8713
|
break;
|
|
8625
8714
|
}
|
|
8626
|
-
return
|
|
8715
|
+
return _context39.abrupt("return");
|
|
8627
8716
|
case 4:
|
|
8628
8717
|
streamChecks = [{
|
|
8629
8718
|
stream: streams === null || streams === void 0 ? void 0 : streams.microphone,
|
|
@@ -8641,62 +8730,62 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8641
8730
|
_i = 0, _streamChecks = streamChecks;
|
|
8642
8731
|
case 6:
|
|
8643
8732
|
if (!(_i < _streamChecks.length)) {
|
|
8644
|
-
|
|
8733
|
+
_context39.next = 13;
|
|
8645
8734
|
break;
|
|
8646
8735
|
}
|
|
8647
8736
|
_streamChecks$_i = _streamChecks[_i], stream = _streamChecks$_i.stream, name = _streamChecks$_i.name;
|
|
8648
8737
|
if (!((stream === null || stream === void 0 ? void 0 : stream.readyState) === 'ended')) {
|
|
8649
|
-
|
|
8738
|
+
_context39.next = 10;
|
|
8650
8739
|
break;
|
|
8651
8740
|
}
|
|
8652
8741
|
throw new Error("Attempted to publish ".concat(name, " stream with ended readyState, correlationId=").concat(this.correlationId));
|
|
8653
8742
|
case 10:
|
|
8654
8743
|
_i++;
|
|
8655
|
-
|
|
8744
|
+
_context39.next = 6;
|
|
8656
8745
|
break;
|
|
8657
8746
|
case 13:
|
|
8658
8747
|
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
|
|
8659
8748
|
if (!(this.isMultistream && (_streams$screenShare5 = streams.screenShare) !== null && _streams$screenShare5 !== void 0 && _streams$screenShare5.audio)) {
|
|
8660
|
-
|
|
8749
|
+
_context39.next = 18;
|
|
8661
8750
|
break;
|
|
8662
8751
|
}
|
|
8663
|
-
|
|
8752
|
+
_context39.next = 17;
|
|
8664
8753
|
return this.setLocalShareAudioStream(streams.screenShare.audio);
|
|
8665
8754
|
case 17:
|
|
8666
8755
|
floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
|
|
8667
8756
|
case 18:
|
|
8668
8757
|
if (!((_streams$screenShare6 = streams.screenShare) !== null && _streams$screenShare6 !== void 0 && _streams$screenShare6.video)) {
|
|
8669
|
-
|
|
8758
|
+
_context39.next = 22;
|
|
8670
8759
|
break;
|
|
8671
8760
|
}
|
|
8672
|
-
|
|
8761
|
+
_context39.next = 21;
|
|
8673
8762
|
return this.setLocalShareVideoStream((_streams$screenShare7 = streams.screenShare) === null || _streams$screenShare7 === void 0 ? void 0 : _streams$screenShare7.video);
|
|
8674
8763
|
case 21:
|
|
8675
8764
|
floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
|
|
8676
8765
|
case 22:
|
|
8677
8766
|
if (!streams.microphone) {
|
|
8678
|
-
|
|
8767
|
+
_context39.next = 25;
|
|
8679
8768
|
break;
|
|
8680
8769
|
}
|
|
8681
|
-
|
|
8770
|
+
_context39.next = 25;
|
|
8682
8771
|
return this.setLocalAudioStream(streams.microphone);
|
|
8683
8772
|
case 25:
|
|
8684
8773
|
if (!streams.camera) {
|
|
8685
|
-
|
|
8774
|
+
_context39.next = 28;
|
|
8686
8775
|
break;
|
|
8687
8776
|
}
|
|
8688
|
-
|
|
8777
|
+
_context39.next = 28;
|
|
8689
8778
|
return this.setLocalVideoStream(streams.camera);
|
|
8690
8779
|
case 28:
|
|
8691
8780
|
if (this.isMultistream) {
|
|
8692
|
-
|
|
8781
|
+
_context39.next = 31;
|
|
8693
8782
|
break;
|
|
8694
8783
|
}
|
|
8695
|
-
|
|
8784
|
+
_context39.next = 31;
|
|
8696
8785
|
return this.updateTranscodedMediaConnection();
|
|
8697
8786
|
case 31:
|
|
8698
8787
|
if (!floorRequestNeeded) {
|
|
8699
|
-
|
|
8788
|
+
_context39.next = 37;
|
|
8700
8789
|
break;
|
|
8701
8790
|
}
|
|
8702
8791
|
this.localShareInstanceId = _uuid.default.v4();
|
|
@@ -8720,15 +8809,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8720
8809
|
// we're sending the http request to Locus to request the screen share floor
|
|
8721
8810
|
// only after the SDP update, because that's how it's always been done for transcoded meetings
|
|
8722
8811
|
// and also if sharing from the start, we need confluence to have been created
|
|
8723
|
-
|
|
8812
|
+
_context39.next = 37;
|
|
8724
8813
|
return this.enqueueScreenShareFloorRequest();
|
|
8725
8814
|
case 37:
|
|
8726
8815
|
case "end":
|
|
8727
|
-
return
|
|
8816
|
+
return _context39.stop();
|
|
8728
8817
|
}
|
|
8729
|
-
},
|
|
8818
|
+
}, _callee39, this);
|
|
8730
8819
|
}));
|
|
8731
|
-
function publishStreams(
|
|
8820
|
+
function publishStreams(_x42) {
|
|
8732
8821
|
return _publishStreams.apply(this, arguments);
|
|
8733
8822
|
}
|
|
8734
8823
|
return publishStreams;
|
|
@@ -8743,10 +8832,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8743
8832
|
}, {
|
|
8744
8833
|
key: "unpublishStreams",
|
|
8745
8834
|
value: (function () {
|
|
8746
|
-
var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8835
|
+
var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee40(streams) {
|
|
8747
8836
|
var promises, _iterator, _step, stream;
|
|
8748
|
-
return _regenerator.default.wrap(function
|
|
8749
|
-
while (1) switch (
|
|
8837
|
+
return _regenerator.default.wrap(function _callee40$(_context40) {
|
|
8838
|
+
while (1) switch (_context40.prev = _context40.next) {
|
|
8750
8839
|
case 0:
|
|
8751
8840
|
_loggerProxy.default.logger.info("Meeting:index#unpublishStreams --> called with: ".concat((0, _stringify.default)(streams)));
|
|
8752
8841
|
this.checkMediaConnection();
|
|
@@ -8778,7 +8867,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8778
8867
|
if (!this.isMultistream) {
|
|
8779
8868
|
promises.push(this.updateTranscodedMediaConnection());
|
|
8780
8869
|
}
|
|
8781
|
-
|
|
8870
|
+
_context40.next = 8;
|
|
8782
8871
|
return _promise.default.all(promises);
|
|
8783
8872
|
case 8:
|
|
8784
8873
|
// we're allowing for the SDK to support just audio share as well
|
|
@@ -8799,11 +8888,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8799
8888
|
}
|
|
8800
8889
|
case 9:
|
|
8801
8890
|
case "end":
|
|
8802
|
-
return
|
|
8891
|
+
return _context40.stop();
|
|
8803
8892
|
}
|
|
8804
|
-
},
|
|
8893
|
+
}, _callee40, this);
|
|
8805
8894
|
}));
|
|
8806
|
-
function unpublishStreams(
|
|
8895
|
+
function unpublishStreams(_x43) {
|
|
8807
8896
|
return _unpublishStreams.apply(this, arguments);
|
|
8808
8897
|
}
|
|
8809
8898
|
return unpublishStreams;
|
|
@@ -8860,64 +8949,6 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8860
8949
|
}
|
|
8861
8950
|
return _promise.default.resolve();
|
|
8862
8951
|
}
|
|
8863
|
-
}], [{
|
|
8864
|
-
key: "handleDeviceLogging",
|
|
8865
|
-
value: (function () {
|
|
8866
|
-
var _handleDeviceLogging = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee40(isAudioEnabled, isVideoEnabled) {
|
|
8867
|
-
var devices;
|
|
8868
|
-
return _regenerator.default.wrap(function _callee40$(_context40) {
|
|
8869
|
-
while (1) switch (_context40.prev = _context40.next) {
|
|
8870
|
-
case 0:
|
|
8871
|
-
_context40.prev = 0;
|
|
8872
|
-
devices = [];
|
|
8873
|
-
if (!(isVideoEnabled && isAudioEnabled)) {
|
|
8874
|
-
_context40.next = 8;
|
|
8875
|
-
break;
|
|
8876
|
-
}
|
|
8877
|
-
_context40.next = 5;
|
|
8878
|
-
return (0, _mediaHelpers.getDevices)();
|
|
8879
|
-
case 5:
|
|
8880
|
-
devices = _context40.sent;
|
|
8881
|
-
_context40.next = 18;
|
|
8882
|
-
break;
|
|
8883
|
-
case 8:
|
|
8884
|
-
if (!isVideoEnabled) {
|
|
8885
|
-
_context40.next = 14;
|
|
8886
|
-
break;
|
|
8887
|
-
}
|
|
8888
|
-
_context40.next = 11;
|
|
8889
|
-
return (0, _mediaHelpers.getDevices)(_media.default.DeviceKind.VIDEO_INPUT);
|
|
8890
|
-
case 11:
|
|
8891
|
-
devices = _context40.sent;
|
|
8892
|
-
_context40.next = 18;
|
|
8893
|
-
break;
|
|
8894
|
-
case 14:
|
|
8895
|
-
if (!isAudioEnabled) {
|
|
8896
|
-
_context40.next = 18;
|
|
8897
|
-
break;
|
|
8898
|
-
}
|
|
8899
|
-
_context40.next = 17;
|
|
8900
|
-
return (0, _mediaHelpers.getDevices)(_media.default.DeviceKind.AUDIO_INPUT);
|
|
8901
|
-
case 17:
|
|
8902
|
-
devices = _context40.sent;
|
|
8903
|
-
case 18:
|
|
8904
|
-
_util2.default.handleDeviceLogging(devices);
|
|
8905
|
-
_context40.next = 23;
|
|
8906
|
-
break;
|
|
8907
|
-
case 21:
|
|
8908
|
-
_context40.prev = 21;
|
|
8909
|
-
_context40.t0 = _context40["catch"](0);
|
|
8910
|
-
case 23:
|
|
8911
|
-
case "end":
|
|
8912
|
-
return _context40.stop();
|
|
8913
|
-
}
|
|
8914
|
-
}, _callee40, null, [[0, 21]]);
|
|
8915
|
-
}));
|
|
8916
|
-
function handleDeviceLogging(_x43, _x44) {
|
|
8917
|
-
return _handleDeviceLogging.apply(this, arguments);
|
|
8918
|
-
}
|
|
8919
|
-
return handleDeviceLogging;
|
|
8920
|
-
}())
|
|
8921
8952
|
}]);
|
|
8922
8953
|
return Meeting;
|
|
8923
8954
|
}(_webexCore.StatelessWebexPlugin);
|