@webex/plugin-meetings 3.0.0-beta.17 → 3.0.0-beta.170
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 +45 -1
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +359 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +216 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.js +23 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +1048 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.js +78 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.js +67 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/errors/webex-errors.js +3 -2
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/config.js +6 -8
- package/dist/config.js.map +1 -1
- package/dist/constants.js +194 -28
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +14 -0
- package/dist/controls-options-manager/constants.js.map +1 -0
- package/dist/controls-options-manager/enums.js +27 -0
- package/dist/controls-options-manager/enums.js.map +1 -0
- package/dist/controls-options-manager/index.js +297 -0
- package/dist/controls-options-manager/index.js.map +1 -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.js +300 -0
- package/dist/controls-options-manager/util.js.map +1 -0
- package/dist/index.js +95 -0
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +214 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +25 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +92 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +350 -41
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +43 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +2 -1
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +97 -14
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +39 -134
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +19 -97
- package/dist/media/properties.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +505 -493
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +76 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2640 -2436
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +291 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +229 -124
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +191 -167
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +477 -466
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +48 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +172 -50
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +20 -5
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +22 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +377 -82
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +16 -12
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +88 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +43 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +15 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +97 -3
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +10 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +94 -11
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +109 -39
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +316 -233
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +3 -5
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -468
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +265 -36
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +52 -19
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +53 -33
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +44 -18
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +60 -3
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +322 -103
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +4 -2
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/reachability/index.js +117 -60
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +12 -5
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/constants.js +13 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.js +2 -2
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.js +18 -18
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +217 -162
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +17 -0
- package/dist/recording-controller/enums.js.map +1 -0
- package/dist/recording-controller/index.js +363 -0
- package/dist/recording-controller/index.js.map +1 -0
- package/dist/recording-controller/util.js +64 -0
- package/dist/recording-controller/util.js.map +1 -0
- package/dist/roap/index.js +21 -29
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +135 -94
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +135 -53
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/global.js +1 -93
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +329 -314
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +103 -54
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +43 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +124 -0
- package/dist/types/breakouts/breakout.d.ts +8 -0
- package/dist/types/breakouts/collection.d.ts +5 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/index.d.ts +5 -0
- package/dist/types/breakouts/request.d.ts +22 -0
- package/dist/types/breakouts/utils.d.ts +15 -0
- package/dist/types/common/browser-detection.d.ts +9 -0
- package/dist/types/common/collection.d.ts +48 -0
- package/dist/types/common/config.d.ts +2 -0
- package/dist/types/common/errors/captcha-error.d.ts +15 -0
- package/dist/types/common/errors/intent-to-join.d.ts +16 -0
- package/dist/types/common/errors/join-meeting.d.ts +17 -0
- package/dist/types/common/errors/media.d.ts +15 -0
- package/dist/types/common/errors/parameter.d.ts +15 -0
- package/dist/types/common/errors/password-error.d.ts +15 -0
- package/dist/types/common/errors/permission.d.ts +14 -0
- package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/types/common/errors/reconnection.d.ts +15 -0
- package/dist/types/common/errors/stats.d.ts +15 -0
- package/dist/types/common/errors/webex-errors.d.ts +69 -0
- package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
- package/dist/types/common/events/events-scope.d.ts +17 -0
- package/dist/types/common/events/events.d.ts +12 -0
- package/dist/types/common/events/trigger-proxy.d.ts +2 -0
- package/dist/types/common/events/util.d.ts +2 -0
- package/dist/types/common/logs/logger-config.d.ts +2 -0
- package/dist/types/common/logs/logger-proxy.d.ts +2 -0
- package/dist/types/common/logs/request.d.ts +34 -0
- package/dist/types/common/queue.d.ts +32 -0
- package/dist/types/config.d.ts +72 -0
- package/dist/types/constants.d.ts +1007 -0
- package/dist/types/controls-options-manager/constants.d.ts +4 -0
- package/dist/types/controls-options-manager/enums.d.ts +15 -0
- package/dist/types/controls-options-manager/index.d.ts +136 -0
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/interpretation/collection.d.ts +5 -0
- package/dist/types/interpretation/index.d.ts +5 -0
- package/dist/types/interpretation/siLanguage.d.ts +5 -0
- package/dist/types/locus-info/controlsUtils.d.ts +2 -0
- package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
- package/dist/types/locus-info/fullState.d.ts +2 -0
- package/dist/types/locus-info/hostUtils.d.ts +2 -0
- package/dist/types/locus-info/index.d.ts +315 -0
- package/dist/types/locus-info/infoUtils.d.ts +2 -0
- package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
- package/dist/types/locus-info/parser.d.ts +212 -0
- package/dist/types/locus-info/selfUtils.d.ts +2 -0
- package/dist/types/media/index.d.ts +34 -0
- package/dist/types/media/properties.d.ts +86 -0
- package/dist/types/media/util.d.ts +2 -0
- package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +149 -0
- package/dist/types/meeting/index.d.ts +1430 -0
- package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
- package/dist/types/meeting/muteState.d.ts +184 -0
- package/dist/types/meeting/request.d.ts +270 -0
- package/dist/types/meeting/request.type.d.ts +11 -0
- package/dist/types/meeting/state.d.ts +9 -0
- package/dist/types/meeting/util.d.ts +77 -0
- package/dist/types/meeting-info/collection.d.ts +20 -0
- package/dist/types/meeting-info/index.d.ts +62 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
- package/dist/types/meeting-info/request.d.ts +22 -0
- package/dist/types/meeting-info/util.d.ts +2 -0
- package/dist/types/meeting-info/utilv2.d.ts +2 -0
- package/dist/types/meetings/collection.d.ts +31 -0
- package/dist/types/meetings/index.d.ts +365 -0
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/meetings/request.d.ts +27 -0
- package/dist/types/meetings/util.d.ts +18 -0
- package/dist/types/member/index.d.ts +158 -0
- package/dist/types/member/types.d.ts +21 -0
- package/dist/types/member/util.d.ts +2 -0
- package/dist/types/members/collection.d.ts +29 -0
- package/dist/types/members/index.d.ts +353 -0
- package/dist/types/members/request.d.ts +114 -0
- package/dist/types/members/types.d.ts +24 -0
- package/dist/types/members/util.d.ts +210 -0
- package/dist/types/metrics/constants.d.ts +55 -0
- package/dist/types/metrics/index.d.ts +45 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
- package/dist/types/multistream/receiveSlot.d.ts +68 -0
- package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/types/multistream/remoteMedia.d.ts +72 -0
- package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
- package/dist/types/networkQualityMonitor/index.d.ts +70 -0
- package/dist/types/personal-meeting-room/index.d.ts +47 -0
- package/dist/types/personal-meeting-room/request.d.ts +14 -0
- package/dist/types/personal-meeting-room/util.d.ts +2 -0
- package/dist/types/reachability/index.d.ts +152 -0
- package/dist/types/reachability/request.d.ts +37 -0
- package/dist/types/reactions/constants.d.ts +3 -0
- package/dist/types/reactions/reactions.d.ts +4 -0
- package/dist/types/reactions/reactions.type.d.ts +52 -0
- package/dist/types/reconnection-manager/index.d.ts +126 -0
- package/dist/types/recording-controller/enums.d.ts +7 -0
- package/dist/types/recording-controller/index.d.ts +208 -0
- package/dist/types/recording-controller/util.d.ts +14 -0
- package/dist/types/roap/index.d.ts +77 -0
- package/dist/types/roap/request.d.ts +36 -0
- package/dist/types/roap/turnDiscovery.d.ts +91 -0
- package/dist/types/statsAnalyzer/global.d.ts +36 -0
- package/dist/types/statsAnalyzer/index.d.ts +200 -0
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
- package/dist/types/transcription/index.d.ts +64 -0
- package/package.json +29 -21
- package/src/annotation/annotation.types.ts +52 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +343 -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/webex-errors.ts +6 -2
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/config.ts +5 -7
- package/src/constants.ts +183 -22
- package/src/controls-options-manager/constants.ts +5 -0
- package/src/controls-options-manager/enums.ts +18 -0
- package/src/controls-options-manager/index.ts +278 -0
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +286 -0
- package/src/index.ts +37 -0
- package/src/interpretation/README.md +51 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +182 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +110 -0
- package/src/locus-info/index.ts +374 -38
- package/src/locus-info/mediaSharesUtils.ts +48 -0
- package/src/locus-info/parser.ts +2 -1
- package/src/locus-info/selfUtils.ts +86 -2
- package/src/media/index.ts +70 -142
- package/src/media/properties.ts +41 -104
- package/src/mediaQualityMetrics/config.ts +379 -377
- package/src/meeting/in-meeting-actions.ts +151 -3
- package/src/meeting/index.ts +2029 -2033
- package/src/meeting/locusMediaRequest.ts +309 -0
- package/src/meeting/muteState.ts +228 -132
- package/src/meeting/request.ts +100 -91
- package/src/meeting/request.type.ts +2 -0
- package/src/meeting/util.ts +450 -439
- package/src/meeting-info/index.ts +54 -8
- package/src/meeting-info/meeting-info-v2.ts +150 -14
- package/src/meeting-info/utilv2.ts +13 -3
- package/src/meetings/collection.ts +20 -0
- package/src/meetings/index.ts +396 -89
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +3 -1
- package/src/meetings/util.ts +103 -4
- package/src/member/index.ts +42 -0
- package/src/member/types.ts +24 -0
- package/src/member/util.ts +95 -1
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +108 -6
- package/src/members/request.ts +98 -17
- package/src/members/types.ts +28 -0
- package/src/members/util.ts +319 -240
- package/src/metrics/constants.ts +2 -4
- package/src/metrics/index.ts +1 -490
- package/src/multistream/mediaRequestManager.ts +337 -63
- package/src/multistream/receiveSlot.ts +68 -26
- package/src/multistream/receiveSlotManager.ts +61 -38
- package/src/multistream/remoteMedia.ts +29 -3
- package/src/multistream/remoteMediaGroup.ts +61 -2
- package/src/multistream/remoteMediaManager.ts +260 -66
- package/src/networkQualityMonitor/index.ts +6 -6
- package/src/reachability/index.ts +75 -25
- package/src/reachability/request.ts +10 -5
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +28 -3
- package/src/reconnection-manager/index.ts +80 -49
- package/src/recording-controller/enums.ts +8 -0
- package/src/recording-controller/index.ts +333 -0
- package/src/recording-controller/util.ts +75 -0
- package/src/roap/index.ts +21 -30
- package/src/roap/request.ts +72 -61
- package/src/roap/turnDiscovery.ts +51 -27
- package/src/statsAnalyzer/global.ts +1 -94
- package/src/statsAnalyzer/index.ts +380 -390
- package/src/statsAnalyzer/mqaUtil.ts +106 -99
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +331 -254
- package/test/integration/spec/space-meeting.js +77 -4
- package/test/unit/spec/annotation/index.ts +436 -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/controls-options-manager/index.js +287 -0
- package/test/unit/spec/controls-options-manager/util.js +518 -0
- 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 +329 -0
- package/test/unit/spec/interpretation/siLanguage.ts +26 -0
- package/test/unit/spec/locus-info/controlsUtils.js +323 -30
- package/test/unit/spec/locus-info/index.js +792 -4
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
- package/test/unit/spec/locus-info/selfConstant.js +48 -0
- package/test/unit/spec/locus-info/selfUtils.js +275 -0
- package/test/unit/spec/media/index.ts +118 -22
- package/test/unit/spec/media/properties.ts +9 -9
- package/test/unit/spec/meeting/in-meeting-actions.ts +75 -3
- package/test/unit/spec/meeting/index.js +2742 -1441
- package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
- package/test/unit/spec/meeting/muteState.js +370 -208
- package/test/unit/spec/meeting/request.js +354 -42
- package/test/unit/spec/meeting/utils.js +384 -170
- package/test/unit/spec/meeting-info/index.js +181 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +14 -0
- package/test/unit/spec/meetings/index.js +847 -121
- package/test/unit/spec/meetings/utils.js +206 -2
- package/test/unit/spec/member/index.js +31 -0
- package/test/unit/spec/member/util.js +408 -32
- package/test/unit/spec/members/index.js +320 -1
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +184 -0
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +1012 -109
- package/test/unit/spec/multistream/receiveSlot.ts +77 -18
- package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
- package/test/unit/spec/multistream/remoteMedia.ts +32 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +672 -65
- package/test/unit/spec/networkQualityMonitor/index.js +4 -4
- package/test/unit/spec/reachability/index.ts +176 -25
- package/test/unit/spec/reachability/request.js +66 -0
- package/test/unit/spec/reconnection-manager/index.js +95 -13
- package/test/unit/spec/recording-controller/index.js +307 -0
- package/test/unit/spec/recording-controller/util.js +229 -0
- package/test/unit/spec/roap/index.ts +28 -52
- package/test/unit/spec/roap/request.ts +225 -0
- package/test/unit/spec/roap/turnDiscovery.ts +73 -34
- package/test/unit/spec/stats-analyzer/index.js +94 -43
- 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/tsconfig.json +6 -0
- package/dist/media/internal-media-core-wrapper.js +0 -18
- package/dist/media/internal-media-core-wrapper.js.map +0 -1
- package/dist/meeting/effectsState.js +0 -262
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -299
- package/dist/metrics/config.js.map +0 -1
- package/dist/multistream/multistreamMedia.js +0 -106
- package/dist/multistream/multistreamMedia.js.map +0 -1
- package/src/index.js +0 -15
- package/src/media/internal-media-core-wrapper.ts +0 -9
- package/src/meeting/effectsState.ts +0 -211
- package/src/metrics/config.ts +0 -495
- package/src/multistream/multistreamMedia.ts +0 -93
- package/test/unit/spec/meeting/effectsState.js +0 -281
|
@@ -70,10 +70,22 @@ export default class MeetingInfo {
|
|
|
70
70
|
* @private
|
|
71
71
|
* @memberof MeetingInfo
|
|
72
72
|
*/
|
|
73
|
-
private requestFetchInfo(options:
|
|
73
|
+
private requestFetchInfo(options: any) {
|
|
74
|
+
const {meetingId} = options;
|
|
75
|
+
if (meetingId) {
|
|
76
|
+
this.webex.internal.newMetrics.submitInternalEvent({
|
|
77
|
+
name: 'internal.client.meetinginfo.request',
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
74
81
|
return this.meetingInfoRequest
|
|
75
82
|
.fetchMeetingInfo(options)
|
|
76
83
|
.then((info) => {
|
|
84
|
+
if (meetingId) {
|
|
85
|
+
this.webex.internal.newMetrics.submitInternalEvent({
|
|
86
|
+
name: 'internal.client.meetinginfo.response',
|
|
87
|
+
});
|
|
88
|
+
}
|
|
77
89
|
if (info && info.body) {
|
|
78
90
|
this.setMeetingInfo(info.body.sipMeetingUri || info.body.meetingLink, info.body);
|
|
79
91
|
}
|
|
@@ -84,6 +96,21 @@ export default class MeetingInfo {
|
|
|
84
96
|
LoggerProxy.logger.error(
|
|
85
97
|
`Meeting-info:index#requestFetchInfo --> ${error} fetch meetingInfo`
|
|
86
98
|
);
|
|
99
|
+
this.webex.internal.newMetrics.submitInternalEvent({
|
|
100
|
+
name: 'internal.client.meetinginfo.response',
|
|
101
|
+
});
|
|
102
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
103
|
+
name: 'client.meetinginfo.response',
|
|
104
|
+
payload: {
|
|
105
|
+
identifiers: {
|
|
106
|
+
meetingLookupUrl: error?.url,
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
options: {
|
|
110
|
+
meetingId,
|
|
111
|
+
rawError: error,
|
|
112
|
+
},
|
|
113
|
+
});
|
|
87
114
|
|
|
88
115
|
return Promise.reject(error);
|
|
89
116
|
});
|
|
@@ -105,6 +132,7 @@ export default class MeetingInfo {
|
|
|
105
132
|
});
|
|
106
133
|
}
|
|
107
134
|
|
|
135
|
+
// eslint-disable-next-line valid-jsdoc
|
|
108
136
|
/**
|
|
109
137
|
* Fetches meeting info from the server
|
|
110
138
|
* @param {String} destination one of many different types of destinations to look up info for
|
|
@@ -113,21 +141,39 @@ export default class MeetingInfo {
|
|
|
113
141
|
* @public
|
|
114
142
|
* @memberof MeetingInfo
|
|
115
143
|
*/
|
|
116
|
-
public fetchMeetingInfo(
|
|
144
|
+
public fetchMeetingInfo(
|
|
145
|
+
destination: string,
|
|
146
|
+
type: string = null,
|
|
147
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
148
|
+
password: string = null,
|
|
149
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
150
|
+
captchaInfo: {
|
|
151
|
+
code: string;
|
|
152
|
+
id: string;
|
|
153
|
+
} = null,
|
|
154
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
155
|
+
installedOrgID = null,
|
|
156
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
157
|
+
locusId = null,
|
|
158
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
159
|
+
extraParams: object = {},
|
|
160
|
+
options: {meetingId?: string} = {}
|
|
161
|
+
) {
|
|
117
162
|
if (type === _PERSONAL_ROOM_ && !destination) {
|
|
118
163
|
destination = this.webex.internal.device.userId;
|
|
119
164
|
}
|
|
120
165
|
|
|
121
166
|
return this.fetchInfoOptions(MeetingInfoUtil.extractDestination(destination, type), type).then(
|
|
122
|
-
(
|
|
167
|
+
(infoOptions) =>
|
|
123
168
|
// fetch meeting info
|
|
124
|
-
this.requestFetchInfo(options).catch((error) => {
|
|
169
|
+
this.requestFetchInfo({...infoOptions, meetingId: options.meetingId}).catch((error) => {
|
|
125
170
|
// if it failed the first time as meeting link
|
|
126
|
-
if (
|
|
171
|
+
if (infoOptions.type === _MEETING_LINK_) {
|
|
127
172
|
// convert the meeting link to sip URI and retry
|
|
128
|
-
return this.requestFetchInfo(
|
|
129
|
-
this.fetchInfoOptions(MeetingInfoUtil.convertLinkToSip(destination), _SIP_URI_)
|
|
130
|
-
|
|
173
|
+
return this.requestFetchInfo({
|
|
174
|
+
...this.fetchInfoOptions(MeetingInfoUtil.convertLinkToSip(destination), _SIP_URI_),
|
|
175
|
+
meetingId: options.meetingId,
|
|
176
|
+
});
|
|
131
177
|
}
|
|
132
178
|
|
|
133
179
|
return Promise.reject(error);
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import lodash from 'lodash';
|
|
2
|
+
import {
|
|
3
|
+
HTTP_VERBS,
|
|
4
|
+
_CONVERSATION_URL_,
|
|
5
|
+
WBXAPPAPI_SERVICE,
|
|
6
|
+
DEFAULT_MEETING_INFO_REQUEST_BODY,
|
|
7
|
+
} from '../constants';
|
|
2
8
|
import Metrics from '../metrics';
|
|
3
9
|
import BEHAVIORAL_METRICS from '../metrics/constants';
|
|
4
10
|
|
|
@@ -11,7 +17,7 @@ const CAPTCHA_ERROR_DEFAULT_MESSAGE =
|
|
|
11
17
|
const ADHOC_MEETING_DEFAULT_ERROR =
|
|
12
18
|
'Failed starting the adhoc meeting, Please contact support team ';
|
|
13
19
|
const CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];
|
|
14
|
-
|
|
20
|
+
const POLICY_ERROR_CODES = [403049, 403104, 403103, 403048, 403102, 403101];
|
|
15
21
|
/**
|
|
16
22
|
* Error to indicate that wbxappapi requires a password
|
|
17
23
|
*/
|
|
@@ -19,6 +25,7 @@ export class MeetingInfoV2PasswordError extends Error {
|
|
|
19
25
|
meetingInfo: any;
|
|
20
26
|
sdkMessage: any;
|
|
21
27
|
wbxAppApiCode: any;
|
|
28
|
+
body: any;
|
|
22
29
|
|
|
23
30
|
/**
|
|
24
31
|
*
|
|
@@ -62,6 +69,30 @@ export class MeetingInfoV2AdhocMeetingError extends Error {
|
|
|
62
69
|
}
|
|
63
70
|
}
|
|
64
71
|
|
|
72
|
+
/**
|
|
73
|
+
* Error preventing join because of a meeting policy
|
|
74
|
+
*/
|
|
75
|
+
export class MeetingInfoV2PolicyError extends Error {
|
|
76
|
+
meetingInfo: object;
|
|
77
|
+
sdkMessage: string;
|
|
78
|
+
wbxAppApiCode: number;
|
|
79
|
+
/**
|
|
80
|
+
*
|
|
81
|
+
* @constructor
|
|
82
|
+
* @param {Number} [wbxAppApiErrorCode]
|
|
83
|
+
* @param {Object} [meetingInfo]
|
|
84
|
+
* @param {String} [message]
|
|
85
|
+
*/
|
|
86
|
+
constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string) {
|
|
87
|
+
super(`${message}, code=${wbxAppApiErrorCode}`);
|
|
88
|
+
this.name = 'MeetingInfoV2AdhocMeetingError';
|
|
89
|
+
this.sdkMessage = message;
|
|
90
|
+
this.stack = new Error().stack;
|
|
91
|
+
this.wbxAppApiCode = wbxAppApiErrorCode;
|
|
92
|
+
this.meetingInfo = meetingInfo;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
65
96
|
/**
|
|
66
97
|
* Error to indicate that preferred webex site not present to start adhoc meeting
|
|
67
98
|
*/
|
|
@@ -70,6 +101,7 @@ export class MeetingInfoV2CaptchaError extends Error {
|
|
|
70
101
|
isPasswordRequired: any;
|
|
71
102
|
sdkMessage: any;
|
|
72
103
|
wbxAppApiCode: any;
|
|
104
|
+
body: any;
|
|
73
105
|
/**
|
|
74
106
|
*
|
|
75
107
|
* @constructor
|
|
@@ -122,14 +154,38 @@ export default class MeetingInfoV2 {
|
|
|
122
154
|
});
|
|
123
155
|
}
|
|
124
156
|
|
|
157
|
+
/**
|
|
158
|
+
* Raises a MeetingInfoV2PolicyError for policy error codes
|
|
159
|
+
* @param {any} err the error from the request
|
|
160
|
+
* @returns {void}
|
|
161
|
+
*/
|
|
162
|
+
handlePolicyError = (err) => {
|
|
163
|
+
if (!err.body) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
if (POLICY_ERROR_CODES.includes(err.body?.code)) {
|
|
168
|
+
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_INFO_POLICY_ERROR, {
|
|
169
|
+
code: err.body?.code,
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
throw new MeetingInfoV2PolicyError(
|
|
173
|
+
err.body?.code,
|
|
174
|
+
err.body?.data?.meetingInfo,
|
|
175
|
+
err.body?.message
|
|
176
|
+
);
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
|
|
125
180
|
/**
|
|
126
181
|
* Creates adhoc space meetings for a space by fetching the conversation infomation
|
|
127
182
|
* @param {String} conversationUrl conversationUrl to start adhoc meeting on
|
|
183
|
+
* @param {String} installedOrgID org ID of user's machine
|
|
128
184
|
* @returns {Promise} returns a meeting info object
|
|
129
185
|
* @public
|
|
130
186
|
* @memberof MeetingInfo
|
|
131
187
|
*/
|
|
132
|
-
async createAdhocSpaceMeeting(conversationUrl: string) {
|
|
188
|
+
async createAdhocSpaceMeeting(conversationUrl: string, installedOrgID?: string) {
|
|
133
189
|
if (!this.webex.meetings.preferredWebexSite) {
|
|
134
190
|
throw Error('No preferred webex site found');
|
|
135
191
|
}
|
|
@@ -151,7 +207,14 @@ export default class MeetingInfoV2 {
|
|
|
151
207
|
return this.webex.internal.conversation
|
|
152
208
|
.get({url: conversationUrl}, {includeParticipants: true, disableTransform: true})
|
|
153
209
|
.then((conversation) => {
|
|
154
|
-
const body
|
|
210
|
+
const body: {
|
|
211
|
+
title: string;
|
|
212
|
+
spaceUrl: string;
|
|
213
|
+
keyUrl: string;
|
|
214
|
+
kroUrl: string;
|
|
215
|
+
invitees: any[];
|
|
216
|
+
installedOrgID?: string;
|
|
217
|
+
} = {
|
|
155
218
|
title: conversation.displayName,
|
|
156
219
|
spaceUrl: conversation.url,
|
|
157
220
|
keyUrl: conversation.encryptionKeyUrl,
|
|
@@ -159,19 +222,28 @@ export default class MeetingInfoV2 {
|
|
|
159
222
|
invitees: getInvitees(conversation.participants?.items),
|
|
160
223
|
};
|
|
161
224
|
|
|
225
|
+
if (installedOrgID) {
|
|
226
|
+
body.installedOrgID = installedOrgID;
|
|
227
|
+
}
|
|
228
|
+
|
|
162
229
|
const uri = this.webex.meetings.preferredWebexSite
|
|
163
230
|
? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant`
|
|
164
231
|
: '';
|
|
165
232
|
|
|
166
|
-
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);
|
|
167
|
-
|
|
168
233
|
return this.webex.request({
|
|
169
234
|
method: HTTP_VERBS.POST,
|
|
170
235
|
uri,
|
|
171
236
|
body,
|
|
172
237
|
});
|
|
173
238
|
})
|
|
239
|
+
.then((requestResult) => {
|
|
240
|
+
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);
|
|
241
|
+
|
|
242
|
+
return requestResult;
|
|
243
|
+
})
|
|
174
244
|
.catch((err) => {
|
|
245
|
+
this.handlePolicyError(err);
|
|
246
|
+
|
|
175
247
|
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_FAILURE, {
|
|
176
248
|
reason: err.message,
|
|
177
249
|
stack: err.stack,
|
|
@@ -188,6 +260,10 @@ export default class MeetingInfoV2 {
|
|
|
188
260
|
* @param {Object} captchaInfo
|
|
189
261
|
* @param {String} captchaInfo.code
|
|
190
262
|
* @param {String} captchaInfo.id
|
|
263
|
+
* @param {String} installedOrgID org ID of user's machine
|
|
264
|
+
* @param {String} locusId
|
|
265
|
+
* @param {Object} extraParams
|
|
266
|
+
* @param {Object} options
|
|
191
267
|
* @returns {Promise} returns a meeting info object
|
|
192
268
|
* @public
|
|
193
269
|
* @memberof MeetingInfo
|
|
@@ -199,8 +275,14 @@ export default class MeetingInfoV2 {
|
|
|
199
275
|
captchaInfo: {
|
|
200
276
|
code: string;
|
|
201
277
|
id: string;
|
|
202
|
-
} = null
|
|
278
|
+
} = null,
|
|
279
|
+
installedOrgID = null,
|
|
280
|
+
locusId = null,
|
|
281
|
+
extraParams: object = {},
|
|
282
|
+
options: {meetingId?: string} = {}
|
|
203
283
|
) {
|
|
284
|
+
const {meetingId} = options;
|
|
285
|
+
|
|
204
286
|
const destinationType = await MeetingInfoUtil.getDestinationType({
|
|
205
287
|
destination,
|
|
206
288
|
type,
|
|
@@ -212,12 +294,35 @@ export default class MeetingInfoV2 {
|
|
|
212
294
|
this.webex.config.meetings.experimental.enableAdhocMeetings &&
|
|
213
295
|
this.webex.meetings.preferredWebexSite
|
|
214
296
|
) {
|
|
215
|
-
return this.createAdhocSpaceMeeting(destinationType.destination);
|
|
297
|
+
return this.createAdhocSpaceMeeting(destinationType.destination, installedOrgID);
|
|
216
298
|
}
|
|
217
299
|
|
|
218
|
-
const body = await MeetingInfoUtil.getRequestBody({
|
|
300
|
+
const body = await MeetingInfoUtil.getRequestBody({
|
|
301
|
+
...destinationType,
|
|
302
|
+
password,
|
|
303
|
+
captchaInfo,
|
|
304
|
+
installedOrgID,
|
|
305
|
+
locusId,
|
|
306
|
+
extraParams,
|
|
307
|
+
});
|
|
308
|
+
|
|
309
|
+
// If the body only contains the default properties, we don't have enough to
|
|
310
|
+
// fetch the meeting info so don't bother trying.
|
|
311
|
+
if (
|
|
312
|
+
!lodash.difference(Object.keys(body), Object.keys(DEFAULT_MEETING_INFO_REQUEST_BODY)).length
|
|
313
|
+
) {
|
|
314
|
+
const err = new Error('Not enough information to fetch meeting info');
|
|
315
|
+
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {
|
|
316
|
+
reason: err.message,
|
|
317
|
+
destinationType: destinationType?.type,
|
|
318
|
+
webExMeetingId: destinationType?.info?.webExMeetingId,
|
|
319
|
+
sipUri: destinationType?.info?.sipUri,
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
throw err;
|
|
323
|
+
}
|
|
219
324
|
|
|
220
|
-
const
|
|
325
|
+
const requestOptions: any = {
|
|
221
326
|
method: HTTP_VERBS.POST,
|
|
222
327
|
body,
|
|
223
328
|
};
|
|
@@ -225,21 +330,52 @@ export default class MeetingInfoV2 {
|
|
|
225
330
|
const directURI = await MeetingInfoUtil.getDirectMeetingInfoURI(destinationType);
|
|
226
331
|
|
|
227
332
|
if (directURI) {
|
|
228
|
-
|
|
333
|
+
requestOptions.uri = directURI;
|
|
229
334
|
} else {
|
|
230
|
-
|
|
231
|
-
|
|
335
|
+
requestOptions.service = WBXAPPAPI_SERVICE;
|
|
336
|
+
requestOptions.resource = 'meetingInfo';
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
if (meetingId) {
|
|
340
|
+
this.webex.internal.newMetrics.submitInternalEvent({
|
|
341
|
+
name: 'internal.client.meetinginfo.request',
|
|
342
|
+
});
|
|
232
343
|
}
|
|
233
344
|
|
|
234
345
|
return this.webex
|
|
235
|
-
.request(
|
|
346
|
+
.request(requestOptions)
|
|
236
347
|
.then((response) => {
|
|
348
|
+
if (meetingId) {
|
|
349
|
+
this.webex.internal.newMetrics.submitInternalEvent({
|
|
350
|
+
name: 'internal.client.meetinginfo.response',
|
|
351
|
+
});
|
|
352
|
+
}
|
|
237
353
|
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS);
|
|
238
354
|
|
|
239
355
|
return response;
|
|
240
356
|
})
|
|
241
357
|
.catch((err) => {
|
|
358
|
+
if (meetingId) {
|
|
359
|
+
this.webex.internal.newMetrics.submitInternalEvent({
|
|
360
|
+
name: 'internal.client.meetinginfo.response',
|
|
361
|
+
});
|
|
362
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
363
|
+
name: 'client.meetinginfo.response',
|
|
364
|
+
payload: {
|
|
365
|
+
identifiers: {
|
|
366
|
+
meetingLookupUrl: err?.url,
|
|
367
|
+
},
|
|
368
|
+
},
|
|
369
|
+
options: {
|
|
370
|
+
meetingId,
|
|
371
|
+
rawError: err,
|
|
372
|
+
},
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
|
|
242
376
|
if (err?.statusCode === 403) {
|
|
377
|
+
this.handlePolicyError(err);
|
|
378
|
+
|
|
243
379
|
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR, {
|
|
244
380
|
reason: err.message,
|
|
245
381
|
stack: err.stack,
|
|
@@ -24,6 +24,7 @@ import {
|
|
|
24
24
|
HTTPS_PROTOCOL,
|
|
25
25
|
UUID_REG,
|
|
26
26
|
VALID_EMAIL_ADDRESS,
|
|
27
|
+
DEFAULT_MEETING_INFO_REQUEST_BODY,
|
|
27
28
|
} from '../constants';
|
|
28
29
|
import ParameterError from '../common/errors/parameter';
|
|
29
30
|
import LoggerProxy from '../common/logs/logger-proxy';
|
|
@@ -220,14 +221,15 @@ MeetingInfoUtil.getDestinationType = async (from) => {
|
|
|
220
221
|
* Helper function to build up a correct locus url depending on the value passed
|
|
221
222
|
* @param {Object} options type and value to fetch meeting info
|
|
222
223
|
* @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]
|
|
224
|
+
* @param {String} options.installedOrgID org ID of user's machine
|
|
223
225
|
* @param {Object} options.destination ?? value.value
|
|
224
226
|
* @returns {Object} returns an object with {resource, method}
|
|
225
227
|
*/
|
|
226
228
|
MeetingInfoUtil.getRequestBody = (options: {type: string; destination: object} | any) => {
|
|
227
|
-
const {type, destination, password, captchaInfo} = options;
|
|
229
|
+
const {type, destination, password, captchaInfo, installedOrgID, locusId, extraParams} = options;
|
|
228
230
|
const body: any = {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
+
...DEFAULT_MEETING_INFO_REQUEST_BODY,
|
|
232
|
+
...extraParams,
|
|
231
233
|
};
|
|
232
234
|
|
|
233
235
|
switch (type) {
|
|
@@ -271,6 +273,14 @@ MeetingInfoUtil.getRequestBody = (options: {type: string; destination: object} |
|
|
|
271
273
|
body.captchaVerifyCode = captchaInfo.code;
|
|
272
274
|
}
|
|
273
275
|
|
|
276
|
+
if (installedOrgID) {
|
|
277
|
+
body.installedOrgID = installedOrgID;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
if (locusId) {
|
|
281
|
+
body.locusId = locusId;
|
|
282
|
+
}
|
|
283
|
+
|
|
274
284
|
return body;
|
|
275
285
|
};
|
|
276
286
|
|
|
@@ -40,4 +40,24 @@ export default class MeetingCollection extends Collection {
|
|
|
40
40
|
|
|
41
41
|
return null;
|
|
42
42
|
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* get a specific meeting searching for key
|
|
46
|
+
* @param {String} breakoutUrl
|
|
47
|
+
* @returns {Meeting} if found, else returns null
|
|
48
|
+
* @public
|
|
49
|
+
* @memberof MeetingCollection
|
|
50
|
+
*/
|
|
51
|
+
public getActiveBreakoutLocus(breakoutUrl: string) {
|
|
52
|
+
if (breakoutUrl) {
|
|
53
|
+
// @ts-ignore
|
|
54
|
+
return find(
|
|
55
|
+
// @ts-ignore
|
|
56
|
+
this.meetings,
|
|
57
|
+
(meeting) => meeting.breakouts?.url === breakoutUrl && meeting.breakouts?.isActiveBreakout
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
43
63
|
}
|