@webex/plugin-meetings 3.7.0-next.4 → 3.7.0-next.41
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/annotation/index.js +17 -0
- package/dist/annotation/index.js.map +1 -1
- 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/common/errors/multistream-not-supported-error.js +53 -0
- package/dist/common/errors/multistream-not-supported-error.js.map +1 -0
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +36 -6
- package/dist/constants.js.map +1 -1
- package/dist/index.js +16 -11
- 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 +13 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +922 -800
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +9 -0
- package/dist/meeting/locusMediaRequest.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 +16 -16
- 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/meetings/util.js +1 -1
- package/dist/meetings/util.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/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/roap/index.js +10 -8
- package/dist/roap/index.js.map +1 -1
- package/dist/types/annotation/index.d.ts +5 -0
- package/dist/types/common/errors/{webinar-registration-error.d.ts → join-webinar-error.d.ts} +2 -2
- package/dist/types/common/errors/multistream-not-supported-error.d.ts +17 -0
- package/dist/types/constants.d.ts +28 -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 +12 -0
- package/dist/types/meeting/index.d.ts +20 -12
- package/dist/types/meeting/locusMediaRequest.d.ts +4 -0
- 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/annotation/index.ts +16 -0
- package/src/common/errors/join-webinar-error.ts +24 -0
- package/src/common/errors/multistream-not-supported-error.ts +30 -0
- package/src/config.ts +1 -1
- package/src/constants.ts +33 -3
- package/src/index.ts +5 -3
- package/src/locus-info/index.ts +17 -2
- package/src/locus-info/selfUtils.ts +19 -6
- package/src/meeting/in-meeting-actions.ts +25 -0
- package/src/meeting/index.ts +257 -80
- package/src/meeting/locusMediaRequest.ts +7 -0
- package/src/meeting/request.ts +26 -1
- package/src/meeting/request.type.ts +7 -0
- package/src/meeting/util.ts +8 -10
- package/src/meeting-info/meeting-info-v2.ts +23 -11
- package/src/meetings/index.ts +8 -2
- package/src/meetings/util.ts +2 -1
- 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/recording-controller/enums.ts +5 -2
- package/src/recording-controller/index.ts +17 -4
- package/src/recording-controller/util.ts +20 -5
- package/src/roap/index.ts +10 -8
- package/src/webinar/index.ts +235 -9
- package/test/unit/spec/annotation/index.ts +46 -1
- 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 +15 -1
- package/test/unit/spec/meeting/index.js +685 -102
- package/test/unit/spec/meeting/utils.js +22 -19
- package/test/unit/spec/meeting-info/meetinginfov2.js +9 -4
- package/test/unit/spec/meetings/index.js +9 -5
- package/test/unit/spec/meetings/utils.js +10 -0
- 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/recording-controller/index.js +61 -5
- package/test/unit/spec/recording-controller/util.js +39 -3
- package/test/unit/spec/roap/index.ts +47 -0
- 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,8 @@ 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
|
+
var _multistreamNotSupportedError = _interopRequireDefault(require("../common/errors/multistream-not-supported-error"));
|
|
91
92
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
92
93
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
93
94
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
@@ -567,8 +568,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
567
568
|
if (
|
|
568
569
|
// @ts-ignore - config coming from registerPlugin
|
|
569
570
|
(_this.config.receiveReactions || options.receiveReactions) && _this.isReactionsSupported()) {
|
|
570
|
-
var
|
|
571
|
-
|
|
571
|
+
var member = _this.members.membersCollection.get(e.data.sender.participantId);
|
|
572
|
+
if (!member) {
|
|
573
|
+
// @ts-ignore -- fix type
|
|
574
|
+
_loggerProxy.default.logger.warn("Meeting:index#processRelayEvent --> Skipping handling of ".concat(_constants3.REACTION_RELAY_TYPES.REACTION, " for ").concat(_this.id, ". participantId ").concat(e.data.sender.participantId, " does not exist in membersCollection."));
|
|
575
|
+
break;
|
|
576
|
+
}
|
|
577
|
+
var name = member.name;
|
|
572
578
|
var processedReaction = {
|
|
573
579
|
reaction: e.data.reaction,
|
|
574
580
|
sender: {
|
|
@@ -675,6 +681,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
675
681
|
*/
|
|
676
682
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "roapMessageReceived", function (roapMessage) {
|
|
677
683
|
var mediaServer = _util3.default.getMediaServer(roapMessage.sdp);
|
|
684
|
+
if (_this.isMultistream && mediaServer !== 'homer') {
|
|
685
|
+
throw new _multistreamNotSupportedError.default("Client asked for multistream backend (Homer), but got ".concat(mediaServer, " instead"));
|
|
686
|
+
}
|
|
678
687
|
_this.mediaProperties.webrtcMediaConnection.roapMessageReceived(roapMessage);
|
|
679
688
|
if (mediaServer) {
|
|
680
689
|
_this.mediaProperties.webrtcMediaConnection.mediaServer = mediaServer;
|
|
@@ -769,15 +778,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
769
778
|
}), {
|
|
770
779
|
logText: "".concat(LOG_HEADER, " Roap Offer")
|
|
771
780
|
}).catch(function (error) {
|
|
781
|
+
var multistreamNotSupported = error instanceof _multistreamNotSupportedError.default;
|
|
782
|
+
|
|
772
783
|
// @ts-ignore
|
|
773
784
|
_this.webex.internal.newMetrics.submitClientEvent({
|
|
774
785
|
name: 'client.media-engine.remote-sdp-received',
|
|
775
786
|
payload: {
|
|
776
|
-
canProceed:
|
|
787
|
+
canProceed: multistreamNotSupported,
|
|
777
788
|
errors: [
|
|
778
789
|
// @ts-ignore
|
|
779
790
|
_this.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
|
|
780
|
-
clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
|
|
791
|
+
clientErrorCode: multistreamNotSupported ? _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MULTISTREAM_NOT_AVAILABLE_CLIENT_CODE : _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
|
|
781
792
|
})]
|
|
782
793
|
},
|
|
783
794
|
options: {
|
|
@@ -785,7 +796,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
785
796
|
rawError: error
|
|
786
797
|
}
|
|
787
798
|
});
|
|
788
|
-
_this.deferSDPAnswer.reject(
|
|
799
|
+
_this.deferSDPAnswer.reject(error);
|
|
789
800
|
clearTimeout(_this.sdpResponseTimer);
|
|
790
801
|
_this.sdpResponseTimer = undefined;
|
|
791
802
|
});
|
|
@@ -1027,6 +1038,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1027
1038
|
options.data.intervalMetadata.peerReflexiveIP =
|
|
1028
1039
|
// @ts-ignore
|
|
1029
1040
|
((_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;
|
|
1041
|
+
var members = _this.getMembers().membersCollection.members;
|
|
1042
|
+
|
|
1043
|
+
// Count members that are in the meeting
|
|
1044
|
+
options.data.intervalMetadata.meetingUserCount = (0, _values.default)(members).filter(function (member) {
|
|
1045
|
+
return member.isInMeeting;
|
|
1046
|
+
}).length;
|
|
1047
|
+
|
|
1030
1048
|
// @ts-ignore
|
|
1031
1049
|
_this.webex.internal.newMetrics.submitMQE({
|
|
1032
1050
|
name: 'client.mediaquality.event',
|
|
@@ -1344,6 +1362,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1344
1362
|
_this.stopTranscription();
|
|
1345
1363
|
_this.transcription = undefined;
|
|
1346
1364
|
}
|
|
1365
|
+
_this.annotation.deregisterEvents();
|
|
1366
|
+
|
|
1367
|
+
// @ts-ignore - fix types
|
|
1368
|
+
_this.webex.internal.llm.off('event:relay.event', _this.processRelayEvent);
|
|
1347
1369
|
});
|
|
1348
1370
|
/**
|
|
1349
1371
|
* starts keepAlives being sent
|
|
@@ -1369,10 +1391,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1369
1391
|
_loggerProxy.default.logger.warn('Meeting:index#startKeepAlive --> keepAlive not started: keepAliveSecs <= 1');
|
|
1370
1392
|
return;
|
|
1371
1393
|
}
|
|
1372
|
-
var keepAliveUrl = _this.joinedWith.keepAliveUrl;
|
|
1373
1394
|
var keepAliveInterval = (_this.joinedWith.keepAliveSecs - 1) * 750; // taken from UCF
|
|
1374
1395
|
|
|
1375
1396
|
_this.keepAliveTimerId = setInterval(function () {
|
|
1397
|
+
var keepAliveUrl = _this.joinedWith.keepAliveUrl;
|
|
1376
1398
|
_this.meetingRequest.keepAlive({
|
|
1377
1399
|
keepAliveUrl: keepAliveUrl
|
|
1378
1400
|
}).catch(function (error) {
|
|
@@ -1520,7 +1542,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1520
1542
|
* @memberof Meeting
|
|
1521
1543
|
*/
|
|
1522
1544
|
// @ts-ignore
|
|
1523
|
-
_this.webinar = new _webinar.default({
|
|
1545
|
+
_this.webinar = new _webinar.default({
|
|
1546
|
+
meetingId: _this.id
|
|
1547
|
+
}, {
|
|
1524
1548
|
parent: _this.webex
|
|
1525
1549
|
});
|
|
1526
1550
|
/**
|
|
@@ -2427,19 +2451,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2427
2451
|
}
|
|
2428
2452
|
throw new _permission.default();
|
|
2429
2453
|
case 21:
|
|
2430
|
-
if (!(_context5.t0 instanceof _meetingInfoV.
|
|
2431
|
-
_context5.next =
|
|
2454
|
+
if (!(_context5.t0 instanceof _meetingInfoV.MeetingInfoV2JoinWebinarError)) {
|
|
2455
|
+
_context5.next = 29;
|
|
2432
2456
|
break;
|
|
2433
2457
|
}
|
|
2434
2458
|
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.WEBINAR_REGISTRATION;
|
|
2459
|
+
if (_constants.WEBINAR_ERROR_WEBCAST.includes(_context5.t0.wbxAppApiCode)) {
|
|
2460
|
+
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.NEED_JOIN_WITH_WEBCAST;
|
|
2461
|
+
} else if (_constants.WEBINAR_ERROR_REGISTRATIONID.includes(_context5.t0.wbxAppApiCode)) {
|
|
2462
|
+
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.WEBINAR_NEED_REGISTRATIONID;
|
|
2463
|
+
}
|
|
2435
2464
|
this.meetingInfoFailureCode = _context5.t0.wbxAppApiCode;
|
|
2436
2465
|
if (_context5.t0.meetingInfo) {
|
|
2437
2466
|
this.meetingInfo = _context5.t0.meetingInfo;
|
|
2438
2467
|
}
|
|
2439
|
-
throw new
|
|
2440
|
-
case
|
|
2468
|
+
throw new _joinWebinarError.default();
|
|
2469
|
+
case 29:
|
|
2441
2470
|
if (!(_context5.t0 instanceof _meetingInfoV.MeetingInfoV2PasswordError)) {
|
|
2442
|
-
_context5.next =
|
|
2471
|
+
_context5.next = 41;
|
|
2443
2472
|
break;
|
|
2444
2473
|
}
|
|
2445
2474
|
_loggerProxy.default.logger.info( // @ts-ignore
|
|
@@ -2454,16 +2483,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2454
2483
|
this.passwordStatus = _constants.PASSWORD_STATUS.REQUIRED;
|
|
2455
2484
|
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.WRONG_PASSWORD;
|
|
2456
2485
|
if (!this.requiredCaptcha) {
|
|
2457
|
-
_context5.next =
|
|
2486
|
+
_context5.next = 38;
|
|
2458
2487
|
break;
|
|
2459
2488
|
}
|
|
2460
|
-
_context5.next =
|
|
2489
|
+
_context5.next = 38;
|
|
2461
2490
|
return this.refreshCaptcha();
|
|
2462
|
-
case
|
|
2491
|
+
case 38:
|
|
2463
2492
|
throw new _passwordError.default();
|
|
2464
|
-
case
|
|
2493
|
+
case 41:
|
|
2465
2494
|
if (!(_context5.t0 instanceof _meetingInfoV.MeetingInfoV2CaptchaError)) {
|
|
2466
|
-
_context5.next =
|
|
2495
|
+
_context5.next = 50;
|
|
2467
2496
|
break;
|
|
2468
2497
|
}
|
|
2469
2498
|
_loggerProxy.default.logger.info( // @ts-ignore
|
|
@@ -2475,10 +2504,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2475
2504
|
}
|
|
2476
2505
|
this.requiredCaptcha = _context5.t0.captchaInfo;
|
|
2477
2506
|
throw new _captchaError.default();
|
|
2478
|
-
case
|
|
2507
|
+
case 50:
|
|
2479
2508
|
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.OTHER;
|
|
2480
2509
|
throw _context5.t0;
|
|
2481
|
-
case
|
|
2510
|
+
case 52:
|
|
2482
2511
|
case "end":
|
|
2483
2512
|
return _context5.stop();
|
|
2484
2513
|
}
|
|
@@ -3244,6 +3273,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3244
3273
|
});
|
|
3245
3274
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_PRACTICE_SESSION_STATUS_UPDATED, function (_ref24) {
|
|
3246
3275
|
var state = _ref24.state;
|
|
3276
|
+
_this13.webinar.updatePracticeSessionStatus(state);
|
|
3247
3277
|
_triggerProxy.default.trigger(_this13, {
|
|
3248
3278
|
file: 'meeting/index',
|
|
3249
3279
|
function: 'setupLocusControlsListener'
|
|
@@ -3310,7 +3340,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3310
3340
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_MEDIA_SHARES, /*#__PURE__*/function () {
|
|
3311
3341
|
var _ref27 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(payload) {
|
|
3312
3342
|
var _payload$previous, _payload$previous2;
|
|
3313
|
-
var _payload$current, contentShare, whiteboardShare, previousContentShare, previousWhiteboardShare, newShareStatus, oldShareStatus, sendStartedSharingRemote, _this14$mediaProperti;
|
|
3343
|
+
var _payload$current, contentShare, whiteboardShare, previousContentShare, previousWhiteboardShare, newShareStatus, _this14$locusInfo, _this14$locusInfo$inf, _this14$webinar, oldShareStatus, sendStartedSharingRemote, _this14$mediaProperti;
|
|
3314
3344
|
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
3315
3345
|
while (1) switch (_context8.prev = _context8.next) {
|
|
3316
3346
|
case 0:
|
|
@@ -3318,7 +3348,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3318
3348
|
previousContentShare = (_payload$previous = payload.previous) === null || _payload$previous === void 0 ? void 0 : _payload$previous.content;
|
|
3319
3349
|
previousWhiteboardShare = (_payload$previous2 = payload.previous) === null || _payload$previous2 === void 0 ? void 0 : _payload$previous2.whiteboard;
|
|
3320
3350
|
_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))) {
|
|
3351
|
+
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
3352
|
_context8.next = 6;
|
|
3323
3353
|
break;
|
|
3324
3354
|
}
|
|
@@ -3344,7 +3374,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3344
3374
|
// It does not matter who requested to share the whiteboard, everyone gets the same view
|
|
3345
3375
|
else if (whiteboardShare.disposition === _constants.FLOOR_ACTION.GRANTED) {
|
|
3346
3376
|
// WHITEBOARD - sharing whiteboard
|
|
3347
|
-
|
|
3377
|
+
// Webinar attendee should receive whiteboard as remote share
|
|
3378
|
+
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
3379
|
}
|
|
3349
3380
|
// or if content share is either released or null and whiteboard share is either released or null, no one is sharing
|
|
3350
3381
|
else if ((previousContentShare && contentShare.disposition === _constants.FLOOR_ACTION.RELEASED || contentShare.disposition === null) && (previousWhiteboardShare && whiteboardShare.disposition === _constants.FLOOR_ACTION.RELEASED || whiteboardShare.disposition === null)) {
|
|
@@ -3578,7 +3609,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3578
3609
|
value: function setUpLocusResourcesListener() {
|
|
3579
3610
|
var _this17 = this;
|
|
3580
3611
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.LINKS_RESOURCES, function (payload) {
|
|
3581
|
-
|
|
3612
|
+
if (payload) {
|
|
3613
|
+
_this17.webinar.updateWebcastUrl(payload);
|
|
3614
|
+
_triggerProxy.default.trigger(_this17, {
|
|
3615
|
+
file: 'meeting/index',
|
|
3616
|
+
function: 'setUpLocusInfoMeetingInfoListener'
|
|
3617
|
+
}, _constants.EVENT_TRIGGERS.MEETING_RESOURCE_LINKS_UPDATE, {
|
|
3618
|
+
payload: payload
|
|
3619
|
+
});
|
|
3620
|
+
}
|
|
3582
3621
|
});
|
|
3583
3622
|
}
|
|
3584
3623
|
|
|
@@ -3844,6 +3883,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3844
3883
|
_this20.setSendNamedMediaGroup(_internalMediaCore.MediaType.AudioMain);
|
|
3845
3884
|
}
|
|
3846
3885
|
});
|
|
3886
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_MEETING_BRB_CHANGED, function (payload) {
|
|
3887
|
+
_triggerProxy.default.trigger(_this20, {
|
|
3888
|
+
file: 'meeting/index',
|
|
3889
|
+
function: 'setUpLocusInfoSelfListener'
|
|
3890
|
+
}, _constants.EVENT_TRIGGERS.MEETING_SELF_BRB_UPDATE, {
|
|
3891
|
+
payload: payload
|
|
3892
|
+
});
|
|
3893
|
+
});
|
|
3847
3894
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ROLES_CHANGED, function (payload) {
|
|
3848
3895
|
var _payload$newRoles, _payload$newRoles2, _payload$newRoles3;
|
|
3849
3896
|
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 +4089,62 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4042
4089
|
return this.members.admitMembers(memberIds, locusUrls);
|
|
4043
4090
|
}
|
|
4044
4091
|
|
|
4092
|
+
/**
|
|
4093
|
+
* Manages be right back status updates for the current participant.
|
|
4094
|
+
*
|
|
4095
|
+
* @param {boolean} enabled - Indicates whether the user enabled brb or not.
|
|
4096
|
+
* @returns {Promise<void>} resolves when the brb status is updated or does nothing if not in a multistream meeting.
|
|
4097
|
+
* @throws {Error} - Throws an error if the request fails.
|
|
4098
|
+
*/
|
|
4099
|
+
}, {
|
|
4100
|
+
key: "beRightBack",
|
|
4101
|
+
value: (function () {
|
|
4102
|
+
var _beRightBack = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(enabled) {
|
|
4103
|
+
var _this23 = this;
|
|
4104
|
+
var errorMessage, error, _errorMessage, _error;
|
|
4105
|
+
return _regenerator.default.wrap(function _callee11$(_context11) {
|
|
4106
|
+
while (1) switch (_context11.prev = _context11.next) {
|
|
4107
|
+
case 0:
|
|
4108
|
+
if (this.isMultistream) {
|
|
4109
|
+
_context11.next = 5;
|
|
4110
|
+
break;
|
|
4111
|
+
}
|
|
4112
|
+
errorMessage = 'Meeting:index#beRightBack --> Not a multistream meeting';
|
|
4113
|
+
error = new Error(errorMessage);
|
|
4114
|
+
_loggerProxy.default.logger.error(error);
|
|
4115
|
+
return _context11.abrupt("return", _promise.default.reject(error));
|
|
4116
|
+
case 5:
|
|
4117
|
+
if (this.mediaProperties.webrtcMediaConnection) {
|
|
4118
|
+
_context11.next = 10;
|
|
4119
|
+
break;
|
|
4120
|
+
}
|
|
4121
|
+
_errorMessage = 'Meeting:index#beRightBack --> WebRTC media connection is not defined';
|
|
4122
|
+
_error = new Error(_errorMessage);
|
|
4123
|
+
_loggerProxy.default.logger.error(_error);
|
|
4124
|
+
return _context11.abrupt("return", _promise.default.reject(_error));
|
|
4125
|
+
case 10:
|
|
4126
|
+
return _context11.abrupt("return", this.meetingRequest.setBrb({
|
|
4127
|
+
enabled: enabled,
|
|
4128
|
+
locusUrl: this.locusUrl,
|
|
4129
|
+
deviceUrl: this.deviceUrl,
|
|
4130
|
+
selfId: this.selfId
|
|
4131
|
+
}).then(function () {
|
|
4132
|
+
_this23.sendSlotManager.setSourceStateOverride(_internalMediaCore.MediaType.VideoMain, enabled ? 'away' : null);
|
|
4133
|
+
}).catch(function (error) {
|
|
4134
|
+
_loggerProxy.default.logger.error('Meeting:index#beRightBack --> Error ', error);
|
|
4135
|
+
return _promise.default.reject(error);
|
|
4136
|
+
}));
|
|
4137
|
+
case 11:
|
|
4138
|
+
case "end":
|
|
4139
|
+
return _context11.stop();
|
|
4140
|
+
}
|
|
4141
|
+
}, _callee11, this);
|
|
4142
|
+
}));
|
|
4143
|
+
function beRightBack(_x11) {
|
|
4144
|
+
return _beRightBack.apply(this, arguments);
|
|
4145
|
+
}
|
|
4146
|
+
return beRightBack;
|
|
4147
|
+
}()
|
|
4045
4148
|
/**
|
|
4046
4149
|
* Remove the member from the meeting, boot them
|
|
4047
4150
|
* @param {String} memberId
|
|
@@ -4049,6 +4152,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4049
4152
|
* @public
|
|
4050
4153
|
* @memberof Meeting
|
|
4051
4154
|
*/
|
|
4155
|
+
)
|
|
4052
4156
|
}, {
|
|
4053
4157
|
key: "remove",
|
|
4054
4158
|
value: function remove(memberId) {
|
|
@@ -4226,6 +4330,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4226
4330
|
canStopRecording: _util4.default.canUserStop(this.userDisplayHints, this.selfUserPolicies),
|
|
4227
4331
|
canPauseRecording: _util4.default.canUserPause(this.userDisplayHints, this.selfUserPolicies),
|
|
4228
4332
|
canResumeRecording: _util4.default.canUserResume(this.userDisplayHints, this.selfUserPolicies),
|
|
4333
|
+
isPremiseRecordingEnabled: _util4.default.isPremiseRecordingEnabled(this.userDisplayHints, this.selfUserPolicies),
|
|
4229
4334
|
canRaiseHand: _util2.default.canUserRaiseHand(this.userDisplayHints),
|
|
4230
4335
|
canLowerAllHands: _util2.default.canUserLowerAllHands(this.userDisplayHints),
|
|
4231
4336
|
canLowerSomeoneElsesHand: _util2.default.canUserLowerSomeoneElsesHand(this.userDisplayHints),
|
|
@@ -4245,6 +4350,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4245
4350
|
waitingForOthersToJoin: _util2.default.waitingForOthersToJoin(this.userDisplayHints),
|
|
4246
4351
|
canSendReactions: _util2.default.canSendReactions(this.inMeetingActions.canSendReactions, this.userDisplayHints),
|
|
4247
4352
|
canManageBreakout: _util2.default.canManageBreakout(this.userDisplayHints),
|
|
4353
|
+
canStartBreakout: _util2.default.canStartBreakout(this.userDisplayHints),
|
|
4248
4354
|
canBroadcastMessageToBreakout: _util2.default.canBroadcastMessageToBreakout(this.userDisplayHints, this.selfUserPolicies),
|
|
4249
4355
|
canAdmitLobbyToBreakout: _util2.default.canAdmitLobbyToBreakout(this.userDisplayHints),
|
|
4250
4356
|
isBreakoutPreassignmentsEnabled: _util2.default.isBreakoutPreassignmentsEnabled(this.userDisplayHints),
|
|
@@ -4355,6 +4461,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4355
4461
|
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_STAGE_VIEW],
|
|
4356
4462
|
displayHints: this.userDisplayHints
|
|
4357
4463
|
}),
|
|
4464
|
+
isPracticeSessionOn: _util5.default.hasHints({
|
|
4465
|
+
requiredHints: [_constants.DISPLAY_HINTS.PRACTICE_SESSION_ON],
|
|
4466
|
+
displayHints: this.userDisplayHints
|
|
4467
|
+
}),
|
|
4468
|
+
isPracticeSessionOff: _util5.default.hasHints({
|
|
4469
|
+
requiredHints: [_constants.DISPLAY_HINTS.PRACTICE_SESSION_OFF],
|
|
4470
|
+
displayHints: this.userDisplayHints
|
|
4471
|
+
}),
|
|
4472
|
+
canStartPracticeSession: _util5.default.hasHints({
|
|
4473
|
+
requiredHints: [_constants.DISPLAY_HINTS.SHOW_PRACTICE_SESSION_START],
|
|
4474
|
+
displayHints: this.userDisplayHints
|
|
4475
|
+
}),
|
|
4476
|
+
canStopPracticeSession: _util5.default.hasHints({
|
|
4477
|
+
requiredHints: [_constants.DISPLAY_HINTS.SHOW_PRACTICE_SESSION_STOP],
|
|
4478
|
+
displayHints: this.userDisplayHints
|
|
4479
|
+
}),
|
|
4358
4480
|
canShareFile: _util5.default.hasHints({
|
|
4359
4481
|
requiredHints: [_constants.DISPLAY_HINTS.SHARE_FILE],
|
|
4360
4482
|
displayHints: this.userDisplayHints
|
|
@@ -4506,25 +4628,26 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4506
4628
|
}, {
|
|
4507
4629
|
key: "setLogUploadTimer",
|
|
4508
4630
|
value: function setLogUploadTimer() {
|
|
4509
|
-
var
|
|
4631
|
+
var _this24 = this;
|
|
4510
4632
|
// 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
|
-
|
|
4633
|
+
var LOG_UPLOAD_INTERVALS = [0.1, 15, 30, 60]; // in minutes
|
|
4634
|
+
|
|
4635
|
+
var delay = 1000 * 60 *
|
|
4513
4636
|
// @ts-ignore - config coming from registerPlugin
|
|
4514
4637
|
this.config.logUploadIntervalMultiplicationFactor * LOG_UPLOAD_INTERVALS[this.logUploadIntervalIndex];
|
|
4515
4638
|
if (this.logUploadIntervalIndex < LOG_UPLOAD_INTERVALS.length - 1) {
|
|
4516
4639
|
this.logUploadIntervalIndex += 1;
|
|
4517
4640
|
}
|
|
4518
4641
|
this.uploadLogsTimer = (0, _commonTimers.safeSetTimeout)(function () {
|
|
4519
|
-
|
|
4520
|
-
|
|
4642
|
+
_this24.uploadLogsTimer = undefined;
|
|
4643
|
+
_this24.uploadLogs();
|
|
4521
4644
|
|
|
4522
4645
|
// just as an extra precaution, to avoid uploading logs forever in case something goes wrong
|
|
4523
4646
|
// and the page remains opened, we stop it if there is no media connection
|
|
4524
|
-
if (!
|
|
4647
|
+
if (!_this24.mediaProperties.webrtcMediaConnection) {
|
|
4525
4648
|
return;
|
|
4526
4649
|
}
|
|
4527
|
-
|
|
4650
|
+
_this24.setLogUploadTimer();
|
|
4528
4651
|
}, delay);
|
|
4529
4652
|
}
|
|
4530
4653
|
|
|
@@ -4591,7 +4714,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4591
4714
|
}, {
|
|
4592
4715
|
key: "closeRemoteStreams",
|
|
4593
4716
|
value: function closeRemoteStreams() {
|
|
4594
|
-
var
|
|
4717
|
+
var _this25 = this;
|
|
4595
4718
|
var _this$mediaProperties4 = this.mediaProperties,
|
|
4596
4719
|
remoteAudioStream = _this$mediaProperties4.remoteAudioStream,
|
|
4597
4720
|
remoteVideoStream = _this$mediaProperties4.remoteVideoStream,
|
|
@@ -4605,7 +4728,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4605
4728
|
*/
|
|
4606
4729
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
4607
4730
|
var triggerMediaStoppedEvent = function triggerMediaStoppedEvent(mediaType) {
|
|
4608
|
-
_triggerProxy.default.trigger(
|
|
4731
|
+
_triggerProxy.default.trigger(_this25, {
|
|
4609
4732
|
file: 'meeting/index',
|
|
4610
4733
|
function: 'closeRemoteStreams'
|
|
4611
4734
|
}, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
|
|
@@ -4639,11 +4762,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4639
4762
|
}, {
|
|
4640
4763
|
key: "setLocalAudioStream",
|
|
4641
4764
|
value: (function () {
|
|
4642
|
-
var _setLocalAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
4765
|
+
var _setLocalAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12(localStream) {
|
|
4643
4766
|
var _this$audio2;
|
|
4644
4767
|
var oldStream;
|
|
4645
|
-
return _regenerator.default.wrap(function
|
|
4646
|
-
while (1) switch (
|
|
4768
|
+
return _regenerator.default.wrap(function _callee12$(_context12) {
|
|
4769
|
+
while (1) switch (_context12.prev = _context12.next) {
|
|
4647
4770
|
case 0:
|
|
4648
4771
|
oldStream = this.mediaProperties.audioStream;
|
|
4649
4772
|
oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localAudioStreamMuteStateHandler);
|
|
@@ -4657,21 +4780,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4657
4780
|
localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localAudioStreamMuteStateHandler);
|
|
4658
4781
|
localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
|
|
4659
4782
|
if (!(!this.isMultistream || !localStream)) {
|
|
4660
|
-
|
|
4783
|
+
_context12.next = 12;
|
|
4661
4784
|
break;
|
|
4662
4785
|
}
|
|
4663
|
-
|
|
4786
|
+
_context12.next = 12;
|
|
4664
4787
|
return this.unpublishStream(_internalMediaCore.MediaType.AudioMain, oldStream);
|
|
4665
4788
|
case 12:
|
|
4666
|
-
|
|
4789
|
+
_context12.next = 14;
|
|
4667
4790
|
return this.publishStream(_internalMediaCore.MediaType.AudioMain, this.mediaProperties.audioStream);
|
|
4668
4791
|
case 14:
|
|
4669
4792
|
case "end":
|
|
4670
|
-
return
|
|
4793
|
+
return _context12.stop();
|
|
4671
4794
|
}
|
|
4672
|
-
},
|
|
4795
|
+
}, _callee12, this);
|
|
4673
4796
|
}));
|
|
4674
|
-
function setLocalAudioStream(
|
|
4797
|
+
function setLocalAudioStream(_x12) {
|
|
4675
4798
|
return _setLocalAudioStream.apply(this, arguments);
|
|
4676
4799
|
}
|
|
4677
4800
|
return setLocalAudioStream;
|
|
@@ -4687,11 +4810,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4687
4810
|
}, {
|
|
4688
4811
|
key: "setLocalVideoStream",
|
|
4689
4812
|
value: (function () {
|
|
4690
|
-
var _setLocalVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
4813
|
+
var _setLocalVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13(localStream) {
|
|
4691
4814
|
var _this$video2;
|
|
4692
4815
|
var oldStream;
|
|
4693
|
-
return _regenerator.default.wrap(function
|
|
4694
|
-
while (1) switch (
|
|
4816
|
+
return _regenerator.default.wrap(function _callee13$(_context13) {
|
|
4817
|
+
while (1) switch (_context13.prev = _context13.next) {
|
|
4695
4818
|
case 0:
|
|
4696
4819
|
oldStream = this.mediaProperties.videoStream;
|
|
4697
4820
|
oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localVideoStreamMuteStateHandler);
|
|
@@ -4705,21 +4828,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4705
4828
|
localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localVideoStreamMuteStateHandler);
|
|
4706
4829
|
localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
|
|
4707
4830
|
if (!(!this.isMultistream || !localStream)) {
|
|
4708
|
-
|
|
4831
|
+
_context13.next = 12;
|
|
4709
4832
|
break;
|
|
4710
4833
|
}
|
|
4711
|
-
|
|
4834
|
+
_context13.next = 12;
|
|
4712
4835
|
return this.unpublishStream(_internalMediaCore.MediaType.VideoMain, oldStream);
|
|
4713
4836
|
case 12:
|
|
4714
|
-
|
|
4837
|
+
_context13.next = 14;
|
|
4715
4838
|
return this.publishStream(_internalMediaCore.MediaType.VideoMain, this.mediaProperties.videoStream);
|
|
4716
4839
|
case 14:
|
|
4717
4840
|
case "end":
|
|
4718
|
-
return
|
|
4841
|
+
return _context13.stop();
|
|
4719
4842
|
}
|
|
4720
|
-
},
|
|
4843
|
+
}, _callee13, this);
|
|
4721
4844
|
}));
|
|
4722
|
-
function setLocalVideoStream(
|
|
4845
|
+
function setLocalVideoStream(_x13) {
|
|
4723
4846
|
return _setLocalVideoStream.apply(this, arguments);
|
|
4724
4847
|
}
|
|
4725
4848
|
return setLocalVideoStream;
|
|
@@ -4736,10 +4859,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4736
4859
|
}, {
|
|
4737
4860
|
key: "setLocalShareVideoStream",
|
|
4738
4861
|
value: (function () {
|
|
4739
|
-
var _setLocalShareVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
4862
|
+
var _setLocalShareVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14(localDisplayStream) {
|
|
4740
4863
|
var oldStream;
|
|
4741
|
-
return _regenerator.default.wrap(function
|
|
4742
|
-
while (1) switch (
|
|
4864
|
+
return _regenerator.default.wrap(function _callee14$(_context14) {
|
|
4865
|
+
while (1) switch (_context14.prev = _context14.next) {
|
|
4743
4866
|
case 0:
|
|
4744
4867
|
oldStream = this.mediaProperties.shareVideoStream;
|
|
4745
4868
|
oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.handleShareVideoStreamMuteStateChange);
|
|
@@ -4751,21 +4874,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4751
4874
|
localDisplayStream === null || localDisplayStream === void 0 ? void 0 : localDisplayStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
|
|
4752
4875
|
this.mediaProperties.mediaDirection.sendShare = this.mediaProperties.hasLocalShareStream();
|
|
4753
4876
|
if (!(!this.isMultistream || !localDisplayStream)) {
|
|
4754
|
-
|
|
4877
|
+
_context14.next = 12;
|
|
4755
4878
|
break;
|
|
4756
4879
|
}
|
|
4757
|
-
|
|
4880
|
+
_context14.next = 12;
|
|
4758
4881
|
return this.unpublishStream(_internalMediaCore.MediaType.VideoSlides, oldStream);
|
|
4759
4882
|
case 12:
|
|
4760
|
-
|
|
4883
|
+
_context14.next = 14;
|
|
4761
4884
|
return this.publishStream(_internalMediaCore.MediaType.VideoSlides, this.mediaProperties.shareVideoStream);
|
|
4762
4885
|
case 14:
|
|
4763
4886
|
case "end":
|
|
4764
|
-
return
|
|
4887
|
+
return _context14.stop();
|
|
4765
4888
|
}
|
|
4766
|
-
},
|
|
4889
|
+
}, _callee14, this);
|
|
4767
4890
|
}));
|
|
4768
|
-
function setLocalShareVideoStream(
|
|
4891
|
+
function setLocalShareVideoStream(_x14) {
|
|
4769
4892
|
return _setLocalShareVideoStream.apply(this, arguments);
|
|
4770
4893
|
}
|
|
4771
4894
|
return setLocalShareVideoStream;
|
|
@@ -4781,10 +4904,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4781
4904
|
}, {
|
|
4782
4905
|
key: "setLocalShareAudioStream",
|
|
4783
4906
|
value: (function () {
|
|
4784
|
-
var _setLocalShareAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
4907
|
+
var _setLocalShareAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15(localSystemAudioStream) {
|
|
4785
4908
|
var oldStream;
|
|
4786
|
-
return _regenerator.default.wrap(function
|
|
4787
|
-
while (1) switch (
|
|
4909
|
+
return _regenerator.default.wrap(function _callee15$(_context15) {
|
|
4910
|
+
while (1) switch (_context15.prev = _context15.next) {
|
|
4788
4911
|
case 0:
|
|
4789
4912
|
oldStream = this.mediaProperties.shareAudioStream;
|
|
4790
4913
|
oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.StreamEventNames.Ended, this.handleShareAudioStreamEnded);
|
|
@@ -4794,21 +4917,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4794
4917
|
localSystemAudioStream === null || localSystemAudioStream === void 0 ? void 0 : localSystemAudioStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
|
|
4795
4918
|
this.mediaProperties.mediaDirection.sendShare = this.mediaProperties.hasLocalShareStream();
|
|
4796
4919
|
if (!(!this.isMultistream || !localSystemAudioStream)) {
|
|
4797
|
-
|
|
4920
|
+
_context15.next = 10;
|
|
4798
4921
|
break;
|
|
4799
4922
|
}
|
|
4800
|
-
|
|
4923
|
+
_context15.next = 10;
|
|
4801
4924
|
return this.unpublishStream(_internalMediaCore.MediaType.AudioSlides, oldStream);
|
|
4802
4925
|
case 10:
|
|
4803
|
-
|
|
4926
|
+
_context15.next = 12;
|
|
4804
4927
|
return this.publishStream(_internalMediaCore.MediaType.AudioSlides, this.mediaProperties.shareAudioStream);
|
|
4805
4928
|
case 12:
|
|
4806
4929
|
case "end":
|
|
4807
|
-
return
|
|
4930
|
+
return _context15.stop();
|
|
4808
4931
|
}
|
|
4809
|
-
},
|
|
4932
|
+
}, _callee15, this);
|
|
4810
4933
|
}));
|
|
4811
|
-
function setLocalShareAudioStream(
|
|
4934
|
+
function setLocalShareAudioStream(_x15) {
|
|
4812
4935
|
return _setLocalShareAudioStream.apply(this, arguments);
|
|
4813
4936
|
}
|
|
4814
4937
|
return setLocalShareAudioStream;
|
|
@@ -4913,7 +5036,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4913
5036
|
}, {
|
|
4914
5037
|
key: "setMercuryListener",
|
|
4915
5038
|
value: function setMercuryListener() {
|
|
4916
|
-
var
|
|
5039
|
+
var _this26 = this;
|
|
4917
5040
|
// Client will have a socket manager and handle reconnecting to mercury, when we reconnect to mercury
|
|
4918
5041
|
// if the meeting has active peer connections, it should try to reconnect.
|
|
4919
5042
|
// @ts-ignore
|
|
@@ -4921,33 +5044,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4921
5044
|
_loggerProxy.default.logger.info('Meeting:index#setMercuryListener --> Web socket online');
|
|
4922
5045
|
|
|
4923
5046
|
// Only send restore event when it was disconnected before and for connected later
|
|
4924
|
-
if (!
|
|
5047
|
+
if (!_this26.hasWebsocketConnected) {
|
|
4925
5048
|
// @ts-ignore
|
|
4926
|
-
|
|
5049
|
+
_this26.webex.internal.newMetrics.submitClientEvent({
|
|
4927
5050
|
name: 'client.mercury.connection.restored',
|
|
4928
5051
|
options: {
|
|
4929
|
-
meetingId:
|
|
5052
|
+
meetingId: _this26.id
|
|
4930
5053
|
}
|
|
4931
5054
|
});
|
|
4932
5055
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_RESTORED, {
|
|
4933
|
-
correlation_id:
|
|
5056
|
+
correlation_id: _this26.correlationId
|
|
4934
5057
|
});
|
|
4935
5058
|
}
|
|
4936
|
-
|
|
5059
|
+
_this26.hasWebsocketConnected = true;
|
|
4937
5060
|
});
|
|
4938
5061
|
|
|
4939
5062
|
// @ts-ignore
|
|
4940
5063
|
this.webex.internal.mercury.on(_constants.OFFLINE, function () {
|
|
4941
5064
|
_loggerProxy.default.logger.error('Meeting:index#setMercuryListener --> Web socket offline');
|
|
4942
5065
|
// @ts-ignore
|
|
4943
|
-
|
|
5066
|
+
_this26.webex.internal.newMetrics.submitClientEvent({
|
|
4944
5067
|
name: 'client.mercury.connection.lost',
|
|
4945
5068
|
options: {
|
|
4946
|
-
meetingId:
|
|
5069
|
+
meetingId: _this26.id
|
|
4947
5070
|
}
|
|
4948
5071
|
});
|
|
4949
5072
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_FAILURE, {
|
|
4950
|
-
correlation_id:
|
|
5073
|
+
correlation_id: _this26.correlationId
|
|
4951
5074
|
});
|
|
4952
5075
|
});
|
|
4953
5076
|
}
|
|
@@ -4956,6 +5079,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4956
5079
|
* Close the peer connections and remove them from the class.
|
|
4957
5080
|
* Cleanup any media connection related things.
|
|
4958
5081
|
*
|
|
5082
|
+
* @param {boolean} resetMuteStates whether to also reset the audio/video mute state information
|
|
4959
5083
|
* @returns {Promise}
|
|
4960
5084
|
* @public
|
|
4961
5085
|
* @memberof Meeting
|
|
@@ -4963,6 +5087,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4963
5087
|
}, {
|
|
4964
5088
|
key: "closePeerConnections",
|
|
4965
5089
|
value: function closePeerConnections() {
|
|
5090
|
+
var resetMuteStates = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
4966
5091
|
if (this.mediaProperties.webrtcMediaConnection) {
|
|
4967
5092
|
if (this.remoteMediaManager) {
|
|
4968
5093
|
this.remoteMediaManager.stop();
|
|
@@ -4976,8 +5101,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4976
5101
|
this.sendSlotManager.reset();
|
|
4977
5102
|
this.setNetworkStatus(undefined);
|
|
4978
5103
|
}
|
|
4979
|
-
|
|
4980
|
-
|
|
5104
|
+
if (resetMuteStates) {
|
|
5105
|
+
this.audio = null;
|
|
5106
|
+
this.video = null;
|
|
5107
|
+
}
|
|
4981
5108
|
return _promise.default.resolve();
|
|
4982
5109
|
}
|
|
4983
5110
|
|
|
@@ -5049,7 +5176,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5049
5176
|
}, {
|
|
5050
5177
|
key: "muteAudio",
|
|
5051
5178
|
value: function muteAudio() {
|
|
5052
|
-
var
|
|
5179
|
+
var _this27 = this;
|
|
5053
5180
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
|
5054
5181
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
5055
5182
|
}
|
|
@@ -5065,22 +5192,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5065
5192
|
|
|
5066
5193
|
// First, stop sending the local audio media
|
|
5067
5194
|
return logRequest(this.audio.handleClientRequest(this, true).then(function () {
|
|
5068
|
-
_util2.default.handleAudioLogging(
|
|
5195
|
+
_util2.default.handleAudioLogging(_this27.mediaProperties.audioStream);
|
|
5069
5196
|
// @ts-ignore
|
|
5070
|
-
|
|
5197
|
+
_this27.webex.internal.newMetrics.submitClientEvent({
|
|
5071
5198
|
name: 'client.muted',
|
|
5072
5199
|
payload: {
|
|
5073
5200
|
trigger: 'user-interaction',
|
|
5074
5201
|
mediaType: 'audio'
|
|
5075
5202
|
},
|
|
5076
5203
|
options: {
|
|
5077
|
-
meetingId:
|
|
5204
|
+
meetingId: _this27.id
|
|
5078
5205
|
}
|
|
5079
5206
|
});
|
|
5080
5207
|
}).catch(function (error) {
|
|
5081
5208
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_AUDIO_FAILURE, {
|
|
5082
|
-
correlation_id:
|
|
5083
|
-
locus_id:
|
|
5209
|
+
correlation_id: _this27.correlationId,
|
|
5210
|
+
locus_id: _this27.locusUrl.split('/').pop(),
|
|
5084
5211
|
reason: error.message,
|
|
5085
5212
|
stack: error.stack
|
|
5086
5213
|
});
|
|
@@ -5099,7 +5226,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5099
5226
|
}, {
|
|
5100
5227
|
key: "unmuteAudio",
|
|
5101
5228
|
value: function unmuteAudio() {
|
|
5102
|
-
var
|
|
5229
|
+
var _this28 = this;
|
|
5103
5230
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
|
5104
5231
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
5105
5232
|
}
|
|
@@ -5115,22 +5242,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5115
5242
|
|
|
5116
5243
|
// First, send the control to unmute the participant on the server
|
|
5117
5244
|
return logRequest(this.audio.handleClientRequest(this, false).then(function () {
|
|
5118
|
-
_util2.default.handleAudioLogging(
|
|
5245
|
+
_util2.default.handleAudioLogging(_this28.mediaProperties.audioStream);
|
|
5119
5246
|
// @ts-ignore
|
|
5120
|
-
|
|
5247
|
+
_this28.webex.internal.newMetrics.submitClientEvent({
|
|
5121
5248
|
name: 'client.unmuted',
|
|
5122
5249
|
payload: {
|
|
5123
5250
|
trigger: 'user-interaction',
|
|
5124
5251
|
mediaType: 'audio'
|
|
5125
5252
|
},
|
|
5126
5253
|
options: {
|
|
5127
|
-
meetingId:
|
|
5254
|
+
meetingId: _this28.id
|
|
5128
5255
|
}
|
|
5129
5256
|
});
|
|
5130
5257
|
}).catch(function (error) {
|
|
5131
5258
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_AUDIO_FAILURE, {
|
|
5132
|
-
correlation_id:
|
|
5133
|
-
locus_id:
|
|
5259
|
+
correlation_id: _this28.correlationId,
|
|
5260
|
+
locus_id: _this28.locusUrl.split('/').pop(),
|
|
5134
5261
|
reason: error.message,
|
|
5135
5262
|
stack: error.stack
|
|
5136
5263
|
});
|
|
@@ -5149,7 +5276,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5149
5276
|
}, {
|
|
5150
5277
|
key: "muteVideo",
|
|
5151
5278
|
value: function muteVideo() {
|
|
5152
|
-
var
|
|
5279
|
+
var _this29 = this;
|
|
5153
5280
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
|
5154
5281
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
5155
5282
|
}
|
|
@@ -5163,22 +5290,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5163
5290
|
return _promise.default.reject(new _parameter.default('no video control associated to the meeting'));
|
|
5164
5291
|
}
|
|
5165
5292
|
return logRequest(this.video.handleClientRequest(this, true).then(function () {
|
|
5166
|
-
_util2.default.handleVideoLogging(
|
|
5293
|
+
_util2.default.handleVideoLogging(_this29.mediaProperties.videoStream);
|
|
5167
5294
|
// @ts-ignore
|
|
5168
|
-
|
|
5295
|
+
_this29.webex.internal.newMetrics.submitClientEvent({
|
|
5169
5296
|
name: 'client.muted',
|
|
5170
5297
|
payload: {
|
|
5171
5298
|
trigger: 'user-interaction',
|
|
5172
5299
|
mediaType: 'video'
|
|
5173
5300
|
},
|
|
5174
5301
|
options: {
|
|
5175
|
-
meetingId:
|
|
5302
|
+
meetingId: _this29.id
|
|
5176
5303
|
}
|
|
5177
5304
|
});
|
|
5178
5305
|
}).catch(function (error) {
|
|
5179
5306
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_VIDEO_FAILURE, {
|
|
5180
|
-
correlation_id:
|
|
5181
|
-
locus_id:
|
|
5307
|
+
correlation_id: _this29.correlationId,
|
|
5308
|
+
locus_id: _this29.locusUrl.split('/').pop(),
|
|
5182
5309
|
reason: error.message,
|
|
5183
5310
|
stack: error.stack
|
|
5184
5311
|
});
|
|
@@ -5197,7 +5324,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5197
5324
|
}, {
|
|
5198
5325
|
key: "unmuteVideo",
|
|
5199
5326
|
value: function unmuteVideo() {
|
|
5200
|
-
var
|
|
5327
|
+
var _this30 = this;
|
|
5201
5328
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
|
5202
5329
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
5203
5330
|
}
|
|
@@ -5211,22 +5338,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5211
5338
|
return _promise.default.reject(new _parameter.default('no audio control associated to the meeting'));
|
|
5212
5339
|
}
|
|
5213
5340
|
return logRequest(this.video.handleClientRequest(this, false).then(function () {
|
|
5214
|
-
_util2.default.handleVideoLogging(
|
|
5341
|
+
_util2.default.handleVideoLogging(_this30.mediaProperties.videoStream);
|
|
5215
5342
|
// @ts-ignore
|
|
5216
|
-
|
|
5343
|
+
_this30.webex.internal.newMetrics.submitClientEvent({
|
|
5217
5344
|
name: 'client.unmuted',
|
|
5218
5345
|
payload: {
|
|
5219
5346
|
trigger: 'user-interaction',
|
|
5220
5347
|
mediaType: 'video'
|
|
5221
5348
|
},
|
|
5222
5349
|
options: {
|
|
5223
|
-
meetingId:
|
|
5350
|
+
meetingId: _this30.id
|
|
5224
5351
|
}
|
|
5225
5352
|
});
|
|
5226
5353
|
}).catch(function (error) {
|
|
5227
5354
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_VIDEO_FAILURE, {
|
|
5228
|
-
correlation_id:
|
|
5229
|
-
locus_id:
|
|
5355
|
+
correlation_id: _this30.correlationId,
|
|
5356
|
+
locus_id: _this30.locusUrl.split('/').pop(),
|
|
5230
5357
|
reason: error.message,
|
|
5231
5358
|
stack: error.stack
|
|
5232
5359
|
});
|
|
@@ -5241,7 +5368,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5241
5368
|
* @param {Object} options - options to join with media
|
|
5242
5369
|
* @param {JoinOptions} [options.joinOptions] - see #join()
|
|
5243
5370
|
* @param {AddMediaOptions} [options.mediaOptions] - see #addMedia()
|
|
5244
|
-
* @returns {Promise} -- {join: see join(), media: see addMedia()}
|
|
5371
|
+
* @returns {Promise} -- {join: see join(), media: see addMedia(), multistreamEnabled: flag to indicate if we managed to join in multistream mode}
|
|
5245
5372
|
* @public
|
|
5246
5373
|
* @memberof Meeting
|
|
5247
5374
|
* @example
|
|
@@ -5255,8 +5382,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5255
5382
|
}, {
|
|
5256
5383
|
key: "joinWithMedia",
|
|
5257
5384
|
value: (function () {
|
|
5258
|
-
var _joinWithMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
5259
|
-
var
|
|
5385
|
+
var _joinWithMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
|
|
5386
|
+
var _this31 = this;
|
|
5260
5387
|
var options,
|
|
5261
5388
|
mediaOptions,
|
|
5262
5389
|
_options$joinOptions,
|
|
@@ -5276,51 +5403,51 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5276
5403
|
_leaveError,
|
|
5277
5404
|
leaveError,
|
|
5278
5405
|
shouldRetry,
|
|
5279
|
-
|
|
5280
|
-
return _regenerator.default.wrap(function
|
|
5281
|
-
while (1) switch (
|
|
5406
|
+
_args16 = arguments;
|
|
5407
|
+
return _regenerator.default.wrap(function _callee16$(_context16) {
|
|
5408
|
+
while (1) switch (_context16.prev = _context16.next) {
|
|
5282
5409
|
case 0:
|
|
5283
|
-
options =
|
|
5410
|
+
options = _args16.length > 0 && _args16[0] !== undefined ? _args16[0] : {};
|
|
5284
5411
|
mediaOptions = options.mediaOptions, _options$joinOptions = options.joinOptions, joinOptions = _options$joinOptions === void 0 ? {} : _options$joinOptions;
|
|
5285
5412
|
_this$joinWithMediaRe = this.joinWithMediaRetryInfo, isRetry = _this$joinWithMediaRe.isRetry, prevJoinResponse = _this$joinWithMediaRe.prevJoinResponse;
|
|
5286
5413
|
if (mediaOptions !== null && mediaOptions !== void 0 && mediaOptions.allowMediaInLobby) {
|
|
5287
|
-
|
|
5414
|
+
_context16.next = 5;
|
|
5288
5415
|
break;
|
|
5289
5416
|
}
|
|
5290
|
-
return
|
|
5417
|
+
return _context16.abrupt("return", _promise.default.reject(new _parameter.default('joinWithMedia() can only be used with allowMediaInLobby set to true')));
|
|
5291
5418
|
case 5:
|
|
5292
5419
|
this.allowMediaInLobby = true;
|
|
5293
5420
|
_loggerProxy.default.logger.info('Meeting:index#joinWithMedia called');
|
|
5294
5421
|
joined = false;
|
|
5295
5422
|
joinResponse = prevJoinResponse;
|
|
5296
|
-
|
|
5423
|
+
_context16.prev = 9;
|
|
5297
5424
|
forceTurnDiscovery = false;
|
|
5298
5425
|
if (joinResponse) {
|
|
5299
|
-
|
|
5426
|
+
_context16.next = 33;
|
|
5300
5427
|
break;
|
|
5301
5428
|
}
|
|
5302
|
-
|
|
5429
|
+
_context16.next = 14;
|
|
5303
5430
|
return this.roap.generateTurnDiscoveryRequestMessage(this, true);
|
|
5304
5431
|
case 14:
|
|
5305
|
-
turnDiscoveryRequest =
|
|
5432
|
+
turnDiscoveryRequest = _context16.sent;
|
|
5306
5433
|
turnDiscoverySkippedReason = turnDiscoveryRequest.turnDiscoverySkippedReason;
|
|
5307
5434
|
joinOptions.roapMessage = turnDiscoveryRequest.roapMessage;
|
|
5308
5435
|
_loggerProxy.default.logger.info('Meeting:index#joinWithMedia ---> calling join with joinOptions, ', joinOptions);
|
|
5309
|
-
|
|
5436
|
+
_context16.next = 20;
|
|
5310
5437
|
return this.join(joinOptions);
|
|
5311
5438
|
case 20:
|
|
5312
|
-
joinResponse =
|
|
5439
|
+
joinResponse = _context16.sent;
|
|
5313
5440
|
joined = true;
|
|
5314
5441
|
|
|
5315
5442
|
// if we sent out TURN discovery Roap message with join, process the TURN discovery response
|
|
5316
5443
|
if (!joinOptions.roapMessage) {
|
|
5317
|
-
|
|
5444
|
+
_context16.next = 31;
|
|
5318
5445
|
break;
|
|
5319
5446
|
}
|
|
5320
|
-
|
|
5447
|
+
_context16.next = 25;
|
|
5321
5448
|
return this.roap.handleTurnDiscoveryHttpResponse(this, joinResponse);
|
|
5322
5449
|
case 25:
|
|
5323
|
-
_yield$this$roap$hand =
|
|
5450
|
+
_yield$this$roap$hand = _context16.sent;
|
|
5324
5451
|
turnServerInfo = _yield$this$roap$hand.turnServerInfo;
|
|
5325
5452
|
turnDiscoverySkippedReason = _yield$this$roap$hand.turnDiscoverySkippedReason;
|
|
5326
5453
|
this.turnDiscoverySkippedReason = turnDiscoverySkippedReason;
|
|
@@ -5329,7 +5456,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5329
5456
|
this.roap.abortTurnDiscovery();
|
|
5330
5457
|
}
|
|
5331
5458
|
case 31:
|
|
5332
|
-
|
|
5459
|
+
_context16.next = 35;
|
|
5333
5460
|
break;
|
|
5334
5461
|
case 33:
|
|
5335
5462
|
// This is a retry, when join succeeded but addMedia failed, so we'll just call addMedia() again,
|
|
@@ -5337,82 +5464,85 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5337
5464
|
forceTurnDiscovery = true;
|
|
5338
5465
|
joined = true;
|
|
5339
5466
|
case 35:
|
|
5340
|
-
|
|
5467
|
+
_context16.next = 37;
|
|
5341
5468
|
return this.addMediaInternal(function () {
|
|
5342
|
-
return
|
|
5469
|
+
return _this31.joinWithMediaRetryInfo.isRetry ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
|
5343
5470
|
}, turnServerInfo, forceTurnDiscovery, mediaOptions);
|
|
5344
5471
|
case 37:
|
|
5345
|
-
mediaResponse =
|
|
5472
|
+
mediaResponse = _context16.sent;
|
|
5346
5473
|
this.joinWithMediaRetryInfo = {
|
|
5347
5474
|
isRetry: false,
|
|
5348
5475
|
prevJoinResponse: undefined
|
|
5349
5476
|
};
|
|
5350
|
-
return
|
|
5477
|
+
return _context16.abrupt("return", {
|
|
5351
5478
|
join: joinResponse,
|
|
5352
|
-
media: mediaResponse
|
|
5479
|
+
media: mediaResponse,
|
|
5480
|
+
multistreamEnabled: this.isMultistream
|
|
5353
5481
|
});
|
|
5354
5482
|
case 42:
|
|
5355
|
-
|
|
5356
|
-
|
|
5357
|
-
_loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> ',
|
|
5483
|
+
_context16.prev = 42;
|
|
5484
|
+
_context16.t0 = _context16["catch"](9);
|
|
5485
|
+
_loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> ', _context16.t0);
|
|
5358
5486
|
this.roap.abortTurnDiscovery();
|
|
5359
|
-
|
|
5360
|
-
|
|
5487
|
+
|
|
5488
|
+
// if this was the first attempt, let's do a retry
|
|
5489
|
+
shouldRetry = !isRetry;
|
|
5490
|
+
if (_internalPluginMetrics.CallDiagnosticUtils.isSdpOfferCreationError(_context16.t0)) {
|
|
5491
|
+
// errors related to offer creation (for example missing H264 codec) will happen again no matter how many times we try,
|
|
5492
|
+
// so there is no point doing a retry
|
|
5493
|
+
shouldRetry = false;
|
|
5494
|
+
}
|
|
5495
|
+
|
|
5496
|
+
// we only want to call leave if join was successful and this was a retry or we won't be doing any more retries
|
|
5497
|
+
if (!(joined && (isRetry || !shouldRetry))) {
|
|
5498
|
+
_context16.next = 58;
|
|
5361
5499
|
break;
|
|
5362
5500
|
}
|
|
5363
|
-
|
|
5364
|
-
|
|
5501
|
+
_context16.prev = 49;
|
|
5502
|
+
_context16.next = 52;
|
|
5365
5503
|
return this.leave({
|
|
5366
5504
|
resourceId: joinOptions === null || joinOptions === void 0 ? void 0 : joinOptions.resourceId,
|
|
5367
5505
|
reason: 'joinWithMedia failure'
|
|
5368
5506
|
});
|
|
5369
|
-
case 50:
|
|
5370
|
-
_context15.next = 56;
|
|
5371
|
-
break;
|
|
5372
5507
|
case 52:
|
|
5373
|
-
|
|
5374
|
-
|
|
5375
|
-
|
|
5376
|
-
|
|
5377
|
-
|
|
5508
|
+
_context16.next = 58;
|
|
5509
|
+
break;
|
|
5510
|
+
case 54:
|
|
5511
|
+
_context16.prev = 54;
|
|
5512
|
+
_context16.t1 = _context16["catch"](49);
|
|
5513
|
+
_loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> leave error', _context16.t1);
|
|
5514
|
+
leaveError = _context16.t1;
|
|
5515
|
+
case 58:
|
|
5378
5516
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_WITH_MEDIA_FAILURE, {
|
|
5379
5517
|
correlation_id: this.correlationId,
|
|
5380
5518
|
locus_id: (_this$locusUrl = this.locusUrl) === null || _this$locusUrl === void 0 ? void 0 : _this$locusUrl.split('/').pop(),
|
|
5381
5519
|
// if join fails, we may end up with no locusUrl
|
|
5382
|
-
reason:
|
|
5383
|
-
stack:
|
|
5520
|
+
reason: _context16.t0.message,
|
|
5521
|
+
stack: _context16.t0.stack,
|
|
5384
5522
|
leaveErrorReason: (_leaveError = leaveError) === null || _leaveError === void 0 ? void 0 : _leaveError.message,
|
|
5385
5523
|
isRetry: isRetry
|
|
5386
5524
|
}, {
|
|
5387
|
-
type:
|
|
5525
|
+
type: _context16.t0.name
|
|
5388
5526
|
});
|
|
5389
|
-
|
|
5390
|
-
// if this was the first attempt, let's do a retry
|
|
5391
|
-
shouldRetry = !isRetry;
|
|
5392
|
-
if (_internalPluginMetrics.CallDiagnosticUtils.isSdpOfferCreationError(_context15.t0)) {
|
|
5393
|
-
// errors related to offer creation (for example missing H264 codec) will happen again no matter how many times we try,
|
|
5394
|
-
// so there is no point doing a retry
|
|
5395
|
-
shouldRetry = false;
|
|
5396
|
-
}
|
|
5397
5527
|
if (!shouldRetry) {
|
|
5398
|
-
|
|
5528
|
+
_context16.next = 64;
|
|
5399
5529
|
break;
|
|
5400
5530
|
}
|
|
5401
5531
|
_loggerProxy.default.logger.warn('Meeting:index#joinWithMedia --> retrying call to joinWithMedia');
|
|
5402
5532
|
this.joinWithMediaRetryInfo.isRetry = true;
|
|
5403
5533
|
this.joinWithMediaRetryInfo.prevJoinResponse = joinResponse;
|
|
5404
|
-
return
|
|
5534
|
+
return _context16.abrupt("return", this.joinWithMedia(options));
|
|
5405
5535
|
case 64:
|
|
5406
5536
|
this.joinWithMediaRetryInfo = {
|
|
5407
5537
|
isRetry: false,
|
|
5408
5538
|
prevJoinResponse: undefined
|
|
5409
5539
|
};
|
|
5410
|
-
throw
|
|
5540
|
+
throw _context16.t0;
|
|
5411
5541
|
case 66:
|
|
5412
5542
|
case "end":
|
|
5413
|
-
return
|
|
5543
|
+
return _context16.stop();
|
|
5414
5544
|
}
|
|
5415
|
-
},
|
|
5545
|
+
}, _callee16, this, [[9, 42], [49, 54]]);
|
|
5416
5546
|
}));
|
|
5417
5547
|
function joinWithMedia() {
|
|
5418
5548
|
return _joinWithMedia.apply(this, arguments);
|
|
@@ -5431,7 +5561,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5431
5561
|
}, {
|
|
5432
5562
|
key: "reconnect",
|
|
5433
5563
|
value: function reconnect(options) {
|
|
5434
|
-
var
|
|
5564
|
+
var _this32 = this;
|
|
5435
5565
|
_loggerProxy.default.logger.log("Meeting:index#reconnect --> attempting to reconnect meeting ".concat(this.id));
|
|
5436
5566
|
if (!this.reconnectionManager || !this.reconnectionManager.reconnect) {
|
|
5437
5567
|
return _promise.default.reject(new _parameter.default('Cannot reconnect, ReconnectionManager must first be defined.'));
|
|
@@ -5442,20 +5572,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5442
5572
|
return _promise.default.reject(new _parameter.default('Cannot reconnect, Media has not established to reconnect'));
|
|
5443
5573
|
}
|
|
5444
5574
|
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 (
|
|
5575
|
+
return this.reconnectionManager.reconnect(options, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17() {
|
|
5576
|
+
return _regenerator.default.wrap(function _callee17$(_context17) {
|
|
5577
|
+
while (1) switch (_context17.prev = _context17.next) {
|
|
5448
5578
|
case 0:
|
|
5449
|
-
|
|
5450
|
-
return
|
|
5579
|
+
_context17.next = 2;
|
|
5580
|
+
return _this32.waitForRemoteSDPAnswer();
|
|
5451
5581
|
case 2:
|
|
5452
|
-
|
|
5453
|
-
return
|
|
5582
|
+
_context17.next = 4;
|
|
5583
|
+
return _this32.waitForMediaConnectionConnected();
|
|
5454
5584
|
case 4:
|
|
5455
5585
|
case "end":
|
|
5456
|
-
return
|
|
5586
|
+
return _context17.stop();
|
|
5457
5587
|
}
|
|
5458
|
-
},
|
|
5588
|
+
}, _callee17);
|
|
5459
5589
|
}))).then(function () {
|
|
5460
5590
|
_loggerProxy.default.logger.log('Meeting:index#reconnect --> Meeting reconnect success');
|
|
5461
5591
|
}).catch(function (error) {
|
|
@@ -5464,7 +5594,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5464
5594
|
return _promise.default.resolve();
|
|
5465
5595
|
}
|
|
5466
5596
|
_loggerProxy.default.logger.error('Meeting:index#reconnect --> Meeting reconnect failed', error);
|
|
5467
|
-
|
|
5597
|
+
_this32.uploadLogs({
|
|
5468
5598
|
file: 'meeting/index',
|
|
5469
5599
|
function: 'reconnect'
|
|
5470
5600
|
});
|
|
@@ -5511,19 +5641,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5511
5641
|
}, {
|
|
5512
5642
|
key: "setCaptionLanguage",
|
|
5513
5643
|
value: function setCaptionLanguage(language) {
|
|
5514
|
-
var
|
|
5644
|
+
var _this33 = this;
|
|
5515
5645
|
return new _promise.default(function (resolve, reject) {
|
|
5516
|
-
if (!
|
|
5646
|
+
if (!_this33.isTranscriptionSupported()) {
|
|
5517
5647
|
_loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
|
|
5518
5648
|
reject(new Error('Webex Assistant is not enabled/supported'));
|
|
5519
5649
|
}
|
|
5520
5650
|
try {
|
|
5521
5651
|
var voiceaListenerCaptionUpdate = function voiceaListenerCaptionUpdate(payload) {
|
|
5522
5652
|
// @ts-ignore
|
|
5523
|
-
|
|
5653
|
+
_this33.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
|
|
5524
5654
|
var statusCode = payload.statusCode;
|
|
5525
5655
|
if (statusCode === 200) {
|
|
5526
|
-
|
|
5656
|
+
_this33.transcription.languageOptions = _objectSpread(_objectSpread({}, _this33.transcription.languageOptions), {}, {
|
|
5527
5657
|
currentCaptionLanguage: language
|
|
5528
5658
|
});
|
|
5529
5659
|
resolve(language);
|
|
@@ -5532,9 +5662,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5532
5662
|
}
|
|
5533
5663
|
};
|
|
5534
5664
|
// @ts-ignore
|
|
5535
|
-
|
|
5665
|
+
_this33.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
|
|
5536
5666
|
// @ts-ignore
|
|
5537
|
-
|
|
5667
|
+
_this33.webex.internal.voicea.requestLanguage(language);
|
|
5538
5668
|
} catch (error) {
|
|
5539
5669
|
_loggerProxy.default.logger.error("Meeting:index#setCaptionLanguage --> ".concat(error));
|
|
5540
5670
|
reject(error);
|
|
@@ -5550,23 +5680,23 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5550
5680
|
}, {
|
|
5551
5681
|
key: "setSpokenLanguage",
|
|
5552
5682
|
value: function setSpokenLanguage(language) {
|
|
5553
|
-
var
|
|
5683
|
+
var _this34 = this;
|
|
5554
5684
|
return new _promise.default(function (resolve, reject) {
|
|
5555
|
-
if (!
|
|
5685
|
+
if (!_this34.isTranscriptionSupported()) {
|
|
5556
5686
|
_loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
|
|
5557
5687
|
reject(new Error('Webex Assistant is not enabled/supported'));
|
|
5558
5688
|
}
|
|
5559
|
-
if (
|
|
5689
|
+
if (_this34.getCurUserType() !== 'host') {
|
|
5560
5690
|
_loggerProxy.default.logger.error('Meeting:index#setSpokenLanguage --> Only host can set spoken language');
|
|
5561
5691
|
reject(new Error('Only host can set spoken language'));
|
|
5562
5692
|
}
|
|
5563
5693
|
try {
|
|
5564
5694
|
var voiceaListenerLanguageUpdate = function voiceaListenerLanguageUpdate(payload) {
|
|
5565
5695
|
// @ts-ignore
|
|
5566
|
-
|
|
5696
|
+
_this34.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
|
|
5567
5697
|
var languageCode = payload.languageCode;
|
|
5568
5698
|
if (languageCode) {
|
|
5569
|
-
|
|
5699
|
+
_this34.transcription.languageOptions = _objectSpread(_objectSpread({}, _this34.transcription.languageOptions), {}, {
|
|
5570
5700
|
currentSpokenLanguage: languageCode
|
|
5571
5701
|
});
|
|
5572
5702
|
resolve(languageCode);
|
|
@@ -5576,10 +5706,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5576
5706
|
};
|
|
5577
5707
|
|
|
5578
5708
|
// @ts-ignore
|
|
5579
|
-
|
|
5709
|
+
_this34.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
|
|
5580
5710
|
|
|
5581
5711
|
// @ts-ignore
|
|
5582
|
-
|
|
5712
|
+
_this34.webex.internal.voicea.setSpokenLanguage(language);
|
|
5583
5713
|
} catch (error) {
|
|
5584
5714
|
_loggerProxy.default.logger.error("Meeting:index#setSpokenLanguage --> ".concat(error));
|
|
5585
5715
|
reject(error);
|
|
@@ -5596,48 +5726,48 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5596
5726
|
}, {
|
|
5597
5727
|
key: "startTranscription",
|
|
5598
5728
|
value: (function () {
|
|
5599
|
-
var _startTranscription = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
5600
|
-
return _regenerator.default.wrap(function
|
|
5601
|
-
while (1) switch (
|
|
5729
|
+
var _startTranscription = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18(options) {
|
|
5730
|
+
return _regenerator.default.wrap(function _callee18$(_context18) {
|
|
5731
|
+
while (1) switch (_context18.prev = _context18.next) {
|
|
5602
5732
|
case 0:
|
|
5603
5733
|
if (!this.isJoined()) {
|
|
5604
|
-
|
|
5734
|
+
_context18.next = 14;
|
|
5605
5735
|
break;
|
|
5606
5736
|
}
|
|
5607
5737
|
_loggerProxy.default.logger.info('Meeting:index#startTranscription --> Attempting to enable transcription!');
|
|
5608
|
-
|
|
5738
|
+
_context18.prev = 2;
|
|
5609
5739
|
if (!this.areVoiceaEventsSetup) {
|
|
5610
5740
|
this.setUpVoiceaListeners();
|
|
5611
5741
|
}
|
|
5612
5742
|
|
|
5613
5743
|
// @ts-ignore
|
|
5614
|
-
|
|
5744
|
+
_context18.next = 6;
|
|
5615
5745
|
return this.webex.internal.voicea.turnOnCaptions(options === null || options === void 0 ? void 0 : options.spokenLanguage);
|
|
5616
5746
|
case 6:
|
|
5617
|
-
|
|
5747
|
+
_context18.next = 12;
|
|
5618
5748
|
break;
|
|
5619
5749
|
case 8:
|
|
5620
|
-
|
|
5621
|
-
|
|
5622
|
-
_loggerProxy.default.logger.error("Meeting:index#startTranscription --> ".concat(
|
|
5750
|
+
_context18.prev = 8;
|
|
5751
|
+
_context18.t0 = _context18["catch"](2);
|
|
5752
|
+
_loggerProxy.default.logger.error("Meeting:index#startTranscription --> ".concat(_context18.t0));
|
|
5623
5753
|
_metrics.default.sendBehavioralMetric(_constants2.default.RECEIVE_TRANSCRIPTION_FAILURE, {
|
|
5624
5754
|
correlation_id: this.correlationId,
|
|
5625
|
-
reason:
|
|
5626
|
-
stack:
|
|
5755
|
+
reason: _context18.t0.message,
|
|
5756
|
+
stack: _context18.t0.stack
|
|
5627
5757
|
});
|
|
5628
5758
|
case 12:
|
|
5629
|
-
|
|
5759
|
+
_context18.next = 16;
|
|
5630
5760
|
break;
|
|
5631
5761
|
case 14:
|
|
5632
5762
|
_loggerProxy.default.logger.error("Meeting:index#startTranscription --> meeting joined : ".concat(this.isJoined()));
|
|
5633
5763
|
throw new Error('Meeting is not joined');
|
|
5634
5764
|
case 16:
|
|
5635
5765
|
case "end":
|
|
5636
|
-
return
|
|
5766
|
+
return _context18.stop();
|
|
5637
5767
|
}
|
|
5638
|
-
},
|
|
5768
|
+
}, _callee18, this, [[2, 8]]);
|
|
5639
5769
|
}));
|
|
5640
|
-
function startTranscription(
|
|
5770
|
+
function startTranscription(_x16) {
|
|
5641
5771
|
return _startTranscription.apply(this, arguments);
|
|
5642
5772
|
}
|
|
5643
5773
|
return startTranscription;
|
|
@@ -5662,6 +5792,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5662
5792
|
|
|
5663
5793
|
// @ts-ignore
|
|
5664
5794
|
this.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.NEW_CAPTION, this.voiceaListenerCallbacks[_internalPluginVoicea.EVENT_TRIGGERS.NEW_CAPTION]);
|
|
5795
|
+
|
|
5796
|
+
// @ts-ignore
|
|
5797
|
+
this.webex.internal.voicea.deregisterEvents();
|
|
5665
5798
|
this.areVoiceaEventsSetup = false;
|
|
5666
5799
|
this.triggerStopReceivingTranscriptionEvent();
|
|
5667
5800
|
}
|
|
@@ -5698,36 +5831,36 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5698
5831
|
* Scenario D: Joining any other way (sip, pstn, conversationUrl, link just need to specify resourceId)
|
|
5699
5832
|
*/
|
|
5700
5833
|
function () {
|
|
5701
|
-
var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
5702
|
-
var
|
|
5834
|
+
var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
|
|
5835
|
+
var _this35 = this;
|
|
5703
5836
|
var options,
|
|
5704
5837
|
errorMessage,
|
|
5705
5838
|
error,
|
|
5706
5839
|
joinFailed,
|
|
5707
5840
|
joinSuccess,
|
|
5708
|
-
_errorMessage,
|
|
5709
|
-
_error,
|
|
5710
5841
|
_errorMessage2,
|
|
5711
5842
|
_error2,
|
|
5712
|
-
|
|
5713
|
-
|
|
5714
|
-
|
|
5843
|
+
_errorMessage3,
|
|
5844
|
+
_error3,
|
|
5845
|
+
_args19 = arguments;
|
|
5846
|
+
return _regenerator.default.wrap(function _callee19$(_context19) {
|
|
5847
|
+
while (1) switch (_context19.prev = _context19.next) {
|
|
5715
5848
|
case 0:
|
|
5716
|
-
options =
|
|
5849
|
+
options = _args19.length > 0 && _args19[0] !== undefined ? _args19[0] : {};
|
|
5717
5850
|
if (this.webex.meetings.registered) {
|
|
5718
|
-
|
|
5851
|
+
_context19.next = 6;
|
|
5719
5852
|
break;
|
|
5720
5853
|
}
|
|
5721
5854
|
errorMessage = 'Meeting:index#join --> Device not registered';
|
|
5722
5855
|
error = new Error(errorMessage);
|
|
5723
5856
|
_loggerProxy.default.logger.error(errorMessage);
|
|
5724
|
-
return
|
|
5857
|
+
return _context19.abrupt("return", _promise.default.reject(error));
|
|
5725
5858
|
case 6:
|
|
5726
5859
|
if (!this.deferJoin) {
|
|
5727
|
-
|
|
5860
|
+
_context19.next = 8;
|
|
5728
5861
|
break;
|
|
5729
5862
|
}
|
|
5730
|
-
return
|
|
5863
|
+
return _context19.abrupt("return", this.deferJoin);
|
|
5731
5864
|
case 8:
|
|
5732
5865
|
// Create a deferred promise for a consistent resolve value from utils.
|
|
5733
5866
|
// This also prevents redundant API calls.
|
|
@@ -5751,18 +5884,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5751
5884
|
this.meetingFiniteStateMachine.reset();
|
|
5752
5885
|
}
|
|
5753
5886
|
|
|
5754
|
-
//
|
|
5755
|
-
|
|
5756
|
-
|
|
5757
|
-
|
|
5758
|
-
|
|
5759
|
-
|
|
5760
|
-
|
|
5761
|
-
|
|
5762
|
-
|
|
5763
|
-
|
|
5764
|
-
|
|
5765
|
-
|
|
5887
|
+
// send client.call.initiated unless told not to
|
|
5888
|
+
if (options.sendCallInitiated !== false) {
|
|
5889
|
+
// @ts-ignore
|
|
5890
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
5891
|
+
name: 'client.call.initiated',
|
|
5892
|
+
payload: {
|
|
5893
|
+
trigger: this.callStateForMetrics.joinTrigger || 'user-interaction',
|
|
5894
|
+
isRoapCallEnabled: true,
|
|
5895
|
+
pstnAudioType: options === null || options === void 0 ? void 0 : options.pstnAudioType
|
|
5896
|
+
},
|
|
5897
|
+
options: {
|
|
5898
|
+
meetingId: this.id
|
|
5899
|
+
}
|
|
5900
|
+
});
|
|
5901
|
+
}
|
|
5766
5902
|
_loggerProxy.default.logger.log('Meeting:index#join --> Joining a meeting');
|
|
5767
5903
|
if (this.meetingFiniteStateMachine.state === _constants.MEETING_STATE_MACHINE.STATES.ENDED) {
|
|
5768
5904
|
this.meetingFiniteStateMachine.reset();
|
|
@@ -5776,131 +5912,131 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5776
5912
|
this.wirelessShare = true;
|
|
5777
5913
|
}
|
|
5778
5914
|
if (!options.meetingQuality) {
|
|
5779
|
-
|
|
5915
|
+
_context19.next = 36;
|
|
5780
5916
|
break;
|
|
5781
5917
|
}
|
|
5782
5918
|
if (!(typeof options.meetingQuality === 'string')) {
|
|
5783
|
-
|
|
5919
|
+
_context19.next = 27;
|
|
5784
5920
|
break;
|
|
5785
5921
|
}
|
|
5786
5922
|
if (_constants.QUALITY_LEVELS[options.meetingQuality]) {
|
|
5787
|
-
|
|
5923
|
+
_context19.next = 26;
|
|
5788
5924
|
break;
|
|
5789
5925
|
}
|
|
5790
|
-
|
|
5791
|
-
|
|
5792
|
-
_loggerProxy.default.logger.error(
|
|
5793
|
-
joinFailed(
|
|
5926
|
+
_errorMessage2 = "Meeting:index#join --> ".concat(options.meetingQuality, " not defined");
|
|
5927
|
+
_error2 = new Error(_errorMessage2);
|
|
5928
|
+
_loggerProxy.default.logger.error(_errorMessage2);
|
|
5929
|
+
joinFailed(_error2);
|
|
5794
5930
|
this.deferJoin = undefined;
|
|
5795
|
-
return
|
|
5931
|
+
return _context19.abrupt("return", _promise.default.reject(_error2));
|
|
5796
5932
|
case 26:
|
|
5797
5933
|
this.mediaProperties.setRemoteQualityLevel(options.meetingQuality);
|
|
5798
5934
|
case 27:
|
|
5799
5935
|
if (!((0, _typeof2.default)(options.meetingQuality) === 'object')) {
|
|
5800
|
-
|
|
5936
|
+
_context19.next = 36;
|
|
5801
5937
|
break;
|
|
5802
5938
|
}
|
|
5803
5939
|
if (_constants.QUALITY_LEVELS[options.meetingQuality.remote]) {
|
|
5804
|
-
|
|
5940
|
+
_context19.next = 35;
|
|
5805
5941
|
break;
|
|
5806
5942
|
}
|
|
5807
|
-
|
|
5808
|
-
_loggerProxy.default.logger.error(
|
|
5809
|
-
|
|
5810
|
-
joinFailed(
|
|
5943
|
+
_errorMessage3 = "Meeting:index#join --> ".concat(options.meetingQuality.remote, " not defined");
|
|
5944
|
+
_loggerProxy.default.logger.error(_errorMessage3);
|
|
5945
|
+
_error3 = new Error(_errorMessage3);
|
|
5946
|
+
joinFailed(_error3);
|
|
5811
5947
|
this.deferJoin = undefined;
|
|
5812
|
-
return
|
|
5948
|
+
return _context19.abrupt("return", _promise.default.reject(new Error(_errorMessage3)));
|
|
5813
5949
|
case 35:
|
|
5814
5950
|
if (options.meetingQuality.remote) {
|
|
5815
5951
|
this.mediaProperties.setRemoteQualityLevel(options.meetingQuality.remote);
|
|
5816
5952
|
}
|
|
5817
5953
|
case 36:
|
|
5818
5954
|
this.isMultistream = !!options.enableMultistream;
|
|
5819
|
-
|
|
5820
|
-
|
|
5955
|
+
_context19.prev = 37;
|
|
5956
|
+
_context19.next = 40;
|
|
5821
5957
|
return this.checkAndRefreshPermissionToken(_constants.MEETING_PERMISSION_TOKEN_REFRESH_THRESHOLD_IN_SEC, _constants.MEETING_PERMISSION_TOKEN_REFRESH_REASON);
|
|
5822
5958
|
case 40:
|
|
5823
|
-
|
|
5959
|
+
_context19.next = 51;
|
|
5824
5960
|
break;
|
|
5825
5961
|
case 42:
|
|
5826
|
-
|
|
5827
|
-
|
|
5828
|
-
_loggerProxy.default.logger.error('Meeting:index#join --> Failed to refresh permission token:',
|
|
5829
|
-
if (!(
|
|
5830
|
-
|
|
5962
|
+
_context19.prev = 42;
|
|
5963
|
+
_context19.t0 = _context19["catch"](37);
|
|
5964
|
+
_loggerProxy.default.logger.error('Meeting:index#join --> Failed to refresh permission token:', _context19.t0);
|
|
5965
|
+
if (!(_context19.t0 instanceof _captchaError.default || _context19.t0 instanceof _passwordError.default || _context19.t0 instanceof _permission.default)) {
|
|
5966
|
+
_context19.next = 51;
|
|
5831
5967
|
break;
|
|
5832
5968
|
}
|
|
5833
|
-
this.meetingFiniteStateMachine.fail(
|
|
5969
|
+
this.meetingFiniteStateMachine.fail(_context19.t0);
|
|
5834
5970
|
|
|
5835
5971
|
// Upload logs on refreshpermissionToken refresh Failure
|
|
5836
5972
|
_triggerProxy.default.trigger(this, {
|
|
5837
5973
|
file: 'meeting/index',
|
|
5838
5974
|
function: 'join'
|
|
5839
5975
|
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
|
|
5840
|
-
joinFailed(
|
|
5976
|
+
joinFailed(_context19.t0);
|
|
5841
5977
|
this.deferJoin = undefined;
|
|
5842
5978
|
|
|
5843
5979
|
// if refresh permission token requires captcha, password or permission, we are throwing the errors
|
|
5844
5980
|
// and bubble it up to client
|
|
5845
|
-
return
|
|
5981
|
+
return _context19.abrupt("return", _promise.default.reject(_context19.t0));
|
|
5846
5982
|
case 51:
|
|
5847
|
-
return
|
|
5848
|
-
|
|
5849
|
-
|
|
5983
|
+
return _context19.abrupt("return", _util2.default.joinMeetingOptions(this, options).then(function (join) {
|
|
5984
|
+
_this35.meetingFiniteStateMachine.join();
|
|
5985
|
+
_this35.setupLocusMediaRequest();
|
|
5850
5986
|
|
|
5851
5987
|
// @ts-ignore
|
|
5852
|
-
|
|
5853
|
-
(0, _classPrivateFieldSet2.default)(
|
|
5988
|
+
_this35.webex.internal.device.meetingStarted();
|
|
5989
|
+
(0, _classPrivateFieldSet2.default)(_this35, _isoLocalClientMeetingJoinTime, new Date().toISOString());
|
|
5854
5990
|
_loggerProxy.default.logger.log('Meeting:index#join --> Success');
|
|
5855
5991
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
|
|
5856
|
-
correlation_id:
|
|
5992
|
+
correlation_id: _this35.correlationId
|
|
5857
5993
|
});
|
|
5858
5994
|
joinSuccess(join);
|
|
5859
|
-
|
|
5995
|
+
_this35.deferJoin = undefined;
|
|
5860
5996
|
return join;
|
|
5861
5997
|
}).catch(function (error) {
|
|
5862
|
-
var
|
|
5863
|
-
|
|
5998
|
+
var _this35$meetingInfo, _error$error;
|
|
5999
|
+
_this35.meetingFiniteStateMachine.fail(error);
|
|
5864
6000
|
_loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
|
|
5865
6001
|
|
|
5866
6002
|
// @ts-ignore
|
|
5867
|
-
|
|
6003
|
+
_this35.webex.internal.newMetrics.submitClientEvent({
|
|
5868
6004
|
name: 'client.locus.join.response',
|
|
5869
6005
|
payload: {
|
|
5870
6006
|
identifiers: {
|
|
5871
|
-
meetingLookupUrl: (
|
|
6007
|
+
meetingLookupUrl: (_this35$meetingInfo = _this35.meetingInfo) === null || _this35$meetingInfo === void 0 ? void 0 : _this35$meetingInfo.meetingLookupUrl
|
|
5872
6008
|
}
|
|
5873
6009
|
},
|
|
5874
6010
|
options: {
|
|
5875
|
-
meetingId:
|
|
6011
|
+
meetingId: _this35.id,
|
|
5876
6012
|
rawError: error
|
|
5877
6013
|
}
|
|
5878
6014
|
});
|
|
5879
6015
|
|
|
5880
6016
|
// TODO: change this to error codes and pre defined dictionary
|
|
5881
6017
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
|
|
5882
|
-
correlation_id:
|
|
6018
|
+
correlation_id: _this35.correlationId,
|
|
5883
6019
|
reason: (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.message,
|
|
5884
6020
|
stack: error.stack
|
|
5885
6021
|
});
|
|
5886
6022
|
|
|
5887
6023
|
// Upload logs on join Failure
|
|
5888
|
-
_triggerProxy.default.trigger(
|
|
6024
|
+
_triggerProxy.default.trigger(_this35, {
|
|
5889
6025
|
file: 'meeting/index',
|
|
5890
6026
|
function: 'join'
|
|
5891
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
6027
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this35);
|
|
5892
6028
|
joinFailed(error);
|
|
5893
|
-
|
|
6029
|
+
_this35.deferJoin = undefined;
|
|
5894
6030
|
return _promise.default.reject(error);
|
|
5895
6031
|
}).then(function (join) {
|
|
5896
6032
|
// @ts-ignore - config coming from registerPlugin
|
|
5897
|
-
if (
|
|
6033
|
+
if (_this35.config.enableAutomaticLLM) {
|
|
5898
6034
|
// @ts-ignore
|
|
5899
|
-
|
|
5900
|
-
|
|
6035
|
+
_this35.webex.internal.llm.on('online', _this35.handleLLMOnline);
|
|
6036
|
+
_this35.updateLLMConnection().catch(function (error) {
|
|
5901
6037
|
_loggerProxy.default.logger.error('Meeting:index#join --> Transcription Socket Connection Failed', error);
|
|
5902
6038
|
_metrics.default.sendBehavioralMetric(_constants2.default.LLM_CONNECTION_AFTER_JOIN_FAILURE, {
|
|
5903
|
-
correlation_id:
|
|
6039
|
+
correlation_id: _this35.correlationId,
|
|
5904
6040
|
reason: error === null || error === void 0 ? void 0 : error.message,
|
|
5905
6041
|
stack: error.stack
|
|
5906
6042
|
});
|
|
@@ -5912,9 +6048,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5912
6048
|
}));
|
|
5913
6049
|
case 52:
|
|
5914
6050
|
case "end":
|
|
5915
|
-
return
|
|
6051
|
+
return _context19.stop();
|
|
5916
6052
|
}
|
|
5917
|
-
},
|
|
6053
|
+
}, _callee19, this, [[37, 42]]);
|
|
5918
6054
|
}));
|
|
5919
6055
|
function join() {
|
|
5920
6056
|
return _join.apply(this, arguments);
|
|
@@ -5931,54 +6067,55 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5931
6067
|
}, {
|
|
5932
6068
|
key: "updateLLMConnection",
|
|
5933
6069
|
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 (
|
|
6070
|
+
var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20() {
|
|
6071
|
+
var _this36 = this;
|
|
6072
|
+
var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, practiceSessionDatachannelUrl, isJoined, dataChannelUrl;
|
|
6073
|
+
return _regenerator.default.wrap(function _callee20$(_context20) {
|
|
6074
|
+
while (1) switch (_context20.prev = _context20.next) {
|
|
5939
6075
|
case 0:
|
|
5940
6076
|
// @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(); //
|
|
6077
|
+
_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;
|
|
6078
|
+
isJoined = this.isJoined(); // webinar panelist should use new data channel in practice session
|
|
6079
|
+
dataChannelUrl = this.webinar.isJoinPracticeSessionDataChannel() && practiceSessionDatachannelUrl ? practiceSessionDatachannelUrl : datachannelUrl; // @ts-ignore - Fix type
|
|
5943
6080
|
if (!this.webex.internal.llm.isConnected()) {
|
|
5944
|
-
|
|
6081
|
+
_context20.next = 9;
|
|
5945
6082
|
break;
|
|
5946
6083
|
}
|
|
5947
6084
|
if (!(
|
|
5948
6085
|
// @ts-ignore - Fix type
|
|
5949
6086
|
url === this.webex.internal.llm.getLocusUrl() &&
|
|
5950
6087
|
// @ts-ignore - Fix type
|
|
5951
|
-
|
|
5952
|
-
|
|
6088
|
+
dataChannelUrl === this.webex.internal.llm.getDatachannelUrl() && isJoined)) {
|
|
6089
|
+
_context20.next = 6;
|
|
5953
6090
|
break;
|
|
5954
6091
|
}
|
|
5955
|
-
return
|
|
5956
|
-
case
|
|
5957
|
-
|
|
6092
|
+
return _context20.abrupt("return", undefined);
|
|
6093
|
+
case 6:
|
|
6094
|
+
_context20.next = 8;
|
|
5958
6095
|
return this.webex.internal.llm.disconnectLLM();
|
|
5959
|
-
case
|
|
6096
|
+
case 8:
|
|
5960
6097
|
// @ts-ignore - Fix type
|
|
5961
6098
|
this.webex.internal.llm.off('event:relay.event', this.processRelayEvent);
|
|
5962
|
-
case
|
|
6099
|
+
case 9:
|
|
5963
6100
|
if (isJoined) {
|
|
5964
|
-
|
|
6101
|
+
_context20.next = 11;
|
|
5965
6102
|
break;
|
|
5966
6103
|
}
|
|
5967
|
-
return
|
|
5968
|
-
case
|
|
5969
|
-
return
|
|
6104
|
+
return _context20.abrupt("return", undefined);
|
|
6105
|
+
case 11:
|
|
6106
|
+
return _context20.abrupt("return", this.webex.internal.llm.registerAndConnect(url, dataChannelUrl).then(function (registerAndConnectResult) {
|
|
5970
6107
|
// @ts-ignore - Fix type
|
|
5971
|
-
|
|
6108
|
+
_this36.webex.internal.llm.off('event:relay.event', _this36.processRelayEvent);
|
|
5972
6109
|
// @ts-ignore - Fix type
|
|
5973
|
-
|
|
6110
|
+
_this36.webex.internal.llm.on('event:relay.event', _this36.processRelayEvent);
|
|
5974
6111
|
_loggerProxy.default.logger.info('Meeting:index#updateLLMConnection --> enabled to receive relay events!');
|
|
5975
6112
|
return _promise.default.resolve(registerAndConnectResult);
|
|
5976
6113
|
}));
|
|
5977
|
-
case
|
|
6114
|
+
case 12:
|
|
5978
6115
|
case "end":
|
|
5979
|
-
return
|
|
6116
|
+
return _context20.stop();
|
|
5980
6117
|
}
|
|
5981
|
-
},
|
|
6118
|
+
}, _callee20, this);
|
|
5982
6119
|
}));
|
|
5983
6120
|
function updateLLMConnection() {
|
|
5984
6121
|
return _updateLLMConnection.apply(this, arguments);
|
|
@@ -6024,7 +6161,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6024
6161
|
}, {
|
|
6025
6162
|
key: "dialInPstn",
|
|
6026
6163
|
value: function dialInPstn() {
|
|
6027
|
-
var
|
|
6164
|
+
var _this37 = this;
|
|
6028
6165
|
if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
|
|
6029
6166
|
|
|
6030
6167
|
var correlationId = this.correlationId,
|
|
@@ -6040,10 +6177,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6040
6177
|
}).catch(function (error) {
|
|
6041
6178
|
var _error$error2;
|
|
6042
6179
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
|
|
6043
|
-
correlation_id:
|
|
6044
|
-
dial_in_url:
|
|
6180
|
+
correlation_id: _this37.correlationId,
|
|
6181
|
+
dial_in_url: _this37.dialInUrl,
|
|
6045
6182
|
locus_id: locusUrl.split('/').pop(),
|
|
6046
|
-
client_url:
|
|
6183
|
+
client_url: _this37.deviceUrl,
|
|
6047
6184
|
reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
|
|
6048
6185
|
stack: error.stack
|
|
6049
6186
|
});
|
|
@@ -6061,7 +6198,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6061
6198
|
}, {
|
|
6062
6199
|
key: "dialOutPstn",
|
|
6063
6200
|
value: function dialOutPstn(phoneNumber) {
|
|
6064
|
-
var
|
|
6201
|
+
var _this38 = this;
|
|
6065
6202
|
if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
|
|
6066
6203
|
|
|
6067
6204
|
var correlationId = this.correlationId,
|
|
@@ -6078,10 +6215,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6078
6215
|
}).catch(function (error) {
|
|
6079
6216
|
var _error$error3;
|
|
6080
6217
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
|
|
6081
|
-
correlation_id:
|
|
6082
|
-
dial_out_url:
|
|
6218
|
+
correlation_id: _this38.correlationId,
|
|
6219
|
+
dial_out_url: _this38.dialOutUrl,
|
|
6083
6220
|
locus_id: locusUrl.split('/').pop(),
|
|
6084
|
-
client_url:
|
|
6221
|
+
client_url: _this38.deviceUrl,
|
|
6085
6222
|
reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
|
|
6086
6223
|
stack: error.stack
|
|
6087
6224
|
});
|
|
@@ -6112,7 +6249,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6112
6249
|
}, {
|
|
6113
6250
|
key: "moveTo",
|
|
6114
6251
|
value: function moveTo(resourceId) {
|
|
6115
|
-
var
|
|
6252
|
+
var _this39 = this;
|
|
6116
6253
|
if (!resourceId) {
|
|
6117
6254
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
|
6118
6255
|
}
|
|
@@ -6150,18 +6287,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6150
6287
|
meetingId: this.id
|
|
6151
6288
|
}
|
|
6152
6289
|
});
|
|
6153
|
-
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.SELF_OBSERVING, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6290
|
+
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.SELF_OBSERVING, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21() {
|
|
6154
6291
|
var mediaSettings;
|
|
6155
|
-
return _regenerator.default.wrap(function
|
|
6156
|
-
while (1) switch (
|
|
6292
|
+
return _regenerator.default.wrap(function _callee21$(_context21) {
|
|
6293
|
+
while (1) switch (_context21.prev = _context21.next) {
|
|
6157
6294
|
case 0:
|
|
6158
|
-
|
|
6159
|
-
if (!(
|
|
6160
|
-
|
|
6295
|
+
_context21.prev = 0;
|
|
6296
|
+
if (!(_this39.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
|
|
6297
|
+
_context21.next = 4;
|
|
6161
6298
|
break;
|
|
6162
6299
|
}
|
|
6163
|
-
|
|
6164
|
-
return
|
|
6300
|
+
_context21.next = 4;
|
|
6301
|
+
return _this39.releaseScreenShareFloor();
|
|
6165
6302
|
case 4:
|
|
6166
6303
|
mediaSettings = {
|
|
6167
6304
|
mediaDirection: {
|
|
@@ -6173,55 +6310,55 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6173
6310
|
receiveShare: true
|
|
6174
6311
|
}
|
|
6175
6312
|
};
|
|
6176
|
-
|
|
6177
|
-
|
|
6313
|
+
_this39.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
|
|
6314
|
+
_this39.mediaProperties.unsetRemoteMedia();
|
|
6178
6315
|
|
|
6179
6316
|
// 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
6317
|
// once the device answers we close the old connection and create new media server connection with only share enabled
|
|
6181
|
-
if (!
|
|
6182
|
-
|
|
6318
|
+
if (!_this39.statsAnalyzer) {
|
|
6319
|
+
_context21.next = 10;
|
|
6183
6320
|
break;
|
|
6184
6321
|
}
|
|
6185
|
-
|
|
6186
|
-
return
|
|
6322
|
+
_context21.next = 10;
|
|
6323
|
+
return _this39.statsAnalyzer.stopAnalyzer();
|
|
6187
6324
|
case 10:
|
|
6188
|
-
|
|
6189
|
-
return
|
|
6325
|
+
_context21.next = 12;
|
|
6326
|
+
return _this39.closeRemoteStreams();
|
|
6190
6327
|
case 12:
|
|
6191
|
-
|
|
6192
|
-
return
|
|
6328
|
+
_context21.next = 14;
|
|
6329
|
+
return _this39.closePeerConnections();
|
|
6193
6330
|
case 14:
|
|
6194
|
-
|
|
6195
|
-
|
|
6196
|
-
|
|
6197
|
-
|
|
6198
|
-
|
|
6199
|
-
return
|
|
6331
|
+
_this39.cleanupLocalStreams();
|
|
6332
|
+
_this39.unsetRemoteStreams();
|
|
6333
|
+
_this39.unsetPeerConnections();
|
|
6334
|
+
_this39.reconnectionManager.cleanUp();
|
|
6335
|
+
_context21.next = 20;
|
|
6336
|
+
return _this39.addMedia({
|
|
6200
6337
|
audioEnabled: false,
|
|
6201
6338
|
videoEnabled: false,
|
|
6202
6339
|
shareVideoEnabled: true
|
|
6203
6340
|
});
|
|
6204
6341
|
case 20:
|
|
6205
6342
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
|
|
6206
|
-
|
|
6207
|
-
|
|
6343
|
+
_this39.isMoveToInProgress = false;
|
|
6344
|
+
_context21.next = 29;
|
|
6208
6345
|
break;
|
|
6209
6346
|
case 24:
|
|
6210
|
-
|
|
6211
|
-
|
|
6212
|
-
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId',
|
|
6347
|
+
_context21.prev = 24;
|
|
6348
|
+
_context21.t0 = _context21["catch"](0);
|
|
6349
|
+
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context21.t0);
|
|
6213
6350
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
|
6214
|
-
correlation_id:
|
|
6215
|
-
locus_id:
|
|
6216
|
-
reason:
|
|
6217
|
-
stack:
|
|
6351
|
+
correlation_id: _this39.correlationId,
|
|
6352
|
+
locus_id: _this39.locusUrl.split('/').pop(),
|
|
6353
|
+
reason: _context21.t0.message,
|
|
6354
|
+
stack: _context21.t0.stack
|
|
6218
6355
|
});
|
|
6219
|
-
|
|
6356
|
+
_this39.isMoveToInProgress = false;
|
|
6220
6357
|
case 29:
|
|
6221
6358
|
case "end":
|
|
6222
|
-
return
|
|
6359
|
+
return _context21.stop();
|
|
6223
6360
|
}
|
|
6224
|
-
},
|
|
6361
|
+
}, _callee21, null, [[0, 24]]);
|
|
6225
6362
|
})));
|
|
6226
6363
|
_loggerProxy.default.logger.info('Meeting:index#moveTo --> Initated moved to using resourceId', resourceId);
|
|
6227
6364
|
|
|
@@ -6232,17 +6369,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6232
6369
|
resourceId: resourceId,
|
|
6233
6370
|
moveToResource: true
|
|
6234
6371
|
}).then(function () {
|
|
6235
|
-
|
|
6372
|
+
_this39.meetingFiniteStateMachine.join();
|
|
6236
6373
|
}).catch(function (error) {
|
|
6237
|
-
|
|
6374
|
+
_this39.meetingFiniteStateMachine.fail(error);
|
|
6238
6375
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
|
6239
|
-
correlation_id:
|
|
6240
|
-
locus_id:
|
|
6376
|
+
correlation_id: _this39.correlationId,
|
|
6377
|
+
locus_id: _this39.locusUrl.split('/').pop(),
|
|
6241
6378
|
reason: error.message,
|
|
6242
6379
|
stack: error.stack
|
|
6243
6380
|
});
|
|
6244
6381
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', error);
|
|
6245
|
-
|
|
6382
|
+
_this39.isMoveToInProgress = false;
|
|
6246
6383
|
return _promise.default.reject(error);
|
|
6247
6384
|
});
|
|
6248
6385
|
}
|
|
@@ -6257,7 +6394,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6257
6394
|
}, {
|
|
6258
6395
|
key: "moveFrom",
|
|
6259
6396
|
value: function moveFrom(resourceId) {
|
|
6260
|
-
var
|
|
6397
|
+
var _this40 = this;
|
|
6261
6398
|
// On moveFrom ask the developer to re capture it moveFrom then updateMedia
|
|
6262
6399
|
if (!resourceId) {
|
|
6263
6400
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
|
@@ -6272,19 +6409,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6272
6409
|
}
|
|
6273
6410
|
});
|
|
6274
6411
|
return _util2.default.joinMeetingOptions(this).then(function () {
|
|
6275
|
-
return _util2.default.leaveMeeting(
|
|
6412
|
+
return _util2.default.leaveMeeting(_this40, {
|
|
6276
6413
|
resourceId: resourceId,
|
|
6277
6414
|
correlationId: oldCorrelationId,
|
|
6278
6415
|
moveMeeting: true
|
|
6279
6416
|
}).then(function () {
|
|
6280
|
-
|
|
6417
|
+
_this40.resourceId = '';
|
|
6281
6418
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
|
|
6282
6419
|
});
|
|
6283
6420
|
}).catch(function (error) {
|
|
6284
|
-
|
|
6421
|
+
_this40.meetingFiniteStateMachine.fail(error);
|
|
6285
6422
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
|
|
6286
|
-
correlation_id:
|
|
6287
|
-
locus_id:
|
|
6423
|
+
correlation_id: _this40.correlationId,
|
|
6424
|
+
locus_id: _this40.locusUrl.split('/').pop(),
|
|
6288
6425
|
reason: error.message,
|
|
6289
6426
|
stack: error.stack
|
|
6290
6427
|
});
|
|
@@ -6309,10 +6446,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6309
6446
|
}, {
|
|
6310
6447
|
key: "createMediaConnection",
|
|
6311
6448
|
value: (function () {
|
|
6312
|
-
var _createMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6449
|
+
var _createMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee22(turnServerInfo, bundlePolicy) {
|
|
6313
6450
|
var mc, audioEnabled, videoEnabled, shareEnabled;
|
|
6314
|
-
return _regenerator.default.wrap(function
|
|
6315
|
-
while (1) switch (
|
|
6451
|
+
return _regenerator.default.wrap(function _callee22$(_context22) {
|
|
6452
|
+
while (1) switch (_context22.prev = _context22.next) {
|
|
6316
6453
|
case 0:
|
|
6317
6454
|
this.rtcMetrics = this.isMultistream ?
|
|
6318
6455
|
// @ts-ignore
|
|
@@ -6344,42 +6481,42 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6344
6481
|
|
|
6345
6482
|
// publish the streams
|
|
6346
6483
|
if (!this.mediaProperties.audioStream) {
|
|
6347
|
-
|
|
6484
|
+
_context22.next = 9;
|
|
6348
6485
|
break;
|
|
6349
6486
|
}
|
|
6350
6487
|
this.setSendNamedMediaGroup(_internalMediaCore.MediaType.AudioMain);
|
|
6351
|
-
|
|
6488
|
+
_context22.next = 9;
|
|
6352
6489
|
return this.publishStream(_internalMediaCore.MediaType.AudioMain, this.mediaProperties.audioStream);
|
|
6353
6490
|
case 9:
|
|
6354
6491
|
if (!this.mediaProperties.videoStream) {
|
|
6355
|
-
|
|
6492
|
+
_context22.next = 12;
|
|
6356
6493
|
break;
|
|
6357
6494
|
}
|
|
6358
|
-
|
|
6495
|
+
_context22.next = 12;
|
|
6359
6496
|
return this.publishStream(_internalMediaCore.MediaType.VideoMain, this.mediaProperties.videoStream);
|
|
6360
6497
|
case 12:
|
|
6361
6498
|
if (!this.mediaProperties.shareVideoStream) {
|
|
6362
|
-
|
|
6499
|
+
_context22.next = 15;
|
|
6363
6500
|
break;
|
|
6364
6501
|
}
|
|
6365
|
-
|
|
6502
|
+
_context22.next = 15;
|
|
6366
6503
|
return this.publishStream(_internalMediaCore.MediaType.VideoSlides, this.mediaProperties.shareVideoStream);
|
|
6367
6504
|
case 15:
|
|
6368
6505
|
if (!(this.isMultistream && this.mediaProperties.shareAudioStream)) {
|
|
6369
|
-
|
|
6506
|
+
_context22.next = 18;
|
|
6370
6507
|
break;
|
|
6371
6508
|
}
|
|
6372
|
-
|
|
6509
|
+
_context22.next = 18;
|
|
6373
6510
|
return this.publishStream(_internalMediaCore.MediaType.AudioSlides, this.mediaProperties.shareAudioStream);
|
|
6374
6511
|
case 18:
|
|
6375
|
-
return
|
|
6512
|
+
return _context22.abrupt("return", mc);
|
|
6376
6513
|
case 19:
|
|
6377
6514
|
case "end":
|
|
6378
|
-
return
|
|
6515
|
+
return _context22.stop();
|
|
6379
6516
|
}
|
|
6380
|
-
},
|
|
6517
|
+
}, _callee22, this);
|
|
6381
6518
|
}));
|
|
6382
|
-
function createMediaConnection(
|
|
6519
|
+
function createMediaConnection(_x17, _x18) {
|
|
6383
6520
|
return _createMediaConnection.apply(this, arguments);
|
|
6384
6521
|
}
|
|
6385
6522
|
return createMediaConnection;
|
|
@@ -6397,9 +6534,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6397
6534
|
}, {
|
|
6398
6535
|
key: "forwardEvent",
|
|
6399
6536
|
value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
|
|
6400
|
-
var
|
|
6537
|
+
var _this41 = this;
|
|
6401
6538
|
eventEmitter.on(eventTypeToForward, function (data) {
|
|
6402
|
-
return _triggerProxy.default.trigger(
|
|
6539
|
+
return _triggerProxy.default.trigger(_this41, {
|
|
6403
6540
|
file: 'meetings',
|
|
6404
6541
|
function: 'addMedia'
|
|
6405
6542
|
}, meetingEventType, data);
|
|
@@ -6417,11 +6554,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6417
6554
|
}, {
|
|
6418
6555
|
key: "setUpLocalStreamReferences",
|
|
6419
6556
|
value: (function () {
|
|
6420
|
-
var _setUpLocalStreamReferences = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6557
|
+
var _setUpLocalStreamReferences = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee23(localStreams) {
|
|
6421
6558
|
var _localStreams$microph, _localStreams$camera, _localStreams$screenS, _localStreams$screenS2, _localStreams$screenS3, _localStreams$screenS4, _localStreams$screenS5, _localStreams$screenS6;
|
|
6422
6559
|
var setUpStreamPromises;
|
|
6423
|
-
return _regenerator.default.wrap(function
|
|
6424
|
-
while (1) switch (
|
|
6560
|
+
return _regenerator.default.wrap(function _callee23$(_context23) {
|
|
6561
|
+
while (1) switch (_context23.prev = _context23.next) {
|
|
6425
6562
|
case 0:
|
|
6426
6563
|
setUpStreamPromises = [];
|
|
6427
6564
|
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 +6573,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6436
6573
|
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
6574
|
setUpStreamPromises.push(this.setLocalShareAudioStream(localStreams.screenShare.audio));
|
|
6438
6575
|
}
|
|
6439
|
-
|
|
6440
|
-
|
|
6576
|
+
_context23.prev = 5;
|
|
6577
|
+
_context23.next = 8;
|
|
6441
6578
|
return _promise.default.all(setUpStreamPromises);
|
|
6442
6579
|
case 8:
|
|
6443
|
-
|
|
6580
|
+
_context23.next = 14;
|
|
6444
6581
|
break;
|
|
6445
6582
|
case 10:
|
|
6446
|
-
|
|
6447
|
-
|
|
6448
|
-
_loggerProxy.default.logger.error("Meeting:index#addMedia():setUpLocalStreamReferences --> Error , ",
|
|
6449
|
-
throw
|
|
6583
|
+
_context23.prev = 10;
|
|
6584
|
+
_context23.t0 = _context23["catch"](5);
|
|
6585
|
+
_loggerProxy.default.logger.error("Meeting:index#addMedia():setUpLocalStreamReferences --> Error , ", _context23.t0);
|
|
6586
|
+
throw _context23.t0;
|
|
6450
6587
|
case 14:
|
|
6451
6588
|
case "end":
|
|
6452
|
-
return
|
|
6589
|
+
return _context23.stop();
|
|
6453
6590
|
}
|
|
6454
|
-
},
|
|
6591
|
+
}, _callee23, this, [[5, 10]]);
|
|
6455
6592
|
}));
|
|
6456
|
-
function setUpLocalStreamReferences(
|
|
6593
|
+
function setUpLocalStreamReferences(_x19) {
|
|
6457
6594
|
return _setUpLocalStreamReferences.apply(this, arguments);
|
|
6458
6595
|
}
|
|
6459
6596
|
return setUpLocalStreamReferences;
|
|
@@ -6468,72 +6605,72 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6468
6605
|
}, {
|
|
6469
6606
|
key: "waitForMediaConnectionConnected",
|
|
6470
6607
|
value: (function () {
|
|
6471
|
-
var _waitForMediaConnectionConnected = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6608
|
+
var _waitForMediaConnectionConnected = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24() {
|
|
6472
6609
|
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 (
|
|
6610
|
+
return _regenerator.default.wrap(function _callee24$(_context24) {
|
|
6611
|
+
while (1) switch (_context24.prev = _context24.next) {
|
|
6475
6612
|
case 0:
|
|
6476
|
-
|
|
6477
|
-
|
|
6613
|
+
_context24.prev = 0;
|
|
6614
|
+
_context24.next = 3;
|
|
6478
6615
|
return this.mediaProperties.waitForMediaConnectionConnected();
|
|
6479
6616
|
case 3:
|
|
6480
|
-
|
|
6617
|
+
_context24.next = 30;
|
|
6481
6618
|
break;
|
|
6482
6619
|
case 5:
|
|
6483
|
-
|
|
6484
|
-
|
|
6485
|
-
iceConnected =
|
|
6620
|
+
_context24.prev = 5;
|
|
6621
|
+
_context24.t0 = _context24["catch"](0);
|
|
6622
|
+
iceConnected = _context24.t0.iceConnected;
|
|
6486
6623
|
if (this.hasMediaConnectionConnectedAtLeastOnce) {
|
|
6487
|
-
|
|
6624
|
+
_context24.next = 29;
|
|
6488
6625
|
break;
|
|
6489
6626
|
}
|
|
6490
|
-
|
|
6491
|
-
|
|
6492
|
-
|
|
6493
|
-
|
|
6494
|
-
|
|
6495
|
-
|
|
6496
|
-
|
|
6497
|
-
|
|
6498
|
-
|
|
6627
|
+
_context24.t1 = this.webex.internal.newMetrics;
|
|
6628
|
+
_context24.t2 = !this.turnServerUsed;
|
|
6629
|
+
_context24.t3 = this.addMediaData.icePhaseCallback();
|
|
6630
|
+
_context24.t4 = this.webex.internal.newMetrics.callDiagnosticMetrics;
|
|
6631
|
+
_context24.t5 = _internalPluginMetrics.CallDiagnosticUtils;
|
|
6632
|
+
_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';
|
|
6633
|
+
_context24.t7 = iceConnected;
|
|
6634
|
+
_context24.t8 = this.turnServerUsed;
|
|
6635
|
+
_context24.next = 19;
|
|
6499
6636
|
return this.webex.meetings.reachability.isWebexMediaBackendUnreachable().catch(function () {
|
|
6500
6637
|
return false;
|
|
6501
6638
|
});
|
|
6502
6639
|
case 19:
|
|
6503
|
-
|
|
6504
|
-
|
|
6505
|
-
signalingState:
|
|
6506
|
-
iceConnected:
|
|
6507
|
-
turnServerUsed:
|
|
6508
|
-
unreachable:
|
|
6640
|
+
_context24.t9 = _context24.sent;
|
|
6641
|
+
_context24.t10 = {
|
|
6642
|
+
signalingState: _context24.t6,
|
|
6643
|
+
iceConnected: _context24.t7,
|
|
6644
|
+
turnServerUsed: _context24.t8,
|
|
6645
|
+
unreachable: _context24.t9
|
|
6509
6646
|
};
|
|
6510
|
-
|
|
6511
|
-
|
|
6512
|
-
clientErrorCode:
|
|
6647
|
+
_context24.t11 = _context24.t5.generateClientErrorCodeForIceFailure.call(_context24.t5, _context24.t10);
|
|
6648
|
+
_context24.t12 = {
|
|
6649
|
+
clientErrorCode: _context24.t11
|
|
6513
6650
|
};
|
|
6514
|
-
|
|
6515
|
-
|
|
6516
|
-
|
|
6517
|
-
canProceed:
|
|
6518
|
-
icePhase:
|
|
6519
|
-
errors:
|
|
6651
|
+
_context24.t13 = _context24.t4.getErrorPayloadForClientErrorCode.call(_context24.t4, _context24.t12);
|
|
6652
|
+
_context24.t14 = [_context24.t13];
|
|
6653
|
+
_context24.t15 = {
|
|
6654
|
+
canProceed: _context24.t2,
|
|
6655
|
+
icePhase: _context24.t3,
|
|
6656
|
+
errors: _context24.t14
|
|
6520
6657
|
};
|
|
6521
|
-
|
|
6658
|
+
_context24.t16 = {
|
|
6522
6659
|
meetingId: this.id
|
|
6523
6660
|
};
|
|
6524
|
-
|
|
6661
|
+
_context24.t17 = {
|
|
6525
6662
|
name: 'client.ice.end',
|
|
6526
|
-
payload:
|
|
6527
|
-
options:
|
|
6663
|
+
payload: _context24.t15,
|
|
6664
|
+
options: _context24.t16
|
|
6528
6665
|
};
|
|
6529
|
-
|
|
6666
|
+
_context24.t1.submitClientEvent.call(_context24.t1, _context24.t17);
|
|
6530
6667
|
case 29:
|
|
6531
6668
|
throw new Error("Timed out waiting for media connection to be connected, correlationId=".concat(this.correlationId));
|
|
6532
6669
|
case 30:
|
|
6533
6670
|
case "end":
|
|
6534
|
-
return
|
|
6671
|
+
return _context24.stop();
|
|
6535
6672
|
}
|
|
6536
|
-
},
|
|
6673
|
+
}, _callee24, this, [[0, 5]]);
|
|
6537
6674
|
}));
|
|
6538
6675
|
function waitForMediaConnectionConnected() {
|
|
6539
6676
|
return _waitForMediaConnectionConnected.apply(this, arguments);
|
|
@@ -6565,18 +6702,6 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6565
6702
|
}
|
|
6566
6703
|
}
|
|
6567
6704
|
|
|
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
6705
|
/**
|
|
6581
6706
|
* Returns a promise. This promise is created once the local sdp offer has been successfully created and is resolved
|
|
6582
6707
|
* once the remote sdp answer has been received.
|
|
@@ -6584,49 +6709,51 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6584
6709
|
* @private
|
|
6585
6710
|
* @returns {Promise<void>}
|
|
6586
6711
|
*/
|
|
6587
|
-
|
|
6588
|
-
|
|
6589
|
-
|
|
6712
|
+
}, {
|
|
6713
|
+
key: "waitForRemoteSDPAnswer",
|
|
6714
|
+
value: (function () {
|
|
6715
|
+
var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25() {
|
|
6716
|
+
var _this42 = this;
|
|
6590
6717
|
var LOG_HEADER, deferSDPAnswer;
|
|
6591
|
-
return _regenerator.default.wrap(function
|
|
6592
|
-
while (1) switch (
|
|
6718
|
+
return _regenerator.default.wrap(function _callee25$(_context25) {
|
|
6719
|
+
while (1) switch (_context25.prev = _context25.next) {
|
|
6593
6720
|
case 0:
|
|
6594
6721
|
LOG_HEADER = 'Meeting:index#addMedia():waitForRemoteSDPAnswer -->';
|
|
6595
6722
|
if (this.deferSDPAnswer) {
|
|
6596
|
-
|
|
6723
|
+
_context25.next = 4;
|
|
6597
6724
|
break;
|
|
6598
6725
|
}
|
|
6599
6726
|
_loggerProxy.default.logger.warn("".concat(LOG_HEADER, " offer not created yet"));
|
|
6600
|
-
return
|
|
6727
|
+
return _context25.abrupt("return", _promise.default.reject(new Error('waitForRemoteSDPAnswer() called before local sdp offer created')));
|
|
6601
6728
|
case 4:
|
|
6602
6729
|
deferSDPAnswer = this.deferSDPAnswer;
|
|
6603
6730
|
this.sdpResponseTimer = setTimeout(function () {
|
|
6604
6731
|
_loggerProxy.default.logger.warn("".concat(LOG_HEADER, " timeout! no REMOTE SDP ANSWER received within ").concat(_constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT / 1000, " seconds"));
|
|
6605
6732
|
// @ts-ignore
|
|
6606
|
-
|
|
6733
|
+
_this42.webex.internal.newMetrics.submitClientEvent({
|
|
6607
6734
|
name: 'client.media-engine.remote-sdp-received',
|
|
6608
6735
|
payload: {
|
|
6609
6736
|
canProceed: false,
|
|
6610
6737
|
errors: [
|
|
6611
6738
|
// @ts-ignore
|
|
6612
|
-
|
|
6739
|
+
_this42.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
|
|
6613
6740
|
clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
|
|
6614
6741
|
})]
|
|
6615
6742
|
},
|
|
6616
6743
|
options: {
|
|
6617
|
-
meetingId:
|
|
6744
|
+
meetingId: _this42.id,
|
|
6618
6745
|
rawError: new Error('Timeout waiting for SDP answer')
|
|
6619
6746
|
}
|
|
6620
6747
|
});
|
|
6621
6748
|
deferSDPAnswer.reject(new Error('Timed out waiting for REMOTE SDP ANSWER'));
|
|
6622
6749
|
}, _constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT);
|
|
6623
6750
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " waiting for REMOTE SDP ANSWER..."));
|
|
6624
|
-
return
|
|
6751
|
+
return _context25.abrupt("return", deferSDPAnswer.promise);
|
|
6625
6752
|
case 8:
|
|
6626
6753
|
case "end":
|
|
6627
|
-
return
|
|
6754
|
+
return _context25.stop();
|
|
6628
6755
|
}
|
|
6629
|
-
},
|
|
6756
|
+
}, _callee25, this);
|
|
6630
6757
|
}));
|
|
6631
6758
|
function waitForRemoteSDPAnswer() {
|
|
6632
6759
|
return _waitForRemoteSDPAnswer.apply(this, arguments);
|
|
@@ -6645,30 +6772,30 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6645
6772
|
}, {
|
|
6646
6773
|
key: "retryEstablishMediaConnectionWithForcedTurnDiscovery",
|
|
6647
6774
|
value: (function () {
|
|
6648
|
-
var _retryEstablishMediaConnectionWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6775
|
+
var _retryEstablishMediaConnectionWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee26(remoteMediaManagerConfig, bundlePolicy) {
|
|
6649
6776
|
var LOG_HEADER;
|
|
6650
|
-
return _regenerator.default.wrap(function
|
|
6651
|
-
while (1) switch (
|
|
6777
|
+
return _regenerator.default.wrap(function _callee26$(_context26) {
|
|
6778
|
+
while (1) switch (_context26.prev = _context26.next) {
|
|
6652
6779
|
case 0:
|
|
6653
6780
|
LOG_HEADER = 'Meeting:index#addMedia():retryEstablishMediaConnectionWithForcedTurnDiscovery -->';
|
|
6654
|
-
|
|
6655
|
-
|
|
6781
|
+
_context26.prev = 1;
|
|
6782
|
+
_context26.next = 4;
|
|
6656
6783
|
return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, true);
|
|
6657
6784
|
case 4:
|
|
6658
|
-
|
|
6785
|
+
_context26.next = 10;
|
|
6659
6786
|
break;
|
|
6660
6787
|
case 6:
|
|
6661
|
-
|
|
6662
|
-
|
|
6663
|
-
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " retry with TURN-TLS failed, media connection unable to connect, "),
|
|
6664
|
-
throw
|
|
6788
|
+
_context26.prev = 6;
|
|
6789
|
+
_context26.t0 = _context26["catch"](1);
|
|
6790
|
+
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " retry with TURN-TLS failed, media connection unable to connect, "), _context26.t0);
|
|
6791
|
+
throw _context26.t0;
|
|
6665
6792
|
case 10:
|
|
6666
6793
|
case "end":
|
|
6667
|
-
return
|
|
6794
|
+
return _context26.stop();
|
|
6668
6795
|
}
|
|
6669
|
-
},
|
|
6796
|
+
}, _callee26, this, [[1, 6]]);
|
|
6670
6797
|
}));
|
|
6671
|
-
function retryEstablishMediaConnectionWithForcedTurnDiscovery(
|
|
6798
|
+
function retryEstablishMediaConnectionWithForcedTurnDiscovery(_x20, _x21) {
|
|
6672
6799
|
return _retryEstablishMediaConnectionWithForcedTurnDiscovery.apply(this, arguments);
|
|
6673
6800
|
}
|
|
6674
6801
|
return retryEstablishMediaConnectionWithForcedTurnDiscovery;
|
|
@@ -6686,14 +6813,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6686
6813
|
}, {
|
|
6687
6814
|
key: "retryWithForcedTurnDiscovery",
|
|
6688
6815
|
value: (function () {
|
|
6689
|
-
var _retryWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6816
|
+
var _retryWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee27(remoteMediaManagerConfig, bundlePolicy) {
|
|
6690
6817
|
var LOG_HEADER;
|
|
6691
|
-
return _regenerator.default.wrap(function
|
|
6692
|
-
while (1) switch (
|
|
6818
|
+
return _regenerator.default.wrap(function _callee27$(_context27) {
|
|
6819
|
+
while (1) switch (_context27.prev = _context27.next) {
|
|
6693
6820
|
case 0:
|
|
6694
6821
|
this.addMediaData.retriedWithTurnServer = true;
|
|
6695
6822
|
LOG_HEADER = 'Meeting:index#addMedia():retryWithForcedTurnDiscovery -->';
|
|
6696
|
-
|
|
6823
|
+
_context27.next = 4;
|
|
6697
6824
|
return this.cleanUpBeforeRetryWithTurnServer();
|
|
6698
6825
|
case 4:
|
|
6699
6826
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_RETRY, {
|
|
@@ -6703,24 +6830,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6703
6830
|
reason: 'forcingTurnTls'
|
|
6704
6831
|
});
|
|
6705
6832
|
if (!(this.state === _constants.MEETING_STATE.STATES.LEFT)) {
|
|
6706
|
-
|
|
6833
|
+
_context27.next = 9;
|
|
6707
6834
|
break;
|
|
6708
6835
|
}
|
|
6709
6836
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " meeting state was LEFT after first attempt to establish media connection. Attempting to rejoin. "));
|
|
6710
|
-
|
|
6837
|
+
_context27.next = 9;
|
|
6711
6838
|
return this.join({
|
|
6712
6839
|
rejoin: true
|
|
6713
6840
|
});
|
|
6714
6841
|
case 9:
|
|
6715
|
-
|
|
6842
|
+
_context27.next = 11;
|
|
6716
6843
|
return this.retryEstablishMediaConnectionWithForcedTurnDiscovery(remoteMediaManagerConfig, bundlePolicy);
|
|
6717
6844
|
case 11:
|
|
6718
6845
|
case "end":
|
|
6719
|
-
return
|
|
6846
|
+
return _context27.stop();
|
|
6720
6847
|
}
|
|
6721
|
-
},
|
|
6848
|
+
}, _callee27, this);
|
|
6722
6849
|
}));
|
|
6723
|
-
function retryWithForcedTurnDiscovery(
|
|
6850
|
+
function retryWithForcedTurnDiscovery(_x22, _x23) {
|
|
6724
6851
|
return _retryWithForcedTurnDiscovery.apply(this, arguments);
|
|
6725
6852
|
}
|
|
6726
6853
|
return retryWithForcedTurnDiscovery;
|
|
@@ -6740,32 +6867,32 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6740
6867
|
}, {
|
|
6741
6868
|
key: "handleWaitForMediaConnectionConnectedError",
|
|
6742
6869
|
value: (function () {
|
|
6743
|
-
var _handleWaitForMediaConnectionConnectedError = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6870
|
+
var _handleWaitForMediaConnectionConnectedError = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee28(error, remoteMediaManagerConfig, bundlePolicy) {
|
|
6744
6871
|
var LOG_HEADER;
|
|
6745
|
-
return _regenerator.default.wrap(function
|
|
6746
|
-
while (1) switch (
|
|
6872
|
+
return _regenerator.default.wrap(function _callee28$(_context28) {
|
|
6873
|
+
while (1) switch (_context28.prev = _context28.next) {
|
|
6747
6874
|
case 0:
|
|
6748
6875
|
LOG_HEADER = 'Meeting:index#addMedia():handleWaitForMediaConnectionConnectedError -->'; // @ts-ignore - config coming from registerPlugin
|
|
6749
6876
|
if (this.turnServerUsed) {
|
|
6750
|
-
|
|
6877
|
+
_context28.next = 7;
|
|
6751
6878
|
break;
|
|
6752
6879
|
}
|
|
6753
6880
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " error waiting for media to connect on UDP, TCP, retrying using TURN-TLS, "), error);
|
|
6754
|
-
|
|
6881
|
+
_context28.next = 5;
|
|
6755
6882
|
return this.retryWithForcedTurnDiscovery(remoteMediaManagerConfig, bundlePolicy);
|
|
6756
6883
|
case 5:
|
|
6757
|
-
|
|
6884
|
+
_context28.next = 9;
|
|
6758
6885
|
break;
|
|
6759
6886
|
case 7:
|
|
6760
6887
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " error waiting for media to connect using UDP, TCP and TURN-TLS"), error);
|
|
6761
6888
|
throw new _webexErrors.AddMediaFailed();
|
|
6762
6889
|
case 9:
|
|
6763
6890
|
case "end":
|
|
6764
|
-
return
|
|
6891
|
+
return _context28.stop();
|
|
6765
6892
|
}
|
|
6766
|
-
},
|
|
6893
|
+
}, _callee28, this);
|
|
6767
6894
|
}));
|
|
6768
|
-
function handleWaitForMediaConnectionConnectedError(
|
|
6895
|
+
function handleWaitForMediaConnectionConnectedError(_x24, _x25, _x26) {
|
|
6769
6896
|
return _handleWaitForMediaConnectionConnectedError.apply(this, arguments);
|
|
6770
6897
|
}
|
|
6771
6898
|
return handleWaitForMediaConnectionConnectedError;
|
|
@@ -6781,20 +6908,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6781
6908
|
}, {
|
|
6782
6909
|
key: "doTurnDiscovery",
|
|
6783
6910
|
value: (function () {
|
|
6784
|
-
var _doTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6911
|
+
var _doTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee29(isReconnecting, isForced) {
|
|
6785
6912
|
var cdl, turnDiscoveryResult;
|
|
6786
|
-
return _regenerator.default.wrap(function
|
|
6787
|
-
while (1) switch (
|
|
6913
|
+
return _regenerator.default.wrap(function _callee29$(_context29) {
|
|
6914
|
+
while (1) switch (_context29.prev = _context29.next) {
|
|
6788
6915
|
case 0:
|
|
6789
6916
|
// @ts-ignore
|
|
6790
6917
|
cdl = this.webex.internal.newMetrics.callDiagnosticLatencies; // @ts-ignore
|
|
6791
6918
|
this.webex.internal.newMetrics.submitInternalEvent({
|
|
6792
6919
|
name: 'internal.client.add-media.turn-discovery.start'
|
|
6793
6920
|
});
|
|
6794
|
-
|
|
6921
|
+
_context29.next = 4;
|
|
6795
6922
|
return this.roap.doTurnDiscovery(this, isReconnecting, isForced);
|
|
6796
6923
|
case 4:
|
|
6797
|
-
turnDiscoveryResult =
|
|
6924
|
+
turnDiscoveryResult = _context29.sent;
|
|
6798
6925
|
this.turnDiscoverySkippedReason = turnDiscoveryResult === null || turnDiscoveryResult === void 0 ? void 0 : turnDiscoveryResult.turnDiscoverySkippedReason;
|
|
6799
6926
|
this.turnServerUsed = !this.turnDiscoverySkippedReason;
|
|
6800
6927
|
|
|
@@ -6810,14 +6937,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6810
6937
|
retriedWithTurnServer: this.addMediaData.retriedWithTurnServer
|
|
6811
6938
|
});
|
|
6812
6939
|
}
|
|
6813
|
-
return
|
|
6940
|
+
return _context29.abrupt("return", turnDiscoveryResult);
|
|
6814
6941
|
case 10:
|
|
6815
6942
|
case "end":
|
|
6816
|
-
return
|
|
6943
|
+
return _context29.stop();
|
|
6817
6944
|
}
|
|
6818
|
-
},
|
|
6945
|
+
}, _callee29, this);
|
|
6819
6946
|
}));
|
|
6820
|
-
function doTurnDiscovery(
|
|
6947
|
+
function doTurnDiscovery(_x27, _x28) {
|
|
6821
6948
|
return _doTurnDiscovery.apply(this, arguments);
|
|
6822
6949
|
}
|
|
6823
6950
|
return doTurnDiscovery;
|
|
@@ -6836,35 +6963,35 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6836
6963
|
}, {
|
|
6837
6964
|
key: "establishMediaConnection",
|
|
6838
6965
|
value: (function () {
|
|
6839
|
-
var _establishMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6966
|
+
var _establishMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee30(remoteMediaManagerConfig, bundlePolicy, isForced, turnServerInfo) {
|
|
6840
6967
|
var _this$locusMediaReque;
|
|
6841
6968
|
var LOG_HEADER, isReconnecting, _yield$this$doTurnDis, mc;
|
|
6842
|
-
return _regenerator.default.wrap(function
|
|
6843
|
-
while (1) switch (
|
|
6969
|
+
return _regenerator.default.wrap(function _callee30$(_context30) {
|
|
6970
|
+
while (1) switch (_context30.prev = _context30.next) {
|
|
6844
6971
|
case 0:
|
|
6845
6972
|
LOG_HEADER = 'Meeting:index#addMedia():establishMediaConnection -->';
|
|
6846
6973
|
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
6974
|
if (this.isMoveToInProgress && this.turnServerUsed) {
|
|
6848
6975
|
isForced = true;
|
|
6849
6976
|
}
|
|
6850
|
-
|
|
6977
|
+
_context30.prev = 3;
|
|
6851
6978
|
if (turnServerInfo) {
|
|
6852
|
-
|
|
6979
|
+
_context30.next = 9;
|
|
6853
6980
|
break;
|
|
6854
6981
|
}
|
|
6855
|
-
|
|
6982
|
+
_context30.next = 7;
|
|
6856
6983
|
return this.doTurnDiscovery(isReconnecting, isForced);
|
|
6857
6984
|
case 7:
|
|
6858
|
-
_yield$this$doTurnDis =
|
|
6985
|
+
_yield$this$doTurnDis = _context30.sent;
|
|
6859
6986
|
turnServerInfo = _yield$this$doTurnDis.turnServerInfo;
|
|
6860
6987
|
case 9:
|
|
6861
|
-
|
|
6988
|
+
_context30.next = 11;
|
|
6862
6989
|
return this.createMediaConnection(turnServerInfo, bundlePolicy);
|
|
6863
6990
|
case 11:
|
|
6864
|
-
mc =
|
|
6865
|
-
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " media connection created"));
|
|
6991
|
+
mc = _context30.sent;
|
|
6992
|
+
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " media connection created this.isMultistream=").concat(this.isMultistream));
|
|
6866
6993
|
if (!this.isMultistream) {
|
|
6867
|
-
|
|
6994
|
+
_context30.next = 21;
|
|
6868
6995
|
break;
|
|
6869
6996
|
}
|
|
6870
6997
|
this.remoteMediaManager = new _remoteMediaManager.RemoteMediaManager(this.receiveSlotManager, this.mediaRequestManagers, remoteMediaManagerConfig);
|
|
@@ -6872,42 +6999,42 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6872
6999
|
this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.InterpretationAudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_INTERPRETATION_AUDIO_CREATED);
|
|
6873
7000
|
this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.ScreenShareAudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_SCREEN_SHARE_AUDIO_CREATED);
|
|
6874
7001
|
this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.VideoLayoutChanged, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_VIDEO_LAYOUT_CHANGED);
|
|
6875
|
-
|
|
7002
|
+
_context30.next = 21;
|
|
6876
7003
|
return this.remoteMediaManager.start();
|
|
6877
7004
|
case 21:
|
|
6878
|
-
|
|
7005
|
+
_context30.next = 23;
|
|
6879
7006
|
return mc.initiateOffer();
|
|
6880
7007
|
case 23:
|
|
6881
|
-
|
|
7008
|
+
_context30.next = 25;
|
|
6882
7009
|
return this.waitForRemoteSDPAnswer();
|
|
6883
7010
|
case 25:
|
|
6884
7011
|
this.handleMediaLogging(this.mediaProperties);
|
|
6885
|
-
|
|
7012
|
+
_context30.next = 32;
|
|
6886
7013
|
break;
|
|
6887
7014
|
case 28:
|
|
6888
|
-
|
|
6889
|
-
|
|
6890
|
-
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " error establishing media connection, "),
|
|
6891
|
-
throw
|
|
7015
|
+
_context30.prev = 28;
|
|
7016
|
+
_context30.t0 = _context30["catch"](3);
|
|
7017
|
+
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " error establishing media connection, "), _context30.t0);
|
|
7018
|
+
throw _context30.t0;
|
|
6892
7019
|
case 32:
|
|
6893
|
-
|
|
6894
|
-
|
|
7020
|
+
_context30.prev = 32;
|
|
7021
|
+
_context30.next = 35;
|
|
6895
7022
|
return this.waitForMediaConnectionConnected();
|
|
6896
7023
|
case 35:
|
|
6897
|
-
|
|
7024
|
+
_context30.next = 41;
|
|
6898
7025
|
break;
|
|
6899
7026
|
case 37:
|
|
6900
|
-
|
|
6901
|
-
|
|
6902
|
-
|
|
6903
|
-
return this.handleWaitForMediaConnectionConnectedError(
|
|
7027
|
+
_context30.prev = 37;
|
|
7028
|
+
_context30.t1 = _context30["catch"](32);
|
|
7029
|
+
_context30.next = 41;
|
|
7030
|
+
return this.handleWaitForMediaConnectionConnectedError(_context30.t1, remoteMediaManagerConfig, bundlePolicy);
|
|
6904
7031
|
case 41:
|
|
6905
7032
|
case "end":
|
|
6906
|
-
return
|
|
7033
|
+
return _context30.stop();
|
|
6907
7034
|
}
|
|
6908
|
-
},
|
|
7035
|
+
}, _callee30, this, [[3, 28], [32, 37]]);
|
|
6909
7036
|
}));
|
|
6910
|
-
function establishMediaConnection(
|
|
7037
|
+
function establishMediaConnection(_x29, _x30, _x31, _x32) {
|
|
6911
7038
|
return _establishMediaConnection.apply(this, arguments);
|
|
6912
7039
|
}
|
|
6913
7040
|
return establishMediaConnection;
|
|
@@ -6922,22 +7049,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6922
7049
|
}, {
|
|
6923
7050
|
key: "cleanUpOnAddMediaFailure",
|
|
6924
7051
|
value: (function () {
|
|
6925
|
-
var _cleanUpOnAddMediaFailure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6926
|
-
return _regenerator.default.wrap(function
|
|
6927
|
-
while (1) switch (
|
|
7052
|
+
var _cleanUpOnAddMediaFailure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee31() {
|
|
7053
|
+
return _regenerator.default.wrap(function _callee31$(_context31) {
|
|
7054
|
+
while (1) switch (_context31.prev = _context31.next) {
|
|
6928
7055
|
case 0:
|
|
6929
7056
|
if (!this.statsAnalyzer) {
|
|
6930
|
-
|
|
7057
|
+
_context31.next = 3;
|
|
6931
7058
|
break;
|
|
6932
7059
|
}
|
|
6933
|
-
|
|
7060
|
+
_context31.next = 3;
|
|
6934
7061
|
return this.statsAnalyzer.stopAnalyzer();
|
|
6935
7062
|
case 3:
|
|
6936
7063
|
this.statsAnalyzer = null;
|
|
6937
7064
|
|
|
6938
7065
|
// when media fails, we want to upload a webrtc dump to see whats going on
|
|
6939
7066
|
// this function is async, but returns once the stats have been gathered
|
|
6940
|
-
|
|
7067
|
+
_context31.next = 6;
|
|
6941
7068
|
return this.forceSendStatsReport({
|
|
6942
7069
|
callFrom: 'addMedia'
|
|
6943
7070
|
});
|
|
@@ -6948,15 +7075,58 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6948
7075
|
}
|
|
6949
7076
|
case 7:
|
|
6950
7077
|
case "end":
|
|
6951
|
-
return
|
|
7078
|
+
return _context31.stop();
|
|
6952
7079
|
}
|
|
6953
|
-
},
|
|
7080
|
+
}, _callee31, this);
|
|
6954
7081
|
}));
|
|
6955
7082
|
function cleanUpOnAddMediaFailure() {
|
|
6956
7083
|
return _cleanUpOnAddMediaFailure.apply(this, arguments);
|
|
6957
7084
|
}
|
|
6958
7085
|
return cleanUpOnAddMediaFailure;
|
|
6959
7086
|
}()
|
|
7087
|
+
/**
|
|
7088
|
+
* Cleans up stats analyzer, peer connection and other things before
|
|
7089
|
+
* we can create a new transcoded media connection
|
|
7090
|
+
*
|
|
7091
|
+
* @private
|
|
7092
|
+
* @returns {Promise<void>}
|
|
7093
|
+
*/
|
|
7094
|
+
)
|
|
7095
|
+
}, {
|
|
7096
|
+
key: "downgradeFromMultistreamToTranscoded",
|
|
7097
|
+
value: (function () {
|
|
7098
|
+
var _downgradeFromMultistreamToTranscoded = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32() {
|
|
7099
|
+
var _this$locusMediaReque2;
|
|
7100
|
+
return _regenerator.default.wrap(function _callee32$(_context32) {
|
|
7101
|
+
while (1) switch (_context32.prev = _context32.next) {
|
|
7102
|
+
case 0:
|
|
7103
|
+
if (!this.statsAnalyzer) {
|
|
7104
|
+
_context32.next = 3;
|
|
7105
|
+
break;
|
|
7106
|
+
}
|
|
7107
|
+
_context32.next = 3;
|
|
7108
|
+
return this.statsAnalyzer.stopAnalyzer();
|
|
7109
|
+
case 3:
|
|
7110
|
+
this.statsAnalyzer = null;
|
|
7111
|
+
this.isMultistream = false;
|
|
7112
|
+
if (this.mediaProperties.webrtcMediaConnection) {
|
|
7113
|
+
// close peer connection, but don't reset mute state information, because we will want to use it on the retry
|
|
7114
|
+
this.closePeerConnections(false);
|
|
7115
|
+
this.mediaProperties.unsetPeerConnection();
|
|
7116
|
+
}
|
|
7117
|
+
(_this$locusMediaReque2 = this.locusMediaRequest) === null || _this$locusMediaReque2 === void 0 ? void 0 : _this$locusMediaReque2.downgradeFromMultistreamToTranscoded();
|
|
7118
|
+
this.createStatsAnalyzer();
|
|
7119
|
+
case 8:
|
|
7120
|
+
case "end":
|
|
7121
|
+
return _context32.stop();
|
|
7122
|
+
}
|
|
7123
|
+
}, _callee32, this);
|
|
7124
|
+
}));
|
|
7125
|
+
function downgradeFromMultistreamToTranscoded() {
|
|
7126
|
+
return _downgradeFromMultistreamToTranscoded.apply(this, arguments);
|
|
7127
|
+
}
|
|
7128
|
+
return downgradeFromMultistreamToTranscoded;
|
|
7129
|
+
}()
|
|
6960
7130
|
/**
|
|
6961
7131
|
* Sends stats report, closes peer connection and cleans up any media connection
|
|
6962
7132
|
* related things before trying to establish media connection again with turn server
|
|
@@ -6968,11 +7138,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6968
7138
|
}, {
|
|
6969
7139
|
key: "cleanUpBeforeRetryWithTurnServer",
|
|
6970
7140
|
value: (function () {
|
|
6971
|
-
var _cleanUpBeforeRetryWithTurnServer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6972
|
-
return _regenerator.default.wrap(function
|
|
6973
|
-
while (1) switch (
|
|
7141
|
+
var _cleanUpBeforeRetryWithTurnServer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33() {
|
|
7142
|
+
return _regenerator.default.wrap(function _callee33$(_context33) {
|
|
7143
|
+
while (1) switch (_context33.prev = _context33.next) {
|
|
6974
7144
|
case 0:
|
|
6975
|
-
|
|
7145
|
+
_context33.next = 2;
|
|
6976
7146
|
return this.forceSendStatsReport({
|
|
6977
7147
|
callFrom: 'cleanUpBeforeRetryWithTurnServer'
|
|
6978
7148
|
});
|
|
@@ -6992,9 +7162,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6992
7162
|
}
|
|
6993
7163
|
case 3:
|
|
6994
7164
|
case "end":
|
|
6995
|
-
return
|
|
7165
|
+
return _context33.stop();
|
|
6996
7166
|
}
|
|
6997
|
-
},
|
|
7167
|
+
}, _callee33, this);
|
|
6998
7168
|
}));
|
|
6999
7169
|
function cleanUpBeforeRetryWithTurnServer() {
|
|
7000
7170
|
return _cleanUpBeforeRetryWithTurnServer.apply(this, arguments);
|
|
@@ -7004,34 +7174,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7004
7174
|
}, {
|
|
7005
7175
|
key: "cleanUpBeforeReconnection",
|
|
7006
7176
|
value: function () {
|
|
7007
|
-
var _cleanUpBeforeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
7008
|
-
return _regenerator.default.wrap(function
|
|
7009
|
-
while (1) switch (
|
|
7177
|
+
var _cleanUpBeforeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34() {
|
|
7178
|
+
return _regenerator.default.wrap(function _callee34$(_context34) {
|
|
7179
|
+
while (1) switch (_context34.prev = _context34.next) {
|
|
7010
7180
|
case 0:
|
|
7011
|
-
|
|
7012
|
-
|
|
7181
|
+
_context34.prev = 0;
|
|
7182
|
+
_context34.next = 3;
|
|
7013
7183
|
return this.forceSendStatsReport({
|
|
7014
7184
|
callFrom: 'cleanUpBeforeReconnection'
|
|
7015
7185
|
});
|
|
7016
7186
|
case 3:
|
|
7017
7187
|
if (!this.statsAnalyzer) {
|
|
7018
|
-
|
|
7188
|
+
_context34.next = 6;
|
|
7019
7189
|
break;
|
|
7020
7190
|
}
|
|
7021
|
-
|
|
7191
|
+
_context34.next = 6;
|
|
7022
7192
|
return this.statsAnalyzer.stopAnalyzer();
|
|
7023
7193
|
case 6:
|
|
7024
|
-
|
|
7194
|
+
_context34.next = 11;
|
|
7025
7195
|
break;
|
|
7026
7196
|
case 8:
|
|
7027
|
-
|
|
7028
|
-
|
|
7029
|
-
_loggerProxy.default.logger.error('Meeting:index#cleanUpBeforeReconnection --> Error during cleanup: ',
|
|
7197
|
+
_context34.prev = 8;
|
|
7198
|
+
_context34.t0 = _context34["catch"](0);
|
|
7199
|
+
_loggerProxy.default.logger.error('Meeting:index#cleanUpBeforeReconnection --> Error during cleanup: ', _context34.t0);
|
|
7030
7200
|
case 11:
|
|
7031
7201
|
case "end":
|
|
7032
|
-
return
|
|
7202
|
+
return _context34.stop();
|
|
7033
7203
|
}
|
|
7034
|
-
},
|
|
7204
|
+
}, _callee34, this, [[0, 8]]);
|
|
7035
7205
|
}));
|
|
7036
7206
|
function cleanUpBeforeReconnection() {
|
|
7037
7207
|
return _cleanUpBeforeReconnection.apply(this, arguments);
|
|
@@ -7078,10 +7248,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7078
7248
|
}, {
|
|
7079
7249
|
key: "addMedia",
|
|
7080
7250
|
value: function addMedia() {
|
|
7081
|
-
var
|
|
7251
|
+
var _this43 = this;
|
|
7082
7252
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7083
7253
|
return this.addMediaInternal(function () {
|
|
7084
|
-
return
|
|
7254
|
+
return _this43.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
|
7085
7255
|
}, undefined, false, options);
|
|
7086
7256
|
}
|
|
7087
7257
|
|
|
@@ -7099,7 +7269,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7099
7269
|
}, {
|
|
7100
7270
|
key: "addMediaInternal",
|
|
7101
7271
|
value: (function () {
|
|
7102
|
-
var _addMediaInternal = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
7272
|
+
var _addMediaInternal = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35(icePhaseCallback, turnServerInfo, forceTurnDiscovery) {
|
|
7103
7273
|
var options,
|
|
7104
7274
|
LOG_HEADER,
|
|
7105
7275
|
localStreams,
|
|
@@ -7147,24 +7317,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7147
7317
|
_selectedCandidatePairChanges,
|
|
7148
7318
|
_numTransports,
|
|
7149
7319
|
_iceCandidateErrors,
|
|
7150
|
-
|
|
7151
|
-
return _regenerator.default.wrap(function
|
|
7152
|
-
while (1) switch (
|
|
7320
|
+
_args35 = arguments;
|
|
7321
|
+
return _regenerator.default.wrap(function _callee35$(_context35) {
|
|
7322
|
+
while (1) switch (_context35.prev = _context35.next) {
|
|
7153
7323
|
case 0:
|
|
7154
|
-
options =
|
|
7324
|
+
options = _args35.length > 3 && _args35[3] !== undefined ? _args35[3] : {};
|
|
7155
7325
|
this.addMediaData.retriedWithTurnServer = false;
|
|
7156
7326
|
this.addMediaData.icePhaseCallback = icePhaseCallback;
|
|
7157
7327
|
this.hasMediaConnectionConnectedAtLeastOnce = false;
|
|
7158
7328
|
LOG_HEADER = 'Meeting:index#addMedia -->';
|
|
7159
7329
|
_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
7330
|
if (!(options.allowMediaInLobby !== true && this.meetingState !== _constants.FULL_STATE.ACTIVE)) {
|
|
7161
|
-
|
|
7331
|
+
_context35.next = 8;
|
|
7162
7332
|
break;
|
|
7163
7333
|
}
|
|
7164
7334
|
throw new _webexErrors.MeetingNotActiveError();
|
|
7165
7335
|
case 8:
|
|
7166
7336
|
if (!_util2.default.isUserInLeftState(this.locusInfo)) {
|
|
7167
|
-
|
|
7337
|
+
_context35.next = 10;
|
|
7168
7338
|
break;
|
|
7169
7339
|
}
|
|
7170
7340
|
throw new _webexErrors.UserNotJoinedError();
|
|
@@ -7175,7 +7345,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7175
7345
|
// If the user is unjoined or guest waiting in lobby dont allow the user to addMedia
|
|
7176
7346
|
// @ts-ignore - isUserUnadmitted coming from SelfUtil
|
|
7177
7347
|
if (!(this.isUserUnadmitted && !this.wirelessShare && !this.allowMediaInLobby)) {
|
|
7178
|
-
|
|
7348
|
+
_context35.next = 14;
|
|
7179
7349
|
break;
|
|
7180
7350
|
}
|
|
7181
7351
|
throw new _webexErrors.UserInLobbyError();
|
|
@@ -7218,45 +7388,55 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7218
7388
|
});
|
|
7219
7389
|
this.audio = (0, _muteState.createMuteState)(_constants.AUDIO, this, audioEnabled);
|
|
7220
7390
|
this.video = (0, _muteState.createMuteState)(_constants.VIDEO, this, videoEnabled);
|
|
7221
|
-
|
|
7222
|
-
|
|
7391
|
+
_context35.prev = 18;
|
|
7392
|
+
_context35.next = 21;
|
|
7223
7393
|
return this.setUpLocalStreamReferences(localStreams);
|
|
7224
7394
|
case 21:
|
|
7225
7395
|
this.setMercuryListener();
|
|
7226
7396
|
this.createStatsAnalyzer();
|
|
7227
|
-
|
|
7397
|
+
_context35.prev = 23;
|
|
7398
|
+
_context35.next = 26;
|
|
7228
7399
|
return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, forceTurnDiscovery, turnServerInfo);
|
|
7229
|
-
case
|
|
7230
|
-
|
|
7231
|
-
|
|
7400
|
+
case 26:
|
|
7401
|
+
_context35.next = 39;
|
|
7402
|
+
break;
|
|
7403
|
+
case 28:
|
|
7404
|
+
_context35.prev = 28;
|
|
7405
|
+
_context35.t0 = _context35["catch"](23);
|
|
7406
|
+
if (!(_context35.t0 instanceof _multistreamNotSupportedError.default)) {
|
|
7407
|
+
_context35.next = 38;
|
|
7232
7408
|
break;
|
|
7233
7409
|
}
|
|
7234
|
-
|
|
7235
|
-
|
|
7236
|
-
|
|
7237
|
-
|
|
7410
|
+
_loggerProxy.default.logger.warn("".concat(LOG_HEADER, " we asked for multistream backend (Homer), but got transcoded backend, recreating media connection..."));
|
|
7411
|
+
_context35.next = 34;
|
|
7412
|
+
return this.downgradeFromMultistreamToTranscoded();
|
|
7413
|
+
case 34:
|
|
7414
|
+
_context35.next = 36;
|
|
7415
|
+
return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, true, undefined);
|
|
7416
|
+
case 36:
|
|
7417
|
+
_context35.next = 39;
|
|
7238
7418
|
break;
|
|
7239
|
-
case
|
|
7240
|
-
|
|
7241
|
-
case
|
|
7419
|
+
case 38:
|
|
7420
|
+
throw _context35.t0;
|
|
7421
|
+
case 39:
|
|
7242
7422
|
if (!this.mediaProperties.hasLocalShareStream()) {
|
|
7243
|
-
|
|
7423
|
+
_context35.next = 42;
|
|
7244
7424
|
break;
|
|
7245
7425
|
}
|
|
7246
|
-
|
|
7426
|
+
_context35.next = 42;
|
|
7247
7427
|
return this.enqueueScreenShareFloorRequest();
|
|
7248
|
-
case
|
|
7249
|
-
|
|
7428
|
+
case 42:
|
|
7429
|
+
_context35.next = 44;
|
|
7250
7430
|
return this.mediaProperties.getCurrentConnectionInfo();
|
|
7251
|
-
case
|
|
7252
|
-
_yield$this$mediaProp =
|
|
7431
|
+
case 44:
|
|
7432
|
+
_yield$this$mediaProp = _context35.sent;
|
|
7253
7433
|
connectionType = _yield$this$mediaProp.connectionType;
|
|
7254
7434
|
selectedCandidatePairChanges = _yield$this$mediaProp.selectedCandidatePairChanges;
|
|
7255
7435
|
numTransports = _yield$this$mediaProp.numTransports;
|
|
7256
|
-
|
|
7436
|
+
_context35.next = 50;
|
|
7257
7437
|
return this.webex.meetings.reachability.getReachabilityMetrics();
|
|
7258
|
-
case
|
|
7259
|
-
reachabilityStats =
|
|
7438
|
+
case 50:
|
|
7439
|
+
reachabilityStats = _context35.sent;
|
|
7260
7440
|
iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
|
|
7261
7441
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, _objectSpread(_objectSpread(_objectSpread({
|
|
7262
7442
|
correlation_id: this.correlationId,
|
|
@@ -7282,31 +7462,31 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7282
7462
|
// We can log ReceiveSlot SSRCs only after the SDP exchange, so doing it here:
|
|
7283
7463
|
(_this$remoteMediaMana = this.remoteMediaManager) === null || _this$remoteMediaMana === void 0 ? void 0 : _this$remoteMediaMana.logAllReceiveSlots();
|
|
7284
7464
|
this.startPeriodicLogUpload();
|
|
7285
|
-
|
|
7465
|
+
_context35.next = 77;
|
|
7286
7466
|
break;
|
|
7287
|
-
case
|
|
7288
|
-
|
|
7289
|
-
|
|
7290
|
-
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "),
|
|
7467
|
+
case 59:
|
|
7468
|
+
_context35.prev = 59;
|
|
7469
|
+
_context35.t1 = _context35["catch"](18);
|
|
7470
|
+
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context35.t1);
|
|
7291
7471
|
|
|
7292
7472
|
// @ts-ignore
|
|
7293
|
-
|
|
7473
|
+
_context35.next = 64;
|
|
7294
7474
|
return this.webex.meetings.reachability.getReachabilityMetrics();
|
|
7295
|
-
case
|
|
7296
|
-
reachabilityMetrics =
|
|
7297
|
-
|
|
7475
|
+
case 64:
|
|
7476
|
+
reachabilityMetrics = _context35.sent;
|
|
7477
|
+
_context35.next = 67;
|
|
7298
7478
|
return this.mediaProperties.getCurrentConnectionInfo();
|
|
7299
|
-
case
|
|
7300
|
-
_yield$this$mediaProp2 =
|
|
7479
|
+
case 67:
|
|
7480
|
+
_yield$this$mediaProp2 = _context35.sent;
|
|
7301
7481
|
_selectedCandidatePairChanges = _yield$this$mediaProp2.selectedCandidatePairChanges;
|
|
7302
7482
|
_numTransports = _yield$this$mediaProp2.numTransports;
|
|
7303
7483
|
_iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
|
|
7304
7484
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_FAILURE, _objectSpread(_objectSpread(_objectSpread({
|
|
7305
7485
|
correlation_id: this.correlationId,
|
|
7306
7486
|
locus_id: this.locusUrl.split('/').pop(),
|
|
7307
|
-
reason:
|
|
7308
|
-
stack:
|
|
7309
|
-
code:
|
|
7487
|
+
reason: _context35.t1.message,
|
|
7488
|
+
stack: _context35.t1.stack,
|
|
7489
|
+
code: _context35.t1.code,
|
|
7310
7490
|
selectedCandidatePairChanges: _selectedCandidatePairChanges,
|
|
7311
7491
|
numTransports: _numTransports,
|
|
7312
7492
|
turnDiscoverySkippedReason: this.turnDiscoverySkippedReason,
|
|
@@ -7320,31 +7500,31 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7320
7500
|
}, reachabilityMetrics), _iceCandidateErrors), {}, {
|
|
7321
7501
|
iceCandidatesCount: this.iceCandidatesCount
|
|
7322
7502
|
}));
|
|
7323
|
-
|
|
7503
|
+
_context35.next = 74;
|
|
7324
7504
|
return this.cleanUpOnAddMediaFailure();
|
|
7325
|
-
case
|
|
7505
|
+
case 74:
|
|
7326
7506
|
// Upload logs on error while adding media
|
|
7327
7507
|
_triggerProxy.default.trigger(this, {
|
|
7328
7508
|
file: 'meeting/index',
|
|
7329
7509
|
function: 'addMedia'
|
|
7330
7510
|
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
|
|
7331
|
-
if (
|
|
7511
|
+
if (_context35.t1 instanceof _internalMediaCore.Errors.SdpError) {
|
|
7332
7512
|
this.leave({
|
|
7333
7513
|
reason: _constants.MEETING_REMOVED_REASON.MEETING_CONNECTION_FAILED
|
|
7334
7514
|
});
|
|
7335
7515
|
}
|
|
7336
|
-
throw
|
|
7337
|
-
case
|
|
7338
|
-
|
|
7516
|
+
throw _context35.t1;
|
|
7517
|
+
case 77:
|
|
7518
|
+
_context35.prev = 77;
|
|
7339
7519
|
this.addMediaData.icePhaseCallback = DEFAULT_ICE_PHASE_CALLBACK;
|
|
7340
|
-
return
|
|
7341
|
-
case
|
|
7520
|
+
return _context35.finish(77);
|
|
7521
|
+
case 80:
|
|
7342
7522
|
case "end":
|
|
7343
|
-
return
|
|
7523
|
+
return _context35.stop();
|
|
7344
7524
|
}
|
|
7345
|
-
},
|
|
7525
|
+
}, _callee35, this, [[18, 59, 77, 80], [23, 28]]);
|
|
7346
7526
|
}));
|
|
7347
|
-
function addMediaInternal(
|
|
7527
|
+
function addMediaInternal(_x33, _x34, _x35) {
|
|
7348
7528
|
return _addMediaInternal.apply(this, arguments);
|
|
7349
7529
|
}
|
|
7350
7530
|
return addMediaInternal;
|
|
@@ -7374,7 +7554,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7374
7554
|
* @memberof Meeting
|
|
7375
7555
|
*/
|
|
7376
7556
|
function enqueueMediaUpdate(mediaUpdateType) {
|
|
7377
|
-
var
|
|
7557
|
+
var _this44 = this;
|
|
7378
7558
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
7379
7559
|
var canUpdateMediaNow = this.canUpdateMedia();
|
|
7380
7560
|
return new _promise.default(function (resolve, reject) {
|
|
@@ -7385,9 +7565,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7385
7565
|
options: options
|
|
7386
7566
|
};
|
|
7387
7567
|
_loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
|
|
7388
|
-
|
|
7568
|
+
_this44.queuedMediaUpdates.push(queueItem);
|
|
7389
7569
|
if (canUpdateMediaNow) {
|
|
7390
|
-
|
|
7570
|
+
_this44.processNextQueuedMediaUpdate();
|
|
7391
7571
|
}
|
|
7392
7572
|
});
|
|
7393
7573
|
}
|
|
@@ -7410,35 +7590,35 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7410
7590
|
* @memberof Meeting
|
|
7411
7591
|
*/
|
|
7412
7592
|
function () {
|
|
7413
|
-
var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
7593
|
+
var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee36(options) {
|
|
7414
7594
|
var audioEnabled, videoEnabled, shareAudioEnabled, shareVideoEnabled, _this$audio3, _this$video3;
|
|
7415
|
-
return _regenerator.default.wrap(function
|
|
7416
|
-
while (1) switch (
|
|
7595
|
+
return _regenerator.default.wrap(function _callee36$(_context36) {
|
|
7596
|
+
while (1) switch (_context36.prev = _context36.next) {
|
|
7417
7597
|
case 0:
|
|
7418
7598
|
this.checkMediaConnection();
|
|
7419
7599
|
audioEnabled = options.audioEnabled, videoEnabled = options.videoEnabled, shareAudioEnabled = options.shareAudioEnabled, shareVideoEnabled = options.shareVideoEnabled;
|
|
7420
7600
|
_loggerProxy.default.logger.log("Meeting:index#updateMedia --> called with options=".concat((0, _stringify.default)(options)));
|
|
7421
7601
|
if (this.canUpdateMedia()) {
|
|
7422
|
-
|
|
7602
|
+
_context36.next = 5;
|
|
7423
7603
|
break;
|
|
7424
7604
|
}
|
|
7425
|
-
return
|
|
7605
|
+
return _context36.abrupt("return", this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.UPDATE_MEDIA, options));
|
|
7426
7606
|
case 5:
|
|
7427
7607
|
if (!this.isMultistream) {
|
|
7428
|
-
|
|
7608
|
+
_context36.next = 10;
|
|
7429
7609
|
break;
|
|
7430
7610
|
}
|
|
7431
7611
|
if (!(shareAudioEnabled !== undefined || shareVideoEnabled !== undefined)) {
|
|
7432
|
-
|
|
7612
|
+
_context36.next = 8;
|
|
7433
7613
|
break;
|
|
7434
7614
|
}
|
|
7435
7615
|
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
7616
|
case 8:
|
|
7437
|
-
|
|
7617
|
+
_context36.next = 12;
|
|
7438
7618
|
break;
|
|
7439
7619
|
case 10:
|
|
7440
7620
|
if (!(shareAudioEnabled !== undefined)) {
|
|
7441
|
-
|
|
7621
|
+
_context36.next = 12;
|
|
7442
7622
|
break;
|
|
7443
7623
|
}
|
|
7444
7624
|
throw new Error('toggling shareAudioEnabled in a transcoded meeting is not supported as of now');
|
|
@@ -7463,20 +7643,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7463
7643
|
this.mediaProperties.mediaDirection.receiveShare = !!(shareAudioEnabled || shareVideoEnabled);
|
|
7464
7644
|
}
|
|
7465
7645
|
if (this.isMultistream) {
|
|
7466
|
-
|
|
7646
|
+
_context36.next = 18;
|
|
7467
7647
|
break;
|
|
7468
7648
|
}
|
|
7469
|
-
|
|
7649
|
+
_context36.next = 18;
|
|
7470
7650
|
return this.updateTranscodedMediaConnection();
|
|
7471
7651
|
case 18:
|
|
7472
|
-
return
|
|
7652
|
+
return _context36.abrupt("return", undefined);
|
|
7473
7653
|
case 19:
|
|
7474
7654
|
case "end":
|
|
7475
|
-
return
|
|
7655
|
+
return _context36.stop();
|
|
7476
7656
|
}
|
|
7477
|
-
},
|
|
7657
|
+
}, _callee36, this);
|
|
7478
7658
|
}));
|
|
7479
|
-
function updateMedia(
|
|
7659
|
+
function updateMedia(_x36) {
|
|
7480
7660
|
return _updateMedia.apply(this, arguments);
|
|
7481
7661
|
}
|
|
7482
7662
|
return updateMedia;
|
|
@@ -7492,7 +7672,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7492
7672
|
}, {
|
|
7493
7673
|
key: "acknowledge",
|
|
7494
7674
|
value: function acknowledge(type) {
|
|
7495
|
-
var
|
|
7675
|
+
var _this45 = this;
|
|
7496
7676
|
if (!type) {
|
|
7497
7677
|
return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
|
|
7498
7678
|
}
|
|
@@ -7504,12 +7684,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7504
7684
|
}).then(function (response) {
|
|
7505
7685
|
return _promise.default.resolve(response);
|
|
7506
7686
|
}).then(function (response) {
|
|
7507
|
-
|
|
7687
|
+
_this45.meetingFiniteStateMachine.ring(type);
|
|
7508
7688
|
// @ts-ignore
|
|
7509
|
-
|
|
7689
|
+
_this45.webex.internal.newMetrics.submitClientEvent({
|
|
7510
7690
|
name: 'client.alert.displayed',
|
|
7511
7691
|
options: {
|
|
7512
|
-
meetingId:
|
|
7692
|
+
meetingId: _this45.id
|
|
7513
7693
|
}
|
|
7514
7694
|
});
|
|
7515
7695
|
return _promise.default.resolve({
|
|
@@ -7534,12 +7714,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7534
7714
|
}, {
|
|
7535
7715
|
key: "decline",
|
|
7536
7716
|
value: function decline(reason) {
|
|
7537
|
-
var
|
|
7717
|
+
var _this46 = this;
|
|
7538
7718
|
return _util2.default.declineMeeting(this, reason).then(function (decline) {
|
|
7539
|
-
|
|
7719
|
+
_this46.meetingFiniteStateMachine.decline();
|
|
7540
7720
|
return _promise.default.resolve(decline);
|
|
7541
7721
|
}).catch(function (error) {
|
|
7542
|
-
|
|
7722
|
+
_this46.meetingFiniteStateMachine.fail(error);
|
|
7543
7723
|
return _promise.default.reject(error);
|
|
7544
7724
|
});
|
|
7545
7725
|
}
|
|
@@ -7590,7 +7770,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7590
7770
|
}, {
|
|
7591
7771
|
key: "leave",
|
|
7592
7772
|
value: function leave() {
|
|
7593
|
-
var
|
|
7773
|
+
var _this47 = this;
|
|
7594
7774
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7595
7775
|
var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
|
|
7596
7776
|
|
|
@@ -7602,7 +7782,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7602
7782
|
var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7603
7783
|
return (
|
|
7604
7784
|
// @ts-ignore
|
|
7605
|
-
|
|
7785
|
+
_this47.webex.internal.newMetrics.submitClientEvent({
|
|
7606
7786
|
name: 'client.call.leave',
|
|
7607
7787
|
payload: _objectSpread({
|
|
7608
7788
|
trigger: 'user-interaction',
|
|
@@ -7610,7 +7790,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7610
7790
|
leaveReason: options.clientEventLeaveReason
|
|
7611
7791
|
}, payload),
|
|
7612
7792
|
options: {
|
|
7613
|
-
meetingId:
|
|
7793
|
+
meetingId: _this47.id
|
|
7614
7794
|
}
|
|
7615
7795
|
})
|
|
7616
7796
|
);
|
|
@@ -7619,24 +7799,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7619
7799
|
return _util2.default.leaveMeeting(this, options).then(function (leave) {
|
|
7620
7800
|
// CA team recommends submitting this *after* locus /leave
|
|
7621
7801
|
submitLeaveMetric();
|
|
7622
|
-
|
|
7623
|
-
|
|
7802
|
+
_this47.meetingFiniteStateMachine.leave();
|
|
7803
|
+
_this47.clearMeetingData();
|
|
7624
7804
|
|
|
7625
7805
|
// upload logs on leave irrespective of meeting delete
|
|
7626
|
-
_triggerProxy.default.trigger(
|
|
7806
|
+
_triggerProxy.default.trigger(_this47, {
|
|
7627
7807
|
file: 'meeting/index',
|
|
7628
7808
|
function: 'leave'
|
|
7629
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
7809
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this47);
|
|
7630
7810
|
|
|
7631
7811
|
// TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
|
|
7632
|
-
if (
|
|
7812
|
+
if (_this47.wirelessShare || _this47.guest) {
|
|
7633
7813
|
// If screen sharing clean the meeting object
|
|
7634
|
-
_triggerProxy.default.trigger(
|
|
7814
|
+
_triggerProxy.default.trigger(_this47, {
|
|
7635
7815
|
file: 'meeting/index',
|
|
7636
7816
|
function: 'leave'
|
|
7637
7817
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
|
7638
7818
|
reason: options.reason,
|
|
7639
|
-
meetingId:
|
|
7819
|
+
meetingId: _this47.id
|
|
7640
7820
|
});
|
|
7641
7821
|
}
|
|
7642
7822
|
_loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
|
|
@@ -7653,16 +7833,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7653
7833
|
shownToUser: false
|
|
7654
7834
|
}]
|
|
7655
7835
|
});
|
|
7656
|
-
|
|
7836
|
+
_this47.meetingFiniteStateMachine.fail(error);
|
|
7657
7837
|
_loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
|
|
7658
7838
|
// upload logs on leave irrespective of meeting delete
|
|
7659
|
-
_triggerProxy.default.trigger(
|
|
7839
|
+
_triggerProxy.default.trigger(_this47, {
|
|
7660
7840
|
file: 'meeting/index',
|
|
7661
7841
|
function: 'leave'
|
|
7662
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
7842
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this47);
|
|
7663
7843
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
|
|
7664
|
-
correlation_id:
|
|
7665
|
-
locus_id:
|
|
7844
|
+
correlation_id: _this47.correlationId,
|
|
7845
|
+
locus_id: _this47.locusUrl.split('/').pop(),
|
|
7666
7846
|
reason: error.message,
|
|
7667
7847
|
stack: error.stack,
|
|
7668
7848
|
code: error.code
|
|
@@ -7682,7 +7862,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7682
7862
|
}, {
|
|
7683
7863
|
key: "startWhiteboardShare",
|
|
7684
7864
|
value: function startWhiteboardShare(channelUrl, resourceToken) {
|
|
7685
|
-
var
|
|
7865
|
+
var _this48 = this;
|
|
7686
7866
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
7687
7867
|
return element.name === 'whiteboard';
|
|
7688
7868
|
});
|
|
@@ -7711,13 +7891,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7711
7891
|
body.resourceToken = resourceToken;
|
|
7712
7892
|
}
|
|
7713
7893
|
return this.meetingRequest.changeMeetingFloor(body).then(function () {
|
|
7714
|
-
|
|
7894
|
+
_this48.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
|
7715
7895
|
return _promise.default.resolve();
|
|
7716
7896
|
}).catch(function (error) {
|
|
7717
7897
|
_loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
|
|
7718
7898
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
|
|
7719
|
-
correlation_id:
|
|
7720
|
-
locus_id:
|
|
7899
|
+
correlation_id: _this48.correlationId,
|
|
7900
|
+
locus_id: _this48.locusUrl.split('/').pop(),
|
|
7721
7901
|
reason: error.message,
|
|
7722
7902
|
stack: error.stack,
|
|
7723
7903
|
board: {
|
|
@@ -7740,7 +7920,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7740
7920
|
}, {
|
|
7741
7921
|
key: "stopWhiteboardShare",
|
|
7742
7922
|
value: function stopWhiteboardShare(channelUrl) {
|
|
7743
|
-
var
|
|
7923
|
+
var _this49 = this;
|
|
7744
7924
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
7745
7925
|
return element.name === 'whiteboard';
|
|
7746
7926
|
});
|
|
@@ -7763,8 +7943,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7763
7943
|
}).catch(function (error) {
|
|
7764
7944
|
_loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
|
|
7765
7945
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
|
|
7766
|
-
correlation_id:
|
|
7767
|
-
locus_id:
|
|
7946
|
+
correlation_id: _this49.correlationId,
|
|
7947
|
+
locus_id: _this49.locusUrl.split('/').pop(),
|
|
7768
7948
|
reason: error.message,
|
|
7769
7949
|
stack: error.stack,
|
|
7770
7950
|
board: {
|
|
@@ -7786,7 +7966,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7786
7966
|
}, {
|
|
7787
7967
|
key: "requestScreenShareFloor",
|
|
7788
7968
|
value: function requestScreenShareFloor() {
|
|
7789
|
-
var
|
|
7969
|
+
var _this50 = this;
|
|
7790
7970
|
if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
|
|
7791
7971
|
_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
7972
|
this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
|
@@ -7817,34 +7997,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7817
7997
|
resourceUrl: this.resourceUrl,
|
|
7818
7998
|
shareInstanceId: this.localShareInstanceId
|
|
7819
7999
|
}).then(function () {
|
|
7820
|
-
|
|
8000
|
+
_this50.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
|
|
7821
8001
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
|
|
7822
|
-
correlation_id:
|
|
7823
|
-
locus_id:
|
|
8002
|
+
correlation_id: _this50.correlationId,
|
|
8003
|
+
locus_id: _this50.locusUrl.split('/').pop()
|
|
7824
8004
|
});
|
|
7825
8005
|
return _promise.default.resolve();
|
|
7826
8006
|
}).catch(function (error) {
|
|
7827
8007
|
_loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
|
|
7828
8008
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
|
|
7829
|
-
correlation_id:
|
|
7830
|
-
locus_id:
|
|
8009
|
+
correlation_id: _this50.correlationId,
|
|
8010
|
+
locus_id: _this50.locusUrl.split('/').pop(),
|
|
7831
8011
|
reason: error.message,
|
|
7832
8012
|
stack: error.stack
|
|
7833
8013
|
});
|
|
7834
8014
|
|
|
7835
8015
|
// @ts-ignore
|
|
7836
|
-
|
|
8016
|
+
_this50.webex.internal.newMetrics.submitClientEvent({
|
|
7837
8017
|
name: 'client.share.floor-granted.local',
|
|
7838
8018
|
payload: {
|
|
7839
8019
|
mediaType: 'share',
|
|
7840
8020
|
errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
|
|
7841
|
-
shareInstanceId:
|
|
8021
|
+
shareInstanceId: _this50.localShareInstanceId
|
|
7842
8022
|
},
|
|
7843
8023
|
options: {
|
|
7844
|
-
meetingId:
|
|
8024
|
+
meetingId: _this50.id
|
|
7845
8025
|
}
|
|
7846
8026
|
});
|
|
7847
|
-
|
|
8027
|
+
_this50.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
|
7848
8028
|
return _promise.default.reject(error);
|
|
7849
8029
|
});
|
|
7850
8030
|
}
|
|
@@ -7867,10 +8047,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7867
8047
|
}, {
|
|
7868
8048
|
key: "requestScreenShareFloorIfPending",
|
|
7869
8049
|
value: function requestScreenShareFloorIfPending() {
|
|
7870
|
-
var
|
|
8050
|
+
var _this51 = this;
|
|
7871
8051
|
if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
|
|
7872
8052
|
this.requestScreenShareFloor().then(function () {
|
|
7873
|
-
|
|
8053
|
+
_this51.floorGrantPending = false;
|
|
7874
8054
|
});
|
|
7875
8055
|
}
|
|
7876
8056
|
}
|
|
@@ -7884,7 +8064,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7884
8064
|
}, {
|
|
7885
8065
|
key: "releaseScreenShareFloor",
|
|
7886
8066
|
value: function releaseScreenShareFloor() {
|
|
7887
|
-
var
|
|
8067
|
+
var _this52 = this;
|
|
7888
8068
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
|
7889
8069
|
return element.name === _constants.CONTENT;
|
|
7890
8070
|
});
|
|
@@ -7919,8 +8099,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7919
8099
|
}).catch(function (error) {
|
|
7920
8100
|
_loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
|
|
7921
8101
|
_metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
|
|
7922
|
-
correlation_id:
|
|
7923
|
-
locus_id:
|
|
8102
|
+
correlation_id: _this52.correlationId,
|
|
8103
|
+
locus_id: _this52.locusUrl.split('/').pop(),
|
|
7924
8104
|
reason: error.message,
|
|
7925
8105
|
stack: error.stack
|
|
7926
8106
|
});
|
|
@@ -8100,7 +8280,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8100
8280
|
}, {
|
|
8101
8281
|
key: "changeVideoLayout",
|
|
8102
8282
|
value: function changeVideoLayout(layoutType) {
|
|
8103
|
-
var
|
|
8283
|
+
var _this53 = this;
|
|
8104
8284
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
8105
8285
|
var main = renderInfo.main,
|
|
8106
8286
|
content = renderInfo.content;
|
|
@@ -8116,7 +8296,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8116
8296
|
}
|
|
8117
8297
|
if (layoutType) {
|
|
8118
8298
|
if (!_constants.LAYOUT_TYPES.includes(layoutType)) {
|
|
8119
|
-
return this.rejectWithErrorLog(
|
|
8299
|
+
return this.rejectWithErrorLog("Meeting:index#changeVideoLayout --> cannot change video layout, invalid layoutType \"".concat(layoutType, "\" received."));
|
|
8120
8300
|
}
|
|
8121
8301
|
layoutInfo.layoutType = layoutType;
|
|
8122
8302
|
}
|
|
@@ -8154,7 +8334,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8154
8334
|
}
|
|
8155
8335
|
this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
|
|
8156
8336
|
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
|
|
8157
|
-
_triggerProxy.default.trigger(
|
|
8337
|
+
_triggerProxy.default.trigger(_this53, {
|
|
8158
8338
|
file: 'meeting/index',
|
|
8159
8339
|
function: 'changeVideoLayout'
|
|
8160
8340
|
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
|
|
@@ -8270,7 +8450,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8270
8450
|
}, {
|
|
8271
8451
|
key: "endMeetingForAll",
|
|
8272
8452
|
value: function endMeetingForAll() {
|
|
8273
|
-
var
|
|
8453
|
+
var _this54 = this;
|
|
8274
8454
|
// @ts-ignore
|
|
8275
8455
|
this.webex.internal.newMetrics.submitClientEvent({
|
|
8276
8456
|
name: 'client.call.leave',
|
|
@@ -8288,25 +8468,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8288
8468
|
locus_id: this.locusId
|
|
8289
8469
|
});
|
|
8290
8470
|
return _util2.default.endMeetingForAll(this).then(function (end) {
|
|
8291
|
-
|
|
8292
|
-
|
|
8471
|
+
_this54.meetingFiniteStateMachine.end();
|
|
8472
|
+
_this54.clearMeetingData();
|
|
8293
8473
|
// upload logs on leave irrespective of meeting delete
|
|
8294
|
-
_triggerProxy.default.trigger(
|
|
8474
|
+
_triggerProxy.default.trigger(_this54, {
|
|
8295
8475
|
file: 'meeting/index',
|
|
8296
8476
|
function: 'endMeetingForAll'
|
|
8297
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
8477
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this54);
|
|
8298
8478
|
return end;
|
|
8299
8479
|
}).catch(function (error) {
|
|
8300
|
-
|
|
8480
|
+
_this54.meetingFiniteStateMachine.fail(error);
|
|
8301
8481
|
_loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
|
|
8302
8482
|
// upload logs on leave irrespective of meeting delete
|
|
8303
|
-
_triggerProxy.default.trigger(
|
|
8483
|
+
_triggerProxy.default.trigger(_this54, {
|
|
8304
8484
|
file: 'meeting/index',
|
|
8305
8485
|
function: 'endMeetingForAll'
|
|
8306
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
8486
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this54);
|
|
8307
8487
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
|
|
8308
|
-
correlation_id:
|
|
8309
|
-
locus_id:
|
|
8488
|
+
correlation_id: _this54.correlationId,
|
|
8489
|
+
locus_id: _this54.locusUrl.split('/').pop(),
|
|
8310
8490
|
reason: error.message,
|
|
8311
8491
|
stack: error.stack,
|
|
8312
8492
|
code: error.code
|
|
@@ -8395,39 +8575,39 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8395
8575
|
}, {
|
|
8396
8576
|
key: "enableMusicMode",
|
|
8397
8577
|
value: (function () {
|
|
8398
|
-
var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8399
|
-
return _regenerator.default.wrap(function
|
|
8400
|
-
while (1) switch (
|
|
8578
|
+
var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee37(shouldEnableMusicMode) {
|
|
8579
|
+
return _regenerator.default.wrap(function _callee37$(_context37) {
|
|
8580
|
+
while (1) switch (_context37.prev = _context37.next) {
|
|
8401
8581
|
case 0:
|
|
8402
8582
|
this.checkMediaConnection();
|
|
8403
8583
|
if (this.isMultistream) {
|
|
8404
|
-
|
|
8584
|
+
_context37.next = 3;
|
|
8405
8585
|
break;
|
|
8406
8586
|
}
|
|
8407
8587
|
throw new Error('enableMusicMode() only supported with multistream');
|
|
8408
8588
|
case 3:
|
|
8409
8589
|
if (!shouldEnableMusicMode) {
|
|
8410
|
-
|
|
8590
|
+
_context37.next = 8;
|
|
8411
8591
|
break;
|
|
8412
8592
|
}
|
|
8413
|
-
|
|
8593
|
+
_context37.next = 6;
|
|
8414
8594
|
return this.sendSlotManager.setCodecParameters(_internalMediaCore.MediaType.AudioMain, {
|
|
8415
8595
|
maxaveragebitrate: '64000',
|
|
8416
8596
|
maxplaybackrate: '48000'
|
|
8417
8597
|
});
|
|
8418
8598
|
case 6:
|
|
8419
|
-
|
|
8599
|
+
_context37.next = 10;
|
|
8420
8600
|
break;
|
|
8421
8601
|
case 8:
|
|
8422
|
-
|
|
8602
|
+
_context37.next = 10;
|
|
8423
8603
|
return this.sendSlotManager.deleteCodecParameters(_internalMediaCore.MediaType.AudioMain, ['maxaveragebitrate', 'maxplaybackrate']);
|
|
8424
8604
|
case 10:
|
|
8425
8605
|
case "end":
|
|
8426
|
-
return
|
|
8606
|
+
return _context37.stop();
|
|
8427
8607
|
}
|
|
8428
|
-
},
|
|
8608
|
+
}, _callee37, this);
|
|
8429
8609
|
}));
|
|
8430
|
-
function enableMusicMode(
|
|
8610
|
+
function enableMusicMode(_x37) {
|
|
8431
8611
|
return _enableMusicMode.apply(this, arguments);
|
|
8432
8612
|
}
|
|
8433
8613
|
return enableMusicMode;
|
|
@@ -8448,7 +8628,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8448
8628
|
_this$mediaProperties41,
|
|
8449
8629
|
_this$mediaProperties42,
|
|
8450
8630
|
_this$mediaProperties43,
|
|
8451
|
-
|
|
8631
|
+
_this55 = this;
|
|
8452
8632
|
var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
|
|
8453
8633
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
|
|
8454
8634
|
if (!this.canUpdateMedia()) {
|
|
@@ -8473,8 +8653,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8473
8653
|
}).catch(function (error) {
|
|
8474
8654
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
|
|
8475
8655
|
_metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
|
|
8476
|
-
correlation_id:
|
|
8477
|
-
locus_id:
|
|
8656
|
+
correlation_id: _this55.correlationId,
|
|
8657
|
+
locus_id: _this55.locusUrl.split('/').pop(),
|
|
8478
8658
|
reason: error.message,
|
|
8479
8659
|
stack: error.stack
|
|
8480
8660
|
});
|
|
@@ -8518,25 +8698,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8518
8698
|
}, {
|
|
8519
8699
|
key: "publishStream",
|
|
8520
8700
|
value: (function () {
|
|
8521
|
-
var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8522
|
-
return _regenerator.default.wrap(function
|
|
8523
|
-
while (1) switch (
|
|
8701
|
+
var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee38(mediaType, stream) {
|
|
8702
|
+
return _regenerator.default.wrap(function _callee38$(_context38) {
|
|
8703
|
+
while (1) switch (_context38.prev = _context38.next) {
|
|
8524
8704
|
case 0:
|
|
8525
8705
|
if (stream) {
|
|
8526
|
-
|
|
8706
|
+
_context38.next = 2;
|
|
8527
8707
|
break;
|
|
8528
8708
|
}
|
|
8529
|
-
return
|
|
8709
|
+
return _context38.abrupt("return");
|
|
8530
8710
|
case 2:
|
|
8531
8711
|
if (!this.mediaProperties.webrtcMediaConnection) {
|
|
8532
|
-
|
|
8712
|
+
_context38.next = 7;
|
|
8533
8713
|
break;
|
|
8534
8714
|
}
|
|
8535
8715
|
if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
|
|
8536
|
-
|
|
8716
|
+
_context38.next = 6;
|
|
8537
8717
|
break;
|
|
8538
8718
|
}
|
|
8539
|
-
|
|
8719
|
+
_context38.next = 6;
|
|
8540
8720
|
return this.sendSlotManager.publishStream(mediaType, stream);
|
|
8541
8721
|
case 6:
|
|
8542
8722
|
this.emitPublishStateChangeEvent({
|
|
@@ -8547,11 +8727,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8547
8727
|
});
|
|
8548
8728
|
case 7:
|
|
8549
8729
|
case "end":
|
|
8550
|
-
return
|
|
8730
|
+
return _context38.stop();
|
|
8551
8731
|
}
|
|
8552
|
-
},
|
|
8732
|
+
}, _callee38, this);
|
|
8553
8733
|
}));
|
|
8554
|
-
function publishStream(
|
|
8734
|
+
function publishStream(_x38, _x39) {
|
|
8555
8735
|
return _publishStream.apply(this, arguments);
|
|
8556
8736
|
}
|
|
8557
8737
|
return publishStream;
|
|
@@ -8567,21 +8747,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8567
8747
|
}, {
|
|
8568
8748
|
key: "unpublishStream",
|
|
8569
8749
|
value: (function () {
|
|
8570
|
-
var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8571
|
-
return _regenerator.default.wrap(function
|
|
8572
|
-
while (1) switch (
|
|
8750
|
+
var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee39(mediaType, stream) {
|
|
8751
|
+
return _regenerator.default.wrap(function _callee39$(_context39) {
|
|
8752
|
+
while (1) switch (_context39.prev = _context39.next) {
|
|
8573
8753
|
case 0:
|
|
8574
8754
|
if (stream) {
|
|
8575
|
-
|
|
8755
|
+
_context39.next = 2;
|
|
8576
8756
|
break;
|
|
8577
8757
|
}
|
|
8578
|
-
return
|
|
8758
|
+
return _context39.abrupt("return");
|
|
8579
8759
|
case 2:
|
|
8580
8760
|
if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
|
|
8581
|
-
|
|
8761
|
+
_context39.next = 5;
|
|
8582
8762
|
break;
|
|
8583
8763
|
}
|
|
8584
|
-
|
|
8764
|
+
_context39.next = 5;
|
|
8585
8765
|
return this.sendSlotManager.unpublishStream(mediaType);
|
|
8586
8766
|
case 5:
|
|
8587
8767
|
this.emitPublishStateChangeEvent({
|
|
@@ -8592,11 +8772,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8592
8772
|
});
|
|
8593
8773
|
case 6:
|
|
8594
8774
|
case "end":
|
|
8595
|
-
return
|
|
8775
|
+
return _context39.stop();
|
|
8596
8776
|
}
|
|
8597
|
-
},
|
|
8777
|
+
}, _callee39, this);
|
|
8598
8778
|
}));
|
|
8599
|
-
function unpublishStream(
|
|
8779
|
+
function unpublishStream(_x40, _x41) {
|
|
8600
8780
|
return _unpublishStream.apply(this, arguments);
|
|
8601
8781
|
}
|
|
8602
8782
|
return unpublishStream;
|
|
@@ -8611,19 +8791,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8611
8791
|
}, {
|
|
8612
8792
|
key: "publishStreams",
|
|
8613
8793
|
value: (function () {
|
|
8614
|
-
var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8794
|
+
var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee40(streams) {
|
|
8615
8795
|
var _streams$screenShare, _streams$screenShare2, _streams$screenShare3, _streams$screenShare4, _streams$screenShare5, _streams$screenShare6;
|
|
8616
8796
|
var streamChecks, _i, _streamChecks, _streamChecks$_i, stream, name, floorRequestNeeded, _streams$screenShare7;
|
|
8617
|
-
return _regenerator.default.wrap(function
|
|
8618
|
-
while (1) switch (
|
|
8797
|
+
return _regenerator.default.wrap(function _callee40$(_context40) {
|
|
8798
|
+
while (1) switch (_context40.prev = _context40.next) {
|
|
8619
8799
|
case 0:
|
|
8620
8800
|
_loggerProxy.default.logger.info("Meeting:index#publishStreams --> called with: ".concat((0, _stringify.default)(streams)));
|
|
8621
8801
|
this.checkMediaConnection();
|
|
8622
8802
|
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
|
-
|
|
8803
|
+
_context40.next = 4;
|
|
8624
8804
|
break;
|
|
8625
8805
|
}
|
|
8626
|
-
return
|
|
8806
|
+
return _context40.abrupt("return");
|
|
8627
8807
|
case 4:
|
|
8628
8808
|
streamChecks = [{
|
|
8629
8809
|
stream: streams === null || streams === void 0 ? void 0 : streams.microphone,
|
|
@@ -8641,62 +8821,62 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8641
8821
|
_i = 0, _streamChecks = streamChecks;
|
|
8642
8822
|
case 6:
|
|
8643
8823
|
if (!(_i < _streamChecks.length)) {
|
|
8644
|
-
|
|
8824
|
+
_context40.next = 13;
|
|
8645
8825
|
break;
|
|
8646
8826
|
}
|
|
8647
8827
|
_streamChecks$_i = _streamChecks[_i], stream = _streamChecks$_i.stream, name = _streamChecks$_i.name;
|
|
8648
8828
|
if (!((stream === null || stream === void 0 ? void 0 : stream.readyState) === 'ended')) {
|
|
8649
|
-
|
|
8829
|
+
_context40.next = 10;
|
|
8650
8830
|
break;
|
|
8651
8831
|
}
|
|
8652
8832
|
throw new Error("Attempted to publish ".concat(name, " stream with ended readyState, correlationId=").concat(this.correlationId));
|
|
8653
8833
|
case 10:
|
|
8654
8834
|
_i++;
|
|
8655
|
-
|
|
8835
|
+
_context40.next = 6;
|
|
8656
8836
|
break;
|
|
8657
8837
|
case 13:
|
|
8658
8838
|
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
8839
|
if (!(this.isMultistream && (_streams$screenShare5 = streams.screenShare) !== null && _streams$screenShare5 !== void 0 && _streams$screenShare5.audio)) {
|
|
8660
|
-
|
|
8840
|
+
_context40.next = 18;
|
|
8661
8841
|
break;
|
|
8662
8842
|
}
|
|
8663
|
-
|
|
8843
|
+
_context40.next = 17;
|
|
8664
8844
|
return this.setLocalShareAudioStream(streams.screenShare.audio);
|
|
8665
8845
|
case 17:
|
|
8666
8846
|
floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
|
|
8667
8847
|
case 18:
|
|
8668
8848
|
if (!((_streams$screenShare6 = streams.screenShare) !== null && _streams$screenShare6 !== void 0 && _streams$screenShare6.video)) {
|
|
8669
|
-
|
|
8849
|
+
_context40.next = 22;
|
|
8670
8850
|
break;
|
|
8671
8851
|
}
|
|
8672
|
-
|
|
8852
|
+
_context40.next = 21;
|
|
8673
8853
|
return this.setLocalShareVideoStream((_streams$screenShare7 = streams.screenShare) === null || _streams$screenShare7 === void 0 ? void 0 : _streams$screenShare7.video);
|
|
8674
8854
|
case 21:
|
|
8675
8855
|
floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
|
|
8676
8856
|
case 22:
|
|
8677
8857
|
if (!streams.microphone) {
|
|
8678
|
-
|
|
8858
|
+
_context40.next = 25;
|
|
8679
8859
|
break;
|
|
8680
8860
|
}
|
|
8681
|
-
|
|
8861
|
+
_context40.next = 25;
|
|
8682
8862
|
return this.setLocalAudioStream(streams.microphone);
|
|
8683
8863
|
case 25:
|
|
8684
8864
|
if (!streams.camera) {
|
|
8685
|
-
|
|
8865
|
+
_context40.next = 28;
|
|
8686
8866
|
break;
|
|
8687
8867
|
}
|
|
8688
|
-
|
|
8868
|
+
_context40.next = 28;
|
|
8689
8869
|
return this.setLocalVideoStream(streams.camera);
|
|
8690
8870
|
case 28:
|
|
8691
8871
|
if (this.isMultistream) {
|
|
8692
|
-
|
|
8872
|
+
_context40.next = 31;
|
|
8693
8873
|
break;
|
|
8694
8874
|
}
|
|
8695
|
-
|
|
8875
|
+
_context40.next = 31;
|
|
8696
8876
|
return this.updateTranscodedMediaConnection();
|
|
8697
8877
|
case 31:
|
|
8698
8878
|
if (!floorRequestNeeded) {
|
|
8699
|
-
|
|
8879
|
+
_context40.next = 37;
|
|
8700
8880
|
break;
|
|
8701
8881
|
}
|
|
8702
8882
|
this.localShareInstanceId = _uuid.default.v4();
|
|
@@ -8720,15 +8900,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8720
8900
|
// we're sending the http request to Locus to request the screen share floor
|
|
8721
8901
|
// only after the SDP update, because that's how it's always been done for transcoded meetings
|
|
8722
8902
|
// and also if sharing from the start, we need confluence to have been created
|
|
8723
|
-
|
|
8903
|
+
_context40.next = 37;
|
|
8724
8904
|
return this.enqueueScreenShareFloorRequest();
|
|
8725
8905
|
case 37:
|
|
8726
8906
|
case "end":
|
|
8727
|
-
return
|
|
8907
|
+
return _context40.stop();
|
|
8728
8908
|
}
|
|
8729
|
-
},
|
|
8909
|
+
}, _callee40, this);
|
|
8730
8910
|
}));
|
|
8731
|
-
function publishStreams(
|
|
8911
|
+
function publishStreams(_x42) {
|
|
8732
8912
|
return _publishStreams.apply(this, arguments);
|
|
8733
8913
|
}
|
|
8734
8914
|
return publishStreams;
|
|
@@ -8743,10 +8923,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8743
8923
|
}, {
|
|
8744
8924
|
key: "unpublishStreams",
|
|
8745
8925
|
value: (function () {
|
|
8746
|
-
var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8926
|
+
var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee41(streams) {
|
|
8747
8927
|
var promises, _iterator, _step, stream;
|
|
8748
|
-
return _regenerator.default.wrap(function
|
|
8749
|
-
while (1) switch (
|
|
8928
|
+
return _regenerator.default.wrap(function _callee41$(_context41) {
|
|
8929
|
+
while (1) switch (_context41.prev = _context41.next) {
|
|
8750
8930
|
case 0:
|
|
8751
8931
|
_loggerProxy.default.logger.info("Meeting:index#unpublishStreams --> called with: ".concat((0, _stringify.default)(streams)));
|
|
8752
8932
|
this.checkMediaConnection();
|
|
@@ -8778,7 +8958,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8778
8958
|
if (!this.isMultistream) {
|
|
8779
8959
|
promises.push(this.updateTranscodedMediaConnection());
|
|
8780
8960
|
}
|
|
8781
|
-
|
|
8961
|
+
_context41.next = 8;
|
|
8782
8962
|
return _promise.default.all(promises);
|
|
8783
8963
|
case 8:
|
|
8784
8964
|
// we're allowing for the SDK to support just audio share as well
|
|
@@ -8799,11 +8979,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8799
8979
|
}
|
|
8800
8980
|
case 9:
|
|
8801
8981
|
case "end":
|
|
8802
|
-
return
|
|
8982
|
+
return _context41.stop();
|
|
8803
8983
|
}
|
|
8804
|
-
},
|
|
8984
|
+
}, _callee41, this);
|
|
8805
8985
|
}));
|
|
8806
|
-
function unpublishStreams(
|
|
8986
|
+
function unpublishStreams(_x43) {
|
|
8807
8987
|
return _unpublishStreams.apply(this, arguments);
|
|
8808
8988
|
}
|
|
8809
8989
|
return unpublishStreams;
|
|
@@ -8860,64 +9040,6 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8860
9040
|
}
|
|
8861
9041
|
return _promise.default.resolve();
|
|
8862
9042
|
}
|
|
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
9043
|
}]);
|
|
8922
9044
|
return Meeting;
|
|
8923
9045
|
}(_webexCore.StatelessWebexPlugin);
|