@webex/plugin-meetings 2.60.0 → 2.60.1-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.d.ts +42 -0
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.d.ts +31 -0
- package/dist/annotation/constants.js +41 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.d.ts +117 -0
- package/dist/annotation/index.js +357 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.d.ts +8 -0
- package/dist/breakouts/breakout.js +215 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.d.ts +5 -0
- package/dist/breakouts/collection.js +22 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/breakouts/edit-lock-error.js +51 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.d.ts +8 -0
- package/dist/breakouts/events.js +44 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.d.ts +5 -0
- package/dist/breakouts/index.js +1047 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.d.ts +22 -0
- package/dist/breakouts/request.js +77 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.d.ts +15 -0
- package/dist/breakouts/utils.js +64 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/browser-detection.js +2 -3
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +3 -4
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +1 -2
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +1 -2
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +1 -2
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +1 -2
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +1 -2
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/common/errors/no-meeting-info.js +50 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/parameter.js +3 -4
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +1 -2
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +1 -2
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/{reclaim-host-role-error.js → reclaim-host-role-errors.js} +7 -11
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/reconnection-in-progress.js +1 -2
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +1 -2
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +1 -2
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.d.ts +20 -8
- package/dist/common/errors/webex-errors.js +48 -28
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +1 -2
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +1 -2
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +1 -2
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +1 -2
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +1 -2
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +1 -2
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +2 -3
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.d.ts +3 -1
- package/dist/common/logs/request.js +8 -5
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.d.ts +9 -7
- package/dist/common/queue.js +22 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.d.ts +6 -7
- package/dist/config.js +8 -10
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +217 -97
- package/dist/constants.js +416 -441
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +3 -6
- package/dist/controls-options-manager/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.d.ts +11 -1
- package/dist/controls-options-manager/enums.js +15 -6
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.d.ts +17 -1
- package/dist/controls-options-manager/index.js +127 -38
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.d.ts +43 -0
- package/dist/controls-options-manager/types.js +7 -0
- package/dist/controls-options-manager/types.js.map +1 -0
- package/dist/controls-options-manager/util.d.ts +1 -7
- package/dist/controls-options-manager/util.js +309 -19
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.js +121 -5
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.d.ts +2 -0
- package/dist/interceptors/index.js +15 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/locusRetry.d.ts +27 -0
- package/dist/interceptors/locusRetry.js +94 -0
- package/dist/interceptors/locusRetry.js.map +1 -0
- package/dist/interpretation/collection.d.ts +5 -0
- package/dist/interpretation/collection.js +22 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.d.ts +5 -0
- package/dist/interpretation/index.js +365 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.d.ts +5 -0
- package/dist/interpretation/siLanguage.js +24 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +100 -11
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -4
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +1 -2
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +1 -2
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.d.ts +57 -4
- package/dist/locus-info/index.js +425 -84
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +13 -5
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +58 -3
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.d.ts +66 -6
- package/dist/locus-info/parser.js +253 -80
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +97 -13
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.d.ts +2 -0
- package/dist/media/index.js +107 -319
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.d.ts +38 -53
- package/dist/media/properties.js +96 -153
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +1 -22
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.d.ts +234 -230
- package/dist/mediaQualityMetrics/config.js +302 -498
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.d.ts +88 -0
- package/dist/meeting/in-meeting-actions.js +94 -3
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.d.ts +591 -494
- package/dist/meeting/index.js +4732 -2990
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/meeting/locusMediaRequest.js +291 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.d.ts +93 -25
- package/dist/meeting/muteState.js +224 -133
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.d.ts +82 -47
- package/dist/meeting/request.js +297 -199
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.d.ts +11 -0
- package/dist/meeting/request.type.js +7 -0
- package/dist/meeting/request.type.js.map +1 -0
- package/dist/meeting/state.js +1 -2
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.d.ts +102 -1
- package/dist/meeting/util.js +605 -435
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +3 -4
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.d.ts +13 -1
- package/dist/meeting-info/index.js +74 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.d.ts +31 -1
- package/dist/meeting-info/meeting-info-v2.js +200 -63
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -2
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +2 -3
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +39 -41
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.d.ts +17 -0
- package/dist/meetings/collection.js +42 -4
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.d.ts +93 -21
- package/dist/meetings/index.js +490 -127
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.d.ts +4 -0
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +4 -3
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +107 -6
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.d.ts +13 -1
- package/dist/member/index.js +45 -2
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.js +3 -4
- package/dist/member/member.types.js.map +1 -1
- package/dist/member/types.d.ts +32 -0
- package/dist/member/types.js +23 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +120 -29
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.d.ts +5 -0
- package/dist/members/collection.js +11 -2
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.d.ts +56 -11
- package/dist/members/index.js +174 -47
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.d.ts +67 -11
- package/dist/members/request.js +102 -54
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +3 -4
- package/dist/members/types.js.map +1 -1
- package/dist/members/util.d.ts +214 -1
- package/dist/members/util.js +327 -284
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.d.ts +15 -6
- package/dist/metrics/constants.js +17 -9
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.d.ts +4 -111
- package/dist/metrics/index.js +4 -452
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.d.ts +118 -0
- package/dist/multistream/mediaRequestManager.js +344 -0
- package/dist/multistream/mediaRequestManager.js.map +1 -0
- package/dist/multistream/receiveSlot.d.ts +68 -0
- package/dist/multistream/receiveSlot.js +200 -0
- package/dist/multistream/receiveSlot.js.map +1 -0
- package/dist/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/multistream/receiveSlotManager.js +174 -0
- package/dist/multistream/receiveSlotManager.js.map +1 -0
- package/dist/multistream/remoteMedia.d.ts +72 -0
- package/dist/multistream/remoteMedia.js +268 -0
- package/dist/multistream/remoteMedia.js.map +1 -0
- package/dist/multistream/remoteMediaGroup.d.ts +47 -0
- package/dist/multistream/remoteMediaGroup.js +267 -0
- package/dist/multistream/remoteMediaGroup.js.map +1 -0
- package/dist/multistream/remoteMediaManager.d.ts +285 -0
- package/dist/multistream/remoteMediaManager.js +1211 -0
- package/dist/multistream/remoteMediaManager.js.map +1 -0
- package/dist/multistream/sendSlotManager.d.ts +61 -0
- package/dist/multistream/sendSlotManager.js +236 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/networkQualityMonitor/index.js +5 -4
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +2 -3
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -3
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +1 -2
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/clusterReachability.d.ts +109 -0
- package/dist/reachability/clusterReachability.js +357 -0
- package/dist/reachability/clusterReachability.js.map +1 -0
- package/dist/reachability/index.d.ts +61 -95
- package/dist/reachability/index.js +300 -393
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.d.ts +7 -3
- package/dist/reachability/request.js +18 -10
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.d.ts +8 -0
- package/dist/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- package/dist/reactions/constants.d.ts +3 -0
- package/dist/reactions/constants.js +12 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.d.ts +2 -2
- package/dist/reactions/reactions.js +4 -6
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.d.ts +23 -3
- package/dist/reactions/reactions.type.js +21 -23
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.d.ts +32 -8
- package/dist/reconnection-manager/index.js +282 -231
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +4 -5
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.d.ts +15 -1
- package/dist/recording-controller/index.js +57 -46
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.d.ts +5 -4
- package/dist/recording-controller/util.js +10 -10
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.d.ts +9 -47
- package/dist/roap/index.js +101 -235
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.d.ts +18 -12
- package/dist/roap/request.js +126 -180
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.d.ts +27 -16
- package/dist/roap/turnDiscovery.js +115 -105
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.d.ts +4 -0
- package/dist/rtcMetrics/constants.js +11 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.d.ts +54 -0
- package/dist/rtcMetrics/index.js +140 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/global.d.ts +1 -83
- package/dist/statsAnalyzer/global.js +2 -85
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.d.ts +50 -30
- package/dist/statsAnalyzer/index.js +435 -510
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +8 -6
- package/dist/statsAnalyzer/mqaUtil.js +120 -83
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +1 -2
- package/dist/transcription/index.js.map +1 -1
- package/dist/webinar/collection.d.ts +16 -0
- package/dist/webinar/collection.js +43 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.d.ts +5 -0
- package/dist/webinar/index.js +68 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +38 -26
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +220 -0
- package/src/breakouts/breakout.ts +188 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +925 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/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 +6 -7
- package/src/constants.ts +244 -97
- package/src/controls-options-manager/enums.ts +12 -0
- package/src/controls-options-manager/index.ts +116 -21
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +294 -14
- package/src/index.ts +44 -0
- package/src/interceptors/index.ts +3 -0
- package/src/interceptors/locusRetry.ts +67 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +110 -0
- package/src/locus-info/index.ts +449 -61
- package/src/locus-info/infoUtils.ts +14 -2
- package/src/locus-info/mediaSharesUtils.ts +64 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +85 -2
- package/src/media/index.ts +153 -370
- package/src/media/properties.ts +106 -136
- package/src/media/util.ts +0 -21
- package/src/mediaQualityMetrics/config.ts +244 -377
- package/src/meeting/in-meeting-actions.ts +176 -0
- package/src/meeting/index.ts +3944 -2489
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +224 -138
- package/src/meeting/request.ts +207 -127
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/util.ts +590 -423
- package/src/meeting-info/index.ts +81 -8
- package/src/meeting-info/meeting-info-v2.ts +163 -13
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +28 -28
- package/src/meetings/collection.ts +33 -0
- package/src/meetings/index.ts +487 -126
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +116 -5
- package/src/member/index.ts +43 -1
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +125 -28
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +187 -52
- package/src/members/request.ts +87 -27
- package/src/members/util.ts +332 -291
- package/src/metrics/constants.ts +15 -6
- package/src/metrics/index.ts +1 -471
- package/src/multistream/mediaRequestManager.ts +440 -0
- package/src/multistream/receiveSlot.ts +184 -0
- package/src/multistream/receiveSlotManager.ts +166 -0
- package/src/multistream/remoteMedia.ts +254 -0
- package/src/multistream/remoteMediaGroup.ts +284 -0
- package/src/multistream/remoteMediaManager.ts +1145 -0
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/networkQualityMonitor/index.ts +6 -6
- package/src/reachability/clusterReachability.ts +320 -0
- package/src/reachability/index.ts +243 -347
- package/src/reachability/request.ts +17 -8
- package/src/reachability/util.ts +24 -0
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +30 -4
- package/src/reconnection-manager/index.ts +168 -156
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +98 -241
- package/src/roap/request.ts +74 -148
- package/src/roap/turnDiscovery.ts +62 -56
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +124 -0
- package/src/statsAnalyzer/global.ts +1 -84
- package/src/statsAnalyzer/index.ts +477 -643
- package/src/statsAnalyzer/mqaUtil.ts +115 -114
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +320 -264
- package/test/integration/spec/space-meeting.js +77 -4
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +237 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1790 -0
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +72 -0
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +163 -0
- package/test/unit/spec/controls-options-manager/util.js +576 -60
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interceptors/locusRetry.ts +131 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +323 -30
- package/test/unit/spec/locus-info/index.js +1390 -16
- package/test/unit/spec/locus-info/infoUtils.js +54 -16
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
- package/test/unit/spec/locus-info/parser.js +116 -35
- package/test/unit/spec/locus-info/selfUtils.js +275 -0
- package/test/unit/spec/media/index.ts +290 -0
- package/test/unit/spec/media/properties.ts +75 -84
- package/test/unit/spec/meeting/in-meeting-actions.ts +86 -0
- package/test/unit/spec/meeting/index.js +8187 -2769
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +409 -213
- package/test/unit/spec/meeting/request.js +512 -42
- package/test/unit/spec/meeting/utils.js +741 -24
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +26 -0
- package/test/unit/spec/meetings/index.js +1313 -243
- package/test/unit/spec/meetings/utils.js +202 -2
- package/test/unit/spec/member/index.js +32 -9
- package/test/unit/spec/member/util.js +499 -61
- package/test/unit/spec/members/index.js +394 -5
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +173 -38
- 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/clusterReachability.ts +279 -0
- package/test/unit/spec/reachability/index.ts +531 -24
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +162 -24
- package/test/unit/spec/recording-controller/index.js +293 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +200 -76
- package/test/unit/spec/roap/request.ts +255 -0
- package/test/unit/spec/roap/turnDiscovery.ts +86 -48
- package/test/unit/spec/rtcMetrics/index.ts +93 -0
- package/test/unit/spec/stats-analyzer/index.js +261 -167
- 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/common/errors/reclaim-host-role-error.js.map +0 -1
- package/dist/meeting/effectsState.d.ts +0 -42
- package/dist/meeting/effectsState.js +0 -260
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.d.ts +0 -169
- package/dist/metrics/config.js +0 -289
- package/dist/metrics/config.js.map +0 -1
- package/dist/peer-connection-manager/index.d.ts +0 -6
- package/dist/peer-connection-manager/index.js +0 -671
- package/dist/peer-connection-manager/index.js.map +0 -1
- package/dist/peer-connection-manager/util.d.ts +0 -6
- package/dist/peer-connection-manager/util.js +0 -110
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/dist/roap/collection.d.ts +0 -10
- package/dist/roap/collection.js +0 -63
- package/dist/roap/collection.js.map +0 -1
- package/dist/roap/handler.d.ts +0 -47
- package/dist/roap/handler.js +0 -279
- package/dist/roap/handler.js.map +0 -1
- package/dist/roap/state.d.ts +0 -9
- package/dist/roap/state.js +0 -127
- package/dist/roap/state.js.map +0 -1
- package/dist/roap/util.d.ts +0 -2
- package/dist/roap/util.js +0 -76
- package/dist/roap/util.js.map +0 -1
- package/src/index.js +0 -15
- package/src/meeting/effectsState.ts +0 -209
- package/src/metrics/config.ts +0 -485
- package/src/peer-connection-manager/index.ts +0 -847
- package/src/peer-connection-manager/util.ts +0 -119
- package/src/roap/collection.ts +0 -62
- package/src/roap/handler.ts +0 -294
- package/src/roap/state.ts +0 -156
- package/src/roap/util.ts +0 -100
- package/test/unit/spec/meeting/effectsState.js +0 -281
- package/test/unit/spec/peerconnection-manager/index.js +0 -218
- package/test/unit/spec/peerconnection-manager/utils.js +0 -49
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
- package/test/unit/spec/roap/util.js +0 -30
- /package/dist/common/errors/{reclaim-host-role-error.d.ts → reclaim-host-role-errors.d.ts} +0 -0
- /package/src/common/errors/{reclaim-host-role-error.ts → reclaim-host-role-errors.ts} +0 -0
package/src/meeting/request.ts
CHANGED
|
@@ -4,11 +4,13 @@ import {debounce} from 'lodash';
|
|
|
4
4
|
import {StatelessWebexPlugin} from '@webex/webex-core';
|
|
5
5
|
// @ts-ignore
|
|
6
6
|
import {deviceType} from '@webex/common';
|
|
7
|
+
import {CallDiagnosticUtils} from '@webex/internal-plugin-metrics';
|
|
7
8
|
|
|
8
9
|
import LoggerProxy from '../common/logs/logger-proxy';
|
|
9
10
|
import {
|
|
10
11
|
ALERT,
|
|
11
12
|
ALTERNATE_REDIRECT_TRUE,
|
|
13
|
+
BREAKOUTS,
|
|
12
14
|
CALL,
|
|
13
15
|
CONTROLS,
|
|
14
16
|
DECLINE,
|
|
@@ -17,30 +19,73 @@ import {
|
|
|
17
19
|
HTTP_VERBS,
|
|
18
20
|
LEAVE,
|
|
19
21
|
LOCI,
|
|
20
|
-
LOCUS,
|
|
21
|
-
MEDIA,
|
|
22
22
|
PARTICIPANT,
|
|
23
23
|
PROVISIONAL_TYPE_DIAL_IN,
|
|
24
24
|
PROVISIONAL_TYPE_DIAL_OUT,
|
|
25
|
+
REACHABILITY,
|
|
25
26
|
SEND_DTMF_ENDPOINT,
|
|
26
27
|
_SLIDES_,
|
|
28
|
+
ANNOTATION,
|
|
29
|
+
IP_VERSION,
|
|
27
30
|
} from '../constants';
|
|
28
|
-
import {
|
|
31
|
+
import {SendReactionOptions, ToggleReactionsOptions} from './request.type';
|
|
32
|
+
import MeetingUtil from './util';
|
|
33
|
+
import {AnnotationInfo} from '../annotation/annotation.types';
|
|
29
34
|
|
|
30
35
|
/**
|
|
31
36
|
* @class MeetingRequest
|
|
32
37
|
*/
|
|
33
38
|
export default class MeetingRequest extends StatelessWebexPlugin {
|
|
34
39
|
changeVideoLayoutDebounced: any;
|
|
40
|
+
meetingRef: WeakRef<any>;
|
|
41
|
+
locusDeltaRequest: (options: object) => Promise<any>;
|
|
42
|
+
buildLocusDeltaRequestOptions: (options: object) => Promise<any>;
|
|
35
43
|
|
|
44
|
+
/**
|
|
45
|
+
* Constructor
|
|
46
|
+
* @param {Object} attrs
|
|
47
|
+
* @param {Object} options
|
|
48
|
+
*/
|
|
36
49
|
constructor(attrs: any, options: any) {
|
|
37
|
-
|
|
50
|
+
const {meeting, ...otherAttrs} = attrs;
|
|
51
|
+
|
|
52
|
+
super(otherAttrs, options);
|
|
53
|
+
|
|
54
|
+
this.locusDeltaRequest = MeetingUtil.generateLocusDeltaRequest(meeting);
|
|
55
|
+
this.buildLocusDeltaRequestOptions = MeetingUtil.generateBuildLocusDeltaRequestOptions(meeting);
|
|
56
|
+
|
|
38
57
|
this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {
|
|
39
58
|
leading: true,
|
|
40
59
|
trailing: true,
|
|
41
60
|
});
|
|
42
61
|
}
|
|
43
62
|
|
|
63
|
+
/**
|
|
64
|
+
* Returns joinCookie from boundedStorage if present.
|
|
65
|
+
* @returns {Object} joinCookie
|
|
66
|
+
*/
|
|
67
|
+
private getJoinCookie = async () => {
|
|
68
|
+
// @ts-ignore
|
|
69
|
+
const joinCookieRaw = await this.webex.boundedStorage
|
|
70
|
+
.get(REACHABILITY.namespace, REACHABILITY.localStorageJoinCookie)
|
|
71
|
+
.catch(() => {});
|
|
72
|
+
|
|
73
|
+
if (joinCookieRaw) {
|
|
74
|
+
try {
|
|
75
|
+
const joinCookie = JSON.parse(joinCookieRaw);
|
|
76
|
+
if (joinCookie) {
|
|
77
|
+
return joinCookie;
|
|
78
|
+
}
|
|
79
|
+
} catch (e) {
|
|
80
|
+
LoggerProxy.logger.error(
|
|
81
|
+
`MeetingRequest#constructor --> Error in parsing join cookie data: ${e}`
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return null;
|
|
87
|
+
};
|
|
88
|
+
|
|
44
89
|
/**
|
|
45
90
|
* Make a network request to join a meeting
|
|
46
91
|
* @param {Object} options
|
|
@@ -54,12 +99,17 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
54
99
|
* @param {boolean} options.pin
|
|
55
100
|
* @param {boolean} options.moveToResource
|
|
56
101
|
* @param {Object} options.roapMessage
|
|
102
|
+
* @param {boolean} options.breakoutsSupported
|
|
103
|
+
* @param {String} options.locale,
|
|
104
|
+
* @param {Array} options.deviceCapabilities
|
|
105
|
+
* @param {boolean} options.liveAnnotationSupported
|
|
57
106
|
* @returns {Promise}
|
|
58
107
|
*/
|
|
59
108
|
async joinMeeting(options: {
|
|
60
109
|
sipUri: string;
|
|
61
110
|
deviceUrl: string;
|
|
62
111
|
locusUrl: string;
|
|
112
|
+
locusClusterUrl: string;
|
|
63
113
|
resourceId: string;
|
|
64
114
|
correlationId: string;
|
|
65
115
|
ensureConversation: boolean;
|
|
@@ -72,6 +122,11 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
72
122
|
meetingNumber: any;
|
|
73
123
|
permissionToken: any;
|
|
74
124
|
preferTranscoding: any;
|
|
125
|
+
breakoutsSupported: boolean;
|
|
126
|
+
locale?: string;
|
|
127
|
+
deviceCapabilities?: Array<string>;
|
|
128
|
+
liveAnnotationSupported: boolean;
|
|
129
|
+
ipVersion?: IP_VERSION;
|
|
75
130
|
}) {
|
|
76
131
|
const {
|
|
77
132
|
asResourceOccupant,
|
|
@@ -80,6 +135,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
80
135
|
permissionToken,
|
|
81
136
|
deviceUrl,
|
|
82
137
|
locusUrl,
|
|
138
|
+
locusClusterUrl,
|
|
83
139
|
resourceId,
|
|
84
140
|
correlationId,
|
|
85
141
|
ensureConversation,
|
|
@@ -88,12 +144,19 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
88
144
|
moveToResource,
|
|
89
145
|
roapMessage,
|
|
90
146
|
preferTranscoding,
|
|
147
|
+
breakoutsSupported,
|
|
148
|
+
locale,
|
|
149
|
+
deviceCapabilities = [],
|
|
150
|
+
liveAnnotationSupported,
|
|
151
|
+
ipVersion,
|
|
91
152
|
} = options;
|
|
92
153
|
|
|
93
154
|
LoggerProxy.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);
|
|
94
155
|
|
|
95
156
|
let url = '';
|
|
96
157
|
|
|
158
|
+
const joinCookie = await this.getJoinCookie();
|
|
159
|
+
|
|
97
160
|
const body: any = {
|
|
98
161
|
asResourceOccupant,
|
|
99
162
|
device: {
|
|
@@ -110,15 +173,36 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
110
173
|
supportsNativeLobby: 1,
|
|
111
174
|
clientMediaPreferences: {
|
|
112
175
|
preferTranscoding: preferTranscoding ?? true,
|
|
176
|
+
joinCookie,
|
|
177
|
+
ipver: ipVersion,
|
|
113
178
|
},
|
|
114
179
|
};
|
|
115
180
|
|
|
181
|
+
if (breakoutsSupported) {
|
|
182
|
+
deviceCapabilities.push(BREAKOUTS.BREAKOUTS_SUPPORTED);
|
|
183
|
+
}
|
|
184
|
+
if (liveAnnotationSupported) {
|
|
185
|
+
deviceCapabilities.push(ANNOTATION.ANNOTATION_ON_SHARE_SUPPORTED);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
if (locale) {
|
|
189
|
+
body.locale = locale;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// add deviceCapabilities prop
|
|
193
|
+
if (deviceCapabilities.length) {
|
|
194
|
+
body.deviceCapabilities = deviceCapabilities;
|
|
195
|
+
}
|
|
116
196
|
// @ts-ignore
|
|
117
|
-
if (this.webex.meetings.
|
|
197
|
+
if (this.webex.meetings.geoHintInfo) {
|
|
118
198
|
// @ts-ignore
|
|
119
|
-
body.device.countryCode = this.webex.meetings.
|
|
199
|
+
body.device.countryCode = this.webex.meetings.geoHintInfo.countryCode;
|
|
120
200
|
// @ts-ignore
|
|
121
|
-
body.device.regionCode = this.webex.meetings.
|
|
201
|
+
body.device.regionCode = this.webex.meetings.geoHintInfo.regionCode;
|
|
202
|
+
body.device.localIp =
|
|
203
|
+
// @ts-ignore
|
|
204
|
+
CallDiagnosticUtils.anonymizeIPAddress(this.webex.meetings.geoHintInfo.clientAddress) ||
|
|
205
|
+
undefined;
|
|
122
206
|
}
|
|
123
207
|
|
|
124
208
|
if (moderator !== undefined) {
|
|
@@ -137,10 +221,18 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
137
221
|
url = `${locusUrl}/${PARTICIPANT}`;
|
|
138
222
|
} else if (inviteeAddress || meetingNumber) {
|
|
139
223
|
try {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
224
|
+
let clusterUrl;
|
|
225
|
+
|
|
226
|
+
if (locusClusterUrl) {
|
|
227
|
+
clusterUrl = `https://${locusClusterUrl}/locus/api/v1`;
|
|
228
|
+
} else {
|
|
229
|
+
// @ts-ignore
|
|
230
|
+
await this.webex.internal.services.waitForCatalog('postauth');
|
|
231
|
+
// @ts-ignore
|
|
232
|
+
clusterUrl = this.webex.internal.services.get('locus');
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
url = `${clusterUrl}/${LOCI}/${CALL}`;
|
|
144
236
|
body.invitee = {
|
|
145
237
|
address: inviteeAddress || `wbxmn:${meetingNumber}`,
|
|
146
238
|
};
|
|
@@ -242,7 +334,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
242
334
|
};
|
|
243
335
|
|
|
244
336
|
// @ts-ignore
|
|
245
|
-
return this.
|
|
337
|
+
return this.locusDeltaRequest({
|
|
246
338
|
method: HTTP_VERBS.POST,
|
|
247
339
|
uri,
|
|
248
340
|
body,
|
|
@@ -297,7 +389,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
297
389
|
};
|
|
298
390
|
|
|
299
391
|
// @ts-ignore
|
|
300
|
-
return this.
|
|
392
|
+
return this.locusDeltaRequest({
|
|
301
393
|
method: HTTP_VERBS.POST,
|
|
302
394
|
uri,
|
|
303
395
|
body,
|
|
@@ -311,65 +403,25 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
311
403
|
}
|
|
312
404
|
|
|
313
405
|
/**
|
|
314
|
-
*
|
|
406
|
+
* Sends a requests to get the latest locus DTO, it might be a full Locus or a delta, depending on the url provided
|
|
315
407
|
* @param {Object} options
|
|
316
|
-
* @param {boolean} options.desync flag to get partial or whole locus object
|
|
317
|
-
* @param {String} options.syncUrl sync url to get ht elatest locus delta
|
|
318
|
-
* @returns {Promise}
|
|
319
|
-
*/
|
|
320
|
-
syncMeeting(options: {desync: boolean; syncUrl: string}) {
|
|
321
|
-
/* eslint-disable no-else-return */
|
|
322
|
-
const {desync} = options;
|
|
323
|
-
let {syncUrl} = options;
|
|
324
|
-
|
|
325
|
-
/* istanbul ignore else */
|
|
326
|
-
if (desync) {
|
|
327
|
-
// check for existing URL parameters
|
|
328
|
-
syncUrl = syncUrl
|
|
329
|
-
.concat(syncUrl.split('?')[1] ? '&' : '?')
|
|
330
|
-
.concat(`${LOCUS.SYNCDEBUG}=${desync}`);
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
// @ts-ignore
|
|
334
|
-
return this.request({
|
|
335
|
-
method: HTTP_VERBS.GET,
|
|
336
|
-
uri: syncUrl,
|
|
337
|
-
}) // TODO: Handle if delta sync failed . Get the full locus object
|
|
338
|
-
.catch((err) => {
|
|
339
|
-
LoggerProxy.logger.error(
|
|
340
|
-
`Meeting:request#syncMeeting --> Error syncing meeting, error ${err}`
|
|
341
|
-
);
|
|
342
|
-
|
|
343
|
-
return err;
|
|
344
|
-
});
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
/**
|
|
348
|
-
* Request to get the complete locus object
|
|
349
|
-
* @param {Object} options
|
|
350
|
-
* @param {boolean} options.desync flag to get partial or whole locus object
|
|
351
408
|
* @param {String} options.locusUrl sync url to get ht elatest locus delta
|
|
352
409
|
* @returns {Promise}
|
|
353
410
|
*/
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
const {desync} = options;
|
|
357
|
-
|
|
358
|
-
if (locusUrl) {
|
|
359
|
-
if (desync) {
|
|
360
|
-
locusUrl += `?${LOCUS.SYNCDEBUG}=${desync}`;
|
|
361
|
-
}
|
|
411
|
+
getLocusDTO(options: {url: string}) {
|
|
412
|
+
const {url} = options;
|
|
362
413
|
|
|
414
|
+
if (url) {
|
|
363
415
|
// @ts-ignore
|
|
364
416
|
return this.request({
|
|
365
417
|
method: HTTP_VERBS.GET,
|
|
366
|
-
uri:
|
|
418
|
+
uri: url,
|
|
367
419
|
}).catch((err) => {
|
|
368
420
|
LoggerProxy.logger.error(
|
|
369
|
-
`Meeting:request#
|
|
421
|
+
`Meeting:request#getLocusDTO --> Error getting latest locus, error ${err}`
|
|
370
422
|
);
|
|
371
423
|
|
|
372
|
-
|
|
424
|
+
throw err;
|
|
373
425
|
});
|
|
374
426
|
}
|
|
375
427
|
|
|
@@ -412,7 +464,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
412
464
|
};
|
|
413
465
|
|
|
414
466
|
// @ts-ignore
|
|
415
|
-
return this.
|
|
467
|
+
return this.locusDeltaRequest({
|
|
416
468
|
method: HTTP_VERBS.PUT,
|
|
417
469
|
uri,
|
|
418
470
|
body,
|
|
@@ -426,13 +478,49 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
426
478
|
}
|
|
427
479
|
|
|
428
480
|
/**
|
|
429
|
-
*
|
|
481
|
+
* Prepares request options to to leave a meeting
|
|
430
482
|
* @param {Object} options
|
|
431
483
|
* @param {Url} options.locusUrl
|
|
432
484
|
* @param {String} options.selfId
|
|
433
485
|
* @param {Url} options.deviceUrl
|
|
434
486
|
* @param {String} options.resourceId,
|
|
435
487
|
* @param {String} options.correlationId
|
|
488
|
+
* @returns {Object} request options
|
|
489
|
+
*/
|
|
490
|
+
prepareLeaveMeetingRequestOptions({
|
|
491
|
+
locusUrl,
|
|
492
|
+
selfId,
|
|
493
|
+
deviceUrl: url,
|
|
494
|
+
resourceId,
|
|
495
|
+
correlationId,
|
|
496
|
+
}: {
|
|
497
|
+
locusUrl: string;
|
|
498
|
+
selfId: string;
|
|
499
|
+
deviceUrl: string;
|
|
500
|
+
resourceId: string;
|
|
501
|
+
correlationId: string;
|
|
502
|
+
}) {
|
|
503
|
+
const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;
|
|
504
|
+
const body = {
|
|
505
|
+
device: {
|
|
506
|
+
// @ts-ignore
|
|
507
|
+
deviceType: this.config.meetings.deviceType,
|
|
508
|
+
url,
|
|
509
|
+
},
|
|
510
|
+
usingResource: resourceId || null,
|
|
511
|
+
correlationId,
|
|
512
|
+
};
|
|
513
|
+
|
|
514
|
+
return {
|
|
515
|
+
method: HTTP_VERBS.PUT,
|
|
516
|
+
uri,
|
|
517
|
+
body,
|
|
518
|
+
};
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
/**
|
|
522
|
+
* Make a network request to leave a meeting
|
|
523
|
+
* @param {Object} options
|
|
436
524
|
* @returns {Promise}
|
|
437
525
|
*/
|
|
438
526
|
leaveMeeting({
|
|
@@ -461,14 +549,22 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
461
549
|
correlationId,
|
|
462
550
|
};
|
|
463
551
|
|
|
464
|
-
|
|
465
|
-
return this.request({
|
|
552
|
+
return this.locusDeltaRequest({
|
|
466
553
|
method: HTTP_VERBS.PUT,
|
|
467
554
|
uri,
|
|
468
555
|
body,
|
|
469
556
|
});
|
|
470
557
|
}
|
|
471
558
|
|
|
559
|
+
/**
|
|
560
|
+
* Builds request options to leave a meeting
|
|
561
|
+
* @param {Object} options
|
|
562
|
+
* @returns {Object} request options
|
|
563
|
+
*/
|
|
564
|
+
buildLeaveMeetingRequestOptions(options: any) {
|
|
565
|
+
return this.buildLocusDeltaRequestOptions(this.prepareLeaveMeetingRequestOptions(options));
|
|
566
|
+
}
|
|
567
|
+
|
|
472
568
|
/**
|
|
473
569
|
* Make a network request to acknowledge a meeting
|
|
474
570
|
* @param {Object} options
|
|
@@ -488,14 +584,19 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
488
584
|
correlationId: options.correlationId,
|
|
489
585
|
};
|
|
490
586
|
|
|
491
|
-
|
|
492
|
-
return this.request({
|
|
587
|
+
return this.locusDeltaRequest({
|
|
493
588
|
method: HTTP_VERBS.PUT,
|
|
494
589
|
uri,
|
|
495
590
|
body,
|
|
496
591
|
});
|
|
497
592
|
}
|
|
498
593
|
|
|
594
|
+
/**
|
|
595
|
+
* Makes a network request to lock the meeting
|
|
596
|
+
* @param {Object} options
|
|
597
|
+
* @param {Boolean} options.lock Whether it is locked or not
|
|
598
|
+
* @returns {Promise}
|
|
599
|
+
*/
|
|
499
600
|
lockMeeting(options) {
|
|
500
601
|
const uri = `${options.locusUrl}/${CONTROLS}`;
|
|
501
602
|
const body = {
|
|
@@ -504,8 +605,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
504
605
|
},
|
|
505
606
|
};
|
|
506
607
|
|
|
507
|
-
|
|
508
|
-
return this.request({
|
|
608
|
+
return this.locusDeltaRequest({
|
|
509
609
|
method: HTTP_VERBS.PATCH,
|
|
510
610
|
uri,
|
|
511
611
|
body,
|
|
@@ -531,53 +631,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
531
631
|
...(options.reason && {reason: options.reason}),
|
|
532
632
|
};
|
|
533
633
|
|
|
534
|
-
|
|
535
|
-
return this.request({
|
|
536
|
-
method: HTTP_VERBS.PUT,
|
|
537
|
-
uri,
|
|
538
|
-
body,
|
|
539
|
-
});
|
|
540
|
-
}
|
|
541
|
-
|
|
542
|
-
/**
|
|
543
|
-
* Toggle remote audio and/or video
|
|
544
|
-
* @param {Object} options options for toggling
|
|
545
|
-
* @param {String} options.selfId Locus self id??
|
|
546
|
-
* @param {String} options.locusUrl Locus url
|
|
547
|
-
* @param {String} options.deviceUrl Url of a device
|
|
548
|
-
* @param {String} options.resourceId Populated if you are paired to a device
|
|
549
|
-
* @param {String} options.localMedias local sdps
|
|
550
|
-
* @returns {Promise}
|
|
551
|
-
*/
|
|
552
|
-
remoteAudioVideoToggle(
|
|
553
|
-
options:
|
|
554
|
-
| {
|
|
555
|
-
selfId: string;
|
|
556
|
-
locusUrl: string;
|
|
557
|
-
deviceUrl: string;
|
|
558
|
-
resourceId: string;
|
|
559
|
-
localMedias: string;
|
|
560
|
-
}
|
|
561
|
-
| any
|
|
562
|
-
) {
|
|
563
|
-
const uri = `${options.locusUrl}/${PARTICIPANT}/${options.selfId}/${MEDIA}`;
|
|
564
|
-
const body = {
|
|
565
|
-
device: {
|
|
566
|
-
// @ts-ignore
|
|
567
|
-
deviceType: this.config.meetings.deviceType,
|
|
568
|
-
url: options.deviceUrl,
|
|
569
|
-
},
|
|
570
|
-
usingResource: options.resourceId || null,
|
|
571
|
-
correlationId: options.correlationId,
|
|
572
|
-
respOnlySdp: true,
|
|
573
|
-
localMedias: options.localMedias,
|
|
574
|
-
clientMediaPreferences: {
|
|
575
|
-
preferTranscoding: options.preferTranscoding ?? true,
|
|
576
|
-
},
|
|
577
|
-
};
|
|
578
|
-
|
|
579
|
-
// @ts-ignore
|
|
580
|
-
return this.request({
|
|
634
|
+
return this.locusDeltaRequest({
|
|
581
635
|
method: HTTP_VERBS.PUT,
|
|
582
636
|
uri,
|
|
583
637
|
body,
|
|
@@ -602,6 +656,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
602
656
|
deviceUrl: string;
|
|
603
657
|
resourceId: string;
|
|
604
658
|
uri: string;
|
|
659
|
+
annotationInfo: AnnotationInfo;
|
|
605
660
|
}
|
|
606
661
|
| any
|
|
607
662
|
) {
|
|
@@ -635,6 +690,9 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
635
690
|
if (options?.resourceToken) {
|
|
636
691
|
body.resourceToken = options?.resourceToken;
|
|
637
692
|
}
|
|
693
|
+
if (options?.annotationInfo) {
|
|
694
|
+
body.annotation = options?.annotationInfo;
|
|
695
|
+
}
|
|
638
696
|
|
|
639
697
|
// @ts-ignore
|
|
640
698
|
return this.request({
|
|
@@ -654,7 +712,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
654
712
|
*/
|
|
655
713
|
sendDTMF({locusUrl, deviceUrl, tones}: {locusUrl: string; deviceUrl: string; tones: string}) {
|
|
656
714
|
// @ts-ignore
|
|
657
|
-
return this.
|
|
715
|
+
return this.locusDeltaRequest({
|
|
658
716
|
method: HTTP_VERBS.POST,
|
|
659
717
|
uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,
|
|
660
718
|
body: {
|
|
@@ -735,7 +793,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
735
793
|
: undefined;
|
|
736
794
|
|
|
737
795
|
// @ts-ignore
|
|
738
|
-
return this.
|
|
796
|
+
return this.locusDeltaRequest({
|
|
739
797
|
method: HTTP_VERBS.PUT,
|
|
740
798
|
uri: `${locusUrl}/${CONTROLS}`,
|
|
741
799
|
body: {
|
|
@@ -758,7 +816,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
758
816
|
const uri = `${locusUrl}/${END}`;
|
|
759
817
|
|
|
760
818
|
// @ts-ignore
|
|
761
|
-
return this.
|
|
819
|
+
return this.locusDeltaRequest({
|
|
762
820
|
method: HTTP_VERBS.POST,
|
|
763
821
|
uri,
|
|
764
822
|
});
|
|
@@ -786,15 +844,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
786
844
|
* @param {string} options.senderID
|
|
787
845
|
* @returns {Promise}
|
|
788
846
|
*/
|
|
789
|
-
sendReaction({
|
|
790
|
-
reactionChannelUrl,
|
|
791
|
-
reaction,
|
|
792
|
-
participantId,
|
|
793
|
-
}: {
|
|
794
|
-
reactionChannelUrl: string;
|
|
795
|
-
reaction: Reaction;
|
|
796
|
-
participantId: string;
|
|
797
|
-
}) {
|
|
847
|
+
sendReaction({reactionChannelUrl, reaction, participantId}: SendReactionOptions) {
|
|
798
848
|
const uri = reactionChannelUrl;
|
|
799
849
|
|
|
800
850
|
// @ts-ignore
|
|
@@ -807,4 +857,34 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
807
857
|
},
|
|
808
858
|
});
|
|
809
859
|
}
|
|
860
|
+
|
|
861
|
+
/**
|
|
862
|
+
* Make a network request to enable or disable reactions.
|
|
863
|
+
* @param {boolean} options.enable - determines if we need to enable or disable.
|
|
864
|
+
* @param {locusUrl} options.locusUrl
|
|
865
|
+
* @returns {Promise}
|
|
866
|
+
*/
|
|
867
|
+
toggleReactions({enable, locusUrl, requestingParticipantId}: ToggleReactionsOptions) {
|
|
868
|
+
const uri = `${locusUrl}/${CONTROLS}`;
|
|
869
|
+
|
|
870
|
+
// @ts-ignore
|
|
871
|
+
return this.locusDeltaRequest({
|
|
872
|
+
method: HTTP_VERBS.PUT,
|
|
873
|
+
uri,
|
|
874
|
+
body: {
|
|
875
|
+
reactions: {
|
|
876
|
+
enabled: enable,
|
|
877
|
+
},
|
|
878
|
+
requestingParticipantId,
|
|
879
|
+
},
|
|
880
|
+
});
|
|
881
|
+
}
|
|
882
|
+
|
|
883
|
+
getLocusStatusByUrl(locusUrl: string) {
|
|
884
|
+
// @ts-ignore
|
|
885
|
+
return this.request({
|
|
886
|
+
method: HTTP_VERBS.GET,
|
|
887
|
+
uri: locusUrl,
|
|
888
|
+
});
|
|
889
|
+
}
|
|
810
890
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {Reaction} from '../reactions/reactions.type';
|
|
2
|
+
|
|
3
|
+
export type SendReactionOptions = {
|
|
4
|
+
reactionChannelUrl: string;
|
|
5
|
+
reaction: Reaction;
|
|
6
|
+
participantId: string;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export type ToggleReactionsOptions = {
|
|
10
|
+
enable: boolean;
|
|
11
|
+
locusUrl: string;
|
|
12
|
+
requestingParticipantId: string;
|
|
13
|
+
};
|