@webex/plugin-meetings 2.59.8-next.2 → 2.60.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -8
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +41 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +357 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +215 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.js +22 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.js +51 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +44 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +1047 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.js +77 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.js +64 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/browser-detection.js +1 -2
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +1 -2
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +1 -2
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +1 -2
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +1 -2
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +1 -2
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +1 -2
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/no-meeting-info.js +50 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/parameter.js +3 -4
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +1 -2
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +1 -2
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reclaim-host-role-errors.js +154 -0
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/reconnection-in-progress.js +1 -2
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +1 -2
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +1 -2
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +48 -28
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +1 -2
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +1 -2
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +1 -2
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +1 -2
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +1 -2
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +1 -2
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +2 -3
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +8 -5
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +22 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +9 -12
- package/dist/config.js.map +1 -1
- package/dist/constants.js +437 -433
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +3 -6
- package/dist/controls-options-manager/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +14 -6
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.js +126 -37
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.js +7 -0
- package/dist/controls-options-manager/types.js.map +1 -0
- package/dist/controls-options-manager/util.js +309 -19
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.js +116 -4
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +22 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +365 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +24 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +95 -6
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -4
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +1 -2
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +1 -2
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.js +408 -67
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +13 -5
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +58 -3
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +251 -78
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +97 -13
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +106 -319
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +96 -153
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +1 -22
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +498 -493
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +90 -3
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +4579 -2951
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +291 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +224 -133
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +295 -197
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js +7 -0
- package/dist/meeting/request.type.js.map +1 -0
- package/dist/meeting/state.js +1 -2
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js +602 -432
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +1 -2
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +74 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +197 -63
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -2
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +2 -3
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +25 -12
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +23 -2
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +464 -123
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +4 -3
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +107 -6
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +54 -2
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.js +3 -4
- package/dist/member/member.types.js.map +1 -1
- package/dist/member/types.js +23 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +131 -29
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +11 -2
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +172 -8
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +108 -41
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +14 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +327 -234
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +14 -7
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +4 -452
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +344 -0
- package/dist/multistream/mediaRequestManager.js.map +1 -0
- package/dist/multistream/receiveSlot.js +200 -0
- package/dist/multistream/receiveSlot.js.map +1 -0
- package/dist/multistream/receiveSlotManager.js +174 -0
- package/dist/multistream/receiveSlotManager.js.map +1 -0
- package/dist/multistream/remoteMedia.js +268 -0
- package/dist/multistream/remoteMedia.js.map +1 -0
- package/dist/multistream/remoteMediaGroup.js +267 -0
- package/dist/multistream/remoteMediaGroup.js.map +1 -0
- package/dist/multistream/remoteMediaManager.js +1211 -0
- package/dist/multistream/remoteMediaManager.js.map +1 -0
- package/dist/multistream/sendSlotManager.js +236 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/networkQualityMonitor/index.js +5 -4
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +2 -3
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -3
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +1 -2
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.js +258 -72
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +18 -10
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/constants.js +12 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.js +4 -6
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.js +21 -23
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +272 -220
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +4 -5
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.js +57 -46
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +10 -10
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js +101 -235
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +126 -180
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +115 -105
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +11 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +115 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/global.js +2 -93
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +374 -374
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +100 -66
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +1 -2
- package/dist/transcription/index.js.map +1 -1
- package/dist/webinar/collection.js +43 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.js +68 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +27 -18
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +220 -0
- package/src/breakouts/breakout.ts +188 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +925 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/reclaim-host-role-errors.ts +134 -0
- package/src/common/errors/webex-errors.ts +36 -12
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/logs/request.ts +5 -1
- package/src/common/queue.ts +22 -8
- package/src/config.ts +7 -9
- package/src/constants.ts +263 -89
- package/src/controls-options-manager/enums.ts +11 -1
- package/src/controls-options-manager/index.ts +116 -21
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +294 -14
- package/src/index.ts +40 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +110 -0
- package/src/locus-info/index.ts +449 -61
- package/src/locus-info/infoUtils.ts +14 -2
- package/src/locus-info/mediaSharesUtils.ts +64 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +85 -2
- package/src/media/index.ts +153 -370
- package/src/media/properties.ts +106 -136
- package/src/media/util.ts +0 -21
- package/src/mediaQualityMetrics/config.ts +379 -377
- package/src/meeting/in-meeting-actions.ts +168 -0
- package/src/meeting/index.ts +3801 -2457
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +224 -138
- package/src/meeting/request.ts +207 -127
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/util.ts +590 -423
- package/src/meeting-info/index.ts +81 -8
- package/src/meeting-info/meeting-info-v2.ts +159 -13
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +22 -9
- package/src/meetings/collection.ts +20 -0
- package/src/meetings/index.ts +466 -124
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +116 -5
- package/src/member/index.ts +52 -1
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +139 -28
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +196 -7
- package/src/members/request.ts +97 -17
- package/src/members/types.ts +29 -0
- package/src/members/util.ts +333 -240
- package/src/metrics/constants.ts +12 -4
- package/src/metrics/index.ts +1 -471
- package/src/multistream/mediaRequestManager.ts +440 -0
- package/src/multistream/receiveSlot.ts +184 -0
- package/src/multistream/receiveSlotManager.ts +166 -0
- package/src/multistream/remoteMedia.ts +254 -0
- package/src/multistream/remoteMediaGroup.ts +284 -0
- package/src/multistream/remoteMediaManager.ts +1145 -0
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/networkQualityMonitor/index.ts +6 -6
- package/src/reachability/index.ts +238 -45
- package/src/reachability/request.ts +17 -8
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +30 -4
- package/src/reconnection-manager/index.ts +124 -107
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +98 -240
- package/src/roap/request.ts +74 -148
- package/src/roap/turnDiscovery.ts +62 -56
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +100 -0
- package/src/statsAnalyzer/global.ts +1 -92
- package/src/statsAnalyzer/index.ts +429 -447
- package/src/statsAnalyzer/mqaUtil.ts +105 -103
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +320 -264
- package/test/integration/spec/space-meeting.js +77 -4
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +237 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1790 -0
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +72 -0
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +163 -0
- package/test/unit/spec/controls-options-manager/util.js +576 -60
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +323 -30
- package/test/unit/spec/locus-info/index.js +1390 -16
- package/test/unit/spec/locus-info/infoUtils.js +54 -16
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
- package/test/unit/spec/locus-info/parser.js +116 -35
- package/test/unit/spec/locus-info/selfUtils.js +275 -0
- package/test/unit/spec/media/index.ts +274 -0
- package/test/unit/spec/media/properties.ts +75 -84
- package/test/unit/spec/meeting/in-meeting-actions.ts +82 -0
- package/test/unit/spec/meeting/index.js +7420 -3125
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +407 -212
- package/test/unit/spec/meeting/request.js +512 -42
- package/test/unit/spec/meeting/utils.js +741 -24
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +500 -6
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +14 -0
- package/test/unit/spec/meetings/index.js +1012 -209
- package/test/unit/spec/meetings/utils.js +202 -2
- package/test/unit/spec/member/index.js +38 -8
- package/test/unit/spec/member/util.js +528 -27
- package/test/unit/spec/members/index.js +597 -3
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +210 -0
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
- package/test/unit/spec/multistream/receiveSlot.ts +163 -0
- package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
- package/test/unit/spec/multistream/remoteMedia.ts +255 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/networkQualityMonitor/index.js +4 -4
- package/test/unit/spec/reachability/index.ts +598 -24
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reconnection-manager/index.js +130 -22
- package/test/unit/spec/recording-controller/index.js +293 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +200 -77
- package/test/unit/spec/roap/request.ts +232 -0
- package/test/unit/spec/roap/turnDiscovery.ts +86 -48
- package/test/unit/spec/rtcMetrics/index.ts +73 -0
- package/test/unit/spec/stats-analyzer/index.js +205 -50
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/constants.js +9 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -45
- package/test/utils/webex-config.js +4 -0
- package/test/utils/webex-test-users.js +7 -3
- package/dist/meeting/effectsState.js +0 -260
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -289
- package/dist/metrics/config.js.map +0 -1
- package/dist/peer-connection-manager/index.js +0 -671
- package/dist/peer-connection-manager/index.js.map +0 -1
- package/dist/peer-connection-manager/util.js +0 -110
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/dist/roap/collection.js +0 -63
- package/dist/roap/collection.js.map +0 -1
- package/dist/roap/handler.js +0 -279
- package/dist/roap/handler.js.map +0 -1
- package/dist/roap/state.js +0 -127
- package/dist/roap/state.js.map +0 -1
- package/dist/roap/util.js +0 -76
- package/dist/roap/util.js.map +0 -1
- package/src/index.js +0 -15
- package/src/meeting/effectsState.ts +0 -209
- package/src/metrics/config.ts +0 -485
- package/src/peer-connection-manager/index.ts +0 -847
- package/src/peer-connection-manager/util.ts +0 -119
- package/src/roap/collection.ts +0 -62
- package/src/roap/handler.ts +0 -294
- package/src/roap/state.ts +0 -156
- package/src/roap/util.ts +0 -100
- package/test/unit/spec/meeting/effectsState.js +0 -281
- package/test/unit/spec/peerconnection-manager/index.js +0 -218
- package/test/unit/spec/peerconnection-manager/utils.js +0 -49
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
- package/test/unit/spec/roap/util.js +0 -30
|
@@ -70,10 +70,41 @@ 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, sendCAevents} = options;
|
|
75
|
+
if (meetingId && sendCAevents) {
|
|
76
|
+
this.webex.internal.newMetrics.submitInternalEvent({
|
|
77
|
+
name: 'internal.client.meetinginfo.request',
|
|
78
|
+
});
|
|
79
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
80
|
+
name: 'client.meetinginfo.request',
|
|
81
|
+
options: {
|
|
82
|
+
meetingId,
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
|
|
74
87
|
return this.meetingInfoRequest
|
|
75
88
|
.fetchMeetingInfo(options)
|
|
76
89
|
.then((info) => {
|
|
90
|
+
if (meetingId && sendCAevents) {
|
|
91
|
+
this.webex.internal.newMetrics.submitInternalEvent({
|
|
92
|
+
name: 'internal.client.meetinginfo.response',
|
|
93
|
+
});
|
|
94
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
95
|
+
name: 'client.meetinginfo.response',
|
|
96
|
+
payload: {
|
|
97
|
+
identifiers: {
|
|
98
|
+
meetingLookupUrl: info?.url,
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
options: {
|
|
102
|
+
meetingId,
|
|
103
|
+
webexConferenceIdStr: info?.body?.confIdStr || info?.body?.confID,
|
|
104
|
+
globalMeetingId: info?.body?.meetingId,
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
}
|
|
77
108
|
if (info && info.body) {
|
|
78
109
|
this.setMeetingInfo(info.body.sipMeetingUri || info.body.meetingLink, info.body);
|
|
79
110
|
}
|
|
@@ -84,6 +115,23 @@ export default class MeetingInfo {
|
|
|
84
115
|
LoggerProxy.logger.error(
|
|
85
116
|
`Meeting-info:index#requestFetchInfo --> ${error} fetch meetingInfo`
|
|
86
117
|
);
|
|
118
|
+
if (meetingId && sendCAevents) {
|
|
119
|
+
this.webex.internal.newMetrics.submitInternalEvent({
|
|
120
|
+
name: 'internal.client.meetinginfo.response',
|
|
121
|
+
});
|
|
122
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
123
|
+
name: 'client.meetinginfo.response',
|
|
124
|
+
payload: {
|
|
125
|
+
identifiers: {
|
|
126
|
+
meetingLookupUrl: error?.url,
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
options: {
|
|
130
|
+
meetingId,
|
|
131
|
+
rawError: error,
|
|
132
|
+
},
|
|
133
|
+
});
|
|
134
|
+
}
|
|
87
135
|
|
|
88
136
|
return Promise.reject(error);
|
|
89
137
|
});
|
|
@@ -105,29 +153,54 @@ export default class MeetingInfo {
|
|
|
105
153
|
});
|
|
106
154
|
}
|
|
107
155
|
|
|
156
|
+
// eslint-disable-next-line valid-jsdoc
|
|
108
157
|
/**
|
|
109
158
|
* Fetches meeting info from the server
|
|
110
159
|
* @param {String} destination one of many different types of destinations to look up info for
|
|
111
160
|
* @param {String} [type] to match up with the destination value
|
|
161
|
+
* @param {String} [password] meeting password
|
|
162
|
+
* @param {Object} [captchaInfo] captcha code and id
|
|
163
|
+
* @param {String} [installedOrgID]
|
|
164
|
+
* @param {String} [locusId]
|
|
165
|
+
* @param {Object} [extraParams]
|
|
166
|
+
* @param {Boolean} [options] meeting Id and whether Call Analyzer events should be sent
|
|
112
167
|
* @returns {Promise} returns a meeting info object
|
|
113
168
|
* @public
|
|
114
169
|
* @memberof MeetingInfo
|
|
115
170
|
*/
|
|
116
|
-
public fetchMeetingInfo(
|
|
171
|
+
public fetchMeetingInfo(
|
|
172
|
+
destination: string,
|
|
173
|
+
type: string = null,
|
|
174
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
175
|
+
password: string = null,
|
|
176
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
177
|
+
captchaInfo: {
|
|
178
|
+
code: string;
|
|
179
|
+
id: string;
|
|
180
|
+
} = null,
|
|
181
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
182
|
+
installedOrgID = null,
|
|
183
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
184
|
+
locusId = null,
|
|
185
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
186
|
+
extraParams: object = {},
|
|
187
|
+
options: {meetingId?: string; sendCAevents?: boolean} = {}
|
|
188
|
+
) {
|
|
117
189
|
if (type === _PERSONAL_ROOM_ && !destination) {
|
|
118
190
|
destination = this.webex.internal.device.userId;
|
|
119
191
|
}
|
|
120
192
|
|
|
121
193
|
return this.fetchInfoOptions(MeetingInfoUtil.extractDestination(destination, type), type).then(
|
|
122
|
-
(
|
|
194
|
+
(infoOptions) =>
|
|
123
195
|
// fetch meeting info
|
|
124
|
-
this.requestFetchInfo(options).catch((error) => {
|
|
196
|
+
this.requestFetchInfo({...infoOptions, ...options}).catch((error) => {
|
|
125
197
|
// if it failed the first time as meeting link
|
|
126
|
-
if (
|
|
198
|
+
if (infoOptions.type === _MEETING_LINK_) {
|
|
127
199
|
// convert the meeting link to sip URI and retry
|
|
128
|
-
return this.requestFetchInfo(
|
|
129
|
-
this.fetchInfoOptions(MeetingInfoUtil.convertLinkToSip(destination), _SIP_URI_)
|
|
130
|
-
|
|
200
|
+
return this.requestFetchInfo({
|
|
201
|
+
...this.fetchInfoOptions(MeetingInfoUtil.convertLinkToSip(destination), _SIP_URI_),
|
|
202
|
+
...options,
|
|
203
|
+
});
|
|
131
204
|
}
|
|
132
205
|
|
|
133
206
|
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
|
*/
|
|
@@ -63,6 +69,30 @@ export class MeetingInfoV2AdhocMeetingError extends Error {
|
|
|
63
69
|
}
|
|
64
70
|
}
|
|
65
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
|
+
|
|
66
96
|
/**
|
|
67
97
|
* Error to indicate that preferred webex site not present to start adhoc meeting
|
|
68
98
|
*/
|
|
@@ -124,14 +154,38 @@ export default class MeetingInfoV2 {
|
|
|
124
154
|
});
|
|
125
155
|
}
|
|
126
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
|
+
|
|
127
180
|
/**
|
|
128
181
|
* Creates adhoc space meetings for a space by fetching the conversation infomation
|
|
129
182
|
* @param {String} conversationUrl conversationUrl to start adhoc meeting on
|
|
183
|
+
* @param {String} installedOrgID org ID of user's machine
|
|
130
184
|
* @returns {Promise} returns a meeting info object
|
|
131
185
|
* @public
|
|
132
186
|
* @memberof MeetingInfo
|
|
133
187
|
*/
|
|
134
|
-
async createAdhocSpaceMeeting(conversationUrl: string) {
|
|
188
|
+
async createAdhocSpaceMeeting(conversationUrl: string, installedOrgID?: string) {
|
|
135
189
|
if (!this.webex.meetings.preferredWebexSite) {
|
|
136
190
|
throw Error('No preferred webex site found');
|
|
137
191
|
}
|
|
@@ -159,21 +213,27 @@ export default class MeetingInfoV2 {
|
|
|
159
213
|
keyUrl: conversation.encryptionKeyUrl,
|
|
160
214
|
kroUrl: conversation.kmsResourceObjectUrl,
|
|
161
215
|
invitees: getInvitees(conversation.participants?.items),
|
|
216
|
+
installedOrgID,
|
|
162
217
|
};
|
|
163
218
|
|
|
164
219
|
const uri = this.webex.meetings.preferredWebexSite
|
|
165
220
|
? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant`
|
|
166
221
|
: '';
|
|
167
222
|
|
|
168
|
-
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);
|
|
169
|
-
|
|
170
223
|
return this.webex.request({
|
|
171
224
|
method: HTTP_VERBS.POST,
|
|
172
225
|
uri,
|
|
173
226
|
body,
|
|
174
227
|
});
|
|
175
228
|
})
|
|
229
|
+
.then((requestResult) => {
|
|
230
|
+
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);
|
|
231
|
+
|
|
232
|
+
return requestResult;
|
|
233
|
+
})
|
|
176
234
|
.catch((err) => {
|
|
235
|
+
this.handlePolicyError(err);
|
|
236
|
+
|
|
177
237
|
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_FAILURE, {
|
|
178
238
|
reason: err.message,
|
|
179
239
|
stack: err.stack,
|
|
@@ -190,6 +250,10 @@ export default class MeetingInfoV2 {
|
|
|
190
250
|
* @param {Object} captchaInfo
|
|
191
251
|
* @param {String} captchaInfo.code
|
|
192
252
|
* @param {String} captchaInfo.id
|
|
253
|
+
* @param {String} installedOrgID org ID of user's machine
|
|
254
|
+
* @param {String} locusId
|
|
255
|
+
* @param {Object} extraParams
|
|
256
|
+
* @param {Object} options
|
|
193
257
|
* @returns {Promise} returns a meeting info object
|
|
194
258
|
* @public
|
|
195
259
|
* @memberof MeetingInfo
|
|
@@ -201,8 +265,14 @@ export default class MeetingInfoV2 {
|
|
|
201
265
|
captchaInfo: {
|
|
202
266
|
code: string;
|
|
203
267
|
id: string;
|
|
204
|
-
} = null
|
|
268
|
+
} = null,
|
|
269
|
+
installedOrgID = null,
|
|
270
|
+
locusId = null,
|
|
271
|
+
extraParams: object = {},
|
|
272
|
+
options: {meetingId?: string; sendCAevents?: boolean} = {}
|
|
205
273
|
) {
|
|
274
|
+
const {meetingId, sendCAevents} = options;
|
|
275
|
+
|
|
206
276
|
const destinationType = await MeetingInfoUtil.getDestinationType({
|
|
207
277
|
destination,
|
|
208
278
|
type,
|
|
@@ -214,12 +284,35 @@ export default class MeetingInfoV2 {
|
|
|
214
284
|
this.webex.config.meetings.experimental.enableAdhocMeetings &&
|
|
215
285
|
this.webex.meetings.preferredWebexSite
|
|
216
286
|
) {
|
|
217
|
-
return this.createAdhocSpaceMeeting(destinationType.destination);
|
|
287
|
+
return this.createAdhocSpaceMeeting(destinationType.destination, installedOrgID);
|
|
218
288
|
}
|
|
219
289
|
|
|
220
|
-
const body = await MeetingInfoUtil.getRequestBody({
|
|
290
|
+
const body = await MeetingInfoUtil.getRequestBody({
|
|
291
|
+
...destinationType,
|
|
292
|
+
password,
|
|
293
|
+
captchaInfo,
|
|
294
|
+
installedOrgID,
|
|
295
|
+
locusId,
|
|
296
|
+
extraParams,
|
|
297
|
+
});
|
|
298
|
+
|
|
299
|
+
// If the body only contains the default properties, we don't have enough to
|
|
300
|
+
// fetch the meeting info so don't bother trying.
|
|
301
|
+
if (
|
|
302
|
+
!lodash.difference(Object.keys(body), Object.keys(DEFAULT_MEETING_INFO_REQUEST_BODY)).length
|
|
303
|
+
) {
|
|
304
|
+
const err = new Error('Not enough information to fetch meeting info');
|
|
305
|
+
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {
|
|
306
|
+
reason: err.message,
|
|
307
|
+
destinationType: destinationType?.type,
|
|
308
|
+
webExMeetingId: destinationType?.info?.webExMeetingId,
|
|
309
|
+
sipUri: destinationType?.info?.sipUri,
|
|
310
|
+
});
|
|
221
311
|
|
|
222
|
-
|
|
312
|
+
throw err;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
const requestOptions: any = {
|
|
223
316
|
method: HTTP_VERBS.POST,
|
|
224
317
|
body,
|
|
225
318
|
};
|
|
@@ -227,21 +320,74 @@ export default class MeetingInfoV2 {
|
|
|
227
320
|
const directURI = await MeetingInfoUtil.getDirectMeetingInfoURI(destinationType);
|
|
228
321
|
|
|
229
322
|
if (directURI) {
|
|
230
|
-
|
|
323
|
+
requestOptions.uri = directURI;
|
|
231
324
|
} else {
|
|
232
|
-
|
|
233
|
-
|
|
325
|
+
requestOptions.service = WBXAPPAPI_SERVICE;
|
|
326
|
+
requestOptions.resource = 'meetingInfo';
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
if (meetingId && sendCAevents) {
|
|
330
|
+
this.webex.internal.newMetrics.submitInternalEvent({
|
|
331
|
+
name: 'internal.client.meetinginfo.request',
|
|
332
|
+
});
|
|
333
|
+
|
|
334
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
335
|
+
name: 'client.meetinginfo.request',
|
|
336
|
+
options: {
|
|
337
|
+
meetingId,
|
|
338
|
+
},
|
|
339
|
+
});
|
|
234
340
|
}
|
|
235
341
|
|
|
236
342
|
return this.webex
|
|
237
|
-
.request(
|
|
343
|
+
.request(requestOptions)
|
|
238
344
|
.then((response) => {
|
|
345
|
+
if (meetingId && sendCAevents) {
|
|
346
|
+
this.webex.internal.newMetrics.submitInternalEvent({
|
|
347
|
+
name: 'internal.client.meetinginfo.response',
|
|
348
|
+
});
|
|
349
|
+
|
|
350
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
351
|
+
name: 'client.meetinginfo.response',
|
|
352
|
+
payload: {
|
|
353
|
+
identifiers: {
|
|
354
|
+
meetingLookupUrl: response?.url,
|
|
355
|
+
},
|
|
356
|
+
},
|
|
357
|
+
options: {
|
|
358
|
+
meetingId,
|
|
359
|
+
webexConferenceIdStr: response?.body?.confIdStr || response?.body?.confID,
|
|
360
|
+
globalMeetingId: response?.body?.meetingId,
|
|
361
|
+
},
|
|
362
|
+
});
|
|
363
|
+
}
|
|
239
364
|
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS);
|
|
240
365
|
|
|
241
366
|
return response;
|
|
242
367
|
})
|
|
243
368
|
.catch((err) => {
|
|
369
|
+
if (meetingId && sendCAevents) {
|
|
370
|
+
this.webex.internal.newMetrics.submitInternalEvent({
|
|
371
|
+
name: 'internal.client.meetinginfo.response',
|
|
372
|
+
});
|
|
373
|
+
|
|
374
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
375
|
+
name: 'client.meetinginfo.response',
|
|
376
|
+
payload: {
|
|
377
|
+
identifiers: {
|
|
378
|
+
meetingLookupUrl: err?.url,
|
|
379
|
+
},
|
|
380
|
+
},
|
|
381
|
+
options: {
|
|
382
|
+
meetingId,
|
|
383
|
+
rawError: err,
|
|
384
|
+
},
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
|
|
244
388
|
if (err?.statusCode === 403) {
|
|
389
|
+
this.handlePolicyError(err);
|
|
390
|
+
|
|
245
391
|
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR, {
|
|
246
392
|
reason: err.message,
|
|
247
393
|
stack: err.stack,
|
package/src/meeting-info/util.ts
CHANGED
|
@@ -236,7 +236,7 @@ MeetingInfoUtil.generateOptions = async (from) => {
|
|
|
236
236
|
}
|
|
237
237
|
} else {
|
|
238
238
|
throw new ParameterError(
|
|
239
|
-
'MeetingInfo is fetched with meeting link,
|
|
239
|
+
'MeetingInfo is fetched with the meeting link, SIP URI, phone number, Hydra people ID, or a conversation URL.'
|
|
240
240
|
);
|
|
241
241
|
}
|
|
242
242
|
|
|
@@ -19,14 +19,20 @@ import {
|
|
|
19
19
|
JOIN,
|
|
20
20
|
MEET,
|
|
21
21
|
MEET_M,
|
|
22
|
+
MEET_CISCO,
|
|
23
|
+
MEET_CO,
|
|
22
24
|
HTTPS_PROTOCOL,
|
|
23
25
|
UUID_REG,
|
|
24
26
|
VALID_EMAIL_ADDRESS,
|
|
27
|
+
DEFAULT_MEETING_INFO_REQUEST_BODY,
|
|
25
28
|
} from '../constants';
|
|
26
29
|
import ParameterError from '../common/errors/parameter';
|
|
27
30
|
import LoggerProxy from '../common/logs/logger-proxy';
|
|
31
|
+
import {SpaceIDDeprecatedError} from '../common/errors/webex-errors';
|
|
28
32
|
|
|
29
33
|
const MeetingInfoUtil: any = {};
|
|
34
|
+
const meetingInfoError =
|
|
35
|
+
'MeetingInfo is fetched with the meeting link, SIP URI, phone number, Hydra people ID, or a conversation URL.';
|
|
30
36
|
|
|
31
37
|
MeetingInfoUtil.getParsedUrl = (link) => {
|
|
32
38
|
try {
|
|
@@ -62,6 +68,8 @@ MeetingInfoUtil.isMeetingLink = (value: string) => {
|
|
|
62
68
|
parsedUrl.pathname &&
|
|
63
69
|
(parsedUrl.pathname.includes(`/${MEET}`) ||
|
|
64
70
|
parsedUrl.pathname.includes(`/${MEET_M}`) ||
|
|
71
|
+
parsedUrl.pathname.includes(`/${MEET_CISCO}`) ||
|
|
72
|
+
parsedUrl.pathname.includes(`/${MEET_CO}`) ||
|
|
65
73
|
parsedUrl.pathname.includes(`/${JOIN}`));
|
|
66
74
|
|
|
67
75
|
return hostNameBool && pathNameBool;
|
|
@@ -215,12 +223,8 @@ MeetingInfoUtil.getDestinationType = async (from) => {
|
|
|
215
223
|
throw e;
|
|
216
224
|
}
|
|
217
225
|
} else {
|
|
218
|
-
LoggerProxy.logger.warn(
|
|
219
|
-
|
|
220
|
-
);
|
|
221
|
-
throw new ParameterError(
|
|
222
|
-
'MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url.'
|
|
223
|
-
);
|
|
226
|
+
LoggerProxy.logger.warn(`Meeting-info:util#getDestinationType --> ${meetingInfoError}`);
|
|
227
|
+
throw new ParameterError(`${meetingInfoError}`);
|
|
224
228
|
}
|
|
225
229
|
|
|
226
230
|
return Promise.resolve(options);
|
|
@@ -230,14 +234,15 @@ MeetingInfoUtil.getDestinationType = async (from) => {
|
|
|
230
234
|
* Helper function to build up a correct locus url depending on the value passed
|
|
231
235
|
* @param {Object} options type and value to fetch meeting info
|
|
232
236
|
* @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]
|
|
237
|
+
* @param {String} options.installedOrgID org ID of user's machine
|
|
233
238
|
* @param {Object} options.destination ?? value.value
|
|
234
239
|
* @returns {Object} returns an object with {resource, method}
|
|
235
240
|
*/
|
|
236
241
|
MeetingInfoUtil.getRequestBody = (options: {type: string; destination: object} | any) => {
|
|
237
|
-
const {type, destination, password, captchaInfo} = options;
|
|
242
|
+
const {type, destination, password, captchaInfo, installedOrgID, locusId, extraParams} = options;
|
|
238
243
|
const body: any = {
|
|
239
|
-
|
|
240
|
-
|
|
244
|
+
...DEFAULT_MEETING_INFO_REQUEST_BODY,
|
|
245
|
+
...extraParams,
|
|
241
246
|
};
|
|
242
247
|
|
|
243
248
|
switch (type) {
|
|
@@ -281,6 +286,14 @@ MeetingInfoUtil.getRequestBody = (options: {type: string; destination: object} |
|
|
|
281
286
|
body.captchaVerifyCode = captchaInfo.code;
|
|
282
287
|
}
|
|
283
288
|
|
|
289
|
+
if (installedOrgID) {
|
|
290
|
+
body.installedOrgID = installedOrgID;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
if (locusId) {
|
|
294
|
+
body.locusId = locusId;
|
|
295
|
+
}
|
|
296
|
+
|
|
284
297
|
return body;
|
|
285
298
|
};
|
|
286
299
|
|
|
@@ -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
|
}
|