@webex/plugin-meetings 3.0.0-beta.39 → 3.0.0-beta.391
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 +58 -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/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +671 -81
- 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 -10
- package/dist/config.js.map +1 -1
- package/dist/constants.js +242 -33
- 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 +110 -2
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.js +15 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/locusRetry.js +93 -0
- package/dist/interceptors/locusRetry.js.map +1 -0
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +380 -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 +386 -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 +71 -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 +65 -102
- 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/mediaQualityMetrics/config.js +135 -330
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +86 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +4075 -2827
- 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 +224 -136
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +177 -152
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +672 -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 +484 -119
- 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 +73 -7
- 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 +18 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -446
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +223 -32
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +10 -0
- 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 +3 -1
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +76 -5
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +366 -104
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +255 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/reachability/clusterReachability.js +356 -0
- package/dist/reachability/clusterReachability.js.map +1 -0
- package/dist/reachability/index.js +263 -390
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +6 -4
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- package/dist/reconnection-manager/index.js +266 -202
- 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 +51 -28
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +48 -64
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +220 -70
- 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 +179 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/index.js +357 -295
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +296 -156
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/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/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 +2 -7
- package/dist/types/constants.d.ts +203 -31
- 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 -5
- package/dist/types/interceptors/index.d.ts +2 -0
- package/dist/types/interceptors/locusRetry.d.ts +27 -0
- 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 +66 -6
- package/dist/types/media/index.d.ts +2 -0
- package/dist/types/media/properties.d.ts +34 -49
- package/dist/types/mediaQualityMetrics/config.d.ts +99 -223
- package/dist/types/meeting/in-meeting-actions.d.ts +86 -2
- package/dist/types/meeting/index.d.ts +567 -496
- package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/types/meeting/muteState.d.ts +93 -25
- package/dist/types/meeting/request.d.ts +64 -43
- package/dist/types/meeting/util.d.ts +117 -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 +113 -21
- 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 +17 -0
- package/dist/types/metrics/index.d.ts +4 -111
- package/dist/types/multistream/mediaRequestManager.d.ts +72 -3
- package/dist/types/multistream/receiveSlot.d.ts +7 -3
- package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
- package/dist/types/multistream/remoteMedia.d.ts +3 -31
- package/dist/types/multistream/remoteMediaGroup.d.ts +2 -9
- package/dist/types/multistream/remoteMediaManager.d.ts +62 -2
- package/dist/types/multistream/sendSlotManager.d.ts +70 -0
- package/dist/types/reachability/clusterReachability.d.ts +109 -0
- package/dist/types/reachability/index.d.ts +60 -95
- package/dist/types/reachability/request.d.ts +3 -1
- package/dist/types/reachability/util.d.ts +8 -0
- package/dist/types/reconnection-manager/index.d.ts +19 -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 +9 -8
- package/dist/types/roap/turnDiscovery.d.ts +39 -5
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +61 -0
- package/dist/types/statsAnalyzer/index.d.ts +34 -12
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +28 -4
- package/dist/types/webinar/collection.d.ts +16 -0
- package/dist/types/webinar/index.d.ts +5 -0
- package/dist/webinar/collection.js +44 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.js +69 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +22 -19
- 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 +35 -11
- package/src/breakouts/breakout.ts +67 -9
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +558 -59
- 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 -9
- package/src/constants.ts +229 -21
- 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 +44 -0
- package/src/interceptors/index.ts +3 -0
- package/src/interceptors/locusRetry.ts +67 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +349 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +108 -0
- package/src/locus-info/index.ts +417 -59
- package/src/locus-info/infoUtils.ts +10 -2
- package/src/locus-info/mediaSharesUtils.ts +80 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +81 -5
- package/src/media/index.ts +100 -108
- package/src/media/properties.ts +88 -117
- package/src/mediaQualityMetrics/config.ts +103 -238
- package/src/meeting/in-meeting-actions.ts +171 -3
- package/src/meeting/index.ts +3411 -2435
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +223 -136
- package/src/meeting/request.ts +155 -120
- package/src/meeting/util.ts +685 -395
- 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 +507 -127
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +81 -12
- 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 +17 -0
- package/src/metrics/index.ts +1 -469
- package/src/multistream/mediaRequestManager.ts +271 -56
- package/src/multistream/receiveSlot.ts +11 -4
- package/src/multistream/receiveSlotManager.ts +34 -24
- package/src/multistream/remoteMedia.ts +5 -3
- package/src/multistream/remoteMediaGroup.ts +78 -0
- package/src/multistream/remoteMediaManager.ts +248 -44
- package/src/multistream/sendSlotManager.ts +199 -0
- package/src/reachability/clusterReachability.ts +320 -0
- package/src/reachability/index.ts +229 -346
- package/src/reachability/request.ts +8 -4
- package/src/reachability/util.ts +24 -0
- package/src/reconnection-manager/index.ts +128 -97
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +52 -23
- package/src/roap/request.ts +48 -67
- package/src/roap/turnDiscovery.ts +147 -49
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +166 -0
- package/src/statsAnalyzer/index.ts +457 -416
- package/src/statsAnalyzer/mqaUtil.ts +317 -170
- 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/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1349 -114
- 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/interceptors/locusRetry.ts +131 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +625 -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 +1363 -37
- 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 +41 -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 +173 -81
- package/test/unit/spec/media/properties.ts +2 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +85 -3
- package/test/unit/spec/meeting/index.js +6821 -2172
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +402 -212
- package/test/unit/spec/meeting/request.js +473 -54
- package/test/unit/spec/meeting/utils.js +773 -67
- 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 +1415 -213
- package/test/unit/spec/meetings/utils.js +229 -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 +781 -114
- package/test/unit/spec/multistream/receiveSlot.ts +9 -1
- package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
- package/test/unit/spec/multistream/remoteMedia.ts +2 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +345 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +525 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +274 -0
- package/test/unit/spec/reachability/clusterReachability.ts +279 -0
- package/test/unit/spec/reachability/index.ts +551 -14
- package/test/unit/spec/reachability/request.js +3 -1
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +171 -11
- 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 +180 -83
- package/test/unit/spec/roap/request.ts +100 -62
- package/test/unit/spec/roap/turnDiscovery.ts +388 -96
- package/test/unit/spec/rtcMetrics/index.ts +122 -0
- package/test/unit/spec/stats-analyzer/index.js +1252 -12
- 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 -57
- package/test/utils/webex-test-users.js +12 -4
- package/dist/metrics/config.js +0 -289
- package/dist/metrics/config.js.map +0 -1
- package/dist/types/metrics/config.d.ts +0 -169
- package/src/index.js +0 -18
- package/src/metrics/config.ts +0 -485
package/dist/roap/request.js
CHANGED
|
@@ -14,6 +14,7 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
14
14
|
exports.default = void 0;
|
|
15
15
|
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
16
16
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
17
|
+
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
17
18
|
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
18
19
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
19
20
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
@@ -25,8 +26,6 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
|
|
|
25
26
|
var _webexCore = require("@webex/webex-core");
|
|
26
27
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
27
28
|
var _constants = require("../constants");
|
|
28
|
-
var _metrics = _interopRequireDefault(require("../metrics"));
|
|
29
|
-
var _config = require("../metrics/config");
|
|
30
29
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
31
30
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
32
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); }; }
|
|
@@ -51,24 +50,16 @@ var RoapRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
51
50
|
*/
|
|
52
51
|
function () {
|
|
53
52
|
var _attachReachabilityData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(localSdp) {
|
|
54
|
-
var joinCookie,
|
|
53
|
+
var joinCookie, reachabilityResult, joinCookieRaw;
|
|
55
54
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
56
55
|
while (1) switch (_context.prev = _context.next) {
|
|
57
56
|
case 0:
|
|
58
57
|
_context.next = 2;
|
|
59
|
-
return this.webex.
|
|
58
|
+
return this.webex.meetings.reachability.getReachabilityResults();
|
|
60
59
|
case 2:
|
|
61
|
-
|
|
62
|
-
if (
|
|
63
|
-
|
|
64
|
-
reachabilityResult = JSON.parse(reachabilityData);
|
|
65
|
-
/* istanbul ignore else */
|
|
66
|
-
if (reachabilityResult && (0, _keys.default)(reachabilityResult).length) {
|
|
67
|
-
localSdp.reachability = reachabilityResult;
|
|
68
|
-
}
|
|
69
|
-
} catch (e) {
|
|
70
|
-
_loggerProxy.default.logger.error("Roap:request#attachReachabilityData --> Error in parsing reachability data: ".concat(e));
|
|
71
|
-
}
|
|
60
|
+
reachabilityResult = _context.sent;
|
|
61
|
+
if (reachabilityResult && (0, _keys.default)(reachabilityResult).length) {
|
|
62
|
+
localSdp.reachability = reachabilityResult;
|
|
72
63
|
}
|
|
73
64
|
|
|
74
65
|
// @ts-ignore
|
|
@@ -105,71 +96,63 @@ var RoapRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
105
96
|
* @param {String} options.locusSelfUrl
|
|
106
97
|
* @param {String} options.mediaId
|
|
107
98
|
* @param {String} options.correlationId
|
|
108
|
-
* @param {Boolean} options.audioMuted
|
|
109
|
-
* @param {Boolean} options.videoMuted
|
|
110
99
|
* @param {String} options.meetingId
|
|
111
|
-
* @param {
|
|
100
|
+
* @param {IP_VERSION} options.ipVersion only required for offers
|
|
112
101
|
* @returns {Promise} returns the response/failure of the request
|
|
113
102
|
*/
|
|
114
103
|
}, {
|
|
115
104
|
key: "sendRoap",
|
|
116
105
|
value: function () {
|
|
117
106
|
var _sendRoap = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(options) {
|
|
118
|
-
var
|
|
119
|
-
var roapMessage, locusSelfUrl, mediaId,
|
|
107
|
+
var _this = this;
|
|
108
|
+
var roapMessage, locusSelfUrl, mediaId, meetingId, locusMediaRequest, ipVersion, _yield$this$attachRea, localSdpWithReachabilityData, joinCookie;
|
|
120
109
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
121
110
|
while (1) switch (_context2.prev = _context2.next) {
|
|
122
111
|
case 0:
|
|
123
|
-
roapMessage = options.roapMessage, locusSelfUrl = options.locusSelfUrl, mediaId = options.mediaId,
|
|
112
|
+
roapMessage = options.roapMessage, locusSelfUrl = options.locusSelfUrl, mediaId = options.mediaId, meetingId = options.meetingId, locusMediaRequest = options.locusMediaRequest, ipVersion = options.ipVersion;
|
|
124
113
|
if (!mediaId) {
|
|
125
|
-
_loggerProxy.default.logger.info('Roap:request#sendRoap -->
|
|
114
|
+
_loggerProxy.default.logger.info('Roap:request#sendRoap --> sending empty mediaID');
|
|
126
115
|
}
|
|
127
|
-
|
|
116
|
+
if (locusMediaRequest) {
|
|
117
|
+
_context2.next = 5;
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
_loggerProxy.default.logger.warn('Roap:request#sendRoap --> locusMediaRequest unavailable, not sending roap');
|
|
121
|
+
return _context2.abrupt("return", _promise.default.reject(new Error('sendRoap called when locusMediaRequest is undefined')));
|
|
122
|
+
case 5:
|
|
123
|
+
_context2.next = 7;
|
|
128
124
|
return this.attachReachabilityData({
|
|
129
|
-
roapMessage: roapMessage
|
|
130
|
-
// eslint-disable-next-line no-warning-comments
|
|
131
|
-
// TODO: check whats the need for video and audiomute
|
|
132
|
-
audioMuted: !!options.audioMuted,
|
|
133
|
-
videoMuted: !!options.videoMuted
|
|
125
|
+
roapMessage: roapMessage
|
|
134
126
|
});
|
|
135
|
-
case
|
|
127
|
+
case 7:
|
|
136
128
|
_yield$this$attachRea = _context2.sent;
|
|
137
129
|
localSdpWithReachabilityData = _yield$this$attachRea.localSdp;
|
|
138
130
|
joinCookie = _yield$this$attachRea.joinCookie;
|
|
139
|
-
|
|
140
|
-
deviceUrl = this.webex.internal.device.url;
|
|
141
|
-
_loggerProxy.default.logger.info("Roap:request#sendRoap --> ".concat(mediaUrl, " \n ").concat(roapMessage.messageType, " \n seq:").concat(roapMessage.seq));
|
|
142
|
-
_metrics.default.postEvent({
|
|
143
|
-
event: _config.eventType.MEDIA_REQUEST,
|
|
144
|
-
meetingId: meetingId
|
|
145
|
-
});
|
|
131
|
+
_loggerProxy.default.logger.info("Roap:request#sendRoap --> ".concat(locusSelfUrl, " \n ").concat(roapMessage.messageType, " \n seq:").concat(roapMessage.seq));
|
|
146
132
|
|
|
147
133
|
// @ts-ignore
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
device: {
|
|
153
|
-
url: deviceUrl,
|
|
154
|
-
// @ts-ignore
|
|
155
|
-
deviceType: this.config.meetings.deviceType
|
|
156
|
-
},
|
|
157
|
-
correlationId: correlationId,
|
|
158
|
-
localMedias: [{
|
|
159
|
-
localSdp: (0, _stringify.default)(localSdpWithReachabilityData),
|
|
160
|
-
mediaId: options.mediaId
|
|
161
|
-
}],
|
|
162
|
-
clientMediaPreferences: {
|
|
163
|
-
preferTranscoding: (_options$preferTransc = options.preferTranscoding) !== null && _options$preferTransc !== void 0 ? _options$preferTransc : true,
|
|
164
|
-
joinCookie: joinCookie
|
|
165
|
-
}
|
|
134
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
135
|
+
name: 'client.locus.media.request',
|
|
136
|
+
options: {
|
|
137
|
+
meetingId: meetingId
|
|
166
138
|
}
|
|
139
|
+
});
|
|
140
|
+
return _context2.abrupt("return", locusMediaRequest.send({
|
|
141
|
+
type: 'RoapMessage',
|
|
142
|
+
selfUrl: locusSelfUrl,
|
|
143
|
+
joinCookie: joinCookie,
|
|
144
|
+
mediaId: mediaId,
|
|
145
|
+
roapMessage: roapMessage,
|
|
146
|
+
reachability: localSdpWithReachabilityData.reachability,
|
|
147
|
+
ipVersion: ipVersion
|
|
167
148
|
}).then(function (res) {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
149
|
+
// @ts-ignore
|
|
150
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
|
151
|
+
name: 'client.locus.media.response',
|
|
152
|
+
options: {
|
|
153
|
+
meetingId: meetingId
|
|
154
|
+
}
|
|
171
155
|
});
|
|
172
|
-
|
|
173
156
|
// always it will be the first mediaConnection Object
|
|
174
157
|
var mediaConnections = res.body.mediaConnections && res.body.mediaConnections.length > 0 && res.body.mediaConnections[0];
|
|
175
158
|
_loggerProxy.default.logger.debug("Roap:request#sendRoap --> response:".concat((0, _stringify.default)(mediaConnections, null, 2), "'\n StatusCode:'").concat(res.statusCode));
|
|
@@ -181,18 +164,19 @@ var RoapRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
181
164
|
mediaConnections: res.body.mediaConnections
|
|
182
165
|
});
|
|
183
166
|
}).catch(function (err) {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
167
|
+
// @ts-ignore
|
|
168
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
|
169
|
+
name: 'client.locus.media.response',
|
|
170
|
+
options: {
|
|
171
|
+
meetingId: meetingId,
|
|
172
|
+
rawError: err
|
|
189
173
|
}
|
|
190
174
|
});
|
|
191
175
|
_loggerProxy.default.logger.error("Roap:request#sendRoap --> Error:".concat((0, _stringify.default)(err, null, 2)));
|
|
192
176
|
_loggerProxy.default.logger.error("Roap:request#sendRoapRequest --> errorBody:".concat((0, _stringify.default)(roapMessage, null, 2), " + '\\n mediaId:'").concat(options.mediaId));
|
|
193
177
|
throw err;
|
|
194
178
|
}));
|
|
195
|
-
case
|
|
179
|
+
case 13:
|
|
196
180
|
case "end":
|
|
197
181
|
return _context2.stop();
|
|
198
182
|
}
|
package/dist/roap/request.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RoapRequest","localSdp","webex","
|
|
1
|
+
{"version":3,"names":["RoapRequest","localSdp","webex","meetings","reachability","getReachabilityResults","reachabilityResult","length","boundedStorage","get","REACHABILITY","namespace","localStorageJoinCookie","catch","joinCookieRaw","joinCookie","JSON","parse","e","LoggerProxy","logger","error","options","roapMessage","locusSelfUrl","mediaId","meetingId","locusMediaRequest","ipVersion","info","warn","reject","Error","attachReachabilityData","localSdpWithReachabilityData","messageType","seq","internal","newMetrics","submitClientEvent","name","send","type","selfUrl","then","res","mediaConnections","body","debug","statusCode","locus","roapSeq","err","rawError","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, meetingId, 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 --> ${locusSelfUrl} \\n ${roapMessage.messageType} \\n seq:${roapMessage.seq}`\n );\n\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.request',\n options: {\n meetingId,\n },\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 // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.response',\n options: {\n meetingId,\n },\n });\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 // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.response',\n options: {\n meetingId,\n rawError: err,\n },\n });\n LoggerProxy.logger.error(`Roap:request#sendRoap --> Error:${JSON.stringify(err, null, 2)}`);\n LoggerProxy.logger.error(\n `Roap:request#sendRoapRequest --> errorBody:${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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"}
|
|
@@ -18,6 +18,7 @@ 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"));
|
|
21
22
|
// @ts-ignore - Types not available for @webex/common
|
|
22
23
|
|
|
23
24
|
var TURN_DISCOVERY_TIMEOUT = 10; // in seconds
|
|
@@ -81,20 +82,23 @@ var TurnDiscovery = /*#__PURE__*/function () {
|
|
|
81
82
|
* handles TURN_DISCOVERY_RESPONSE roap message
|
|
82
83
|
*
|
|
83
84
|
* @param {Object} roapMessage
|
|
85
|
+
* @param {string} from string to indicate how we got the response (used just for logging)
|
|
84
86
|
* @returns {void}
|
|
85
87
|
* @public
|
|
86
88
|
* @memberof Roap
|
|
87
89
|
*/
|
|
88
90
|
}, {
|
|
89
91
|
key: "handleTurnDiscoveryResponse",
|
|
90
|
-
value: function handleTurnDiscoveryResponse(roapMessage) {
|
|
92
|
+
value: function handleTurnDiscoveryResponse(roapMessage, from) {
|
|
91
93
|
var _this = this;
|
|
92
|
-
// @ts-ignore - Fix missing type
|
|
93
94
|
var headers = roapMessage.headers;
|
|
94
95
|
if (!this.defer) {
|
|
95
|
-
_loggerProxy.default.logger.warn(
|
|
96
|
+
_loggerProxy.default.logger.warn("Roap:turnDiscovery#handleTurnDiscoveryResponse --> unexpected TURN discovery response ".concat(from));
|
|
96
97
|
return;
|
|
97
98
|
}
|
|
99
|
+
if (roapMessage.messageType !== _constants2.ROAP.ROAP_TYPES.TURN_DISCOVERY_RESPONSE) {
|
|
100
|
+
this.defer.reject(new Error("TURN_DISCOVERY_RESPONSE ".concat(from, " has unexpected messageType: ").concat((0, _stringify.default)(roapMessage))));
|
|
101
|
+
}
|
|
98
102
|
var expectedHeaders = [{
|
|
99
103
|
headerName: 'x-cisco-turn-url',
|
|
100
104
|
field: 'url'
|
|
@@ -118,14 +122,43 @@ var TurnDiscovery = /*#__PURE__*/function () {
|
|
|
118
122
|
clearTimeout(this.responseTimer);
|
|
119
123
|
this.responseTimer = undefined;
|
|
120
124
|
if (foundHeaders !== expectedHeaders.length) {
|
|
121
|
-
_loggerProxy.default.logger.warn("Roap:turnDiscovery#handleTurnDiscoveryResponse --> missing some headers, received: ".concat((0, _stringify.default)(headers)));
|
|
122
|
-
this.defer.reject(new Error("TURN_DISCOVERY_RESPONSE missing some headers: ".concat((0, _stringify.default)(headers))));
|
|
125
|
+
_loggerProxy.default.logger.warn("Roap:turnDiscovery#handleTurnDiscoveryResponse --> missing some headers, received ".concat(from, ": ").concat((0, _stringify.default)(headers)));
|
|
126
|
+
this.defer.reject(new Error("TURN_DISCOVERY_RESPONSE ".concat(from, " missing some headers: ").concat((0, _stringify.default)(headers))));
|
|
123
127
|
} else {
|
|
124
|
-
_loggerProxy.default.logger.info("Roap:turnDiscovery#handleTurnDiscoveryResponse --> received a valid response, url=".concat(this.turnInfo.url));
|
|
125
|
-
this.defer.resolve(
|
|
128
|
+
_loggerProxy.default.logger.info("Roap:turnDiscovery#handleTurnDiscoveryResponse --> received a valid response ".concat(from, ", url=").concat(this.turnInfo.url));
|
|
129
|
+
this.defer.resolve({
|
|
130
|
+
isOkRequired: !(headers !== null && headers !== void 0 && headers.includes('noOkInTransaction'))
|
|
131
|
+
});
|
|
126
132
|
}
|
|
127
133
|
}
|
|
128
134
|
|
|
135
|
+
/**
|
|
136
|
+
* handles TURN_DISCOVERY_RESPONSE roap message that came in http response
|
|
137
|
+
*
|
|
138
|
+
* @param {Object} roapMessage
|
|
139
|
+
* @returns {Promise}
|
|
140
|
+
* @memberof Roap
|
|
141
|
+
*/
|
|
142
|
+
}, {
|
|
143
|
+
key: "handleTurnDiscoveryResponseInHttpResponse",
|
|
144
|
+
value: function () {
|
|
145
|
+
var _handleTurnDiscoveryResponseInHttpResponse = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(roapMessage) {
|
|
146
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
147
|
+
while (1) switch (_context.prev = _context.next) {
|
|
148
|
+
case 0:
|
|
149
|
+
this.handleTurnDiscoveryResponse(roapMessage, 'in http response');
|
|
150
|
+
return _context.abrupt("return", this.defer.promise);
|
|
151
|
+
case 2:
|
|
152
|
+
case "end":
|
|
153
|
+
return _context.stop();
|
|
154
|
+
}
|
|
155
|
+
}, _callee, this);
|
|
156
|
+
}));
|
|
157
|
+
function handleTurnDiscoveryResponseInHttpResponse(_x) {
|
|
158
|
+
return _handleTurnDiscoveryResponseInHttpResponse.apply(this, arguments);
|
|
159
|
+
}
|
|
160
|
+
return handleTurnDiscoveryResponseInHttpResponse;
|
|
161
|
+
}()
|
|
129
162
|
/**
|
|
130
163
|
* sends the TURN_DISCOVERY_REQUEST roap request
|
|
131
164
|
*
|
|
@@ -138,7 +171,6 @@ var TurnDiscovery = /*#__PURE__*/function () {
|
|
|
138
171
|
}, {
|
|
139
172
|
key: "sendRoapTurnDiscoveryRequest",
|
|
140
173
|
value: function sendRoapTurnDiscoveryRequest(meeting, isReconnecting) {
|
|
141
|
-
var _meeting$audio, _meeting$video;
|
|
142
174
|
if (this.defer) {
|
|
143
175
|
_loggerProxy.default.logger.warn('Roap:turnDiscovery#sendRoapTurnDiscoveryRequest --> already in progress');
|
|
144
176
|
return _promise.default.resolve();
|
|
@@ -147,25 +179,54 @@ var TurnDiscovery = /*#__PURE__*/function () {
|
|
|
147
179
|
var roapMessage = {
|
|
148
180
|
messageType: _constants2.ROAP.ROAP_TYPES.TURN_DISCOVERY_REQUEST,
|
|
149
181
|
version: _constants2.ROAP.ROAP_VERSION,
|
|
150
|
-
seq: TURN_DISCOVERY_SEQ
|
|
182
|
+
seq: TURN_DISCOVERY_SEQ,
|
|
183
|
+
headers: ['includeAnswerInHttpResponse', 'noOkInTransaction']
|
|
151
184
|
};
|
|
152
185
|
_loggerProxy.default.logger.info('Roap:turnDiscovery#sendRoapTurnDiscoveryRequest --> sending TURN_DISCOVERY_REQUEST');
|
|
153
186
|
return this.roapRequest.sendRoap({
|
|
154
187
|
roapMessage: roapMessage,
|
|
155
|
-
correlationId: meeting.correlationId,
|
|
156
188
|
// @ts-ignore - Fix missing type
|
|
157
189
|
locusSelfUrl: meeting.selfUrl,
|
|
158
190
|
// @ts-ignore - Fix missing type
|
|
159
191
|
mediaId: isReconnecting ? '' : meeting.mediaId,
|
|
160
|
-
audioMuted: (_meeting$audio = meeting.audio) === null || _meeting$audio === void 0 ? void 0 : _meeting$audio.isLocallyMuted(),
|
|
161
|
-
videoMuted: (_meeting$video = meeting.video) === null || _meeting$video === void 0 ? void 0 : _meeting$video.isLocallyMuted(),
|
|
162
192
|
meetingId: meeting.id,
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
193
|
+
locusMediaRequest: meeting.locusMediaRequest,
|
|
194
|
+
// @ts-ignore - because of meeting.webex
|
|
195
|
+
ipVersion: _util.default.getIpVersion(meeting.webex)
|
|
196
|
+
}).then(function (response) {
|
|
197
|
+
var mediaConnections = response.mediaConnections;
|
|
198
|
+
var turnDiscoveryResponse;
|
|
166
199
|
if (mediaConnections) {
|
|
200
|
+
var _mediaConnections$;
|
|
167
201
|
meeting.updateMediaConnections(mediaConnections);
|
|
202
|
+
if ((_mediaConnections$ = mediaConnections[0]) !== null && _mediaConnections$ !== void 0 && _mediaConnections$.remoteSdp) {
|
|
203
|
+
var remoteSdp = JSON.parse(mediaConnections[0].remoteSdp);
|
|
204
|
+
if (remoteSdp.roapMessage) {
|
|
205
|
+
// yes, it's misleading that remoteSdp actually contains a TURN discovery response, but that's how the backend works...
|
|
206
|
+
var _remoteSdp$roapMessag = remoteSdp.roapMessage,
|
|
207
|
+
seq = _remoteSdp$roapMessag.seq,
|
|
208
|
+
messageType = _remoteSdp$roapMessag.messageType,
|
|
209
|
+
errorType = _remoteSdp$roapMessag.errorType,
|
|
210
|
+
errorCause = _remoteSdp$roapMessag.errorCause,
|
|
211
|
+
headers = _remoteSdp$roapMessag.headers;
|
|
212
|
+
turnDiscoveryResponse = {
|
|
213
|
+
seq: seq,
|
|
214
|
+
messageType: messageType,
|
|
215
|
+
errorType: errorType,
|
|
216
|
+
errorCause: errorCause,
|
|
217
|
+
headers: headers
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
if (!turnDiscoveryResponse) {
|
|
223
|
+
_metrics.default.sendBehavioralMetric(_constants.default.ROAP_HTTP_RESPONSE_MISSING, {
|
|
224
|
+
correlationId: meeting.correlationId,
|
|
225
|
+
messageType: 'TURN_DISCOVERY_RESPONSE',
|
|
226
|
+
isMultistream: meeting.isMultistream
|
|
227
|
+
});
|
|
168
228
|
}
|
|
229
|
+
return turnDiscoveryResponse;
|
|
169
230
|
});
|
|
170
231
|
}
|
|
171
232
|
|
|
@@ -179,7 +240,6 @@ var TurnDiscovery = /*#__PURE__*/function () {
|
|
|
179
240
|
}, {
|
|
180
241
|
key: "sendRoapOK",
|
|
181
242
|
value: function sendRoapOK(meeting) {
|
|
182
|
-
var _meeting$audio2, _meeting$video2;
|
|
183
243
|
_loggerProxy.default.logger.info('Roap:turnDiscovery#sendRoapOK --> sending OK');
|
|
184
244
|
return this.roapRequest.sendRoap({
|
|
185
245
|
roapMessage: {
|
|
@@ -191,14 +251,78 @@ var TurnDiscovery = /*#__PURE__*/function () {
|
|
|
191
251
|
locusSelfUrl: meeting.selfUrl,
|
|
192
252
|
// @ts-ignore - fix type
|
|
193
253
|
mediaId: meeting.mediaId,
|
|
194
|
-
correlationId: meeting.correlationId,
|
|
195
|
-
audioMuted: (_meeting$audio2 = meeting.audio) === null || _meeting$audio2 === void 0 ? void 0 : _meeting$audio2.isLocallyMuted(),
|
|
196
|
-
videoMuted: (_meeting$video2 = meeting.video) === null || _meeting$video2 === void 0 ? void 0 : _meeting$video2.isLocallyMuted(),
|
|
197
254
|
meetingId: meeting.id,
|
|
198
|
-
|
|
255
|
+
locusMediaRequest: meeting.locusMediaRequest
|
|
199
256
|
});
|
|
200
257
|
}
|
|
201
258
|
|
|
259
|
+
/**
|
|
260
|
+
* Gets the reason why reachability is skipped.
|
|
261
|
+
*
|
|
262
|
+
* @param {Meeting} meeting
|
|
263
|
+
* @returns {Promise<string>} Promise with empty string if reachability is not skipped or a reason if it is skipped
|
|
264
|
+
*/
|
|
265
|
+
}, {
|
|
266
|
+
key: "getSkipReason",
|
|
267
|
+
value: function () {
|
|
268
|
+
var _getSkipReason = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(meeting) {
|
|
269
|
+
var isAnyPublicClusterReachable;
|
|
270
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
271
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
272
|
+
case 0:
|
|
273
|
+
_context2.next = 2;
|
|
274
|
+
return meeting.webex.meetings.reachability.isAnyPublicClusterReachable();
|
|
275
|
+
case 2:
|
|
276
|
+
isAnyPublicClusterReachable = _context2.sent;
|
|
277
|
+
if (!isAnyPublicClusterReachable) {
|
|
278
|
+
_context2.next = 6;
|
|
279
|
+
break;
|
|
280
|
+
}
|
|
281
|
+
_loggerProxy.default.logger.info('Roap:turnDiscovery#getSkipReason --> reachability has not failed, skipping TURN discovery');
|
|
282
|
+
return _context2.abrupt("return", 'reachability');
|
|
283
|
+
case 6:
|
|
284
|
+
return _context2.abrupt("return", '');
|
|
285
|
+
case 7:
|
|
286
|
+
case "end":
|
|
287
|
+
return _context2.stop();
|
|
288
|
+
}
|
|
289
|
+
}, _callee2);
|
|
290
|
+
}));
|
|
291
|
+
function getSkipReason(_x2) {
|
|
292
|
+
return _getSkipReason.apply(this, arguments);
|
|
293
|
+
}
|
|
294
|
+
return getSkipReason;
|
|
295
|
+
}()
|
|
296
|
+
/**
|
|
297
|
+
* Checks if TURN discovery is skipped.
|
|
298
|
+
*
|
|
299
|
+
* @param {Meeting} meeting
|
|
300
|
+
* @returns {Boolean} true if TURN discovery is being skipped, false if it is being done
|
|
301
|
+
*/
|
|
302
|
+
}, {
|
|
303
|
+
key: "isSkipped",
|
|
304
|
+
value: function () {
|
|
305
|
+
var _isSkipped = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(meeting) {
|
|
306
|
+
var skipReason;
|
|
307
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
308
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
309
|
+
case 0:
|
|
310
|
+
_context3.next = 2;
|
|
311
|
+
return this.getSkipReason(meeting);
|
|
312
|
+
case 2:
|
|
313
|
+
skipReason = _context3.sent;
|
|
314
|
+
return _context3.abrupt("return", !!skipReason);
|
|
315
|
+
case 4:
|
|
316
|
+
case "end":
|
|
317
|
+
return _context3.stop();
|
|
318
|
+
}
|
|
319
|
+
}, _callee3, this);
|
|
320
|
+
}));
|
|
321
|
+
function isSkipped(_x3) {
|
|
322
|
+
return _isSkipped.apply(this, arguments);
|
|
323
|
+
}
|
|
324
|
+
return isSkipped;
|
|
325
|
+
}()
|
|
202
326
|
/**
|
|
203
327
|
* Retrieves TURN server information from the backend by doing
|
|
204
328
|
* a roap message exchange:
|
|
@@ -212,75 +336,101 @@ var TurnDiscovery = /*#__PURE__*/function () {
|
|
|
212
336
|
* so it works fine no matter if TURN discovery is done or not.
|
|
213
337
|
*
|
|
214
338
|
* @param {Meeting} meeting
|
|
215
|
-
* @param {Boolean} isReconnecting should be set to true if this is a new
|
|
339
|
+
* @param {Boolean} [isReconnecting] should be set to true if this is a new
|
|
216
340
|
* media connection just after a reconnection
|
|
341
|
+
* @param {Boolean} [isForced]
|
|
217
342
|
* @returns {Promise}
|
|
218
343
|
*/
|
|
219
344
|
}, {
|
|
220
345
|
key: "doTurnDiscovery",
|
|
221
346
|
value: function () {
|
|
222
|
-
var _doTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
223
|
-
var
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
while (1) switch (_context.prev = _context.next) {
|
|
347
|
+
var _doTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(meeting, isReconnecting, isForced) {
|
|
348
|
+
var turnDiscoverySkippedReason, httpResponse, _ref, isOkRequired;
|
|
349
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
350
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
227
351
|
case 0:
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
352
|
+
if (isForced) {
|
|
353
|
+
_context4.next = 4;
|
|
354
|
+
break;
|
|
355
|
+
}
|
|
356
|
+
_context4.next = 3;
|
|
357
|
+
return this.getSkipReason(meeting);
|
|
358
|
+
case 3:
|
|
359
|
+
turnDiscoverySkippedReason = _context4.sent;
|
|
360
|
+
case 4:
|
|
361
|
+
if (!turnDiscoverySkippedReason) {
|
|
362
|
+
_context4.next = 6;
|
|
234
363
|
break;
|
|
235
364
|
}
|
|
236
|
-
|
|
237
|
-
return _context.abrupt("return", {
|
|
365
|
+
return _context4.abrupt("return", {
|
|
238
366
|
turnServerInfo: undefined,
|
|
239
|
-
turnDiscoverySkippedReason:
|
|
367
|
+
turnDiscoverySkippedReason: turnDiscoverySkippedReason
|
|
240
368
|
});
|
|
241
369
|
case 6:
|
|
242
|
-
|
|
243
|
-
|
|
370
|
+
_context4.prev = 6;
|
|
371
|
+
_context4.next = 9;
|
|
372
|
+
return this.sendRoapTurnDiscoveryRequest(meeting, isReconnecting);
|
|
373
|
+
case 9:
|
|
374
|
+
httpResponse = _context4.sent;
|
|
375
|
+
if (!httpResponse) {
|
|
376
|
+
_context4.next = 16;
|
|
244
377
|
break;
|
|
245
378
|
}
|
|
246
|
-
|
|
247
|
-
return
|
|
379
|
+
_context4.next = 13;
|
|
380
|
+
return this.handleTurnDiscoveryResponseInHttpResponse(httpResponse);
|
|
381
|
+
case 13:
|
|
382
|
+
_context4.t0 = _context4.sent;
|
|
383
|
+
_context4.next = 19;
|
|
384
|
+
break;
|
|
385
|
+
case 16:
|
|
386
|
+
_context4.next = 18;
|
|
387
|
+
return this.waitForTurnDiscoveryResponse();
|
|
388
|
+
case 18:
|
|
389
|
+
_context4.t0 = _context4.sent;
|
|
390
|
+
case 19:
|
|
391
|
+
_ref = _context4.t0;
|
|
392
|
+
isOkRequired = _ref.isOkRequired;
|
|
393
|
+
if (!isOkRequired) {
|
|
394
|
+
_context4.next = 26;
|
|
395
|
+
break;
|
|
396
|
+
}
|
|
397
|
+
_context4.next = 24;
|
|
398
|
+
return this.sendRoapOK(meeting);
|
|
399
|
+
case 24:
|
|
400
|
+
_loggerProxy.default.logger.info('Roap:turnDiscovery#doTurnDiscovery --> TURN discovery response requires OK');
|
|
401
|
+
_metrics.default.sendBehavioralMetric(_constants.default.TURN_DISCOVERY_REQUIRES_OK, {
|
|
402
|
+
correlation_id: meeting.correlationId,
|
|
403
|
+
locus_id: meeting.locusUrl.split('/').pop()
|
|
404
|
+
});
|
|
405
|
+
case 26:
|
|
406
|
+
this.defer = undefined;
|
|
407
|
+
_loggerProxy.default.logger.info('Roap:turnDiscovery#doTurnDiscovery --> TURN discovery completed');
|
|
408
|
+
return _context4.abrupt("return", {
|
|
409
|
+
turnServerInfo: this.turnInfo,
|
|
410
|
+
turnDiscoverySkippedReason: undefined
|
|
411
|
+
});
|
|
412
|
+
case 31:
|
|
413
|
+
_context4.prev = 31;
|
|
414
|
+
_context4.t1 = _context4["catch"](6);
|
|
415
|
+
// we catch any errors and resolve with no turn information so that the normal call join flow can continue without TURN
|
|
416
|
+
_loggerProxy.default.logger.info("Roap:turnDiscovery#doTurnDiscovery --> TURN discovery failed, continuing without TURN: ".concat(_context4.t1));
|
|
417
|
+
_metrics.default.sendBehavioralMetric(_constants.default.TURN_DISCOVERY_FAILURE, {
|
|
418
|
+
correlation_id: meeting.correlationId,
|
|
419
|
+
locus_id: meeting.locusUrl.split('/').pop(),
|
|
420
|
+
reason: _context4.t1.message,
|
|
421
|
+
stack: _context4.t1.stack
|
|
422
|
+
});
|
|
423
|
+
return _context4.abrupt("return", {
|
|
248
424
|
turnServerInfo: undefined,
|
|
249
|
-
turnDiscoverySkippedReason:
|
|
425
|
+
turnDiscoverySkippedReason: undefined
|
|
250
426
|
});
|
|
251
|
-
case
|
|
252
|
-
return _context.abrupt("return", this.sendRoapTurnDiscoveryRequest(meeting, isReconnecting).then(function () {
|
|
253
|
-
return _this2.waitForTurnDiscoveryResponse();
|
|
254
|
-
}).then(function () {
|
|
255
|
-
return _this2.sendRoapOK(meeting);
|
|
256
|
-
}).then(function () {
|
|
257
|
-
_this2.defer = undefined;
|
|
258
|
-
_loggerProxy.default.logger.info('Roap:turnDiscovery#doTurnDiscovery --> TURN discovery completed');
|
|
259
|
-
return {
|
|
260
|
-
turnServerInfo: _this2.turnInfo,
|
|
261
|
-
turnDiscoverySkippedReason: undefined
|
|
262
|
-
};
|
|
263
|
-
}).catch(function (e) {
|
|
264
|
-
// we catch any errors and resolve with no turn information so that the normal call join flow can continue without TURN
|
|
265
|
-
_loggerProxy.default.logger.info("Roap:turnDiscovery#doTurnDiscovery --> TURN discovery failed, continuing without TURN: ".concat(e));
|
|
266
|
-
_metrics.default.sendBehavioralMetric(_constants.default.TURN_DISCOVERY_FAILURE, {
|
|
267
|
-
correlation_id: meeting.correlationId,
|
|
268
|
-
locus_id: meeting.locusUrl.split('/').pop(),
|
|
269
|
-
reason: e.message,
|
|
270
|
-
stack: e.stack
|
|
271
|
-
});
|
|
272
|
-
return {
|
|
273
|
-
turnServerInfo: undefined,
|
|
274
|
-
turnDiscoverySkippedReason: undefined
|
|
275
|
-
};
|
|
276
|
-
}));
|
|
277
|
-
case 10:
|
|
427
|
+
case 36:
|
|
278
428
|
case "end":
|
|
279
|
-
return
|
|
429
|
+
return _context4.stop();
|
|
280
430
|
}
|
|
281
|
-
},
|
|
431
|
+
}, _callee4, this, [[6, 31]]);
|
|
282
432
|
}));
|
|
283
|
-
function doTurnDiscovery(
|
|
433
|
+
function doTurnDiscovery(_x4, _x5, _x6) {
|
|
284
434
|
return _doTurnDiscovery.apply(this, arguments);
|
|
285
435
|
}
|
|
286
436
|
return doTurnDiscovery;
|