@webex/plugin-meetings 3.7.0 → 3.8.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/dist/annotation/annotation.types.d.ts +42 -0
- package/dist/annotation/constants.d.ts +31 -0
- package/dist/annotation/index.d.ts +117 -0
- package/dist/annotation/index.js +17 -0
- package/dist/annotation/index.js.map +1 -1
- package/dist/breakouts/breakout.d.ts +8 -0
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/collection.d.ts +5 -0
- package/dist/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/breakouts/events.d.ts +8 -0
- package/dist/breakouts/index.d.ts +5 -0
- package/dist/breakouts/index.js +1 -1
- package/dist/breakouts/request.d.ts +22 -0
- package/dist/breakouts/utils.d.ts +15 -0
- package/dist/common/browser-detection.d.ts +9 -0
- package/dist/common/collection.d.ts +48 -0
- package/dist/common/config.d.ts +2 -0
- package/dist/common/errors/captcha-error.d.ts +15 -0
- package/dist/common/errors/intent-to-join.d.ts +16 -0
- package/dist/common/errors/join-forbidden-error.js +52 -0
- package/dist/common/errors/join-forbidden-error.js.map +1 -0
- package/dist/common/errors/join-meeting.d.ts +17 -0
- package/dist/common/errors/{webinar-registration-error.js → join-webinar-error.js} +12 -12
- package/dist/common/errors/join-webinar-error.js.map +1 -0
- package/dist/common/errors/media.d.ts +15 -0
- package/dist/common/errors/multistream-not-supported-error.js +53 -0
- package/dist/common/errors/multistream-not-supported-error.js.map +1 -0
- package/dist/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/common/errors/parameter.d.ts +15 -0
- package/dist/common/errors/password-error.d.ts +15 -0
- package/dist/common/errors/permission.d.ts +14 -0
- package/dist/common/errors/reclaim-host-role-error.js +149 -0
- package/dist/common/errors/reclaim-host-role-error.js.map +1 -0
- package/dist/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/common/errors/reconnection-in-progress.js +33 -0
- package/dist/common/errors/reconnection-in-progress.js.map +1 -0
- package/dist/common/errors/reconnection.d.ts +15 -0
- package/dist/common/errors/stats.d.ts +15 -0
- package/dist/common/errors/webex-errors.d.ts +93 -0
- package/dist/common/errors/webex-meetings-error.d.ts +20 -0
- package/dist/common/events/events-scope.d.ts +17 -0
- package/dist/common/events/events.d.ts +12 -0
- package/dist/common/events/trigger-proxy.d.ts +2 -0
- package/dist/common/events/util.d.ts +2 -0
- package/dist/common/logs/logger-config.d.ts +2 -0
- package/dist/common/logs/logger-proxy.d.ts +2 -0
- package/dist/common/logs/request.d.ts +36 -0
- package/dist/common/queue.d.ts +34 -0
- package/dist/config.d.ts +72 -0
- package/dist/config.js +2 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +1088 -0
- package/dist/constants.js +68 -6
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.d.ts +4 -0
- package/dist/controls-options-manager/enums.d.ts +15 -0
- package/dist/controls-options-manager/index.d.ts +136 -0
- package/dist/controls-options-manager/types.d.ts +43 -0
- package/dist/controls-options-manager/util.d.ts +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +16 -11
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.d.ts +2 -0
- package/dist/interceptors/locusRetry.d.ts +27 -0
- package/dist/interpretation/collection.d.ts +5 -0
- package/dist/interpretation/index.d.ts +5 -0
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.d.ts +5 -0
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.d.ts +2 -0
- package/dist/locus-info/embeddedAppsUtils.d.ts +2 -0
- package/dist/locus-info/fullState.d.ts +2 -0
- package/dist/locus-info/hostUtils.d.ts +2 -0
- package/dist/locus-info/index.d.ts +322 -0
- package/dist/locus-info/index.js +14 -3
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.d.ts +2 -0
- package/dist/locus-info/mediaSharesUtils.d.ts +2 -0
- package/dist/locus-info/parser.d.ts +272 -0
- package/dist/locus-info/selfUtils.d.ts +2 -0
- package/dist/locus-info/selfUtils.js +35 -17
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/MediaConnectionAwaiter.js +1 -0
- package/dist/media/MediaConnectionAwaiter.js.map +1 -1
- package/dist/media/index.d.ts +34 -0
- package/dist/media/properties.d.ts +93 -0
- package/dist/media/properties.js +30 -16
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.d.ts +2 -0
- package/dist/mediaQualityMetrics/config.d.ts +241 -0
- package/dist/mediaQualityMetrics/config.js +502 -0
- package/dist/mediaQualityMetrics/config.js.map +1 -0
- package/dist/meeting/brbState.js +167 -0
- package/dist/meeting/brbState.js.map +1 -0
- package/dist/meeting/effectsState.js +260 -0
- package/dist/meeting/effectsState.js.map +1 -0
- package/dist/meeting/in-meeting-actions.d.ts +167 -0
- package/dist/meeting/in-meeting-actions.js +13 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.d.ts +1825 -0
- package/dist/meeting/index.js +1331 -1051
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/meeting/locusMediaRequest.js +11 -6
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.d.ts +178 -0
- package/dist/meeting/muteState.js +1 -6
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.d.ts +295 -0
- package/dist/meeting/request.js +51 -29
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.d.ts +11 -0
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/state.d.ts +9 -0
- package/dist/meeting/util.d.ts +119 -0
- package/dist/meeting/util.js +103 -67
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting/voicea-meeting.d.ts +16 -0
- package/dist/meeting-info/collection.d.ts +20 -0
- package/dist/meeting-info/index.d.ts +69 -0
- package/dist/meeting-info/meeting-info-v2.d.ts +123 -0
- package/dist/meeting-info/meeting-info-v2.js +115 -45
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.d.ts +22 -0
- package/dist/meeting-info/util.d.ts +2 -0
- package/dist/meeting-info/utilv2.d.ts +2 -0
- package/dist/meeting-info/utilv2.js +6 -2
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.d.ts +40 -0
- package/dist/meetings/index.d.ts +390 -0
- package/dist/meetings/index.js +107 -55
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.d.ts +4 -0
- package/dist/meetings/meetings.types.js +2 -0
- package/dist/meetings/meetings.types.js.map +1 -1
- package/dist/meetings/request.d.ts +27 -0
- package/dist/meetings/util.d.ts +18 -0
- package/dist/meetings/util.js +1 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.d.ts +160 -0
- package/dist/member/index.js +9 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.js +17 -0
- package/dist/member/member.types.js.map +1 -0
- package/dist/member/types.d.ts +32 -0
- package/dist/member/types.js.map +1 -1
- package/dist/member/util.d.ts +2 -0
- package/dist/member/util.js +39 -28
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.d.ts +29 -0
- package/dist/members/index.d.ts +353 -0
- package/dist/members/request.d.ts +114 -0
- package/dist/members/types.d.ts +25 -0
- package/dist/members/util.d.ts +215 -0
- package/dist/members/util.js +4 -2
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +276 -0
- package/dist/metrics/config.js.map +1 -0
- package/dist/metrics/constants.d.ts +70 -0
- package/dist/metrics/constants.js +6 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.d.ts +45 -0
- package/dist/multistream/mediaRequestManager.d.ts +119 -0
- package/dist/multistream/receiveSlot.d.ts +68 -0
- package/dist/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/multistream/remoteMedia.d.ts +72 -0
- package/dist/multistream/remoteMedia.js +30 -15
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.d.ts +49 -0
- package/dist/multistream/remoteMediaManager.d.ts +300 -0
- package/dist/multistream/sendSlotManager.d.ts +69 -0
- package/dist/multistream/sendSlotManager.js +24 -0
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.d.ts +70 -0
- package/dist/networkQualityMonitor/index.js +13 -19
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/peer-connection-manager/index.js +671 -0
- package/dist/peer-connection-manager/index.js.map +1 -0
- package/dist/peer-connection-manager/util.js +109 -0
- package/dist/peer-connection-manager/util.js.map +1 -0
- package/dist/personal-meeting-room/index.d.ts +47 -0
- package/dist/personal-meeting-room/request.d.ts +14 -0
- package/dist/personal-meeting-room/util.d.ts +2 -0
- package/dist/reachability/clusterReachability.d.ts +109 -0
- package/dist/reachability/clusterReachability.js +12 -15
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/index.d.ts +105 -0
- package/dist/reachability/index.js +461 -136
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/reachability.types.js +7 -0
- package/dist/reachability/reachability.types.js.map +1 -0
- package/dist/reachability/request.d.ts +39 -0
- package/dist/reachability/request.js +21 -8
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.d.ts +8 -0
- package/dist/reactions/constants.d.ts +3 -0
- package/dist/reactions/reactions.d.ts +4 -0
- package/dist/reactions/reactions.type.d.ts +52 -0
- package/dist/reconnection-manager/index.d.ts +136 -0
- package/dist/recording-controller/enums.d.ts +7 -0
- package/dist/recording-controller/enums.js +8 -4
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.d.ts +207 -0
- package/dist/recording-controller/index.js +18 -9
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.d.ts +14 -0
- package/dist/recording-controller/util.js +13 -9
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/collection.js +62 -0
- package/dist/roap/collection.js.map +1 -0
- package/dist/roap/handler.js +275 -0
- package/dist/roap/handler.js.map +1 -0
- package/dist/roap/index.d.ts +86 -0
- package/dist/roap/index.js +15 -15
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.d.ts +39 -0
- package/dist/roap/request.js +45 -79
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/state.js +126 -0
- package/dist/roap/state.js.map +1 -0
- package/dist/roap/turnDiscovery.d.ts +155 -0
- package/dist/roap/turnDiscovery.js +3 -6
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/roap/util.js +75 -0
- package/dist/roap/util.js.map +1 -0
- package/dist/rtcMetrics/constants.d.ts +4 -0
- package/dist/rtcMetrics/index.d.ts +61 -0
- package/dist/statsAnalyzer/global.d.ts +36 -0
- package/dist/statsAnalyzer/global.js +126 -0
- package/dist/statsAnalyzer/global.js.map +1 -0
- package/dist/statsAnalyzer/index.d.ts +217 -0
- package/dist/statsAnalyzer/index.js +1013 -0
- package/dist/statsAnalyzer/index.js.map +1 -0
- package/dist/statsAnalyzer/mqaUtil.d.ts +48 -0
- package/dist/statsAnalyzer/mqaUtil.js +179 -0
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -0
- package/dist/transcription/index.d.ts +64 -0
- package/dist/types/annotation/index.d.ts +5 -0
- package/dist/types/common/errors/join-forbidden-error.d.ts +15 -0
- package/dist/types/common/errors/{webinar-registration-error.d.ts → join-webinar-error.d.ts} +2 -2
- package/dist/types/common/errors/multistream-not-supported-error.d.ts +17 -0
- package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/types/config.d.ts +1 -0
- package/dist/types/constants.d.ts +53 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/locus-info/index.d.ts +2 -1
- package/dist/types/mediaQualityMetrics/config.d.ts +241 -0
- package/dist/types/meeting/brbState.d.ts +54 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +12 -0
- package/dist/types/meeting/index.d.ts +64 -14
- package/dist/types/meeting/locusMediaRequest.d.ts +6 -3
- package/dist/types/meeting/request.d.ts +14 -3
- package/dist/types/meeting/request.type.d.ts +6 -0
- package/dist/types/meeting/util.d.ts +3 -3
- package/dist/types/meeting-info/meeting-info-v2.d.ts +30 -5
- package/dist/types/meetings/index.d.ts +20 -2
- package/dist/types/meetings/meetings.types.d.ts +8 -0
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/member/types.d.ts +7 -0
- package/dist/types/members/util.d.ts +2 -0
- package/dist/types/metrics/constants.d.ts +6 -1
- package/dist/types/multistream/sendSlotManager.d.ts +8 -1
- package/dist/types/reachability/clusterReachability.d.ts +1 -10
- package/dist/types/reachability/index.d.ts +83 -36
- package/dist/types/reachability/reachability.types.d.ts +64 -0
- package/dist/types/reachability/request.d.ts +5 -1
- package/dist/types/recording-controller/enums.d.ts +5 -2
- package/dist/types/recording-controller/index.d.ts +1 -0
- package/dist/types/recording-controller/util.d.ts +2 -1
- package/dist/types/roap/request.d.ts +1 -13
- package/dist/types/statsAnalyzer/global.d.ts +36 -0
- package/dist/types/statsAnalyzer/index.d.ts +217 -0
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +48 -0
- package/dist/webinar/collection.d.ts +16 -0
- package/dist/webinar/index.d.ts +5 -0
- package/dist/webinar/index.js +390 -7
- package/dist/webinar/index.js.map +1 -1
- package/package.json +23 -22
- package/src/annotation/index.ts +16 -0
- package/src/common/errors/join-forbidden-error.ts +26 -0
- package/src/common/errors/join-webinar-error.ts +24 -0
- package/src/common/errors/multistream-not-supported-error.ts +30 -0
- package/src/config.ts +1 -0
- package/src/constants.ts +61 -3
- package/src/index.ts +5 -3
- package/src/locus-info/index.ts +20 -3
- package/src/locus-info/selfUtils.ts +24 -6
- package/src/media/MediaConnectionAwaiter.ts +2 -0
- package/src/media/properties.ts +34 -13
- package/src/meeting/brbState.ts +169 -0
- package/src/meeting/in-meeting-actions.ts +25 -0
- package/src/meeting/index.ts +443 -87
- package/src/meeting/locusMediaRequest.ts +11 -8
- package/src/meeting/muteState.ts +1 -6
- package/src/meeting/request.ts +30 -12
- package/src/meeting/request.type.ts +7 -0
- package/src/meeting/util.ts +32 -13
- package/src/meeting-info/meeting-info-v2.ts +83 -12
- package/src/meeting-info/utilv2.ts +17 -3
- package/src/meetings/index.ts +79 -20
- package/src/meetings/meetings.types.ts +10 -0
- package/src/meetings/util.ts +2 -1
- package/src/member/index.ts +9 -0
- package/src/member/types.ts +8 -0
- package/src/member/util.ts +34 -24
- package/src/members/util.ts +1 -0
- package/src/metrics/constants.ts +6 -1
- package/src/multistream/remoteMedia.ts +28 -15
- package/src/multistream/sendSlotManager.ts +31 -0
- package/src/reachability/clusterReachability.ts +5 -15
- package/src/reachability/index.ts +311 -75
- package/src/reachability/reachability.types.ts +85 -0
- package/src/reachability/request.ts +55 -31
- package/src/recording-controller/enums.ts +5 -2
- package/src/recording-controller/index.ts +17 -4
- package/src/recording-controller/util.ts +20 -5
- package/src/roap/index.ts +14 -13
- package/src/roap/request.ts +30 -44
- package/src/roap/turnDiscovery.ts +2 -4
- package/src/webinar/index.ts +235 -9
- package/test/unit/spec/annotation/index.ts +46 -1
- package/test/unit/spec/locus-info/index.js +292 -60
- package/test/unit/spec/locus-info/selfConstant.js +7 -0
- package/test/unit/spec/locus-info/selfUtils.js +101 -1
- package/test/unit/spec/media/properties.ts +15 -0
- package/test/unit/spec/meeting/brbState.ts +114 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +15 -1
- package/test/unit/spec/meeting/index.js +851 -107
- package/test/unit/spec/meeting/locusMediaRequest.ts +18 -11
- package/test/unit/spec/meeting/muteState.js +0 -24
- package/test/unit/spec/meeting/request.js +3 -26
- package/test/unit/spec/meeting/utils.js +73 -28
- package/test/unit/spec/meeting-info/meetinginfov2.js +46 -4
- package/test/unit/spec/meeting-info/utilv2.js +26 -0
- package/test/unit/spec/meetings/index.js +159 -18
- package/test/unit/spec/meetings/utils.js +10 -0
- package/test/unit/spec/member/util.js +52 -11
- package/test/unit/spec/members/utils.js +95 -0
- package/test/unit/spec/multistream/remoteMedia.ts +11 -7
- package/test/unit/spec/reachability/clusterReachability.ts +7 -0
- package/test/unit/spec/reachability/index.ts +383 -9
- package/test/unit/spec/reachability/request.js +48 -12
- package/test/unit/spec/recording-controller/index.js +61 -5
- package/test/unit/spec/recording-controller/util.js +39 -3
- package/test/unit/spec/roap/index.ts +48 -1
- package/test/unit/spec/roap/request.ts +51 -109
- package/test/unit/spec/roap/turnDiscovery.ts +202 -147
- package/test/unit/spec/webinar/index.ts +504 -0
- package/dist/common/errors/webinar-registration-error.js.map +0 -1
- package/src/common/errors/webinar-registration-error.ts +0 -27
@@ -0,0 +1,39 @@
|
|
1
|
+
import { StatelessWebexPlugin } from '@webex/webex-core';
|
2
|
+
import { IP_VERSION } from '../constants';
|
3
|
+
import { LocusMediaRequest } from '../meeting/locusMediaRequest';
|
4
|
+
/**
|
5
|
+
* @class RoapRequest
|
6
|
+
*/
|
7
|
+
export default class RoapRequest extends StatelessWebexPlugin {
|
8
|
+
/**
|
9
|
+
* Returns reachability data.
|
10
|
+
* @param {Object} localSdp
|
11
|
+
* @returns {Object}
|
12
|
+
*/
|
13
|
+
attachReachabilityData(localSdp: any): Promise<{
|
14
|
+
localSdp: any;
|
15
|
+
joinCookie: any;
|
16
|
+
}>;
|
17
|
+
/**
|
18
|
+
* Sends a ROAP message
|
19
|
+
* @param {Object} options
|
20
|
+
* @param {Object} options.roapMessage
|
21
|
+
* @param {String} options.locusSelfUrl
|
22
|
+
* @param {String} options.mediaId
|
23
|
+
* @param {String} options.correlationId
|
24
|
+
* @param {String} options.meetingId
|
25
|
+
* @param {IP_VERSION} options.ipVersion only required for offers
|
26
|
+
* @returns {Promise} returns the response/failure of the request
|
27
|
+
*/
|
28
|
+
sendRoap(options: {
|
29
|
+
roapMessage: any;
|
30
|
+
locusSelfUrl: string;
|
31
|
+
mediaId: string;
|
32
|
+
meetingId: string;
|
33
|
+
ipVersion?: IP_VERSION;
|
34
|
+
locusMediaRequest?: LocusMediaRequest;
|
35
|
+
}): Promise<{
|
36
|
+
mediaConnections: any;
|
37
|
+
locus: any;
|
38
|
+
}>;
|
39
|
+
}
|
package/dist/roap/request.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
4
|
-
var _Object$
|
4
|
+
var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
|
5
5
|
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
6
6
|
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
7
7
|
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
@@ -13,7 +13,6 @@ _Object$defineProperty(exports, "__esModule", {
|
|
13
13
|
});
|
14
14
|
exports.default = void 0;
|
15
15
|
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
16
|
-
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
17
16
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
18
17
|
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
19
18
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
@@ -26,7 +25,8 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
|
|
26
25
|
var _webexCore = require("@webex/webex-core");
|
27
26
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
28
27
|
var _constants = require("../constants");
|
29
|
-
|
28
|
+
var _util = _interopRequireDefault(require("../meeting/util"));
|
29
|
+
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
30
30
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
31
31
|
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); }; }
|
32
32
|
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; } } // @ts-ignore
|
@@ -41,54 +41,8 @@ var RoapRequest = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin
|
|
41
41
|
return _super.apply(this, arguments);
|
42
42
|
}
|
43
43
|
(0, _createClass2.default)(RoapRequest, [{
|
44
|
-
key: "
|
44
|
+
key: "sendRoap",
|
45
45
|
value: (
|
46
|
-
/**
|
47
|
-
* Returns reachability data.
|
48
|
-
* @param {Object} localSdp
|
49
|
-
* @returns {Object}
|
50
|
-
*/
|
51
|
-
function () {
|
52
|
-
var _attachReachabilityData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(localSdp) {
|
53
|
-
var joinCookie, reachabilityResult, joinCookieRaw;
|
54
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
55
|
-
while (1) switch (_context.prev = _context.next) {
|
56
|
-
case 0:
|
57
|
-
_context.next = 2;
|
58
|
-
return this.webex.meetings.reachability.getReachabilityResults();
|
59
|
-
case 2:
|
60
|
-
reachabilityResult = _context.sent;
|
61
|
-
if (reachabilityResult && (0, _keys.default)(reachabilityResult).length) {
|
62
|
-
localSdp.reachability = reachabilityResult;
|
63
|
-
}
|
64
|
-
|
65
|
-
// @ts-ignore
|
66
|
-
_context.next = 6;
|
67
|
-
return this.webex.boundedStorage.get(_constants.REACHABILITY.namespace, _constants.REACHABILITY.localStorageJoinCookie).catch(function () {});
|
68
|
-
case 6:
|
69
|
-
joinCookieRaw = _context.sent;
|
70
|
-
if (joinCookieRaw) {
|
71
|
-
try {
|
72
|
-
joinCookie = JSON.parse(joinCookieRaw);
|
73
|
-
} catch (e) {
|
74
|
-
_loggerProxy.default.logger.error("MeetingRequest#constructor --> Error in parsing join cookie data: ".concat(e));
|
75
|
-
}
|
76
|
-
}
|
77
|
-
return _context.abrupt("return", {
|
78
|
-
localSdp: localSdp,
|
79
|
-
joinCookie: joinCookie
|
80
|
-
});
|
81
|
-
case 9:
|
82
|
-
case "end":
|
83
|
-
return _context.stop();
|
84
|
-
}
|
85
|
-
}, _callee, this);
|
86
|
-
}));
|
87
|
-
function attachReachabilityData(_x) {
|
88
|
-
return _attachReachabilityData.apply(this, arguments);
|
89
|
-
}
|
90
|
-
return attachReachabilityData;
|
91
|
-
}()
|
92
46
|
/**
|
93
47
|
* Sends a ROAP message
|
94
48
|
* @param {Object} options
|
@@ -97,46 +51,58 @@ var RoapRequest = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin
|
|
97
51
|
* @param {String} options.mediaId
|
98
52
|
* @param {String} options.correlationId
|
99
53
|
* @param {String} options.meetingId
|
100
|
-
* @param {IP_VERSION} options.ipVersion only required for offers
|
101
54
|
* @returns {Promise} returns the response/failure of the request
|
102
55
|
*/
|
103
|
-
)
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
110
|
-
while (1) switch (_context2.prev = _context2.next) {
|
56
|
+
function () {
|
57
|
+
var _sendRoap = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(options) {
|
58
|
+
var _clientMediaPreferenc, _clientMediaPreferenc2;
|
59
|
+
var roapMessage, locusSelfUrl, isMultistream, mediaId, locusMediaRequest, reachability, clientMediaPreferences;
|
60
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
61
|
+
while (1) switch (_context.prev = _context.next) {
|
111
62
|
case 0:
|
112
|
-
roapMessage = options.roapMessage, locusSelfUrl = options.locusSelfUrl,
|
63
|
+
roapMessage = options.roapMessage, locusSelfUrl = options.locusSelfUrl, isMultistream = options.isMultistream, mediaId = options.mediaId, locusMediaRequest = options.locusMediaRequest;
|
113
64
|
if (!mediaId) {
|
114
65
|
_loggerProxy.default.logger.info('Roap:request#sendRoap --> sending empty mediaID');
|
115
66
|
}
|
116
67
|
if (locusMediaRequest) {
|
117
|
-
|
68
|
+
_context.next = 5;
|
118
69
|
break;
|
119
70
|
}
|
120
71
|
_loggerProxy.default.logger.warn('Roap:request#sendRoap --> locusMediaRequest unavailable, not sending roap');
|
121
|
-
return
|
72
|
+
return _context.abrupt("return", _promise.default.reject(new Error('sendRoap called when locusMediaRequest is undefined')));
|
122
73
|
case 5:
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
74
|
+
clientMediaPreferences = {
|
75
|
+
// bare minimum fallback value that should allow us to join;
|
76
|
+
joinCookie: undefined,
|
77
|
+
ipver: _constants.IP_VERSION.unknown,
|
78
|
+
preferTranscoding: !isMultistream
|
79
|
+
};
|
80
|
+
_context.prev = 6;
|
81
|
+
_context.next = 9;
|
82
|
+
return this.webex.meetings.reachability.getClientMediaPreferences(isMultistream,
|
83
|
+
// @ts-ignore
|
84
|
+
_util.default.getIpVersion(this.webex));
|
85
|
+
case 9:
|
86
|
+
clientMediaPreferences = _context.sent;
|
87
|
+
_context.next = 12;
|
88
|
+
return this.webex.meetings.reachability.getReachabilityReportToAttachToRoap();
|
89
|
+
case 12:
|
90
|
+
reachability = _context.sent;
|
91
|
+
_context.next = 18;
|
92
|
+
break;
|
93
|
+
case 15:
|
94
|
+
_context.prev = 15;
|
95
|
+
_context.t0 = _context["catch"](6);
|
96
|
+
_loggerProxy.default.logger.error('Roap:request#sendRoap --> reachability error:', _context.t0);
|
97
|
+
case 18:
|
98
|
+
_loggerProxy.default.logger.info("Roap:request#sendRoap --> ".concat(roapMessage.messageType, " seq:").concat(roapMessage.seq, " ").concat((_clientMediaPreferenc = clientMediaPreferences) !== null && _clientMediaPreferenc !== void 0 && _clientMediaPreferenc.ipver ? "ipver=".concat((_clientMediaPreferenc2 = clientMediaPreferences) === null || _clientMediaPreferenc2 === void 0 ? void 0 : _clientMediaPreferenc2.ipver, " ") : '', " ").concat(locusSelfUrl));
|
99
|
+
return _context.abrupt("return", locusMediaRequest.send({
|
133
100
|
type: 'RoapMessage',
|
134
101
|
selfUrl: locusSelfUrl,
|
135
|
-
joinCookie: joinCookie,
|
136
102
|
mediaId: mediaId,
|
137
103
|
roapMessage: roapMessage,
|
138
|
-
reachability:
|
139
|
-
|
104
|
+
reachability: reachability,
|
105
|
+
clientMediaPreferences: clientMediaPreferences
|
140
106
|
}).then(function (res) {
|
141
107
|
// always it will be the first mediaConnection Object
|
142
108
|
var mediaConnections = res.body.mediaConnections && res.body.mediaConnections.length > 0 && res.body.mediaConnections[0];
|
@@ -153,13 +119,13 @@ var RoapRequest = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin
|
|
153
119
|
_loggerProxy.default.logger.error("Roap:request#sendRoapRequest --> roapMessage that caused error:".concat((0, _stringify.default)(roapMessage, null, 2), " + '\\n mediaId:'").concat(options.mediaId));
|
154
120
|
throw err;
|
155
121
|
}));
|
156
|
-
case
|
122
|
+
case 20:
|
157
123
|
case "end":
|
158
|
-
return
|
124
|
+
return _context.stop();
|
159
125
|
}
|
160
|
-
},
|
126
|
+
}, _callee, this, [[6, 15]]);
|
161
127
|
}));
|
162
|
-
function sendRoap(
|
128
|
+
function sendRoap(_x) {
|
163
129
|
return _sendRoap.apply(this, arguments);
|
164
130
|
}
|
165
131
|
return sendRoap;
|
package/dist/roap/request.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_webexCore","require","_loggerProxy","_interopRequireDefault","_constants","ownKeys","e","r","t","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","RoapRequest","exports","_StatelessWebexPlugin","_inherits2","_super","_classCallCheck2","_createClass2","key","value","_attachReachabilityData","_asyncToGenerator2","_regenerator","mark","_callee","localSdp","joinCookie","reachabilityResult","joinCookieRaw","wrap","_callee$","_context","prev","next","webex","meetings","reachability","getReachabilityResults","sent","_keys","boundedStorage","get","REACHABILITY","namespace","localStorageJoinCookie","catch","JSON","parse","LoggerProxy","logger","error","concat","abrupt","stop","attachReachabilityData","_x","_sendRoap","_callee2","options","roapMessage","locusSelfUrl","mediaId","locusMediaRequest","ipVersion","_yield$this$attachRea","localSdpWithReachabilityData","_callee2$","_context2","info","warn","_promise","reject","Error","messageType","seq","send","type","selfUrl","then","res","mediaConnections","body","debug","_stringify","statusCode","locus","roapSeq","err","sendRoap","_x2","StatelessWebexPlugin"],"sources":["request.ts"],"sourcesContent":["// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {IP_VERSION, REACHABILITY} from '../constants';\nimport {LocusMediaRequest} from '../meeting/locusMediaRequest';\n\n/**\n * @class RoapRequest\n */\nexport default class RoapRequest extends StatelessWebexPlugin {\n /**\n * Returns reachability data.\n * @param {Object} localSdp\n * @returns {Object}\n */\n async attachReachabilityData(localSdp) {\n let joinCookie;\n\n // @ts-ignore\n const reachabilityResult = await this.webex.meetings.reachability.getReachabilityResults();\n\n if (reachabilityResult && Object.keys(reachabilityResult).length) {\n localSdp.reachability = reachabilityResult;\n }\n\n // @ts-ignore\n const joinCookieRaw = await this.webex.boundedStorage\n .get(REACHABILITY.namespace, REACHABILITY.localStorageJoinCookie)\n .catch(() => {});\n\n if (joinCookieRaw) {\n try {\n joinCookie = JSON.parse(joinCookieRaw);\n } catch (e) {\n LoggerProxy.logger.error(\n `MeetingRequest#constructor --> Error in parsing join cookie data: ${e}`\n );\n }\n }\n\n return {localSdp, joinCookie};\n }\n\n /**\n * Sends a ROAP message\n * @param {Object} options\n * @param {Object} options.roapMessage\n * @param {String} options.locusSelfUrl\n * @param {String} options.mediaId\n * @param {String} options.correlationId\n * @param {String} options.meetingId\n * @param {IP_VERSION} options.ipVersion only required for offers\n * @returns {Promise} returns the response/failure of the request\n */\n async sendRoap(options: {\n roapMessage: any;\n locusSelfUrl: string;\n mediaId: string;\n meetingId: string;\n ipVersion?: IP_VERSION;\n locusMediaRequest?: LocusMediaRequest;\n }) {\n const {roapMessage, locusSelfUrl, mediaId, locusMediaRequest, ipVersion} = options;\n\n if (!mediaId) {\n LoggerProxy.logger.info('Roap:request#sendRoap --> sending empty mediaID');\n }\n\n if (!locusMediaRequest) {\n LoggerProxy.logger.warn(\n 'Roap:request#sendRoap --> locusMediaRequest unavailable, not sending roap'\n );\n\n return Promise.reject(new Error('sendRoap called when locusMediaRequest is undefined'));\n }\n const {localSdp: localSdpWithReachabilityData, joinCookie} = await this.attachReachabilityData({\n roapMessage,\n });\n\n LoggerProxy.logger.info(\n `Roap:request#sendRoap --> ${roapMessage.messageType} seq:${roapMessage.seq} ${\n ipVersion ? `ipver=${ipVersion} ` : ''\n } ${locusSelfUrl}`\n );\n\n return locusMediaRequest\n .send({\n type: 'RoapMessage',\n selfUrl: locusSelfUrl,\n joinCookie,\n mediaId,\n roapMessage,\n reachability: localSdpWithReachabilityData.reachability,\n ipVersion,\n })\n .then((res) => {\n // always it will be the first mediaConnection Object\n const mediaConnections =\n res.body.mediaConnections &&\n res.body.mediaConnections.length > 0 &&\n res.body.mediaConnections[0];\n\n LoggerProxy.logger.debug(\n `Roap:request#sendRoap --> response:${JSON.stringify(\n mediaConnections,\n null,\n 2\n )}'\\n StatusCode:'${res.statusCode}`\n );\n const {locus} = res.body;\n\n locus.roapSeq = options.roapMessage.seq;\n\n return {\n locus,\n ...(mediaConnections && {mediaConnections: res.body.mediaConnections}),\n };\n })\n .catch((err) => {\n LoggerProxy.logger.error(`Roap:request#sendRoap --> Error:`, err);\n LoggerProxy.logger.error(\n `Roap:request#sendRoapRequest --> roapMessage that caused error:${JSON.stringify(\n roapMessage,\n null,\n 2\n )} + '\\\\n mediaId:'${options.mediaId}`\n );\n throw err;\n });\n }\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["_webexCore","require","_loggerProxy","_interopRequireDefault","_constants","_util","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","RoapRequest","exports","_StatelessWebexPlugin","_inherits2","_super","_classCallCheck2","_createClass2","key","value","_sendRoap","_asyncToGenerator2","_regenerator","mark","_callee","options","_clientMediaPreferenc","_clientMediaPreferenc2","roapMessage","locusSelfUrl","isMultistream","mediaId","locusMediaRequest","reachability","clientMediaPreferences","wrap","_callee$","_context","prev","next","LoggerProxy","logger","info","warn","abrupt","_promise","reject","Error","joinCookie","undefined","ipver","IP_VERSION","unknown","preferTranscoding","webex","meetings","getClientMediaPreferences","MeetingUtil","getIpVersion","sent","getReachabilityReportToAttachToRoap","t0","error","concat","messageType","seq","send","type","selfUrl","then","res","mediaConnections","body","debug","_stringify","statusCode","locus","roapSeq","catch","err","stop","sendRoap","_x","StatelessWebexPlugin"],"sources":["request.ts"],"sourcesContent":["// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {IP_VERSION, REACHABILITY} from '../constants';\nimport {LocusMediaRequest} from '../meeting/locusMediaRequest';\nimport MeetingUtil from '../meeting/util';\nimport {ClientMediaPreferences} from '../reachability/reachability.types';\n\n/**\n * @class RoapRequest\n */\nexport default class RoapRequest extends StatelessWebexPlugin {\n /**\n * Sends a ROAP message\n * @param {Object} options\n * @param {Object} options.roapMessage\n * @param {String} options.locusSelfUrl\n * @param {String} options.mediaId\n * @param {String} options.correlationId\n * @param {String} options.meetingId\n * @returns {Promise} returns the response/failure of the request\n */\n async sendRoap(options: {\n roapMessage: any;\n locusSelfUrl: string;\n mediaId: string;\n isMultistream: boolean;\n locusMediaRequest?: LocusMediaRequest;\n }) {\n const {roapMessage, locusSelfUrl, isMultistream, mediaId, locusMediaRequest} = options;\n\n if (!mediaId) {\n LoggerProxy.logger.info('Roap:request#sendRoap --> sending empty mediaID');\n }\n\n if (!locusMediaRequest) {\n LoggerProxy.logger.warn(\n 'Roap:request#sendRoap --> locusMediaRequest unavailable, not sending roap'\n );\n\n return Promise.reject(new Error('sendRoap called when locusMediaRequest is undefined'));\n }\n\n let reachability;\n let clientMediaPreferences: ClientMediaPreferences = {\n // bare minimum fallback value that should allow us to join;\n joinCookie: undefined,\n ipver: IP_VERSION.unknown,\n preferTranscoding: !isMultistream,\n };\n\n try {\n clientMediaPreferences =\n // @ts-ignore\n await this.webex.meetings.reachability.getClientMediaPreferences(\n isMultistream,\n // @ts-ignore\n MeetingUtil.getIpVersion(this.webex)\n );\n reachability =\n // @ts-ignore\n await this.webex.meetings.reachability.getReachabilityReportToAttachToRoap();\n } catch (error) {\n LoggerProxy.logger.error('Roap:request#sendRoap --> reachability error:', error);\n }\n\n LoggerProxy.logger.info(\n `Roap:request#sendRoap --> ${roapMessage.messageType} seq:${roapMessage.seq} ${\n clientMediaPreferences?.ipver ? `ipver=${clientMediaPreferences?.ipver} ` : ''\n } ${locusSelfUrl}`\n );\n\n return locusMediaRequest\n .send({\n type: 'RoapMessage',\n selfUrl: locusSelfUrl,\n mediaId,\n roapMessage,\n reachability,\n clientMediaPreferences,\n })\n .then((res) => {\n // always it will be the first mediaConnection Object\n const mediaConnections =\n res.body.mediaConnections &&\n res.body.mediaConnections.length > 0 &&\n res.body.mediaConnections[0];\n\n LoggerProxy.logger.debug(\n `Roap:request#sendRoap --> response:${JSON.stringify(\n mediaConnections,\n null,\n 2\n )}'\\n StatusCode:'${res.statusCode}`\n );\n const {locus} = res.body;\n\n locus.roapSeq = options.roapMessage.seq;\n\n return {\n locus,\n ...(mediaConnections && {mediaConnections: res.body.mediaConnections}),\n };\n })\n .catch((err) => {\n LoggerProxy.logger.error(`Roap:request#sendRoap --> Error:`, err);\n LoggerProxy.logger.error(\n `Roap:request#sendRoapRequest --> roapMessage that caused error:${JSON.stringify(\n roapMessage,\n null,\n 2\n )} + '\\\\n mediaId:'${options.mediaId}`\n );\n throw err;\n });\n }\n}\n"],"mappings":"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"}
|
@@ -0,0 +1,126 @@
|
|
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 = exports.default = RoapStateMachine;
|
126
|
+
//# sourceMappingURL=state.js.map
|
@@ -0,0 +1 @@
|
|
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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","ignoreList":[]}
|
@@ -0,0 +1,155 @@
|
|
1
|
+
import { Enum } from '../constants';
|
2
|
+
import RoapRequest from './request';
|
3
|
+
import Meeting from '../meeting';
|
4
|
+
declare const TurnDiscoverySkipReason: {
|
5
|
+
readonly missingHttpResponse: "missing http response";
|
6
|
+
readonly reachability: "reachability";
|
7
|
+
readonly alreadyInProgress: "already in progress";
|
8
|
+
};
|
9
|
+
export type TurnDiscoverySkipReason = Enum<typeof TurnDiscoverySkipReason> | string | undefined;
|
10
|
+
export type TurnServerInfo = {
|
11
|
+
url: string;
|
12
|
+
username: string;
|
13
|
+
password: string;
|
14
|
+
};
|
15
|
+
export type TurnDiscoveryResult = {
|
16
|
+
turnServerInfo?: TurnServerInfo;
|
17
|
+
turnDiscoverySkippedReason: TurnDiscoverySkipReason;
|
18
|
+
};
|
19
|
+
/**
|
20
|
+
* Handles the process of finding out TURN server information from Linus.
|
21
|
+
* This is achieved by sending a TURN_DISCOVERY_REQUEST.
|
22
|
+
*/
|
23
|
+
export default class TurnDiscovery {
|
24
|
+
private roapRequest;
|
25
|
+
private defer?;
|
26
|
+
private turnInfo;
|
27
|
+
private responseTimer?;
|
28
|
+
/**
|
29
|
+
* Constructor
|
30
|
+
*
|
31
|
+
* @param {RoapRequest} roapRequest
|
32
|
+
*/
|
33
|
+
constructor(roapRequest: RoapRequest);
|
34
|
+
/**
|
35
|
+
* waits for TURN_DISCOVERY_RESPONSE message to arrive
|
36
|
+
*
|
37
|
+
* @returns {Promise}
|
38
|
+
* @private
|
39
|
+
* @memberof Roap
|
40
|
+
*/
|
41
|
+
private waitForTurnDiscoveryResponse;
|
42
|
+
/**
|
43
|
+
* Handles TURN_DISCOVERY_RESPONSE roap message. Use it if the roap message comes over the websocket,
|
44
|
+
* otherwise use handleTurnDiscoveryHttpResponse() if it comes in the http response.
|
45
|
+
*
|
46
|
+
* @param {Object} roapMessage
|
47
|
+
* @param {string} from string to indicate how we got the response (used just for logging)
|
48
|
+
* @returns {void}
|
49
|
+
* @public
|
50
|
+
* @memberof Roap
|
51
|
+
*/
|
52
|
+
handleTurnDiscoveryResponse(roapMessage: any, from: string): void;
|
53
|
+
/**
|
54
|
+
* Generates TURN_DISCOVERY_REQUEST roap message. When this method returns a roapMessage, it means that a TURN discovery process has started.
|
55
|
+
* It needs be ended by calling handleTurnDiscoveryHttpResponse() once you get a response from the backend. If you don't get any response
|
56
|
+
* or want to abort, you need to call abort().
|
57
|
+
*
|
58
|
+
* @param {Meeting} meeting
|
59
|
+
* @param {boolean} isForced
|
60
|
+
* @returns {Object}
|
61
|
+
*/
|
62
|
+
generateTurnDiscoveryRequestMessage(meeting: Meeting, isForced: boolean): Promise<{
|
63
|
+
roapMessage?: object;
|
64
|
+
turnDiscoverySkippedReason: TurnDiscoverySkipReason;
|
65
|
+
}>;
|
66
|
+
/**
|
67
|
+
* Handles any errors that occur during TURN discovery without re-throwing them.
|
68
|
+
*
|
69
|
+
* @param {Meeting} meeting
|
70
|
+
* @param {Error} error
|
71
|
+
* @returns {TurnDiscoveryResult}
|
72
|
+
*/
|
73
|
+
private handleTurnDiscoveryFailure;
|
74
|
+
/**
|
75
|
+
* Handles TURN_DISCOVERY_RESPONSE roap message that came in http response. If the response is not valid,
|
76
|
+
* it returns an object with turnServerInfo set to undefined. In that case you need to call abort()
|
77
|
+
* to end the TURN discovery process.
|
78
|
+
*
|
79
|
+
* @param {Meeting} meeting
|
80
|
+
* @param {Object|undefined} httpResponse can be undefined to indicate that we didn't get the response
|
81
|
+
* @returns {Promise<TurnDiscoveryResult>}
|
82
|
+
* @memberof Roap
|
83
|
+
*/
|
84
|
+
handleTurnDiscoveryHttpResponse(meeting: Meeting, httpResponse?: object): Promise<TurnDiscoveryResult>;
|
85
|
+
/**
|
86
|
+
* Aborts current TURN discovery. This method needs to be called if you called generateTurnDiscoveryRequestMessage(),
|
87
|
+
* but then never got any response from the server.
|
88
|
+
* @returns {void}
|
89
|
+
*/
|
90
|
+
abort(): void;
|
91
|
+
/**
|
92
|
+
* Parses the TURN_DISCOVERY_RESPONSE roap message out of the http response
|
93
|
+
* and returns it.
|
94
|
+
*
|
95
|
+
* @param {Meeting} meeting
|
96
|
+
* @param {any} httpResponse
|
97
|
+
* @returns {any}
|
98
|
+
*/
|
99
|
+
private parseHttpTurnDiscoveryResponse;
|
100
|
+
/**
|
101
|
+
* sends the TURN_DISCOVERY_REQUEST roap request
|
102
|
+
*
|
103
|
+
* @param {Meeting} meeting
|
104
|
+
* @param {Boolean} isReconnecting
|
105
|
+
* @returns {Promise}
|
106
|
+
* @private
|
107
|
+
* @memberof Roap
|
108
|
+
*/
|
109
|
+
private sendRoapTurnDiscoveryRequest;
|
110
|
+
/**
|
111
|
+
* Sends the OK message that server expects to receive
|
112
|
+
* after it sends us TURN_DISCOVERY_RESPONSE
|
113
|
+
*
|
114
|
+
* @param {Meeting} meeting
|
115
|
+
* @returns {Promise}
|
116
|
+
*/
|
117
|
+
sendRoapOK(meeting: Meeting): Promise<{
|
118
|
+
mediaConnections: any;
|
119
|
+
locus: any;
|
120
|
+
}>;
|
121
|
+
/**
|
122
|
+
* Gets the reason why reachability is skipped.
|
123
|
+
*
|
124
|
+
* @param {Meeting} meeting
|
125
|
+
* @returns {Promise<string>} Promise with empty string if reachability is not skipped or a reason if it is skipped
|
126
|
+
*/
|
127
|
+
private getSkipReason;
|
128
|
+
/**
|
129
|
+
* Checks if TURN discovery is skipped.
|
130
|
+
*
|
131
|
+
* @param {Meeting} meeting
|
132
|
+
* @returns {Boolean} true if TURN discovery is being skipped, false if it is being done
|
133
|
+
*/
|
134
|
+
isSkipped(meeting: any): Promise<boolean>;
|
135
|
+
/**
|
136
|
+
* Retrieves TURN server information from the backend by doing
|
137
|
+
* a roap message exchange:
|
138
|
+
* client server
|
139
|
+
* | -----TURN_DISCOVERY_REQUEST-----> |
|
140
|
+
* | <----TURN_DISCOVERY_RESPONSE----- |
|
141
|
+
* | --------------OK----------------> |
|
142
|
+
*
|
143
|
+
* This TURN discovery roap exchange is always done with seq=0.
|
144
|
+
* The RoapMediaConnection SDP exchange always starts with seq=1,
|
145
|
+
* so it works fine no matter if TURN discovery is done or not.
|
146
|
+
*
|
147
|
+
* @param {Meeting} meeting
|
148
|
+
* @param {Boolean} [isReconnecting] should be set to true if this is a new
|
149
|
+
* media connection just after a reconnection
|
150
|
+
* @param {Boolean} [isForced]
|
151
|
+
* @returns {Promise}
|
152
|
+
*/
|
153
|
+
doTurnDiscovery(meeting: Meeting, isReconnecting?: boolean, isForced?: boolean): Promise<TurnDiscoveryResult>;
|
154
|
+
}
|
155
|
+
export {};
|
@@ -18,7 +18,6 @@ var _metrics = _interopRequireDefault(require("../metrics"));
|
|
18
18
|
var _constants = _interopRequireDefault(require("../metrics/constants"));
|
19
19
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
20
20
|
var _constants2 = require("../constants");
|
21
|
-
var _util = _interopRequireDefault(require("../meeting/util"));
|
22
21
|
// @ts-ignore - Types not available for @webex/common
|
23
22
|
|
24
23
|
var TURN_DISCOVERY_TIMEOUT = 10; // in seconds
|
@@ -404,10 +403,8 @@ var TurnDiscovery = exports.default = /*#__PURE__*/function () {
|
|
404
403
|
locusSelfUrl: meeting.selfUrl,
|
405
404
|
// @ts-ignore - Fix missing type
|
406
405
|
mediaId: isReconnecting ? '' : meeting.mediaId,
|
407
|
-
|
408
|
-
locusMediaRequest: meeting.locusMediaRequest
|
409
|
-
// @ts-ignore - because of meeting.webex
|
410
|
-
ipVersion: _util.default.getIpVersion(meeting.webex)
|
406
|
+
isMultistream: meeting.isMultistream,
|
407
|
+
locusMediaRequest: meeting.locusMediaRequest
|
411
408
|
}).then( /*#__PURE__*/function () {
|
412
409
|
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(response) {
|
413
410
|
var mediaConnections;
|
@@ -456,7 +453,7 @@ var TurnDiscovery = exports.default = /*#__PURE__*/function () {
|
|
456
453
|
locusSelfUrl: meeting.selfUrl,
|
457
454
|
// @ts-ignore - fix type
|
458
455
|
mediaId: meeting.mediaId,
|
459
|
-
|
456
|
+
isMultistream: meeting.isMultistream,
|
460
457
|
locusMediaRequest: meeting.locusMediaRequest
|
461
458
|
});
|
462
459
|
}
|