@webex/plugin-meetings 3.7.0-next.6 → 3.7.0-next.61
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/join-forbidden-error.js +52 -0
- package/dist/common/errors/join-forbidden-error.js.map +1 -0
- 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 +46 -5
- 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 +14 -3
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/selfUtils.js +35 -17
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/meeting/brbState.js +167 -0
- package/dist/meeting/brbState.js.map +1 -0
- package/dist/meeting/in-meeting-actions.js +2 -0
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +774 -649
- 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/muteState.js +1 -6
- package/dist/meeting/muteState.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 +96 -33
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +1 -1
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/index.js +107 -55
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +2 -0
- package/dist/meetings/meetings.types.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/metrics/constants.js +3 -2
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/remoteMedia.js +30 -15
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +24 -0
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/reachability/index.js +31 -3
- package/dist/reachability/index.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/join-forbidden-error.d.ts +15 -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 +38 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/locus-info/index.d.ts +2 -1
- package/dist/types/meeting/brbState.d.ts +54 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +2 -0
- package/dist/types/meeting/index.d.ts +21 -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 +27 -4
- package/dist/types/meetings/index.d.ts +19 -1
- package/dist/types/meetings/meetings.types.d.ts +8 -0
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/member/types.d.ts +7 -0
- package/dist/types/metrics/constants.d.ts +2 -1
- package/dist/types/multistream/sendSlotManager.d.ts +8 -1
- package/dist/types/reachability/index.d.ts +9 -1
- package/dist/webinar/index.js +354 -3
- 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-forbidden-error.ts +26 -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 +43 -3
- package/src/index.ts +5 -3
- package/src/locus-info/index.ts +20 -3
- package/src/locus-info/selfUtils.ts +24 -6
- package/src/meeting/brbState.ts +169 -0
- package/src/meeting/in-meeting-actions.ts +4 -0
- package/src/meeting/index.ts +256 -82
- package/src/meeting/locusMediaRequest.ts +7 -0
- package/src/meeting/muteState.ts +1 -6
- 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 +74 -11
- package/src/meeting-info/utilv2.ts +3 -1
- package/src/meetings/index.ts +79 -20
- package/src/meetings/meetings.types.ts +10 -0
- 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/metrics/constants.ts +2 -1
- package/src/multistream/remoteMedia.ts +28 -15
- package/src/multistream/sendSlotManager.ts +31 -0
- package/src/reachability/index.ts +29 -1
- package/src/roap/index.ts +10 -8
- package/src/webinar/index.ts +197 -3
- package/test/unit/spec/annotation/index.ts +46 -1
- package/test/unit/spec/locus-info/index.js +292 -60
- package/test/unit/spec/locus-info/selfConstant.js +7 -0
- package/test/unit/spec/locus-info/selfUtils.js +101 -1
- package/test/unit/spec/meeting/brbState.ts +114 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +2 -0
- package/test/unit/spec/meeting/index.js +733 -106
- package/test/unit/spec/meeting/muteState.js +0 -24
- package/test/unit/spec/meeting/utils.js +22 -19
- package/test/unit/spec/meeting-info/meetinginfov2.js +46 -4
- package/test/unit/spec/meeting-info/utilv2.js +17 -0
- package/test/unit/spec/meetings/index.js +159 -18
- package/test/unit/spec/meetings/utils.js +10 -0
- package/test/unit/spec/member/util.js +52 -11
- package/test/unit/spec/multistream/remoteMedia.ts +11 -7
- package/test/unit/spec/reachability/index.ts +120 -10
- package/test/unit/spec/roap/index.ts +47 -0
- package/test/unit/spec/webinar/index.ts +457 -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,10 @@ 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 _brbState = require("./brbState");
|
|
92
|
+
var _multistreamNotSupportedError = _interopRequireDefault(require("../common/errors/multistream-not-supported-error"));
|
|
93
|
+
var _joinForbiddenError = _interopRequireDefault(require("../common/errors/join-forbidden-error"));
|
|
91
94
|
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
95
|
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
96
|
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; }
|
|
@@ -507,6 +510,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
507
510
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "turnServerUsed", void 0);
|
|
508
511
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "areVoiceaEventsSetup", false);
|
|
509
512
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "isMoveToInProgress", false);
|
|
513
|
+
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "brbState", void 0);
|
|
510
514
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "voiceaListenerCallbacks", (0, _defineProperty3.default)((0, _defineProperty3.default)((0, _defineProperty3.default)((0, _defineProperty3.default)({}, _internalPluginVoicea.EVENT_TRIGGERS.VOICEA_ANNOUNCEMENT, function (payload) {
|
|
511
515
|
_this.transcription.languageOptions = payload;
|
|
512
516
|
_loggerProxy.default.logger.debug("".concat(_util.default.getScopeLog({
|
|
@@ -567,8 +571,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
567
571
|
if (
|
|
568
572
|
// @ts-ignore - config coming from registerPlugin
|
|
569
573
|
(_this.config.receiveReactions || options.receiveReactions) && _this.isReactionsSupported()) {
|
|
570
|
-
var
|
|
571
|
-
|
|
574
|
+
var member = _this.members.membersCollection.get(e.data.sender.participantId);
|
|
575
|
+
if (!member) {
|
|
576
|
+
// @ts-ignore -- fix type
|
|
577
|
+
_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."));
|
|
578
|
+
break;
|
|
579
|
+
}
|
|
580
|
+
var name = member.name;
|
|
572
581
|
var processedReaction = {
|
|
573
582
|
reaction: e.data.reaction,
|
|
574
583
|
sender: {
|
|
@@ -674,7 +683,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
674
683
|
* @returns {undefined}
|
|
675
684
|
*/
|
|
676
685
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "roapMessageReceived", function (roapMessage) {
|
|
677
|
-
var mediaServer = _util3.default.getMediaServer(roapMessage.sdp);
|
|
686
|
+
var mediaServer = roapMessage.messageType === 'ANSWER' ? _util3.default.getMediaServer(roapMessage.sdp) : undefined;
|
|
687
|
+
if (_this.isMultistream && mediaServer && mediaServer !== 'homer') {
|
|
688
|
+
throw new _multistreamNotSupportedError.default("Client asked for multistream backend (Homer), but got ".concat(mediaServer, " instead"));
|
|
689
|
+
}
|
|
678
690
|
_this.mediaProperties.webrtcMediaConnection.roapMessageReceived(roapMessage);
|
|
679
691
|
if (mediaServer) {
|
|
680
692
|
_this.mediaProperties.webrtcMediaConnection.mediaServer = mediaServer;
|
|
@@ -769,15 +781,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
769
781
|
}), {
|
|
770
782
|
logText: "".concat(LOG_HEADER, " Roap Offer")
|
|
771
783
|
}).catch(function (error) {
|
|
784
|
+
var multistreamNotSupported = error instanceof _multistreamNotSupportedError.default;
|
|
785
|
+
|
|
772
786
|
// @ts-ignore
|
|
773
787
|
_this.webex.internal.newMetrics.submitClientEvent({
|
|
774
788
|
name: 'client.media-engine.remote-sdp-received',
|
|
775
789
|
payload: {
|
|
776
|
-
canProceed:
|
|
790
|
+
canProceed: multistreamNotSupported,
|
|
777
791
|
errors: [
|
|
778
792
|
// @ts-ignore
|
|
779
793
|
_this.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
|
|
780
|
-
clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
|
|
794
|
+
clientErrorCode: multistreamNotSupported ? _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MULTISTREAM_NOT_AVAILABLE_CLIENT_CODE : _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
|
|
781
795
|
})]
|
|
782
796
|
},
|
|
783
797
|
options: {
|
|
@@ -785,7 +799,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
785
799
|
rawError: error
|
|
786
800
|
}
|
|
787
801
|
});
|
|
788
|
-
_this.deferSDPAnswer.reject(
|
|
802
|
+
_this.deferSDPAnswer.reject(error);
|
|
789
803
|
clearTimeout(_this.sdpResponseTimer);
|
|
790
804
|
_this.sdpResponseTimer = undefined;
|
|
791
805
|
});
|
|
@@ -1027,6 +1041,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1027
1041
|
options.data.intervalMetadata.peerReflexiveIP =
|
|
1028
1042
|
// @ts-ignore
|
|
1029
1043
|
((_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;
|
|
1044
|
+
var members = _this.getMembers().membersCollection.members;
|
|
1045
|
+
|
|
1046
|
+
// Count members that are in the meeting
|
|
1047
|
+
options.data.intervalMetadata.meetingUserCount = (0, _values.default)(members).filter(function (member) {
|
|
1048
|
+
return member.isInMeeting;
|
|
1049
|
+
}).length;
|
|
1050
|
+
|
|
1030
1051
|
// @ts-ignore
|
|
1031
1052
|
_this.webex.internal.newMetrics.submitMQE({
|
|
1032
1053
|
name: 'client.mediaquality.event',
|
|
@@ -1260,12 +1281,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1260
1281
|
* @returns {undefined}
|
|
1261
1282
|
*/
|
|
1262
1283
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleShareVideoStreamMuteStateChange", function (muted) {
|
|
1263
|
-
var _this$statsAnalyzer;
|
|
1284
|
+
var _this$statsAnalyzer, _this$mediaProperties3, _this$mediaProperties4;
|
|
1264
1285
|
_loggerProxy.default.logger.log("Meeting:index#handleShareVideoStreamMuteStateChange --> Share video stream mute state changed to muted ".concat(muted));
|
|
1265
1286
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE, {
|
|
1266
1287
|
correlationId: _this.correlationId,
|
|
1267
1288
|
muted: muted,
|
|
1268
|
-
encoderImplementation: (_this$statsAnalyzer = _this.statsAnalyzer) === null || _this$statsAnalyzer === void 0 ? void 0 : _this$statsAnalyzer.shareVideoEncoderImplementation
|
|
1289
|
+
encoderImplementation: (_this$statsAnalyzer = _this.statsAnalyzer) === null || _this$statsAnalyzer === void 0 ? void 0 : _this$statsAnalyzer.shareVideoEncoderImplementation,
|
|
1290
|
+
// TypeScript 4 does not recognize the `displaySurface` property. Instead of upgrading the
|
|
1291
|
+
// SDK to TypeScript 5, which may affect other packages, use bracket notation for now, since
|
|
1292
|
+
// all we're doing here is adding metrics.
|
|
1293
|
+
// eslint-disable-next-line dot-notation
|
|
1294
|
+
displaySurface: (_this$mediaProperties3 = _this.mediaProperties) === null || _this$mediaProperties3 === void 0 ? void 0 : (_this$mediaProperties4 = _this$mediaProperties3.shareVideoStream) === null || _this$mediaProperties4 === void 0 ? void 0 : _this$mediaProperties4.getSettings()['displaySurface'],
|
|
1295
|
+
isMultistream: _this.isMultistream
|
|
1269
1296
|
});
|
|
1270
1297
|
});
|
|
1271
1298
|
/**
|
|
@@ -1344,6 +1371,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1344
1371
|
_this.stopTranscription();
|
|
1345
1372
|
_this.transcription = undefined;
|
|
1346
1373
|
}
|
|
1374
|
+
_this.annotation.deregisterEvents();
|
|
1375
|
+
|
|
1376
|
+
// @ts-ignore - fix types
|
|
1377
|
+
_this.webex.internal.llm.off('event:relay.event', _this.processRelayEvent);
|
|
1347
1378
|
});
|
|
1348
1379
|
/**
|
|
1349
1380
|
* starts keepAlives being sent
|
|
@@ -1369,10 +1400,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1369
1400
|
_loggerProxy.default.logger.warn('Meeting:index#startKeepAlive --> keepAlive not started: keepAliveSecs <= 1');
|
|
1370
1401
|
return;
|
|
1371
1402
|
}
|
|
1372
|
-
var keepAliveUrl = _this.joinedWith.keepAliveUrl;
|
|
1373
1403
|
var keepAliveInterval = (_this.joinedWith.keepAliveSecs - 1) * 750; // taken from UCF
|
|
1374
1404
|
|
|
1375
1405
|
_this.keepAliveTimerId = setInterval(function () {
|
|
1406
|
+
var keepAliveUrl = _this.joinedWith.keepAliveUrl;
|
|
1376
1407
|
_this.meetingRequest.keepAlive({
|
|
1377
1408
|
keepAliveUrl: keepAliveUrl
|
|
1378
1409
|
}).catch(function (error) {
|
|
@@ -1520,15 +1551,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1520
1551
|
* @memberof Meeting
|
|
1521
1552
|
*/
|
|
1522
1553
|
// @ts-ignore
|
|
1523
|
-
_this.webinar = new _webinar.default({
|
|
1554
|
+
_this.webinar = new _webinar.default({
|
|
1555
|
+
meetingId: _this.id
|
|
1556
|
+
}, {
|
|
1524
1557
|
parent: _this.webex
|
|
1525
1558
|
});
|
|
1526
1559
|
/**
|
|
1527
1560
|
* helper class for managing receive slots (for multistream media connections)
|
|
1528
1561
|
*/
|
|
1529
1562
|
_this.receiveSlotManager = new _receiveSlotManager.ReceiveSlotManager(function (mediaType) {
|
|
1530
|
-
var _this$
|
|
1531
|
-
if (!((_this$
|
|
1563
|
+
var _this$mediaProperties5;
|
|
1564
|
+
if (!((_this$mediaProperties5 = _this.mediaProperties) !== null && _this$mediaProperties5 !== void 0 && _this$mediaProperties5.webrtcMediaConnection)) {
|
|
1532
1565
|
return _promise.default.reject(new Error('Webrtc media connection is missing'));
|
|
1533
1566
|
}
|
|
1534
1567
|
return _this.mediaProperties.webrtcMediaConnection.createReceiveSlot(mediaType);
|
|
@@ -2427,19 +2460,40 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2427
2460
|
}
|
|
2428
2461
|
throw new _permission.default();
|
|
2429
2462
|
case 21:
|
|
2430
|
-
if (!(_context5.t0 instanceof _meetingInfoV.
|
|
2431
|
-
_context5.next =
|
|
2463
|
+
if (!(_context5.t0 instanceof _meetingInfoV.MeetingInfoV2JoinWebinarError)) {
|
|
2464
|
+
_context5.next = 29;
|
|
2432
2465
|
break;
|
|
2433
2466
|
}
|
|
2434
2467
|
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.WEBINAR_REGISTRATION;
|
|
2468
|
+
if (_constants.WEBINAR_ERROR_WEBCAST.includes(_context5.t0.wbxAppApiCode)) {
|
|
2469
|
+
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.NEED_JOIN_WITH_WEBCAST;
|
|
2470
|
+
} else if (_constants.WEBINAR_ERROR_REGISTRATIONID.includes(_context5.t0.wbxAppApiCode)) {
|
|
2471
|
+
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.WEBINAR_NEED_REGISTRATIONID;
|
|
2472
|
+
}
|
|
2435
2473
|
this.meetingInfoFailureCode = _context5.t0.wbxAppApiCode;
|
|
2436
2474
|
if (_context5.t0.meetingInfo) {
|
|
2437
2475
|
this.meetingInfo = _context5.t0.meetingInfo;
|
|
2438
2476
|
}
|
|
2439
|
-
throw new
|
|
2440
|
-
case
|
|
2477
|
+
throw new _joinWebinarError.default();
|
|
2478
|
+
case 29:
|
|
2479
|
+
if (!(_context5.t0 instanceof _meetingInfoV.MeetingInfoV2JoinForbiddenError)) {
|
|
2480
|
+
_context5.next = 37;
|
|
2481
|
+
break;
|
|
2482
|
+
}
|
|
2483
|
+
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.JOIN_FORBIDDEN;
|
|
2484
|
+
this.meetingInfoFailureCode = _context5.t0.wbxAppApiCode;
|
|
2485
|
+
if (_context5.t0.meetingInfo) {
|
|
2486
|
+
this.meetingInfo = _context5.t0.meetingInfo;
|
|
2487
|
+
}
|
|
2488
|
+
|
|
2489
|
+
// Handle the case where user hasn't reached Join Before Host (JBH) time (error code 403003)
|
|
2490
|
+
if (_constants.JOIN_BEFORE_HOST === _context5.t0.wbxAppApiCode) {
|
|
2491
|
+
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.NOT_REACH_JBH;
|
|
2492
|
+
}
|
|
2493
|
+
throw new _joinForbiddenError.default(this.meetingInfoFailureReason, _context5.t0);
|
|
2494
|
+
case 37:
|
|
2441
2495
|
if (!(_context5.t0 instanceof _meetingInfoV.MeetingInfoV2PasswordError)) {
|
|
2442
|
-
_context5.next =
|
|
2496
|
+
_context5.next = 49;
|
|
2443
2497
|
break;
|
|
2444
2498
|
}
|
|
2445
2499
|
_loggerProxy.default.logger.info( // @ts-ignore
|
|
@@ -2454,16 +2508,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2454
2508
|
this.passwordStatus = _constants.PASSWORD_STATUS.REQUIRED;
|
|
2455
2509
|
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.WRONG_PASSWORD;
|
|
2456
2510
|
if (!this.requiredCaptcha) {
|
|
2457
|
-
_context5.next =
|
|
2511
|
+
_context5.next = 46;
|
|
2458
2512
|
break;
|
|
2459
2513
|
}
|
|
2460
|
-
_context5.next =
|
|
2514
|
+
_context5.next = 46;
|
|
2461
2515
|
return this.refreshCaptcha();
|
|
2462
|
-
case
|
|
2516
|
+
case 46:
|
|
2463
2517
|
throw new _passwordError.default();
|
|
2464
|
-
case
|
|
2518
|
+
case 49:
|
|
2465
2519
|
if (!(_context5.t0 instanceof _meetingInfoV.MeetingInfoV2CaptchaError)) {
|
|
2466
|
-
_context5.next =
|
|
2520
|
+
_context5.next = 58;
|
|
2467
2521
|
break;
|
|
2468
2522
|
}
|
|
2469
2523
|
_loggerProxy.default.logger.info( // @ts-ignore
|
|
@@ -2475,10 +2529,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2475
2529
|
}
|
|
2476
2530
|
this.requiredCaptcha = _context5.t0.captchaInfo;
|
|
2477
2531
|
throw new _captchaError.default();
|
|
2478
|
-
case
|
|
2532
|
+
case 58:
|
|
2479
2533
|
this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.OTHER;
|
|
2480
2534
|
throw _context5.t0;
|
|
2481
|
-
case
|
|
2535
|
+
case 60:
|
|
2482
2536
|
case "end":
|
|
2483
2537
|
return _context5.stop();
|
|
2484
2538
|
}
|
|
@@ -3311,7 +3365,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3311
3365
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_MEDIA_SHARES, /*#__PURE__*/function () {
|
|
3312
3366
|
var _ref27 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(payload) {
|
|
3313
3367
|
var _payload$previous, _payload$previous2;
|
|
3314
|
-
var _payload$current, contentShare, whiteboardShare, previousContentShare, previousWhiteboardShare, newShareStatus, oldShareStatus, sendStartedSharingRemote, _this14$mediaProperti;
|
|
3368
|
+
var _payload$current, contentShare, whiteboardShare, previousContentShare, previousWhiteboardShare, newShareStatus, _this14$locusInfo, _this14$locusInfo$inf, _this14$webinar, oldShareStatus, sendStartedSharingRemote, _this14$mediaProperti;
|
|
3315
3369
|
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
3316
3370
|
while (1) switch (_context8.prev = _context8.next) {
|
|
3317
3371
|
case 0:
|
|
@@ -3319,7 +3373,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3319
3373
|
previousContentShare = (_payload$previous = payload.previous) === null || _payload$previous === void 0 ? void 0 : _payload$previous.content;
|
|
3320
3374
|
previousWhiteboardShare = (_payload$previous2 = payload.previous) === null || _payload$previous2 === void 0 ? void 0 : _payload$previous2.whiteboard;
|
|
3321
3375
|
_this14.triggerAnnotationInfoEvent(contentShare, previousContentShare);
|
|
3322
|
-
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))) {
|
|
3376
|
+
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))) {
|
|
3323
3377
|
_context8.next = 6;
|
|
3324
3378
|
break;
|
|
3325
3379
|
}
|
|
@@ -3345,7 +3399,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3345
3399
|
// It does not matter who requested to share the whiteboard, everyone gets the same view
|
|
3346
3400
|
else if (whiteboardShare.disposition === _constants.FLOOR_ACTION.GRANTED) {
|
|
3347
3401
|
// WHITEBOARD - sharing whiteboard
|
|
3348
|
-
|
|
3402
|
+
// Webinar attendee should receive whiteboard as remote share
|
|
3403
|
+
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;
|
|
3349
3404
|
}
|
|
3350
3405
|
// or if content share is either released or null and whiteboard share is either released or null, no one is sharing
|
|
3351
3406
|
else if ((previousContentShare && contentShare.disposition === _constants.FLOOR_ACTION.RELEASED || contentShare.disposition === null) && (previousWhiteboardShare && whiteboardShare.disposition === _constants.FLOOR_ACTION.RELEASED || whiteboardShare.disposition === null)) {
|
|
@@ -3579,7 +3634,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3579
3634
|
value: function setUpLocusResourcesListener() {
|
|
3580
3635
|
var _this17 = this;
|
|
3581
3636
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.LINKS_RESOURCES, function (payload) {
|
|
3582
|
-
|
|
3637
|
+
if (payload) {
|
|
3638
|
+
_this17.webinar.updateWebcastUrl(payload);
|
|
3639
|
+
_triggerProxy.default.trigger(_this17, {
|
|
3640
|
+
file: 'meeting/index',
|
|
3641
|
+
function: 'setUpLocusInfoMeetingInfoListener'
|
|
3642
|
+
}, _constants.EVENT_TRIGGERS.MEETING_RESOURCE_LINKS_UPDATE, {
|
|
3643
|
+
payload: payload
|
|
3644
|
+
});
|
|
3645
|
+
}
|
|
3583
3646
|
});
|
|
3584
3647
|
}
|
|
3585
3648
|
|
|
@@ -3845,6 +3908,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3845
3908
|
_this20.setSendNamedMediaGroup(_internalMediaCore.MediaType.AudioMain);
|
|
3846
3909
|
}
|
|
3847
3910
|
});
|
|
3911
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_MEETING_BRB_CHANGED, function (payload) {
|
|
3912
|
+
var _this20$brbState, _payload$brb;
|
|
3913
|
+
(_this20$brbState = _this20.brbState) === null || _this20$brbState === void 0 ? void 0 : _this20$brbState.handleServerBrbUpdate(payload === null || payload === void 0 ? void 0 : (_payload$brb = payload.brb) === null || _payload$brb === void 0 ? void 0 : _payload$brb.enabled);
|
|
3914
|
+
_triggerProxy.default.trigger(_this20, {
|
|
3915
|
+
file: 'meeting/index',
|
|
3916
|
+
function: 'setUpLocusInfoSelfListener'
|
|
3917
|
+
}, _constants.EVENT_TRIGGERS.MEETING_SELF_BRB_UPDATE, {
|
|
3918
|
+
payload: payload
|
|
3919
|
+
});
|
|
3920
|
+
});
|
|
3848
3921
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ROLES_CHANGED, function (payload) {
|
|
3849
3922
|
var _payload$newRoles, _payload$newRoles2, _payload$newRoles3;
|
|
3850
3923
|
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));
|
|
@@ -4043,6 +4116,51 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4043
4116
|
return this.members.admitMembers(memberIds, locusUrls);
|
|
4044
4117
|
}
|
|
4045
4118
|
|
|
4119
|
+
/**
|
|
4120
|
+
* Manages be right back status updates for the current participant.
|
|
4121
|
+
*
|
|
4122
|
+
* @param {boolean} enabled - Indicates whether the user enabled brb or not.
|
|
4123
|
+
* @returns {Promise<void>} resolves when the brb status is updated or does nothing if not in a multistream meeting.
|
|
4124
|
+
* @throws {Error} - Throws an error if the request fails.
|
|
4125
|
+
*/
|
|
4126
|
+
}, {
|
|
4127
|
+
key: "beRightBack",
|
|
4128
|
+
value: (function () {
|
|
4129
|
+
var _beRightBack = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(enabled) {
|
|
4130
|
+
var errorMessage, error, _errorMessage, _error;
|
|
4131
|
+
return _regenerator.default.wrap(function _callee11$(_context11) {
|
|
4132
|
+
while (1) switch (_context11.prev = _context11.next) {
|
|
4133
|
+
case 0:
|
|
4134
|
+
if (this.isMultistream) {
|
|
4135
|
+
_context11.next = 5;
|
|
4136
|
+
break;
|
|
4137
|
+
}
|
|
4138
|
+
errorMessage = 'Meeting:index#beRightBack --> Not a multistream meeting';
|
|
4139
|
+
error = new Error(errorMessage);
|
|
4140
|
+
_loggerProxy.default.logger.error(error);
|
|
4141
|
+
return _context11.abrupt("return", _promise.default.reject(error));
|
|
4142
|
+
case 5:
|
|
4143
|
+
if (this.mediaProperties.webrtcMediaConnection) {
|
|
4144
|
+
_context11.next = 10;
|
|
4145
|
+
break;
|
|
4146
|
+
}
|
|
4147
|
+
_errorMessage = 'Meeting:index#beRightBack --> WebRTC media connection is not defined';
|
|
4148
|
+
_error = new Error(_errorMessage);
|
|
4149
|
+
_loggerProxy.default.logger.error(_error);
|
|
4150
|
+
return _context11.abrupt("return", _promise.default.reject(_error));
|
|
4151
|
+
case 10:
|
|
4152
|
+
return _context11.abrupt("return", this.brbState.enable(enabled, this.sendSlotManager));
|
|
4153
|
+
case 11:
|
|
4154
|
+
case "end":
|
|
4155
|
+
return _context11.stop();
|
|
4156
|
+
}
|
|
4157
|
+
}, _callee11, this);
|
|
4158
|
+
}));
|
|
4159
|
+
function beRightBack(_x11) {
|
|
4160
|
+
return _beRightBack.apply(this, arguments);
|
|
4161
|
+
}
|
|
4162
|
+
return beRightBack;
|
|
4163
|
+
}()
|
|
4046
4164
|
/**
|
|
4047
4165
|
* Remove the member from the meeting, boot them
|
|
4048
4166
|
* @param {String} memberId
|
|
@@ -4050,6 +4168,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4050
4168
|
* @public
|
|
4051
4169
|
* @memberof Meeting
|
|
4052
4170
|
*/
|
|
4171
|
+
)
|
|
4053
4172
|
}, {
|
|
4054
4173
|
key: "remove",
|
|
4055
4174
|
value: function remove(memberId) {
|
|
@@ -4247,6 +4366,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4247
4366
|
waitingForOthersToJoin: _util2.default.waitingForOthersToJoin(this.userDisplayHints),
|
|
4248
4367
|
canSendReactions: _util2.default.canSendReactions(this.inMeetingActions.canSendReactions, this.userDisplayHints),
|
|
4249
4368
|
canManageBreakout: _util2.default.canManageBreakout(this.userDisplayHints),
|
|
4369
|
+
canStartBreakout: _util2.default.canStartBreakout(this.userDisplayHints),
|
|
4250
4370
|
canBroadcastMessageToBreakout: _util2.default.canBroadcastMessageToBreakout(this.userDisplayHints, this.selfUserPolicies),
|
|
4251
4371
|
canAdmitLobbyToBreakout: _util2.default.canAdmitLobbyToBreakout(this.userDisplayHints),
|
|
4252
4372
|
isBreakoutPreassignmentsEnabled: _util2.default.isBreakoutPreassignmentsEnabled(this.userDisplayHints),
|
|
@@ -4526,8 +4646,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4526
4646
|
value: function setLogUploadTimer() {
|
|
4527
4647
|
var _this23 = this;
|
|
4528
4648
|
// 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
|
|
4529
|
-
var LOG_UPLOAD_INTERVALS = [0.1,
|
|
4530
|
-
|
|
4649
|
+
var LOG_UPLOAD_INTERVALS = [0.1, 15, 30, 60]; // in minutes
|
|
4650
|
+
|
|
4651
|
+
var delay = 1000 * 60 *
|
|
4531
4652
|
// @ts-ignore - config coming from registerPlugin
|
|
4532
4653
|
this.config.logUploadIntervalMultiplicationFactor * LOG_UPLOAD_INTERVALS[this.logUploadIntervalIndex];
|
|
4533
4654
|
if (this.logUploadIntervalIndex < LOG_UPLOAD_INTERVALS.length - 1) {
|
|
@@ -4610,10 +4731,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4610
4731
|
key: "closeRemoteStreams",
|
|
4611
4732
|
value: function closeRemoteStreams() {
|
|
4612
4733
|
var _this24 = this;
|
|
4613
|
-
var _this$
|
|
4614
|
-
remoteAudioStream = _this$
|
|
4615
|
-
remoteVideoStream = _this$
|
|
4616
|
-
remoteShareStream = _this$
|
|
4734
|
+
var _this$mediaProperties6 = this.mediaProperties,
|
|
4735
|
+
remoteAudioStream = _this$mediaProperties6.remoteAudioStream,
|
|
4736
|
+
remoteVideoStream = _this$mediaProperties6.remoteVideoStream,
|
|
4737
|
+
remoteShareStream = _this$mediaProperties6.remoteShareStream;
|
|
4617
4738
|
|
|
4618
4739
|
/**
|
|
4619
4740
|
* Triggers an event to the developer
|
|
@@ -4657,11 +4778,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4657
4778
|
}, {
|
|
4658
4779
|
key: "setLocalAudioStream",
|
|
4659
4780
|
value: (function () {
|
|
4660
|
-
var _setLocalAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
4781
|
+
var _setLocalAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12(localStream) {
|
|
4661
4782
|
var _this$audio2;
|
|
4662
4783
|
var oldStream;
|
|
4663
|
-
return _regenerator.default.wrap(function
|
|
4664
|
-
while (1) switch (
|
|
4784
|
+
return _regenerator.default.wrap(function _callee12$(_context12) {
|
|
4785
|
+
while (1) switch (_context12.prev = _context12.next) {
|
|
4665
4786
|
case 0:
|
|
4666
4787
|
oldStream = this.mediaProperties.audioStream;
|
|
4667
4788
|
oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localAudioStreamMuteStateHandler);
|
|
@@ -4675,21 +4796,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4675
4796
|
localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localAudioStreamMuteStateHandler);
|
|
4676
4797
|
localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
|
|
4677
4798
|
if (!(!this.isMultistream || !localStream)) {
|
|
4678
|
-
|
|
4799
|
+
_context12.next = 12;
|
|
4679
4800
|
break;
|
|
4680
4801
|
}
|
|
4681
|
-
|
|
4802
|
+
_context12.next = 12;
|
|
4682
4803
|
return this.unpublishStream(_internalMediaCore.MediaType.AudioMain, oldStream);
|
|
4683
4804
|
case 12:
|
|
4684
|
-
|
|
4805
|
+
_context12.next = 14;
|
|
4685
4806
|
return this.publishStream(_internalMediaCore.MediaType.AudioMain, this.mediaProperties.audioStream);
|
|
4686
4807
|
case 14:
|
|
4687
4808
|
case "end":
|
|
4688
|
-
return
|
|
4809
|
+
return _context12.stop();
|
|
4689
4810
|
}
|
|
4690
|
-
},
|
|
4811
|
+
}, _callee12, this);
|
|
4691
4812
|
}));
|
|
4692
|
-
function setLocalAudioStream(
|
|
4813
|
+
function setLocalAudioStream(_x12) {
|
|
4693
4814
|
return _setLocalAudioStream.apply(this, arguments);
|
|
4694
4815
|
}
|
|
4695
4816
|
return setLocalAudioStream;
|
|
@@ -4705,11 +4826,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4705
4826
|
}, {
|
|
4706
4827
|
key: "setLocalVideoStream",
|
|
4707
4828
|
value: (function () {
|
|
4708
|
-
var _setLocalVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
4829
|
+
var _setLocalVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13(localStream) {
|
|
4709
4830
|
var _this$video2;
|
|
4710
4831
|
var oldStream;
|
|
4711
|
-
return _regenerator.default.wrap(function
|
|
4712
|
-
while (1) switch (
|
|
4832
|
+
return _regenerator.default.wrap(function _callee13$(_context13) {
|
|
4833
|
+
while (1) switch (_context13.prev = _context13.next) {
|
|
4713
4834
|
case 0:
|
|
4714
4835
|
oldStream = this.mediaProperties.videoStream;
|
|
4715
4836
|
oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localVideoStreamMuteStateHandler);
|
|
@@ -4723,21 +4844,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4723
4844
|
localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localVideoStreamMuteStateHandler);
|
|
4724
4845
|
localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
|
|
4725
4846
|
if (!(!this.isMultistream || !localStream)) {
|
|
4726
|
-
|
|
4847
|
+
_context13.next = 12;
|
|
4727
4848
|
break;
|
|
4728
4849
|
}
|
|
4729
|
-
|
|
4850
|
+
_context13.next = 12;
|
|
4730
4851
|
return this.unpublishStream(_internalMediaCore.MediaType.VideoMain, oldStream);
|
|
4731
4852
|
case 12:
|
|
4732
|
-
|
|
4853
|
+
_context13.next = 14;
|
|
4733
4854
|
return this.publishStream(_internalMediaCore.MediaType.VideoMain, this.mediaProperties.videoStream);
|
|
4734
4855
|
case 14:
|
|
4735
4856
|
case "end":
|
|
4736
|
-
return
|
|
4857
|
+
return _context13.stop();
|
|
4737
4858
|
}
|
|
4738
|
-
},
|
|
4859
|
+
}, _callee13, this);
|
|
4739
4860
|
}));
|
|
4740
|
-
function setLocalVideoStream(
|
|
4861
|
+
function setLocalVideoStream(_x13) {
|
|
4741
4862
|
return _setLocalVideoStream.apply(this, arguments);
|
|
4742
4863
|
}
|
|
4743
4864
|
return setLocalVideoStream;
|
|
@@ -4754,10 +4875,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4754
4875
|
}, {
|
|
4755
4876
|
key: "setLocalShareVideoStream",
|
|
4756
4877
|
value: (function () {
|
|
4757
|
-
var _setLocalShareVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
4878
|
+
var _setLocalShareVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14(localDisplayStream) {
|
|
4758
4879
|
var oldStream;
|
|
4759
|
-
return _regenerator.default.wrap(function
|
|
4760
|
-
while (1) switch (
|
|
4880
|
+
return _regenerator.default.wrap(function _callee14$(_context14) {
|
|
4881
|
+
while (1) switch (_context14.prev = _context14.next) {
|
|
4761
4882
|
case 0:
|
|
4762
4883
|
oldStream = this.mediaProperties.shareVideoStream;
|
|
4763
4884
|
oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.handleShareVideoStreamMuteStateChange);
|
|
@@ -4769,21 +4890,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4769
4890
|
localDisplayStream === null || localDisplayStream === void 0 ? void 0 : localDisplayStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
|
|
4770
4891
|
this.mediaProperties.mediaDirection.sendShare = this.mediaProperties.hasLocalShareStream();
|
|
4771
4892
|
if (!(!this.isMultistream || !localDisplayStream)) {
|
|
4772
|
-
|
|
4893
|
+
_context14.next = 12;
|
|
4773
4894
|
break;
|
|
4774
4895
|
}
|
|
4775
|
-
|
|
4896
|
+
_context14.next = 12;
|
|
4776
4897
|
return this.unpublishStream(_internalMediaCore.MediaType.VideoSlides, oldStream);
|
|
4777
4898
|
case 12:
|
|
4778
|
-
|
|
4899
|
+
_context14.next = 14;
|
|
4779
4900
|
return this.publishStream(_internalMediaCore.MediaType.VideoSlides, this.mediaProperties.shareVideoStream);
|
|
4780
4901
|
case 14:
|
|
4781
4902
|
case "end":
|
|
4782
|
-
return
|
|
4903
|
+
return _context14.stop();
|
|
4783
4904
|
}
|
|
4784
|
-
},
|
|
4905
|
+
}, _callee14, this);
|
|
4785
4906
|
}));
|
|
4786
|
-
function setLocalShareVideoStream(
|
|
4907
|
+
function setLocalShareVideoStream(_x14) {
|
|
4787
4908
|
return _setLocalShareVideoStream.apply(this, arguments);
|
|
4788
4909
|
}
|
|
4789
4910
|
return setLocalShareVideoStream;
|
|
@@ -4799,10 +4920,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4799
4920
|
}, {
|
|
4800
4921
|
key: "setLocalShareAudioStream",
|
|
4801
4922
|
value: (function () {
|
|
4802
|
-
var _setLocalShareAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
4923
|
+
var _setLocalShareAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15(localSystemAudioStream) {
|
|
4803
4924
|
var oldStream;
|
|
4804
|
-
return _regenerator.default.wrap(function
|
|
4805
|
-
while (1) switch (
|
|
4925
|
+
return _regenerator.default.wrap(function _callee15$(_context15) {
|
|
4926
|
+
while (1) switch (_context15.prev = _context15.next) {
|
|
4806
4927
|
case 0:
|
|
4807
4928
|
oldStream = this.mediaProperties.shareAudioStream;
|
|
4808
4929
|
oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.StreamEventNames.Ended, this.handleShareAudioStreamEnded);
|
|
@@ -4812,21 +4933,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4812
4933
|
localSystemAudioStream === null || localSystemAudioStream === void 0 ? void 0 : localSystemAudioStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
|
|
4813
4934
|
this.mediaProperties.mediaDirection.sendShare = this.mediaProperties.hasLocalShareStream();
|
|
4814
4935
|
if (!(!this.isMultistream || !localSystemAudioStream)) {
|
|
4815
|
-
|
|
4936
|
+
_context15.next = 10;
|
|
4816
4937
|
break;
|
|
4817
4938
|
}
|
|
4818
|
-
|
|
4939
|
+
_context15.next = 10;
|
|
4819
4940
|
return this.unpublishStream(_internalMediaCore.MediaType.AudioSlides, oldStream);
|
|
4820
4941
|
case 10:
|
|
4821
|
-
|
|
4942
|
+
_context15.next = 12;
|
|
4822
4943
|
return this.publishStream(_internalMediaCore.MediaType.AudioSlides, this.mediaProperties.shareAudioStream);
|
|
4823
4944
|
case 12:
|
|
4824
4945
|
case "end":
|
|
4825
|
-
return
|
|
4946
|
+
return _context15.stop();
|
|
4826
4947
|
}
|
|
4827
|
-
},
|
|
4948
|
+
}, _callee15, this);
|
|
4828
4949
|
}));
|
|
4829
|
-
function setLocalShareAudioStream(
|
|
4950
|
+
function setLocalShareAudioStream(_x15) {
|
|
4830
4951
|
return _setLocalShareAudioStream.apply(this, arguments);
|
|
4831
4952
|
}
|
|
4832
4953
|
return setLocalShareAudioStream;
|
|
@@ -4865,11 +4986,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4865
4986
|
}, {
|
|
4866
4987
|
key: "cleanupLocalStreams",
|
|
4867
4988
|
value: function cleanupLocalStreams() {
|
|
4868
|
-
var _this$
|
|
4869
|
-
audioStream = _this$
|
|
4870
|
-
videoStream = _this$
|
|
4871
|
-
shareAudioStream = _this$
|
|
4872
|
-
shareVideoStream = _this$
|
|
4989
|
+
var _this$mediaProperties7 = this.mediaProperties,
|
|
4990
|
+
audioStream = _this$mediaProperties7.audioStream,
|
|
4991
|
+
videoStream = _this$mediaProperties7.videoStream,
|
|
4992
|
+
shareAudioStream = _this$mediaProperties7.shareAudioStream,
|
|
4993
|
+
shareVideoStream = _this$mediaProperties7.shareVideoStream;
|
|
4873
4994
|
audioStream === null || audioStream === void 0 ? void 0 : audioStream.off(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localAudioStreamMuteStateHandler);
|
|
4874
4995
|
audioStream === null || audioStream === void 0 ? void 0 : audioStream.off(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localAudioStreamMuteStateHandler);
|
|
4875
4996
|
audioStream === null || audioStream === void 0 ? void 0 : audioStream.off(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
|
|
@@ -4974,6 +5095,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4974
5095
|
* Close the peer connections and remove them from the class.
|
|
4975
5096
|
* Cleanup any media connection related things.
|
|
4976
5097
|
*
|
|
5098
|
+
* @param {boolean} resetMuteStates whether to also reset the audio/video mute state information
|
|
4977
5099
|
* @returns {Promise}
|
|
4978
5100
|
* @public
|
|
4979
5101
|
* @memberof Meeting
|
|
@@ -4981,6 +5103,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4981
5103
|
}, {
|
|
4982
5104
|
key: "closePeerConnections",
|
|
4983
5105
|
value: function closePeerConnections() {
|
|
5106
|
+
var resetMuteStates = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
4984
5107
|
if (this.mediaProperties.webrtcMediaConnection) {
|
|
4985
5108
|
if (this.remoteMediaManager) {
|
|
4986
5109
|
this.remoteMediaManager.stop();
|
|
@@ -4991,11 +5114,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4991
5114
|
});
|
|
4992
5115
|
this.receiveSlotManager.reset();
|
|
4993
5116
|
this.mediaProperties.webrtcMediaConnection.close();
|
|
5117
|
+
this.mediaProperties.unsetPeerConnection();
|
|
4994
5118
|
this.sendSlotManager.reset();
|
|
4995
5119
|
this.setNetworkStatus(undefined);
|
|
4996
5120
|
}
|
|
4997
|
-
|
|
4998
|
-
|
|
5121
|
+
if (resetMuteStates) {
|
|
5122
|
+
this.audio = null;
|
|
5123
|
+
this.video = null;
|
|
5124
|
+
}
|
|
4999
5125
|
return _promise.default.resolve();
|
|
5000
5126
|
}
|
|
5001
5127
|
|
|
@@ -5259,7 +5385,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5259
5385
|
* @param {Object} options - options to join with media
|
|
5260
5386
|
* @param {JoinOptions} [options.joinOptions] - see #join()
|
|
5261
5387
|
* @param {AddMediaOptions} [options.mediaOptions] - see #addMedia()
|
|
5262
|
-
* @returns {Promise} -- {join: see join(), media: see addMedia()}
|
|
5388
|
+
* @returns {Promise} -- {join: see join(), media: see addMedia(), multistreamEnabled: flag to indicate if we managed to join in multistream mode}
|
|
5263
5389
|
* @public
|
|
5264
5390
|
* @memberof Meeting
|
|
5265
5391
|
* @example
|
|
@@ -5273,7 +5399,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5273
5399
|
}, {
|
|
5274
5400
|
key: "joinWithMedia",
|
|
5275
5401
|
value: (function () {
|
|
5276
|
-
var _joinWithMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
5402
|
+
var _joinWithMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
|
|
5277
5403
|
var _this30 = this;
|
|
5278
5404
|
var options,
|
|
5279
5405
|
mediaOptions,
|
|
@@ -5294,51 +5420,51 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5294
5420
|
_leaveError,
|
|
5295
5421
|
leaveError,
|
|
5296
5422
|
shouldRetry,
|
|
5297
|
-
|
|
5298
|
-
return _regenerator.default.wrap(function
|
|
5299
|
-
while (1) switch (
|
|
5423
|
+
_args16 = arguments;
|
|
5424
|
+
return _regenerator.default.wrap(function _callee16$(_context16) {
|
|
5425
|
+
while (1) switch (_context16.prev = _context16.next) {
|
|
5300
5426
|
case 0:
|
|
5301
|
-
options =
|
|
5427
|
+
options = _args16.length > 0 && _args16[0] !== undefined ? _args16[0] : {};
|
|
5302
5428
|
mediaOptions = options.mediaOptions, _options$joinOptions = options.joinOptions, joinOptions = _options$joinOptions === void 0 ? {} : _options$joinOptions;
|
|
5303
5429
|
_this$joinWithMediaRe = this.joinWithMediaRetryInfo, isRetry = _this$joinWithMediaRe.isRetry, prevJoinResponse = _this$joinWithMediaRe.prevJoinResponse;
|
|
5304
5430
|
if (mediaOptions !== null && mediaOptions !== void 0 && mediaOptions.allowMediaInLobby) {
|
|
5305
|
-
|
|
5431
|
+
_context16.next = 5;
|
|
5306
5432
|
break;
|
|
5307
5433
|
}
|
|
5308
|
-
return
|
|
5434
|
+
return _context16.abrupt("return", _promise.default.reject(new _parameter.default('joinWithMedia() can only be used with allowMediaInLobby set to true')));
|
|
5309
5435
|
case 5:
|
|
5310
5436
|
this.allowMediaInLobby = true;
|
|
5311
5437
|
_loggerProxy.default.logger.info('Meeting:index#joinWithMedia called');
|
|
5312
5438
|
joined = false;
|
|
5313
5439
|
joinResponse = prevJoinResponse;
|
|
5314
|
-
|
|
5440
|
+
_context16.prev = 9;
|
|
5315
5441
|
forceTurnDiscovery = false;
|
|
5316
5442
|
if (joinResponse) {
|
|
5317
|
-
|
|
5443
|
+
_context16.next = 33;
|
|
5318
5444
|
break;
|
|
5319
5445
|
}
|
|
5320
|
-
|
|
5446
|
+
_context16.next = 14;
|
|
5321
5447
|
return this.roap.generateTurnDiscoveryRequestMessage(this, true);
|
|
5322
5448
|
case 14:
|
|
5323
|
-
turnDiscoveryRequest =
|
|
5449
|
+
turnDiscoveryRequest = _context16.sent;
|
|
5324
5450
|
turnDiscoverySkippedReason = turnDiscoveryRequest.turnDiscoverySkippedReason;
|
|
5325
5451
|
joinOptions.roapMessage = turnDiscoveryRequest.roapMessage;
|
|
5326
5452
|
_loggerProxy.default.logger.info('Meeting:index#joinWithMedia ---> calling join with joinOptions, ', joinOptions);
|
|
5327
|
-
|
|
5453
|
+
_context16.next = 20;
|
|
5328
5454
|
return this.join(joinOptions);
|
|
5329
5455
|
case 20:
|
|
5330
|
-
joinResponse =
|
|
5456
|
+
joinResponse = _context16.sent;
|
|
5331
5457
|
joined = true;
|
|
5332
5458
|
|
|
5333
5459
|
// if we sent out TURN discovery Roap message with join, process the TURN discovery response
|
|
5334
5460
|
if (!joinOptions.roapMessage) {
|
|
5335
|
-
|
|
5461
|
+
_context16.next = 31;
|
|
5336
5462
|
break;
|
|
5337
5463
|
}
|
|
5338
|
-
|
|
5464
|
+
_context16.next = 25;
|
|
5339
5465
|
return this.roap.handleTurnDiscoveryHttpResponse(this, joinResponse);
|
|
5340
5466
|
case 25:
|
|
5341
|
-
_yield$this$roap$hand =
|
|
5467
|
+
_yield$this$roap$hand = _context16.sent;
|
|
5342
5468
|
turnServerInfo = _yield$this$roap$hand.turnServerInfo;
|
|
5343
5469
|
turnDiscoverySkippedReason = _yield$this$roap$hand.turnDiscoverySkippedReason;
|
|
5344
5470
|
this.turnDiscoverySkippedReason = turnDiscoverySkippedReason;
|
|
@@ -5347,7 +5473,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5347
5473
|
this.roap.abortTurnDiscovery();
|
|
5348
5474
|
}
|
|
5349
5475
|
case 31:
|
|
5350
|
-
|
|
5476
|
+
_context16.next = 35;
|
|
5351
5477
|
break;
|
|
5352
5478
|
case 33:
|
|
5353
5479
|
// This is a retry, when join succeeded but addMedia failed, so we'll just call addMedia() again,
|
|
@@ -5355,82 +5481,85 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5355
5481
|
forceTurnDiscovery = true;
|
|
5356
5482
|
joined = true;
|
|
5357
5483
|
case 35:
|
|
5358
|
-
|
|
5484
|
+
_context16.next = 37;
|
|
5359
5485
|
return this.addMediaInternal(function () {
|
|
5360
5486
|
return _this30.joinWithMediaRetryInfo.isRetry ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
|
5361
5487
|
}, turnServerInfo, forceTurnDiscovery, mediaOptions);
|
|
5362
5488
|
case 37:
|
|
5363
|
-
mediaResponse =
|
|
5489
|
+
mediaResponse = _context16.sent;
|
|
5364
5490
|
this.joinWithMediaRetryInfo = {
|
|
5365
5491
|
isRetry: false,
|
|
5366
5492
|
prevJoinResponse: undefined
|
|
5367
5493
|
};
|
|
5368
|
-
return
|
|
5494
|
+
return _context16.abrupt("return", {
|
|
5369
5495
|
join: joinResponse,
|
|
5370
|
-
media: mediaResponse
|
|
5496
|
+
media: mediaResponse,
|
|
5497
|
+
multistreamEnabled: this.isMultistream
|
|
5371
5498
|
});
|
|
5372
5499
|
case 42:
|
|
5373
|
-
|
|
5374
|
-
|
|
5375
|
-
_loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> ',
|
|
5500
|
+
_context16.prev = 42;
|
|
5501
|
+
_context16.t0 = _context16["catch"](9);
|
|
5502
|
+
_loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> ', _context16.t0);
|
|
5376
5503
|
this.roap.abortTurnDiscovery();
|
|
5377
|
-
|
|
5378
|
-
|
|
5504
|
+
|
|
5505
|
+
// if this was the first attempt, let's do a retry
|
|
5506
|
+
shouldRetry = !isRetry;
|
|
5507
|
+
if (_internalPluginMetrics.CallDiagnosticUtils.isSdpOfferCreationError(_context16.t0)) {
|
|
5508
|
+
// errors related to offer creation (for example missing H264 codec) will happen again no matter how many times we try,
|
|
5509
|
+
// so there is no point doing a retry
|
|
5510
|
+
shouldRetry = false;
|
|
5511
|
+
}
|
|
5512
|
+
|
|
5513
|
+
// we only want to call leave if join was successful and this was a retry or we won't be doing any more retries
|
|
5514
|
+
if (!(joined && (isRetry || !shouldRetry))) {
|
|
5515
|
+
_context16.next = 58;
|
|
5379
5516
|
break;
|
|
5380
5517
|
}
|
|
5381
|
-
|
|
5382
|
-
|
|
5518
|
+
_context16.prev = 49;
|
|
5519
|
+
_context16.next = 52;
|
|
5383
5520
|
return this.leave({
|
|
5384
5521
|
resourceId: joinOptions === null || joinOptions === void 0 ? void 0 : joinOptions.resourceId,
|
|
5385
5522
|
reason: 'joinWithMedia failure'
|
|
5386
5523
|
});
|
|
5387
|
-
case 50:
|
|
5388
|
-
_context15.next = 56;
|
|
5389
|
-
break;
|
|
5390
5524
|
case 52:
|
|
5391
|
-
|
|
5392
|
-
|
|
5393
|
-
|
|
5394
|
-
|
|
5395
|
-
|
|
5525
|
+
_context16.next = 58;
|
|
5526
|
+
break;
|
|
5527
|
+
case 54:
|
|
5528
|
+
_context16.prev = 54;
|
|
5529
|
+
_context16.t1 = _context16["catch"](49);
|
|
5530
|
+
_loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> leave error', _context16.t1);
|
|
5531
|
+
leaveError = _context16.t1;
|
|
5532
|
+
case 58:
|
|
5396
5533
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_WITH_MEDIA_FAILURE, {
|
|
5397
5534
|
correlation_id: this.correlationId,
|
|
5398
5535
|
locus_id: (_this$locusUrl = this.locusUrl) === null || _this$locusUrl === void 0 ? void 0 : _this$locusUrl.split('/').pop(),
|
|
5399
5536
|
// if join fails, we may end up with no locusUrl
|
|
5400
|
-
reason:
|
|
5401
|
-
stack:
|
|
5537
|
+
reason: _context16.t0.message,
|
|
5538
|
+
stack: _context16.t0.stack,
|
|
5402
5539
|
leaveErrorReason: (_leaveError = leaveError) === null || _leaveError === void 0 ? void 0 : _leaveError.message,
|
|
5403
5540
|
isRetry: isRetry
|
|
5404
5541
|
}, {
|
|
5405
|
-
type:
|
|
5542
|
+
type: _context16.t0.name
|
|
5406
5543
|
});
|
|
5407
|
-
|
|
5408
|
-
// if this was the first attempt, let's do a retry
|
|
5409
|
-
shouldRetry = !isRetry;
|
|
5410
|
-
if (_internalPluginMetrics.CallDiagnosticUtils.isSdpOfferCreationError(_context15.t0)) {
|
|
5411
|
-
// errors related to offer creation (for example missing H264 codec) will happen again no matter how many times we try,
|
|
5412
|
-
// so there is no point doing a retry
|
|
5413
|
-
shouldRetry = false;
|
|
5414
|
-
}
|
|
5415
5544
|
if (!shouldRetry) {
|
|
5416
|
-
|
|
5545
|
+
_context16.next = 64;
|
|
5417
5546
|
break;
|
|
5418
5547
|
}
|
|
5419
5548
|
_loggerProxy.default.logger.warn('Meeting:index#joinWithMedia --> retrying call to joinWithMedia');
|
|
5420
5549
|
this.joinWithMediaRetryInfo.isRetry = true;
|
|
5421
5550
|
this.joinWithMediaRetryInfo.prevJoinResponse = joinResponse;
|
|
5422
|
-
return
|
|
5551
|
+
return _context16.abrupt("return", this.joinWithMedia(options));
|
|
5423
5552
|
case 64:
|
|
5424
5553
|
this.joinWithMediaRetryInfo = {
|
|
5425
5554
|
isRetry: false,
|
|
5426
5555
|
prevJoinResponse: undefined
|
|
5427
5556
|
};
|
|
5428
|
-
throw
|
|
5557
|
+
throw _context16.t0;
|
|
5429
5558
|
case 66:
|
|
5430
5559
|
case "end":
|
|
5431
|
-
return
|
|
5560
|
+
return _context16.stop();
|
|
5432
5561
|
}
|
|
5433
|
-
},
|
|
5562
|
+
}, _callee16, this, [[9, 42], [49, 54]]);
|
|
5434
5563
|
}));
|
|
5435
5564
|
function joinWithMedia() {
|
|
5436
5565
|
return _joinWithMedia.apply(this, arguments);
|
|
@@ -5460,20 +5589,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5460
5589
|
return _promise.default.reject(new _parameter.default('Cannot reconnect, Media has not established to reconnect'));
|
|
5461
5590
|
}
|
|
5462
5591
|
this.cleanUpBeforeReconnection();
|
|
5463
|
-
return this.reconnectionManager.reconnect(options, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
5464
|
-
return _regenerator.default.wrap(function
|
|
5465
|
-
while (1) switch (
|
|
5592
|
+
return this.reconnectionManager.reconnect(options, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17() {
|
|
5593
|
+
return _regenerator.default.wrap(function _callee17$(_context17) {
|
|
5594
|
+
while (1) switch (_context17.prev = _context17.next) {
|
|
5466
5595
|
case 0:
|
|
5467
|
-
|
|
5596
|
+
_context17.next = 2;
|
|
5468
5597
|
return _this31.waitForRemoteSDPAnswer();
|
|
5469
5598
|
case 2:
|
|
5470
|
-
|
|
5599
|
+
_context17.next = 4;
|
|
5471
5600
|
return _this31.waitForMediaConnectionConnected();
|
|
5472
5601
|
case 4:
|
|
5473
5602
|
case "end":
|
|
5474
|
-
return
|
|
5603
|
+
return _context17.stop();
|
|
5475
5604
|
}
|
|
5476
|
-
},
|
|
5605
|
+
}, _callee17);
|
|
5477
5606
|
}))).then(function () {
|
|
5478
5607
|
_loggerProxy.default.logger.log('Meeting:index#reconnect --> Meeting reconnect success');
|
|
5479
5608
|
}).catch(function (error) {
|
|
@@ -5614,48 +5743,48 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5614
5743
|
}, {
|
|
5615
5744
|
key: "startTranscription",
|
|
5616
5745
|
value: (function () {
|
|
5617
|
-
var _startTranscription = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
5618
|
-
return _regenerator.default.wrap(function
|
|
5619
|
-
while (1) switch (
|
|
5746
|
+
var _startTranscription = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18(options) {
|
|
5747
|
+
return _regenerator.default.wrap(function _callee18$(_context18) {
|
|
5748
|
+
while (1) switch (_context18.prev = _context18.next) {
|
|
5620
5749
|
case 0:
|
|
5621
5750
|
if (!this.isJoined()) {
|
|
5622
|
-
|
|
5751
|
+
_context18.next = 14;
|
|
5623
5752
|
break;
|
|
5624
5753
|
}
|
|
5625
5754
|
_loggerProxy.default.logger.info('Meeting:index#startTranscription --> Attempting to enable transcription!');
|
|
5626
|
-
|
|
5755
|
+
_context18.prev = 2;
|
|
5627
5756
|
if (!this.areVoiceaEventsSetup) {
|
|
5628
5757
|
this.setUpVoiceaListeners();
|
|
5629
5758
|
}
|
|
5630
5759
|
|
|
5631
5760
|
// @ts-ignore
|
|
5632
|
-
|
|
5761
|
+
_context18.next = 6;
|
|
5633
5762
|
return this.webex.internal.voicea.turnOnCaptions(options === null || options === void 0 ? void 0 : options.spokenLanguage);
|
|
5634
5763
|
case 6:
|
|
5635
|
-
|
|
5764
|
+
_context18.next = 12;
|
|
5636
5765
|
break;
|
|
5637
5766
|
case 8:
|
|
5638
|
-
|
|
5639
|
-
|
|
5640
|
-
_loggerProxy.default.logger.error("Meeting:index#startTranscription --> ".concat(
|
|
5767
|
+
_context18.prev = 8;
|
|
5768
|
+
_context18.t0 = _context18["catch"](2);
|
|
5769
|
+
_loggerProxy.default.logger.error("Meeting:index#startTranscription --> ".concat(_context18.t0));
|
|
5641
5770
|
_metrics.default.sendBehavioralMetric(_constants2.default.RECEIVE_TRANSCRIPTION_FAILURE, {
|
|
5642
5771
|
correlation_id: this.correlationId,
|
|
5643
|
-
reason:
|
|
5644
|
-
stack:
|
|
5772
|
+
reason: _context18.t0.message,
|
|
5773
|
+
stack: _context18.t0.stack
|
|
5645
5774
|
});
|
|
5646
5775
|
case 12:
|
|
5647
|
-
|
|
5776
|
+
_context18.next = 16;
|
|
5648
5777
|
break;
|
|
5649
5778
|
case 14:
|
|
5650
5779
|
_loggerProxy.default.logger.error("Meeting:index#startTranscription --> meeting joined : ".concat(this.isJoined()));
|
|
5651
5780
|
throw new Error('Meeting is not joined');
|
|
5652
5781
|
case 16:
|
|
5653
5782
|
case "end":
|
|
5654
|
-
return
|
|
5783
|
+
return _context18.stop();
|
|
5655
5784
|
}
|
|
5656
|
-
},
|
|
5785
|
+
}, _callee18, this, [[2, 8]]);
|
|
5657
5786
|
}));
|
|
5658
|
-
function startTranscription(
|
|
5787
|
+
function startTranscription(_x16) {
|
|
5659
5788
|
return _startTranscription.apply(this, arguments);
|
|
5660
5789
|
}
|
|
5661
5790
|
return startTranscription;
|
|
@@ -5680,6 +5809,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5680
5809
|
|
|
5681
5810
|
// @ts-ignore
|
|
5682
5811
|
this.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.NEW_CAPTION, this.voiceaListenerCallbacks[_internalPluginVoicea.EVENT_TRIGGERS.NEW_CAPTION]);
|
|
5812
|
+
|
|
5813
|
+
// @ts-ignore
|
|
5814
|
+
this.webex.internal.voicea.deregisterEvents();
|
|
5683
5815
|
this.areVoiceaEventsSetup = false;
|
|
5684
5816
|
this.triggerStopReceivingTranscriptionEvent();
|
|
5685
5817
|
}
|
|
@@ -5716,36 +5848,36 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5716
5848
|
* Scenario D: Joining any other way (sip, pstn, conversationUrl, link just need to specify resourceId)
|
|
5717
5849
|
*/
|
|
5718
5850
|
function () {
|
|
5719
|
-
var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
5851
|
+
var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
|
|
5720
5852
|
var _this34 = this;
|
|
5721
5853
|
var options,
|
|
5722
5854
|
errorMessage,
|
|
5723
5855
|
error,
|
|
5724
5856
|
joinFailed,
|
|
5725
5857
|
joinSuccess,
|
|
5726
|
-
_errorMessage,
|
|
5727
|
-
_error,
|
|
5728
5858
|
_errorMessage2,
|
|
5729
5859
|
_error2,
|
|
5730
|
-
|
|
5731
|
-
|
|
5732
|
-
|
|
5860
|
+
_errorMessage3,
|
|
5861
|
+
_error3,
|
|
5862
|
+
_args19 = arguments;
|
|
5863
|
+
return _regenerator.default.wrap(function _callee19$(_context19) {
|
|
5864
|
+
while (1) switch (_context19.prev = _context19.next) {
|
|
5733
5865
|
case 0:
|
|
5734
|
-
options =
|
|
5866
|
+
options = _args19.length > 0 && _args19[0] !== undefined ? _args19[0] : {};
|
|
5735
5867
|
if (this.webex.meetings.registered) {
|
|
5736
|
-
|
|
5868
|
+
_context19.next = 6;
|
|
5737
5869
|
break;
|
|
5738
5870
|
}
|
|
5739
5871
|
errorMessage = 'Meeting:index#join --> Device not registered';
|
|
5740
5872
|
error = new Error(errorMessage);
|
|
5741
5873
|
_loggerProxy.default.logger.error(errorMessage);
|
|
5742
|
-
return
|
|
5874
|
+
return _context19.abrupt("return", _promise.default.reject(error));
|
|
5743
5875
|
case 6:
|
|
5744
5876
|
if (!this.deferJoin) {
|
|
5745
|
-
|
|
5877
|
+
_context19.next = 8;
|
|
5746
5878
|
break;
|
|
5747
5879
|
}
|
|
5748
|
-
return
|
|
5880
|
+
return _context19.abrupt("return", this.deferJoin);
|
|
5749
5881
|
case 8:
|
|
5750
5882
|
// Create a deferred promise for a consistent resolve value from utils.
|
|
5751
5883
|
// This also prevents redundant API calls.
|
|
@@ -5769,18 +5901,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5769
5901
|
this.meetingFiniteStateMachine.reset();
|
|
5770
5902
|
}
|
|
5771
5903
|
|
|
5772
|
-
//
|
|
5773
|
-
|
|
5774
|
-
|
|
5775
|
-
|
|
5776
|
-
|
|
5777
|
-
|
|
5778
|
-
|
|
5779
|
-
|
|
5780
|
-
|
|
5781
|
-
|
|
5782
|
-
|
|
5783
|
-
|
|
5904
|
+
// send client.call.initiated unless told not to
|
|
5905
|
+
if (options.sendCallInitiated !== false) {
|
|
5906
|
+
// @ts-ignore
|
|
5907
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
5908
|
+
name: 'client.call.initiated',
|
|
5909
|
+
payload: {
|
|
5910
|
+
trigger: this.callStateForMetrics.joinTrigger || 'user-interaction',
|
|
5911
|
+
isRoapCallEnabled: true,
|
|
5912
|
+
pstnAudioType: options === null || options === void 0 ? void 0 : options.pstnAudioType
|
|
5913
|
+
},
|
|
5914
|
+
options: {
|
|
5915
|
+
meetingId: this.id
|
|
5916
|
+
}
|
|
5917
|
+
});
|
|
5918
|
+
}
|
|
5784
5919
|
_loggerProxy.default.logger.log('Meeting:index#join --> Joining a meeting');
|
|
5785
5920
|
if (this.meetingFiniteStateMachine.state === _constants.MEETING_STATE_MACHINE.STATES.ENDED) {
|
|
5786
5921
|
this.meetingFiniteStateMachine.reset();
|
|
@@ -5794,75 +5929,75 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5794
5929
|
this.wirelessShare = true;
|
|
5795
5930
|
}
|
|
5796
5931
|
if (!options.meetingQuality) {
|
|
5797
|
-
|
|
5932
|
+
_context19.next = 36;
|
|
5798
5933
|
break;
|
|
5799
5934
|
}
|
|
5800
5935
|
if (!(typeof options.meetingQuality === 'string')) {
|
|
5801
|
-
|
|
5936
|
+
_context19.next = 27;
|
|
5802
5937
|
break;
|
|
5803
5938
|
}
|
|
5804
5939
|
if (_constants.QUALITY_LEVELS[options.meetingQuality]) {
|
|
5805
|
-
|
|
5940
|
+
_context19.next = 26;
|
|
5806
5941
|
break;
|
|
5807
5942
|
}
|
|
5808
|
-
|
|
5809
|
-
|
|
5810
|
-
_loggerProxy.default.logger.error(
|
|
5811
|
-
joinFailed(
|
|
5943
|
+
_errorMessage2 = "Meeting:index#join --> ".concat(options.meetingQuality, " not defined");
|
|
5944
|
+
_error2 = new Error(_errorMessage2);
|
|
5945
|
+
_loggerProxy.default.logger.error(_errorMessage2);
|
|
5946
|
+
joinFailed(_error2);
|
|
5812
5947
|
this.deferJoin = undefined;
|
|
5813
|
-
return
|
|
5948
|
+
return _context19.abrupt("return", _promise.default.reject(_error2));
|
|
5814
5949
|
case 26:
|
|
5815
5950
|
this.mediaProperties.setRemoteQualityLevel(options.meetingQuality);
|
|
5816
5951
|
case 27:
|
|
5817
5952
|
if (!((0, _typeof2.default)(options.meetingQuality) === 'object')) {
|
|
5818
|
-
|
|
5953
|
+
_context19.next = 36;
|
|
5819
5954
|
break;
|
|
5820
5955
|
}
|
|
5821
5956
|
if (_constants.QUALITY_LEVELS[options.meetingQuality.remote]) {
|
|
5822
|
-
|
|
5957
|
+
_context19.next = 35;
|
|
5823
5958
|
break;
|
|
5824
5959
|
}
|
|
5825
|
-
|
|
5826
|
-
_loggerProxy.default.logger.error(
|
|
5827
|
-
|
|
5828
|
-
joinFailed(
|
|
5960
|
+
_errorMessage3 = "Meeting:index#join --> ".concat(options.meetingQuality.remote, " not defined");
|
|
5961
|
+
_loggerProxy.default.logger.error(_errorMessage3);
|
|
5962
|
+
_error3 = new Error(_errorMessage3);
|
|
5963
|
+
joinFailed(_error3);
|
|
5829
5964
|
this.deferJoin = undefined;
|
|
5830
|
-
return
|
|
5965
|
+
return _context19.abrupt("return", _promise.default.reject(new Error(_errorMessage3)));
|
|
5831
5966
|
case 35:
|
|
5832
5967
|
if (options.meetingQuality.remote) {
|
|
5833
5968
|
this.mediaProperties.setRemoteQualityLevel(options.meetingQuality.remote);
|
|
5834
5969
|
}
|
|
5835
5970
|
case 36:
|
|
5836
5971
|
this.isMultistream = !!options.enableMultistream;
|
|
5837
|
-
|
|
5838
|
-
|
|
5972
|
+
_context19.prev = 37;
|
|
5973
|
+
_context19.next = 40;
|
|
5839
5974
|
return this.checkAndRefreshPermissionToken(_constants.MEETING_PERMISSION_TOKEN_REFRESH_THRESHOLD_IN_SEC, _constants.MEETING_PERMISSION_TOKEN_REFRESH_REASON);
|
|
5840
5975
|
case 40:
|
|
5841
|
-
|
|
5976
|
+
_context19.next = 51;
|
|
5842
5977
|
break;
|
|
5843
5978
|
case 42:
|
|
5844
|
-
|
|
5845
|
-
|
|
5846
|
-
_loggerProxy.default.logger.error('Meeting:index#join --> Failed to refresh permission token:',
|
|
5847
|
-
if (!(
|
|
5848
|
-
|
|
5979
|
+
_context19.prev = 42;
|
|
5980
|
+
_context19.t0 = _context19["catch"](37);
|
|
5981
|
+
_loggerProxy.default.logger.error('Meeting:index#join --> Failed to refresh permission token:', _context19.t0);
|
|
5982
|
+
if (!(_context19.t0 instanceof _captchaError.default || _context19.t0 instanceof _passwordError.default || _context19.t0 instanceof _permission.default)) {
|
|
5983
|
+
_context19.next = 51;
|
|
5849
5984
|
break;
|
|
5850
5985
|
}
|
|
5851
|
-
this.meetingFiniteStateMachine.fail(
|
|
5986
|
+
this.meetingFiniteStateMachine.fail(_context19.t0);
|
|
5852
5987
|
|
|
5853
5988
|
// Upload logs on refreshpermissionToken refresh Failure
|
|
5854
5989
|
_triggerProxy.default.trigger(this, {
|
|
5855
5990
|
file: 'meeting/index',
|
|
5856
5991
|
function: 'join'
|
|
5857
5992
|
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
|
|
5858
|
-
joinFailed(
|
|
5993
|
+
joinFailed(_context19.t0);
|
|
5859
5994
|
this.deferJoin = undefined;
|
|
5860
5995
|
|
|
5861
5996
|
// if refresh permission token requires captcha, password or permission, we are throwing the errors
|
|
5862
5997
|
// and bubble it up to client
|
|
5863
|
-
return
|
|
5998
|
+
return _context19.abrupt("return", _promise.default.reject(_context19.t0));
|
|
5864
5999
|
case 51:
|
|
5865
|
-
return
|
|
6000
|
+
return _context19.abrupt("return", _util2.default.joinMeetingOptions(this, options).then(function (join) {
|
|
5866
6001
|
_this34.meetingFiniteStateMachine.join();
|
|
5867
6002
|
_this34.setupLocusMediaRequest();
|
|
5868
6003
|
|
|
@@ -5930,9 +6065,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5930
6065
|
}));
|
|
5931
6066
|
case 52:
|
|
5932
6067
|
case "end":
|
|
5933
|
-
return
|
|
6068
|
+
return _context19.stop();
|
|
5934
6069
|
}
|
|
5935
|
-
},
|
|
6070
|
+
}, _callee19, this, [[37, 42]]);
|
|
5936
6071
|
}));
|
|
5937
6072
|
function join() {
|
|
5938
6073
|
return _join.apply(this, arguments);
|
|
@@ -5949,42 +6084,43 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5949
6084
|
}, {
|
|
5950
6085
|
key: "updateLLMConnection",
|
|
5951
6086
|
value: (function () {
|
|
5952
|
-
var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6087
|
+
var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20() {
|
|
5953
6088
|
var _this35 = this;
|
|
5954
|
-
var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, isJoined;
|
|
5955
|
-
return _regenerator.default.wrap(function
|
|
5956
|
-
while (1) switch (
|
|
6089
|
+
var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, practiceSessionDatachannelUrl, isJoined, dataChannelUrl;
|
|
6090
|
+
return _regenerator.default.wrap(function _callee20$(_context20) {
|
|
6091
|
+
while (1) switch (_context20.prev = _context20.next) {
|
|
5957
6092
|
case 0:
|
|
5958
6093
|
// @ts-ignore - Fix type
|
|
5959
|
-
_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;
|
|
5960
|
-
isJoined = this.isJoined(); //
|
|
6094
|
+
_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;
|
|
6095
|
+
isJoined = this.isJoined(); // webinar panelist should use new data channel in practice session
|
|
6096
|
+
dataChannelUrl = this.webinar.isJoinPracticeSessionDataChannel() && practiceSessionDatachannelUrl ? practiceSessionDatachannelUrl : datachannelUrl; // @ts-ignore - Fix type
|
|
5961
6097
|
if (!this.webex.internal.llm.isConnected()) {
|
|
5962
|
-
|
|
6098
|
+
_context20.next = 9;
|
|
5963
6099
|
break;
|
|
5964
6100
|
}
|
|
5965
6101
|
if (!(
|
|
5966
6102
|
// @ts-ignore - Fix type
|
|
5967
6103
|
url === this.webex.internal.llm.getLocusUrl() &&
|
|
5968
6104
|
// @ts-ignore - Fix type
|
|
5969
|
-
|
|
5970
|
-
|
|
6105
|
+
dataChannelUrl === this.webex.internal.llm.getDatachannelUrl() && isJoined)) {
|
|
6106
|
+
_context20.next = 6;
|
|
5971
6107
|
break;
|
|
5972
6108
|
}
|
|
5973
|
-
return
|
|
5974
|
-
case
|
|
5975
|
-
|
|
6109
|
+
return _context20.abrupt("return", undefined);
|
|
6110
|
+
case 6:
|
|
6111
|
+
_context20.next = 8;
|
|
5976
6112
|
return this.webex.internal.llm.disconnectLLM();
|
|
5977
|
-
case
|
|
6113
|
+
case 8:
|
|
5978
6114
|
// @ts-ignore - Fix type
|
|
5979
6115
|
this.webex.internal.llm.off('event:relay.event', this.processRelayEvent);
|
|
5980
|
-
case
|
|
6116
|
+
case 9:
|
|
5981
6117
|
if (isJoined) {
|
|
5982
|
-
|
|
6118
|
+
_context20.next = 11;
|
|
5983
6119
|
break;
|
|
5984
6120
|
}
|
|
5985
|
-
return
|
|
5986
|
-
case
|
|
5987
|
-
return
|
|
6121
|
+
return _context20.abrupt("return", undefined);
|
|
6122
|
+
case 11:
|
|
6123
|
+
return _context20.abrupt("return", this.webex.internal.llm.registerAndConnect(url, dataChannelUrl).then(function (registerAndConnectResult) {
|
|
5988
6124
|
// @ts-ignore - Fix type
|
|
5989
6125
|
_this35.webex.internal.llm.off('event:relay.event', _this35.processRelayEvent);
|
|
5990
6126
|
// @ts-ignore - Fix type
|
|
@@ -5992,11 +6128,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5992
6128
|
_loggerProxy.default.logger.info('Meeting:index#updateLLMConnection --> enabled to receive relay events!');
|
|
5993
6129
|
return _promise.default.resolve(registerAndConnectResult);
|
|
5994
6130
|
}));
|
|
5995
|
-
case
|
|
6131
|
+
case 12:
|
|
5996
6132
|
case "end":
|
|
5997
|
-
return
|
|
6133
|
+
return _context20.stop();
|
|
5998
6134
|
}
|
|
5999
|
-
},
|
|
6135
|
+
}, _callee20, this);
|
|
6000
6136
|
}));
|
|
6001
6137
|
function updateLLMConnection() {
|
|
6002
6138
|
return _updateLLMConnection.apply(this, arguments);
|
|
@@ -6168,17 +6304,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6168
6304
|
meetingId: this.id
|
|
6169
6305
|
}
|
|
6170
6306
|
});
|
|
6171
|
-
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.SELF_OBSERVING, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6307
|
+
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.SELF_OBSERVING, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21() {
|
|
6172
6308
|
var mediaSettings;
|
|
6173
|
-
return _regenerator.default.wrap(function
|
|
6174
|
-
while (1) switch (
|
|
6309
|
+
return _regenerator.default.wrap(function _callee21$(_context21) {
|
|
6310
|
+
while (1) switch (_context21.prev = _context21.next) {
|
|
6175
6311
|
case 0:
|
|
6176
|
-
|
|
6312
|
+
_context21.prev = 0;
|
|
6177
6313
|
if (!(_this38.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
|
|
6178
|
-
|
|
6314
|
+
_context21.next = 4;
|
|
6179
6315
|
break;
|
|
6180
6316
|
}
|
|
6181
|
-
|
|
6317
|
+
_context21.next = 4;
|
|
6182
6318
|
return _this38.releaseScreenShareFloor();
|
|
6183
6319
|
case 4:
|
|
6184
6320
|
mediaSettings = {
|
|
@@ -6197,23 +6333,23 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6197
6333
|
// 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
|
|
6198
6334
|
// once the device answers we close the old connection and create new media server connection with only share enabled
|
|
6199
6335
|
if (!_this38.statsAnalyzer) {
|
|
6200
|
-
|
|
6336
|
+
_context21.next = 10;
|
|
6201
6337
|
break;
|
|
6202
6338
|
}
|
|
6203
|
-
|
|
6339
|
+
_context21.next = 10;
|
|
6204
6340
|
return _this38.statsAnalyzer.stopAnalyzer();
|
|
6205
6341
|
case 10:
|
|
6206
|
-
|
|
6342
|
+
_context21.next = 12;
|
|
6207
6343
|
return _this38.closeRemoteStreams();
|
|
6208
6344
|
case 12:
|
|
6209
|
-
|
|
6345
|
+
_context21.next = 14;
|
|
6210
6346
|
return _this38.closePeerConnections();
|
|
6211
6347
|
case 14:
|
|
6212
6348
|
_this38.cleanupLocalStreams();
|
|
6213
6349
|
_this38.unsetRemoteStreams();
|
|
6214
6350
|
_this38.unsetPeerConnections();
|
|
6215
6351
|
_this38.reconnectionManager.cleanUp();
|
|
6216
|
-
|
|
6352
|
+
_context21.next = 20;
|
|
6217
6353
|
return _this38.addMedia({
|
|
6218
6354
|
audioEnabled: false,
|
|
6219
6355
|
videoEnabled: false,
|
|
@@ -6222,24 +6358,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6222
6358
|
case 20:
|
|
6223
6359
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
|
|
6224
6360
|
_this38.isMoveToInProgress = false;
|
|
6225
|
-
|
|
6361
|
+
_context21.next = 29;
|
|
6226
6362
|
break;
|
|
6227
6363
|
case 24:
|
|
6228
|
-
|
|
6229
|
-
|
|
6230
|
-
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId',
|
|
6364
|
+
_context21.prev = 24;
|
|
6365
|
+
_context21.t0 = _context21["catch"](0);
|
|
6366
|
+
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context21.t0);
|
|
6231
6367
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
|
6232
6368
|
correlation_id: _this38.correlationId,
|
|
6233
6369
|
locus_id: _this38.locusUrl.split('/').pop(),
|
|
6234
|
-
reason:
|
|
6235
|
-
stack:
|
|
6370
|
+
reason: _context21.t0.message,
|
|
6371
|
+
stack: _context21.t0.stack
|
|
6236
6372
|
});
|
|
6237
6373
|
_this38.isMoveToInProgress = false;
|
|
6238
6374
|
case 29:
|
|
6239
6375
|
case "end":
|
|
6240
|
-
return
|
|
6376
|
+
return _context21.stop();
|
|
6241
6377
|
}
|
|
6242
|
-
},
|
|
6378
|
+
}, _callee21, null, [[0, 24]]);
|
|
6243
6379
|
})));
|
|
6244
6380
|
_loggerProxy.default.logger.info('Meeting:index#moveTo --> Initated moved to using resourceId', resourceId);
|
|
6245
6381
|
|
|
@@ -6327,16 +6463,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6327
6463
|
}, {
|
|
6328
6464
|
key: "createMediaConnection",
|
|
6329
6465
|
value: (function () {
|
|
6330
|
-
var _createMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6466
|
+
var _createMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee22(turnServerInfo, bundlePolicy) {
|
|
6331
6467
|
var mc, audioEnabled, videoEnabled, shareEnabled;
|
|
6332
|
-
return _regenerator.default.wrap(function
|
|
6333
|
-
while (1) switch (
|
|
6468
|
+
return _regenerator.default.wrap(function _callee22$(_context22) {
|
|
6469
|
+
while (1) switch (_context22.prev = _context22.next) {
|
|
6334
6470
|
case 0:
|
|
6335
6471
|
this.rtcMetrics = this.isMultistream ?
|
|
6336
6472
|
// @ts-ignore
|
|
6337
6473
|
new _internalPluginMetrics.RtcMetrics(this.webex, {
|
|
6338
6474
|
meetingId: this.id
|
|
6339
6475
|
}, this.correlationId) : undefined;
|
|
6476
|
+
|
|
6477
|
+
// ongoing reachability checks slow down new media connections especially on Firefox, so we stop them
|
|
6478
|
+
this.getWebexObject().meetings.reachability.stopReachability();
|
|
6340
6479
|
mc = _media.default.createMediaConnection(this.isMultistream, this.getMediaConnectionDebugId(), this.id, {
|
|
6341
6480
|
rtcMetrics: this.rtcMetrics,
|
|
6342
6481
|
mediaProperties: this.mediaProperties,
|
|
@@ -6362,42 +6501,42 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6362
6501
|
|
|
6363
6502
|
// publish the streams
|
|
6364
6503
|
if (!this.mediaProperties.audioStream) {
|
|
6365
|
-
|
|
6504
|
+
_context22.next = 10;
|
|
6366
6505
|
break;
|
|
6367
6506
|
}
|
|
6368
6507
|
this.setSendNamedMediaGroup(_internalMediaCore.MediaType.AudioMain);
|
|
6369
|
-
|
|
6508
|
+
_context22.next = 10;
|
|
6370
6509
|
return this.publishStream(_internalMediaCore.MediaType.AudioMain, this.mediaProperties.audioStream);
|
|
6371
|
-
case
|
|
6510
|
+
case 10:
|
|
6372
6511
|
if (!this.mediaProperties.videoStream) {
|
|
6373
|
-
|
|
6512
|
+
_context22.next = 13;
|
|
6374
6513
|
break;
|
|
6375
6514
|
}
|
|
6376
|
-
|
|
6515
|
+
_context22.next = 13;
|
|
6377
6516
|
return this.publishStream(_internalMediaCore.MediaType.VideoMain, this.mediaProperties.videoStream);
|
|
6378
|
-
case
|
|
6517
|
+
case 13:
|
|
6379
6518
|
if (!this.mediaProperties.shareVideoStream) {
|
|
6380
|
-
|
|
6519
|
+
_context22.next = 16;
|
|
6381
6520
|
break;
|
|
6382
6521
|
}
|
|
6383
|
-
|
|
6522
|
+
_context22.next = 16;
|
|
6384
6523
|
return this.publishStream(_internalMediaCore.MediaType.VideoSlides, this.mediaProperties.shareVideoStream);
|
|
6385
|
-
case
|
|
6524
|
+
case 16:
|
|
6386
6525
|
if (!(this.isMultistream && this.mediaProperties.shareAudioStream)) {
|
|
6387
|
-
|
|
6526
|
+
_context22.next = 19;
|
|
6388
6527
|
break;
|
|
6389
6528
|
}
|
|
6390
|
-
|
|
6529
|
+
_context22.next = 19;
|
|
6391
6530
|
return this.publishStream(_internalMediaCore.MediaType.AudioSlides, this.mediaProperties.shareAudioStream);
|
|
6392
|
-
case 18:
|
|
6393
|
-
return _context21.abrupt("return", mc);
|
|
6394
6531
|
case 19:
|
|
6532
|
+
return _context22.abrupt("return", mc);
|
|
6533
|
+
case 20:
|
|
6395
6534
|
case "end":
|
|
6396
|
-
return
|
|
6535
|
+
return _context22.stop();
|
|
6397
6536
|
}
|
|
6398
|
-
},
|
|
6537
|
+
}, _callee22, this);
|
|
6399
6538
|
}));
|
|
6400
|
-
function createMediaConnection(
|
|
6539
|
+
function createMediaConnection(_x17, _x18) {
|
|
6401
6540
|
return _createMediaConnection.apply(this, arguments);
|
|
6402
6541
|
}
|
|
6403
6542
|
return createMediaConnection;
|
|
@@ -6435,11 +6574,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6435
6574
|
}, {
|
|
6436
6575
|
key: "setUpLocalStreamReferences",
|
|
6437
6576
|
value: (function () {
|
|
6438
|
-
var _setUpLocalStreamReferences = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6577
|
+
var _setUpLocalStreamReferences = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee23(localStreams) {
|
|
6439
6578
|
var _localStreams$microph, _localStreams$camera, _localStreams$screenS, _localStreams$screenS2, _localStreams$screenS3, _localStreams$screenS4, _localStreams$screenS5, _localStreams$screenS6;
|
|
6440
6579
|
var setUpStreamPromises;
|
|
6441
|
-
return _regenerator.default.wrap(function
|
|
6442
|
-
while (1) switch (
|
|
6580
|
+
return _regenerator.default.wrap(function _callee23$(_context23) {
|
|
6581
|
+
while (1) switch (_context23.prev = _context23.next) {
|
|
6443
6582
|
case 0:
|
|
6444
6583
|
setUpStreamPromises = [];
|
|
6445
6584
|
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') {
|
|
@@ -6454,24 +6593,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6454
6593
|
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') {
|
|
6455
6594
|
setUpStreamPromises.push(this.setLocalShareAudioStream(localStreams.screenShare.audio));
|
|
6456
6595
|
}
|
|
6457
|
-
|
|
6458
|
-
|
|
6596
|
+
_context23.prev = 5;
|
|
6597
|
+
_context23.next = 8;
|
|
6459
6598
|
return _promise.default.all(setUpStreamPromises);
|
|
6460
6599
|
case 8:
|
|
6461
|
-
|
|
6600
|
+
_context23.next = 14;
|
|
6462
6601
|
break;
|
|
6463
6602
|
case 10:
|
|
6464
|
-
|
|
6465
|
-
|
|
6466
|
-
_loggerProxy.default.logger.error("Meeting:index#addMedia():setUpLocalStreamReferences --> Error , ",
|
|
6467
|
-
throw
|
|
6603
|
+
_context23.prev = 10;
|
|
6604
|
+
_context23.t0 = _context23["catch"](5);
|
|
6605
|
+
_loggerProxy.default.logger.error("Meeting:index#addMedia():setUpLocalStreamReferences --> Error , ", _context23.t0);
|
|
6606
|
+
throw _context23.t0;
|
|
6468
6607
|
case 14:
|
|
6469
6608
|
case "end":
|
|
6470
|
-
return
|
|
6609
|
+
return _context23.stop();
|
|
6471
6610
|
}
|
|
6472
|
-
},
|
|
6611
|
+
}, _callee23, this, [[5, 10]]);
|
|
6473
6612
|
}));
|
|
6474
|
-
function setUpLocalStreamReferences(
|
|
6613
|
+
function setUpLocalStreamReferences(_x19) {
|
|
6475
6614
|
return _setUpLocalStreamReferences.apply(this, arguments);
|
|
6476
6615
|
}
|
|
6477
6616
|
return setUpLocalStreamReferences;
|
|
@@ -6486,72 +6625,72 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6486
6625
|
}, {
|
|
6487
6626
|
key: "waitForMediaConnectionConnected",
|
|
6488
6627
|
value: (function () {
|
|
6489
|
-
var _waitForMediaConnectionConnected = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6490
|
-
var iceConnected, _this$
|
|
6491
|
-
return _regenerator.default.wrap(function
|
|
6492
|
-
while (1) switch (
|
|
6628
|
+
var _waitForMediaConnectionConnected = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24() {
|
|
6629
|
+
var iceConnected, _this$mediaProperties8, _this$mediaProperties9, _this$mediaProperties10, _this$mediaProperties11, _this$mediaProperties12, _this$mediaProperties13, _this$mediaProperties14;
|
|
6630
|
+
return _regenerator.default.wrap(function _callee24$(_context24) {
|
|
6631
|
+
while (1) switch (_context24.prev = _context24.next) {
|
|
6493
6632
|
case 0:
|
|
6494
|
-
|
|
6495
|
-
|
|
6633
|
+
_context24.prev = 0;
|
|
6634
|
+
_context24.next = 3;
|
|
6496
6635
|
return this.mediaProperties.waitForMediaConnectionConnected();
|
|
6497
6636
|
case 3:
|
|
6498
|
-
|
|
6637
|
+
_context24.next = 30;
|
|
6499
6638
|
break;
|
|
6500
6639
|
case 5:
|
|
6501
|
-
|
|
6502
|
-
|
|
6503
|
-
iceConnected =
|
|
6640
|
+
_context24.prev = 5;
|
|
6641
|
+
_context24.t0 = _context24["catch"](0);
|
|
6642
|
+
iceConnected = _context24.t0.iceConnected;
|
|
6504
6643
|
if (this.hasMediaConnectionConnectedAtLeastOnce) {
|
|
6505
|
-
|
|
6644
|
+
_context24.next = 29;
|
|
6506
6645
|
break;
|
|
6507
6646
|
}
|
|
6508
|
-
|
|
6509
|
-
|
|
6510
|
-
|
|
6511
|
-
|
|
6512
|
-
|
|
6513
|
-
|
|
6514
|
-
|
|
6515
|
-
|
|
6516
|
-
|
|
6647
|
+
_context24.t1 = this.webex.internal.newMetrics;
|
|
6648
|
+
_context24.t2 = !this.turnServerUsed;
|
|
6649
|
+
_context24.t3 = this.addMediaData.icePhaseCallback();
|
|
6650
|
+
_context24.t4 = this.webex.internal.newMetrics.callDiagnosticMetrics;
|
|
6651
|
+
_context24.t5 = _internalPluginMetrics.CallDiagnosticUtils;
|
|
6652
|
+
_context24.t6 = ((_this$mediaProperties8 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties8 === void 0 ? void 0 : (_this$mediaProperties9 = _this$mediaProperties8.multistreamConnection) === null || _this$mediaProperties9 === void 0 ? void 0 : (_this$mediaProperties10 = _this$mediaProperties9.pc) === null || _this$mediaProperties10 === void 0 ? void 0 : (_this$mediaProperties11 = _this$mediaProperties10.pc) === null || _this$mediaProperties11 === void 0 ? void 0 : _this$mediaProperties11.signalingState) || ((_this$mediaProperties12 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties12 === void 0 ? void 0 : (_this$mediaProperties13 = _this$mediaProperties12.mediaConnection) === null || _this$mediaProperties13 === void 0 ? void 0 : (_this$mediaProperties14 = _this$mediaProperties13.pc) === null || _this$mediaProperties14 === void 0 ? void 0 : _this$mediaProperties14.signalingState) || 'unknown';
|
|
6653
|
+
_context24.t7 = iceConnected;
|
|
6654
|
+
_context24.t8 = this.turnServerUsed;
|
|
6655
|
+
_context24.next = 19;
|
|
6517
6656
|
return this.webex.meetings.reachability.isWebexMediaBackendUnreachable().catch(function () {
|
|
6518
6657
|
return false;
|
|
6519
6658
|
});
|
|
6520
6659
|
case 19:
|
|
6521
|
-
|
|
6522
|
-
|
|
6523
|
-
signalingState:
|
|
6524
|
-
iceConnected:
|
|
6525
|
-
turnServerUsed:
|
|
6526
|
-
unreachable:
|
|
6660
|
+
_context24.t9 = _context24.sent;
|
|
6661
|
+
_context24.t10 = {
|
|
6662
|
+
signalingState: _context24.t6,
|
|
6663
|
+
iceConnected: _context24.t7,
|
|
6664
|
+
turnServerUsed: _context24.t8,
|
|
6665
|
+
unreachable: _context24.t9
|
|
6527
6666
|
};
|
|
6528
|
-
|
|
6529
|
-
|
|
6530
|
-
clientErrorCode:
|
|
6667
|
+
_context24.t11 = _context24.t5.generateClientErrorCodeForIceFailure.call(_context24.t5, _context24.t10);
|
|
6668
|
+
_context24.t12 = {
|
|
6669
|
+
clientErrorCode: _context24.t11
|
|
6531
6670
|
};
|
|
6532
|
-
|
|
6533
|
-
|
|
6534
|
-
|
|
6535
|
-
canProceed:
|
|
6536
|
-
icePhase:
|
|
6537
|
-
errors:
|
|
6671
|
+
_context24.t13 = _context24.t4.getErrorPayloadForClientErrorCode.call(_context24.t4, _context24.t12);
|
|
6672
|
+
_context24.t14 = [_context24.t13];
|
|
6673
|
+
_context24.t15 = {
|
|
6674
|
+
canProceed: _context24.t2,
|
|
6675
|
+
icePhase: _context24.t3,
|
|
6676
|
+
errors: _context24.t14
|
|
6538
6677
|
};
|
|
6539
|
-
|
|
6678
|
+
_context24.t16 = {
|
|
6540
6679
|
meetingId: this.id
|
|
6541
6680
|
};
|
|
6542
|
-
|
|
6681
|
+
_context24.t17 = {
|
|
6543
6682
|
name: 'client.ice.end',
|
|
6544
|
-
payload:
|
|
6545
|
-
options:
|
|
6683
|
+
payload: _context24.t15,
|
|
6684
|
+
options: _context24.t16
|
|
6546
6685
|
};
|
|
6547
|
-
|
|
6686
|
+
_context24.t1.submitClientEvent.call(_context24.t1, _context24.t17);
|
|
6548
6687
|
case 29:
|
|
6549
6688
|
throw new Error("Timed out waiting for media connection to be connected, correlationId=".concat(this.correlationId));
|
|
6550
6689
|
case 30:
|
|
6551
6690
|
case "end":
|
|
6552
|
-
return
|
|
6691
|
+
return _context24.stop();
|
|
6553
6692
|
}
|
|
6554
|
-
},
|
|
6693
|
+
}, _callee24, this, [[0, 5]]);
|
|
6555
6694
|
}));
|
|
6556
6695
|
function waitForMediaConnectionConnected() {
|
|
6557
6696
|
return _waitForMediaConnectionConnected.apply(this, arguments);
|
|
@@ -6583,18 +6722,6 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6583
6722
|
}
|
|
6584
6723
|
}
|
|
6585
6724
|
|
|
6586
|
-
/**
|
|
6587
|
-
* Handles device logging
|
|
6588
|
-
*
|
|
6589
|
-
* @private
|
|
6590
|
-
* @static
|
|
6591
|
-
* @param {boolean} isAudioEnabled
|
|
6592
|
-
* @param {boolean} isVideoEnabled
|
|
6593
|
-
* @returns {Promise<void>}
|
|
6594
|
-
*/
|
|
6595
|
-
}, {
|
|
6596
|
-
key: "waitForRemoteSDPAnswer",
|
|
6597
|
-
value: (
|
|
6598
6725
|
/**
|
|
6599
6726
|
* Returns a promise. This promise is created once the local sdp offer has been successfully created and is resolved
|
|
6600
6727
|
* once the remote sdp answer has been received.
|
|
@@ -6602,20 +6729,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6602
6729
|
* @private
|
|
6603
6730
|
* @returns {Promise<void>}
|
|
6604
6731
|
*/
|
|
6605
|
-
|
|
6606
|
-
|
|
6732
|
+
}, {
|
|
6733
|
+
key: "waitForRemoteSDPAnswer",
|
|
6734
|
+
value: (function () {
|
|
6735
|
+
var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25() {
|
|
6607
6736
|
var _this41 = this;
|
|
6608
6737
|
var LOG_HEADER, deferSDPAnswer;
|
|
6609
|
-
return _regenerator.default.wrap(function
|
|
6610
|
-
while (1) switch (
|
|
6738
|
+
return _regenerator.default.wrap(function _callee25$(_context25) {
|
|
6739
|
+
while (1) switch (_context25.prev = _context25.next) {
|
|
6611
6740
|
case 0:
|
|
6612
6741
|
LOG_HEADER = 'Meeting:index#addMedia():waitForRemoteSDPAnswer -->';
|
|
6613
6742
|
if (this.deferSDPAnswer) {
|
|
6614
|
-
|
|
6743
|
+
_context25.next = 4;
|
|
6615
6744
|
break;
|
|
6616
6745
|
}
|
|
6617
6746
|
_loggerProxy.default.logger.warn("".concat(LOG_HEADER, " offer not created yet"));
|
|
6618
|
-
return
|
|
6747
|
+
return _context25.abrupt("return", _promise.default.reject(new Error('waitForRemoteSDPAnswer() called before local sdp offer created')));
|
|
6619
6748
|
case 4:
|
|
6620
6749
|
deferSDPAnswer = this.deferSDPAnswer;
|
|
6621
6750
|
this.sdpResponseTimer = setTimeout(function () {
|
|
@@ -6639,12 +6768,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6639
6768
|
deferSDPAnswer.reject(new Error('Timed out waiting for REMOTE SDP ANSWER'));
|
|
6640
6769
|
}, _constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT);
|
|
6641
6770
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " waiting for REMOTE SDP ANSWER..."));
|
|
6642
|
-
return
|
|
6771
|
+
return _context25.abrupt("return", deferSDPAnswer.promise);
|
|
6643
6772
|
case 8:
|
|
6644
6773
|
case "end":
|
|
6645
|
-
return
|
|
6774
|
+
return _context25.stop();
|
|
6646
6775
|
}
|
|
6647
|
-
},
|
|
6776
|
+
}, _callee25, this);
|
|
6648
6777
|
}));
|
|
6649
6778
|
function waitForRemoteSDPAnswer() {
|
|
6650
6779
|
return _waitForRemoteSDPAnswer.apply(this, arguments);
|
|
@@ -6663,30 +6792,30 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6663
6792
|
}, {
|
|
6664
6793
|
key: "retryEstablishMediaConnectionWithForcedTurnDiscovery",
|
|
6665
6794
|
value: (function () {
|
|
6666
|
-
var _retryEstablishMediaConnectionWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6795
|
+
var _retryEstablishMediaConnectionWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee26(remoteMediaManagerConfig, bundlePolicy) {
|
|
6667
6796
|
var LOG_HEADER;
|
|
6668
|
-
return _regenerator.default.wrap(function
|
|
6669
|
-
while (1) switch (
|
|
6797
|
+
return _regenerator.default.wrap(function _callee26$(_context26) {
|
|
6798
|
+
while (1) switch (_context26.prev = _context26.next) {
|
|
6670
6799
|
case 0:
|
|
6671
6800
|
LOG_HEADER = 'Meeting:index#addMedia():retryEstablishMediaConnectionWithForcedTurnDiscovery -->';
|
|
6672
|
-
|
|
6673
|
-
|
|
6801
|
+
_context26.prev = 1;
|
|
6802
|
+
_context26.next = 4;
|
|
6674
6803
|
return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, true);
|
|
6675
6804
|
case 4:
|
|
6676
|
-
|
|
6805
|
+
_context26.next = 10;
|
|
6677
6806
|
break;
|
|
6678
6807
|
case 6:
|
|
6679
|
-
|
|
6680
|
-
|
|
6681
|
-
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " retry with TURN-TLS failed, media connection unable to connect, "),
|
|
6682
|
-
throw
|
|
6808
|
+
_context26.prev = 6;
|
|
6809
|
+
_context26.t0 = _context26["catch"](1);
|
|
6810
|
+
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " retry with TURN-TLS failed, media connection unable to connect, "), _context26.t0);
|
|
6811
|
+
throw _context26.t0;
|
|
6683
6812
|
case 10:
|
|
6684
6813
|
case "end":
|
|
6685
|
-
return
|
|
6814
|
+
return _context26.stop();
|
|
6686
6815
|
}
|
|
6687
|
-
},
|
|
6816
|
+
}, _callee26, this, [[1, 6]]);
|
|
6688
6817
|
}));
|
|
6689
|
-
function retryEstablishMediaConnectionWithForcedTurnDiscovery(
|
|
6818
|
+
function retryEstablishMediaConnectionWithForcedTurnDiscovery(_x20, _x21) {
|
|
6690
6819
|
return _retryEstablishMediaConnectionWithForcedTurnDiscovery.apply(this, arguments);
|
|
6691
6820
|
}
|
|
6692
6821
|
return retryEstablishMediaConnectionWithForcedTurnDiscovery;
|
|
@@ -6704,14 +6833,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6704
6833
|
}, {
|
|
6705
6834
|
key: "retryWithForcedTurnDiscovery",
|
|
6706
6835
|
value: (function () {
|
|
6707
|
-
var _retryWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6836
|
+
var _retryWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee27(remoteMediaManagerConfig, bundlePolicy) {
|
|
6708
6837
|
var LOG_HEADER;
|
|
6709
|
-
return _regenerator.default.wrap(function
|
|
6710
|
-
while (1) switch (
|
|
6838
|
+
return _regenerator.default.wrap(function _callee27$(_context27) {
|
|
6839
|
+
while (1) switch (_context27.prev = _context27.next) {
|
|
6711
6840
|
case 0:
|
|
6712
6841
|
this.addMediaData.retriedWithTurnServer = true;
|
|
6713
6842
|
LOG_HEADER = 'Meeting:index#addMedia():retryWithForcedTurnDiscovery -->';
|
|
6714
|
-
|
|
6843
|
+
_context27.next = 4;
|
|
6715
6844
|
return this.cleanUpBeforeRetryWithTurnServer();
|
|
6716
6845
|
case 4:
|
|
6717
6846
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_RETRY, {
|
|
@@ -6721,24 +6850,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6721
6850
|
reason: 'forcingTurnTls'
|
|
6722
6851
|
});
|
|
6723
6852
|
if (!(this.state === _constants.MEETING_STATE.STATES.LEFT)) {
|
|
6724
|
-
|
|
6853
|
+
_context27.next = 9;
|
|
6725
6854
|
break;
|
|
6726
6855
|
}
|
|
6727
6856
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " meeting state was LEFT after first attempt to establish media connection. Attempting to rejoin. "));
|
|
6728
|
-
|
|
6857
|
+
_context27.next = 9;
|
|
6729
6858
|
return this.join({
|
|
6730
6859
|
rejoin: true
|
|
6731
6860
|
});
|
|
6732
6861
|
case 9:
|
|
6733
|
-
|
|
6862
|
+
_context27.next = 11;
|
|
6734
6863
|
return this.retryEstablishMediaConnectionWithForcedTurnDiscovery(remoteMediaManagerConfig, bundlePolicy);
|
|
6735
6864
|
case 11:
|
|
6736
6865
|
case "end":
|
|
6737
|
-
return
|
|
6866
|
+
return _context27.stop();
|
|
6738
6867
|
}
|
|
6739
|
-
},
|
|
6868
|
+
}, _callee27, this);
|
|
6740
6869
|
}));
|
|
6741
|
-
function retryWithForcedTurnDiscovery(
|
|
6870
|
+
function retryWithForcedTurnDiscovery(_x22, _x23) {
|
|
6742
6871
|
return _retryWithForcedTurnDiscovery.apply(this, arguments);
|
|
6743
6872
|
}
|
|
6744
6873
|
return retryWithForcedTurnDiscovery;
|
|
@@ -6758,32 +6887,32 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6758
6887
|
}, {
|
|
6759
6888
|
key: "handleWaitForMediaConnectionConnectedError",
|
|
6760
6889
|
value: (function () {
|
|
6761
|
-
var _handleWaitForMediaConnectionConnectedError = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6890
|
+
var _handleWaitForMediaConnectionConnectedError = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee28(error, remoteMediaManagerConfig, bundlePolicy) {
|
|
6762
6891
|
var LOG_HEADER;
|
|
6763
|
-
return _regenerator.default.wrap(function
|
|
6764
|
-
while (1) switch (
|
|
6892
|
+
return _regenerator.default.wrap(function _callee28$(_context28) {
|
|
6893
|
+
while (1) switch (_context28.prev = _context28.next) {
|
|
6765
6894
|
case 0:
|
|
6766
6895
|
LOG_HEADER = 'Meeting:index#addMedia():handleWaitForMediaConnectionConnectedError -->'; // @ts-ignore - config coming from registerPlugin
|
|
6767
6896
|
if (this.turnServerUsed) {
|
|
6768
|
-
|
|
6897
|
+
_context28.next = 7;
|
|
6769
6898
|
break;
|
|
6770
6899
|
}
|
|
6771
6900
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " error waiting for media to connect on UDP, TCP, retrying using TURN-TLS, "), error);
|
|
6772
|
-
|
|
6901
|
+
_context28.next = 5;
|
|
6773
6902
|
return this.retryWithForcedTurnDiscovery(remoteMediaManagerConfig, bundlePolicy);
|
|
6774
6903
|
case 5:
|
|
6775
|
-
|
|
6904
|
+
_context28.next = 9;
|
|
6776
6905
|
break;
|
|
6777
6906
|
case 7:
|
|
6778
6907
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " error waiting for media to connect using UDP, TCP and TURN-TLS"), error);
|
|
6779
6908
|
throw new _webexErrors.AddMediaFailed();
|
|
6780
6909
|
case 9:
|
|
6781
6910
|
case "end":
|
|
6782
|
-
return
|
|
6911
|
+
return _context28.stop();
|
|
6783
6912
|
}
|
|
6784
|
-
},
|
|
6913
|
+
}, _callee28, this);
|
|
6785
6914
|
}));
|
|
6786
|
-
function handleWaitForMediaConnectionConnectedError(
|
|
6915
|
+
function handleWaitForMediaConnectionConnectedError(_x24, _x25, _x26) {
|
|
6787
6916
|
return _handleWaitForMediaConnectionConnectedError.apply(this, arguments);
|
|
6788
6917
|
}
|
|
6789
6918
|
return handleWaitForMediaConnectionConnectedError;
|
|
@@ -6799,20 +6928,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6799
6928
|
}, {
|
|
6800
6929
|
key: "doTurnDiscovery",
|
|
6801
6930
|
value: (function () {
|
|
6802
|
-
var _doTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6931
|
+
var _doTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee29(isReconnecting, isForced) {
|
|
6803
6932
|
var cdl, turnDiscoveryResult;
|
|
6804
|
-
return _regenerator.default.wrap(function
|
|
6805
|
-
while (1) switch (
|
|
6933
|
+
return _regenerator.default.wrap(function _callee29$(_context29) {
|
|
6934
|
+
while (1) switch (_context29.prev = _context29.next) {
|
|
6806
6935
|
case 0:
|
|
6807
6936
|
// @ts-ignore
|
|
6808
6937
|
cdl = this.webex.internal.newMetrics.callDiagnosticLatencies; // @ts-ignore
|
|
6809
6938
|
this.webex.internal.newMetrics.submitInternalEvent({
|
|
6810
6939
|
name: 'internal.client.add-media.turn-discovery.start'
|
|
6811
6940
|
});
|
|
6812
|
-
|
|
6941
|
+
_context29.next = 4;
|
|
6813
6942
|
return this.roap.doTurnDiscovery(this, isReconnecting, isForced);
|
|
6814
6943
|
case 4:
|
|
6815
|
-
turnDiscoveryResult =
|
|
6944
|
+
turnDiscoveryResult = _context29.sent;
|
|
6816
6945
|
this.turnDiscoverySkippedReason = turnDiscoveryResult === null || turnDiscoveryResult === void 0 ? void 0 : turnDiscoveryResult.turnDiscoverySkippedReason;
|
|
6817
6946
|
this.turnServerUsed = !this.turnDiscoverySkippedReason;
|
|
6818
6947
|
|
|
@@ -6828,14 +6957,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6828
6957
|
retriedWithTurnServer: this.addMediaData.retriedWithTurnServer
|
|
6829
6958
|
});
|
|
6830
6959
|
}
|
|
6831
|
-
return
|
|
6960
|
+
return _context29.abrupt("return", turnDiscoveryResult);
|
|
6832
6961
|
case 10:
|
|
6833
6962
|
case "end":
|
|
6834
|
-
return
|
|
6963
|
+
return _context29.stop();
|
|
6835
6964
|
}
|
|
6836
|
-
},
|
|
6965
|
+
}, _callee29, this);
|
|
6837
6966
|
}));
|
|
6838
|
-
function doTurnDiscovery(
|
|
6967
|
+
function doTurnDiscovery(_x27, _x28) {
|
|
6839
6968
|
return _doTurnDiscovery.apply(this, arguments);
|
|
6840
6969
|
}
|
|
6841
6970
|
return doTurnDiscovery;
|
|
@@ -6854,35 +6983,35 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6854
6983
|
}, {
|
|
6855
6984
|
key: "establishMediaConnection",
|
|
6856
6985
|
value: (function () {
|
|
6857
|
-
var _establishMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6986
|
+
var _establishMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee30(remoteMediaManagerConfig, bundlePolicy, isForced, turnServerInfo) {
|
|
6858
6987
|
var _this$locusMediaReque;
|
|
6859
6988
|
var LOG_HEADER, isReconnecting, _yield$this$doTurnDis, mc;
|
|
6860
|
-
return _regenerator.default.wrap(function
|
|
6861
|
-
while (1) switch (
|
|
6989
|
+
return _regenerator.default.wrap(function _callee30$(_context30) {
|
|
6990
|
+
while (1) switch (_context30.prev = _context30.next) {
|
|
6862
6991
|
case 0:
|
|
6863
6992
|
LOG_HEADER = 'Meeting:index#addMedia():establishMediaConnection -->';
|
|
6864
6993
|
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
|
|
6865
6994
|
if (this.isMoveToInProgress && this.turnServerUsed) {
|
|
6866
6995
|
isForced = true;
|
|
6867
6996
|
}
|
|
6868
|
-
|
|
6997
|
+
_context30.prev = 3;
|
|
6869
6998
|
if (turnServerInfo) {
|
|
6870
|
-
|
|
6999
|
+
_context30.next = 9;
|
|
6871
7000
|
break;
|
|
6872
7001
|
}
|
|
6873
|
-
|
|
7002
|
+
_context30.next = 7;
|
|
6874
7003
|
return this.doTurnDiscovery(isReconnecting, isForced);
|
|
6875
7004
|
case 7:
|
|
6876
|
-
_yield$this$doTurnDis =
|
|
7005
|
+
_yield$this$doTurnDis = _context30.sent;
|
|
6877
7006
|
turnServerInfo = _yield$this$doTurnDis.turnServerInfo;
|
|
6878
7007
|
case 9:
|
|
6879
|
-
|
|
7008
|
+
_context30.next = 11;
|
|
6880
7009
|
return this.createMediaConnection(turnServerInfo, bundlePolicy);
|
|
6881
7010
|
case 11:
|
|
6882
|
-
mc =
|
|
6883
|
-
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " media connection created"));
|
|
7011
|
+
mc = _context30.sent;
|
|
7012
|
+
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " media connection created this.isMultistream=").concat(this.isMultistream));
|
|
6884
7013
|
if (!this.isMultistream) {
|
|
6885
|
-
|
|
7014
|
+
_context30.next = 21;
|
|
6886
7015
|
break;
|
|
6887
7016
|
}
|
|
6888
7017
|
this.remoteMediaManager = new _remoteMediaManager.RemoteMediaManager(this.receiveSlotManager, this.mediaRequestManagers, remoteMediaManagerConfig);
|
|
@@ -6890,42 +7019,42 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6890
7019
|
this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.InterpretationAudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_INTERPRETATION_AUDIO_CREATED);
|
|
6891
7020
|
this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.ScreenShareAudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_SCREEN_SHARE_AUDIO_CREATED);
|
|
6892
7021
|
this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.VideoLayoutChanged, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_VIDEO_LAYOUT_CHANGED);
|
|
6893
|
-
|
|
7022
|
+
_context30.next = 21;
|
|
6894
7023
|
return this.remoteMediaManager.start();
|
|
6895
7024
|
case 21:
|
|
6896
|
-
|
|
7025
|
+
_context30.next = 23;
|
|
6897
7026
|
return mc.initiateOffer();
|
|
6898
7027
|
case 23:
|
|
6899
|
-
|
|
7028
|
+
_context30.next = 25;
|
|
6900
7029
|
return this.waitForRemoteSDPAnswer();
|
|
6901
7030
|
case 25:
|
|
6902
7031
|
this.handleMediaLogging(this.mediaProperties);
|
|
6903
|
-
|
|
7032
|
+
_context30.next = 32;
|
|
6904
7033
|
break;
|
|
6905
7034
|
case 28:
|
|
6906
|
-
|
|
6907
|
-
|
|
6908
|
-
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " error establishing media connection, "),
|
|
6909
|
-
throw
|
|
7035
|
+
_context30.prev = 28;
|
|
7036
|
+
_context30.t0 = _context30["catch"](3);
|
|
7037
|
+
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " error establishing media connection, "), _context30.t0);
|
|
7038
|
+
throw _context30.t0;
|
|
6910
7039
|
case 32:
|
|
6911
|
-
|
|
6912
|
-
|
|
7040
|
+
_context30.prev = 32;
|
|
7041
|
+
_context30.next = 35;
|
|
6913
7042
|
return this.waitForMediaConnectionConnected();
|
|
6914
7043
|
case 35:
|
|
6915
|
-
|
|
7044
|
+
_context30.next = 41;
|
|
6916
7045
|
break;
|
|
6917
7046
|
case 37:
|
|
6918
|
-
|
|
6919
|
-
|
|
6920
|
-
|
|
6921
|
-
return this.handleWaitForMediaConnectionConnectedError(
|
|
7047
|
+
_context30.prev = 37;
|
|
7048
|
+
_context30.t1 = _context30["catch"](32);
|
|
7049
|
+
_context30.next = 41;
|
|
7050
|
+
return this.handleWaitForMediaConnectionConnectedError(_context30.t1, remoteMediaManagerConfig, bundlePolicy);
|
|
6922
7051
|
case 41:
|
|
6923
7052
|
case "end":
|
|
6924
|
-
return
|
|
7053
|
+
return _context30.stop();
|
|
6925
7054
|
}
|
|
6926
|
-
},
|
|
7055
|
+
}, _callee30, this, [[3, 28], [32, 37]]);
|
|
6927
7056
|
}));
|
|
6928
|
-
function establishMediaConnection(
|
|
7057
|
+
function establishMediaConnection(_x29, _x30, _x31, _x32) {
|
|
6929
7058
|
return _establishMediaConnection.apply(this, arguments);
|
|
6930
7059
|
}
|
|
6931
7060
|
return establishMediaConnection;
|
|
@@ -6940,22 +7069,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6940
7069
|
}, {
|
|
6941
7070
|
key: "cleanUpOnAddMediaFailure",
|
|
6942
7071
|
value: (function () {
|
|
6943
|
-
var _cleanUpOnAddMediaFailure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6944
|
-
return _regenerator.default.wrap(function
|
|
6945
|
-
while (1) switch (
|
|
7072
|
+
var _cleanUpOnAddMediaFailure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee31() {
|
|
7073
|
+
return _regenerator.default.wrap(function _callee31$(_context31) {
|
|
7074
|
+
while (1) switch (_context31.prev = _context31.next) {
|
|
6946
7075
|
case 0:
|
|
6947
7076
|
if (!this.statsAnalyzer) {
|
|
6948
|
-
|
|
7077
|
+
_context31.next = 3;
|
|
6949
7078
|
break;
|
|
6950
7079
|
}
|
|
6951
|
-
|
|
7080
|
+
_context31.next = 3;
|
|
6952
7081
|
return this.statsAnalyzer.stopAnalyzer();
|
|
6953
7082
|
case 3:
|
|
6954
7083
|
this.statsAnalyzer = null;
|
|
6955
7084
|
|
|
6956
7085
|
// when media fails, we want to upload a webrtc dump to see whats going on
|
|
6957
7086
|
// this function is async, but returns once the stats have been gathered
|
|
6958
|
-
|
|
7087
|
+
_context31.next = 6;
|
|
6959
7088
|
return this.forceSendStatsReport({
|
|
6960
7089
|
callFrom: 'addMedia'
|
|
6961
7090
|
});
|
|
@@ -6966,15 +7095,58 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6966
7095
|
}
|
|
6967
7096
|
case 7:
|
|
6968
7097
|
case "end":
|
|
6969
|
-
return
|
|
7098
|
+
return _context31.stop();
|
|
6970
7099
|
}
|
|
6971
|
-
},
|
|
7100
|
+
}, _callee31, this);
|
|
6972
7101
|
}));
|
|
6973
7102
|
function cleanUpOnAddMediaFailure() {
|
|
6974
7103
|
return _cleanUpOnAddMediaFailure.apply(this, arguments);
|
|
6975
7104
|
}
|
|
6976
7105
|
return cleanUpOnAddMediaFailure;
|
|
6977
7106
|
}()
|
|
7107
|
+
/**
|
|
7108
|
+
* Cleans up stats analyzer, peer connection and other things before
|
|
7109
|
+
* we can create a new transcoded media connection
|
|
7110
|
+
*
|
|
7111
|
+
* @private
|
|
7112
|
+
* @returns {Promise<void>}
|
|
7113
|
+
*/
|
|
7114
|
+
)
|
|
7115
|
+
}, {
|
|
7116
|
+
key: "downgradeFromMultistreamToTranscoded",
|
|
7117
|
+
value: (function () {
|
|
7118
|
+
var _downgradeFromMultistreamToTranscoded = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32() {
|
|
7119
|
+
var _this$locusMediaReque2;
|
|
7120
|
+
return _regenerator.default.wrap(function _callee32$(_context32) {
|
|
7121
|
+
while (1) switch (_context32.prev = _context32.next) {
|
|
7122
|
+
case 0:
|
|
7123
|
+
if (!this.statsAnalyzer) {
|
|
7124
|
+
_context32.next = 3;
|
|
7125
|
+
break;
|
|
7126
|
+
}
|
|
7127
|
+
_context32.next = 3;
|
|
7128
|
+
return this.statsAnalyzer.stopAnalyzer();
|
|
7129
|
+
case 3:
|
|
7130
|
+
this.statsAnalyzer = null;
|
|
7131
|
+
this.isMultistream = false;
|
|
7132
|
+
if (this.mediaProperties.webrtcMediaConnection) {
|
|
7133
|
+
// close peer connection, but don't reset mute state information, because we will want to use it on the retry
|
|
7134
|
+
this.closePeerConnections(false);
|
|
7135
|
+
this.mediaProperties.unsetPeerConnection();
|
|
7136
|
+
}
|
|
7137
|
+
(_this$locusMediaReque2 = this.locusMediaRequest) === null || _this$locusMediaReque2 === void 0 ? void 0 : _this$locusMediaReque2.downgradeFromMultistreamToTranscoded();
|
|
7138
|
+
this.createStatsAnalyzer();
|
|
7139
|
+
case 8:
|
|
7140
|
+
case "end":
|
|
7141
|
+
return _context32.stop();
|
|
7142
|
+
}
|
|
7143
|
+
}, _callee32, this);
|
|
7144
|
+
}));
|
|
7145
|
+
function downgradeFromMultistreamToTranscoded() {
|
|
7146
|
+
return _downgradeFromMultistreamToTranscoded.apply(this, arguments);
|
|
7147
|
+
}
|
|
7148
|
+
return downgradeFromMultistreamToTranscoded;
|
|
7149
|
+
}()
|
|
6978
7150
|
/**
|
|
6979
7151
|
* Sends stats report, closes peer connection and cleans up any media connection
|
|
6980
7152
|
* related things before trying to establish media connection again with turn server
|
|
@@ -6986,11 +7158,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6986
7158
|
}, {
|
|
6987
7159
|
key: "cleanUpBeforeRetryWithTurnServer",
|
|
6988
7160
|
value: (function () {
|
|
6989
|
-
var _cleanUpBeforeRetryWithTurnServer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6990
|
-
return _regenerator.default.wrap(function
|
|
6991
|
-
while (1) switch (
|
|
7161
|
+
var _cleanUpBeforeRetryWithTurnServer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33() {
|
|
7162
|
+
return _regenerator.default.wrap(function _callee33$(_context33) {
|
|
7163
|
+
while (1) switch (_context33.prev = _context33.next) {
|
|
6992
7164
|
case 0:
|
|
6993
|
-
|
|
7165
|
+
_context33.next = 2;
|
|
6994
7166
|
return this.forceSendStatsReport({
|
|
6995
7167
|
callFrom: 'cleanUpBeforeRetryWithTurnServer'
|
|
6996
7168
|
});
|
|
@@ -7010,9 +7182,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7010
7182
|
}
|
|
7011
7183
|
case 3:
|
|
7012
7184
|
case "end":
|
|
7013
|
-
return
|
|
7185
|
+
return _context33.stop();
|
|
7014
7186
|
}
|
|
7015
|
-
},
|
|
7187
|
+
}, _callee33, this);
|
|
7016
7188
|
}));
|
|
7017
7189
|
function cleanUpBeforeRetryWithTurnServer() {
|
|
7018
7190
|
return _cleanUpBeforeRetryWithTurnServer.apply(this, arguments);
|
|
@@ -7022,34 +7194,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7022
7194
|
}, {
|
|
7023
7195
|
key: "cleanUpBeforeReconnection",
|
|
7024
7196
|
value: function () {
|
|
7025
|
-
var _cleanUpBeforeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
7026
|
-
return _regenerator.default.wrap(function
|
|
7027
|
-
while (1) switch (
|
|
7197
|
+
var _cleanUpBeforeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34() {
|
|
7198
|
+
return _regenerator.default.wrap(function _callee34$(_context34) {
|
|
7199
|
+
while (1) switch (_context34.prev = _context34.next) {
|
|
7028
7200
|
case 0:
|
|
7029
|
-
|
|
7030
|
-
|
|
7201
|
+
_context34.prev = 0;
|
|
7202
|
+
_context34.next = 3;
|
|
7031
7203
|
return this.forceSendStatsReport({
|
|
7032
7204
|
callFrom: 'cleanUpBeforeReconnection'
|
|
7033
7205
|
});
|
|
7034
7206
|
case 3:
|
|
7035
7207
|
if (!this.statsAnalyzer) {
|
|
7036
|
-
|
|
7208
|
+
_context34.next = 6;
|
|
7037
7209
|
break;
|
|
7038
7210
|
}
|
|
7039
|
-
|
|
7211
|
+
_context34.next = 6;
|
|
7040
7212
|
return this.statsAnalyzer.stopAnalyzer();
|
|
7041
7213
|
case 6:
|
|
7042
|
-
|
|
7214
|
+
_context34.next = 11;
|
|
7043
7215
|
break;
|
|
7044
7216
|
case 8:
|
|
7045
|
-
|
|
7046
|
-
|
|
7047
|
-
_loggerProxy.default.logger.error('Meeting:index#cleanUpBeforeReconnection --> Error during cleanup: ',
|
|
7217
|
+
_context34.prev = 8;
|
|
7218
|
+
_context34.t0 = _context34["catch"](0);
|
|
7219
|
+
_loggerProxy.default.logger.error('Meeting:index#cleanUpBeforeReconnection --> Error during cleanup: ', _context34.t0);
|
|
7048
7220
|
case 11:
|
|
7049
7221
|
case "end":
|
|
7050
|
-
return
|
|
7222
|
+
return _context34.stop();
|
|
7051
7223
|
}
|
|
7052
|
-
},
|
|
7224
|
+
}, _callee34, this, [[0, 8]]);
|
|
7053
7225
|
}));
|
|
7054
7226
|
function cleanUpBeforeReconnection() {
|
|
7055
7227
|
return _cleanUpBeforeReconnection.apply(this, arguments);
|
|
@@ -7117,7 +7289,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7117
7289
|
}, {
|
|
7118
7290
|
key: "addMediaInternal",
|
|
7119
7291
|
value: (function () {
|
|
7120
|
-
var _addMediaInternal = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
7292
|
+
var _addMediaInternal = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35(icePhaseCallback, turnServerInfo, forceTurnDiscovery) {
|
|
7121
7293
|
var options,
|
|
7122
7294
|
LOG_HEADER,
|
|
7123
7295
|
localStreams,
|
|
@@ -7139,8 +7311,6 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7139
7311
|
numTransports,
|
|
7140
7312
|
reachabilityStats,
|
|
7141
7313
|
iceCandidateErrors,
|
|
7142
|
-
_this$mediaProperties13,
|
|
7143
|
-
_this$mediaProperties14,
|
|
7144
7314
|
_this$mediaProperties15,
|
|
7145
7315
|
_this$mediaProperties16,
|
|
7146
7316
|
_this$mediaProperties17,
|
|
@@ -7160,29 +7330,31 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7160
7330
|
_this$mediaProperties31,
|
|
7161
7331
|
_this$mediaProperties32,
|
|
7162
7332
|
_this$mediaProperties33,
|
|
7333
|
+
_this$mediaProperties34,
|
|
7334
|
+
_this$mediaProperties35,
|
|
7163
7335
|
reachabilityMetrics,
|
|
7164
7336
|
_yield$this$mediaProp2,
|
|
7165
7337
|
_selectedCandidatePairChanges,
|
|
7166
7338
|
_numTransports,
|
|
7167
7339
|
_iceCandidateErrors,
|
|
7168
|
-
|
|
7169
|
-
return _regenerator.default.wrap(function
|
|
7170
|
-
while (1) switch (
|
|
7340
|
+
_args35 = arguments;
|
|
7341
|
+
return _regenerator.default.wrap(function _callee35$(_context35) {
|
|
7342
|
+
while (1) switch (_context35.prev = _context35.next) {
|
|
7171
7343
|
case 0:
|
|
7172
|
-
options =
|
|
7344
|
+
options = _args35.length > 3 && _args35[3] !== undefined ? _args35[3] : {};
|
|
7173
7345
|
this.addMediaData.retriedWithTurnServer = false;
|
|
7174
7346
|
this.addMediaData.icePhaseCallback = icePhaseCallback;
|
|
7175
7347
|
this.hasMediaConnectionConnectedAtLeastOnce = false;
|
|
7176
7348
|
LOG_HEADER = 'Meeting:index#addMedia -->';
|
|
7177
7349
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " called with: options=").concat((0, _stringify.default)(options), ", turnServerInfo=").concat((0, _stringify.default)(turnServerInfo), ", forceTurnDiscovery=").concat(forceTurnDiscovery));
|
|
7178
7350
|
if (!(options.allowMediaInLobby !== true && this.meetingState !== _constants.FULL_STATE.ACTIVE)) {
|
|
7179
|
-
|
|
7351
|
+
_context35.next = 8;
|
|
7180
7352
|
break;
|
|
7181
7353
|
}
|
|
7182
7354
|
throw new _webexErrors.MeetingNotActiveError();
|
|
7183
7355
|
case 8:
|
|
7184
7356
|
if (!_util2.default.isUserInLeftState(this.locusInfo)) {
|
|
7185
|
-
|
|
7357
|
+
_context35.next = 10;
|
|
7186
7358
|
break;
|
|
7187
7359
|
}
|
|
7188
7360
|
throw new _webexErrors.UserNotJoinedError();
|
|
@@ -7193,7 +7365,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7193
7365
|
// If the user is unjoined or guest waiting in lobby dont allow the user to addMedia
|
|
7194
7366
|
// @ts-ignore - isUserUnadmitted coming from SelfUtil
|
|
7195
7367
|
if (!(this.isUserUnadmitted && !this.wirelessShare && !this.allowMediaInLobby)) {
|
|
7196
|
-
|
|
7368
|
+
_context35.next = 14;
|
|
7197
7369
|
break;
|
|
7198
7370
|
}
|
|
7199
7371
|
throw new _webexErrors.UserInLobbyError();
|
|
@@ -7236,45 +7408,56 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7236
7408
|
});
|
|
7237
7409
|
this.audio = (0, _muteState.createMuteState)(_constants.AUDIO, this, audioEnabled);
|
|
7238
7410
|
this.video = (0, _muteState.createMuteState)(_constants.VIDEO, this, videoEnabled);
|
|
7239
|
-
|
|
7240
|
-
|
|
7411
|
+
this.brbState = (0, _brbState.createBrbState)(this, false);
|
|
7412
|
+
_context35.prev = 19;
|
|
7413
|
+
_context35.next = 22;
|
|
7241
7414
|
return this.setUpLocalStreamReferences(localStreams);
|
|
7242
|
-
case
|
|
7415
|
+
case 22:
|
|
7243
7416
|
this.setMercuryListener();
|
|
7244
7417
|
this.createStatsAnalyzer();
|
|
7245
|
-
|
|
7418
|
+
_context35.prev = 24;
|
|
7419
|
+
_context35.next = 27;
|
|
7246
7420
|
return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, forceTurnDiscovery, turnServerInfo);
|
|
7247
|
-
case
|
|
7248
|
-
|
|
7249
|
-
|
|
7421
|
+
case 27:
|
|
7422
|
+
_context35.next = 40;
|
|
7423
|
+
break;
|
|
7424
|
+
case 29:
|
|
7425
|
+
_context35.prev = 29;
|
|
7426
|
+
_context35.t0 = _context35["catch"](24);
|
|
7427
|
+
if (!(_context35.t0 instanceof _multistreamNotSupportedError.default)) {
|
|
7428
|
+
_context35.next = 39;
|
|
7250
7429
|
break;
|
|
7251
7430
|
}
|
|
7252
|
-
|
|
7253
|
-
|
|
7254
|
-
|
|
7255
|
-
|
|
7431
|
+
_loggerProxy.default.logger.warn("".concat(LOG_HEADER, " we asked for multistream backend (Homer), but got transcoded backend, recreating media connection..."));
|
|
7432
|
+
_context35.next = 35;
|
|
7433
|
+
return this.downgradeFromMultistreamToTranscoded();
|
|
7434
|
+
case 35:
|
|
7435
|
+
_context35.next = 37;
|
|
7436
|
+
return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, true, undefined);
|
|
7437
|
+
case 37:
|
|
7438
|
+
_context35.next = 40;
|
|
7256
7439
|
break;
|
|
7257
|
-
case
|
|
7258
|
-
|
|
7259
|
-
case
|
|
7440
|
+
case 39:
|
|
7441
|
+
throw _context35.t0;
|
|
7442
|
+
case 40:
|
|
7260
7443
|
if (!this.mediaProperties.hasLocalShareStream()) {
|
|
7261
|
-
|
|
7444
|
+
_context35.next = 43;
|
|
7262
7445
|
break;
|
|
7263
7446
|
}
|
|
7264
|
-
|
|
7447
|
+
_context35.next = 43;
|
|
7265
7448
|
return this.enqueueScreenShareFloorRequest();
|
|
7266
|
-
case
|
|
7267
|
-
|
|
7449
|
+
case 43:
|
|
7450
|
+
_context35.next = 45;
|
|
7268
7451
|
return this.mediaProperties.getCurrentConnectionInfo();
|
|
7269
|
-
case
|
|
7270
|
-
_yield$this$mediaProp =
|
|
7452
|
+
case 45:
|
|
7453
|
+
_yield$this$mediaProp = _context35.sent;
|
|
7271
7454
|
connectionType = _yield$this$mediaProp.connectionType;
|
|
7272
7455
|
selectedCandidatePairChanges = _yield$this$mediaProp.selectedCandidatePairChanges;
|
|
7273
7456
|
numTransports = _yield$this$mediaProp.numTransports;
|
|
7274
|
-
|
|
7457
|
+
_context35.next = 51;
|
|
7275
7458
|
return this.webex.meetings.reachability.getReachabilityMetrics();
|
|
7276
|
-
case
|
|
7277
|
-
reachabilityStats =
|
|
7459
|
+
case 51:
|
|
7460
|
+
reachabilityStats = _context35.sent;
|
|
7278
7461
|
iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
|
|
7279
7462
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, _objectSpread(_objectSpread(_objectSpread({
|
|
7280
7463
|
correlation_id: this.correlationId,
|
|
@@ -7300,31 +7483,31 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7300
7483
|
// We can log ReceiveSlot SSRCs only after the SDP exchange, so doing it here:
|
|
7301
7484
|
(_this$remoteMediaMana = this.remoteMediaManager) === null || _this$remoteMediaMana === void 0 ? void 0 : _this$remoteMediaMana.logAllReceiveSlots();
|
|
7302
7485
|
this.startPeriodicLogUpload();
|
|
7303
|
-
|
|
7486
|
+
_context35.next = 78;
|
|
7304
7487
|
break;
|
|
7305
|
-
case
|
|
7306
|
-
|
|
7307
|
-
|
|
7308
|
-
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "),
|
|
7488
|
+
case 60:
|
|
7489
|
+
_context35.prev = 60;
|
|
7490
|
+
_context35.t1 = _context35["catch"](19);
|
|
7491
|
+
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context35.t1);
|
|
7309
7492
|
|
|
7310
7493
|
// @ts-ignore
|
|
7311
|
-
|
|
7494
|
+
_context35.next = 65;
|
|
7312
7495
|
return this.webex.meetings.reachability.getReachabilityMetrics();
|
|
7313
|
-
case
|
|
7314
|
-
reachabilityMetrics =
|
|
7315
|
-
|
|
7496
|
+
case 65:
|
|
7497
|
+
reachabilityMetrics = _context35.sent;
|
|
7498
|
+
_context35.next = 68;
|
|
7316
7499
|
return this.mediaProperties.getCurrentConnectionInfo();
|
|
7317
|
-
case
|
|
7318
|
-
_yield$this$mediaProp2 =
|
|
7500
|
+
case 68:
|
|
7501
|
+
_yield$this$mediaProp2 = _context35.sent;
|
|
7319
7502
|
_selectedCandidatePairChanges = _yield$this$mediaProp2.selectedCandidatePairChanges;
|
|
7320
7503
|
_numTransports = _yield$this$mediaProp2.numTransports;
|
|
7321
7504
|
_iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
|
|
7322
7505
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_FAILURE, _objectSpread(_objectSpread(_objectSpread({
|
|
7323
7506
|
correlation_id: this.correlationId,
|
|
7324
7507
|
locus_id: this.locusUrl.split('/').pop(),
|
|
7325
|
-
reason:
|
|
7326
|
-
stack:
|
|
7327
|
-
code:
|
|
7508
|
+
reason: _context35.t1.message,
|
|
7509
|
+
stack: _context35.t1.stack,
|
|
7510
|
+
code: _context35.t1.code,
|
|
7328
7511
|
selectedCandidatePairChanges: _selectedCandidatePairChanges,
|
|
7329
7512
|
numTransports: _numTransports,
|
|
7330
7513
|
turnDiscoverySkippedReason: this.turnDiscoverySkippedReason,
|
|
@@ -7332,37 +7515,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7332
7515
|
retriedWithTurnServer: this.addMediaData.retriedWithTurnServer,
|
|
7333
7516
|
isMultistream: this.isMultistream,
|
|
7334
7517
|
isJoinWithMediaRetry: this.joinWithMediaRetryInfo.isRetry,
|
|
7335
|
-
signalingState: ((_this$
|
|
7336
|
-
connectionState: ((_this$
|
|
7337
|
-
iceConnectionState: ((_this$
|
|
7518
|
+
signalingState: ((_this$mediaProperties15 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties15 === void 0 ? void 0 : (_this$mediaProperties16 = _this$mediaProperties15.multistreamConnection) === null || _this$mediaProperties16 === void 0 ? void 0 : (_this$mediaProperties17 = _this$mediaProperties16.pc) === null || _this$mediaProperties17 === void 0 ? void 0 : (_this$mediaProperties18 = _this$mediaProperties17.pc) === null || _this$mediaProperties18 === void 0 ? void 0 : _this$mediaProperties18.signalingState) || ((_this$mediaProperties19 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties19 === void 0 ? void 0 : (_this$mediaProperties20 = _this$mediaProperties19.mediaConnection) === null || _this$mediaProperties20 === void 0 ? void 0 : (_this$mediaProperties21 = _this$mediaProperties20.pc) === null || _this$mediaProperties21 === void 0 ? void 0 : _this$mediaProperties21.signalingState) || 'unknown',
|
|
7519
|
+
connectionState: ((_this$mediaProperties22 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties22 === void 0 ? void 0 : (_this$mediaProperties23 = _this$mediaProperties22.multistreamConnection) === null || _this$mediaProperties23 === void 0 ? void 0 : (_this$mediaProperties24 = _this$mediaProperties23.pc) === null || _this$mediaProperties24 === void 0 ? void 0 : (_this$mediaProperties25 = _this$mediaProperties24.pc) === null || _this$mediaProperties25 === void 0 ? void 0 : _this$mediaProperties25.connectionState) || ((_this$mediaProperties26 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties26 === void 0 ? void 0 : (_this$mediaProperties27 = _this$mediaProperties26.mediaConnection) === null || _this$mediaProperties27 === void 0 ? void 0 : (_this$mediaProperties28 = _this$mediaProperties27.pc) === null || _this$mediaProperties28 === void 0 ? void 0 : _this$mediaProperties28.connectionState) || 'unknown',
|
|
7520
|
+
iceConnectionState: ((_this$mediaProperties29 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties29 === void 0 ? void 0 : (_this$mediaProperties30 = _this$mediaProperties29.multistreamConnection) === null || _this$mediaProperties30 === void 0 ? void 0 : (_this$mediaProperties31 = _this$mediaProperties30.pc) === null || _this$mediaProperties31 === void 0 ? void 0 : (_this$mediaProperties32 = _this$mediaProperties31.pc) === null || _this$mediaProperties32 === void 0 ? void 0 : _this$mediaProperties32.iceConnectionState) || ((_this$mediaProperties33 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties33 === void 0 ? void 0 : (_this$mediaProperties34 = _this$mediaProperties33.mediaConnection) === null || _this$mediaProperties34 === void 0 ? void 0 : (_this$mediaProperties35 = _this$mediaProperties34.pc) === null || _this$mediaProperties35 === void 0 ? void 0 : _this$mediaProperties35.iceConnectionState) || 'unknown'
|
|
7338
7521
|
}, reachabilityMetrics), _iceCandidateErrors), {}, {
|
|
7339
7522
|
iceCandidatesCount: this.iceCandidatesCount
|
|
7340
7523
|
}));
|
|
7341
|
-
|
|
7524
|
+
_context35.next = 75;
|
|
7342
7525
|
return this.cleanUpOnAddMediaFailure();
|
|
7343
|
-
case
|
|
7526
|
+
case 75:
|
|
7344
7527
|
// Upload logs on error while adding media
|
|
7345
7528
|
_triggerProxy.default.trigger(this, {
|
|
7346
7529
|
file: 'meeting/index',
|
|
7347
7530
|
function: 'addMedia'
|
|
7348
7531
|
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
|
|
7349
|
-
if (
|
|
7532
|
+
if (_context35.t1 instanceof _internalMediaCore.Errors.SdpError) {
|
|
7350
7533
|
this.leave({
|
|
7351
7534
|
reason: _constants.MEETING_REMOVED_REASON.MEETING_CONNECTION_FAILED
|
|
7352
7535
|
});
|
|
7353
7536
|
}
|
|
7354
|
-
throw
|
|
7355
|
-
case
|
|
7356
|
-
|
|
7537
|
+
throw _context35.t1;
|
|
7538
|
+
case 78:
|
|
7539
|
+
_context35.prev = 78;
|
|
7357
7540
|
this.addMediaData.icePhaseCallback = DEFAULT_ICE_PHASE_CALLBACK;
|
|
7358
|
-
return
|
|
7359
|
-
case
|
|
7541
|
+
return _context35.finish(78);
|
|
7542
|
+
case 81:
|
|
7360
7543
|
case "end":
|
|
7361
|
-
return
|
|
7544
|
+
return _context35.stop();
|
|
7362
7545
|
}
|
|
7363
|
-
},
|
|
7546
|
+
}, _callee35, this, [[19, 60, 78, 81], [24, 29]]);
|
|
7364
7547
|
}));
|
|
7365
|
-
function addMediaInternal(
|
|
7548
|
+
function addMediaInternal(_x33, _x34, _x35) {
|
|
7366
7549
|
return _addMediaInternal.apply(this, arguments);
|
|
7367
7550
|
}
|
|
7368
7551
|
return addMediaInternal;
|
|
@@ -7428,35 +7611,35 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7428
7611
|
* @memberof Meeting
|
|
7429
7612
|
*/
|
|
7430
7613
|
function () {
|
|
7431
|
-
var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
7614
|
+
var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee36(options) {
|
|
7432
7615
|
var audioEnabled, videoEnabled, shareAudioEnabled, shareVideoEnabled, _this$audio3, _this$video3;
|
|
7433
|
-
return _regenerator.default.wrap(function
|
|
7434
|
-
while (1) switch (
|
|
7616
|
+
return _regenerator.default.wrap(function _callee36$(_context36) {
|
|
7617
|
+
while (1) switch (_context36.prev = _context36.next) {
|
|
7435
7618
|
case 0:
|
|
7436
7619
|
this.checkMediaConnection();
|
|
7437
7620
|
audioEnabled = options.audioEnabled, videoEnabled = options.videoEnabled, shareAudioEnabled = options.shareAudioEnabled, shareVideoEnabled = options.shareVideoEnabled;
|
|
7438
7621
|
_loggerProxy.default.logger.log("Meeting:index#updateMedia --> called with options=".concat((0, _stringify.default)(options)));
|
|
7439
7622
|
if (this.canUpdateMedia()) {
|
|
7440
|
-
|
|
7623
|
+
_context36.next = 5;
|
|
7441
7624
|
break;
|
|
7442
7625
|
}
|
|
7443
|
-
return
|
|
7626
|
+
return _context36.abrupt("return", this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.UPDATE_MEDIA, options));
|
|
7444
7627
|
case 5:
|
|
7445
7628
|
if (!this.isMultistream) {
|
|
7446
|
-
|
|
7629
|
+
_context36.next = 10;
|
|
7447
7630
|
break;
|
|
7448
7631
|
}
|
|
7449
7632
|
if (!(shareAudioEnabled !== undefined || shareVideoEnabled !== undefined)) {
|
|
7450
|
-
|
|
7633
|
+
_context36.next = 8;
|
|
7451
7634
|
break;
|
|
7452
7635
|
}
|
|
7453
7636
|
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');
|
|
7454
7637
|
case 8:
|
|
7455
|
-
|
|
7638
|
+
_context36.next = 12;
|
|
7456
7639
|
break;
|
|
7457
7640
|
case 10:
|
|
7458
7641
|
if (!(shareAudioEnabled !== undefined)) {
|
|
7459
|
-
|
|
7642
|
+
_context36.next = 12;
|
|
7460
7643
|
break;
|
|
7461
7644
|
}
|
|
7462
7645
|
throw new Error('toggling shareAudioEnabled in a transcoded meeting is not supported as of now');
|
|
@@ -7481,20 +7664,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7481
7664
|
this.mediaProperties.mediaDirection.receiveShare = !!(shareAudioEnabled || shareVideoEnabled);
|
|
7482
7665
|
}
|
|
7483
7666
|
if (this.isMultistream) {
|
|
7484
|
-
|
|
7667
|
+
_context36.next = 18;
|
|
7485
7668
|
break;
|
|
7486
7669
|
}
|
|
7487
|
-
|
|
7670
|
+
_context36.next = 18;
|
|
7488
7671
|
return this.updateTranscodedMediaConnection();
|
|
7489
7672
|
case 18:
|
|
7490
|
-
return
|
|
7673
|
+
return _context36.abrupt("return", undefined);
|
|
7491
7674
|
case 19:
|
|
7492
7675
|
case "end":
|
|
7493
|
-
return
|
|
7676
|
+
return _context36.stop();
|
|
7494
7677
|
}
|
|
7495
|
-
},
|
|
7678
|
+
}, _callee36, this);
|
|
7496
7679
|
}));
|
|
7497
|
-
function updateMedia(
|
|
7680
|
+
function updateMedia(_x36) {
|
|
7498
7681
|
return _updateMedia.apply(this, arguments);
|
|
7499
7682
|
}
|
|
7500
7683
|
return updateMedia;
|
|
@@ -8122,10 +8305,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8122
8305
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
8123
8306
|
var main = renderInfo.main,
|
|
8124
8307
|
content = renderInfo.content;
|
|
8125
|
-
var _this$
|
|
8126
|
-
mediaDirection = _this$
|
|
8127
|
-
remoteShareStream = _this$
|
|
8128
|
-
remoteVideoStream = _this$
|
|
8308
|
+
var _this$mediaProperties36 = this.mediaProperties,
|
|
8309
|
+
mediaDirection = _this$mediaProperties36.mediaDirection,
|
|
8310
|
+
remoteShareStream = _this$mediaProperties36.remoteShareStream,
|
|
8311
|
+
remoteVideoStream = _this$mediaProperties36.remoteVideoStream;
|
|
8129
8312
|
var layoutInfo = (0, _lodash.cloneDeep)(this.lastVideoLayoutInfo);
|
|
8130
8313
|
|
|
8131
8314
|
// TODO: We need a real time value for Audio, Video and Share send indicator
|
|
@@ -8134,7 +8317,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8134
8317
|
}
|
|
8135
8318
|
if (layoutType) {
|
|
8136
8319
|
if (!_constants.LAYOUT_TYPES.includes(layoutType)) {
|
|
8137
|
-
return this.rejectWithErrorLog(
|
|
8320
|
+
return this.rejectWithErrorLog("Meeting:index#changeVideoLayout --> cannot change video layout, invalid layoutType \"".concat(layoutType, "\" received."));
|
|
8138
8321
|
}
|
|
8139
8322
|
layoutInfo.layoutType = layoutType;
|
|
8140
8323
|
}
|
|
@@ -8397,8 +8580,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8397
8580
|
}, {
|
|
8398
8581
|
key: "checkMediaConnection",
|
|
8399
8582
|
value: function checkMediaConnection() {
|
|
8400
|
-
var _this$
|
|
8401
|
-
if ((_this$
|
|
8583
|
+
var _this$mediaProperties37;
|
|
8584
|
+
if ((_this$mediaProperties37 = this.mediaProperties) !== null && _this$mediaProperties37 !== void 0 && _this$mediaProperties37.webrtcMediaConnection) {
|
|
8402
8585
|
return;
|
|
8403
8586
|
}
|
|
8404
8587
|
throw new _webexErrors.NoMediaEstablishedYetError();
|
|
@@ -8413,39 +8596,39 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8413
8596
|
}, {
|
|
8414
8597
|
key: "enableMusicMode",
|
|
8415
8598
|
value: (function () {
|
|
8416
|
-
var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8417
|
-
return _regenerator.default.wrap(function
|
|
8418
|
-
while (1) switch (
|
|
8599
|
+
var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee37(shouldEnableMusicMode) {
|
|
8600
|
+
return _regenerator.default.wrap(function _callee37$(_context37) {
|
|
8601
|
+
while (1) switch (_context37.prev = _context37.next) {
|
|
8419
8602
|
case 0:
|
|
8420
8603
|
this.checkMediaConnection();
|
|
8421
8604
|
if (this.isMultistream) {
|
|
8422
|
-
|
|
8605
|
+
_context37.next = 3;
|
|
8423
8606
|
break;
|
|
8424
8607
|
}
|
|
8425
8608
|
throw new Error('enableMusicMode() only supported with multistream');
|
|
8426
8609
|
case 3:
|
|
8427
8610
|
if (!shouldEnableMusicMode) {
|
|
8428
|
-
|
|
8611
|
+
_context37.next = 8;
|
|
8429
8612
|
break;
|
|
8430
8613
|
}
|
|
8431
|
-
|
|
8614
|
+
_context37.next = 6;
|
|
8432
8615
|
return this.sendSlotManager.setCodecParameters(_internalMediaCore.MediaType.AudioMain, {
|
|
8433
8616
|
maxaveragebitrate: '64000',
|
|
8434
8617
|
maxplaybackrate: '48000'
|
|
8435
8618
|
});
|
|
8436
8619
|
case 6:
|
|
8437
|
-
|
|
8620
|
+
_context37.next = 10;
|
|
8438
8621
|
break;
|
|
8439
8622
|
case 8:
|
|
8440
|
-
|
|
8623
|
+
_context37.next = 10;
|
|
8441
8624
|
return this.sendSlotManager.deleteCodecParameters(_internalMediaCore.MediaType.AudioMain, ['maxaveragebitrate', 'maxplaybackrate']);
|
|
8442
8625
|
case 10:
|
|
8443
8626
|
case "end":
|
|
8444
|
-
return
|
|
8627
|
+
return _context37.stop();
|
|
8445
8628
|
}
|
|
8446
|
-
},
|
|
8629
|
+
}, _callee37, this);
|
|
8447
8630
|
}));
|
|
8448
|
-
function enableMusicMode(
|
|
8631
|
+
function enableMusicMode(_x37) {
|
|
8449
8632
|
return _enableMusicMode.apply(this, arguments);
|
|
8450
8633
|
}
|
|
8451
8634
|
return enableMusicMode;
|
|
@@ -8458,14 +8641,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8458
8641
|
}, {
|
|
8459
8642
|
key: "updateTranscodedMediaConnection",
|
|
8460
8643
|
value: function updateTranscodedMediaConnection() {
|
|
8461
|
-
var _this$
|
|
8462
|
-
_this$mediaProperties37,
|
|
8463
|
-
_this$mediaProperties38,
|
|
8644
|
+
var _this$mediaProperties38,
|
|
8464
8645
|
_this$mediaProperties39,
|
|
8465
8646
|
_this$mediaProperties40,
|
|
8466
8647
|
_this$mediaProperties41,
|
|
8467
8648
|
_this$mediaProperties42,
|
|
8468
8649
|
_this$mediaProperties43,
|
|
8650
|
+
_this$mediaProperties44,
|
|
8651
|
+
_this$mediaProperties45,
|
|
8469
8652
|
_this54 = this;
|
|
8470
8653
|
var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
|
|
8471
8654
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
|
|
@@ -8475,10 +8658,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8475
8658
|
return this.mediaProperties.webrtcMediaConnection.update({
|
|
8476
8659
|
// TODO: RoapMediaConnection is not ready to use stream classes yet, so we pass the raw MediaStreamTrack for now
|
|
8477
8660
|
localTracks: {
|
|
8478
|
-
audio: ((_this$
|
|
8479
|
-
video: ((_this$
|
|
8480
|
-
screenShareVideo: ((_this$
|
|
8481
|
-
screenShareAudio: ((_this$
|
|
8661
|
+
audio: ((_this$mediaProperties38 = this.mediaProperties.audioStream) === null || _this$mediaProperties38 === void 0 ? void 0 : (_this$mediaProperties39 = _this$mediaProperties38.outputStream) === null || _this$mediaProperties39 === void 0 ? void 0 : _this$mediaProperties39.getTracks()[0]) || null,
|
|
8662
|
+
video: ((_this$mediaProperties40 = this.mediaProperties.videoStream) === null || _this$mediaProperties40 === void 0 ? void 0 : (_this$mediaProperties41 = _this$mediaProperties40.outputStream) === null || _this$mediaProperties41 === void 0 ? void 0 : _this$mediaProperties41.getTracks()[0]) || null,
|
|
8663
|
+
screenShareVideo: ((_this$mediaProperties42 = this.mediaProperties.shareVideoStream) === null || _this$mediaProperties42 === void 0 ? void 0 : (_this$mediaProperties43 = _this$mediaProperties42.outputStream) === null || _this$mediaProperties43 === void 0 ? void 0 : _this$mediaProperties43.getTracks()[0]) || null,
|
|
8664
|
+
screenShareAudio: ((_this$mediaProperties44 = this.mediaProperties.shareAudioStream) === null || _this$mediaProperties44 === void 0 ? void 0 : (_this$mediaProperties45 = _this$mediaProperties44.outputStream) === null || _this$mediaProperties45 === void 0 ? void 0 : _this$mediaProperties45.getTracks()[0]) || null
|
|
8482
8665
|
},
|
|
8483
8666
|
direction: {
|
|
8484
8667
|
audio: _media.default.getDirection(true, this.mediaProperties.mediaDirection.receiveAudio, this.mediaProperties.mediaDirection.sendAudio),
|
|
@@ -8536,25 +8719,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8536
8719
|
}, {
|
|
8537
8720
|
key: "publishStream",
|
|
8538
8721
|
value: (function () {
|
|
8539
|
-
var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8540
|
-
return _regenerator.default.wrap(function
|
|
8541
|
-
while (1) switch (
|
|
8722
|
+
var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee38(mediaType, stream) {
|
|
8723
|
+
return _regenerator.default.wrap(function _callee38$(_context38) {
|
|
8724
|
+
while (1) switch (_context38.prev = _context38.next) {
|
|
8542
8725
|
case 0:
|
|
8543
8726
|
if (stream) {
|
|
8544
|
-
|
|
8727
|
+
_context38.next = 2;
|
|
8545
8728
|
break;
|
|
8546
8729
|
}
|
|
8547
|
-
return
|
|
8730
|
+
return _context38.abrupt("return");
|
|
8548
8731
|
case 2:
|
|
8549
8732
|
if (!this.mediaProperties.webrtcMediaConnection) {
|
|
8550
|
-
|
|
8733
|
+
_context38.next = 7;
|
|
8551
8734
|
break;
|
|
8552
8735
|
}
|
|
8553
8736
|
if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
|
|
8554
|
-
|
|
8737
|
+
_context38.next = 6;
|
|
8555
8738
|
break;
|
|
8556
8739
|
}
|
|
8557
|
-
|
|
8740
|
+
_context38.next = 6;
|
|
8558
8741
|
return this.sendSlotManager.publishStream(mediaType, stream);
|
|
8559
8742
|
case 6:
|
|
8560
8743
|
this.emitPublishStateChangeEvent({
|
|
@@ -8565,11 +8748,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8565
8748
|
});
|
|
8566
8749
|
case 7:
|
|
8567
8750
|
case "end":
|
|
8568
|
-
return
|
|
8751
|
+
return _context38.stop();
|
|
8569
8752
|
}
|
|
8570
|
-
},
|
|
8753
|
+
}, _callee38, this);
|
|
8571
8754
|
}));
|
|
8572
|
-
function publishStream(
|
|
8755
|
+
function publishStream(_x38, _x39) {
|
|
8573
8756
|
return _publishStream.apply(this, arguments);
|
|
8574
8757
|
}
|
|
8575
8758
|
return publishStream;
|
|
@@ -8585,21 +8768,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8585
8768
|
}, {
|
|
8586
8769
|
key: "unpublishStream",
|
|
8587
8770
|
value: (function () {
|
|
8588
|
-
var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8589
|
-
return _regenerator.default.wrap(function
|
|
8590
|
-
while (1) switch (
|
|
8771
|
+
var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee39(mediaType, stream) {
|
|
8772
|
+
return _regenerator.default.wrap(function _callee39$(_context39) {
|
|
8773
|
+
while (1) switch (_context39.prev = _context39.next) {
|
|
8591
8774
|
case 0:
|
|
8592
8775
|
if (stream) {
|
|
8593
|
-
|
|
8776
|
+
_context39.next = 2;
|
|
8594
8777
|
break;
|
|
8595
8778
|
}
|
|
8596
|
-
return
|
|
8779
|
+
return _context39.abrupt("return");
|
|
8597
8780
|
case 2:
|
|
8598
8781
|
if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
|
|
8599
|
-
|
|
8782
|
+
_context39.next = 5;
|
|
8600
8783
|
break;
|
|
8601
8784
|
}
|
|
8602
|
-
|
|
8785
|
+
_context39.next = 5;
|
|
8603
8786
|
return this.sendSlotManager.unpublishStream(mediaType);
|
|
8604
8787
|
case 5:
|
|
8605
8788
|
this.emitPublishStateChangeEvent({
|
|
@@ -8610,11 +8793,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8610
8793
|
});
|
|
8611
8794
|
case 6:
|
|
8612
8795
|
case "end":
|
|
8613
|
-
return
|
|
8796
|
+
return _context39.stop();
|
|
8614
8797
|
}
|
|
8615
|
-
},
|
|
8798
|
+
}, _callee39, this);
|
|
8616
8799
|
}));
|
|
8617
|
-
function unpublishStream(
|
|
8800
|
+
function unpublishStream(_x40, _x41) {
|
|
8618
8801
|
return _unpublishStream.apply(this, arguments);
|
|
8619
8802
|
}
|
|
8620
8803
|
return unpublishStream;
|
|
@@ -8629,19 +8812,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8629
8812
|
}, {
|
|
8630
8813
|
key: "publishStreams",
|
|
8631
8814
|
value: (function () {
|
|
8632
|
-
var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8815
|
+
var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee40(streams) {
|
|
8633
8816
|
var _streams$screenShare, _streams$screenShare2, _streams$screenShare3, _streams$screenShare4, _streams$screenShare5, _streams$screenShare6;
|
|
8634
8817
|
var streamChecks, _i, _streamChecks, _streamChecks$_i, stream, name, floorRequestNeeded, _streams$screenShare7;
|
|
8635
|
-
return _regenerator.default.wrap(function
|
|
8636
|
-
while (1) switch (
|
|
8818
|
+
return _regenerator.default.wrap(function _callee40$(_context40) {
|
|
8819
|
+
while (1) switch (_context40.prev = _context40.next) {
|
|
8637
8820
|
case 0:
|
|
8638
8821
|
_loggerProxy.default.logger.info("Meeting:index#publishStreams --> called with: ".concat((0, _stringify.default)(streams)));
|
|
8639
8822
|
this.checkMediaConnection();
|
|
8640
8823
|
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))) {
|
|
8641
|
-
|
|
8824
|
+
_context40.next = 4;
|
|
8642
8825
|
break;
|
|
8643
8826
|
}
|
|
8644
|
-
return
|
|
8827
|
+
return _context40.abrupt("return");
|
|
8645
8828
|
case 4:
|
|
8646
8829
|
streamChecks = [{
|
|
8647
8830
|
stream: streams === null || streams === void 0 ? void 0 : streams.microphone,
|
|
@@ -8659,62 +8842,62 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8659
8842
|
_i = 0, _streamChecks = streamChecks;
|
|
8660
8843
|
case 6:
|
|
8661
8844
|
if (!(_i < _streamChecks.length)) {
|
|
8662
|
-
|
|
8845
|
+
_context40.next = 13;
|
|
8663
8846
|
break;
|
|
8664
8847
|
}
|
|
8665
8848
|
_streamChecks$_i = _streamChecks[_i], stream = _streamChecks$_i.stream, name = _streamChecks$_i.name;
|
|
8666
8849
|
if (!((stream === null || stream === void 0 ? void 0 : stream.readyState) === 'ended')) {
|
|
8667
|
-
|
|
8850
|
+
_context40.next = 10;
|
|
8668
8851
|
break;
|
|
8669
8852
|
}
|
|
8670
8853
|
throw new Error("Attempted to publish ".concat(name, " stream with ended readyState, correlationId=").concat(this.correlationId));
|
|
8671
8854
|
case 10:
|
|
8672
8855
|
_i++;
|
|
8673
|
-
|
|
8856
|
+
_context40.next = 6;
|
|
8674
8857
|
break;
|
|
8675
8858
|
case 13:
|
|
8676
8859
|
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
|
|
8677
8860
|
if (!(this.isMultistream && (_streams$screenShare5 = streams.screenShare) !== null && _streams$screenShare5 !== void 0 && _streams$screenShare5.audio)) {
|
|
8678
|
-
|
|
8861
|
+
_context40.next = 18;
|
|
8679
8862
|
break;
|
|
8680
8863
|
}
|
|
8681
|
-
|
|
8864
|
+
_context40.next = 17;
|
|
8682
8865
|
return this.setLocalShareAudioStream(streams.screenShare.audio);
|
|
8683
8866
|
case 17:
|
|
8684
8867
|
floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
|
|
8685
8868
|
case 18:
|
|
8686
8869
|
if (!((_streams$screenShare6 = streams.screenShare) !== null && _streams$screenShare6 !== void 0 && _streams$screenShare6.video)) {
|
|
8687
|
-
|
|
8870
|
+
_context40.next = 22;
|
|
8688
8871
|
break;
|
|
8689
8872
|
}
|
|
8690
|
-
|
|
8873
|
+
_context40.next = 21;
|
|
8691
8874
|
return this.setLocalShareVideoStream((_streams$screenShare7 = streams.screenShare) === null || _streams$screenShare7 === void 0 ? void 0 : _streams$screenShare7.video);
|
|
8692
8875
|
case 21:
|
|
8693
8876
|
floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
|
|
8694
8877
|
case 22:
|
|
8695
8878
|
if (!streams.microphone) {
|
|
8696
|
-
|
|
8879
|
+
_context40.next = 25;
|
|
8697
8880
|
break;
|
|
8698
8881
|
}
|
|
8699
|
-
|
|
8882
|
+
_context40.next = 25;
|
|
8700
8883
|
return this.setLocalAudioStream(streams.microphone);
|
|
8701
8884
|
case 25:
|
|
8702
8885
|
if (!streams.camera) {
|
|
8703
|
-
|
|
8886
|
+
_context40.next = 28;
|
|
8704
8887
|
break;
|
|
8705
8888
|
}
|
|
8706
|
-
|
|
8889
|
+
_context40.next = 28;
|
|
8707
8890
|
return this.setLocalVideoStream(streams.camera);
|
|
8708
8891
|
case 28:
|
|
8709
8892
|
if (this.isMultistream) {
|
|
8710
|
-
|
|
8893
|
+
_context40.next = 31;
|
|
8711
8894
|
break;
|
|
8712
8895
|
}
|
|
8713
|
-
|
|
8896
|
+
_context40.next = 31;
|
|
8714
8897
|
return this.updateTranscodedMediaConnection();
|
|
8715
8898
|
case 31:
|
|
8716
8899
|
if (!floorRequestNeeded) {
|
|
8717
|
-
|
|
8900
|
+
_context40.next = 37;
|
|
8718
8901
|
break;
|
|
8719
8902
|
}
|
|
8720
8903
|
this.localShareInstanceId = _uuid.default.v4();
|
|
@@ -8738,15 +8921,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8738
8921
|
// we're sending the http request to Locus to request the screen share floor
|
|
8739
8922
|
// only after the SDP update, because that's how it's always been done for transcoded meetings
|
|
8740
8923
|
// and also if sharing from the start, we need confluence to have been created
|
|
8741
|
-
|
|
8924
|
+
_context40.next = 37;
|
|
8742
8925
|
return this.enqueueScreenShareFloorRequest();
|
|
8743
8926
|
case 37:
|
|
8744
8927
|
case "end":
|
|
8745
|
-
return
|
|
8928
|
+
return _context40.stop();
|
|
8746
8929
|
}
|
|
8747
|
-
},
|
|
8930
|
+
}, _callee40, this);
|
|
8748
8931
|
}));
|
|
8749
|
-
function publishStreams(
|
|
8932
|
+
function publishStreams(_x42) {
|
|
8750
8933
|
return _publishStreams.apply(this, arguments);
|
|
8751
8934
|
}
|
|
8752
8935
|
return publishStreams;
|
|
@@ -8761,10 +8944,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8761
8944
|
}, {
|
|
8762
8945
|
key: "unpublishStreams",
|
|
8763
8946
|
value: (function () {
|
|
8764
|
-
var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
8947
|
+
var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee41(streams) {
|
|
8765
8948
|
var promises, _iterator, _step, stream;
|
|
8766
|
-
return _regenerator.default.wrap(function
|
|
8767
|
-
while (1) switch (
|
|
8949
|
+
return _regenerator.default.wrap(function _callee41$(_context41) {
|
|
8950
|
+
while (1) switch (_context41.prev = _context41.next) {
|
|
8768
8951
|
case 0:
|
|
8769
8952
|
_loggerProxy.default.logger.info("Meeting:index#unpublishStreams --> called with: ".concat((0, _stringify.default)(streams)));
|
|
8770
8953
|
this.checkMediaConnection();
|
|
@@ -8796,7 +8979,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8796
8979
|
if (!this.isMultistream) {
|
|
8797
8980
|
promises.push(this.updateTranscodedMediaConnection());
|
|
8798
8981
|
}
|
|
8799
|
-
|
|
8982
|
+
_context41.next = 8;
|
|
8800
8983
|
return _promise.default.all(promises);
|
|
8801
8984
|
case 8:
|
|
8802
8985
|
// we're allowing for the SDK to support just audio share as well
|
|
@@ -8817,11 +9000,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8817
9000
|
}
|
|
8818
9001
|
case 9:
|
|
8819
9002
|
case "end":
|
|
8820
|
-
return
|
|
9003
|
+
return _context41.stop();
|
|
8821
9004
|
}
|
|
8822
|
-
},
|
|
9005
|
+
}, _callee41, this);
|
|
8823
9006
|
}));
|
|
8824
|
-
function unpublishStreams(
|
|
9007
|
+
function unpublishStreams(_x43) {
|
|
8825
9008
|
return _unpublishStreams.apply(this, arguments);
|
|
8826
9009
|
}
|
|
8827
9010
|
return unpublishStreams;
|
|
@@ -8878,64 +9061,6 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8878
9061
|
}
|
|
8879
9062
|
return _promise.default.resolve();
|
|
8880
9063
|
}
|
|
8881
|
-
}], [{
|
|
8882
|
-
key: "handleDeviceLogging",
|
|
8883
|
-
value: (function () {
|
|
8884
|
-
var _handleDeviceLogging = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee40(isAudioEnabled, isVideoEnabled) {
|
|
8885
|
-
var devices;
|
|
8886
|
-
return _regenerator.default.wrap(function _callee40$(_context40) {
|
|
8887
|
-
while (1) switch (_context40.prev = _context40.next) {
|
|
8888
|
-
case 0:
|
|
8889
|
-
_context40.prev = 0;
|
|
8890
|
-
devices = [];
|
|
8891
|
-
if (!(isVideoEnabled && isAudioEnabled)) {
|
|
8892
|
-
_context40.next = 8;
|
|
8893
|
-
break;
|
|
8894
|
-
}
|
|
8895
|
-
_context40.next = 5;
|
|
8896
|
-
return (0, _mediaHelpers.getDevices)();
|
|
8897
|
-
case 5:
|
|
8898
|
-
devices = _context40.sent;
|
|
8899
|
-
_context40.next = 18;
|
|
8900
|
-
break;
|
|
8901
|
-
case 8:
|
|
8902
|
-
if (!isVideoEnabled) {
|
|
8903
|
-
_context40.next = 14;
|
|
8904
|
-
break;
|
|
8905
|
-
}
|
|
8906
|
-
_context40.next = 11;
|
|
8907
|
-
return (0, _mediaHelpers.getDevices)(_media.default.DeviceKind.VIDEO_INPUT);
|
|
8908
|
-
case 11:
|
|
8909
|
-
devices = _context40.sent;
|
|
8910
|
-
_context40.next = 18;
|
|
8911
|
-
break;
|
|
8912
|
-
case 14:
|
|
8913
|
-
if (!isAudioEnabled) {
|
|
8914
|
-
_context40.next = 18;
|
|
8915
|
-
break;
|
|
8916
|
-
}
|
|
8917
|
-
_context40.next = 17;
|
|
8918
|
-
return (0, _mediaHelpers.getDevices)(_media.default.DeviceKind.AUDIO_INPUT);
|
|
8919
|
-
case 17:
|
|
8920
|
-
devices = _context40.sent;
|
|
8921
|
-
case 18:
|
|
8922
|
-
_util2.default.handleDeviceLogging(devices);
|
|
8923
|
-
_context40.next = 23;
|
|
8924
|
-
break;
|
|
8925
|
-
case 21:
|
|
8926
|
-
_context40.prev = 21;
|
|
8927
|
-
_context40.t0 = _context40["catch"](0);
|
|
8928
|
-
case 23:
|
|
8929
|
-
case "end":
|
|
8930
|
-
return _context40.stop();
|
|
8931
|
-
}
|
|
8932
|
-
}, _callee40, null, [[0, 21]]);
|
|
8933
|
-
}));
|
|
8934
|
-
function handleDeviceLogging(_x43, _x44) {
|
|
8935
|
-
return _handleDeviceLogging.apply(this, arguments);
|
|
8936
|
-
}
|
|
8937
|
-
return handleDeviceLogging;
|
|
8938
|
-
}())
|
|
8939
9064
|
}]);
|
|
8940
9065
|
return Meeting;
|
|
8941
9066
|
}(_webexCore.StatelessWebexPlugin);
|