@webex/plugin-meetings 2.59.8 → 2.60.0-next.10
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.d.ts +42 -0
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.d.ts +31 -0
- package/dist/annotation/constants.js +41 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.d.ts +117 -0
- package/dist/annotation/index.js +357 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.d.ts +8 -0
- package/dist/breakouts/breakout.js +215 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.d.ts +5 -0
- package/dist/breakouts/collection.js +22 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/breakouts/edit-lock-error.js +51 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.d.ts +8 -0
- package/dist/breakouts/events.js +44 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.d.ts +5 -0
- package/dist/breakouts/index.js +1047 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.d.ts +22 -0
- package/dist/breakouts/request.js +77 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.d.ts +15 -0
- package/dist/breakouts/utils.js +64 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/browser-detection.js +2 -3
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +3 -4
- 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.d.ts +14 -0
- 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.d.ts +60 -0
- 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.d.ts +20 -8
- 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.d.ts +3 -1
- package/dist/common/logs/request.js +8 -5
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.d.ts +9 -7
- package/dist/common/queue.js +22 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.d.ts +5 -7
- package/dist/config.js +8 -11
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +243 -97
- package/dist/constants.js +437 -435
- 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.d.ts +11 -1
- package/dist/controls-options-manager/enums.js +15 -6
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.d.ts +17 -1
- package/dist/controls-options-manager/index.js +127 -38
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.d.ts +43 -0
- 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.d.ts +1 -7
- package/dist/controls-options-manager/util.js +309 -19
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.js +116 -4
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.d.ts +5 -0
- package/dist/interpretation/collection.js +22 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.d.ts +5 -0
- package/dist/interpretation/index.js +365 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.d.ts +5 -0
- package/dist/interpretation/siLanguage.js +24 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +100 -11
- 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.d.ts +57 -4
- package/dist/locus-info/index.js +425 -84
- 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.d.ts +66 -6
- package/dist/locus-info/parser.js +253 -80
- 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.d.ts +2 -0
- package/dist/media/index.js +107 -319
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.d.ts +38 -53
- 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.d.ts +234 -230
- package/dist/mediaQualityMetrics/config.js +302 -498
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.d.ts +88 -0
- package/dist/meeting/in-meeting-actions.js +94 -3
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.d.ts +591 -494
- package/dist/meeting/index.js +4728 -2990
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/meeting/locusMediaRequest.js +291 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.d.ts +93 -25
- package/dist/meeting/muteState.js +224 -133
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.d.ts +82 -47
- package/dist/meeting/request.js +297 -199
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.d.ts +11 -0
- 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.d.ts +102 -1
- package/dist/meeting/util.js +605 -435
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +3 -4
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.d.ts +13 -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.d.ts +31 -1
- package/dist/meeting-info/meeting-info-v2.js +200 -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 +39 -41
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.d.ts +17 -0
- package/dist/meetings/collection.js +42 -4
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.d.ts +103 -21
- package/dist/meetings/index.js +486 -124
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.d.ts +4 -0
- 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.d.ts +14 -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.d.ts +32 -0
- 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.d.ts +5 -0
- package/dist/members/collection.js +11 -2
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.d.ts +57 -2
- package/dist/members/index.js +174 -10
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.d.ts +73 -9
- package/dist/members/request.js +108 -41
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.d.ts +25 -0
- package/dist/members/types.js +14 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.d.ts +214 -1
- package/dist/members/util.js +327 -234
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.d.ts +15 -6
- package/dist/metrics/constants.js +17 -9
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.d.ts +4 -111
- package/dist/metrics/index.js +4 -452
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.d.ts +118 -0
- package/dist/multistream/mediaRequestManager.js +344 -0
- package/dist/multistream/mediaRequestManager.js.map +1 -0
- package/dist/multistream/receiveSlot.d.ts +68 -0
- package/dist/multistream/receiveSlot.js +200 -0
- package/dist/multistream/receiveSlot.js.map +1 -0
- package/dist/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/multistream/receiveSlotManager.js +174 -0
- package/dist/multistream/receiveSlotManager.js.map +1 -0
- package/dist/multistream/remoteMedia.d.ts +72 -0
- package/dist/multistream/remoteMedia.js +268 -0
- package/dist/multistream/remoteMedia.js.map +1 -0
- package/dist/multistream/remoteMediaGroup.d.ts +47 -0
- package/dist/multistream/remoteMediaGroup.js +267 -0
- package/dist/multistream/remoteMediaGroup.js.map +1 -0
- package/dist/multistream/remoteMediaManager.d.ts +285 -0
- package/dist/multistream/remoteMediaManager.js +1211 -0
- package/dist/multistream/remoteMediaManager.js.map +1 -0
- package/dist/multistream/sendSlotManager.d.ts +61 -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.d.ts +62 -7
- package/dist/reachability/index.js +265 -72
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.d.ts +7 -3
- package/dist/reachability/request.js +18 -10
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/constants.d.ts +3 -0
- package/dist/reactions/constants.js +12 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.d.ts +2 -2
- package/dist/reactions/reactions.js +4 -6
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.d.ts +23 -3
- package/dist/reactions/reactions.type.js +21 -23
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.d.ts +32 -8
- package/dist/reconnection-manager/index.js +282 -231
- 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.d.ts +15 -1
- package/dist/recording-controller/index.js +57 -46
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.d.ts +5 -4
- package/dist/recording-controller/util.js +10 -10
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.d.ts +9 -47
- package/dist/roap/index.js +101 -235
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.d.ts +18 -12
- package/dist/roap/request.js +126 -180
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.d.ts +27 -16
- package/dist/roap/turnDiscovery.js +115 -105
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.d.ts +4 -0
- package/dist/rtcMetrics/constants.js +11 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.d.ts +54 -0
- package/dist/rtcMetrics/index.js +140 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/global.d.ts +1 -83
- package/dist/statsAnalyzer/global.js +2 -85
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.d.ts +28 -30
- package/dist/statsAnalyzer/index.js +374 -509
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +8 -6
- package/dist/statsAnalyzer/mqaUtil.js +116 -83
- 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.d.ts +16 -0
- package/dist/webinar/collection.js +43 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.d.ts +5 -0
- package/dist/webinar/index.js +68 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +35 -26
- 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 +5 -7
- package/src/constants.ts +271 -93
- package/src/controls-options-manager/enums.ts +12 -0
- package/src/controls-options-manager/index.ts +116 -21
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +294 -14
- package/src/index.ts +40 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +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 +244 -377
- package/src/meeting/in-meeting-actions.ts +176 -0
- package/src/meeting/index.ts +3895 -2448
- 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 +163 -13
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +28 -28
- package/src/meetings/collection.ts +33 -0
- package/src/meetings/index.ts +486 -126
- 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 +15 -6
- 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 +168 -156
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +98 -241
- 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 +124 -0
- package/src/statsAnalyzer/global.ts +1 -84
- package/src/statsAnalyzer/index.ts +413 -642
- package/src/statsAnalyzer/mqaUtil.ts +111 -114
- 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 +290 -0
- package/test/unit/spec/media/properties.ts +75 -84
- package/test/unit/spec/meeting/in-meeting-actions.ts +86 -0
- package/test/unit/spec/meeting/index.js +8181 -2770
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +409 -213
- 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 +527 -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 +1284 -217
- 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 +499 -29
- 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 +162 -24
- 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 -76
- 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 +93 -0
- package/test/unit/spec/stats-analyzer/index.js +188 -174
- 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.d.ts +0 -42
- package/dist/meeting/effectsState.js +0 -260
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.d.ts +0 -169
- package/dist/metrics/config.js +0 -289
- package/dist/metrics/config.js.map +0 -1
- package/dist/peer-connection-manager/index.d.ts +0 -6
- package/dist/peer-connection-manager/index.js +0 -671
- package/dist/peer-connection-manager/index.js.map +0 -1
- package/dist/peer-connection-manager/util.d.ts +0 -6
- package/dist/peer-connection-manager/util.js +0 -110
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/dist/roap/collection.d.ts +0 -10
- package/dist/roap/collection.js +0 -63
- package/dist/roap/collection.js.map +0 -1
- package/dist/roap/handler.d.ts +0 -47
- package/dist/roap/handler.js +0 -279
- package/dist/roap/handler.js.map +0 -1
- package/dist/roap/state.d.ts +0 -9
- package/dist/roap/state.js +0 -127
- package/dist/roap/state.js.map +0 -1
- package/dist/roap/util.d.ts +0 -2
- 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,23 +12,39 @@ 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
|
|
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"));
|
|
26
|
+
/*!
|
|
27
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
/* eslint-disable class-methods-use-this */
|
|
31
|
+
/* globals window */
|
|
32
|
+
|
|
24
33
|
var DEFAULT_TIMEOUT = 3000;
|
|
25
34
|
var VIDEO_MESH_TIMEOUT = 1000;
|
|
26
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
|
|
27
43
|
/**
|
|
28
44
|
* @class Reachability
|
|
29
45
|
* @export
|
|
30
46
|
*/
|
|
31
|
-
var Reachability = /*#__PURE__*/function () {
|
|
47
|
+
var Reachability = exports.default = /*#__PURE__*/function () {
|
|
32
48
|
/**
|
|
33
49
|
* Creates an instance of Reachability.
|
|
34
50
|
* @param {object} webex
|
|
@@ -36,6 +52,7 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
36
52
|
*/
|
|
37
53
|
function Reachability(webex) {
|
|
38
54
|
(0, _classCallCheck2.default)(this, Reachability);
|
|
55
|
+
(0, _defineProperty2.default)(this, "namespace", _constants.REACHABILITY.namespace);
|
|
39
56
|
(0, _defineProperty2.default)(this, "webex", void 0);
|
|
40
57
|
(0, _defineProperty2.default)(this, "reachabilityRequest", void 0);
|
|
41
58
|
(0, _defineProperty2.default)(this, "clusterLatencyResults", void 0);
|
|
@@ -69,80 +86,210 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
69
86
|
*/
|
|
70
87
|
(0, _createClass2.default)(Reachability, [{
|
|
71
88
|
key: "gatherReachability",
|
|
72
|
-
value: function () {
|
|
89
|
+
value: (function () {
|
|
73
90
|
var _gatherReachability = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
74
|
-
var
|
|
75
|
-
var clusters, results;
|
|
91
|
+
var _yield$this$reachabil, clusters, joinCookie, results;
|
|
76
92
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
77
93
|
while (1) switch (_context.prev = _context.next) {
|
|
78
94
|
case 0:
|
|
79
95
|
this.setup();
|
|
80
96
|
|
|
81
97
|
// Remove stored reachability results to ensure no stale data
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
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);
|
|
89
104
|
case 5:
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
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;
|
|
98
112
|
_context.next = 13;
|
|
99
113
|
return this.performReachabilityCheck(clusters);
|
|
100
114
|
case 13:
|
|
101
115
|
results = _context.sent;
|
|
102
|
-
|
|
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:
|
|
103
122
|
_loggerProxy.default.logger.log('Reachability:index#gatherReachability --> Reachability checks completed');
|
|
104
123
|
return _context.abrupt("return", results);
|
|
105
|
-
case
|
|
106
|
-
_context.prev =
|
|
107
|
-
_context.t0 = _context["catch"](
|
|
124
|
+
case 22:
|
|
125
|
+
_context.prev = 22;
|
|
126
|
+
_context.t0 = _context["catch"](5);
|
|
108
127
|
_loggerProxy.default.logger.error("Reachability:index#gatherReachability --> Error in calling getClusters(): ".concat(_context.t0));
|
|
109
128
|
return _context.abrupt("return", {});
|
|
110
|
-
case
|
|
129
|
+
case 26:
|
|
111
130
|
case "end":
|
|
112
131
|
return _context.stop();
|
|
113
132
|
}
|
|
114
|
-
}, _callee, this, [[
|
|
133
|
+
}, _callee, this, [[5, 22]]);
|
|
115
134
|
}));
|
|
116
135
|
function gatherReachability() {
|
|
117
136
|
return _gatherReachability.apply(this, arguments);
|
|
118
137
|
}
|
|
119
138
|
return gatherReachability;
|
|
120
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
|
+
}()
|
|
121
250
|
/**
|
|
122
251
|
* fetches reachability data and checks for cluster reachability
|
|
123
252
|
* @returns {boolean}
|
|
124
253
|
* @public
|
|
125
254
|
* @memberof Reachability
|
|
126
255
|
*/
|
|
256
|
+
)
|
|
127
257
|
}, {
|
|
128
|
-
key: "
|
|
129
|
-
value: function
|
|
130
|
-
var
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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);
|
|
142
290
|
}
|
|
143
|
-
return
|
|
144
|
-
}
|
|
145
|
-
|
|
291
|
+
return isAnyPublicClusterReachable;
|
|
292
|
+
}()
|
|
146
293
|
/**
|
|
147
294
|
* Generate peerConnection config settings
|
|
148
295
|
* @param {object} cluster
|
|
@@ -150,10 +297,11 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
150
297
|
* @private
|
|
151
298
|
* @memberof Reachability
|
|
152
299
|
*/
|
|
300
|
+
)
|
|
153
301
|
}, {
|
|
154
302
|
key: "buildPeerConnectionConfig",
|
|
155
303
|
value: function buildPeerConnectionConfig(cluster) {
|
|
156
|
-
var iceServers = (0,
|
|
304
|
+
var iceServers = (0, _lodash.uniq)(cluster.udp).map(function (url) {
|
|
157
305
|
return {
|
|
158
306
|
username: '',
|
|
159
307
|
credential: '',
|
|
@@ -219,10 +367,10 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
219
367
|
var _this = this;
|
|
220
368
|
var clusters = (0, _toConsumableArray2.default)((0, _keys.default)(clusterList));
|
|
221
369
|
clusters = clusters.map( /*#__PURE__*/function () {
|
|
222
|
-
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
370
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(key) {
|
|
223
371
|
var cluster, config, peerConnection, description;
|
|
224
|
-
return _regenerator.default.wrap(function
|
|
225
|
-
while (1) switch (
|
|
372
|
+
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
373
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
226
374
|
case 0:
|
|
227
375
|
cluster = clusterList[key];
|
|
228
376
|
config = _this.buildPeerConnectionConfig(cluster);
|
|
@@ -230,29 +378,29 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
230
378
|
key: key,
|
|
231
379
|
config: config
|
|
232
380
|
});
|
|
233
|
-
|
|
381
|
+
_context5.next = 5;
|
|
234
382
|
return peerConnection.createOffer({
|
|
235
383
|
offerToReceiveAudio: true
|
|
236
384
|
});
|
|
237
385
|
case 5:
|
|
238
|
-
description =
|
|
386
|
+
description = _context5.sent;
|
|
239
387
|
// @ts-ignore
|
|
240
388
|
peerConnection.begin = (0, _now.default)();
|
|
241
389
|
peerConnection.setLocalDescription(description);
|
|
242
|
-
return
|
|
390
|
+
return _context5.abrupt("return", _this.iceGatheringState(peerConnection, cluster.isVideoMesh).catch(function (iceGatheringStateError) {
|
|
243
391
|
_loggerProxy.default.logger.log("Reachability:index#getLocalSDPForClusters --> Error in getLocalSDP : ".concat(iceGatheringStateError));
|
|
244
392
|
}));
|
|
245
393
|
case 9:
|
|
246
394
|
case "end":
|
|
247
|
-
return
|
|
395
|
+
return _context5.stop();
|
|
248
396
|
}
|
|
249
|
-
},
|
|
397
|
+
}, _callee5);
|
|
250
398
|
}));
|
|
251
399
|
return function (_x) {
|
|
252
400
|
return _ref.apply(this, arguments);
|
|
253
401
|
};
|
|
254
402
|
}());
|
|
255
|
-
return _promise.default.all(clusters).then(this.
|
|
403
|
+
return _promise.default.all(clusters).then(this.parseIceResultsToInternalReachabilityResults).then(function (reachabilityLatencyResults) {
|
|
256
404
|
_this.logUnreachableClusters();
|
|
257
405
|
|
|
258
406
|
// return results
|
|
@@ -323,6 +471,8 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
323
471
|
var elapsed = _this3.getElapsedTime(peerConnection);
|
|
324
472
|
_loggerProxy.default.logger.log( // @ts-ignore
|
|
325
473
|
"Reachability:index#onIceCandidate --> Successfully pinged ".concat(peerConnection.key, ":"), elapsed);
|
|
474
|
+
// order is important
|
|
475
|
+
_this3.addPublicIP(peerConnection, e.candidate.address);
|
|
326
476
|
_this3.setLatencyAndClose(peerConnection, elapsed);
|
|
327
477
|
}
|
|
328
478
|
};
|
|
@@ -334,16 +484,18 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
334
484
|
* speed.
|
|
335
485
|
* @private
|
|
336
486
|
* @param {RTCPeerConnection} peerConnection
|
|
337
|
-
* @param {
|
|
487
|
+
* @param {boolean} isVideoMesh
|
|
338
488
|
* @returns {Promise}
|
|
339
489
|
*/
|
|
340
490
|
}, {
|
|
341
491
|
key: "iceGatheringState",
|
|
342
|
-
value: function iceGatheringState(peerConnection,
|
|
492
|
+
value: function iceGatheringState(peerConnection, isVideoMesh) {
|
|
343
493
|
var _this4 = this;
|
|
344
494
|
var ELAPSED = 'elapsed';
|
|
495
|
+
var timeout = isVideoMesh ? VIDEO_MESH_TIMEOUT : DEFAULT_TIMEOUT;
|
|
345
496
|
return new _promise.default(function (resolve) {
|
|
346
497
|
var peerConnectionProxy = new window.Proxy(peerConnection, {
|
|
498
|
+
// eslint-disable-next-line require-jsdoc
|
|
347
499
|
get: function get(target, property) {
|
|
348
500
|
var targetMember = target[property];
|
|
349
501
|
if (typeof targetMember === 'function') {
|
|
@@ -354,9 +506,12 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
354
506
|
set: function set(target, property, value) {
|
|
355
507
|
// only intercept elapsed property
|
|
356
508
|
if (property === ELAPSED) {
|
|
357
|
-
// @ts-ignore
|
|
358
509
|
resolve({
|
|
510
|
+
// @ts-ignore
|
|
359
511
|
clusterId: peerConnection.key,
|
|
512
|
+
isVideoMesh: isVideoMesh,
|
|
513
|
+
// @ts-ignore
|
|
514
|
+
publicIPs: target.publicIPs,
|
|
360
515
|
elapsed: value
|
|
361
516
|
});
|
|
362
517
|
return true;
|
|
@@ -378,6 +533,8 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
378
533
|
|
|
379
534
|
// Close any open peerConnections
|
|
380
535
|
if (peerConnectionProxy.connectionState !== CLOSED) {
|
|
536
|
+
// order is important
|
|
537
|
+
_this4.addPublicIP(peerConnectionProxy, null);
|
|
381
538
|
_this4.setLatencyAndClose(peerConnectionProxy, null);
|
|
382
539
|
}
|
|
383
540
|
}, timeout);
|
|
@@ -401,32 +558,45 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
401
558
|
|
|
402
559
|
/**
|
|
403
560
|
* Calculates time to establish connection
|
|
404
|
-
* @param {
|
|
561
|
+
* @param {Array<ICECandidateResult>} iceResults iceResults
|
|
405
562
|
* @returns {object} reachabilityMap
|
|
406
|
-
* @
|
|
563
|
+
* @protected
|
|
407
564
|
* @memberof Reachability
|
|
408
565
|
*/
|
|
409
566
|
}, {
|
|
410
|
-
key: "
|
|
411
|
-
value: function
|
|
567
|
+
key: "parseIceResultsToInternalReachabilityResults",
|
|
568
|
+
value: function parseIceResultsToInternalReachabilityResults(iceResults) {
|
|
412
569
|
var reachabilityMap = {};
|
|
413
570
|
iceResults.forEach(function (_ref2) {
|
|
414
571
|
var clusterId = _ref2.clusterId,
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
572
|
+
isVideoMesh = _ref2.isVideoMesh,
|
|
573
|
+
elapsed = _ref2.elapsed,
|
|
574
|
+
publicIPs = _ref2.publicIPs;
|
|
575
|
+
var latencyResult = {};
|
|
576
|
+
if (!elapsed) {
|
|
577
|
+
(0, _assign.default)(latencyResult, {
|
|
419
578
|
reachable: 'false'
|
|
420
|
-
};
|
|
579
|
+
});
|
|
421
580
|
} else {
|
|
422
|
-
latencyResult
|
|
581
|
+
(0, _assign.default)(latencyResult, {
|
|
423
582
|
reachable: 'true',
|
|
424
583
|
latencyInMilliseconds: elapsed.toString()
|
|
425
|
-
};
|
|
584
|
+
});
|
|
585
|
+
}
|
|
586
|
+
if (publicIPs) {
|
|
587
|
+
(0, _assign.default)(latencyResult, {
|
|
588
|
+
clientMediaIPs: publicIPs
|
|
589
|
+
});
|
|
426
590
|
}
|
|
427
591
|
reachabilityMap[clusterId] = {
|
|
428
592
|
udp: latencyResult,
|
|
429
|
-
tcp:
|
|
593
|
+
tcp: {
|
|
594
|
+
untested: 'true'
|
|
595
|
+
},
|
|
596
|
+
xtls: {
|
|
597
|
+
untested: 'true'
|
|
598
|
+
},
|
|
599
|
+
isVideoMesh: isVideoMesh
|
|
430
600
|
};
|
|
431
601
|
});
|
|
432
602
|
return reachabilityMap;
|
|
@@ -435,7 +605,7 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
435
605
|
/**
|
|
436
606
|
* fetches reachability data
|
|
437
607
|
* @param {object} clusterList
|
|
438
|
-
* @returns {Promise<
|
|
608
|
+
* @returns {Promise<InternalReachabilityResults>} reachability check results
|
|
439
609
|
* @private
|
|
440
610
|
* @memberof Reachability
|
|
441
611
|
*/
|
|
@@ -462,6 +632,31 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
462
632
|
});
|
|
463
633
|
}
|
|
464
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
|
+
|
|
465
660
|
/**
|
|
466
661
|
* Records latency and closes the peerConnection
|
|
467
662
|
* @param {RTCPeerConnection} peerConnection
|
|
@@ -473,14 +668,13 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
473
668
|
}, {
|
|
474
669
|
key: "setLatencyAndClose",
|
|
475
670
|
value: function setLatencyAndClose(peerConnection, elapsed) {
|
|
476
|
-
var _intialState;
|
|
477
671
|
var REACHABLE = 'reachable';
|
|
478
672
|
var UNREACHABLE = 'unreachable';
|
|
479
673
|
var CLOSED = _constants.CONNECTION_STATE.CLOSED;
|
|
480
674
|
// @ts-ignore
|
|
481
675
|
var key = peerConnection.key;
|
|
482
676
|
var resultKey = elapsed === null ? UNREACHABLE : REACHABLE;
|
|
483
|
-
var intialState = (
|
|
677
|
+
var intialState = (0, _defineProperty2.default)((0, _defineProperty2.default)({}, REACHABLE, 0), UNREACHABLE, 0);
|
|
484
678
|
if (peerConnection.connectionState === CLOSED) {
|
|
485
679
|
_loggerProxy.default.logger.log("Reachability:index#setLatencyAndClose --> Attempting to set latency of ".concat(elapsed, " on closed peerConnection."));
|
|
486
680
|
return;
|
|
@@ -510,5 +704,4 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
510
704
|
}]);
|
|
511
705
|
return Reachability;
|
|
512
706
|
}();
|
|
513
|
-
exports.default = Reachability;
|
|
514
707
|
//# sourceMappingURL=index.js.map
|