@webex/plugin-meetings 2.59.8-next.2 → 2.60.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -8
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +41 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +357 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +215 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.js +22 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.js +51 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +44 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +1047 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.js +77 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.js +64 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/browser-detection.js +1 -2
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +1 -2
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +1 -2
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +1 -2
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +1 -2
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +1 -2
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +1 -2
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/no-meeting-info.js +50 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/parameter.js +3 -4
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +1 -2
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +1 -2
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reclaim-host-role-errors.js +154 -0
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/reconnection-in-progress.js +1 -2
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +1 -2
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +1 -2
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +48 -28
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +1 -2
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +1 -2
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +1 -2
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +1 -2
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +1 -2
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +1 -2
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +2 -3
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +8 -5
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +22 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +9 -12
- package/dist/config.js.map +1 -1
- package/dist/constants.js +437 -433
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +3 -6
- package/dist/controls-options-manager/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +14 -6
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.js +126 -37
- 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 -19
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.js +116 -4
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +22 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +365 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +24 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +95 -6
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -4
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +1 -2
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +1 -2
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.js +408 -67
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +13 -5
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +58 -3
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +251 -78
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +97 -13
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +106 -319
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +96 -153
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +1 -22
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +498 -493
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +90 -3
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +4579 -2951
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +291 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +224 -133
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +295 -197
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js +7 -0
- package/dist/meeting/request.type.js.map +1 -0
- package/dist/meeting/state.js +1 -2
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js +602 -432
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +1 -2
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +74 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +197 -63
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -2
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +2 -3
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +25 -12
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +23 -2
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +464 -123
- 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 +4 -3
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +107 -6
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +54 -2
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.js +3 -4
- package/dist/member/member.types.js.map +1 -1
- package/dist/member/types.js +23 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +131 -29
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +11 -2
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +172 -8
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +108 -41
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +14 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +327 -234
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +14 -7
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +4 -452
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +344 -0
- package/dist/multistream/mediaRequestManager.js.map +1 -0
- package/dist/multistream/receiveSlot.js +200 -0
- package/dist/multistream/receiveSlot.js.map +1 -0
- package/dist/multistream/receiveSlotManager.js +174 -0
- package/dist/multistream/receiveSlotManager.js.map +1 -0
- package/dist/multistream/remoteMedia.js +268 -0
- package/dist/multistream/remoteMedia.js.map +1 -0
- package/dist/multistream/remoteMediaGroup.js +267 -0
- package/dist/multistream/remoteMediaGroup.js.map +1 -0
- package/dist/multistream/remoteMediaManager.js +1211 -0
- package/dist/multistream/remoteMediaManager.js.map +1 -0
- package/dist/multistream/sendSlotManager.js +236 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/networkQualityMonitor/index.js +5 -4
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +2 -3
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -3
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +1 -2
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.js +258 -72
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +18 -10
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/constants.js +12 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.js +4 -6
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.js +21 -23
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +272 -220
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +4 -5
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.js +57 -46
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +10 -10
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js +101 -235
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +126 -180
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +115 -105
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +11 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +115 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/global.js +2 -93
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +374 -374
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +100 -66
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +1 -2
- package/dist/transcription/index.js.map +1 -1
- package/dist/webinar/collection.js +43 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.js +68 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +27 -18
- 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 +220 -0
- package/src/breakouts/breakout.ts +188 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +925 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -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 +36 -12
- 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 +7 -9
- package/src/constants.ts +263 -89
- package/src/controls-options-manager/enums.ts +11 -1
- 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 +110 -0
- package/src/locus-info/index.ts +449 -61
- package/src/locus-info/infoUtils.ts +14 -2
- package/src/locus-info/mediaSharesUtils.ts +64 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +85 -2
- package/src/media/index.ts +153 -370
- package/src/media/properties.ts +106 -136
- package/src/media/util.ts +0 -21
- package/src/mediaQualityMetrics/config.ts +379 -377
- package/src/meeting/in-meeting-actions.ts +168 -0
- package/src/meeting/index.ts +3801 -2457
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +224 -138
- package/src/meeting/request.ts +207 -127
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/util.ts +590 -423
- package/src/meeting-info/index.ts +81 -8
- package/src/meeting-info/meeting-info-v2.ts +159 -13
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +22 -9
- package/src/meetings/collection.ts +20 -0
- package/src/meetings/index.ts +466 -124
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +116 -5
- package/src/member/index.ts +52 -1
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +139 -28
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +196 -7
- 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 -471
- package/src/multistream/mediaRequestManager.ts +440 -0
- package/src/multistream/receiveSlot.ts +184 -0
- package/src/multistream/receiveSlotManager.ts +166 -0
- package/src/multistream/remoteMedia.ts +254 -0
- package/src/multistream/remoteMediaGroup.ts +284 -0
- package/src/multistream/remoteMediaManager.ts +1145 -0
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/networkQualityMonitor/index.ts +6 -6
- package/src/reachability/index.ts +238 -45
- package/src/reachability/request.ts +17 -8
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +30 -4
- package/src/reconnection-manager/index.ts +124 -107
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +98 -240
- package/src/roap/request.ts +74 -148
- package/src/roap/turnDiscovery.ts +62 -56
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +100 -0
- package/src/statsAnalyzer/global.ts +1 -92
- package/src/statsAnalyzer/index.ts +429 -447
- package/src/statsAnalyzer/mqaUtil.ts +105 -103
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +320 -264
- package/test/integration/spec/space-meeting.js +77 -4
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +237 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- 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 +1790 -0
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +72 -0
- 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 +323 -30
- package/test/unit/spec/locus-info/index.js +1390 -16
- package/test/unit/spec/locus-info/infoUtils.js +54 -16
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/lib/selfConstant.js +48 -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/selfUtils.js +275 -0
- package/test/unit/spec/media/index.ts +274 -0
- package/test/unit/spec/media/properties.ts +75 -84
- package/test/unit/spec/meeting/in-meeting-actions.ts +82 -0
- package/test/unit/spec/meeting/index.js +7420 -3125
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +407 -212
- package/test/unit/spec/meeting/request.js +512 -42
- package/test/unit/spec/meeting/utils.js +741 -24
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +500 -6
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +14 -0
- package/test/unit/spec/meetings/index.js +1012 -209
- package/test/unit/spec/meetings/utils.js +202 -2
- package/test/unit/spec/member/index.js +38 -8
- package/test/unit/spec/member/util.js +528 -27
- package/test/unit/spec/members/index.js +597 -3
- 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 +1418 -0
- package/test/unit/spec/multistream/receiveSlot.ts +163 -0
- package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
- package/test/unit/spec/multistream/remoteMedia.ts +255 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/networkQualityMonitor/index.js +4 -4
- package/test/unit/spec/reachability/index.ts +598 -24
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reconnection-manager/index.js +130 -22
- package/test/unit/spec/recording-controller/index.js +293 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +200 -77
- package/test/unit/spec/roap/request.ts +232 -0
- package/test/unit/spec/roap/turnDiscovery.ts +86 -48
- package/test/unit/spec/rtcMetrics/index.ts +73 -0
- package/test/unit/spec/stats-analyzer/index.js +205 -50
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/constants.js +9 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -45
- package/test/utils/webex-config.js +4 -0
- package/test/utils/webex-test-users.js +7 -3
- package/dist/meeting/effectsState.js +0 -260
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -289
- package/dist/metrics/config.js.map +0 -1
- package/dist/peer-connection-manager/index.js +0 -671
- package/dist/peer-connection-manager/index.js.map +0 -1
- package/dist/peer-connection-manager/util.js +0 -110
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/dist/roap/collection.js +0 -63
- package/dist/roap/collection.js.map +0 -1
- package/dist/roap/handler.js +0 -279
- package/dist/roap/handler.js.map +0 -1
- package/dist/roap/state.js +0 -127
- package/dist/roap/state.js.map +0 -1
- package/dist/roap/util.js +0 -76
- package/dist/roap/util.js.map +0 -1
- package/src/index.js +0 -15
- package/src/meeting/effectsState.ts +0 -209
- package/src/metrics/config.ts +0 -485
- package/src/peer-connection-manager/index.ts +0 -847
- package/src/peer-connection-manager/util.ts +0 -119
- package/src/roap/collection.ts +0 -62
- package/src/roap/handler.ts +0 -294
- package/src/roap/state.ts +0 -156
- package/src/roap/util.ts +0 -100
- package/test/unit/spec/meeting/effectsState.js +0 -281
- package/test/unit/spec/peerconnection-manager/index.js +0 -218
- package/test/unit/spec/peerconnection-manager/utils.js +0 -49
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
- package/test/unit/spec/roap/util.js +0 -30
|
@@ -12,13 +12,15 @@ var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/obj
|
|
|
12
12
|
var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
|
|
13
13
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
14
14
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
15
|
+
var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
|
|
15
16
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/toConsumableArray"));
|
|
16
17
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
17
18
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
18
19
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
19
20
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
20
|
-
var _lodash =
|
|
21
|
+
var _lodash = require("lodash");
|
|
21
22
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
23
|
+
var _util = _interopRequireDefault(require("../meeting/util"));
|
|
22
24
|
var _constants = require("../constants");
|
|
23
25
|
var _request = _interopRequireDefault(require("./request"));
|
|
24
26
|
/*!
|
|
@@ -31,11 +33,18 @@ var _request = _interopRequireDefault(require("./request"));
|
|
|
31
33
|
var DEFAULT_TIMEOUT = 3000;
|
|
32
34
|
var VIDEO_MESH_TIMEOUT = 1000;
|
|
33
35
|
|
|
36
|
+
// result for a specific transport protocol (like udp or tcp)
|
|
37
|
+
|
|
38
|
+
// reachability result for a specifc media cluster
|
|
39
|
+
|
|
40
|
+
// this is the type that is required by the backend when we send them reachability results
|
|
41
|
+
|
|
42
|
+
// this is the type used by Reachability class internally and stored in local storage
|
|
34
43
|
/**
|
|
35
44
|
* @class Reachability
|
|
36
45
|
* @export
|
|
37
46
|
*/
|
|
38
|
-
var Reachability = /*#__PURE__*/function () {
|
|
47
|
+
var Reachability = exports.default = /*#__PURE__*/function () {
|
|
39
48
|
/**
|
|
40
49
|
* Creates an instance of Reachability.
|
|
41
50
|
* @param {object} webex
|
|
@@ -43,6 +52,7 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
43
52
|
*/
|
|
44
53
|
function Reachability(webex) {
|
|
45
54
|
(0, _classCallCheck2.default)(this, Reachability);
|
|
55
|
+
(0, _defineProperty2.default)(this, "namespace", _constants.REACHABILITY.namespace);
|
|
46
56
|
(0, _defineProperty2.default)(this, "webex", void 0);
|
|
47
57
|
(0, _defineProperty2.default)(this, "reachabilityRequest", void 0);
|
|
48
58
|
(0, _defineProperty2.default)(this, "clusterLatencyResults", void 0);
|
|
@@ -76,80 +86,210 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
76
86
|
*/
|
|
77
87
|
(0, _createClass2.default)(Reachability, [{
|
|
78
88
|
key: "gatherReachability",
|
|
79
|
-
value: function () {
|
|
89
|
+
value: (function () {
|
|
80
90
|
var _gatherReachability = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
81
|
-
var
|
|
82
|
-
var clusters, results;
|
|
91
|
+
var _yield$this$reachabil, clusters, joinCookie, results;
|
|
83
92
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
84
93
|
while (1) switch (_context.prev = _context.next) {
|
|
85
94
|
case 0:
|
|
86
95
|
this.setup();
|
|
87
96
|
|
|
88
97
|
// Remove stored reachability results to ensure no stale data
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
break;
|
|
98
|
+
// @ts-ignore
|
|
99
|
+
_context.next = 3;
|
|
100
|
+
return this.webex.boundedStorage.del(this.namespace, _constants.REACHABILITY.localStorageResult);
|
|
101
|
+
case 3:
|
|
102
|
+
_context.next = 5;
|
|
103
|
+
return this.webex.boundedStorage.del(this.namespace, _constants.REACHABILITY.localStorageJoinCookie);
|
|
96
104
|
case 5:
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
clusters = _context.sent;
|
|
105
|
+
_context.prev = 5;
|
|
106
|
+
_context.next = 8;
|
|
107
|
+
return this.reachabilityRequest.getClusters(_util.default.getIpVersion(this.webex));
|
|
108
|
+
case 8:
|
|
109
|
+
_yield$this$reachabil = _context.sent;
|
|
110
|
+
clusters = _yield$this$reachabil.clusters;
|
|
111
|
+
joinCookie = _yield$this$reachabil.joinCookie;
|
|
105
112
|
_context.next = 13;
|
|
106
113
|
return this.performReachabilityCheck(clusters);
|
|
107
114
|
case 13:
|
|
108
115
|
results = _context.sent;
|
|
109
|
-
|
|
116
|
+
_context.next = 16;
|
|
117
|
+
return this.webex.boundedStorage.put(this.namespace, _constants.REACHABILITY.localStorageResult, (0, _stringify.default)(results));
|
|
118
|
+
case 16:
|
|
119
|
+
_context.next = 18;
|
|
120
|
+
return this.webex.boundedStorage.put(this.namespace, _constants.REACHABILITY.localStorageJoinCookie, (0, _stringify.default)(joinCookie));
|
|
121
|
+
case 18:
|
|
110
122
|
_loggerProxy.default.logger.log('Reachability:index#gatherReachability --> Reachability checks completed');
|
|
111
123
|
return _context.abrupt("return", results);
|
|
112
|
-
case
|
|
113
|
-
_context.prev =
|
|
114
|
-
_context.t0 = _context["catch"](
|
|
124
|
+
case 22:
|
|
125
|
+
_context.prev = 22;
|
|
126
|
+
_context.t0 = _context["catch"](5);
|
|
115
127
|
_loggerProxy.default.logger.error("Reachability:index#gatherReachability --> Error in calling getClusters(): ".concat(_context.t0));
|
|
116
128
|
return _context.abrupt("return", {});
|
|
117
|
-
case
|
|
129
|
+
case 26:
|
|
118
130
|
case "end":
|
|
119
131
|
return _context.stop();
|
|
120
132
|
}
|
|
121
|
-
}, _callee, this, [[
|
|
133
|
+
}, _callee, this, [[5, 22]]);
|
|
122
134
|
}));
|
|
123
135
|
function gatherReachability() {
|
|
124
136
|
return _gatherReachability.apply(this, arguments);
|
|
125
137
|
}
|
|
126
138
|
return gatherReachability;
|
|
127
139
|
}()
|
|
140
|
+
/**
|
|
141
|
+
* Returns statistics about last reachability results. The returned value is an object
|
|
142
|
+
* with a flat list of properties so that it can be easily sent with metrics
|
|
143
|
+
*
|
|
144
|
+
* @returns {Promise} Promise with metrics values, it never rejects/throws.
|
|
145
|
+
*/
|
|
146
|
+
)
|
|
147
|
+
}, {
|
|
148
|
+
key: "getReachabilityMetrics",
|
|
149
|
+
value: (function () {
|
|
150
|
+
var _getReachabilityMetrics = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
151
|
+
var stats, updateStats, resultsJson, internalResults;
|
|
152
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
153
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
154
|
+
case 0:
|
|
155
|
+
stats = {
|
|
156
|
+
reachability_public_udp_success: 0,
|
|
157
|
+
reachability_public_udp_failed: 0,
|
|
158
|
+
reachability_public_tcp_success: 0,
|
|
159
|
+
reachability_public_tcp_failed: 0,
|
|
160
|
+
reachability_vmn_udp_success: 0,
|
|
161
|
+
reachability_vmn_udp_failed: 0,
|
|
162
|
+
reachability_vmn_tcp_success: 0,
|
|
163
|
+
reachability_vmn_tcp_failed: 0
|
|
164
|
+
};
|
|
165
|
+
updateStats = function updateStats(clusterType, result) {
|
|
166
|
+
var _result$udp, _result$tcp;
|
|
167
|
+
if ((_result$udp = result.udp) !== null && _result$udp !== void 0 && _result$udp.reachable) {
|
|
168
|
+
var outcome = result.udp.reachable === 'true' ? 'success' : 'failed';
|
|
169
|
+
stats["reachability_".concat(clusterType, "_udp_").concat(outcome)] += 1;
|
|
170
|
+
}
|
|
171
|
+
if ((_result$tcp = result.tcp) !== null && _result$tcp !== void 0 && _result$tcp.reachable) {
|
|
172
|
+
var _outcome = result.tcp.reachable === 'true' ? 'success' : 'failed';
|
|
173
|
+
stats["reachability_".concat(clusterType, "_tcp_").concat(_outcome)] += 1;
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
_context2.prev = 2;
|
|
177
|
+
_context2.next = 5;
|
|
178
|
+
return this.webex.boundedStorage.get(_constants.REACHABILITY.namespace, _constants.REACHABILITY.localStorageResult);
|
|
179
|
+
case 5:
|
|
180
|
+
resultsJson = _context2.sent;
|
|
181
|
+
internalResults = JSON.parse(resultsJson);
|
|
182
|
+
(0, _values.default)(internalResults).forEach(function (result) {
|
|
183
|
+
updateStats(result.isVideoMesh ? 'vmn' : 'public', result);
|
|
184
|
+
});
|
|
185
|
+
_context2.next = 13;
|
|
186
|
+
break;
|
|
187
|
+
case 10:
|
|
188
|
+
_context2.prev = 10;
|
|
189
|
+
_context2.t0 = _context2["catch"](2);
|
|
190
|
+
// empty storage, that's ok
|
|
191
|
+
_loggerProxy.default.logger.warn('Roap:request#getReachabilityMetrics --> Error parsing reachability data: ', _context2.t0);
|
|
192
|
+
case 13:
|
|
193
|
+
return _context2.abrupt("return", stats);
|
|
194
|
+
case 14:
|
|
195
|
+
case "end":
|
|
196
|
+
return _context2.stop();
|
|
197
|
+
}
|
|
198
|
+
}, _callee2, this, [[2, 10]]);
|
|
199
|
+
}));
|
|
200
|
+
function getReachabilityMetrics() {
|
|
201
|
+
return _getReachabilityMetrics.apply(this, arguments);
|
|
202
|
+
}
|
|
203
|
+
return getReachabilityMetrics;
|
|
204
|
+
}()
|
|
205
|
+
/**
|
|
206
|
+
* Reachability results as an object in the format that backend expects
|
|
207
|
+
*
|
|
208
|
+
* @returns {any} reachability results that need to be sent to the backend
|
|
209
|
+
*/
|
|
210
|
+
)
|
|
211
|
+
}, {
|
|
212
|
+
key: "getReachabilityResults",
|
|
213
|
+
value: (function () {
|
|
214
|
+
var _getReachabilityResults = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
215
|
+
var results, reachabilityResultsProps, resultsJson, internalResults;
|
|
216
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
217
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
218
|
+
case 0:
|
|
219
|
+
// these are the only props that backend needs in the reachability results:
|
|
220
|
+
reachabilityResultsProps = ['udp', 'tcp', 'xtls'];
|
|
221
|
+
_context3.prev = 1;
|
|
222
|
+
_context3.next = 4;
|
|
223
|
+
return this.webex.boundedStorage.get(_constants.REACHABILITY.namespace, _constants.REACHABILITY.localStorageResult);
|
|
224
|
+
case 4:
|
|
225
|
+
resultsJson = _context3.sent;
|
|
226
|
+
internalResults = JSON.parse(resultsJson);
|
|
227
|
+
results = (0, _lodash.mapValues)(internalResults, function (result) {
|
|
228
|
+
return (0, _lodash.pick)(result, reachabilityResultsProps);
|
|
229
|
+
});
|
|
230
|
+
_context3.next = 12;
|
|
231
|
+
break;
|
|
232
|
+
case 9:
|
|
233
|
+
_context3.prev = 9;
|
|
234
|
+
_context3.t0 = _context3["catch"](1);
|
|
235
|
+
// empty storage, that's ok
|
|
236
|
+
_loggerProxy.default.logger.warn('Roap:request#attachReachabilityData --> Error parsing reachability data: ', _context3.t0);
|
|
237
|
+
case 12:
|
|
238
|
+
return _context3.abrupt("return", results);
|
|
239
|
+
case 13:
|
|
240
|
+
case "end":
|
|
241
|
+
return _context3.stop();
|
|
242
|
+
}
|
|
243
|
+
}, _callee3, this, [[1, 9]]);
|
|
244
|
+
}));
|
|
245
|
+
function getReachabilityResults() {
|
|
246
|
+
return _getReachabilityResults.apply(this, arguments);
|
|
247
|
+
}
|
|
248
|
+
return getReachabilityResults;
|
|
249
|
+
}()
|
|
128
250
|
/**
|
|
129
251
|
* fetches reachability data and checks for cluster reachability
|
|
130
252
|
* @returns {boolean}
|
|
131
253
|
* @public
|
|
132
254
|
* @memberof Reachability
|
|
133
255
|
*/
|
|
256
|
+
)
|
|
134
257
|
}, {
|
|
135
|
-
key: "
|
|
136
|
-
value: function
|
|
137
|
-
var
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
258
|
+
key: "isAnyPublicClusterReachable",
|
|
259
|
+
value: (function () {
|
|
260
|
+
var _isAnyPublicClusterReachable = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
261
|
+
var reachable, reachabilityData, reachabilityResults;
|
|
262
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
263
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
264
|
+
case 0:
|
|
265
|
+
reachable = false; // @ts-ignore
|
|
266
|
+
_context4.next = 3;
|
|
267
|
+
return this.webex.boundedStorage.get(this.namespace, _constants.REACHABILITY.localStorageResult).catch(function () {});
|
|
268
|
+
case 3:
|
|
269
|
+
reachabilityData = _context4.sent;
|
|
270
|
+
if (reachabilityData) {
|
|
271
|
+
try {
|
|
272
|
+
reachabilityResults = JSON.parse(reachabilityData);
|
|
273
|
+
reachable = (0, _values.default)(reachabilityResults).some(function (result) {
|
|
274
|
+
var _result$udp2, _result$tcp2;
|
|
275
|
+
return !result.isVideoMesh && (((_result$udp2 = result.udp) === null || _result$udp2 === void 0 ? void 0 : _result$udp2.reachable) === 'true' || ((_result$tcp2 = result.tcp) === null || _result$tcp2 === void 0 ? void 0 : _result$tcp2.reachable) === 'true');
|
|
276
|
+
});
|
|
277
|
+
} catch (e) {
|
|
278
|
+
_loggerProxy.default.logger.error("Roap:request#attachReachabilityData --> Error in parsing reachability data: ".concat(e));
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
return _context4.abrupt("return", reachable);
|
|
282
|
+
case 6:
|
|
283
|
+
case "end":
|
|
284
|
+
return _context4.stop();
|
|
285
|
+
}
|
|
286
|
+
}, _callee4, this);
|
|
287
|
+
}));
|
|
288
|
+
function isAnyPublicClusterReachable() {
|
|
289
|
+
return _isAnyPublicClusterReachable.apply(this, arguments);
|
|
149
290
|
}
|
|
150
|
-
return
|
|
151
|
-
}
|
|
152
|
-
|
|
291
|
+
return isAnyPublicClusterReachable;
|
|
292
|
+
}()
|
|
153
293
|
/**
|
|
154
294
|
* Generate peerConnection config settings
|
|
155
295
|
* @param {object} cluster
|
|
@@ -157,10 +297,11 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
157
297
|
* @private
|
|
158
298
|
* @memberof Reachability
|
|
159
299
|
*/
|
|
300
|
+
)
|
|
160
301
|
}, {
|
|
161
302
|
key: "buildPeerConnectionConfig",
|
|
162
303
|
value: function buildPeerConnectionConfig(cluster) {
|
|
163
|
-
var iceServers =
|
|
304
|
+
var iceServers = (0, _lodash.uniq)(cluster.udp).map(function (url) {
|
|
164
305
|
return {
|
|
165
306
|
username: '',
|
|
166
307
|
credential: '',
|
|
@@ -226,10 +367,10 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
226
367
|
var _this = this;
|
|
227
368
|
var clusters = (0, _toConsumableArray2.default)((0, _keys.default)(clusterList));
|
|
228
369
|
clusters = clusters.map( /*#__PURE__*/function () {
|
|
229
|
-
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
370
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(key) {
|
|
230
371
|
var cluster, config, peerConnection, description;
|
|
231
|
-
return _regenerator.default.wrap(function
|
|
232
|
-
while (1) switch (
|
|
372
|
+
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
373
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
233
374
|
case 0:
|
|
234
375
|
cluster = clusterList[key];
|
|
235
376
|
config = _this.buildPeerConnectionConfig(cluster);
|
|
@@ -237,29 +378,29 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
237
378
|
key: key,
|
|
238
379
|
config: config
|
|
239
380
|
});
|
|
240
|
-
|
|
381
|
+
_context5.next = 5;
|
|
241
382
|
return peerConnection.createOffer({
|
|
242
383
|
offerToReceiveAudio: true
|
|
243
384
|
});
|
|
244
385
|
case 5:
|
|
245
|
-
description =
|
|
386
|
+
description = _context5.sent;
|
|
246
387
|
// @ts-ignore
|
|
247
388
|
peerConnection.begin = (0, _now.default)();
|
|
248
389
|
peerConnection.setLocalDescription(description);
|
|
249
|
-
return
|
|
390
|
+
return _context5.abrupt("return", _this.iceGatheringState(peerConnection, cluster.isVideoMesh).catch(function (iceGatheringStateError) {
|
|
250
391
|
_loggerProxy.default.logger.log("Reachability:index#getLocalSDPForClusters --> Error in getLocalSDP : ".concat(iceGatheringStateError));
|
|
251
392
|
}));
|
|
252
393
|
case 9:
|
|
253
394
|
case "end":
|
|
254
|
-
return
|
|
395
|
+
return _context5.stop();
|
|
255
396
|
}
|
|
256
|
-
},
|
|
397
|
+
}, _callee5);
|
|
257
398
|
}));
|
|
258
399
|
return function (_x) {
|
|
259
400
|
return _ref.apply(this, arguments);
|
|
260
401
|
};
|
|
261
402
|
}());
|
|
262
|
-
return _promise.default.all(clusters).then(this.
|
|
403
|
+
return _promise.default.all(clusters).then(this.parseIceResultsToInternalReachabilityResults).then(function (reachabilityLatencyResults) {
|
|
263
404
|
_this.logUnreachableClusters();
|
|
264
405
|
|
|
265
406
|
// return results
|
|
@@ -330,6 +471,8 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
330
471
|
var elapsed = _this3.getElapsedTime(peerConnection);
|
|
331
472
|
_loggerProxy.default.logger.log( // @ts-ignore
|
|
332
473
|
"Reachability:index#onIceCandidate --> Successfully pinged ".concat(peerConnection.key, ":"), elapsed);
|
|
474
|
+
// order is important
|
|
475
|
+
_this3.addPublicIP(peerConnection, e.candidate.address);
|
|
333
476
|
_this3.setLatencyAndClose(peerConnection, elapsed);
|
|
334
477
|
}
|
|
335
478
|
};
|
|
@@ -341,16 +484,18 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
341
484
|
* speed.
|
|
342
485
|
* @private
|
|
343
486
|
* @param {RTCPeerConnection} peerConnection
|
|
344
|
-
* @param {
|
|
487
|
+
* @param {boolean} isVideoMesh
|
|
345
488
|
* @returns {Promise}
|
|
346
489
|
*/
|
|
347
490
|
}, {
|
|
348
491
|
key: "iceGatheringState",
|
|
349
|
-
value: function iceGatheringState(peerConnection,
|
|
492
|
+
value: function iceGatheringState(peerConnection, isVideoMesh) {
|
|
350
493
|
var _this4 = this;
|
|
351
494
|
var ELAPSED = 'elapsed';
|
|
495
|
+
var timeout = isVideoMesh ? VIDEO_MESH_TIMEOUT : DEFAULT_TIMEOUT;
|
|
352
496
|
return new _promise.default(function (resolve) {
|
|
353
497
|
var peerConnectionProxy = new window.Proxy(peerConnection, {
|
|
498
|
+
// eslint-disable-next-line require-jsdoc
|
|
354
499
|
get: function get(target, property) {
|
|
355
500
|
var targetMember = target[property];
|
|
356
501
|
if (typeof targetMember === 'function') {
|
|
@@ -361,9 +506,12 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
361
506
|
set: function set(target, property, value) {
|
|
362
507
|
// only intercept elapsed property
|
|
363
508
|
if (property === ELAPSED) {
|
|
364
|
-
// @ts-ignore
|
|
365
509
|
resolve({
|
|
510
|
+
// @ts-ignore
|
|
366
511
|
clusterId: peerConnection.key,
|
|
512
|
+
isVideoMesh: isVideoMesh,
|
|
513
|
+
// @ts-ignore
|
|
514
|
+
publicIPs: target.publicIPs,
|
|
367
515
|
elapsed: value
|
|
368
516
|
});
|
|
369
517
|
return true;
|
|
@@ -385,6 +533,8 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
385
533
|
|
|
386
534
|
// Close any open peerConnections
|
|
387
535
|
if (peerConnectionProxy.connectionState !== CLOSED) {
|
|
536
|
+
// order is important
|
|
537
|
+
_this4.addPublicIP(peerConnectionProxy, null);
|
|
388
538
|
_this4.setLatencyAndClose(peerConnectionProxy, null);
|
|
389
539
|
}
|
|
390
540
|
}, timeout);
|
|
@@ -408,32 +558,45 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
408
558
|
|
|
409
559
|
/**
|
|
410
560
|
* Calculates time to establish connection
|
|
411
|
-
* @param {
|
|
561
|
+
* @param {Array<ICECandidateResult>} iceResults iceResults
|
|
412
562
|
* @returns {object} reachabilityMap
|
|
413
|
-
* @
|
|
563
|
+
* @protected
|
|
414
564
|
* @memberof Reachability
|
|
415
565
|
*/
|
|
416
566
|
}, {
|
|
417
|
-
key: "
|
|
418
|
-
value: function
|
|
567
|
+
key: "parseIceResultsToInternalReachabilityResults",
|
|
568
|
+
value: function parseIceResultsToInternalReachabilityResults(iceResults) {
|
|
419
569
|
var reachabilityMap = {};
|
|
420
570
|
iceResults.forEach(function (_ref2) {
|
|
421
571
|
var clusterId = _ref2.clusterId,
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
572
|
+
isVideoMesh = _ref2.isVideoMesh,
|
|
573
|
+
elapsed = _ref2.elapsed,
|
|
574
|
+
publicIPs = _ref2.publicIPs;
|
|
575
|
+
var latencyResult = {};
|
|
576
|
+
if (!elapsed) {
|
|
577
|
+
(0, _assign.default)(latencyResult, {
|
|
426
578
|
reachable: 'false'
|
|
427
|
-
};
|
|
579
|
+
});
|
|
428
580
|
} else {
|
|
429
|
-
latencyResult
|
|
581
|
+
(0, _assign.default)(latencyResult, {
|
|
430
582
|
reachable: 'true',
|
|
431
583
|
latencyInMilliseconds: elapsed.toString()
|
|
432
|
-
};
|
|
584
|
+
});
|
|
585
|
+
}
|
|
586
|
+
if (publicIPs) {
|
|
587
|
+
(0, _assign.default)(latencyResult, {
|
|
588
|
+
clientMediaIPs: publicIPs
|
|
589
|
+
});
|
|
433
590
|
}
|
|
434
591
|
reachabilityMap[clusterId] = {
|
|
435
592
|
udp: latencyResult,
|
|
436
|
-
tcp:
|
|
593
|
+
tcp: {
|
|
594
|
+
untested: 'true'
|
|
595
|
+
},
|
|
596
|
+
xtls: {
|
|
597
|
+
untested: 'true'
|
|
598
|
+
},
|
|
599
|
+
isVideoMesh: isVideoMesh
|
|
437
600
|
};
|
|
438
601
|
});
|
|
439
602
|
return reachabilityMap;
|
|
@@ -442,7 +605,7 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
442
605
|
/**
|
|
443
606
|
* fetches reachability data
|
|
444
607
|
* @param {object} clusterList
|
|
445
|
-
* @returns {Promise<
|
|
608
|
+
* @returns {Promise<InternalReachabilityResults>} reachability check results
|
|
446
609
|
* @private
|
|
447
610
|
* @memberof Reachability
|
|
448
611
|
*/
|
|
@@ -469,6 +632,31 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
469
632
|
});
|
|
470
633
|
}
|
|
471
634
|
|
|
635
|
+
/**
|
|
636
|
+
* Adds public IP (client media IPs)
|
|
637
|
+
* @param {RTCPeerConnection} peerConnection
|
|
638
|
+
* @param {string} publicIP
|
|
639
|
+
* @returns {void}
|
|
640
|
+
*/
|
|
641
|
+
}, {
|
|
642
|
+
key: "addPublicIP",
|
|
643
|
+
value: function addPublicIP(peerConnection, publicIP) {
|
|
644
|
+
var modifiedPeerConnection = peerConnection;
|
|
645
|
+
var CLOSED = _constants.CONNECTION_STATE.CLOSED;
|
|
646
|
+
if (modifiedPeerConnection.connectionState === CLOSED) {
|
|
647
|
+
_loggerProxy.default.logger.log("Reachability:index#addPublicIP --> Attempting to set publicIP of ".concat(publicIP, " on closed peerConnection."));
|
|
648
|
+
}
|
|
649
|
+
if (publicIP) {
|
|
650
|
+
if (modifiedPeerConnection.publicIPs) {
|
|
651
|
+
modifiedPeerConnection.publicIPs.push(publicIP);
|
|
652
|
+
} else {
|
|
653
|
+
modifiedPeerConnection.publicIPs = [publicIP];
|
|
654
|
+
}
|
|
655
|
+
} else {
|
|
656
|
+
modifiedPeerConnection.publicIPs = null;
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
|
|
472
660
|
/**
|
|
473
661
|
* Records latency and closes the peerConnection
|
|
474
662
|
* @param {RTCPeerConnection} peerConnection
|
|
@@ -480,14 +668,13 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
480
668
|
}, {
|
|
481
669
|
key: "setLatencyAndClose",
|
|
482
670
|
value: function setLatencyAndClose(peerConnection, elapsed) {
|
|
483
|
-
var _intialState;
|
|
484
671
|
var REACHABLE = 'reachable';
|
|
485
672
|
var UNREACHABLE = 'unreachable';
|
|
486
673
|
var CLOSED = _constants.CONNECTION_STATE.CLOSED;
|
|
487
674
|
// @ts-ignore
|
|
488
675
|
var key = peerConnection.key;
|
|
489
676
|
var resultKey = elapsed === null ? UNREACHABLE : REACHABLE;
|
|
490
|
-
var intialState = (
|
|
677
|
+
var intialState = (0, _defineProperty2.default)((0, _defineProperty2.default)({}, REACHABLE, 0), UNREACHABLE, 0);
|
|
491
678
|
if (peerConnection.connectionState === CLOSED) {
|
|
492
679
|
_loggerProxy.default.logger.log("Reachability:index#setLatencyAndClose --> Attempting to set latency of ".concat(elapsed, " on closed peerConnection."));
|
|
493
680
|
return;
|
|
@@ -517,5 +704,4 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
517
704
|
}]);
|
|
518
705
|
return Reachability;
|
|
519
706
|
}();
|
|
520
|
-
exports.default = Reachability;
|
|
521
707
|
//# sourceMappingURL=index.js.map
|