@webex/plugin-meetings 2.60.1-next.9 → 2.60.2
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 +8 -58
- package/dist/common/browser-detection.js +3 -2
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +4 -3
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +2 -1
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +2 -1
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +2 -1
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +2 -1
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +2 -1
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.js +4 -3
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +2 -1
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +2 -1
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/{reclaim-host-role-errors.js → reclaim-host-role-error.js} +11 -7
- package/dist/common/errors/reclaim-host-role-error.js.map +1 -0
- package/dist/common/errors/reconnection-in-progress.js +2 -1
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +2 -1
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +2 -1
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.d.ts +8 -20
- package/dist/common/errors/webex-errors.js +28 -48
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +2 -1
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +2 -1
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +2 -1
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +2 -1
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +2 -1
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +2 -1
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +3 -2
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.d.ts +1 -3
- package/dist/common/logs/request.js +5 -8
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.d.ts +7 -9
- package/dist/common/queue.js +9 -22
- package/dist/common/queue.js.map +1 -1
- package/dist/config.d.ts +7 -6
- package/dist/config.js +10 -8
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +100 -234
- package/dist/constants.js +444 -433
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +6 -3
- package/dist/controls-options-manager/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.d.ts +1 -11
- package/dist/controls-options-manager/enums.js +6 -15
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.d.ts +1 -17
- package/dist/controls-options-manager/index.js +38 -127
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/util.d.ts +7 -1
- package/dist/controls-options-manager/util.js +19 -309
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.d.ts +3 -6
- package/dist/index.js +5 -121
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +11 -100
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +4 -3
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +2 -1
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +2 -1
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.d.ts +4 -57
- package/dist/locus-info/index.js +84 -425
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +5 -13
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +3 -58
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.d.ts +6 -66
- package/dist/locus-info/parser.js +80 -253
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +13 -97
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.d.ts +0 -2
- package/dist/media/index.js +319 -107
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.d.ts +53 -38
- package/dist/media/properties.js +153 -96
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +22 -1
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.d.ts +230 -234
- package/dist/mediaQualityMetrics/config.js +498 -302
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/effectsState.d.ts +42 -0
- package/dist/meeting/effectsState.js +260 -0
- package/dist/meeting/effectsState.js.map +1 -0
- package/dist/meeting/in-meeting-actions.d.ts +0 -88
- package/dist/meeting/in-meeting-actions.js +3 -94
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.d.ts +520 -705
- package/dist/meeting/index.js +3083 -5041
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.d.ts +25 -93
- package/dist/meeting/muteState.js +133 -224
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.d.ts +47 -82
- package/dist/meeting/request.js +199 -304
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/state.js +2 -1
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.d.ts +1 -118
- package/dist/meeting/util.js +435 -676
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +4 -3
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.d.ts +1 -13
- package/dist/meeting-info/index.js +7 -74
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.d.ts +1 -31
- package/dist/meeting-info/meeting-info-v2.js +63 -200
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +2 -1
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +3 -2
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +41 -39
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.d.ts +0 -17
- package/dist/meetings/collection.js +4 -42
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.d.ts +20 -114
- package/dist/meetings/index.js +133 -540
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +3 -4
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +6 -107
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.d.ts +1 -13
- package/dist/member/index.js +2 -45
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.js +4 -3
- package/dist/member/member.types.js.map +1 -1
- package/dist/member/util.js +29 -120
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.d.ts +0 -5
- package/dist/members/collection.js +2 -11
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.d.ts +11 -56
- package/dist/members/index.js +47 -174
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.d.ts +11 -67
- package/dist/members/request.js +54 -102
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +4 -3
- package/dist/members/types.js.map +1 -1
- package/dist/members/util.d.ts +1 -214
- package/dist/members/util.js +284 -327
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.d.ts +169 -0
- package/dist/metrics/config.js +289 -0
- package/dist/metrics/config.js.map +1 -0
- package/dist/metrics/constants.d.ts +6 -15
- package/dist/metrics/constants.js +9 -17
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.d.ts +111 -4
- package/dist/metrics/index.js +452 -4
- package/dist/metrics/index.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +4 -5
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/peer-connection-manager/index.d.ts +6 -0
- package/dist/peer-connection-manager/index.js +671 -0
- package/dist/peer-connection-manager/index.js.map +1 -0
- package/dist/peer-connection-manager/util.d.ts +6 -0
- package/dist/peer-connection-manager/util.js +110 -0
- package/dist/peer-connection-manager/util.js.map +1 -0
- package/dist/personal-meeting-room/index.js +3 -2
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +3 -2
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +2 -1
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.d.ts +95 -61
- package/dist/reachability/index.js +392 -304
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.d.ts +3 -7
- package/dist/reachability/request.js +10 -18
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/reactions.d.ts +2 -2
- package/dist/reactions/reactions.js +6 -4
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.d.ts +3 -23
- package/dist/reactions/reactions.type.js +23 -21
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.d.ts +8 -32
- package/dist/reconnection-manager/index.js +232 -285
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +5 -4
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.d.ts +1 -15
- package/dist/recording-controller/index.js +46 -57
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.d.ts +4 -5
- package/dist/recording-controller/util.js +10 -10
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/collection.d.ts +10 -0
- package/dist/roap/collection.js +63 -0
- package/dist/roap/collection.js.map +1 -0
- package/dist/roap/handler.d.ts +47 -0
- package/dist/roap/handler.js +279 -0
- package/dist/roap/handler.js.map +1 -0
- package/dist/roap/index.d.ts +47 -9
- package/dist/roap/index.js +238 -100
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.d.ts +12 -18
- package/dist/roap/request.js +180 -126
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/state.d.ts +9 -0
- package/dist/roap/state.js +127 -0
- package/dist/roap/state.js.map +1 -0
- package/dist/roap/turnDiscovery.d.ts +16 -27
- package/dist/roap/turnDiscovery.js +105 -115
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/roap/util.d.ts +2 -0
- package/dist/roap/util.js +76 -0
- package/dist/roap/util.js.map +1 -0
- package/dist/statsAnalyzer/global.d.ts +83 -1
- package/dist/statsAnalyzer/global.js +85 -2
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.d.ts +30 -50
- package/dist/statsAnalyzer/index.js +511 -436
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +6 -8
- package/dist/statsAnalyzer/mqaUtil.js +90 -130
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +2 -1
- package/dist/transcription/index.js.map +1 -1
- package/package.json +26 -39
- package/src/common/errors/webex-errors.ts +12 -36
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/logs/request.ts +1 -5
- package/src/common/queue.ts +8 -22
- package/src/config.ts +7 -6
- package/src/constants.ts +100 -265
- package/src/controls-options-manager/enums.ts +0 -12
- package/src/controls-options-manager/index.ts +21 -116
- package/src/controls-options-manager/util.ts +14 -294
- package/src/index.js +15 -0
- package/src/locus-info/controlsUtils.ts +0 -110
- package/src/locus-info/index.ts +61 -450
- package/src/locus-info/infoUtils.ts +2 -14
- package/src/locus-info/mediaSharesUtils.ts +0 -64
- package/src/locus-info/parser.ts +47 -258
- package/src/locus-info/selfUtils.ts +2 -85
- package/src/media/index.ts +370 -153
- package/src/media/properties.ts +136 -106
- package/src/media/util.ts +21 -0
- package/src/mediaQualityMetrics/config.ts +377 -244
- package/src/meeting/effectsState.ts +209 -0
- package/src/meeting/in-meeting-actions.ts +0 -176
- package/src/meeting/index.ts +2581 -4306
- package/src/meeting/muteState.ts +138 -224
- package/src/meeting/request.ts +127 -214
- package/src/meeting/util.ts +423 -687
- package/src/meeting-info/index.ts +8 -81
- package/src/meeting-info/meeting-info-v2.ts +13 -163
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +28 -28
- package/src/meetings/collection.ts +0 -33
- package/src/meetings/index.ts +136 -531
- package/src/meetings/request.ts +0 -2
- package/src/meetings/util.ts +5 -116
- package/src/member/index.ts +1 -43
- package/src/member/util.ts +28 -125
- package/src/members/collection.ts +0 -8
- package/src/members/index.ts +52 -187
- package/src/members/request.ts +27 -87
- package/src/members/util.ts +291 -332
- package/src/metrics/config.ts +485 -0
- package/src/metrics/constants.ts +6 -15
- package/src/metrics/index.ts +471 -1
- package/src/networkQualityMonitor/index.ts +6 -6
- package/src/peer-connection-manager/index.ts +847 -0
- package/src/peer-connection-manager/util.ts +119 -0
- package/src/reachability/index.ts +347 -246
- package/src/reachability/request.ts +8 -17
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +4 -30
- package/src/reconnection-manager/index.ts +156 -168
- package/src/recording-controller/index.ts +3 -20
- package/src/recording-controller/util.ts +9 -26
- package/src/roap/collection.ts +62 -0
- package/src/roap/handler.ts +294 -0
- package/src/roap/index.ts +241 -96
- package/src/roap/request.ts +148 -74
- package/src/roap/state.ts +156 -0
- package/src/roap/turnDiscovery.ts +56 -62
- package/src/roap/util.ts +100 -0
- package/src/statsAnalyzer/global.ts +84 -1
- package/src/statsAnalyzer/index.ts +645 -479
- package/src/statsAnalyzer/mqaUtil.ts +126 -128
- package/test/integration/spec/journey.js +264 -320
- package/test/integration/spec/space-meeting.js +4 -77
- package/test/unit/spec/common/queue.js +2 -31
- package/test/unit/spec/controls-options-manager/index.js +0 -163
- package/test/unit/spec/controls-options-manager/util.js +60 -576
- package/test/unit/spec/fixture/locus.js +0 -1
- package/test/unit/spec/locus-info/controlsUtils.js +30 -323
- package/test/unit/spec/locus-info/index.js +15 -1437
- package/test/unit/spec/locus-info/infoUtils.js +16 -54
- package/test/unit/spec/locus-info/lib/SeqCmp.json +0 -16
- package/test/unit/spec/locus-info/lib/selfConstant.js +0 -48
- package/test/unit/spec/locus-info/parser.js +35 -116
- package/test/unit/spec/locus-info/selfUtils.js +0 -275
- package/test/unit/spec/media/properties.ts +84 -75
- package/test/unit/spec/meeting/effectsState.js +281 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +0 -86
- package/test/unit/spec/meeting/index.js +2313 -8384
- package/test/unit/spec/meeting/muteState.js +213 -409
- package/test/unit/spec/meeting/request.js +43 -523
- package/test/unit/spec/meeting/utils.js +24 -834
- package/test/unit/spec/meeting-info/meetinginfov2.js +5 -527
- package/test/unit/spec/meeting-info/utilv2.js +0 -21
- package/test/unit/spec/meetings/collection.js +0 -26
- package/test/unit/spec/meetings/index.js +232 -1445
- package/test/unit/spec/meetings/utils.js +2 -202
- package/test/unit/spec/member/index.js +9 -32
- package/test/unit/spec/member/util.js +61 -499
- package/test/unit/spec/members/index.js +5 -394
- package/test/unit/spec/members/request.js +27 -206
- package/test/unit/spec/members/utils.js +38 -173
- package/test/unit/spec/metrics/index.js +50 -1
- package/test/unit/spec/networkQualityMonitor/index.js +4 -4
- package/test/unit/spec/peerconnection-manager/index.js +218 -0
- package/test/unit/spec/peerconnection-manager/utils.js +49 -0
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -0
- package/test/unit/spec/reachability/index.ts +24 -532
- package/test/unit/spec/reconnection-manager/index.js +24 -163
- package/test/unit/spec/recording-controller/index.js +218 -293
- package/test/unit/spec/recording-controller/util.js +96 -223
- package/test/unit/spec/roap/index.ts +77 -187
- package/test/unit/spec/roap/turnDiscovery.ts +48 -86
- package/test/unit/spec/roap/util.js +30 -0
- package/test/unit/spec/stats-analyzer/index.js +165 -644
- package/test/utils/testUtils.js +45 -0
- package/test/utils/webex-config.js +0 -4
- package/test/utils/webex-test-users.js +3 -7
- package/dist/annotation/annotation.types.d.ts +0 -42
- package/dist/annotation/annotation.types.js +0 -7
- package/dist/annotation/annotation.types.js.map +0 -1
- package/dist/annotation/constants.d.ts +0 -31
- package/dist/annotation/constants.js +0 -41
- package/dist/annotation/constants.js.map +0 -1
- package/dist/annotation/index.d.ts +0 -117
- package/dist/annotation/index.js +0 -357
- package/dist/annotation/index.js.map +0 -1
- package/dist/breakouts/breakout.d.ts +0 -8
- package/dist/breakouts/breakout.js +0 -215
- package/dist/breakouts/breakout.js.map +0 -1
- package/dist/breakouts/collection.d.ts +0 -5
- package/dist/breakouts/collection.js +0 -22
- package/dist/breakouts/collection.js.map +0 -1
- package/dist/breakouts/edit-lock-error.d.ts +0 -15
- package/dist/breakouts/edit-lock-error.js +0 -51
- package/dist/breakouts/edit-lock-error.js.map +0 -1
- package/dist/breakouts/events.d.ts +0 -8
- package/dist/breakouts/events.js +0 -44
- package/dist/breakouts/events.js.map +0 -1
- package/dist/breakouts/index.d.ts +0 -5
- package/dist/breakouts/index.js +0 -1047
- package/dist/breakouts/index.js.map +0 -1
- package/dist/breakouts/request.d.ts +0 -22
- package/dist/breakouts/request.js +0 -77
- package/dist/breakouts/request.js.map +0 -1
- package/dist/breakouts/utils.d.ts +0 -15
- package/dist/breakouts/utils.js +0 -64
- package/dist/breakouts/utils.js.map +0 -1
- package/dist/common/errors/no-meeting-info.d.ts +0 -14
- package/dist/common/errors/no-meeting-info.js +0 -50
- package/dist/common/errors/no-meeting-info.js.map +0 -1
- package/dist/common/errors/reclaim-host-role-errors.js.map +0 -1
- package/dist/controls-options-manager/types.d.ts +0 -43
- package/dist/controls-options-manager/types.js +0 -7
- package/dist/controls-options-manager/types.js.map +0 -1
- package/dist/interceptors/index.d.ts +0 -2
- package/dist/interceptors/index.js +0 -15
- package/dist/interceptors/index.js.map +0 -1
- package/dist/interceptors/locusRetry.d.ts +0 -27
- package/dist/interceptors/locusRetry.js +0 -94
- package/dist/interceptors/locusRetry.js.map +0 -1
- package/dist/interpretation/collection.d.ts +0 -5
- package/dist/interpretation/collection.js +0 -22
- package/dist/interpretation/collection.js.map +0 -1
- package/dist/interpretation/index.d.ts +0 -5
- package/dist/interpretation/index.js +0 -365
- package/dist/interpretation/index.js.map +0 -1
- package/dist/interpretation/siLanguage.d.ts +0 -5
- package/dist/interpretation/siLanguage.js +0 -24
- package/dist/interpretation/siLanguage.js.map +0 -1
- package/dist/meeting/locusMediaRequest.d.ts +0 -74
- package/dist/meeting/locusMediaRequest.js +0 -291
- package/dist/meeting/locusMediaRequest.js.map +0 -1
- package/dist/meeting/request.type.d.ts +0 -11
- package/dist/meeting/request.type.js +0 -7
- package/dist/meeting/request.type.js.map +0 -1
- package/dist/meeting/voicea-meeting.d.ts +0 -20
- package/dist/meeting/voicea-meeting.js +0 -201
- package/dist/meeting/voicea-meeting.js.map +0 -1
- package/dist/meetings/meetings.types.d.ts +0 -4
- package/dist/meetings/meetings.types.js +0 -7
- package/dist/meetings/meetings.types.js.map +0 -1
- package/dist/member/types.d.ts +0 -32
- package/dist/member/types.js +0 -23
- package/dist/member/types.js.map +0 -1
- package/dist/multistream/mediaRequestManager.d.ts +0 -118
- package/dist/multistream/mediaRequestManager.js +0 -344
- package/dist/multistream/mediaRequestManager.js.map +0 -1
- package/dist/multistream/receiveSlot.d.ts +0 -68
- package/dist/multistream/receiveSlot.js +0 -200
- package/dist/multistream/receiveSlot.js.map +0 -1
- package/dist/multistream/receiveSlotManager.d.ts +0 -56
- package/dist/multistream/receiveSlotManager.js +0 -174
- package/dist/multistream/receiveSlotManager.js.map +0 -1
- package/dist/multistream/remoteMedia.d.ts +0 -72
- package/dist/multistream/remoteMedia.js +0 -268
- package/dist/multistream/remoteMedia.js.map +0 -1
- package/dist/multistream/remoteMediaGroup.d.ts +0 -47
- package/dist/multistream/remoteMediaGroup.js +0 -267
- package/dist/multistream/remoteMediaGroup.js.map +0 -1
- package/dist/multistream/remoteMediaManager.d.ts +0 -285
- package/dist/multistream/remoteMediaManager.js +0 -1211
- package/dist/multistream/remoteMediaManager.js.map +0 -1
- package/dist/multistream/sendSlotManager.d.ts +0 -61
- package/dist/multistream/sendSlotManager.js +0 -236
- package/dist/multistream/sendSlotManager.js.map +0 -1
- package/dist/reachability/clusterReachability.d.ts +0 -109
- package/dist/reachability/clusterReachability.js +0 -357
- package/dist/reachability/clusterReachability.js.map +0 -1
- package/dist/reachability/util.d.ts +0 -8
- package/dist/reachability/util.js +0 -29
- package/dist/reachability/util.js.map +0 -1
- package/dist/reactions/constants.d.ts +0 -3
- package/dist/reactions/constants.js +0 -12
- package/dist/reactions/constants.js.map +0 -1
- package/dist/rtcMetrics/constants.d.ts +0 -4
- package/dist/rtcMetrics/constants.js +0 -11
- package/dist/rtcMetrics/constants.js.map +0 -1
- package/dist/rtcMetrics/index.d.ts +0 -54
- package/dist/rtcMetrics/index.js +0 -140
- package/dist/rtcMetrics/index.js.map +0 -1
- package/dist/webinar/collection.d.ts +0 -16
- package/dist/webinar/collection.js +0 -43
- package/dist/webinar/collection.js.map +0 -1
- package/dist/webinar/index.d.ts +0 -5
- package/dist/webinar/index.js +0 -68
- package/dist/webinar/index.js.map +0 -1
- package/src/annotation/annotation.types.ts +0 -50
- package/src/annotation/constants.ts +0 -36
- package/src/annotation/index.ts +0 -328
- package/src/breakouts/README.md +0 -220
- package/src/breakouts/breakout.ts +0 -188
- package/src/breakouts/collection.ts +0 -19
- package/src/breakouts/edit-lock-error.ts +0 -25
- package/src/breakouts/events.ts +0 -56
- package/src/breakouts/index.ts +0 -925
- package/src/breakouts/request.ts +0 -55
- package/src/breakouts/utils.ts +0 -57
- package/src/common/errors/no-meeting-info.ts +0 -24
- package/src/controls-options-manager/types.ts +0 -59
- package/src/index.ts +0 -44
- package/src/interceptors/index.ts +0 -3
- package/src/interceptors/locusRetry.ts +0 -67
- package/src/interpretation/README.md +0 -60
- package/src/interpretation/collection.ts +0 -19
- package/src/interpretation/index.ts +0 -332
- package/src/interpretation/siLanguage.ts +0 -18
- package/src/meeting/locusMediaRequest.ts +0 -313
- package/src/meeting/request.type.ts +0 -13
- package/src/meeting/voicea-meeting.ts +0 -161
- package/src/meetings/meetings.types.ts +0 -12
- package/src/member/types.ts +0 -38
- package/src/multistream/mediaRequestManager.ts +0 -440
- package/src/multistream/receiveSlot.ts +0 -184
- package/src/multistream/receiveSlotManager.ts +0 -166
- package/src/multistream/remoteMedia.ts +0 -254
- package/src/multistream/remoteMediaGroup.ts +0 -284
- package/src/multistream/remoteMediaManager.ts +0 -1145
- package/src/multistream/sendSlotManager.ts +0 -170
- package/src/reachability/clusterReachability.ts +0 -320
- package/src/reachability/util.ts +0 -24
- package/src/reactions/constants.ts +0 -4
- package/src/rtcMetrics/constants.ts +0 -3
- package/src/rtcMetrics/index.ts +0 -124
- package/src/webinar/collection.ts +0 -31
- package/src/webinar/index.ts +0 -62
- package/test/integration/spec/converged-space-meetings.js +0 -233
- package/test/unit/spec/annotation/index.ts +0 -418
- package/test/unit/spec/breakouts/breakout.ts +0 -237
- package/test/unit/spec/breakouts/collection.ts +0 -15
- package/test/unit/spec/breakouts/edit-lock-error.ts +0 -30
- package/test/unit/spec/breakouts/events.ts +0 -89
- package/test/unit/spec/breakouts/index.ts +0 -1790
- package/test/unit/spec/breakouts/request.ts +0 -104
- package/test/unit/spec/breakouts/utils.js +0 -72
- package/test/unit/spec/interceptors/locusRetry.ts +0 -131
- package/test/unit/spec/interpretation/collection.ts +0 -15
- package/test/unit/spec/interpretation/index.ts +0 -589
- package/test/unit/spec/interpretation/siLanguage.ts +0 -28
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +0 -32
- package/test/unit/spec/media/index.ts +0 -290
- package/test/unit/spec/meeting/locusMediaRequest.ts +0 -442
- package/test/unit/spec/meeting-info/index.js +0 -300
- package/test/unit/spec/multistream/mediaRequestManager.ts +0 -1418
- package/test/unit/spec/multistream/receiveSlot.ts +0 -163
- package/test/unit/spec/multistream/receiveSlotManager.ts +0 -203
- package/test/unit/spec/multistream/remoteMedia.ts +0 -255
- package/test/unit/spec/multistream/remoteMediaGroup.ts +0 -662
- package/test/unit/spec/multistream/remoteMediaManager.ts +0 -1924
- package/test/unit/spec/multistream/sendSlotManager.ts +0 -242
- package/test/unit/spec/reachability/clusterReachability.ts +0 -279
- package/test/unit/spec/reachability/request.js +0 -68
- package/test/unit/spec/reachability/util.ts +0 -40
- package/test/unit/spec/roap/request.ts +0 -255
- package/test/unit/spec/rtcMetrics/index.ts +0 -93
- package/test/unit/spec/webinar/collection.ts +0 -13
- package/test/unit/spec/webinar/index.ts +0 -60
- package/test/utils/constants.js +0 -9
- package/test/utils/integrationTestUtils.js +0 -46
- /package/dist/common/errors/{reclaim-host-role-errors.d.ts → reclaim-host-role-error.d.ts} +0 -0
- /package/src/common/errors/{reclaim-host-role-errors.ts → reclaim-host-role-error.ts} +0 -0
|
@@ -1,357 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
5
|
-
_Object$defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.ClusterReachability = void 0;
|
|
9
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
10
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
11
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/toConsumableArray"));
|
|
12
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
13
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
14
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
15
|
-
var _common = require("@webex/common");
|
|
16
|
-
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
17
|
-
var _util = require("./util");
|
|
18
|
-
var _constants = require("../constants");
|
|
19
|
-
var DEFAULT_TIMEOUT = 3000;
|
|
20
|
-
var VIDEO_MESH_TIMEOUT = 1000;
|
|
21
|
-
|
|
22
|
-
// result for a specific transport protocol (like udp or tcp)
|
|
23
|
-
|
|
24
|
-
// reachability result for a specific media cluster
|
|
25
|
-
/**
|
|
26
|
-
* A class that handles reachability checks for a single cluster.
|
|
27
|
-
*/
|
|
28
|
-
var ClusterReachability = exports.ClusterReachability = /*#__PURE__*/function () {
|
|
29
|
-
/**
|
|
30
|
-
* Constructor for ClusterReachability
|
|
31
|
-
* @param {string} name cluster name
|
|
32
|
-
* @param {ClusterNode} clusterInfo information about the media cluster
|
|
33
|
-
*/
|
|
34
|
-
function ClusterReachability(name, clusterInfo) {
|
|
35
|
-
(0, _classCallCheck2.default)(this, ClusterReachability);
|
|
36
|
-
(0, _defineProperty2.default)(this, "numUdpUrls", void 0);
|
|
37
|
-
(0, _defineProperty2.default)(this, "numTcpUrls", void 0);
|
|
38
|
-
(0, _defineProperty2.default)(this, "result", void 0);
|
|
39
|
-
(0, _defineProperty2.default)(this, "pc", void 0);
|
|
40
|
-
(0, _defineProperty2.default)(this, "defer", void 0);
|
|
41
|
-
// this defer is resolved once reachability checks for this cluster are completed
|
|
42
|
-
(0, _defineProperty2.default)(this, "startTimestamp", void 0);
|
|
43
|
-
(0, _defineProperty2.default)(this, "isVideoMesh", void 0);
|
|
44
|
-
(0, _defineProperty2.default)(this, "name", void 0);
|
|
45
|
-
this.name = name;
|
|
46
|
-
this.isVideoMesh = clusterInfo.isVideoMesh;
|
|
47
|
-
this.numUdpUrls = clusterInfo.udp.length;
|
|
48
|
-
this.numTcpUrls = clusterInfo.tcp.length;
|
|
49
|
-
this.pc = this.createPeerConnection(clusterInfo);
|
|
50
|
-
this.defer = new _common.Defer();
|
|
51
|
-
this.result = {
|
|
52
|
-
udp: {
|
|
53
|
-
result: 'untested'
|
|
54
|
-
},
|
|
55
|
-
tcp: {
|
|
56
|
-
result: 'untested'
|
|
57
|
-
},
|
|
58
|
-
xtls: {
|
|
59
|
-
result: 'untested'
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Gets total elapsed time, can be called only after start() is called
|
|
66
|
-
* @returns {Number} Milliseconds
|
|
67
|
-
*/
|
|
68
|
-
(0, _createClass2.default)(ClusterReachability, [{
|
|
69
|
-
key: "getElapsedTime",
|
|
70
|
-
value: function getElapsedTime() {
|
|
71
|
-
return Math.round(performance.now() - this.startTimestamp);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Generate peerConnection config settings
|
|
76
|
-
* @param {ClusterNode} cluster
|
|
77
|
-
* @returns {RTCConfiguration} peerConnectionConfig
|
|
78
|
-
*/
|
|
79
|
-
}, {
|
|
80
|
-
key: "buildPeerConnectionConfig",
|
|
81
|
-
value: function buildPeerConnectionConfig(cluster) {
|
|
82
|
-
var udpIceServers = cluster.udp.map(function (url) {
|
|
83
|
-
return {
|
|
84
|
-
username: '',
|
|
85
|
-
credential: '',
|
|
86
|
-
urls: [url]
|
|
87
|
-
};
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
// STUN servers are contacted only using UDP, so in order to test TCP reachability
|
|
91
|
-
// we pretend that Linus is a TURN server, because we can explicitly say "transport=tcp" in TURN urls.
|
|
92
|
-
// We then check for relay candidates to know if TURN-TCP worked (see registerIceCandidateListener()).
|
|
93
|
-
var tcpIceServers = cluster.tcp.map(function (urlString) {
|
|
94
|
-
return {
|
|
95
|
-
username: 'webexturnreachuser',
|
|
96
|
-
credential: 'webexturnreachpwd',
|
|
97
|
-
urls: [(0, _util.convertStunUrlToTurn)(urlString, 'tcp')]
|
|
98
|
-
};
|
|
99
|
-
});
|
|
100
|
-
return {
|
|
101
|
-
iceServers: [].concat((0, _toConsumableArray2.default)(udpIceServers), (0, _toConsumableArray2.default)(tcpIceServers)),
|
|
102
|
-
iceCandidatePoolSize: 0,
|
|
103
|
-
iceTransportPolicy: 'all'
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Creates an RTCPeerConnection
|
|
109
|
-
* @param {ClusterNode} clusterInfo information about the media cluster
|
|
110
|
-
* @returns {RTCPeerConnection} peerConnection
|
|
111
|
-
*/
|
|
112
|
-
}, {
|
|
113
|
-
key: "createPeerConnection",
|
|
114
|
-
value: function createPeerConnection(clusterInfo) {
|
|
115
|
-
try {
|
|
116
|
-
var config = this.buildPeerConnectionConfig(clusterInfo);
|
|
117
|
-
var peerConnection = new RTCPeerConnection(config);
|
|
118
|
-
return peerConnection;
|
|
119
|
-
} catch (peerConnectionError) {
|
|
120
|
-
_loggerProxy.default.logger.warn("Reachability:index#createPeerConnection --> Error creating peerConnection:", peerConnectionError);
|
|
121
|
-
return undefined;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* @returns {ClusterReachabilityResult} reachability result for this cluster
|
|
127
|
-
*/
|
|
128
|
-
}, {
|
|
129
|
-
key: "getResult",
|
|
130
|
-
value: function getResult() {
|
|
131
|
-
return this.result;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Closes the peerConnection
|
|
136
|
-
*
|
|
137
|
-
* @returns {void}
|
|
138
|
-
*/
|
|
139
|
-
}, {
|
|
140
|
-
key: "closePeerConnection",
|
|
141
|
-
value: function closePeerConnection() {
|
|
142
|
-
if (this.pc) {
|
|
143
|
-
this.pc.onicecandidate = null;
|
|
144
|
-
this.pc.onicegatheringstatechange = null;
|
|
145
|
-
this.pc.close();
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Resolves the defer, indicating that reachability checks for this cluster are completed
|
|
151
|
-
*
|
|
152
|
-
* @returns {void}
|
|
153
|
-
*/
|
|
154
|
-
}, {
|
|
155
|
-
key: "finishReachabilityCheck",
|
|
156
|
-
value: function finishReachabilityCheck() {
|
|
157
|
-
this.defer.resolve();
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Adds public IP (client media IPs)
|
|
162
|
-
* @param {string} protocol
|
|
163
|
-
* @param {string} publicIP
|
|
164
|
-
* @returns {void}
|
|
165
|
-
*/
|
|
166
|
-
}, {
|
|
167
|
-
key: "addPublicIP",
|
|
168
|
-
value: function addPublicIP(protocol, publicIP) {
|
|
169
|
-
var result = this.result[protocol];
|
|
170
|
-
if (publicIP) {
|
|
171
|
-
if (result.clientMediaIPs) {
|
|
172
|
-
if (!result.clientMediaIPs.includes(publicIP)) {
|
|
173
|
-
result.clientMediaIPs.push(publicIP);
|
|
174
|
-
}
|
|
175
|
-
} else {
|
|
176
|
-
result.clientMediaIPs = [publicIP];
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* Registers a listener for the iceGatheringStateChange event
|
|
183
|
-
*
|
|
184
|
-
* @returns {void}
|
|
185
|
-
*/
|
|
186
|
-
}, {
|
|
187
|
-
key: "registerIceGatheringStateChangeListener",
|
|
188
|
-
value: function registerIceGatheringStateChangeListener() {
|
|
189
|
-
var _this = this;
|
|
190
|
-
this.pc.onicegatheringstatechange = function () {
|
|
191
|
-
var COMPLETE = _constants.ICE_GATHERING_STATE.COMPLETE;
|
|
192
|
-
if (_this.pc.iceConnectionState === COMPLETE) {
|
|
193
|
-
_this.closePeerConnection();
|
|
194
|
-
_this.finishReachabilityCheck();
|
|
195
|
-
}
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* Checks if we have the results for all the protocols (UDP and TCP)
|
|
201
|
-
*
|
|
202
|
-
* @returns {boolean} true if we have all results, false otherwise
|
|
203
|
-
*/
|
|
204
|
-
}, {
|
|
205
|
-
key: "haveWeGotAllResults",
|
|
206
|
-
value: function haveWeGotAllResults() {
|
|
207
|
-
var _this2 = this;
|
|
208
|
-
return ['udp', 'tcp'].every(function (protocol) {
|
|
209
|
-
return _this2.result[protocol].result === 'reachable' || _this2.result[protocol].result === 'untested';
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
/**
|
|
214
|
-
* Stores the latency in the result for the given protocol and marks it as reachable
|
|
215
|
-
*
|
|
216
|
-
* @param {string} protocol
|
|
217
|
-
* @param {number} latency
|
|
218
|
-
* @returns {void}
|
|
219
|
-
*/
|
|
220
|
-
}, {
|
|
221
|
-
key: "storeLatencyResult",
|
|
222
|
-
value: function storeLatencyResult(protocol, latency) {
|
|
223
|
-
var result = this.result[protocol];
|
|
224
|
-
if (result.latencyInMilliseconds === undefined) {
|
|
225
|
-
_loggerProxy.default.logger.log( // @ts-ignore
|
|
226
|
-
"Reachability:index#storeLatencyResult --> Successfully reached ".concat(this.name, " over ").concat(protocol, ": ").concat(latency, "ms"));
|
|
227
|
-
result.latencyInMilliseconds = latency;
|
|
228
|
-
result.result = 'reachable';
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
/**
|
|
233
|
-
* Registers a listener for the icecandidate event
|
|
234
|
-
*
|
|
235
|
-
* @returns {void}
|
|
236
|
-
*/
|
|
237
|
-
}, {
|
|
238
|
-
key: "registerIceCandidateListener",
|
|
239
|
-
value: function registerIceCandidateListener() {
|
|
240
|
-
var _this3 = this;
|
|
241
|
-
this.pc.onicecandidate = function (e) {
|
|
242
|
-
var CANDIDATE_TYPES = {
|
|
243
|
-
SERVER_REFLEXIVE: 'srflx',
|
|
244
|
-
RELAY: 'relay'
|
|
245
|
-
};
|
|
246
|
-
if (e.candidate) {
|
|
247
|
-
if (e.candidate.type === CANDIDATE_TYPES.SERVER_REFLEXIVE) {
|
|
248
|
-
_this3.storeLatencyResult('udp', _this3.getElapsedTime());
|
|
249
|
-
_this3.addPublicIP('udp', e.candidate.address);
|
|
250
|
-
}
|
|
251
|
-
if (e.candidate.type === CANDIDATE_TYPES.RELAY) {
|
|
252
|
-
_this3.storeLatencyResult('tcp', _this3.getElapsedTime());
|
|
253
|
-
// we don't add public IP for TCP, because in the case of relay candidates
|
|
254
|
-
// e.candidate.address is the TURN server address, not the client's public IP
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
if (_this3.haveWeGotAllResults()) {
|
|
258
|
-
_this3.closePeerConnection();
|
|
259
|
-
_this3.finishReachabilityCheck();
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
/**
|
|
266
|
-
* Starts the process of doing UDP and TCP reachability checks on the media cluster.
|
|
267
|
-
* XTLS reachability checking is not supported.
|
|
268
|
-
*
|
|
269
|
-
* @returns {Promise}
|
|
270
|
-
*/
|
|
271
|
-
}, {
|
|
272
|
-
key: "start",
|
|
273
|
-
value: (function () {
|
|
274
|
-
var _start = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
275
|
-
var offer;
|
|
276
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
277
|
-
while (1) switch (_context.prev = _context.next) {
|
|
278
|
-
case 0:
|
|
279
|
-
if (this.pc) {
|
|
280
|
-
_context.next = 3;
|
|
281
|
-
break;
|
|
282
|
-
}
|
|
283
|
-
_loggerProxy.default.logger.warn("Reachability:ClusterReachability#start --> Error: peerConnection is undefined");
|
|
284
|
-
return _context.abrupt("return", this.result);
|
|
285
|
-
case 3:
|
|
286
|
-
// Initialize this.result as saying that nothing is reachable.
|
|
287
|
-
// It will get updated as we go along and successfully gather ICE candidates.
|
|
288
|
-
this.result.udp = {
|
|
289
|
-
result: this.numUdpUrls > 0 ? 'unreachable' : 'untested'
|
|
290
|
-
};
|
|
291
|
-
this.result.tcp = {
|
|
292
|
-
result: this.numTcpUrls > 0 ? 'unreachable' : 'untested'
|
|
293
|
-
};
|
|
294
|
-
_context.prev = 5;
|
|
295
|
-
_context.next = 8;
|
|
296
|
-
return this.pc.createOffer({
|
|
297
|
-
offerToReceiveAudio: true
|
|
298
|
-
});
|
|
299
|
-
case 8:
|
|
300
|
-
offer = _context.sent;
|
|
301
|
-
this.startTimestamp = performance.now();
|
|
302
|
-
|
|
303
|
-
// not awaiting the next call on purpose, because we're not sending the offer anywhere and there won't be any answer
|
|
304
|
-
// we just need to make this call to trigger the ICE gathering process
|
|
305
|
-
this.pc.setLocalDescription(offer);
|
|
306
|
-
_context.next = 13;
|
|
307
|
-
return this.gatherIceCandidates();
|
|
308
|
-
case 13:
|
|
309
|
-
_context.next = 18;
|
|
310
|
-
break;
|
|
311
|
-
case 15:
|
|
312
|
-
_context.prev = 15;
|
|
313
|
-
_context.t0 = _context["catch"](5);
|
|
314
|
-
_loggerProxy.default.logger.warn("Reachability:ClusterReachability#start --> Error: ", _context.t0);
|
|
315
|
-
case 18:
|
|
316
|
-
return _context.abrupt("return", this.result);
|
|
317
|
-
case 19:
|
|
318
|
-
case "end":
|
|
319
|
-
return _context.stop();
|
|
320
|
-
}
|
|
321
|
-
}, _callee, this, [[5, 15]]);
|
|
322
|
-
}));
|
|
323
|
-
function start() {
|
|
324
|
-
return _start.apply(this, arguments);
|
|
325
|
-
}
|
|
326
|
-
return start;
|
|
327
|
-
}()
|
|
328
|
-
/**
|
|
329
|
-
* Starts the process of gathering ICE candidates
|
|
330
|
-
*
|
|
331
|
-
* @returns {Promise} promise that's resolved once reachability checks for this cluster are completed or timeout is reached
|
|
332
|
-
*/
|
|
333
|
-
)
|
|
334
|
-
}, {
|
|
335
|
-
key: "gatherIceCandidates",
|
|
336
|
-
value: function gatherIceCandidates() {
|
|
337
|
-
var _this4 = this;
|
|
338
|
-
var timeout = this.isVideoMesh ? VIDEO_MESH_TIMEOUT : DEFAULT_TIMEOUT;
|
|
339
|
-
this.registerIceGatheringStateChangeListener();
|
|
340
|
-
this.registerIceCandidateListener();
|
|
341
|
-
|
|
342
|
-
// Set maximum timeout
|
|
343
|
-
setTimeout(function () {
|
|
344
|
-
var CLOSED = _constants.CONNECTION_STATE.CLOSED;
|
|
345
|
-
|
|
346
|
-
// Close any open peerConnections
|
|
347
|
-
if (_this4.pc.connectionState !== CLOSED) {
|
|
348
|
-
_this4.closePeerConnection();
|
|
349
|
-
_this4.finishReachabilityCheck();
|
|
350
|
-
}
|
|
351
|
-
}, timeout);
|
|
352
|
-
return this.defer.promise;
|
|
353
|
-
}
|
|
354
|
-
}]);
|
|
355
|
-
return ClusterReachability;
|
|
356
|
-
}();
|
|
357
|
-
//# sourceMappingURL=clusterReachability.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_common","require","_loggerProxy","_interopRequireDefault","_util","_constants","DEFAULT_TIMEOUT","VIDEO_MESH_TIMEOUT","ClusterReachability","exports","name","clusterInfo","_classCallCheck2","default","_defineProperty2","isVideoMesh","numUdpUrls","udp","length","numTcpUrls","tcp","pc","createPeerConnection","defer","Defer","result","xtls","_createClass2","key","value","getElapsedTime","Math","round","performance","now","startTimestamp","buildPeerConnectionConfig","cluster","udpIceServers","map","url","username","credential","urls","tcpIceServers","urlString","convertStunUrlToTurn","iceServers","concat","_toConsumableArray2","iceCandidatePoolSize","iceTransportPolicy","config","peerConnection","RTCPeerConnection","peerConnectionError","LoggerProxy","logger","warn","undefined","getResult","closePeerConnection","onicecandidate","onicegatheringstatechange","close","finishReachabilityCheck","resolve","addPublicIP","protocol","publicIP","clientMediaIPs","includes","push","registerIceGatheringStateChangeListener","_this","COMPLETE","ICE_GATHERING_STATE","iceConnectionState","haveWeGotAllResults","_this2","every","storeLatencyResult","latency","latencyInMilliseconds","log","registerIceCandidateListener","_this3","e","CANDIDATE_TYPES","SERVER_REFLEXIVE","RELAY","candidate","type","address","_start","_asyncToGenerator2","_regenerator","mark","_callee","offer","wrap","_callee$","_context","prev","next","abrupt","createOffer","offerToReceiveAudio","sent","setLocalDescription","gatherIceCandidates","t0","stop","start","apply","arguments","_this4","timeout","setTimeout","CLOSED","CONNECTION_STATE","connectionState","promise"],"sources":["clusterReachability.ts"],"sourcesContent":["import {Defer} from '@webex/common';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {ClusterNode} from './request';\nimport {convertStunUrlToTurn} from './util';\n\nimport {ICE_GATHERING_STATE, CONNECTION_STATE} from '../constants';\n\nconst DEFAULT_TIMEOUT = 3000;\nconst VIDEO_MESH_TIMEOUT = 1000;\n\n// result for a specific transport protocol (like udp or tcp)\nexport type TransportResult = {\n result: 'reachable' | 'unreachable' | 'untested';\n latencyInMilliseconds?: number; // amount of time it took to get the first ICE candidate\n clientMediaIPs?: string[];\n};\n\n// reachability result for a specific media cluster\nexport type ClusterReachabilityResult = {\n udp: TransportResult;\n tcp: TransportResult;\n xtls: TransportResult;\n};\n\n/**\n * A class that handles reachability checks for a single cluster.\n */\nexport class ClusterReachability {\n private numUdpUrls: number;\n private numTcpUrls: number;\n private result: ClusterReachabilityResult;\n private pc?: RTCPeerConnection;\n private defer: Defer; // this defer is resolved once reachability checks for this cluster are completed\n private startTimestamp: number;\n public readonly isVideoMesh: boolean;\n public readonly name;\n\n /**\n * Constructor for ClusterReachability\n * @param {string} name cluster name\n * @param {ClusterNode} clusterInfo information about the media cluster\n */\n constructor(name: string, clusterInfo: ClusterNode) {\n this.name = name;\n this.isVideoMesh = clusterInfo.isVideoMesh;\n this.numUdpUrls = clusterInfo.udp.length;\n this.numTcpUrls = clusterInfo.tcp.length;\n\n this.pc = this.createPeerConnection(clusterInfo);\n\n this.defer = new Defer();\n this.result = {\n udp: {\n result: 'untested',\n },\n tcp: {\n result: 'untested',\n },\n xtls: {\n result: 'untested',\n },\n };\n }\n\n /**\n * Gets total elapsed time, can be called only after start() is called\n * @returns {Number} Milliseconds\n */\n private getElapsedTime() {\n return Math.round(performance.now() - this.startTimestamp);\n }\n\n /**\n * Generate peerConnection config settings\n * @param {ClusterNode} cluster\n * @returns {RTCConfiguration} peerConnectionConfig\n */\n private buildPeerConnectionConfig(cluster: ClusterNode): RTCConfiguration {\n const udpIceServers = cluster.udp.map((url) => ({\n username: '',\n credential: '',\n urls: [url],\n }));\n\n // STUN servers are contacted only using UDP, so in order to test TCP reachability\n // we pretend that Linus is a TURN server, because we can explicitly say \"transport=tcp\" in TURN urls.\n // We then check for relay candidates to know if TURN-TCP worked (see registerIceCandidateListener()).\n const tcpIceServers = cluster.tcp.map((urlString: string) => {\n return {\n username: 'webexturnreachuser',\n credential: 'webexturnreachpwd',\n urls: [convertStunUrlToTurn(urlString, 'tcp')],\n };\n });\n\n return {\n iceServers: [...udpIceServers, ...tcpIceServers],\n iceCandidatePoolSize: 0,\n iceTransportPolicy: 'all',\n };\n }\n\n /**\n * Creates an RTCPeerConnection\n * @param {ClusterNode} clusterInfo information about the media cluster\n * @returns {RTCPeerConnection} peerConnection\n */\n private createPeerConnection(clusterInfo: ClusterNode) {\n try {\n const config = this.buildPeerConnectionConfig(clusterInfo);\n\n const peerConnection = new RTCPeerConnection(config);\n\n return peerConnection;\n } catch (peerConnectionError) {\n LoggerProxy.logger.warn(\n `Reachability:index#createPeerConnection --> Error creating peerConnection:`,\n peerConnectionError\n );\n\n return undefined;\n }\n }\n\n /**\n * @returns {ClusterReachabilityResult} reachability result for this cluster\n */\n getResult() {\n return this.result;\n }\n\n /**\n * Closes the peerConnection\n *\n * @returns {void}\n */\n private closePeerConnection() {\n if (this.pc) {\n this.pc.onicecandidate = null;\n this.pc.onicegatheringstatechange = null;\n this.pc.close();\n }\n }\n\n /**\n * Resolves the defer, indicating that reachability checks for this cluster are completed\n *\n * @returns {void}\n */\n private finishReachabilityCheck() {\n this.defer.resolve();\n }\n\n /**\n * Adds public IP (client media IPs)\n * @param {string} protocol\n * @param {string} publicIP\n * @returns {void}\n */\n private addPublicIP(protocol: 'udp' | 'tcp', publicIP?: string | null) {\n const result = this.result[protocol];\n\n if (publicIP) {\n if (result.clientMediaIPs) {\n if (!result.clientMediaIPs.includes(publicIP)) {\n result.clientMediaIPs.push(publicIP);\n }\n } else {\n result.clientMediaIPs = [publicIP];\n }\n }\n }\n\n /**\n * Registers a listener for the iceGatheringStateChange event\n *\n * @returns {void}\n */\n private registerIceGatheringStateChangeListener() {\n this.pc.onicegatheringstatechange = () => {\n const {COMPLETE} = ICE_GATHERING_STATE;\n\n if (this.pc.iceConnectionState === COMPLETE) {\n this.closePeerConnection();\n this.finishReachabilityCheck();\n }\n };\n }\n\n /**\n * Checks if we have the results for all the protocols (UDP and TCP)\n *\n * @returns {boolean} true if we have all results, false otherwise\n */\n private haveWeGotAllResults(): boolean {\n return ['udp', 'tcp'].every(\n (protocol) =>\n this.result[protocol].result === 'reachable' || this.result[protocol].result === 'untested'\n );\n }\n\n /**\n * Stores the latency in the result for the given protocol and marks it as reachable\n *\n * @param {string} protocol\n * @param {number} latency\n * @returns {void}\n */\n private storeLatencyResult(protocol: 'udp' | 'tcp', latency: number) {\n const result = this.result[protocol];\n\n if (result.latencyInMilliseconds === undefined) {\n LoggerProxy.logger.log(\n // @ts-ignore\n `Reachability:index#storeLatencyResult --> Successfully reached ${this.name} over ${protocol}: ${latency}ms`\n );\n result.latencyInMilliseconds = latency;\n result.result = 'reachable';\n }\n }\n\n /**\n * Registers a listener for the icecandidate event\n *\n * @returns {void}\n */\n private registerIceCandidateListener() {\n this.pc.onicecandidate = (e) => {\n const CANDIDATE_TYPES = {\n SERVER_REFLEXIVE: 'srflx',\n RELAY: 'relay',\n };\n\n if (e.candidate) {\n if (e.candidate.type === CANDIDATE_TYPES.SERVER_REFLEXIVE) {\n this.storeLatencyResult('udp', this.getElapsedTime());\n this.addPublicIP('udp', e.candidate.address);\n }\n\n if (e.candidate.type === CANDIDATE_TYPES.RELAY) {\n this.storeLatencyResult('tcp', this.getElapsedTime());\n // we don't add public IP for TCP, because in the case of relay candidates\n // e.candidate.address is the TURN server address, not the client's public IP\n }\n\n if (this.haveWeGotAllResults()) {\n this.closePeerConnection();\n this.finishReachabilityCheck();\n }\n }\n };\n }\n\n /**\n * Starts the process of doing UDP and TCP reachability checks on the media cluster.\n * XTLS reachability checking is not supported.\n *\n * @returns {Promise}\n */\n async start(): Promise<ClusterReachabilityResult> {\n if (!this.pc) {\n LoggerProxy.logger.warn(\n `Reachability:ClusterReachability#start --> Error: peerConnection is undefined`\n );\n\n return this.result;\n }\n\n // Initialize this.result as saying that nothing is reachable.\n // It will get updated as we go along and successfully gather ICE candidates.\n this.result.udp = {\n result: this.numUdpUrls > 0 ? 'unreachable' : 'untested',\n };\n this.result.tcp = {\n result: this.numTcpUrls > 0 ? 'unreachable' : 'untested',\n };\n\n try {\n const offer = await this.pc.createOffer({offerToReceiveAudio: true});\n\n this.startTimestamp = performance.now();\n\n // not awaiting the next call on purpose, because we're not sending the offer anywhere and there won't be any answer\n // we just need to make this call to trigger the ICE gathering process\n this.pc.setLocalDescription(offer);\n\n await this.gatherIceCandidates();\n } catch (error) {\n LoggerProxy.logger.warn(`Reachability:ClusterReachability#start --> Error: `, error);\n }\n\n return this.result;\n }\n\n /**\n * Starts the process of gathering ICE candidates\n *\n * @returns {Promise} promise that's resolved once reachability checks for this cluster are completed or timeout is reached\n */\n private gatherIceCandidates() {\n const timeout = this.isVideoMesh ? VIDEO_MESH_TIMEOUT : DEFAULT_TIMEOUT;\n\n this.registerIceGatheringStateChangeListener();\n this.registerIceCandidateListener();\n\n // Set maximum timeout\n setTimeout(() => {\n const {CLOSED} = CONNECTION_STATE;\n\n // Close any open peerConnections\n if (this.pc.connectionState !== CLOSED) {\n this.closePeerConnection();\n this.finishReachabilityCheck();\n }\n }, timeout);\n\n return this.defer.promise;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a stun url to a turn url
|
|
3
|
-
*
|
|
4
|
-
* @param {string} stunUrl url of a stun server
|
|
5
|
-
* @param {'tcp'|'udp'} protocol what protocol to use for the turn server
|
|
6
|
-
* @returns {string} url of a turn server
|
|
7
|
-
*/
|
|
8
|
-
export declare function convertStunUrlToTurn(stunUrl: string, protocol: 'udp' | 'tcp'): string;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
_Object$defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.convertStunUrlToTurn = convertStunUrlToTurn;
|
|
8
|
-
/* eslint-disable import/prefer-default-export */
|
|
9
|
-
/**
|
|
10
|
-
* Converts a stun url to a turn url
|
|
11
|
-
*
|
|
12
|
-
* @param {string} stunUrl url of a stun server
|
|
13
|
-
* @param {'tcp'|'udp'} protocol what protocol to use for the turn server
|
|
14
|
-
* @returns {string} url of a turn server
|
|
15
|
-
*/
|
|
16
|
-
function convertStunUrlToTurn(stunUrl, protocol) {
|
|
17
|
-
// stunUrl looks like this: "stun:external-media91.public.wjfkm-a-10.prod.infra.webex.com:5004"
|
|
18
|
-
// and we need it to be like this: "turn:external-media91.public.wjfkm-a-10.prod.infra.webex.com:5004?transport=tcp"
|
|
19
|
-
var url = new URL(stunUrl);
|
|
20
|
-
if (url.protocol !== 'stun:') {
|
|
21
|
-
throw new Error("Not a STUN URL: ".concat(stunUrl));
|
|
22
|
-
}
|
|
23
|
-
url.protocol = 'turn:';
|
|
24
|
-
if (protocol === 'tcp') {
|
|
25
|
-
url.searchParams.append('transport', 'tcp');
|
|
26
|
-
}
|
|
27
|
-
return url.toString();
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=util.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["convertStunUrlToTurn","stunUrl","protocol","url","URL","Error","concat","searchParams","append","toString"],"sources":["util.ts"],"sourcesContent":["/* eslint-disable import/prefer-default-export */\n/**\n * Converts a stun url to a turn url\n *\n * @param {string} stunUrl url of a stun server\n * @param {'tcp'|'udp'} protocol what protocol to use for the turn server\n * @returns {string} url of a turn server\n */\nexport function convertStunUrlToTurn(stunUrl: string, protocol: 'udp' | 'tcp') {\n // stunUrl looks like this: \"stun:external-media91.public.wjfkm-a-10.prod.infra.webex.com:5004\"\n // and we need it to be like this: \"turn:external-media91.public.wjfkm-a-10.prod.infra.webex.com:5004?transport=tcp\"\n const url = new URL(stunUrl);\n\n if (url.protocol !== 'stun:') {\n throw new Error(`Not a STUN URL: ${stunUrl}`);\n }\n\n url.protocol = 'turn:';\n if (protocol === 'tcp') {\n url.searchParams.append('transport', 'tcp');\n }\n\n return url.toString();\n}\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,oBAAoBA,CAACC,OAAe,EAAEC,QAAuB,EAAE;EAC7E;EACA;EACA,IAAMC,GAAG,GAAG,IAAIC,GAAG,CAACH,OAAO,CAAC;EAE5B,IAAIE,GAAG,CAACD,QAAQ,KAAK,OAAO,EAAE;IAC5B,MAAM,IAAIG,KAAK,oBAAAC,MAAA,CAAoBL,OAAO,CAAE,CAAC;EAC/C;EAEAE,GAAG,CAACD,QAAQ,GAAG,OAAO;EACtB,IAAIA,QAAQ,KAAK,KAAK,EAAE;IACtBC,GAAG,CAACI,YAAY,CAACC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC;EAC7C;EAEA,OAAOL,GAAG,CAACM,QAAQ,CAAC,CAAC;AACvB"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
_Object$defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.REACTION_RELAY_TYPES = void 0;
|
|
8
|
-
// eslint-disable-next-line import/prefer-default-export
|
|
9
|
-
var REACTION_RELAY_TYPES = exports.REACTION_RELAY_TYPES = {
|
|
10
|
-
REACTION: 'react'
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["REACTION_RELAY_TYPES","exports","REACTION"],"sources":["constants.ts"],"sourcesContent":["// eslint-disable-next-line import/prefer-default-export\nexport const REACTION_RELAY_TYPES = {\n REACTION: 'react',\n} as const;\n"],"mappings":";;;;;;;AAAA;AACO,IAAMA,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG;EAClCE,QAAQ,EAAE;AACZ,CAAU"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
_Object$defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var RTC_METRICS = exports.default = {
|
|
9
|
-
APP_ID: 'FFB51ED5-4319-4C55-8303-B1F2FCCDE231'
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["RTC_METRICS","exports","default","APP_ID"],"sources":["constants.ts"],"sourcesContent":["const RTC_METRICS = {APP_ID: 'FFB51ED5-4319-4C55-8303-B1F2FCCDE231'};\n\nexport {RTC_METRICS as default};\n"],"mappings":";;;;;;;AAAA,IAAMA,WAAW,GAAAC,OAAA,CAAAC,OAAA,GAAG;EAACC,MAAM,EAAE;AAAsC,CAAC"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Rtc Metrics
|
|
3
|
-
*/
|
|
4
|
-
export default class RtcMetrics {
|
|
5
|
-
/**
|
|
6
|
-
* Array of MetricData items to be sent to the metrics service.
|
|
7
|
-
*/
|
|
8
|
-
metricsQueue: any[];
|
|
9
|
-
intervalId: number;
|
|
10
|
-
webex: any;
|
|
11
|
-
meetingId: string;
|
|
12
|
-
correlationId: string;
|
|
13
|
-
/**
|
|
14
|
-
* Initialize the interval.
|
|
15
|
-
*
|
|
16
|
-
* @param {object} webex - The main `webex` object.
|
|
17
|
-
* @param {string} meetingId - The meeting id.
|
|
18
|
-
* @param {string} correlationId - The correlation id.
|
|
19
|
-
*/
|
|
20
|
-
constructor(webex: any, meetingId: any, correlationId: any);
|
|
21
|
-
/**
|
|
22
|
-
* Check to see if the metrics queue has any items.
|
|
23
|
-
*
|
|
24
|
-
* @returns {void}
|
|
25
|
-
*/
|
|
26
|
-
sendMetricsInQueue(): void;
|
|
27
|
-
/**
|
|
28
|
-
* Add metrics items to the metrics queue.
|
|
29
|
-
*
|
|
30
|
-
* @param {object} data - An object with a payload array of metrics items.
|
|
31
|
-
*
|
|
32
|
-
* @returns {void}
|
|
33
|
-
*/
|
|
34
|
-
addMetrics(data: any): void;
|
|
35
|
-
/**
|
|
36
|
-
* Clear the metrics interval.
|
|
37
|
-
*
|
|
38
|
-
* @returns {void}
|
|
39
|
-
*/
|
|
40
|
-
closeMetrics(): void;
|
|
41
|
-
/**
|
|
42
|
-
* Anonymize IP addresses.
|
|
43
|
-
*
|
|
44
|
-
* @param {array} stats - An RTCStatsReport organized into an array of strings.
|
|
45
|
-
* @returns {string}
|
|
46
|
-
*/
|
|
47
|
-
anonymizeIp(stats: string): string;
|
|
48
|
-
/**
|
|
49
|
-
* Send metrics to the metrics service.
|
|
50
|
-
*
|
|
51
|
-
* @returns {void}
|
|
52
|
-
*/
|
|
53
|
-
private sendMetrics;
|
|
54
|
-
}
|