@webex/plugin-meetings 3.8.1 → 3.9.0
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 +26 -13
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/constants.js +32 -3
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +1 -0
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/types.js.map +1 -1
- package/dist/controls-options-manager/util.js +26 -0
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.js +11 -3
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +68 -84
- package/dist/locus-info/index.js.map +1 -1
- package/dist/media/index.js +2 -2
- package/dist/media/index.js.map +1 -1
- package/dist/meeting/brbState.js +17 -14
- package/dist/meeting/brbState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +11 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +428 -253
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/request.js +19 -0
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/{rtcMetrics/constants.js → meeting/type.js} +1 -5
- package/dist/meeting/type.js.map +1 -0
- package/dist/meeting/util.js +68 -2
- package/dist/meeting/util.js.map +1 -1
- package/dist/meetings/index.js +35 -33
- package/dist/meetings/index.js.map +1 -1
- package/dist/members/index.js +11 -9
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +3 -3
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +18 -6
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +1 -0
- 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/remoteMedia.js +34 -5
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +42 -2
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +32 -2
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/reachability/index.js +5 -10
- package/dist/reachability/index.js.map +1 -1
- package/dist/types/constants.d.ts +28 -0
- package/dist/types/controls-options-manager/enums.d.ts +2 -1
- package/dist/types/controls-options-manager/types.d.ts +4 -1
- package/dist/types/locus-info/index.d.ts +0 -9
- package/dist/types/meeting/brbState.d.ts +0 -1
- package/dist/types/meeting/in-meeting-actions.d.ts +10 -0
- package/dist/types/meeting/index.d.ts +47 -19
- package/dist/types/meeting/request.d.ts +9 -1
- package/dist/types/meeting/request.type.d.ts +74 -0
- package/dist/types/meeting/type.d.ts +9 -0
- package/dist/types/meeting/util.d.ts +3 -0
- package/dist/types/members/index.d.ts +10 -7
- package/dist/types/members/request.d.ts +1 -1
- package/dist/types/members/util.d.ts +7 -3
- package/dist/types/metrics/constants.d.ts +1 -0
- package/dist/types/multistream/remoteMedia.d.ts +20 -1
- package/dist/types/multistream/remoteMediaGroup.d.ts +11 -0
- package/dist/types/multistream/sendSlotManager.d.ts +16 -0
- package/dist/types/reachability/index.d.ts +2 -2
- package/dist/webinar/index.js +1 -1
- package/package.json +24 -25
- package/src/constants.ts +32 -2
- package/src/controls-options-manager/enums.ts +1 -0
- package/src/controls-options-manager/types.ts +6 -1
- package/src/controls-options-manager/util.ts +31 -0
- package/src/locus-info/controlsUtils.ts +15 -0
- package/src/locus-info/index.ts +88 -82
- package/src/media/index.ts +2 -2
- package/src/meeting/brbState.ts +13 -9
- package/src/meeting/in-meeting-actions.ts +21 -0
- package/src/meeting/index.ts +254 -71
- package/src/meeting/request.ts +16 -0
- package/src/meeting/request.type.ts +64 -0
- package/src/meeting/type.ts +9 -0
- package/src/meeting/util.ts +73 -2
- package/src/meetings/index.ts +3 -2
- package/src/members/index.ts +13 -10
- package/src/members/request.ts +2 -2
- package/src/members/util.ts +16 -4
- package/src/metrics/constants.ts +1 -0
- package/src/multistream/mediaRequestManager.ts +7 -7
- package/src/multistream/remoteMedia.ts +34 -4
- package/src/multistream/remoteMediaGroup.ts +37 -2
- package/src/multistream/sendSlotManager.ts +34 -2
- package/src/reachability/index.ts +5 -13
- package/test/unit/spec/controls-options-manager/util.js +58 -0
- package/test/unit/spec/locus-info/controlsUtils.js +52 -0
- package/test/unit/spec/locus-info/index.js +218 -82
- package/test/unit/spec/media/index.ts +107 -0
- package/test/unit/spec/meeting/brbState.ts +23 -4
- package/test/unit/spec/meeting/in-meeting-actions.ts +10 -0
- package/test/unit/spec/meeting/index.js +901 -84
- package/test/unit/spec/meeting/request.js +71 -0
- package/test/unit/spec/meeting/utils.js +122 -1
- package/test/unit/spec/meetings/index.js +2 -0
- package/test/unit/spec/members/index.js +68 -9
- package/test/unit/spec/members/request.js +2 -2
- package/test/unit/spec/members/utils.js +27 -7
- package/test/unit/spec/multistream/mediaRequestManager.ts +19 -6
- package/test/unit/spec/multistream/remoteMedia.ts +66 -2
- package/test/unit/spec/multistream/sendSlotManager.ts +59 -0
- package/test/unit/spec/reachability/index.ts +2 -6
- package/dist/annotation/annotation.types.d.ts +0 -42
- package/dist/annotation/constants.d.ts +0 -31
- package/dist/annotation/index.d.ts +0 -117
- package/dist/breakouts/breakout.d.ts +0 -8
- package/dist/breakouts/collection.d.ts +0 -5
- package/dist/breakouts/edit-lock-error.d.ts +0 -15
- package/dist/breakouts/events.d.ts +0 -8
- package/dist/breakouts/index.d.ts +0 -5
- package/dist/breakouts/request.d.ts +0 -22
- package/dist/breakouts/utils.d.ts +0 -15
- package/dist/common/browser-detection.d.ts +0 -9
- package/dist/common/collection.d.ts +0 -48
- package/dist/common/config.d.ts +0 -2
- package/dist/common/errors/captcha-error.d.ts +0 -15
- package/dist/common/errors/intent-to-join.d.ts +0 -16
- package/dist/common/errors/join-meeting.d.ts +0 -17
- package/dist/common/errors/media.d.ts +0 -15
- package/dist/common/errors/no-meeting-info.d.ts +0 -14
- package/dist/common/errors/parameter.d.ts +0 -15
- package/dist/common/errors/password-error.d.ts +0 -15
- package/dist/common/errors/permission.d.ts +0 -14
- package/dist/common/errors/reclaim-host-role-error.d.ts +0 -60
- package/dist/common/errors/reclaim-host-role-error.js +0 -158
- package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
- package/dist/common/errors/reclaim-host-role-errors.d.ts +0 -60
- package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
- package/dist/common/errors/reconnection-in-progress.js +0 -35
- package/dist/common/errors/reconnection-in-progress.js.map +0 -1
- package/dist/common/errors/reconnection.d.ts +0 -15
- package/dist/common/errors/stats.d.ts +0 -15
- package/dist/common/errors/webex-errors.d.ts +0 -81
- package/dist/common/errors/webex-meetings-error.d.ts +0 -20
- package/dist/common/events/events-scope.d.ts +0 -17
- package/dist/common/events/events.d.ts +0 -12
- package/dist/common/events/trigger-proxy.d.ts +0 -2
- package/dist/common/events/util.d.ts +0 -2
- package/dist/common/logs/logger-config.d.ts +0 -2
- package/dist/common/logs/logger-proxy.d.ts +0 -2
- package/dist/common/logs/request.d.ts +0 -34
- package/dist/common/queue.d.ts +0 -32
- package/dist/config.d.ts +0 -73
- package/dist/constants.d.ts +0 -952
- package/dist/controls-options-manager/constants.d.ts +0 -4
- package/dist/controls-options-manager/enums.d.ts +0 -5
- package/dist/controls-options-manager/index.d.ts +0 -120
- package/dist/controls-options-manager/types.d.ts +0 -43
- package/dist/controls-options-manager/util.d.ts +0 -7
- package/dist/index.d.ts +0 -4
- package/dist/interceptors/index.d.ts +0 -2
- package/dist/interceptors/locusRetry.d.ts +0 -27
- package/dist/interpretation/collection.d.ts +0 -5
- package/dist/interpretation/index.d.ts +0 -5
- package/dist/interpretation/siLanguage.d.ts +0 -5
- package/dist/locus-info/controlsUtils.d.ts +0 -2
- package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
- package/dist/locus-info/fullState.d.ts +0 -2
- package/dist/locus-info/hostUtils.d.ts +0 -2
- package/dist/locus-info/index.d.ts +0 -269
- package/dist/locus-info/infoUtils.d.ts +0 -2
- package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
- package/dist/locus-info/parser.d.ts +0 -212
- package/dist/locus-info/selfUtils.d.ts +0 -2
- package/dist/media/index.d.ts +0 -32
- package/dist/media/properties.d.ts +0 -108
- package/dist/media/util.d.ts +0 -2
- package/dist/mediaQualityMetrics/config.d.ts +0 -233
- package/dist/mediaQualityMetrics/config.js +0 -513
- package/dist/mediaQualityMetrics/config.js.map +0 -1
- package/dist/meeting/effectsState.d.ts +0 -42
- package/dist/meeting/effectsState.js +0 -260
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/meeting/in-meeting-actions.d.ts +0 -79
- package/dist/meeting/index.d.ts +0 -1622
- package/dist/meeting/locusMediaRequest.d.ts +0 -74
- package/dist/meeting/muteState.d.ts +0 -116
- package/dist/meeting/request.d.ts +0 -257
- package/dist/meeting/request.type.d.ts +0 -11
- package/dist/meeting/state.d.ts +0 -9
- package/dist/meeting/util.d.ts +0 -2
- package/dist/meeting/voicea-meeting.d.ts +0 -16
- package/dist/meeting-info/collection.d.ts +0 -20
- package/dist/meeting-info/index.d.ts +0 -57
- package/dist/meeting-info/meeting-info-v2.d.ts +0 -93
- package/dist/meeting-info/request.d.ts +0 -22
- package/dist/meeting-info/util.d.ts +0 -2
- package/dist/meeting-info/utilv2.d.ts +0 -2
- package/dist/meetings/collection.d.ts +0 -23
- package/dist/meetings/index.d.ts +0 -296
- package/dist/meetings/meetings.types.d.ts +0 -4
- package/dist/meetings/request.d.ts +0 -27
- package/dist/meetings/util.d.ts +0 -18
- package/dist/member/index.d.ts +0 -148
- package/dist/member/member.types.d.ts +0 -11
- package/dist/member/member.types.js +0 -18
- package/dist/member/member.types.js.map +0 -1
- package/dist/member/types.d.ts +0 -32
- package/dist/member/util.d.ts +0 -2
- package/dist/members/collection.d.ts +0 -24
- package/dist/members/index.d.ts +0 -308
- package/dist/members/request.d.ts +0 -58
- package/dist/members/types.d.ts +0 -25
- package/dist/members/util.d.ts +0 -2
- package/dist/metrics/config.d.ts +0 -169
- package/dist/metrics/config.js +0 -289
- package/dist/metrics/config.js.map +0 -1
- package/dist/metrics/constants.d.ts +0 -59
- package/dist/metrics/index.d.ts +0 -152
- package/dist/multistream/mediaRequestManager.d.ts +0 -119
- package/dist/multistream/receiveSlot.d.ts +0 -68
- package/dist/multistream/receiveSlotManager.d.ts +0 -56
- package/dist/multistream/remoteMedia.d.ts +0 -72
- package/dist/multistream/remoteMediaGroup.d.ts +0 -49
- package/dist/multistream/remoteMediaManager.d.ts +0 -300
- package/dist/multistream/sendSlotManager.d.ts +0 -69
- package/dist/networkQualityMonitor/index.d.ts +0 -70
- package/dist/networkQualityMonitor/index.js +0 -226
- package/dist/networkQualityMonitor/index.js.map +0 -1
- package/dist/peer-connection-manager/index.d.ts +0 -6
- package/dist/peer-connection-manager/index.js +0 -671
- package/dist/peer-connection-manager/index.js.map +0 -1
- package/dist/peer-connection-manager/util.d.ts +0 -6
- package/dist/peer-connection-manager/util.js +0 -110
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/dist/personal-meeting-room/index.d.ts +0 -47
- package/dist/personal-meeting-room/request.d.ts +0 -14
- package/dist/personal-meeting-room/util.d.ts +0 -2
- package/dist/reachability/clusterReachability.d.ts +0 -109
- package/dist/reachability/index.d.ts +0 -139
- package/dist/reachability/request.d.ts +0 -35
- package/dist/reachability/util.d.ts +0 -8
- package/dist/reactions/constants.d.ts +0 -3
- package/dist/reactions/reactions.d.ts +0 -4
- package/dist/reactions/reactions.type.d.ts +0 -32
- package/dist/reconnection-manager/index.d.ts +0 -112
- package/dist/recording-controller/enums.d.ts +0 -7
- package/dist/recording-controller/index.d.ts +0 -193
- package/dist/recording-controller/util.d.ts +0 -13
- package/dist/roap/collection.d.ts +0 -10
- package/dist/roap/collection.js +0 -63
- package/dist/roap/collection.js.map +0 -1
- package/dist/roap/handler.d.ts +0 -47
- package/dist/roap/handler.js +0 -279
- package/dist/roap/handler.js.map +0 -1
- package/dist/roap/index.d.ts +0 -116
- package/dist/roap/request.d.ts +0 -35
- package/dist/roap/state.d.ts +0 -9
- package/dist/roap/state.js +0 -127
- package/dist/roap/state.js.map +0 -1
- package/dist/roap/turnDiscovery.d.ts +0 -81
- package/dist/roap/util.d.ts +0 -2
- package/dist/roap/util.js +0 -76
- package/dist/roap/util.js.map +0 -1
- package/dist/rtcMetrics/constants.d.ts +0 -4
- package/dist/rtcMetrics/constants.js.map +0 -1
- package/dist/rtcMetrics/index.d.ts +0 -61
- package/dist/rtcMetrics/index.js +0 -197
- package/dist/rtcMetrics/index.js.map +0 -1
- package/dist/statsAnalyzer/global.d.ts +0 -118
- package/dist/statsAnalyzer/global.js +0 -127
- package/dist/statsAnalyzer/global.js.map +0 -1
- package/dist/statsAnalyzer/index.d.ts +0 -193
- package/dist/statsAnalyzer/index.js +0 -1019
- package/dist/statsAnalyzer/index.js.map +0 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +0 -22
- package/dist/statsAnalyzer/mqaUtil.js +0 -181
- package/dist/statsAnalyzer/mqaUtil.js.map +0 -1
- package/dist/transcription/index.d.ts +0 -64
- package/dist/types/common/errors/reconnection-in-progress.d.ts +0 -9
- package/dist/types/mediaQualityMetrics/config.d.ts +0 -241
- package/dist/types/networkQualityMonitor/index.d.ts +0 -70
- package/dist/types/rtcMetrics/constants.d.ts +0 -4
- package/dist/types/rtcMetrics/index.d.ts +0 -71
- package/dist/types/statsAnalyzer/global.d.ts +0 -36
- package/dist/types/statsAnalyzer/index.d.ts +0 -217
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -48
- package/dist/webinar/collection.d.ts +0 -16
- package/dist/webinar/index.d.ts +0 -5
package/dist/roap/handler.js
DELETED
@@ -1,279 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
4
|
-
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
5
|
-
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
6
|
-
_Object$defineProperty(exports, "__esModule", {
|
7
|
-
value: true
|
8
|
-
});
|
9
|
-
exports.default = void 0;
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
11
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
12
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
|
13
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
14
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
15
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
16
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
17
|
-
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
18
|
-
var _webexCore = require("@webex/webex-core");
|
19
|
-
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
20
|
-
var _constants = require("../constants");
|
21
|
-
var _metrics = _interopRequireDefault(require("../metrics"));
|
22
|
-
var _constants2 = _interopRequireDefault(require("../metrics/constants"));
|
23
|
-
var _util = _interopRequireDefault(require("./util"));
|
24
|
-
var _collection = _interopRequireDefault(require("./collection"));
|
25
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
26
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
27
|
-
var checkForAndHandleErrors = function checkForAndHandleErrors(action, meeting, correlationId) {
|
28
|
-
if (action && action.type) {
|
29
|
-
if (action.msg && action.msg.messageType && action.msg.errorType) {
|
30
|
-
if (_util.default.findError(action.msg.messageType, action.msg.errorType, action.type)) {
|
31
|
-
_util.default.handleError(meeting.mediaProperties.peerConnection).then(function (res) {
|
32
|
-
if (res) {
|
33
|
-
_collection.default.deleteSessionSequence(correlationId, action.msg.seq);
|
34
|
-
}
|
35
|
-
}).catch(function (err) {
|
36
|
-
_loggerProxy.default.logger.warn("Roap:handler#checkForAndHandleErrors --> Cannot reset the peer connection with error: ".concat(err));
|
37
|
-
});
|
38
|
-
return true;
|
39
|
-
}
|
40
|
-
}
|
41
|
-
if (!_util.default.ensureMeeting(meeting, action.type)) {
|
42
|
-
return true;
|
43
|
-
}
|
44
|
-
}
|
45
|
-
return false;
|
46
|
-
};
|
47
|
-
var compareWithLastRoapMessage = function compareWithLastRoapMessage(lastRoapMessage, currentRoapMessage) {
|
48
|
-
var _lastRoapMessage$msg, _lastRoapMessage$msg2;
|
49
|
-
return (lastRoapMessage === null || lastRoapMessage === void 0 ? void 0 : (_lastRoapMessage$msg = lastRoapMessage.msg) === null || _lastRoapMessage$msg === void 0 ? void 0 : _lastRoapMessage$msg.seq) === currentRoapMessage.msg.seq && (lastRoapMessage === null || lastRoapMessage === void 0 ? void 0 : (_lastRoapMessage$msg2 = lastRoapMessage.msg) === null || _lastRoapMessage$msg2 === void 0 ? void 0 : _lastRoapMessage$msg2.messageType) === currentRoapMessage.msg.messageType;
|
50
|
-
};
|
51
|
-
var handleSessionStep = function handleSessionStep(_ref) {
|
52
|
-
var roap = _ref.roap,
|
53
|
-
session = _ref.session,
|
54
|
-
locusUrl = _ref.locusUrl,
|
55
|
-
correlationId = _ref.correlationId;
|
56
|
-
var _roap$msg = roap.msg,
|
57
|
-
sequenceId = _roap$msg.seq,
|
58
|
-
messageType = _roap$msg.messageType;
|
59
|
-
if (session.OFFER && messageType === _constants._OFFER_) {
|
60
|
-
session.GLARE_OFFER = roap.msg;
|
61
|
-
session.GLARE_OFFER.remote = !!roap.remote;
|
62
|
-
var metricName = _constants2.default.ROAP_GLARE_CONDITION;
|
63
|
-
var data = {
|
64
|
-
correlation_id: correlationId,
|
65
|
-
locus_id: locusUrl.split('/').pop(),
|
66
|
-
sequence: sequenceId
|
67
|
-
};
|
68
|
-
_metrics.default.sendBehavioralMetric(metricName, data);
|
69
|
-
_loggerProxy.default.logger.warn("Roap:handler#handleSessionStep --> Glare condition occurred with new mercury event, sequenceId: ".concat(sequenceId));
|
70
|
-
} else {
|
71
|
-
_loggerProxy.default.logger.info("Roap:handler#handleSessionStep --> Save OFFER/ANSWER seq:".concat(sequenceId, " new mercury event ").concat(messageType, "local state: ").concat((0, _stringify.default)(session.state.state, null, 2)));
|
72
|
-
session[messageType] = roap.msg;
|
73
|
-
session[messageType].remote = !!roap.remote;
|
74
|
-
}
|
75
|
-
};
|
76
|
-
|
77
|
-
/**
|
78
|
-
* @class RoapHandler
|
79
|
-
*/
|
80
|
-
var RoapHandler = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
81
|
-
(0, _inherits2.default)(RoapHandler, _StatelessWebexPlugin);
|
82
|
-
var _super = _createSuper(RoapHandler);
|
83
|
-
function RoapHandler(attrs, options, roapOk, roapAnswer, roapFinished) {
|
84
|
-
var _this;
|
85
|
-
(0, _classCallCheck2.default)(this, RoapHandler);
|
86
|
-
_this = _super.call(this, {}, options);
|
87
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "attrs", void 0);
|
88
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "lastRoapMessage", void 0);
|
89
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "options", void 0);
|
90
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "roapAnswer", void 0);
|
91
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "roapFinished", void 0);
|
92
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "roapOk", void 0);
|
93
|
-
_this.attrs = attrs;
|
94
|
-
_this.options = options;
|
95
|
-
_this.roapOk = roapOk;
|
96
|
-
_this.roapFinished = roapFinished;
|
97
|
-
_this.roapAnswer = roapAnswer;
|
98
|
-
_this.lastRoapMessage = null;
|
99
|
-
return _this;
|
100
|
-
}
|
101
|
-
|
102
|
-
/**
|
103
|
-
*
|
104
|
-
* @param {Object} session
|
105
|
-
* @param {Meeting} meeting
|
106
|
-
* @param {Object} action
|
107
|
-
* @returns {null}
|
108
|
-
*/
|
109
|
-
(0, _createClass2.default)(RoapHandler, [{
|
110
|
-
key: "perform",
|
111
|
-
value: function perform(session, meeting, action) {
|
112
|
-
var _this2 = this;
|
113
|
-
switch (session.state.state) {
|
114
|
-
case _constants.ROAP.ROAP_STATE.INIT:
|
115
|
-
this.roapFinished(meeting.correlationId, action.msg.seq);
|
116
|
-
break;
|
117
|
-
|
118
|
-
// TODO: (important )handle roap state for sending offers as well
|
119
|
-
// case ROAP.ROAP_STATE.WAIT_RX_OFFER:
|
120
|
-
// case ROAP.ROAP_STATE.WAIT_RX_ANSWER:
|
121
|
-
// case ROAP.ROAP_STATE.WAIT_RX_OK:
|
122
|
-
case _constants.ROAP.ROAP_STATE.WAIT_TX_ANSWER:
|
123
|
-
// eslint-disable-next-line no-warning-comments
|
124
|
-
// TODO: sometime the you get an answer while you are creating an offer so SKIP
|
125
|
-
// Server will send the mercury event comes back
|
126
|
-
if (_util.default.shouldHandleMedia(meeting)) {
|
127
|
-
_util.default.updatePeerConnection(meeting, session).then(function (answerSdps) {
|
128
|
-
_this2.roapAnswer({
|
129
|
-
mediaId: meeting.mediaId,
|
130
|
-
sdps: answerSdps,
|
131
|
-
seq: session.OFFER.seq,
|
132
|
-
correlationId: meeting.correlationId,
|
133
|
-
audioMuted: meeting.isAudioMuted(),
|
134
|
-
videoMuted: meeting.isVideoMuted()
|
135
|
-
});
|
136
|
-
}).catch(function (error) {
|
137
|
-
var metricName = _constants2.default.ROAP_ANSWER_FAILURE;
|
138
|
-
var data = {
|
139
|
-
correlation_id: meeting.correlationId,
|
140
|
-
locus_id: meeting.locusUrl.split('/').pop(),
|
141
|
-
reason: error.message,
|
142
|
-
stack: error.stack
|
143
|
-
};
|
144
|
-
var metadata = {
|
145
|
-
type: error.name
|
146
|
-
};
|
147
|
-
_metrics.default.sendBehavioralMetric(metricName, data, metadata);
|
148
|
-
_loggerProxy.default.logger.error("Roap:handler#perform --> Error occured during wait receive answer, continuing, ".concat(error));
|
149
|
-
});
|
150
|
-
}
|
151
|
-
break;
|
152
|
-
case _constants.ROAP.ROAP_STATE.WAIT_TX_OK:
|
153
|
-
if (!_util.default.shouldHandleMedia(meeting)) {
|
154
|
-
_util.default.setRemoteDescription(meeting, session).then(function (res) {
|
155
|
-
_this2.roapOk(res);
|
156
|
-
});
|
157
|
-
}
|
158
|
-
break;
|
159
|
-
// case ROAP.ROAP_STATE.IDLE_LOCAL_OFFER:
|
160
|
-
case _constants.ROAP.ROAP_STATE.ERROR:
|
161
|
-
_loggerProxy.default.logger.error("Roap:handler#perform --> Roap State ERROR for session: ".concat(session));
|
162
|
-
break;
|
163
|
-
case _constants.ROAP.ROAP_STATE.GLARE:
|
164
|
-
session.GLARE_OFFER.tieBreaker = session.GLARE_OFFER.tieBreaker || 0;
|
165
|
-
session.OFFER.tieBreaker = session.OFFER.tieBreaker || 0;
|
166
|
-
_loggerProxy.default.logger.warn('Roap:handler#perform --> Roap State resolved the GLARE condition.');
|
167
|
-
if (session.GLARE_OFFER.tieBreaker < session.OFFER.tieBreaker) {
|
168
|
-
// 2
|
169
|
-
_loggerProxy.default.logger.log('Roap:handler#perform --> Roap State local offer won after GLARE.');
|
170
|
-
} else {
|
171
|
-
_loggerProxy.default.logger.log('Roap:handler#perform --> Roap State remote offer won after GLARE.');
|
172
|
-
}
|
173
|
-
session.state.step(_constants.ROAP.ROAP_SIGNAL.GLARE_RESOLVED, meeting, action);
|
174
|
-
// @ts-ignore
|
175
|
-
this.perform(session, meeting);
|
176
|
-
break;
|
177
|
-
default:
|
178
|
-
break;
|
179
|
-
}
|
180
|
-
}
|
181
|
-
|
182
|
-
/**
|
183
|
-
*
|
184
|
-
* @param {String} signal
|
185
|
-
* @param {Object} session
|
186
|
-
* @param {Object} action
|
187
|
-
* @param {Meeting} meeting
|
188
|
-
* @param {String} prefix
|
189
|
-
* @returns {null}
|
190
|
-
*/
|
191
|
-
}, {
|
192
|
-
key: "execute",
|
193
|
-
value: function execute(signal, session, action, meeting, prefix) {
|
194
|
-
if (session && session.state) {
|
195
|
-
handleSessionStep({
|
196
|
-
roap: action,
|
197
|
-
locusUrl: meeting.locusUrl,
|
198
|
-
correlationId: meeting.correlationId,
|
199
|
-
session: session
|
200
|
-
});
|
201
|
-
signal = _constants.ROAP.ROAP_SIGNAL["".concat(prefix).concat(action.msg.messageType)];
|
202
|
-
session.state.step(signal, meeting, action);
|
203
|
-
this.perform(session, meeting, action);
|
204
|
-
}
|
205
|
-
}
|
206
|
-
|
207
|
-
/**
|
208
|
-
*
|
209
|
-
* @param {Object} session
|
210
|
-
* @param {Object} action
|
211
|
-
* @param {Meeting} meeting
|
212
|
-
* @param {String} correlationId
|
213
|
-
* @returns {Boolean}
|
214
|
-
*/
|
215
|
-
}, {
|
216
|
-
key: "handleAction",
|
217
|
-
value: function handleAction(session, action, meeting, correlationId) {
|
218
|
-
var signal;
|
219
|
-
switch (action.type) {
|
220
|
-
case _constants.ROAP.RECEIVE_ROAP_MSG:
|
221
|
-
_loggerProxy.default.logger.log("Roap:handler#handleAction --> RECEIVE_ROAP_MSG event captured, reciving a roap message : ".concat((0, _stringify.default)(action)));
|
222
|
-
if (compareWithLastRoapMessage(this.lastRoapMessage, action)) {
|
223
|
-
_loggerProxy.default.logger.warn("Roap:handler#handleAction --> duplicate roap offer from server: ".concat(action.msg.seq));
|
224
|
-
} else {
|
225
|
-
this.lastRoapMessage = action;
|
226
|
-
action.remote = true;
|
227
|
-
this.execute(signal, session, action, meeting, _constants.ROAP.RX_);
|
228
|
-
}
|
229
|
-
break;
|
230
|
-
case _constants.ROAP.SEND_ROAP_MSG:
|
231
|
-
_loggerProxy.default.logger.log("Roap:handler#handleAction --> SEND_ROAP_MSG event captured, sending roap message ".concat((0, _stringify.default)(action)));
|
232
|
-
action.local = true;
|
233
|
-
this.execute(signal, session, action, meeting, _constants.ROAP.TX_);
|
234
|
-
break;
|
235
|
-
case _constants.ROAP.SEND_ROAP_MSG_SUCCESS:
|
236
|
-
// NOTE: When server send back an answer via mercury the
|
237
|
-
// remote SDP is already saved sent and ok message is sent back
|
238
|
-
// We dont have to indicate the roapHandler about the RX_ANSWER via SEND_ROAP_MSG_SUCCESS
|
239
|
-
break;
|
240
|
-
case _constants.ROAP.RECEIVE_CALL_LEAVE:
|
241
|
-
_collection.default.deleteSession(correlationId);
|
242
|
-
_loggerProxy.default.logger.log("Roap:handler#handleAction --> RECEIVE_CALL_LEAVE event captured, cleaning up the RoapHandler for correlationId: ".concat(correlationId));
|
243
|
-
break;
|
244
|
-
case _constants.ROAP.RESET_ROAP_STATE:
|
245
|
-
_collection.default.deleteSessionSequence(correlationId, action.msg.seq);
|
246
|
-
_loggerProxy.default.logger.log("Roap:handler#handleAction --> RESET_ROAP_STATE event captured, resetting the RoapHandler state based on sequenceId: ".concat(action.msg.seq));
|
247
|
-
break;
|
248
|
-
default:
|
249
|
-
return true;
|
250
|
-
}
|
251
|
-
return true;
|
252
|
-
}
|
253
|
-
|
254
|
-
/**
|
255
|
-
*
|
256
|
-
* @param {Object} action
|
257
|
-
* @returns {Boolean}
|
258
|
-
*/
|
259
|
-
}, {
|
260
|
-
key: "submit",
|
261
|
-
value: function submit(action) {
|
262
|
-
var correlationId = action.correlationId;
|
263
|
-
var seq = action.seq;
|
264
|
-
if (!seq && action.msg) {
|
265
|
-
seq = action.msg.seq;
|
266
|
-
}
|
267
|
-
var session = _collection.default.getSessionSequence(correlationId, seq);
|
268
|
-
// @ts-ignore
|
269
|
-
var meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', correlationId);
|
270
|
-
if (checkForAndHandleErrors(action, meeting, correlationId)) {
|
271
|
-
return true;
|
272
|
-
}
|
273
|
-
return this.handleAction(session, action, meeting, correlationId);
|
274
|
-
}
|
275
|
-
}]);
|
276
|
-
return RoapHandler;
|
277
|
-
}(_webexCore.StatelessWebexPlugin);
|
278
|
-
exports.default = RoapHandler;
|
279
|
-
//# sourceMappingURL=handler.js.map
|
package/dist/roap/handler.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["_webexCore","require","_loggerProxy","_interopRequireDefault","_constants","_metrics","_constants2","_util","_collection","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","checkForAndHandleErrors","action","meeting","correlationId","type","msg","messageType","errorType","RoapUtil","findError","handleError","mediaProperties","peerConnection","then","res","RoapCollection","deleteSessionSequence","seq","catch","err","LoggerProxy","logger","warn","concat","ensureMeeting","compareWithLastRoapMessage","lastRoapMessage","currentRoapMessage","_lastRoapMessage$msg","_lastRoapMessage$msg2","handleSessionStep","_ref","roap","session","locusUrl","_roap$msg","sequenceId","OFFER","_OFFER_","GLARE_OFFER","remote","metricName","BEHAVIORAL_METRICS","ROAP_GLARE_CONDITION","data","correlation_id","locus_id","split","pop","sequence","Metrics","sendBehavioralMetric","info","_stringify","state","RoapHandler","_StatelessWebexPlugin","_inherits2","_super","attrs","options","roapOk","roapAnswer","roapFinished","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_createClass2","key","value","perform","_this2","ROAP","ROAP_STATE","INIT","WAIT_TX_ANSWER","shouldHandleMedia","updatePeerConnection","answerSdps","mediaId","sdps","audioMuted","isAudioMuted","videoMuted","isVideoMuted","error","ROAP_ANSWER_FAILURE","reason","message","stack","metadata","name","WAIT_TX_OK","setRemoteDescription","ERROR","GLARE","tieBreaker","log","step","ROAP_SIGNAL","GLARE_RESOLVED","execute","signal","prefix","handleAction","RECEIVE_ROAP_MSG","RX_","SEND_ROAP_MSG","local","TX_","SEND_ROAP_MSG_SUCCESS","RECEIVE_CALL_LEAVE","deleteSession","RESET_ROAP_STATE","submit","getSessionSequence","webex","meetings","meetingCollection","getByKey","StatelessWebexPlugin","exports"],"sources":["handler.ts"],"sourcesContent":["/* no-param-reassign */\n// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {ROAP, _OFFER_} from '../constants';\nimport Metrics from '../metrics';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\n\nimport RoapUtil from './util';\nimport RoapCollection from './collection';\nimport Meeting from '../meeting';\n\nconst checkForAndHandleErrors = (action, meeting, correlationId) => {\n if (action && action.type) {\n if (action.msg && action.msg.messageType && action.msg.errorType) {\n if (RoapUtil.findError(action.msg.messageType, action.msg.errorType, action.type)) {\n RoapUtil.handleError(meeting.mediaProperties.peerConnection)\n .then((res) => {\n if (res) {\n RoapCollection.deleteSessionSequence(correlationId, action.msg.seq);\n }\n })\n .catch((err) => {\n LoggerProxy.logger.warn(\n `Roap:handler#checkForAndHandleErrors --> Cannot reset the peer connection with error: ${err}`\n );\n });\n\n return true;\n }\n }\n if (!RoapUtil.ensureMeeting(meeting, action.type)) {\n return true;\n }\n }\n\n return false;\n};\n\nconst compareWithLastRoapMessage = (lastRoapMessage, currentRoapMessage) =>\n lastRoapMessage?.msg?.seq === currentRoapMessage.msg.seq &&\n lastRoapMessage?.msg?.messageType === currentRoapMessage.msg.messageType;\n\nconst handleSessionStep = ({roap, session, locusUrl, correlationId}) => {\n const {seq: sequenceId, messageType} = roap.msg;\n\n if (session.OFFER && messageType === _OFFER_) {\n session.GLARE_OFFER = roap.msg;\n session.GLARE_OFFER.remote = !!roap.remote;\n const metricName = BEHAVIORAL_METRICS.ROAP_GLARE_CONDITION;\n const data = {\n correlation_id: correlationId,\n locus_id: locusUrl.split('/').pop(),\n sequence: sequenceId,\n };\n\n Metrics.sendBehavioralMetric(metricName, data);\n\n LoggerProxy.logger.warn(\n `Roap:handler#handleSessionStep --> Glare condition occurred with new mercury event, sequenceId: ${sequenceId}`\n );\n } else {\n LoggerProxy.logger.info(\n `Roap:handler#handleSessionStep --> Save OFFER/ANSWER seq:${sequenceId} new mercury event ${messageType}local state: ${JSON.stringify(\n session.state.state,\n null,\n 2\n )}`\n );\n session[messageType] = roap.msg;\n session[messageType].remote = !!roap.remote;\n }\n};\n\n/**\n * @class RoapHandler\n */\nexport default class RoapHandler extends StatelessWebexPlugin {\n attrs: any;\n lastRoapMessage: any;\n options: any;\n roapAnswer: any;\n roapFinished: any;\n roapOk: any;\n\n constructor(attrs, options, roapOk, roapAnswer, roapFinished) {\n super({}, options);\n this.attrs = attrs;\n this.options = options;\n this.roapOk = roapOk;\n this.roapFinished = roapFinished;\n this.roapAnswer = roapAnswer;\n this.lastRoapMessage = null;\n }\n\n /**\n *\n * @param {Object} session\n * @param {Meeting} meeting\n * @param {Object} action\n * @returns {null}\n */\n perform(session: any, meeting: any, action: any) {\n switch (session.state.state) {\n case ROAP.ROAP_STATE.INIT:\n this.roapFinished(meeting.correlationId, action.msg.seq);\n break;\n\n // TODO: (important )handle roap state for sending offers as well\n // case ROAP.ROAP_STATE.WAIT_RX_OFFER:\n // case ROAP.ROAP_STATE.WAIT_RX_ANSWER:\n // case ROAP.ROAP_STATE.WAIT_RX_OK:\n case ROAP.ROAP_STATE.WAIT_TX_ANSWER:\n // eslint-disable-next-line no-warning-comments\n // TODO: sometime the you get an answer while you are creating an offer so SKIP\n // Server will send the mercury event comes back\n if (RoapUtil.shouldHandleMedia(meeting)) {\n RoapUtil.updatePeerConnection(meeting, session)\n .then((answerSdps) => {\n this.roapAnswer({\n mediaId: meeting.mediaId,\n sdps: answerSdps,\n seq: session.OFFER.seq,\n correlationId: meeting.correlationId,\n audioMuted: meeting.isAudioMuted(),\n videoMuted: meeting.isVideoMuted(),\n });\n })\n .catch((error) => {\n const metricName = BEHAVIORAL_METRICS.ROAP_ANSWER_FAILURE;\n const data = {\n correlation_id: meeting.correlationId,\n locus_id: meeting.locusUrl.split('/').pop(),\n reason: error.message,\n stack: error.stack,\n };\n const metadata = {\n type: error.name,\n };\n\n Metrics.sendBehavioralMetric(metricName, data, metadata);\n LoggerProxy.logger.error(\n `Roap:handler#perform --> Error occured during wait receive answer, continuing, ${error}`\n );\n });\n }\n break;\n case ROAP.ROAP_STATE.WAIT_TX_OK:\n if (!RoapUtil.shouldHandleMedia(meeting)) {\n RoapUtil.setRemoteDescription(meeting, session).then((res) => {\n this.roapOk(res);\n });\n }\n break;\n // case ROAP.ROAP_STATE.IDLE_LOCAL_OFFER:\n case ROAP.ROAP_STATE.ERROR:\n LoggerProxy.logger.error(\n `Roap:handler#perform --> Roap State ERROR for session: ${session}`\n );\n break;\n case ROAP.ROAP_STATE.GLARE:\n session.GLARE_OFFER.tieBreaker = session.GLARE_OFFER.tieBreaker || 0;\n session.OFFER.tieBreaker = session.OFFER.tieBreaker || 0;\n LoggerProxy.logger.warn(\n 'Roap:handler#perform --> Roap State resolved the GLARE condition.'\n );\n if (session.GLARE_OFFER.tieBreaker < session.OFFER.tieBreaker) {\n // 2\n LoggerProxy.logger.log(\n 'Roap:handler#perform --> Roap State local offer won after GLARE.'\n );\n } else {\n LoggerProxy.logger.log(\n 'Roap:handler#perform --> Roap State remote offer won after GLARE.'\n );\n }\n session.state.step(ROAP.ROAP_SIGNAL.GLARE_RESOLVED, meeting, action);\n // @ts-ignore\n this.perform(session, meeting);\n break;\n default:\n break;\n }\n }\n\n /**\n *\n * @param {String} signal\n * @param {Object} session\n * @param {Object} action\n * @param {Meeting} meeting\n * @param {String} prefix\n * @returns {null}\n */\n execute(signal: string, session: any, action: any, meeting: Meeting, prefix: string) {\n if (session && session.state) {\n handleSessionStep({\n roap: action,\n locusUrl: meeting.locusUrl,\n correlationId: meeting.correlationId,\n session,\n });\n signal = ROAP.ROAP_SIGNAL[`${prefix}${action.msg.messageType}`];\n session.state.step(signal, meeting, action);\n this.perform(session, meeting, action);\n }\n }\n\n /**\n *\n * @param {Object} session\n * @param {Object} action\n * @param {Meeting} meeting\n * @param {String} correlationId\n * @returns {Boolean}\n */\n handleAction(session: object, action: any, meeting: Meeting, correlationId: string) {\n let signal;\n\n switch (action.type) {\n case ROAP.RECEIVE_ROAP_MSG:\n LoggerProxy.logger.log(\n `Roap:handler#handleAction --> RECEIVE_ROAP_MSG event captured, reciving a roap message : ${JSON.stringify(\n action\n )}`\n );\n if (compareWithLastRoapMessage(this.lastRoapMessage, action)) {\n LoggerProxy.logger.warn(\n `Roap:handler#handleAction --> duplicate roap offer from server: ${action.msg.seq}`\n );\n } else {\n this.lastRoapMessage = action;\n action.remote = true;\n this.execute(signal, session, action, meeting, ROAP.RX_);\n }\n break;\n case ROAP.SEND_ROAP_MSG:\n LoggerProxy.logger.log(\n `Roap:handler#handleAction --> SEND_ROAP_MSG event captured, sending roap message ${JSON.stringify(\n action\n )}`\n );\n\n action.local = true;\n this.execute(signal, session, action, meeting, ROAP.TX_);\n break;\n case ROAP.SEND_ROAP_MSG_SUCCESS:\n // NOTE: When server send back an answer via mercury the\n // remote SDP is already saved sent and ok message is sent back\n // We dont have to indicate the roapHandler about the RX_ANSWER via SEND_ROAP_MSG_SUCCESS\n break;\n case ROAP.RECEIVE_CALL_LEAVE:\n RoapCollection.deleteSession(correlationId);\n LoggerProxy.logger.log(\n `Roap:handler#handleAction --> RECEIVE_CALL_LEAVE event captured, cleaning up the RoapHandler for correlationId: ${correlationId}`\n );\n break;\n case ROAP.RESET_ROAP_STATE:\n RoapCollection.deleteSessionSequence(correlationId, action.msg.seq);\n LoggerProxy.logger.log(\n `Roap:handler#handleAction --> RESET_ROAP_STATE event captured, resetting the RoapHandler state based on sequenceId: ${action.msg.seq}`\n );\n break;\n default:\n return true;\n }\n\n return true;\n }\n\n /**\n *\n * @param {Object} action\n * @returns {Boolean}\n */\n submit(action: any) {\n const {correlationId} = action;\n let {seq} = action;\n\n if (!seq && action.msg) {\n seq = action.msg.seq;\n }\n const session = RoapCollection.getSessionSequence(correlationId, seq);\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', correlationId);\n\n if (checkForAndHandleErrors(action, meeting, correlationId)) {\n return true;\n }\n\n return this.handleAction(session, action, meeting, correlationId);\n }\n}\n"],"mappings":"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"}
|
package/dist/roap/index.d.ts
DELETED
@@ -1,116 +0,0 @@
|
|
1
|
-
import { StatelessWebexPlugin } from '@webex/webex-core';
|
2
|
-
import Meeting from '../meeting';
|
3
|
-
/**
|
4
|
-
* Roap options
|
5
|
-
* @typedef {Object} RoapOptions
|
6
|
-
* @property {String} sdp
|
7
|
-
* @property {Meeting} meeting
|
8
|
-
* @property {Number} roapSeq
|
9
|
-
* @property {Boolean} reconnect
|
10
|
-
*/
|
11
|
-
/**
|
12
|
-
* @typedef {Object} SeqOptions
|
13
|
-
* @property {String} correlationId
|
14
|
-
* @property {String} mediaId
|
15
|
-
* @property {Number} seq
|
16
|
-
*/
|
17
|
-
/**
|
18
|
-
* @class Roap
|
19
|
-
* @export
|
20
|
-
* @private
|
21
|
-
*/
|
22
|
-
export default class Roap extends StatelessWebexPlugin {
|
23
|
-
attrs: any;
|
24
|
-
lastRoapOffer: any;
|
25
|
-
options: any;
|
26
|
-
roapHandler: any;
|
27
|
-
roapRequest: any;
|
28
|
-
turnDiscovery: any;
|
29
|
-
/**
|
30
|
-
*
|
31
|
-
* @param {Object} attrs
|
32
|
-
* @param {Object} options
|
33
|
-
*/
|
34
|
-
constructor(attrs: any, options: any);
|
35
|
-
/**
|
36
|
-
* Starts listening to mercury events for Roap messages
|
37
|
-
* @param {object} data event object
|
38
|
-
* @returns {Promise}
|
39
|
-
* @private
|
40
|
-
* @memberof Roap
|
41
|
-
*/
|
42
|
-
private roapEvent;
|
43
|
-
/**
|
44
|
-
*
|
45
|
-
* @param {String} correlationId correlation id of a meeting
|
46
|
-
* @param {Number} seq ROAP sequence number
|
47
|
-
* @returns {Promise}
|
48
|
-
* @private
|
49
|
-
* @memberof Roap
|
50
|
-
*/
|
51
|
-
private stop;
|
52
|
-
/**
|
53
|
-
*
|
54
|
-
* @param {SeqOptions} options
|
55
|
-
* @returns {null}
|
56
|
-
* @private
|
57
|
-
* @memberof Roap
|
58
|
-
*/
|
59
|
-
private sendRoapOK;
|
60
|
-
/**
|
61
|
-
* Sends a ROAP answer...
|
62
|
-
* @param {SeqOptions} options
|
63
|
-
* @param {Boolean} options.audioMuted
|
64
|
-
* @param {Boolean} options.videoMuted
|
65
|
-
* @returns {Promise}
|
66
|
-
* @private
|
67
|
-
* @memberof Roap
|
68
|
-
*/
|
69
|
-
private sendRoapAnswer;
|
70
|
-
/**
|
71
|
-
* Sends a ROAP error...
|
72
|
-
* @param {Object} session
|
73
|
-
* @param {Object} locus
|
74
|
-
* @param {String} errorType
|
75
|
-
* @returns {Promise}
|
76
|
-
* @private
|
77
|
-
* @memberof Roap
|
78
|
-
*/
|
79
|
-
private sendRoapError;
|
80
|
-
/**
|
81
|
-
* sends a roap media request
|
82
|
-
* @param {RoapOptions} options
|
83
|
-
* @returns {Promise}
|
84
|
-
* @private
|
85
|
-
* @memberof Roap
|
86
|
-
*/
|
87
|
-
sendRoapMediaRequest(options: any): any;
|
88
|
-
/**
|
89
|
-
* sends a roap media request
|
90
|
-
* @param {RoapOptions} options
|
91
|
-
* @returns {Promise}
|
92
|
-
* @private
|
93
|
-
* @memberof Roap
|
94
|
-
*/
|
95
|
-
sendRoapCallRequest: (options: any) => any;
|
96
|
-
/**
|
97
|
-
* Called when the roap sequence is finished (completed successfully or failed)
|
98
|
-
* @param {String} correlationId id of the meeting affected
|
99
|
-
* @param {String} sequenceId the id of the finished sequence
|
100
|
-
* @returns {undefined}
|
101
|
-
* @private
|
102
|
-
* @memberof Roap
|
103
|
-
*/
|
104
|
-
private roapFinished;
|
105
|
-
/**
|
106
|
-
* Performs a TURN server discovery procedure, which involves exchanging
|
107
|
-
* some roap messages with the server. This exchange has to be done before
|
108
|
-
* any other roap messages are sent
|
109
|
-
*
|
110
|
-
* @param {Meeting} meeting
|
111
|
-
* @param {Boolean} isReconnecting should be set to true if this is a new
|
112
|
-
* media connection just after a reconnection
|
113
|
-
* @returns {Promise}
|
114
|
-
*/
|
115
|
-
doTurnDiscovery(meeting: Meeting, isReconnecting: boolean): any;
|
116
|
-
}
|
package/dist/roap/request.d.ts
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
import { StatelessWebexPlugin } from '@webex/webex-core';
|
2
|
-
/**
|
3
|
-
* @class RoapRequest
|
4
|
-
*/
|
5
|
-
export default class RoapRequest extends StatelessWebexPlugin {
|
6
|
-
/**
|
7
|
-
* Joins a meeting via ROAP
|
8
|
-
* @param {Object} options
|
9
|
-
* @returns {Promise} returns a promise that resolves/rejects whatever the request does
|
10
|
-
*/
|
11
|
-
attachRechabilityData(localSdp: any): any;
|
12
|
-
joinMeetingWithRoap(options: any): Promise<any>;
|
13
|
-
/**
|
14
|
-
* Sends a ROAP message
|
15
|
-
* @param {Object} options
|
16
|
-
* @param {Object} options.roapMessage
|
17
|
-
* @param {String} options.locusSelfUrl
|
18
|
-
* @param {String} options.mediaId
|
19
|
-
* @param {String} options.correlationId
|
20
|
-
* @param {Boolean} options.audioMuted
|
21
|
-
* @param {Boolean} options.videoMuted
|
22
|
-
* @param {String} options.meetingId
|
23
|
-
* @returns {Promise} returns the response/failure of the request
|
24
|
-
*/
|
25
|
-
sendRoap(options: {
|
26
|
-
roapMessage: any;
|
27
|
-
locusSelfUrl: string;
|
28
|
-
mediaId: string;
|
29
|
-
correlationId: string;
|
30
|
-
audioMuted: boolean;
|
31
|
-
videoMuted: boolean;
|
32
|
-
meetingId: string;
|
33
|
-
preferTranscoding?: boolean;
|
34
|
-
}): any;
|
35
|
-
}
|
package/dist/roap/state.d.ts
DELETED
package/dist/roap/state.js
DELETED
@@ -1,127 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
4
|
-
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
5
|
-
_Object$defineProperty(exports, "__esModule", {
|
6
|
-
value: true
|
7
|
-
});
|
8
|
-
exports.default = void 0;
|
9
|
-
var _javascriptStateMachine = _interopRequireDefault(require("javascript-state-machine"));
|
10
|
-
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
11
|
-
var _constants = require("../constants");
|
12
|
-
var shouldStep = function shouldStep(roap, meeting) {
|
13
|
-
var messageType = roap.msg.messageType;
|
14
|
-
if (meeting) {
|
15
|
-
if (messageType === _constants._OFFER_ && roap.remote && meeting.shareStatus === _constants._REQUESTED_) {
|
16
|
-
// The peer-connection is waiting for answer but got an offer Reset. Try to
|
17
|
-
// send the offer later after you accept the answer
|
18
|
-
return false;
|
19
|
-
}
|
20
|
-
// Assuming the mercury event has come first before the response for the event
|
21
|
-
// we have to wait for the response and trigger the ROAP request later on
|
22
|
-
if (!meeting.mediaProperties.peerConnection && messageType === _constants._ANSWER_) {
|
23
|
-
return false;
|
24
|
-
}
|
25
|
-
}
|
26
|
-
_loggerProxy.default.logger.log('Roap:state#shouldStep --> RoapStateMachine: PeerConnectionState, ', meeting.mediaProperties.peerConnection.signalingState);
|
27
|
-
_loggerProxy.default.logger.log('Roap:state#shouldStep --> RoapStateMachine: success save proceeding with transition, ', roap.msg);
|
28
|
-
return true;
|
29
|
-
};
|
30
|
-
var handleTransition = function handleTransition(value, signal, meeting) {
|
31
|
-
_loggerProxy.default.logger.log("Roap:state#handleTransition --> current ".concat(value, " to ").concat(signal));
|
32
|
-
switch (value) {
|
33
|
-
case _constants.ROAP.ROAP_STATE.INIT:
|
34
|
-
if (signal === _constants.ROAP.ROAP_SIGNAL.RX_OFFER) {
|
35
|
-
return _constants.ROAP.ROAP_STATE.WAIT_TX_ANSWER;
|
36
|
-
}
|
37
|
-
if (signal === _constants.ROAP.ROAP_SIGNAL.TX_OFFER) {
|
38
|
-
return _constants.ROAP.ROAP_STATE.WAIT_RX_ANSWER;
|
39
|
-
}
|
40
|
-
return value;
|
41
|
-
case _constants.ROAP.ROAP_STATE.WAIT_RX_OFFER:
|
42
|
-
return value;
|
43
|
-
case _constants.ROAP.ROAP_STATE.WAIT_RX_ANSWER:
|
44
|
-
if (signal === _constants.ROAP.ROAP_SIGNAL.RX_ANSWER) {
|
45
|
-
// There is a race condition where the /call response comes after mercury event from the server
|
46
|
-
// As mercury sends roap event if it didnt get back a response. We can send the roap ok after that
|
47
|
-
if (meeting.mediaId) {
|
48
|
-
return _constants.ROAP.ROAP_STATE.WAIT_TX_OK;
|
49
|
-
}
|
50
|
-
_loggerProxy.default.logger.error('Roap:state#handleTransition --> Race Condition no mediaId, continuing.');
|
51
|
-
return value;
|
52
|
-
}
|
53
|
-
if (signal === _constants.ROAP.ROAP_SIGNAL.RX_OFFER) {
|
54
|
-
return _constants.ROAP.ROAP_STATE.GLARE;
|
55
|
-
}
|
56
|
-
return value;
|
57
|
-
case _constants.ROAP.ROAP_STATE.WAIT_TX_OFFER:
|
58
|
-
return value;
|
59
|
-
case _constants.ROAP.ROAP_STATE.WAIT_TX_ANSWER:
|
60
|
-
if (signal === _constants.ROAP.ROAP_SIGNAL.TX_ANSWER) {
|
61
|
-
return _constants.ROAP.ROAP_STATE.WAIT_RX_OK;
|
62
|
-
}
|
63
|
-
return value;
|
64
|
-
case _constants.ROAP.ROAP_STATE.WAIT_TX_OK:
|
65
|
-
if (signal === _constants.ROAP.ROAP_SIGNAL.TX_OK) {
|
66
|
-
return _constants.ROAP.ROAP_STATE.INIT;
|
67
|
-
}
|
68
|
-
return value;
|
69
|
-
case _constants.ROAP.ROAP_STATE.WAIT_RX_OK:
|
70
|
-
if (signal === _constants.ROAP.ROAP_SIGNAL.RX_OK) {
|
71
|
-
return _constants.ROAP.ROAP_STATE.INIT;
|
72
|
-
}
|
73
|
-
return value;
|
74
|
-
case _constants.ROAP.ROAP_STATE.ERROR:
|
75
|
-
// eslint-disable-next-line no-warning-comments
|
76
|
-
// TODO: resolve error state. Add a signal constant and handle the cleanup
|
77
|
-
return _constants.ROAP.ROAP_STATE.INIT;
|
78
|
-
case _constants.ROAP.ROAP_STATE.GLARE:
|
79
|
-
return _constants.ROAP.ROAP_STATE.WAIT_RX_ANSWER;
|
80
|
-
default:
|
81
|
-
return value;
|
82
|
-
}
|
83
|
-
};
|
84
|
-
var RoapStateMachine = {
|
85
|
-
/**
|
86
|
-
* @param {Roap} roapRef
|
87
|
-
* initializes the state machine
|
88
|
-
* @returns {StateMachine} an instance of a state machine
|
89
|
-
*/
|
90
|
-
createState: function createState() {
|
91
|
-
var RoapState = _javascriptStateMachine.default.factory({
|
92
|
-
init: _constants.ROAP.ROAP_STATE.INIT,
|
93
|
-
transitions: [{
|
94
|
-
name: _constants.ROAP.ROAP_TRANSITIONS.STEP,
|
95
|
-
from: '*',
|
96
|
-
/**
|
97
|
-
* Method to handle the transitions between states
|
98
|
-
* @param {String} signal
|
99
|
-
* @param {Meeting} meeting instance of a Meeting
|
100
|
-
* @param {Object} roap
|
101
|
-
* @returns {String} new state value
|
102
|
-
*/
|
103
|
-
to: function to(signal, meeting, roap) {
|
104
|
-
var value = this.state;
|
105
|
-
if (!shouldStep(roap, meeting)) {
|
106
|
-
return value;
|
107
|
-
}
|
108
|
-
return handleTransition(value, signal, meeting);
|
109
|
-
}
|
110
|
-
}],
|
111
|
-
methods: {
|
112
|
-
/**
|
113
|
-
* Event that fires after we've transitioned to a new state
|
114
|
-
* @param {Object} transition
|
115
|
-
* @returns {null}
|
116
|
-
*/
|
117
|
-
onAfterStep: function onAfterStep(transition) {
|
118
|
-
_loggerProxy.default.logger.log("Roap:state#onAfterStep --> RoapStateMachine->onAfterStep#fired! State changed from '".concat(transition.from, "' to '").concat(transition.to, "' with transition '").concat(transition.transition, "''."));
|
119
|
-
}
|
120
|
-
}
|
121
|
-
});
|
122
|
-
return new RoapState();
|
123
|
-
}
|
124
|
-
};
|
125
|
-
var _default = RoapStateMachine;
|
126
|
-
exports.default = _default;
|
127
|
-
//# sourceMappingURL=state.js.map
|
package/dist/roap/state.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["_javascriptStateMachine","_interopRequireDefault","require","_loggerProxy","_constants","shouldStep","roap","meeting","messageType","msg","_OFFER_","remote","shareStatus","_REQUESTED_","mediaProperties","peerConnection","_ANSWER_","LoggerProxy","logger","log","signalingState","handleTransition","value","signal","concat","ROAP","ROAP_STATE","INIT","ROAP_SIGNAL","RX_OFFER","WAIT_TX_ANSWER","TX_OFFER","WAIT_RX_ANSWER","WAIT_RX_OFFER","RX_ANSWER","mediaId","WAIT_TX_OK","error","GLARE","WAIT_TX_OFFER","TX_ANSWER","WAIT_RX_OK","TX_OK","RX_OK","ERROR","RoapStateMachine","createState","RoapState","StateMachine","factory","init","transitions","name","ROAP_TRANSITIONS","STEP","from","to","state","methods","onAfterStep","transition","_default","exports","default"],"sources":["state.ts"],"sourcesContent":["import StateMachine from 'javascript-state-machine';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {ROAP, _OFFER_, _ANSWER_, _REQUESTED_} from '../constants';\nimport Meeting from '../meeting';\n\nconst shouldStep = (roap, meeting) => {\n const {messageType} = roap.msg;\n\n if (meeting) {\n if (messageType === _OFFER_ && roap.remote && meeting.shareStatus === _REQUESTED_) {\n // The peer-connection is waiting for answer but got an offer Reset. Try to\n // send the offer later after you accept the answer\n return false;\n }\n // Assuming the mercury event has come first before the response for the event\n // we have to wait for the response and trigger the ROAP request later on\n if (!meeting.mediaProperties.peerConnection && messageType === _ANSWER_) {\n return false;\n }\n }\n LoggerProxy.logger.log(\n 'Roap:state#shouldStep --> RoapStateMachine: PeerConnectionState, ',\n meeting.mediaProperties.peerConnection.signalingState\n );\n LoggerProxy.logger.log(\n 'Roap:state#shouldStep --> RoapStateMachine: success save proceeding with transition, ',\n roap.msg\n );\n\n return true;\n};\n\nconst handleTransition = (value, signal, meeting) => {\n LoggerProxy.logger.log(`Roap:state#handleTransition --> current ${value} to ${signal}`);\n\n switch (value) {\n case ROAP.ROAP_STATE.INIT:\n if (signal === ROAP.ROAP_SIGNAL.RX_OFFER) {\n return ROAP.ROAP_STATE.WAIT_TX_ANSWER;\n }\n if (signal === ROAP.ROAP_SIGNAL.TX_OFFER) {\n return ROAP.ROAP_STATE.WAIT_RX_ANSWER;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_RX_OFFER:\n return value;\n\n case ROAP.ROAP_STATE.WAIT_RX_ANSWER:\n if (signal === ROAP.ROAP_SIGNAL.RX_ANSWER) {\n // There is a race condition where the /call response comes after mercury event from the server\n // As mercury sends roap event if it didnt get back a response. We can send the roap ok after that\n if (meeting.mediaId) {\n return ROAP.ROAP_STATE.WAIT_TX_OK;\n }\n LoggerProxy.logger.error(\n 'Roap:state#handleTransition --> Race Condition no mediaId, continuing.'\n );\n\n return value;\n }\n\n if (signal === ROAP.ROAP_SIGNAL.RX_OFFER) {\n return ROAP.ROAP_STATE.GLARE;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_TX_OFFER:\n return value;\n\n case ROAP.ROAP_STATE.WAIT_TX_ANSWER:\n if (signal === ROAP.ROAP_SIGNAL.TX_ANSWER) {\n return ROAP.ROAP_STATE.WAIT_RX_OK;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_TX_OK:\n if (signal === ROAP.ROAP_SIGNAL.TX_OK) {\n return ROAP.ROAP_STATE.INIT;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_RX_OK:\n if (signal === ROAP.ROAP_SIGNAL.RX_OK) {\n return ROAP.ROAP_STATE.INIT;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.ERROR:\n // eslint-disable-next-line no-warning-comments\n // TODO: resolve error state. Add a signal constant and handle the cleanup\n return ROAP.ROAP_STATE.INIT;\n\n case ROAP.ROAP_STATE.GLARE:\n return ROAP.ROAP_STATE.WAIT_RX_ANSWER;\n default:\n return value;\n }\n};\n\nconst RoapStateMachine = {\n /**\n * @param {Roap} roapRef\n * initializes the state machine\n * @returns {StateMachine} an instance of a state machine\n */\n createState() {\n const RoapState = StateMachine.factory({\n init: ROAP.ROAP_STATE.INIT,\n transitions: [\n {\n name: ROAP.ROAP_TRANSITIONS.STEP,\n from: '*',\n /**\n * Method to handle the transitions between states\n * @param {String} signal\n * @param {Meeting} meeting instance of a Meeting\n * @param {Object} roap\n * @returns {String} new state value\n */\n to(signal: string, meeting: Meeting, roap: object) {\n const value = this.state;\n\n if (!shouldStep(roap, meeting)) {\n return value;\n }\n\n return handleTransition(value, signal, meeting);\n },\n },\n ],\n methods: {\n /**\n * Event that fires after we've transitioned to a new state\n * @param {Object} transition\n * @returns {null}\n */\n onAfterStep(transition: any) {\n LoggerProxy.logger.log(\n `Roap:state#onAfterStep --> RoapStateMachine->onAfterStep#fired! State changed from '${transition.from}' to '${transition.to}' with transition '${transition.transition}''.`\n );\n },\n },\n });\n\n return new RoapState();\n },\n};\n\nexport default RoapStateMachine;\n"],"mappings":"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"}
|