@webex/plugin-meetings 3.0.0-beta.32 → 3.0.0-beta.321
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 +46 -8
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +342 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +94 -15
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +709 -35
- package/dist/breakouts/index.js.map +1 -1
- package/dist/breakouts/utils.js +45 -1
- package/dist/breakouts/utils.js.map +1 -1
- package/dist/common/errors/no-meeting-info.js +51 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/reclaim-host-role-errors.js +158 -0
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/webex-errors.js +48 -7
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +5 -1
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +24 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +5 -11
- package/dist/config.js.map +1 -1
- package/dist/constants.js +233 -29
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +14 -2
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.js +109 -15
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.js +7 -0
- package/dist/controls-options-manager/types.js.map +1 -0
- package/dist/controls-options-manager/util.js +309 -18
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.js +112 -1
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +366 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +25 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +91 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +383 -62
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +7 -1
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +57 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +249 -72
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +89 -14
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +61 -116
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +73 -124
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +84 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +3810 -2939
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +292 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +230 -124
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +260 -196
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +601 -417
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +73 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +192 -51
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/util.js +1 -1
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +36 -36
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +39 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +415 -115
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +2 -0
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +72 -6
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +58 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +25 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +132 -25
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +10 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +102 -6
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +106 -38
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +326 -232
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +13 -5
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -468
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +228 -58
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +29 -16
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +39 -36
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +44 -18
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +60 -3
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +209 -59
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +233 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/reachability/index.js +225 -59
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +17 -8
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +201 -156
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/index.js +21 -2
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +9 -8
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js +62 -32
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +112 -97
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +95 -36
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +12 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +142 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/index.js +107 -79
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +27 -26
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +42 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +117 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/utils.d.ts +14 -0
- package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/types/common/errors/webex-errors.d.ts +25 -1
- package/dist/types/common/logs/request.d.ts +2 -0
- package/dist/types/common/queue.d.ts +9 -7
- package/dist/types/config.d.ts +1 -7
- package/dist/types/constants.d.ts +194 -24
- package/dist/types/controls-options-manager/enums.d.ts +11 -1
- package/dist/types/controls-options-manager/index.d.ts +17 -1
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -7
- package/dist/types/index.d.ts +6 -4
- package/dist/types/interpretation/collection.d.ts +5 -0
- package/dist/types/interpretation/index.d.ts +5 -0
- package/dist/types/interpretation/siLanguage.d.ts +5 -0
- package/dist/types/locus-info/index.d.ts +57 -4
- package/dist/types/locus-info/parser.d.ts +67 -6
- package/dist/types/media/index.d.ts +2 -0
- package/dist/types/media/properties.d.ts +34 -48
- package/dist/types/meeting/in-meeting-actions.d.ts +84 -2
- package/dist/types/meeting/index.d.ts +464 -510
- package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/types/meeting/muteState.d.ts +99 -23
- package/dist/types/meeting/request.d.ts +72 -43
- package/dist/types/meeting/util.d.ts +101 -1
- package/dist/types/meeting-info/index.d.ts +13 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
- package/dist/types/meetings/collection.d.ts +17 -0
- package/dist/types/meetings/index.d.ts +98 -20
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/member/index.d.ts +14 -0
- package/dist/types/member/types.d.ts +32 -0
- package/dist/types/members/collection.d.ts +5 -0
- package/dist/types/members/index.d.ts +35 -2
- package/dist/types/members/request.d.ts +73 -9
- package/dist/types/members/types.d.ts +25 -0
- package/dist/types/members/util.d.ts +214 -1
- package/dist/types/metrics/constants.d.ts +12 -4
- package/dist/types/metrics/index.d.ts +4 -119
- package/dist/types/multistream/mediaRequestManager.d.ts +72 -5
- package/dist/types/multistream/receiveSlot.d.ts +13 -11
- package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
- package/dist/types/multistream/remoteMedia.d.ts +8 -29
- package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
- package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
- package/dist/types/multistream/sendSlotManager.d.ts +61 -0
- package/dist/types/reachability/index.d.ts +61 -7
- package/dist/types/reachability/request.d.ts +7 -3
- package/dist/types/reconnection-manager/index.d.ts +9 -0
- package/dist/types/recording-controller/index.d.ts +15 -1
- package/dist/types/recording-controller/util.d.ts +5 -4
- package/dist/types/roap/index.d.ts +2 -1
- package/dist/types/roap/request.d.ts +15 -11
- package/dist/types/roap/turnDiscovery.d.ts +21 -3
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +54 -0
- package/dist/types/statsAnalyzer/index.d.ts +7 -1
- package/dist/types/webinar/collection.d.ts +16 -0
- package/dist/types/webinar/index.d.ts +5 -0
- package/dist/webinar/collection.js +44 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.js +69 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +24 -20
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +42 -12
- package/src/breakouts/breakout.ts +67 -9
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +592 -20
- package/src/breakouts/utils.ts +42 -0
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/reclaim-host-role-errors.ts +134 -0
- package/src/common/errors/webex-errors.ts +44 -2
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/logs/request.ts +5 -1
- package/src/common/queue.ts +22 -8
- package/src/config.ts +4 -10
- package/src/constants.ts +221 -19
- package/src/controls-options-manager/enums.ts +12 -0
- package/src/controls-options-manager/index.ts +116 -21
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +294 -14
- package/src/index.ts +40 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +108 -0
- package/src/locus-info/index.ts +413 -59
- package/src/locus-info/infoUtils.ts +10 -2
- package/src/locus-info/mediaSharesUtils.ts +64 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +81 -5
- package/src/media/index.ts +102 -122
- package/src/media/properties.ts +87 -110
- package/src/meeting/in-meeting-actions.ts +167 -3
- package/src/meeting/index.ts +3162 -2553
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +229 -131
- package/src/meeting/request.ts +177 -121
- package/src/meeting/util.ts +588 -394
- package/src/meeting-info/index.ts +81 -8
- package/src/meeting-info/meeting-info-v2.ts +170 -14
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +23 -23
- package/src/meetings/collection.ts +33 -0
- package/src/meetings/index.ts +445 -123
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +80 -11
- package/src/member/index.ts +58 -0
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +141 -25
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +134 -8
- package/src/members/request.ts +97 -17
- package/src/members/types.ts +29 -0
- package/src/members/util.ts +333 -240
- package/src/metrics/constants.ts +12 -4
- package/src/metrics/index.ts +1 -490
- package/src/multistream/mediaRequestManager.ts +277 -82
- package/src/multistream/receiveSlot.ts +31 -17
- package/src/multistream/receiveSlotManager.ts +34 -24
- package/src/multistream/remoteMedia.ts +27 -2
- package/src/multistream/remoteMediaGroup.ts +59 -0
- package/src/multistream/remoteMediaManager.ts +148 -30
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/reachability/index.ts +228 -37
- package/src/reachability/request.ts +17 -8
- package/src/reconnection-manager/index.ts +83 -56
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +63 -32
- package/src/roap/request.ts +100 -104
- package/src/roap/turnDiscovery.ts +48 -26
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +124 -0
- package/src/statsAnalyzer/index.ts +135 -92
- package/src/statsAnalyzer/mqaUtil.ts +30 -28
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +60 -3
- package/test/integration/spec/journey.js +320 -261
- package/test/integration/spec/space-meeting.js +76 -3
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +118 -28
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1395 -69
- package/test/unit/spec/breakouts/utils.js +52 -1
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +163 -0
- package/test/unit/spec/controls-options-manager/util.js +576 -60
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +316 -43
- package/test/unit/spec/locus-info/index.js +1304 -33
- package/test/unit/spec/locus-info/infoUtils.js +37 -15
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
- package/test/unit/spec/locus-info/parser.js +116 -35
- package/test/unit/spec/locus-info/selfConstant.js +27 -4
- package/test/unit/spec/locus-info/selfUtils.js +208 -17
- package/test/unit/spec/media/index.ts +104 -37
- package/test/unit/spec/media/properties.ts +2 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +83 -3
- package/test/unit/spec/meeting/index.js +5428 -1930
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +408 -208
- package/test/unit/spec/meeting/request.js +483 -49
- package/test/unit/spec/meeting/utils.js +679 -64
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +526 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +26 -0
- package/test/unit/spec/meetings/index.js +1148 -205
- package/test/unit/spec/meetings/utils.js +202 -2
- package/test/unit/spec/member/index.js +61 -6
- package/test/unit/spec/member/util.js +510 -34
- package/test/unit/spec/members/index.js +432 -1
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +210 -0
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +776 -162
- package/test/unit/spec/multistream/receiveSlot.ts +28 -20
- package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
- package/test/unit/spec/multistream/remoteMedia.ts +30 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/reachability/index.ts +549 -9
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reconnection-manager/index.js +85 -9
- package/test/unit/spec/recording-controller/index.js +294 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +178 -64
- package/test/unit/spec/roap/request.ts +203 -85
- package/test/unit/spec/roap/turnDiscovery.ts +82 -36
- package/test/unit/spec/rtcMetrics/index.ts +93 -0
- package/test/unit/spec/stats-analyzer/index.js +147 -3
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -52
- package/dist/meeting/effectsState.js +0 -262
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -299
- package/dist/metrics/config.js.map +0 -1
- package/dist/types/meeting/effectsState.d.ts +0 -42
- package/dist/types/metrics/config.d.ts +0 -178
- package/src/index.js +0 -16
- package/src/meeting/effectsState.ts +0 -211
- package/src/metrics/config.ts +0 -495
- package/test/unit/spec/meeting/effectsState.js +0 -285
|
@@ -26,20 +26,29 @@ function ReachabilityRequest(webex) {
|
|
|
26
26
|
var _this = this;
|
|
27
27
|
(0, _classCallCheck2.default)(this, ReachabilityRequest);
|
|
28
28
|
(0, _defineProperty2.default)(this, "webex", void 0);
|
|
29
|
-
(0, _defineProperty2.default)(this, "getClusters", function () {
|
|
29
|
+
(0, _defineProperty2.default)(this, "getClusters", function (ipVersion) {
|
|
30
30
|
return _this.webex.request({
|
|
31
31
|
method: _constants.HTTP_VERBS.GET,
|
|
32
32
|
shouldRefreshAccessToken: false,
|
|
33
33
|
api: _constants.API.CALLIOPEDISCOVERY,
|
|
34
|
-
resource: _constants.RESOURCE.CLUSTERS
|
|
34
|
+
resource: _constants.RESOURCE.CLUSTERS,
|
|
35
|
+
qs: {
|
|
36
|
+
JCSupport: 1,
|
|
37
|
+
ipver: ipVersion
|
|
38
|
+
}
|
|
35
39
|
}).then(function (res) {
|
|
36
|
-
var
|
|
40
|
+
var _res$body = res.body,
|
|
41
|
+
clusters = _res$body.clusters,
|
|
42
|
+
joinCookie = _res$body.joinCookie;
|
|
37
43
|
(0, _keys.default)(clusters).forEach(function (key) {
|
|
38
44
|
var _res$body$clusterClas, _res$body$clusterClas2;
|
|
39
|
-
clusters[key].isVideoMesh = (_res$body$clusterClas = res.body.clusterClasses)
|
|
45
|
+
clusters[key].isVideoMesh = !!((_res$body$clusterClas = res.body.clusterClasses) !== null && _res$body$clusterClas !== void 0 && (_res$body$clusterClas2 = _res$body$clusterClas.hybridMedia) !== null && _res$body$clusterClas2 !== void 0 && _res$body$clusterClas2.includes(key));
|
|
40
46
|
});
|
|
41
|
-
_loggerProxy.default.logger.log("Reachability:request#getClusters --> get clusters successful:".concat((0, _stringify.default)(clusters)));
|
|
42
|
-
return
|
|
47
|
+
_loggerProxy.default.logger.log("Reachability:request#getClusters --> get clusters (ipver=".concat(ipVersion, ") successful:").concat((0, _stringify.default)(clusters)));
|
|
48
|
+
return {
|
|
49
|
+
clusters: clusters,
|
|
50
|
+
joinCookie: joinCookie
|
|
51
|
+
};
|
|
43
52
|
});
|
|
44
53
|
});
|
|
45
54
|
(0, _defineProperty2.default)(this, "remoteSDPForClusters", function (localSDPList) {
|
|
@@ -60,9 +69,9 @@ function ReachabilityRequest(webex) {
|
|
|
60
69
|
}
|
|
61
70
|
|
|
62
71
|
/**
|
|
63
|
-
*
|
|
72
|
+
* Gets the cluster information
|
|
64
73
|
*
|
|
65
|
-
* @param {
|
|
74
|
+
* @param {IP_VERSION} ipVersion information about current ip network we're on
|
|
66
75
|
* @returns {Promise}
|
|
67
76
|
*/);
|
|
68
77
|
var _default = ReachabilityRequest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ReachabilityRequest","webex","request","method","HTTP_VERBS","GET","shouldRefreshAccessToken","api","API","CALLIOPEDISCOVERY","resource","RESOURCE","CLUSTERS","then","res","clusters","
|
|
1
|
+
{"version":3,"names":["ReachabilityRequest","webex","ipVersion","request","method","HTTP_VERBS","GET","shouldRefreshAccessToken","api","API","CALLIOPEDISCOVERY","resource","RESOURCE","CLUSTERS","qs","JCSupport","ipver","then","res","body","clusters","joinCookie","forEach","key","isVideoMesh","clusterClasses","hybridMedia","includes","LoggerProxy","logger","log","localSDPList","POST","REACHABILITY","offers"],"sources":["request.ts"],"sourcesContent":["import LoggerProxy from '../common/logs/logger-proxy';\nimport {HTTP_VERBS, RESOURCE, API, IP_VERSION} from '../constants';\n\nexport interface ClusterNode {\n isVideoMesh: boolean;\n udp: Array<string>;\n tcp: Array<string>;\n xtls: Array<string>;\n}\n\nexport type ClusterList = {\n [key: string]: ClusterNode;\n};\n\n/**\n * @class ReachabilityRequest\n */\nclass ReachabilityRequest {\n webex: any;\n\n /**\n * Creates an instance of ReachabilityRequest.\n * @param {object} webex\n * @memberof ReachabilityRequest\n */\n constructor(webex: object) {\n this.webex = webex;\n }\n\n /**\n * Gets the cluster information\n *\n * @param {IP_VERSION} ipVersion information about current ip network we're on\n * @returns {Promise}\n */\n getClusters = (ipVersion?: IP_VERSION): Promise<{clusters: ClusterList; joinCookie: any}> =>\n this.webex\n .request({\n method: HTTP_VERBS.GET,\n shouldRefreshAccessToken: false,\n api: API.CALLIOPEDISCOVERY,\n resource: RESOURCE.CLUSTERS,\n qs: {\n JCSupport: 1,\n ipver: ipVersion,\n },\n })\n .then((res) => {\n const {clusters, joinCookie} = res.body;\n\n Object.keys(clusters).forEach((key) => {\n clusters[key].isVideoMesh = !!res.body.clusterClasses?.hybridMedia?.includes(key);\n });\n\n LoggerProxy.logger.log(\n `Reachability:request#getClusters --> get clusters (ipver=${ipVersion}) successful:${JSON.stringify(\n clusters\n )}`\n );\n\n return {\n clusters,\n joinCookie,\n };\n });\n\n /**\n * gets remote SDP For Clusters\n * @param {Object} localSDPList localSDPs for the cluster\n * @returns {Object}\n */\n remoteSDPForClusters = (localSDPList: object) =>\n this.webex\n .request({\n method: HTTP_VERBS.POST,\n shouldRefreshAccessToken: false,\n api: API.CALLIOPEDISCOVERY,\n resource: RESOURCE.REACHABILITY,\n body: {offers: localSDPList},\n })\n .then((res) => {\n LoggerProxy.logger.log(\n 'Reachability:request#remoteSDPForClusters --> Remote SDPs got succcessfully'\n );\n\n return res.body;\n });\n}\n\nexport default ReachabilityRequest;\n"],"mappings":";;;;;;;;;;;;;AAAA;AACA;AAaA;AACA;AACA;AAFA,IAGMA,mBAAmB;AAGvB;AACF;AACA;AACA;AACA;AACE,6BAAYC,KAAa,EAAE;EAAA;EAAA;EAAA;EAAA,mDAUb,UAACC,SAAsB;IAAA,OACnC,KAAI,CAACD,KAAK,CACPE,OAAO,CAAC;MACPC,MAAM,EAAEC,qBAAU,CAACC,GAAG;MACtBC,wBAAwB,EAAE,KAAK;MAC/BC,GAAG,EAAEC,cAAG,CAACC,iBAAiB;MAC1BC,QAAQ,EAAEC,mBAAQ,CAACC,QAAQ;MAC3BC,EAAE,EAAE;QACFC,SAAS,EAAE,CAAC;QACZC,KAAK,EAAEd;MACT;IACF,CAAC,CAAC,CACDe,IAAI,CAAC,UAACC,GAAG,EAAK;MACb,gBAA+BA,GAAG,CAACC,IAAI;QAAhCC,QAAQ,aAARA,QAAQ;QAAEC,UAAU,aAAVA,UAAU;MAE3B,mBAAYD,QAAQ,CAAC,CAACE,OAAO,CAAC,UAACC,GAAG,EAAK;QAAA;QACrCH,QAAQ,CAACG,GAAG,CAAC,CAACC,WAAW,GAAG,CAAC,2BAACN,GAAG,CAACC,IAAI,CAACM,cAAc,4EAAvB,sBAAyBC,WAAW,mDAApC,uBAAsCC,QAAQ,CAACJ,GAAG,CAAC;MACnF,CAAC,CAAC;MAEFK,oBAAW,CAACC,MAAM,CAACC,GAAG,oEACwC5B,SAAS,0BAAgB,wBACnFkB,QAAQ,CACT,EACF;MAED,OAAO;QACLA,QAAQ,EAARA,QAAQ;QACRC,UAAU,EAAVA;MACF,CAAC;IACH,CAAC,CAAC;EAAA;EAAA,4DAOiB,UAACU,YAAoB;IAAA,OAC1C,KAAI,CAAC9B,KAAK,CACPE,OAAO,CAAC;MACPC,MAAM,EAAEC,qBAAU,CAAC2B,IAAI;MACvBzB,wBAAwB,EAAE,KAAK;MAC/BC,GAAG,EAAEC,cAAG,CAACC,iBAAiB;MAC1BC,QAAQ,EAAEC,mBAAQ,CAACqB,YAAY;MAC/Bd,IAAI,EAAE;QAACe,MAAM,EAAEH;MAAY;IAC7B,CAAC,CAAC,CACDd,IAAI,CAAC,UAACC,GAAG,EAAK;MACbU,oBAAW,CAACC,MAAM,CAACC,GAAG,CACpB,6EAA6E,CAC9E;MAED,OAAOZ,GAAG,CAACC,IAAI;IACjB,CAAC,CAAC;EAAA;EA5DJ,IAAI,CAAClB,KAAK,GAAGA,KAAK;AACpB;;AAEA;AACF;AACA;AACA;AACA;AACA,GALE;AAAA,eA4DaD,mBAAmB;AAAA"}
|
|
@@ -25,8 +25,6 @@ var _constants = require("../constants");
|
|
|
25
25
|
var _constants2 = _interopRequireDefault(require("../metrics/constants"));
|
|
26
26
|
var _reconnection = _interopRequireDefault(require("../common/errors/reconnection"));
|
|
27
27
|
var _reconnectionInProgress = _interopRequireDefault(require("../common/errors/reconnection-in-progress"));
|
|
28
|
-
var _config = require("../metrics/config");
|
|
29
|
-
var _media = _interopRequireDefault(require("../media"));
|
|
30
28
|
var _metrics = _interopRequireDefault(require("../metrics"));
|
|
31
29
|
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
30
|
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; } }
|
|
@@ -247,6 +245,41 @@ var ReconnectionManager = /*#__PURE__*/function () {
|
|
|
247
245
|
this.meeting = null;
|
|
248
246
|
}
|
|
249
247
|
|
|
248
|
+
/**
|
|
249
|
+
* Stop the local share stream.
|
|
250
|
+
*
|
|
251
|
+
* @param {string} reason a {@link SHARE_STOPPED_REASON}
|
|
252
|
+
* @returns {undefined}
|
|
253
|
+
* @private
|
|
254
|
+
* @memberof ReconnectionManager
|
|
255
|
+
*/
|
|
256
|
+
}, {
|
|
257
|
+
key: "stopLocalShareStream",
|
|
258
|
+
value: function () {
|
|
259
|
+
var _stopLocalShareStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(reason) {
|
|
260
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
261
|
+
while (1) switch (_context.prev = _context.next) {
|
|
262
|
+
case 0:
|
|
263
|
+
_context.next = 2;
|
|
264
|
+
return this.meeting.unpublishStreams([this.meeting.mediaProperties.shareVideoStream, this.meeting.mediaProperties.shareAudioStream]);
|
|
265
|
+
case 2:
|
|
266
|
+
_triggerProxy.default.trigger(this.meeting, {
|
|
267
|
+
file: 'reconnection-manager/index',
|
|
268
|
+
function: 'stopLocalShareStream'
|
|
269
|
+
}, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_LOCAL, {
|
|
270
|
+
reason: reason
|
|
271
|
+
});
|
|
272
|
+
case 3:
|
|
273
|
+
case "end":
|
|
274
|
+
return _context.stop();
|
|
275
|
+
}
|
|
276
|
+
}, _callee, this);
|
|
277
|
+
}));
|
|
278
|
+
function stopLocalShareStream(_x) {
|
|
279
|
+
return _stopLocalShareStream.apply(this, arguments);
|
|
280
|
+
}
|
|
281
|
+
return stopLocalShareStream;
|
|
282
|
+
}()
|
|
250
283
|
/**
|
|
251
284
|
* @public
|
|
252
285
|
* @memberof ReconnectionManager
|
|
@@ -290,48 +323,56 @@ var ReconnectionManager = /*#__PURE__*/function () {
|
|
|
290
323
|
}, {
|
|
291
324
|
key: "reconnect",
|
|
292
325
|
value: function () {
|
|
293
|
-
var _reconnect = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
326
|
+
var _reconnect = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
294
327
|
var _this3 = this;
|
|
295
328
|
var _ref2,
|
|
296
329
|
_ref2$networkDisconne,
|
|
297
330
|
networkDisconnect,
|
|
298
331
|
_ref2$networkRetry,
|
|
299
332
|
networkRetry,
|
|
300
|
-
|
|
301
|
-
return _regenerator.default.wrap(function
|
|
302
|
-
while (1) switch (
|
|
333
|
+
_args2 = arguments;
|
|
334
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
335
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
303
336
|
case 0:
|
|
304
|
-
_ref2 =
|
|
337
|
+
_ref2 = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {}, _ref2$networkDisconne = _ref2.networkDisconnect, networkDisconnect = _ref2$networkDisconne === void 0 ? false : _ref2$networkDisconne, _ref2$networkRetry = _ref2.networkRetry, networkRetry = _ref2$networkRetry === void 0 ? false : _ref2$networkRetry;
|
|
305
338
|
_loggerProxy.default.logger.info("ReconnectionManager:index#reconnect --> Reconnection start for meeting ".concat(this.meeting.id, "."));
|
|
306
339
|
// First, validate that we can reconnect, if not, it will throw an error
|
|
307
|
-
|
|
340
|
+
_context2.prev = 2;
|
|
308
341
|
this.validate();
|
|
309
|
-
|
|
342
|
+
_context2.next = 10;
|
|
310
343
|
break;
|
|
311
344
|
case 6:
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
_loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Reconnection unable to begin.',
|
|
315
|
-
throw
|
|
345
|
+
_context2.prev = 6;
|
|
346
|
+
_context2.t0 = _context2["catch"](2);
|
|
347
|
+
_loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Reconnection unable to begin.', _context2.t0);
|
|
348
|
+
throw _context2.t0;
|
|
316
349
|
case 10:
|
|
317
350
|
if (!networkRetry) {
|
|
318
351
|
// Only log START metrics on the initial reconnect
|
|
319
352
|
_loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Sending reconnect start metric.');
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
353
|
+
|
|
354
|
+
// @ts-ignore
|
|
355
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
356
|
+
name: 'client.media.reconnecting',
|
|
357
|
+
options: {
|
|
358
|
+
meetingId: this.meeting.id
|
|
359
|
+
}
|
|
323
360
|
});
|
|
324
361
|
}
|
|
325
|
-
return
|
|
362
|
+
return _context2.abrupt("return", this.executeReconnection({
|
|
326
363
|
networkDisconnect: networkDisconnect
|
|
327
364
|
}).then(function () {
|
|
328
365
|
_loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Reconnection successful.');
|
|
329
366
|
_loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Sending reconnect success metric.');
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
367
|
+
|
|
368
|
+
// @ts-ignore
|
|
369
|
+
_this3.webex.internal.newMetrics.submitClientEvent({
|
|
370
|
+
name: 'client.media.recovered',
|
|
371
|
+
payload: {
|
|
372
|
+
recoveredBy: 'new'
|
|
373
|
+
},
|
|
374
|
+
options: {
|
|
375
|
+
meetingId: _this3.meeting.id
|
|
335
376
|
}
|
|
336
377
|
});
|
|
337
378
|
}).catch(function (reconnectError) {
|
|
@@ -350,20 +391,23 @@ var ReconnectionManager = /*#__PURE__*/function () {
|
|
|
350
391
|
// Reconnect has failed
|
|
351
392
|
_loggerProxy.default.logger.error('ReconnectionManager:index#reconnect --> Reconnection failed.', reconnectError.message);
|
|
352
393
|
_loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Sending reconnect abort metric.');
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
394
|
+
|
|
395
|
+
// @ts-ignore
|
|
396
|
+
_this3.webex.internal.newMetrics.submitClientEvent({
|
|
397
|
+
name: 'client.call.aborted',
|
|
398
|
+
payload: {
|
|
357
399
|
errors: [{
|
|
358
|
-
category:
|
|
400
|
+
category: 'expected',
|
|
359
401
|
errorCode: 2008,
|
|
360
402
|
fatal: true,
|
|
361
|
-
name:
|
|
403
|
+
name: 'media-engine',
|
|
362
404
|
shownToUser: false
|
|
363
405
|
}]
|
|
406
|
+
},
|
|
407
|
+
options: {
|
|
408
|
+
meetingId: _this3.meeting.id
|
|
364
409
|
}
|
|
365
|
-
};
|
|
366
|
-
_metrics.default.postEvent(reconnectMetric);
|
|
410
|
+
});
|
|
367
411
|
if (reconnectError instanceof NeedsRejoinError) {
|
|
368
412
|
// send call aborded event with catogery as expected as we are trying to rejoin
|
|
369
413
|
|
|
@@ -375,9 +419,9 @@ var ReconnectionManager = /*#__PURE__*/function () {
|
|
|
375
419
|
}));
|
|
376
420
|
case 12:
|
|
377
421
|
case "end":
|
|
378
|
-
return
|
|
422
|
+
return _context2.stop();
|
|
379
423
|
}
|
|
380
|
-
},
|
|
424
|
+
}, _callee2, this, [[2, 6]]);
|
|
381
425
|
}));
|
|
382
426
|
function reconnect() {
|
|
383
427
|
return _reconnect.apply(this, arguments);
|
|
@@ -395,91 +439,102 @@ var ReconnectionManager = /*#__PURE__*/function () {
|
|
|
395
439
|
}, {
|
|
396
440
|
key: "executeReconnection",
|
|
397
441
|
value: function () {
|
|
398
|
-
var _executeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
442
|
+
var _executeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(_ref3) {
|
|
399
443
|
var _ref3$networkDisconne, networkDisconnect, wasSharing, media;
|
|
400
|
-
return _regenerator.default.wrap(function
|
|
401
|
-
while (1) switch (
|
|
444
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
445
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
402
446
|
case 0:
|
|
403
447
|
_ref3$networkDisconne = _ref3.networkDisconnect, networkDisconnect = _ref3$networkDisconne === void 0 ? false : _ref3$networkDisconne;
|
|
404
448
|
this.status = _constants.RECONNECTION.STATE.IN_PROGRESS;
|
|
405
449
|
_loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Attempting to reconnect to meeting.');
|
|
450
|
+
wasSharing = this.meeting.shareStatus === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE;
|
|
451
|
+
if (!wasSharing) {
|
|
452
|
+
_context3.next = 7;
|
|
453
|
+
break;
|
|
454
|
+
}
|
|
455
|
+
_context3.next = 7;
|
|
456
|
+
return this.stopLocalShareStream(_constants.SHARE_STOPPED_REASON.MEDIA_RECONNECTION);
|
|
457
|
+
case 7:
|
|
406
458
|
if (!networkDisconnect) {
|
|
407
|
-
|
|
459
|
+
_context3.next = 19;
|
|
408
460
|
break;
|
|
409
461
|
}
|
|
410
|
-
|
|
411
|
-
|
|
462
|
+
_context3.prev = 8;
|
|
463
|
+
_context3.next = 11;
|
|
412
464
|
return this.reconnectMercuryWebSocket();
|
|
413
|
-
case
|
|
465
|
+
case 11:
|
|
414
466
|
_loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> Websocket reconnected.', this.webex.internal.device.url);
|
|
415
|
-
|
|
467
|
+
_context3.next = 19;
|
|
416
468
|
break;
|
|
417
|
-
case
|
|
418
|
-
|
|
419
|
-
|
|
469
|
+
case 14:
|
|
470
|
+
_context3.prev = 14;
|
|
471
|
+
_context3.t0 = _context3["catch"](8);
|
|
420
472
|
_loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> Unable to reconnect to websocket, giving up.');
|
|
421
473
|
this.status = _constants.RECONNECTION.STATE.FAILURE;
|
|
422
|
-
throw
|
|
423
|
-
case
|
|
424
|
-
|
|
425
|
-
|
|
474
|
+
throw _context3.t0;
|
|
475
|
+
case 19:
|
|
476
|
+
if (this.webex.credentials.isUnverifiedGuest) {
|
|
477
|
+
_context3.next = 30;
|
|
478
|
+
break;
|
|
479
|
+
}
|
|
480
|
+
_context3.prev = 20;
|
|
426
481
|
_loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Updating meeting data from server.');
|
|
427
|
-
|
|
482
|
+
_context3.next = 24;
|
|
428
483
|
return this.webex.meetings.syncMeetings();
|
|
429
|
-
case
|
|
430
|
-
|
|
484
|
+
case 24:
|
|
485
|
+
_context3.next = 30;
|
|
431
486
|
break;
|
|
432
|
-
case 22:
|
|
433
|
-
_context2.prev = 22;
|
|
434
|
-
_context2.t1 = _context2["catch"](16);
|
|
435
|
-
_loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Unable to sync meetings, reconnecting.', _context2.t1);
|
|
436
|
-
throw new NeedsRetryError(_context2.t1);
|
|
437
487
|
case 26:
|
|
488
|
+
_context3.prev = 26;
|
|
489
|
+
_context3.t1 = _context3["catch"](20);
|
|
490
|
+
_loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Unable to sync meetings, reconnecting.', _context3.t1);
|
|
491
|
+
throw new NeedsRetryError(_context3.t1);
|
|
492
|
+
case 30:
|
|
438
493
|
if (!(!this.meeting || !this.webex.meetings.getMeetingByType(_constants._ID_, this.meeting.id))) {
|
|
439
|
-
|
|
494
|
+
_context3.next = 33;
|
|
440
495
|
break;
|
|
441
496
|
}
|
|
442
|
-
_loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Meeting got deleted due to inactivity or ended remotely
|
|
443
|
-
throw new Error('Unable to rejoin a meeting already ended or inactive
|
|
444
|
-
case
|
|
497
|
+
_loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Meeting got deleted due to inactivity or ended remotely.');
|
|
498
|
+
throw new Error('Unable to rejoin a meeting already ended or inactive.');
|
|
499
|
+
case 33:
|
|
445
500
|
_loggerProxy.default.logger.info("ReconnectionManager:index#executeReconnection --> Current state of meeting is ".concat(this.meeting.state));
|
|
446
501
|
|
|
447
502
|
// If the meeting state was left, no longer reconnect media
|
|
448
503
|
if (!(this.meeting.state === _constants._LEFT_)) {
|
|
449
|
-
|
|
504
|
+
_context3.next = 38;
|
|
450
505
|
break;
|
|
451
506
|
}
|
|
452
507
|
if (!(this.meeting.type === _constants._CALL_)) {
|
|
453
|
-
|
|
508
|
+
_context3.next = 37;
|
|
454
509
|
break;
|
|
455
510
|
}
|
|
456
511
|
throw new Error('Unable to rejoin a call in LEFT state.');
|
|
457
|
-
case
|
|
512
|
+
case 37:
|
|
458
513
|
throw new NeedsRejoinError({
|
|
459
514
|
wasSharing: wasSharing
|
|
460
515
|
});
|
|
461
|
-
case
|
|
462
|
-
|
|
463
|
-
|
|
516
|
+
case 38:
|
|
517
|
+
_context3.prev = 38;
|
|
518
|
+
_context3.next = 41;
|
|
464
519
|
return this.reconnectMedia();
|
|
465
|
-
case
|
|
466
|
-
media =
|
|
520
|
+
case 41:
|
|
521
|
+
media = _context3.sent;
|
|
467
522
|
_loggerProxy.default.logger.log('ReconnectionManager:index#executeReconnection --> Media reestablished');
|
|
468
523
|
this.status = _constants.RECONNECTION.STATE.COMPLETE;
|
|
469
|
-
return
|
|
470
|
-
case
|
|
471
|
-
|
|
472
|
-
|
|
524
|
+
return _context3.abrupt("return", media);
|
|
525
|
+
case 47:
|
|
526
|
+
_context3.prev = 47;
|
|
527
|
+
_context3.t2 = _context3["catch"](38);
|
|
473
528
|
_loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> Media reestablishment failed');
|
|
474
529
|
this.status = _constants.RECONNECTION.STATE.FAILURE;
|
|
475
|
-
throw
|
|
476
|
-
case
|
|
530
|
+
throw _context3.t2;
|
|
531
|
+
case 52:
|
|
477
532
|
case "end":
|
|
478
|
-
return
|
|
533
|
+
return _context3.stop();
|
|
479
534
|
}
|
|
480
|
-
},
|
|
535
|
+
}, _callee3, this, [[8, 14], [20, 26], [38, 47]]);
|
|
481
536
|
}));
|
|
482
|
-
function executeReconnection(
|
|
537
|
+
function executeReconnection(_x2) {
|
|
483
538
|
return _executeReconnection.apply(this, arguments);
|
|
484
539
|
}
|
|
485
540
|
return executeReconnection;
|
|
@@ -494,76 +549,68 @@ var ReconnectionManager = /*#__PURE__*/function () {
|
|
|
494
549
|
}, {
|
|
495
550
|
key: "rejoinMeeting",
|
|
496
551
|
value: function () {
|
|
497
|
-
var _rejoinMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
552
|
+
var _rejoinMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
498
553
|
var wasSharing,
|
|
499
|
-
|
|
500
|
-
return _regenerator.default.wrap(function
|
|
501
|
-
while (1) switch (
|
|
554
|
+
_args4 = arguments;
|
|
555
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
556
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
502
557
|
case 0:
|
|
503
|
-
wasSharing =
|
|
504
|
-
|
|
558
|
+
wasSharing = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : false;
|
|
559
|
+
_context4.prev = 1;
|
|
505
560
|
_loggerProxy.default.logger.info('ReconnectionManager:index#rejoinMeeting --> attemping meeting rejoin');
|
|
506
|
-
|
|
561
|
+
_context4.next = 5;
|
|
507
562
|
return this.meeting.join({
|
|
508
563
|
rejoin: true
|
|
509
564
|
});
|
|
510
565
|
case 5:
|
|
511
566
|
_loggerProxy.default.logger.info('ReconnectionManager:index#rejoinMeeting --> meeting rejoined');
|
|
512
|
-
if (wasSharing) {
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
this.meeting.isSharing = false;
|
|
516
|
-
if (this.shareStatus === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE) {
|
|
517
|
-
this.meeting.shareStatus = _constants.SHARE_STATUS.NO_SHARE;
|
|
518
|
-
}
|
|
519
|
-
this.meeting.mediaProperties.mediaDirection.sendShare = false;
|
|
520
|
-
_triggerProxy.default.trigger(this.meeting, {
|
|
521
|
-
file: 'reconnection-manager/index',
|
|
522
|
-
function: 'rejoinMeeting'
|
|
523
|
-
}, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_LOCAL, {
|
|
524
|
-
reason: _constants.SHARE_STOPPED_REASON.MEETING_REJOIN
|
|
525
|
-
});
|
|
567
|
+
if (!wasSharing) {
|
|
568
|
+
_context4.next = 9;
|
|
569
|
+
break;
|
|
526
570
|
}
|
|
527
|
-
|
|
528
|
-
|
|
571
|
+
_context4.next = 9;
|
|
572
|
+
return this.stopLocalShareStream(_constants.SHARE_STOPPED_REASON.MEETING_REJOIN);
|
|
529
573
|
case 9:
|
|
530
|
-
|
|
531
|
-
|
|
574
|
+
_context4.next = 23;
|
|
575
|
+
break;
|
|
576
|
+
case 11:
|
|
577
|
+
_context4.prev = 11;
|
|
578
|
+
_context4.t0 = _context4["catch"](1);
|
|
532
579
|
this.rejoinAttempts += 1;
|
|
533
580
|
if (!(this.rejoinAttempts <= this.maxRejoinAttempts)) {
|
|
534
|
-
|
|
581
|
+
_context4.next = 19;
|
|
535
582
|
break;
|
|
536
583
|
}
|
|
537
|
-
_loggerProxy.default.logger.info("ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting, attempt #".concat(this.rejoinAttempts, ", retrying."),
|
|
584
|
+
_loggerProxy.default.logger.info("ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting, attempt #".concat(this.rejoinAttempts, ", retrying."), _context4.t0);
|
|
538
585
|
this.rejoinMeeting();
|
|
539
|
-
|
|
586
|
+
_context4.next = 23;
|
|
540
587
|
break;
|
|
541
|
-
case
|
|
542
|
-
_loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting after max attempts.',
|
|
588
|
+
case 19:
|
|
589
|
+
_loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting after max attempts.', _context4.t0);
|
|
543
590
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_MAX_REJOIN_FAILURE, {
|
|
544
591
|
locus_id: this.meeting.locusUrl.split('/').pop(),
|
|
545
|
-
reason:
|
|
546
|
-
stack:
|
|
592
|
+
reason: _context4.t0.message,
|
|
593
|
+
stack: _context4.t0.stack
|
|
547
594
|
});
|
|
548
595
|
this.status = _constants.RECONNECTION.STATE.FAILURE;
|
|
549
|
-
throw
|
|
550
|
-
case
|
|
551
|
-
|
|
552
|
-
|
|
596
|
+
throw _context4.t0;
|
|
597
|
+
case 23:
|
|
598
|
+
_context4.prev = 23;
|
|
599
|
+
_context4.next = 26;
|
|
553
600
|
return this.reconnectMedia();
|
|
554
|
-
case 24:
|
|
555
|
-
_context3.next = 30;
|
|
556
|
-
break;
|
|
557
601
|
case 26:
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
602
|
+
_context4.next = 32;
|
|
603
|
+
break;
|
|
604
|
+
case 28:
|
|
605
|
+
_context4.prev = 28;
|
|
606
|
+
_context4.t1 = _context4["catch"](23);
|
|
607
|
+
_loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to reestablish media after rejoining.', _context4.t1);
|
|
608
|
+
throw _context4.t1;
|
|
609
|
+
case 32:
|
|
563
610
|
case "end":
|
|
564
|
-
return
|
|
611
|
+
return _context4.stop();
|
|
565
612
|
}
|
|
566
|
-
},
|
|
613
|
+
}, _callee4, this, [[1, 11], [23, 28]]);
|
|
567
614
|
}));
|
|
568
615
|
function rejoinMeeting() {
|
|
569
616
|
return _rejoinMeeting.apply(this, arguments);
|
|
@@ -578,18 +625,18 @@ var ReconnectionManager = /*#__PURE__*/function () {
|
|
|
578
625
|
}, {
|
|
579
626
|
key: "reconnectMedia",
|
|
580
627
|
value: function () {
|
|
581
|
-
var _reconnectMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
628
|
+
var _reconnectMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
|
|
582
629
|
var turnServerResult, iceServers;
|
|
583
|
-
return _regenerator.default.wrap(function
|
|
584
|
-
while (1) switch (
|
|
630
|
+
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
631
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
585
632
|
case 0:
|
|
586
633
|
_loggerProxy.default.logger.log('ReconnectionManager:index#reconnectMedia --> Begin reestablishment of media');
|
|
587
634
|
|
|
588
|
-
// do the TURN server discovery again since the TURN server might change
|
|
589
|
-
|
|
590
|
-
return this.meeting.roap.doTurnDiscovery(this.meeting, true);
|
|
635
|
+
// do the TURN server discovery again and ignore reachability results since the TURN server might change
|
|
636
|
+
_context5.next = 3;
|
|
637
|
+
return this.meeting.roap.doTurnDiscovery(this.meeting, true, true);
|
|
591
638
|
case 3:
|
|
592
|
-
turnServerResult =
|
|
639
|
+
turnServerResult = _context5.sent;
|
|
593
640
|
iceServers = [];
|
|
594
641
|
if (turnServerResult.turnServerInfo) {
|
|
595
642
|
iceServers.push({
|
|
@@ -598,23 +645,21 @@ var ReconnectionManager = /*#__PURE__*/function () {
|
|
|
598
645
|
credential: turnServerResult.turnServerInfo.password || ''
|
|
599
646
|
});
|
|
600
647
|
}
|
|
601
|
-
|
|
648
|
+
_context5.next = 8;
|
|
602
649
|
return this.meeting.mediaProperties.webrtcMediaConnection.reconnect(iceServers);
|
|
603
650
|
case 8:
|
|
604
651
|
// resend media requests
|
|
605
652
|
if (this.meeting.isMultistream) {
|
|
606
653
|
(0, _values.default)(this.meeting.mediaRequestManagers).forEach(function (mediaRequestManager) {
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
mediaRequestManager.commit()
|
|
610
|
-
);
|
|
654
|
+
mediaRequestManager.clearPreviousRequests();
|
|
655
|
+
mediaRequestManager.commit();
|
|
611
656
|
});
|
|
612
657
|
}
|
|
613
658
|
case 9:
|
|
614
659
|
case "end":
|
|
615
|
-
return
|
|
660
|
+
return _context5.stop();
|
|
616
661
|
}
|
|
617
|
-
},
|
|
662
|
+
}, _callee5, this);
|
|
618
663
|
}));
|
|
619
664
|
function reconnectMedia() {
|
|
620
665
|
return _reconnectMedia.apply(this, arguments);
|
|
@@ -630,49 +675,49 @@ var ReconnectionManager = /*#__PURE__*/function () {
|
|
|
630
675
|
}, {
|
|
631
676
|
key: "reconnectMercuryWebSocket",
|
|
632
677
|
value: function () {
|
|
633
|
-
var _reconnectMercuryWebSocket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
634
|
-
return _regenerator.default.wrap(function
|
|
635
|
-
while (1) switch (
|
|
678
|
+
var _reconnectMercuryWebSocket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
|
|
679
|
+
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
680
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
636
681
|
case 0:
|
|
637
682
|
_loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Reconnecting websocket.');
|
|
638
683
|
// First, attempt to disconnect if we think we are already connected.
|
|
639
684
|
if (!this.webex.internal.mercury.connected) {
|
|
640
|
-
|
|
685
|
+
_context6.next = 13;
|
|
641
686
|
break;
|
|
642
687
|
}
|
|
643
688
|
_loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Disconnecting existing websocket.');
|
|
644
|
-
|
|
645
|
-
|
|
689
|
+
_context6.prev = 3;
|
|
690
|
+
_context6.next = 6;
|
|
646
691
|
return this.webex.internal.mercury.disconnect();
|
|
647
692
|
case 6:
|
|
648
693
|
_loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket disconnected successfully.');
|
|
649
|
-
|
|
694
|
+
_context6.next = 13;
|
|
650
695
|
break;
|
|
651
696
|
case 9:
|
|
652
|
-
|
|
653
|
-
|
|
697
|
+
_context6.prev = 9;
|
|
698
|
+
_context6.t0 = _context6["catch"](3);
|
|
654
699
|
// If we can't disconnect, the sdk is in such a bad state that reconnecting is not going to happen.
|
|
655
|
-
_loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to disconnect from websocket, giving up.',
|
|
656
|
-
throw
|
|
700
|
+
_loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to disconnect from websocket, giving up.', _context6.t0);
|
|
701
|
+
throw _context6.t0;
|
|
657
702
|
case 13:
|
|
658
|
-
|
|
703
|
+
_context6.prev = 13;
|
|
659
704
|
_loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Connecting websocket.');
|
|
660
|
-
|
|
705
|
+
_context6.next = 17;
|
|
661
706
|
return this.webex.internal.mercury.connect();
|
|
662
707
|
case 17:
|
|
663
708
|
_loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket connected successfully.');
|
|
664
|
-
|
|
709
|
+
_context6.next = 24;
|
|
665
710
|
break;
|
|
666
711
|
case 20:
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
_loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to connect to websocket, giving up.',
|
|
670
|
-
throw
|
|
712
|
+
_context6.prev = 20;
|
|
713
|
+
_context6.t1 = _context6["catch"](13);
|
|
714
|
+
_loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to connect to websocket, giving up.', _context6.t1);
|
|
715
|
+
throw _context6.t1;
|
|
671
716
|
case 24:
|
|
672
717
|
case "end":
|
|
673
|
-
return
|
|
718
|
+
return _context6.stop();
|
|
674
719
|
}
|
|
675
|
-
},
|
|
720
|
+
}, _callee6, this, [[3, 9], [13, 20]]);
|
|
676
721
|
}));
|
|
677
722
|
function reconnectMercuryWebSocket() {
|
|
678
723
|
return _reconnectMercuryWebSocket.apply(this, arguments);
|