@webex/plugin-meetings 3.0.0-stream-classes.4 → 3.0.0-test.1
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/README.md +12 -0
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/common/errors/no-meeting-info.js +51 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/reclaim-host-role-errors.js +158 -0
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/webex-errors.js +23 -3
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/request.js +5 -1
- package/dist/common/logs/request.js.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +69 -9
- package/dist/constants.js.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.js +15 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/locusRetry.js +93 -0
- package/dist/interceptors/locusRetry.js.map +1 -0
- package/dist/interpretation/index.js +16 -2
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/index.js +40 -11
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +15 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +42 -21
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/media/index.js +10 -6
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +13 -3
- package/dist/media/properties.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +135 -330
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +4 -0
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2187 -1074
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +37 -25
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +34 -19
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +71 -0
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +48 -23
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +25 -4
- 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/collection.js +17 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +142 -57
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/util.js +2 -6
- 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/util.js +11 -0
- package/dist/member/util.js.map +1 -1
- package/dist/members/index.js +17 -1
- package/dist/members/index.js.map +1 -1
- package/dist/members/types.js.map +1 -1
- package/dist/members/util.js +15 -4
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +15 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +1 -1
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +16 -2
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +222 -73
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +22 -0
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/reachability/clusterReachability.js +356 -0
- package/dist/reachability/clusterReachability.js.map +1 -0
- package/dist/reachability/index.js +262 -432
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +1 -1
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- package/dist/reconnection-manager/index.js +113 -96
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/roap/index.js +57 -25
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +5 -13
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +173 -81
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/index.js +68 -6
- package/dist/rtcMetrics/index.js.map +1 -1
- package/dist/statsAnalyzer/index.js +338 -289
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +296 -156
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/types/common/errors/webex-errors.d.ts +13 -1
- package/dist/types/common/logs/request.d.ts +2 -0
- package/dist/types/config.d.ts +1 -1
- package/dist/types/constants.d.ts +66 -13
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interceptors/index.d.ts +2 -0
- package/dist/types/interceptors/locusRetry.d.ts +27 -0
- package/dist/types/locus-info/index.d.ts +1 -1
- package/dist/types/locus-info/parser.d.ts +3 -2
- package/dist/types/mediaQualityMetrics/config.d.ts +99 -223
- package/dist/types/meeting/in-meeting-actions.d.ts +4 -0
- package/dist/types/meeting/index.d.ts +285 -34
- package/dist/types/meeting/locusMediaRequest.d.ts +1 -2
- package/dist/types/meeting/muteState.d.ts +2 -8
- package/dist/types/meeting/request.d.ts +4 -1
- package/dist/types/meeting/util.d.ts +25 -1
- package/dist/types/meeting-info/index.d.ts +7 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +1 -0
- package/dist/types/meetings/collection.d.ts +9 -0
- package/dist/types/meetings/index.d.ts +42 -14
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/members/types.d.ts +1 -0
- package/dist/types/members/util.d.ts +5 -0
- package/dist/types/metrics/constants.d.ts +15 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +2 -0
- package/dist/types/multistream/remoteMediaGroup.d.ts +2 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +25 -1
- package/dist/types/multistream/sendSlotManager.d.ts +9 -0
- package/dist/types/reachability/clusterReachability.d.ts +109 -0
- package/dist/types/reachability/index.d.ts +59 -112
- package/dist/types/reachability/request.d.ts +1 -1
- package/dist/types/reachability/util.d.ts +8 -0
- package/dist/types/reconnection-manager/index.d.ts +10 -0
- package/dist/types/roap/index.d.ts +2 -1
- package/dist/types/roap/request.d.ts +2 -1
- package/dist/types/roap/turnDiscovery.d.ts +21 -4
- package/dist/types/rtcMetrics/index.d.ts +15 -1
- package/dist/types/statsAnalyzer/index.d.ts +28 -11
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +28 -4
- package/dist/types/webinar/collection.d.ts +16 -0
- package/dist/types/webinar/index.d.ts +5 -0
- package/dist/webinar/collection.js +44 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.js +69 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +3 -2
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/reclaim-host-role-errors.ts +134 -0
- package/src/common/errors/webex-errors.ts +19 -2
- package/src/common/logs/request.ts +5 -1
- package/src/config.ts +1 -1
- package/src/constants.ts +71 -6
- package/src/index.ts +5 -0
- package/src/interceptors/index.ts +3 -0
- package/src/interceptors/locusRetry.ts +67 -0
- package/src/interpretation/index.ts +18 -1
- package/src/locus-info/index.ts +52 -16
- package/src/locus-info/mediaSharesUtils.ts +16 -0
- package/src/locus-info/parser.ts +47 -21
- package/src/media/index.ts +8 -6
- package/src/media/properties.ts +17 -2
- package/src/mediaQualityMetrics/config.ts +103 -238
- package/src/meeting/in-meeting-actions.ts +8 -0
- package/src/meeting/index.ts +1510 -529
- package/src/meeting/muteState.ts +34 -20
- package/src/meeting/request.ts +19 -1
- package/src/meeting/util.ts +97 -0
- package/src/meeting-info/index.ts +47 -20
- package/src/meeting-info/meeting-info-v2.ts +27 -5
- package/src/meeting-info/utilv2.ts +1 -1
- package/src/meetings/collection.ts +13 -0
- package/src/meetings/index.ts +112 -31
- package/src/meetings/util.ts +2 -8
- package/src/member/index.ts +9 -0
- package/src/member/util.ts +14 -0
- package/src/members/index.ts +29 -2
- package/src/members/types.ts +1 -0
- package/src/members/util.ts +15 -1
- package/src/metrics/constants.ts +14 -0
- package/src/multistream/mediaRequestManager.ts +4 -1
- package/src/multistream/remoteMediaGroup.ts +19 -0
- package/src/multistream/remoteMediaManager.ts +141 -18
- package/src/multistream/sendSlotManager.ts +29 -0
- package/src/reachability/clusterReachability.ts +320 -0
- package/src/reachability/index.ts +221 -382
- package/src/reachability/request.ts +1 -1
- package/src/reachability/util.ts +24 -0
- package/src/reconnection-manager/index.ts +87 -83
- package/src/roap/index.ts +60 -24
- package/src/roap/request.ts +3 -16
- package/src/roap/turnDiscovery.ts +112 -39
- package/src/rtcMetrics/index.ts +71 -5
- package/src/statsAnalyzer/index.ts +430 -427
- package/src/statsAnalyzer/mqaUtil.ts +317 -168
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +7 -7
- package/test/integration/spec/journey.js +86 -104
- package/test/integration/spec/space-meeting.js +9 -9
- package/test/unit/spec/interceptors/locusRetry.ts +131 -0
- package/test/unit/spec/interpretation/index.ts +36 -3
- package/test/unit/spec/locus-info/index.js +205 -12
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +10 -0
- package/test/unit/spec/locus-info/parser.js +54 -13
- package/test/unit/spec/media/index.ts +20 -4
- package/test/unit/spec/media/properties.ts +2 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +4 -0
- package/test/unit/spec/meeting/index.js +4027 -1075
- package/test/unit/spec/meeting/muteState.js +219 -67
- package/test/unit/spec/meeting/request.js +63 -12
- package/test/unit/spec/meeting/utils.js +93 -0
- package/test/unit/spec/meeting-info/index.js +180 -61
- package/test/unit/spec/meeting-info/meetinginfov2.js +196 -53
- package/test/unit/spec/meetings/collection.js +12 -0
- package/test/unit/spec/meetings/index.js +619 -206
- package/test/unit/spec/meetings/utils.js +35 -12
- package/test/unit/spec/member/index.js +8 -7
- package/test/unit/spec/member/util.js +32 -0
- package/test/unit/spec/members/index.js +130 -17
- package/test/unit/spec/members/utils.js +26 -0
- package/test/unit/spec/multistream/mediaRequestManager.ts +20 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +80 -1
- package/test/unit/spec/multistream/remoteMediaManager.ts +210 -3
- package/test/unit/spec/multistream/sendSlotManager.ts +50 -18
- package/test/unit/spec/reachability/clusterReachability.ts +279 -0
- package/test/unit/spec/reachability/index.ts +505 -135
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +74 -17
- package/test/unit/spec/roap/index.ts +181 -61
- package/test/unit/spec/roap/request.ts +27 -3
- package/test/unit/spec/roap/turnDiscovery.ts +362 -101
- package/test/unit/spec/rtcMetrics/index.ts +57 -3
- package/test/unit/spec/stats-analyzer/index.js +1225 -12
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/integrationTestUtils.js +4 -4
- package/test/utils/webex-test-users.js +12 -4
package/dist/meetings/index.js
CHANGED
|
@@ -57,6 +57,7 @@ var _collection = _interopRequireDefault(require("./collection"));
|
|
|
57
57
|
var _util2 = _interopRequireDefault(require("./util"));
|
|
58
58
|
var _permission = _interopRequireDefault(require("../common/errors/permission"));
|
|
59
59
|
var _webexErrors = require("../common/errors/webex-errors");
|
|
60
|
+
var _noMeetingInfo = _interopRequireDefault(require("../common/errors/no-meeting-info"));
|
|
60
61
|
function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
61
62
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
62
63
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -583,7 +584,9 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
583
584
|
|
|
584
585
|
// @ts-ignore
|
|
585
586
|
this.webex.internal.mercury.on(_constants.ONLINE, function () {
|
|
586
|
-
_this3.syncMeetings(
|
|
587
|
+
_this3.syncMeetings({
|
|
588
|
+
keepOnlyLocusMeetings: false
|
|
589
|
+
});
|
|
587
590
|
});
|
|
588
591
|
|
|
589
592
|
// @ts-ignore
|
|
@@ -686,40 +689,43 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
686
689
|
}
|
|
687
690
|
|
|
688
691
|
/**
|
|
689
|
-
* API to
|
|
690
|
-
* @param {Boolean}
|
|
692
|
+
* API to toggle starting adhoc meeting
|
|
693
|
+
* @param {Boolean} changeState
|
|
691
694
|
* @private
|
|
692
695
|
* @memberof Meetings
|
|
693
696
|
* @returns {undefined}
|
|
694
697
|
*/
|
|
695
698
|
}, {
|
|
696
|
-
key: "
|
|
697
|
-
value: function
|
|
698
|
-
|
|
699
|
+
key: "_toggleAdhocMeetings",
|
|
700
|
+
value: function _toggleAdhocMeetings(changeState) {
|
|
701
|
+
var _this$config2, _this$config2$experim;
|
|
702
|
+
if (typeof changeState !== 'boolean') {
|
|
699
703
|
return;
|
|
700
704
|
}
|
|
701
705
|
// @ts-ignore
|
|
702
|
-
this.config.experimental.
|
|
706
|
+
if (((_this$config2 = this.config) === null || _this$config2 === void 0 ? void 0 : (_this$config2$experim = _this$config2.experimental) === null || _this$config2$experim === void 0 ? void 0 : _this$config2$experim.enableAdhocMeetings) !== changeState) {
|
|
707
|
+
// @ts-ignore
|
|
708
|
+
this.config.experimental.enableAdhocMeetings = changeState;
|
|
709
|
+
}
|
|
703
710
|
}
|
|
704
711
|
|
|
705
712
|
/**
|
|
706
|
-
* API to toggle
|
|
707
|
-
* @param {Boolean}
|
|
713
|
+
* API to toggle TCP reachability, needs to be called before webex.meetings.register()
|
|
714
|
+
* @param {Boolean} newValue
|
|
708
715
|
* @private
|
|
709
716
|
* @memberof Meetings
|
|
710
717
|
* @returns {undefined}
|
|
711
718
|
*/
|
|
712
719
|
}, {
|
|
713
|
-
key: "
|
|
714
|
-
value: function
|
|
715
|
-
|
|
716
|
-
if (typeof changeState !== 'boolean') {
|
|
720
|
+
key: "_toggleTcpReachability",
|
|
721
|
+
value: function _toggleTcpReachability(newValue) {
|
|
722
|
+
if (typeof newValue !== 'boolean') {
|
|
717
723
|
return;
|
|
718
724
|
}
|
|
719
725
|
// @ts-ignore
|
|
720
|
-
if (
|
|
726
|
+
if (this.config.experimental.enableTcpReachability !== newValue) {
|
|
721
727
|
// @ts-ignore
|
|
722
|
-
this.config.experimental.
|
|
728
|
+
this.config.experimental.enableTcpReachability = newValue;
|
|
723
729
|
}
|
|
724
730
|
}
|
|
725
731
|
|
|
@@ -972,12 +978,19 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
972
978
|
}
|
|
973
979
|
|
|
974
980
|
/**
|
|
975
|
-
* Create a meeting.
|
|
981
|
+
* Create a meeting or return an existing meeting.
|
|
982
|
+
*
|
|
983
|
+
* When meeting info passed it should be complete, e.g.: fetched after password or captcha provided
|
|
984
|
+
*
|
|
976
985
|
* @param {string} destination - sipURL, phonenumber, or locus object}
|
|
977
986
|
* @param {string} [type] - the optional specified type, such as locusId
|
|
978
987
|
* @param {Boolean} useRandomDelayForInfo - whether a random delay should be added to fetching meeting info
|
|
979
988
|
* @param {Object} infoExtraParams extra parameters to be provided when fetching meeting info
|
|
980
|
-
* @param {string} correlationId - the optional specified correlationId
|
|
989
|
+
* @param {string} correlationId - the optional specified correlationId (callStateForMetrics.correlationId can be provided instead)
|
|
990
|
+
* @param {Boolean} failOnMissingMeetingInfo - whether to throw an error if meeting info fails to fetch (for calls that are not 1:1 or content share)
|
|
991
|
+
* @param {CallStateForMetrics} callStateForMetrics - information about call state for metrics
|
|
992
|
+
* @param {Object} [meetingInfo] - Pre-fetched complete meeting info
|
|
993
|
+
* @param {String} [meetingLookupUrl] - meeting info prefetch url
|
|
981
994
|
* @returns {Promise<Meeting>} A new Meeting.
|
|
982
995
|
* @public
|
|
983
996
|
* @memberof Meetings
|
|
@@ -990,12 +1003,21 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
990
1003
|
var useRandomDelayForInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
991
1004
|
var infoExtraParams = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
992
1005
|
var correlationId = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;
|
|
1006
|
+
var failOnMissingMeetingInfo = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
|
|
1007
|
+
var callStateForMetrics = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : undefined;
|
|
1008
|
+
var meetingInfo = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : undefined;
|
|
1009
|
+
var meetingLookupUrl = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : undefined;
|
|
993
1010
|
// TODO: type should be from a dictionary
|
|
994
1011
|
|
|
995
1012
|
// Validate meeting information based on the provided destination and
|
|
996
1013
|
// type. This must be performed prior to determining if the meeting is
|
|
997
1014
|
// found in the collection, as we mutate the destination for hydra person
|
|
998
1015
|
// id values.
|
|
1016
|
+
if (correlationId) {
|
|
1017
|
+
callStateForMetrics = _objectSpread(_objectSpread({}, callStateForMetrics || {}), {}, {
|
|
1018
|
+
correlationId: correlationId
|
|
1019
|
+
});
|
|
1020
|
+
}
|
|
999
1021
|
return this.meetingInfo.fetchInfoOptions(destination, type)
|
|
1000
1022
|
// Catch a failure to fetch info options.
|
|
1001
1023
|
.catch(function (error) {
|
|
@@ -1031,20 +1053,22 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1031
1053
|
// Validate if a meeting was found.
|
|
1032
1054
|
if (!meeting) {
|
|
1033
1055
|
// Create a meeting based on the normalized destination and type.
|
|
1034
|
-
return _this10.createMeeting(targetDest, type, useRandomDelayForInfo, infoExtraParams,
|
|
1056
|
+
return _this10.createMeeting(targetDest, type, useRandomDelayForInfo, infoExtraParams, callStateForMetrics, failOnMissingMeetingInfo, meetingInfo, meetingLookupUrl).then(function (createdMeeting) {
|
|
1035
1057
|
// If the meeting was successfully created.
|
|
1036
1058
|
if (createdMeeting && createdMeeting.on) {
|
|
1037
1059
|
// Create a destruction event for the meeting.
|
|
1038
1060
|
createdMeeting.on(_constants.EVENTS.DESTROY_MEETING, function (payload) {
|
|
1039
1061
|
// @ts-ignore
|
|
1040
1062
|
if (_this10.config.autoUploadLogs) {
|
|
1041
|
-
var _createdMeeting$locus, _createdMeeting$locus2, _createdMeeting$locus3, _createdMeeting$locus4;
|
|
1063
|
+
var _createdMeeting$locus, _createdMeeting$locus2, _createdMeeting$locus3, _createdMeeting$locus4, _createdMeeting$locus5, _createdMeeting$locus6;
|
|
1042
1064
|
_this10.uploadLogs({
|
|
1043
1065
|
callStart: (_createdMeeting$locus = createdMeeting.locusInfo) === null || _createdMeeting$locus === void 0 ? void 0 : (_createdMeeting$locus2 = _createdMeeting$locus.fullState) === null || _createdMeeting$locus2 === void 0 ? void 0 : _createdMeeting$locus2.lastActive,
|
|
1066
|
+
locussessionid: (_createdMeeting$locus3 = createdMeeting.locusInfo) === null || _createdMeeting$locus3 === void 0 ? void 0 : (_createdMeeting$locus4 = _createdMeeting$locus3.fullState) === null || _createdMeeting$locus4 === void 0 ? void 0 : _createdMeeting$locus4.sessionId,
|
|
1044
1067
|
correlationId: createdMeeting.correlationId,
|
|
1045
1068
|
feedbackId: createdMeeting.correlationId,
|
|
1046
1069
|
locusId: createdMeeting.locusId,
|
|
1047
|
-
meetingId: (_createdMeeting$
|
|
1070
|
+
meetingId: (_createdMeeting$locus5 = createdMeeting.locusInfo) === null || _createdMeeting$locus5 === void 0 ? void 0 : (_createdMeeting$locus6 = _createdMeeting$locus5.info) === null || _createdMeeting$locus6 === void 0 ? void 0 : _createdMeeting$locus6.webExMeetingId,
|
|
1071
|
+
autoupload: true
|
|
1048
1072
|
}).then(function () {
|
|
1049
1073
|
return _this10.destroy(createdMeeting, payload.reason);
|
|
1050
1074
|
});
|
|
@@ -1055,13 +1079,15 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1055
1079
|
createdMeeting.on(_constants.EVENTS.REQUEST_UPLOAD_LOGS, function (meetingInstance) {
|
|
1056
1080
|
// @ts-ignore
|
|
1057
1081
|
if (_this10.config.autoUploadLogs) {
|
|
1058
|
-
var _meetingInstance$locu, _meetingInstance$locu2, _meetingInstance$locu3, _meetingInstance$locu4;
|
|
1082
|
+
var _meetingInstance$locu, _meetingInstance$locu2, _meetingInstance$locu3, _meetingInstance$locu4, _meetingInstance$locu5, _meetingInstance$locu6;
|
|
1059
1083
|
_this10.uploadLogs({
|
|
1060
1084
|
callStart: meetingInstance === null || meetingInstance === void 0 ? void 0 : (_meetingInstance$locu = meetingInstance.locusInfo) === null || _meetingInstance$locu === void 0 ? void 0 : (_meetingInstance$locu2 = _meetingInstance$locu.fullState) === null || _meetingInstance$locu2 === void 0 ? void 0 : _meetingInstance$locu2.lastActive,
|
|
1085
|
+
locussessionid: meetingInstance === null || meetingInstance === void 0 ? void 0 : (_meetingInstance$locu3 = meetingInstance.locusInfo) === null || _meetingInstance$locu3 === void 0 ? void 0 : (_meetingInstance$locu4 = _meetingInstance$locu3.fullState) === null || _meetingInstance$locu4 === void 0 ? void 0 : _meetingInstance$locu4.sessionId,
|
|
1061
1086
|
correlationId: meetingInstance.correlationId,
|
|
1062
1087
|
feedbackId: meetingInstance.correlationId,
|
|
1063
1088
|
locusId: meetingInstance.locusId,
|
|
1064
|
-
meetingId: (_meetingInstance$
|
|
1089
|
+
meetingId: (_meetingInstance$locu5 = meetingInstance.locusInfo) === null || _meetingInstance$locu5 === void 0 ? void 0 : (_meetingInstance$locu6 = _meetingInstance$locu5.info) === null || _meetingInstance$locu6 === void 0 ? void 0 : _meetingInstance$locu6.webExMeetingId,
|
|
1090
|
+
autoupload: true
|
|
1065
1091
|
});
|
|
1066
1092
|
}
|
|
1067
1093
|
});
|
|
@@ -1073,6 +1099,7 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1073
1099
|
return _promise.default.resolve(createdMeeting);
|
|
1074
1100
|
});
|
|
1075
1101
|
}
|
|
1102
|
+
meeting.setCallStateForMetrics(callStateForMetrics);
|
|
1076
1103
|
|
|
1077
1104
|
// Return the existing meeting.
|
|
1078
1105
|
return _promise.default.resolve(meeting);
|
|
@@ -1080,11 +1107,18 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1080
1107
|
}
|
|
1081
1108
|
|
|
1082
1109
|
/**
|
|
1110
|
+
* Create meeting
|
|
1111
|
+
*
|
|
1112
|
+
* When meeting info passed it should be complete, e.g.: fetched after password or captcha provided
|
|
1113
|
+
*
|
|
1083
1114
|
* @param {String} destination see create()
|
|
1084
1115
|
* @param {String} type see create()
|
|
1085
1116
|
* @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
|
|
1086
1117
|
* @param {Object} infoExtraParams extra parameters to be provided when fetching meeting info
|
|
1087
|
-
* @param {
|
|
1118
|
+
* @param {CallStateForMetrics} callStateForMetrics - information about call state for metrics
|
|
1119
|
+
* @param {Boolean} failOnMissingMeetingInfo - whether to throw an error if meeting info fails to fetch (for calls that are not 1:1 or content share)
|
|
1120
|
+
* @param {Object} [meetingInfo] - Pre-fetched complete meeting info
|
|
1121
|
+
* @param {String} [meetingLookupUrl] - meeting info prefetch url
|
|
1088
1122
|
* @returns {Promise} a new meeting instance complete with meeting info and destination
|
|
1089
1123
|
* @private
|
|
1090
1124
|
* @memberof Meetings
|
|
@@ -1096,7 +1130,10 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1096
1130
|
var type,
|
|
1097
1131
|
useRandomDelayForInfo,
|
|
1098
1132
|
infoExtraParams,
|
|
1099
|
-
|
|
1133
|
+
callStateForMetrics,
|
|
1134
|
+
failOnMissingMeetingInfo,
|
|
1135
|
+
meetingInfo,
|
|
1136
|
+
meetingLookupUrl,
|
|
1100
1137
|
meeting,
|
|
1101
1138
|
_destination$fullStat,
|
|
1102
1139
|
waitingTime,
|
|
@@ -1107,6 +1144,7 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1107
1144
|
maxWaitingTime,
|
|
1108
1145
|
isMeetingActive,
|
|
1109
1146
|
enableUnifiedMeetings,
|
|
1147
|
+
meetingInfoOptions,
|
|
1110
1148
|
meetingAddedType,
|
|
1111
1149
|
_args3 = arguments;
|
|
1112
1150
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
@@ -1115,7 +1153,10 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1115
1153
|
type = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : null;
|
|
1116
1154
|
useRandomDelayForInfo = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : false;
|
|
1117
1155
|
infoExtraParams = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : {};
|
|
1118
|
-
|
|
1156
|
+
callStateForMetrics = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : undefined;
|
|
1157
|
+
failOnMissingMeetingInfo = _args3.length > 5 && _args3[5] !== undefined ? _args3[5] : false;
|
|
1158
|
+
meetingInfo = _args3.length > 6 && _args3[6] !== undefined ? _args3[6] : undefined;
|
|
1159
|
+
meetingLookupUrl = _args3.length > 7 && _args3[7] !== undefined ? _args3[7] : undefined;
|
|
1119
1160
|
meeting = new _meeting.default({
|
|
1120
1161
|
// @ts-ignore
|
|
1121
1162
|
userId: this.webex.internal.device.userId,
|
|
@@ -1128,13 +1169,13 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1128
1169
|
meetingInfoProvider: this.meetingInfo,
|
|
1129
1170
|
destination: destination,
|
|
1130
1171
|
destinationType: type,
|
|
1131
|
-
|
|
1172
|
+
callStateForMetrics: callStateForMetrics
|
|
1132
1173
|
}, {
|
|
1133
1174
|
// @ts-ignore
|
|
1134
1175
|
parent: this.webex
|
|
1135
1176
|
});
|
|
1136
1177
|
this.meetingCollection.set(meeting);
|
|
1137
|
-
_context3.prev =
|
|
1178
|
+
_context3.prev = 9;
|
|
1138
1179
|
// if no participant has joined the scheduled meeting (meaning meeting is not active) and we get a locusEvent,
|
|
1139
1180
|
// it means the meeting will start in 5-6 min. In that case, we want to fetchMeetingInfo
|
|
1140
1181
|
// between 5 and 2 min (random between 3 minutes) before the meeting starts
|
|
@@ -1150,37 +1191,57 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1150
1191
|
}
|
|
1151
1192
|
isMeetingActive = !!((_destination$fullStat = destination.fullState) !== null && _destination$fullStat !== void 0 && _destination$fullStat.active); // @ts-ignore
|
|
1152
1193
|
enableUnifiedMeetings = this.config.experimental.enableUnifiedMeetings;
|
|
1194
|
+
meetingInfoOptions = {
|
|
1195
|
+
extraParams: infoExtraParams,
|
|
1196
|
+
sendCAevents: !!(callStateForMetrics !== null && callStateForMetrics !== void 0 && callStateForMetrics.correlationId) // if client sends correlation id as argument of public create(), then it means that this meeting creation is part of a pre-join intent from user
|
|
1197
|
+
};
|
|
1198
|
+
if (!meetingInfo) {
|
|
1199
|
+
_context3.next = 19;
|
|
1200
|
+
break;
|
|
1201
|
+
}
|
|
1202
|
+
meeting.injectMeetingInfo(meetingInfo, meetingInfoOptions, meetingLookupUrl);
|
|
1203
|
+
_context3.next = 26;
|
|
1204
|
+
break;
|
|
1205
|
+
case 19:
|
|
1153
1206
|
if (!(enableUnifiedMeetings && !isMeetingActive && useRandomDelayForInfo && waitingTime > 0)) {
|
|
1154
|
-
_context3.next =
|
|
1207
|
+
_context3.next = 24;
|
|
1155
1208
|
break;
|
|
1156
1209
|
}
|
|
1157
1210
|
meeting.fetchMeetingInfoTimeoutId = setTimeout(function () {
|
|
1158
|
-
return meeting.fetchMeetingInfo(
|
|
1159
|
-
extraParams: infoExtraParams
|
|
1160
|
-
});
|
|
1211
|
+
return meeting.fetchMeetingInfo(meetingInfoOptions);
|
|
1161
1212
|
}, waitingTime);
|
|
1162
1213
|
meeting.parseMeetingInfo(undefined, destination);
|
|
1163
|
-
_context3.next =
|
|
1214
|
+
_context3.next = 26;
|
|
1164
1215
|
break;
|
|
1165
|
-
case
|
|
1166
|
-
_context3.next =
|
|
1167
|
-
return meeting.fetchMeetingInfo(
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
case 18:
|
|
1171
|
-
_context3.next = 24;
|
|
1216
|
+
case 24:
|
|
1217
|
+
_context3.next = 26;
|
|
1218
|
+
return meeting.fetchMeetingInfo(meetingInfoOptions);
|
|
1219
|
+
case 26:
|
|
1220
|
+
_context3.next = 38;
|
|
1172
1221
|
break;
|
|
1173
|
-
case
|
|
1174
|
-
_context3.prev =
|
|
1175
|
-
_context3.t0 = _context3["catch"](
|
|
1176
|
-
if (!(_context3.t0 instanceof _captchaError.default) && !(_context3.t0 instanceof _passwordError.default) && !(_context3.t0 instanceof _permission.default)) {
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1222
|
+
case 28:
|
|
1223
|
+
_context3.prev = 28;
|
|
1224
|
+
_context3.t0 = _context3["catch"](9);
|
|
1225
|
+
if (!(!(_context3.t0 instanceof _captchaError.default) && !(_context3.t0 instanceof _passwordError.default) && !(_context3.t0 instanceof _permission.default))) {
|
|
1226
|
+
_context3.next = 37;
|
|
1227
|
+
break;
|
|
1228
|
+
}
|
|
1229
|
+
_loggerProxy.default.logger.info("Meetings:index#createMeeting --> Info Unable to fetch meeting info for ".concat(destination, "."));
|
|
1230
|
+
if (!failOnMissingMeetingInfo) {
|
|
1231
|
+
_context3.next = 36;
|
|
1232
|
+
break;
|
|
1180
1233
|
}
|
|
1234
|
+
_loggerProxy.default.logger.info("Meetings:index#createMeeting --> Destroying meeting due to missing meeting info.");
|
|
1235
|
+
// @ts-ignore
|
|
1236
|
+
this.destroy(meeting, _constants.MEETING_REMOVED_REASON.MISSING_MEETING_INFO);
|
|
1237
|
+
throw new _noMeetingInfo.default();
|
|
1238
|
+
case 36:
|
|
1239
|
+
// if there is no meeting info and no error should be thrown then we assume its a 1:1 call or wireless share
|
|
1240
|
+
_loggerProxy.default.logger.info('Meetings:index#createMeeting --> Info assuming this destination is a 1:1 or wireless share');
|
|
1241
|
+
case 37:
|
|
1181
1242
|
_loggerProxy.default.logger.debug("Meetings:index#createMeeting --> Debug ".concat(_context3.t0, " fetching /meetingInfo for creation."));
|
|
1182
|
-
case
|
|
1183
|
-
_context3.prev =
|
|
1243
|
+
case 38:
|
|
1244
|
+
_context3.prev = 38;
|
|
1184
1245
|
// For type LOCUS_ID we need to parse the locus object to get the information
|
|
1185
1246
|
// about the caller and callee
|
|
1186
1247
|
// Meeting Added event will be created in `handleLocusEvent`
|
|
@@ -1200,14 +1261,14 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1200
1261
|
type: meetingAddedType
|
|
1201
1262
|
});
|
|
1202
1263
|
}
|
|
1203
|
-
return _context3.finish(
|
|
1204
|
-
case
|
|
1264
|
+
return _context3.finish(38);
|
|
1265
|
+
case 41:
|
|
1205
1266
|
return _context3.abrupt("return", meeting);
|
|
1206
|
-
case
|
|
1267
|
+
case 42:
|
|
1207
1268
|
case "end":
|
|
1208
1269
|
return _context3.stop();
|
|
1209
1270
|
}
|
|
1210
|
-
}, _callee3, this, [[
|
|
1271
|
+
}, _callee3, this, [[9, 28, 38, 41]]);
|
|
1211
1272
|
}));
|
|
1212
1273
|
function createMeeting(_x3) {
|
|
1213
1274
|
return _createMeeting.apply(this, arguments);
|
|
@@ -1247,8 +1308,9 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1247
1308
|
}
|
|
1248
1309
|
|
|
1249
1310
|
/**
|
|
1250
|
-
*
|
|
1251
|
-
* @
|
|
1311
|
+
* Syncs all the meetings from server. Does nothing and returns immediately if unverified guest.
|
|
1312
|
+
* @param {boolean} keepOnlyLocusMeetings - whether the sync should keep only locus meetings or any other meeting in meetingCollection
|
|
1313
|
+
* @returns {Promise<void>}
|
|
1252
1314
|
* @public
|
|
1253
1315
|
* @memberof Meetings
|
|
1254
1316
|
*/
|
|
@@ -1256,6 +1318,14 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1256
1318
|
key: "syncMeetings",
|
|
1257
1319
|
value: function syncMeetings() {
|
|
1258
1320
|
var _this11 = this;
|
|
1321
|
+
var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1322
|
+
_ref3$keepOnlyLocusMe = _ref3.keepOnlyLocusMeetings,
|
|
1323
|
+
keepOnlyLocusMeetings = _ref3$keepOnlyLocusMe === void 0 ? true : _ref3$keepOnlyLocusMe;
|
|
1324
|
+
// @ts-ignore
|
|
1325
|
+
if (this.webex.credentials.isUnverifiedGuest) {
|
|
1326
|
+
_loggerProxy.default.logger.info('Meetings:index#syncMeetings --> skipping meeting sync as unverified guest');
|
|
1327
|
+
return _promise.default.resolve();
|
|
1328
|
+
}
|
|
1259
1329
|
return this.request.getActiveMeetings().then(function (locusArray) {
|
|
1260
1330
|
var activeLocusUrl = [];
|
|
1261
1331
|
if (locusArray !== null && locusArray !== void 0 && locusArray.loci && locusArray.loci.length > 0) {
|
|
@@ -1270,12 +1340,14 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1270
1340
|
}
|
|
1271
1341
|
var meetingsCollection = _this11.meetingCollection.getAll();
|
|
1272
1342
|
if ((0, _keys.default)(meetingsCollection).length > 0) {
|
|
1273
|
-
//
|
|
1274
|
-
//
|
|
1343
|
+
// Sometimes the mercury events are lost after mercury reconnect
|
|
1344
|
+
// Remove any Locus meetings that are not returned by Locus
|
|
1345
|
+
// (they had a locusUrl previously but are no longer active) in the sync
|
|
1275
1346
|
for (var _i = 0, _Object$values = (0, _values.default)(meetingsCollection); _i < _Object$values.length; _i++) {
|
|
1276
1347
|
var meeting = _Object$values[_i];
|
|
1277
1348
|
// @ts-ignore
|
|
1278
|
-
|
|
1349
|
+
var locusUrl = meeting.locusUrl;
|
|
1350
|
+
if ((keepOnlyLocusMeetings || locusUrl) && !activeLocusUrl.includes(locusUrl)) {
|
|
1279
1351
|
// destroy function also uploads logs
|
|
1280
1352
|
// @ts-ignore
|
|
1281
1353
|
_this11.destroy(meeting, _constants.MEETING_REMOVED_REASON.NO_MEETINGS_TO_SYNC);
|
|
@@ -1384,6 +1456,19 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1384
1456
|
value: function getLogger() {
|
|
1385
1457
|
return _loggerProxy.default.get();
|
|
1386
1458
|
}
|
|
1459
|
+
|
|
1460
|
+
/**
|
|
1461
|
+
* Returns the first meeting it finds that has the webrtc media connection created.
|
|
1462
|
+
* Useful for debugging in the console.
|
|
1463
|
+
*
|
|
1464
|
+
* @private
|
|
1465
|
+
* @returns {Meeting} Meeting object that has a webrtc media connection, else undefined
|
|
1466
|
+
*/
|
|
1467
|
+
}, {
|
|
1468
|
+
key: "getActiveWebrtcMeeting",
|
|
1469
|
+
value: function getActiveWebrtcMeeting() {
|
|
1470
|
+
return this.meetingCollection.getActiveWebrtcMeeting();
|
|
1471
|
+
}
|
|
1387
1472
|
}]);
|
|
1388
1473
|
return Meetings;
|
|
1389
1474
|
}(_webexCore.WebexPlugin);
|