@webex/plugin-meetings 3.0.0-beta.40 → 3.0.0-beta.401
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 +58 -8
- 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 +342 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +94 -15
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +625 -123
- package/dist/breakouts/index.js.map +1 -1
- package/dist/breakouts/utils.js +27 -8
- package/dist/breakouts/utils.js.map +1 -1
- package/dist/common/errors/no-meeting-info.js +51 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/reclaim-host-role-errors.js +158 -0
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/webex-errors.js +48 -7
- 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/common/logs/request.js +5 -1
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +24 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +6 -10
- package/dist/config.js.map +1 -1
- package/dist/constants.js +247 -34
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +14 -2
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.js +109 -15
- 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 -18
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.js +116 -2
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.js +15 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/locusRetry.js +93 -0
- package/dist/interceptors/locusRetry.js.map +1 -0
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +380 -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 +91 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +386 -62
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +7 -1
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +71 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +249 -72
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +89 -14
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +65 -102
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +73 -124
- package/dist/media/properties.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +135 -330
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +86 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +4509 -3000
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +292 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +236 -136
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +185 -155
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +676 -417
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting/voicea-meeting.js +172 -0
- package/dist/meeting/voicea-meeting.js.map +1 -0
- package/dist/meeting-info/index.js +73 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +201 -57
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/util.js +8 -7
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +44 -40
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +39 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +484 -119
- 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 +2 -0
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +73 -7
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +57 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +25 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +132 -25
- 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 +100 -5
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +106 -38
- 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 +326 -232
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +18 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -446
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +223 -32
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +10 -0
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +39 -36
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +3 -1
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +76 -5
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +366 -104
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +255 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/reachability/clusterReachability.js +356 -0
- package/dist/reachability/clusterReachability.js.map +1 -0
- package/dist/reachability/index.js +263 -390
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +6 -4
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- package/dist/reconnection-manager/index.js +266 -202
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/index.js +21 -2
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +9 -8
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js +66 -28
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +48 -64
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +407 -79
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +12 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +179 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/index.js +357 -295
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +296 -156
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +42 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +117 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/utils.d.ts +9 -2
- package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/types/common/errors/webex-errors.d.ts +25 -1
- package/dist/types/common/logs/request.d.ts +2 -0
- package/dist/types/common/queue.d.ts +9 -7
- package/dist/types/config.d.ts +2 -7
- package/dist/types/constants.d.ts +204 -32
- package/dist/types/controls-options-manager/enums.d.ts +11 -1
- package/dist/types/controls-options-manager/index.d.ts +17 -1
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -7
- package/dist/types/index.d.ts +6 -5
- package/dist/types/interceptors/index.d.ts +2 -0
- package/dist/types/interceptors/locusRetry.d.ts +27 -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/index.d.ts +57 -4
- package/dist/types/locus-info/parser.d.ts +66 -6
- package/dist/types/media/index.d.ts +2 -0
- package/dist/types/media/properties.d.ts +34 -49
- package/dist/types/mediaQualityMetrics/config.d.ts +99 -223
- package/dist/types/meeting/in-meeting-actions.d.ts +86 -2
- package/dist/types/meeting/index.d.ts +630 -505
- package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/types/meeting/muteState.d.ts +88 -26
- package/dist/types/meeting/request.d.ts +65 -43
- package/dist/types/meeting/util.d.ts +117 -1
- package/dist/types/meeting/voicea-meeting.d.ts +16 -0
- package/dist/types/meeting-info/index.d.ts +13 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
- package/dist/types/meetings/collection.d.ts +17 -0
- package/dist/types/meetings/index.d.ts +113 -21
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/member/index.d.ts +14 -0
- package/dist/types/member/types.d.ts +32 -0
- package/dist/types/members/collection.d.ts +5 -0
- package/dist/types/members/index.d.ts +35 -2
- package/dist/types/members/request.d.ts +73 -9
- package/dist/types/members/types.d.ts +25 -0
- package/dist/types/members/util.d.ts +214 -1
- package/dist/types/metrics/constants.d.ts +17 -0
- package/dist/types/metrics/index.d.ts +4 -111
- package/dist/types/multistream/mediaRequestManager.d.ts +72 -3
- package/dist/types/multistream/receiveSlot.d.ts +7 -3
- package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
- package/dist/types/multistream/remoteMedia.d.ts +3 -31
- package/dist/types/multistream/remoteMediaGroup.d.ts +2 -9
- package/dist/types/multistream/remoteMediaManager.d.ts +62 -2
- package/dist/types/multistream/sendSlotManager.d.ts +70 -0
- package/dist/types/reachability/clusterReachability.d.ts +109 -0
- package/dist/types/reachability/index.d.ts +60 -95
- package/dist/types/reachability/request.d.ts +3 -1
- package/dist/types/reachability/util.d.ts +8 -0
- package/dist/types/reconnection-manager/index.d.ts +19 -0
- package/dist/types/recording-controller/index.d.ts +15 -1
- package/dist/types/recording-controller/util.d.ts +5 -4
- package/dist/types/roap/index.d.ts +11 -2
- package/dist/types/roap/request.d.ts +9 -8
- package/dist/types/roap/turnDiscovery.d.ts +90 -9
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +61 -0
- package/dist/types/statsAnalyzer/index.d.ts +34 -12
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +28 -4
- package/dist/types/webinar/collection.d.ts +16 -0
- package/dist/types/webinar/index.d.ts +5 -0
- package/dist/webinar/collection.js +44 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.js +69 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +22 -19
- 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 +27 -6
- package/src/breakouts/breakout.ts +67 -9
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +494 -73
- package/src/breakouts/utils.ts +26 -8
- 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 +44 -2
- 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 -13
- package/src/constants.ts +234 -22
- 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 +45 -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 +349 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +108 -0
- package/src/locus-info/index.ts +417 -59
- package/src/locus-info/infoUtils.ts +10 -2
- package/src/locus-info/mediaSharesUtils.ts +80 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +81 -5
- package/src/media/index.ts +100 -108
- package/src/media/properties.ts +88 -117
- package/src/mediaQualityMetrics/config.ts +103 -238
- package/src/meeting/in-meeting-actions.ts +171 -3
- package/src/meeting/index.ts +3899 -2622
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +237 -136
- package/src/meeting/request.ts +166 -122
- package/src/meeting/util.ts +690 -395
- package/src/meeting/voicea-meeting.ts +122 -0
- package/src/meeting-info/index.ts +81 -8
- package/src/meeting-info/meeting-info-v2.ts +166 -16
- package/src/meeting-info/util.ts +13 -10
- package/src/meeting-info/utilv2.ts +47 -37
- package/src/meetings/collection.ts +33 -0
- package/src/meetings/index.ts +507 -127
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +81 -12
- package/src/member/index.ts +57 -0
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +141 -25
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +133 -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 +17 -0
- package/src/metrics/index.ts +1 -469
- package/src/multistream/mediaRequestManager.ts +271 -56
- package/src/multistream/receiveSlot.ts +11 -4
- package/src/multistream/receiveSlotManager.ts +34 -24
- package/src/multistream/remoteMedia.ts +5 -3
- package/src/multistream/remoteMediaGroup.ts +78 -0
- package/src/multistream/remoteMediaManager.ts +248 -44
- package/src/multistream/sendSlotManager.ts +199 -0
- package/src/reachability/clusterReachability.ts +320 -0
- package/src/reachability/index.ts +229 -346
- package/src/reachability/request.ts +8 -4
- package/src/reachability/util.ts +24 -0
- package/src/reconnection-manager/index.ts +128 -97
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +76 -25
- package/src/roap/request.ts +48 -67
- package/src/roap/turnDiscovery.ts +331 -67
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +166 -0
- package/src/statsAnalyzer/index.ts +457 -416
- package/src/statsAnalyzer/mqaUtil.ts +317 -170
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +60 -3
- package/test/integration/spec/journey.js +321 -262
- package/test/integration/spec/space-meeting.js +76 -3
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +119 -28
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1204 -118
- package/test/unit/spec/breakouts/utils.js +27 -2
- 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 +625 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +316 -43
- package/test/unit/spec/locus-info/index.js +1372 -37
- package/test/unit/spec/locus-info/infoUtils.js +37 -15
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +41 -0
- package/test/unit/spec/locus-info/parser.js +116 -35
- package/test/unit/spec/locus-info/selfConstant.js +27 -4
- package/test/unit/spec/locus-info/selfUtils.js +203 -17
- package/test/unit/spec/media/index.ts +178 -81
- package/test/unit/spec/media/properties.ts +2 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +85 -3
- package/test/unit/spec/meeting/index.js +7520 -2267
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +549 -207
- package/test/unit/spec/meeting/request.js +476 -54
- package/test/unit/spec/meeting/utils.js +827 -74
- package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +535 -9
- 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 +1489 -219
- package/test/unit/spec/meetings/utils.js +229 -2
- package/test/unit/spec/member/index.js +61 -6
- package/test/unit/spec/member/util.js +510 -34
- package/test/unit/spec/members/index.js +432 -1
- 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 +2 -52
- package/test/unit/spec/multistream/mediaRequestManager.ts +782 -114
- package/test/unit/spec/multistream/receiveSlot.ts +9 -1
- package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
- package/test/unit/spec/multistream/remoteMedia.ts +2 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +345 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +525 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +274 -0
- package/test/unit/spec/reachability/clusterReachability.ts +279 -0
- package/test/unit/spec/reachability/index.ts +551 -14
- package/test/unit/spec/reachability/request.js +3 -1
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +171 -11
- 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 +233 -81
- package/test/unit/spec/roap/request.ts +100 -62
- package/test/unit/spec/roap/turnDiscovery.ts +682 -108
- package/test/unit/spec/rtcMetrics/index.ts +122 -0
- package/test/unit/spec/stats-analyzer/index.js +1252 -12
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -57
- package/test/utils/webex-test-users.js +12 -4
- package/dist/metrics/config.js +0 -289
- package/dist/metrics/config.js.map +0 -1
- package/dist/types/metrics/config.d.ts +0 -169
- package/src/index.js +0 -18
- package/src/metrics/config.ts +0 -485
package/src/meeting/request.ts
CHANGED
|
@@ -4,6 +4,7 @@ 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 {
|
|
@@ -18,22 +19,27 @@ import {
|
|
|
18
19
|
HTTP_VERBS,
|
|
19
20
|
LEAVE,
|
|
20
21
|
LOCI,
|
|
21
|
-
LOCUS,
|
|
22
|
-
MEDIA,
|
|
23
22
|
PARTICIPANT,
|
|
24
23
|
PROVISIONAL_TYPE_DIAL_IN,
|
|
25
24
|
PROVISIONAL_TYPE_DIAL_OUT,
|
|
26
25
|
REACHABILITY,
|
|
27
26
|
SEND_DTMF_ENDPOINT,
|
|
28
27
|
_SLIDES_,
|
|
28
|
+
ANNOTATION,
|
|
29
|
+
IP_VERSION,
|
|
29
30
|
} from '../constants';
|
|
30
31
|
import {SendReactionOptions, ToggleReactionsOptions} from './request.type';
|
|
32
|
+
import MeetingUtil from './util';
|
|
33
|
+
import {AnnotationInfo} from '../annotation/annotation.types';
|
|
31
34
|
|
|
32
35
|
/**
|
|
33
36
|
* @class MeetingRequest
|
|
34
37
|
*/
|
|
35
38
|
export default class MeetingRequest extends StatelessWebexPlugin {
|
|
36
39
|
changeVideoLayoutDebounced: any;
|
|
40
|
+
meetingRef: WeakRef<any>;
|
|
41
|
+
locusDeltaRequest: (options: object) => Promise<any>;
|
|
42
|
+
buildLocusDeltaRequestOptions: (options: object) => Promise<any>;
|
|
37
43
|
|
|
38
44
|
/**
|
|
39
45
|
* Constructor
|
|
@@ -41,7 +47,13 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
41
47
|
* @param {Object} options
|
|
42
48
|
*/
|
|
43
49
|
constructor(attrs: any, options: any) {
|
|
44
|
-
|
|
50
|
+
const {meeting, ...otherAttrs} = attrs;
|
|
51
|
+
|
|
52
|
+
super(otherAttrs, options);
|
|
53
|
+
|
|
54
|
+
this.locusDeltaRequest = MeetingUtil.generateLocusDeltaRequest(meeting);
|
|
55
|
+
this.buildLocusDeltaRequestOptions = MeetingUtil.generateBuildLocusDeltaRequestOptions(meeting);
|
|
56
|
+
|
|
45
57
|
this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {
|
|
46
58
|
leading: true,
|
|
47
59
|
trailing: true,
|
|
@@ -88,12 +100,16 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
88
100
|
* @param {boolean} options.moveToResource
|
|
89
101
|
* @param {Object} options.roapMessage
|
|
90
102
|
* @param {boolean} options.breakoutsSupported
|
|
103
|
+
* @param {String} options.locale,
|
|
104
|
+
* @param {Array} options.deviceCapabilities
|
|
105
|
+
* @param {boolean} options.liveAnnotationSupported
|
|
91
106
|
* @returns {Promise}
|
|
92
107
|
*/
|
|
93
108
|
async joinMeeting(options: {
|
|
94
109
|
sipUri: string;
|
|
95
110
|
deviceUrl: string;
|
|
96
111
|
locusUrl: string;
|
|
112
|
+
locusClusterUrl: string;
|
|
97
113
|
resourceId: string;
|
|
98
114
|
correlationId: string;
|
|
99
115
|
ensureConversation: boolean;
|
|
@@ -106,7 +122,12 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
106
122
|
meetingNumber: any;
|
|
107
123
|
permissionToken: any;
|
|
108
124
|
preferTranscoding: any;
|
|
125
|
+
reachability: any;
|
|
109
126
|
breakoutsSupported: boolean;
|
|
127
|
+
locale?: string;
|
|
128
|
+
deviceCapabilities?: Array<string>;
|
|
129
|
+
liveAnnotationSupported: boolean;
|
|
130
|
+
ipVersion?: IP_VERSION;
|
|
110
131
|
}) {
|
|
111
132
|
const {
|
|
112
133
|
asResourceOccupant,
|
|
@@ -115,6 +136,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
115
136
|
permissionToken,
|
|
116
137
|
deviceUrl,
|
|
117
138
|
locusUrl,
|
|
139
|
+
locusClusterUrl,
|
|
118
140
|
resourceId,
|
|
119
141
|
correlationId,
|
|
120
142
|
ensureConversation,
|
|
@@ -122,8 +144,13 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
122
144
|
pin,
|
|
123
145
|
moveToResource,
|
|
124
146
|
roapMessage,
|
|
147
|
+
reachability,
|
|
125
148
|
preferTranscoding,
|
|
126
149
|
breakoutsSupported,
|
|
150
|
+
locale,
|
|
151
|
+
deviceCapabilities = [],
|
|
152
|
+
liveAnnotationSupported,
|
|
153
|
+
ipVersion,
|
|
127
154
|
} = options;
|
|
128
155
|
|
|
129
156
|
LoggerProxy.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);
|
|
@@ -149,19 +176,42 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
149
176
|
clientMediaPreferences: {
|
|
150
177
|
preferTranscoding: preferTranscoding ?? true,
|
|
151
178
|
joinCookie,
|
|
179
|
+
ipver: ipVersion,
|
|
152
180
|
},
|
|
153
181
|
};
|
|
154
182
|
|
|
155
183
|
if (breakoutsSupported) {
|
|
156
|
-
|
|
184
|
+
deviceCapabilities.push(BREAKOUTS.BREAKOUTS_SUPPORTED);
|
|
185
|
+
}
|
|
186
|
+
if (liveAnnotationSupported) {
|
|
187
|
+
deviceCapabilities.push(ANNOTATION.ANNOTATION_ON_SHARE_SUPPORTED);
|
|
157
188
|
}
|
|
158
189
|
|
|
190
|
+
// append installationId to device config if it exists
|
|
159
191
|
// @ts-ignore
|
|
160
|
-
if (this.webex.
|
|
192
|
+
if (this.webex.internal.device.config.installationId) {
|
|
161
193
|
// @ts-ignore
|
|
162
|
-
body.device.
|
|
194
|
+
body.device.installationId = this.webex.internal.device.config.installationId;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
if (locale) {
|
|
198
|
+
body.locale = locale;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// add deviceCapabilities prop
|
|
202
|
+
if (deviceCapabilities.length) {
|
|
203
|
+
body.deviceCapabilities = deviceCapabilities;
|
|
204
|
+
}
|
|
205
|
+
// @ts-ignore
|
|
206
|
+
if (this.webex.meetings.geoHintInfo) {
|
|
207
|
+
// @ts-ignore
|
|
208
|
+
body.device.countryCode = this.webex.meetings.geoHintInfo.countryCode;
|
|
163
209
|
// @ts-ignore
|
|
164
|
-
body.device.regionCode = this.webex.meetings.
|
|
210
|
+
body.device.regionCode = this.webex.meetings.geoHintInfo.regionCode;
|
|
211
|
+
body.device.localIp =
|
|
212
|
+
// @ts-ignore
|
|
213
|
+
CallDiagnosticUtils.anonymizeIPAddress(this.webex.meetings.geoHintInfo.clientAddress) ||
|
|
214
|
+
undefined;
|
|
165
215
|
}
|
|
166
216
|
|
|
167
217
|
if (moderator !== undefined) {
|
|
@@ -180,10 +230,18 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
180
230
|
url = `${locusUrl}/${PARTICIPANT}`;
|
|
181
231
|
} else if (inviteeAddress || meetingNumber) {
|
|
182
232
|
try {
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
233
|
+
let clusterUrl;
|
|
234
|
+
|
|
235
|
+
if (locusClusterUrl) {
|
|
236
|
+
clusterUrl = `https://${locusClusterUrl}/locus/api/v1`;
|
|
237
|
+
} else {
|
|
238
|
+
// @ts-ignore
|
|
239
|
+
await this.webex.internal.services.waitForCatalog('postauth');
|
|
240
|
+
// @ts-ignore
|
|
241
|
+
clusterUrl = this.webex.internal.services.get('locus');
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
url = `${clusterUrl}/${LOCI}/${CALL}`;
|
|
187
245
|
body.invitee = {
|
|
188
246
|
address: inviteeAddress || `wbxmn:${meetingNumber}`,
|
|
189
247
|
};
|
|
@@ -204,8 +262,15 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
204
262
|
};
|
|
205
263
|
}
|
|
206
264
|
|
|
207
|
-
if (roapMessage) {
|
|
208
|
-
body.localMedias =
|
|
265
|
+
if (roapMessage || reachability) {
|
|
266
|
+
body.localMedias = [
|
|
267
|
+
{
|
|
268
|
+
localSdp: JSON.stringify({
|
|
269
|
+
roapMessage,
|
|
270
|
+
reachability,
|
|
271
|
+
}),
|
|
272
|
+
},
|
|
273
|
+
];
|
|
209
274
|
}
|
|
210
275
|
|
|
211
276
|
/// @ts-ignore
|
|
@@ -285,7 +350,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
285
350
|
};
|
|
286
351
|
|
|
287
352
|
// @ts-ignore
|
|
288
|
-
return this.
|
|
353
|
+
return this.locusDeltaRequest({
|
|
289
354
|
method: HTTP_VERBS.POST,
|
|
290
355
|
uri,
|
|
291
356
|
body,
|
|
@@ -340,7 +405,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
340
405
|
};
|
|
341
406
|
|
|
342
407
|
// @ts-ignore
|
|
343
|
-
return this.
|
|
408
|
+
return this.locusDeltaRequest({
|
|
344
409
|
method: HTTP_VERBS.POST,
|
|
345
410
|
uri,
|
|
346
411
|
body,
|
|
@@ -354,65 +419,25 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
354
419
|
}
|
|
355
420
|
|
|
356
421
|
/**
|
|
357
|
-
*
|
|
358
|
-
* @param {Object} options
|
|
359
|
-
* @param {boolean} options.desync flag to get partial or whole locus object
|
|
360
|
-
* @param {String} options.syncUrl sync url to get ht elatest locus delta
|
|
361
|
-
* @returns {Promise}
|
|
362
|
-
*/
|
|
363
|
-
syncMeeting(options: {desync: boolean; syncUrl: string}) {
|
|
364
|
-
/* eslint-disable no-else-return */
|
|
365
|
-
const {desync} = options;
|
|
366
|
-
let {syncUrl} = options;
|
|
367
|
-
|
|
368
|
-
/* istanbul ignore else */
|
|
369
|
-
if (desync) {
|
|
370
|
-
// check for existing URL parameters
|
|
371
|
-
syncUrl = syncUrl
|
|
372
|
-
.concat(syncUrl.split('?')[1] ? '&' : '?')
|
|
373
|
-
.concat(`${LOCUS.SYNCDEBUG}=${desync}`);
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
// @ts-ignore
|
|
377
|
-
return this.request({
|
|
378
|
-
method: HTTP_VERBS.GET,
|
|
379
|
-
uri: syncUrl,
|
|
380
|
-
}) // TODO: Handle if delta sync failed . Get the full locus object
|
|
381
|
-
.catch((err) => {
|
|
382
|
-
LoggerProxy.logger.error(
|
|
383
|
-
`Meeting:request#syncMeeting --> Error syncing meeting, error ${err}`
|
|
384
|
-
);
|
|
385
|
-
|
|
386
|
-
return err;
|
|
387
|
-
});
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
/**
|
|
391
|
-
* Request to get the complete locus object
|
|
422
|
+
* Sends a requests to get the latest locus DTO, it might be a full Locus or a delta, depending on the url provided
|
|
392
423
|
* @param {Object} options
|
|
393
|
-
* @param {boolean} options.desync flag to get partial or whole locus object
|
|
394
424
|
* @param {String} options.locusUrl sync url to get ht elatest locus delta
|
|
395
425
|
* @returns {Promise}
|
|
396
426
|
*/
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
const {desync} = options;
|
|
400
|
-
|
|
401
|
-
if (locusUrl) {
|
|
402
|
-
if (desync) {
|
|
403
|
-
locusUrl += `?${LOCUS.SYNCDEBUG}=${desync}`;
|
|
404
|
-
}
|
|
427
|
+
getLocusDTO(options: {url: string}) {
|
|
428
|
+
const {url} = options;
|
|
405
429
|
|
|
430
|
+
if (url) {
|
|
406
431
|
// @ts-ignore
|
|
407
432
|
return this.request({
|
|
408
433
|
method: HTTP_VERBS.GET,
|
|
409
|
-
uri:
|
|
434
|
+
uri: url,
|
|
410
435
|
}).catch((err) => {
|
|
411
436
|
LoggerProxy.logger.error(
|
|
412
|
-
`Meeting:request#
|
|
437
|
+
`Meeting:request#getLocusDTO --> Error getting latest locus, error ${err}`
|
|
413
438
|
);
|
|
414
439
|
|
|
415
|
-
|
|
440
|
+
throw err;
|
|
416
441
|
});
|
|
417
442
|
}
|
|
418
443
|
|
|
@@ -455,7 +480,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
455
480
|
};
|
|
456
481
|
|
|
457
482
|
// @ts-ignore
|
|
458
|
-
return this.
|
|
483
|
+
return this.locusDeltaRequest({
|
|
459
484
|
method: HTTP_VERBS.PUT,
|
|
460
485
|
uri,
|
|
461
486
|
body,
|
|
@@ -469,13 +494,49 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
469
494
|
}
|
|
470
495
|
|
|
471
496
|
/**
|
|
472
|
-
*
|
|
497
|
+
* Prepares request options to to leave a meeting
|
|
473
498
|
* @param {Object} options
|
|
474
499
|
* @param {Url} options.locusUrl
|
|
475
500
|
* @param {String} options.selfId
|
|
476
501
|
* @param {Url} options.deviceUrl
|
|
477
502
|
* @param {String} options.resourceId,
|
|
478
503
|
* @param {String} options.correlationId
|
|
504
|
+
* @returns {Object} request options
|
|
505
|
+
*/
|
|
506
|
+
prepareLeaveMeetingRequestOptions({
|
|
507
|
+
locusUrl,
|
|
508
|
+
selfId,
|
|
509
|
+
deviceUrl: url,
|
|
510
|
+
resourceId,
|
|
511
|
+
correlationId,
|
|
512
|
+
}: {
|
|
513
|
+
locusUrl: string;
|
|
514
|
+
selfId: string;
|
|
515
|
+
deviceUrl: string;
|
|
516
|
+
resourceId: string;
|
|
517
|
+
correlationId: string;
|
|
518
|
+
}) {
|
|
519
|
+
const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;
|
|
520
|
+
const body = {
|
|
521
|
+
device: {
|
|
522
|
+
// @ts-ignore
|
|
523
|
+
deviceType: this.config.meetings.deviceType,
|
|
524
|
+
url,
|
|
525
|
+
},
|
|
526
|
+
usingResource: resourceId || null,
|
|
527
|
+
correlationId,
|
|
528
|
+
};
|
|
529
|
+
|
|
530
|
+
return {
|
|
531
|
+
method: HTTP_VERBS.PUT,
|
|
532
|
+
uri,
|
|
533
|
+
body,
|
|
534
|
+
};
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
/**
|
|
538
|
+
* Make a network request to leave a meeting
|
|
539
|
+
* @param {Object} options
|
|
479
540
|
* @returns {Promise}
|
|
480
541
|
*/
|
|
481
542
|
leaveMeeting({
|
|
@@ -504,14 +565,22 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
504
565
|
correlationId,
|
|
505
566
|
};
|
|
506
567
|
|
|
507
|
-
|
|
508
|
-
return this.request({
|
|
568
|
+
return this.locusDeltaRequest({
|
|
509
569
|
method: HTTP_VERBS.PUT,
|
|
510
570
|
uri,
|
|
511
571
|
body,
|
|
512
572
|
});
|
|
513
573
|
}
|
|
514
574
|
|
|
575
|
+
/**
|
|
576
|
+
* Builds request options to leave a meeting
|
|
577
|
+
* @param {Object} options
|
|
578
|
+
* @returns {Object} request options
|
|
579
|
+
*/
|
|
580
|
+
buildLeaveMeetingRequestOptions(options: any) {
|
|
581
|
+
return this.buildLocusDeltaRequestOptions(this.prepareLeaveMeetingRequestOptions(options));
|
|
582
|
+
}
|
|
583
|
+
|
|
515
584
|
/**
|
|
516
585
|
* Make a network request to acknowledge a meeting
|
|
517
586
|
* @param {Object} options
|
|
@@ -531,14 +600,19 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
531
600
|
correlationId: options.correlationId,
|
|
532
601
|
};
|
|
533
602
|
|
|
534
|
-
|
|
535
|
-
return this.request({
|
|
603
|
+
return this.locusDeltaRequest({
|
|
536
604
|
method: HTTP_VERBS.PUT,
|
|
537
605
|
uri,
|
|
538
606
|
body,
|
|
539
607
|
});
|
|
540
608
|
}
|
|
541
609
|
|
|
610
|
+
/**
|
|
611
|
+
* Makes a network request to lock the meeting
|
|
612
|
+
* @param {Object} options
|
|
613
|
+
* @param {Boolean} options.lock Whether it is locked or not
|
|
614
|
+
* @returns {Promise}
|
|
615
|
+
*/
|
|
542
616
|
lockMeeting(options) {
|
|
543
617
|
const uri = `${options.locusUrl}/${CONTROLS}`;
|
|
544
618
|
const body = {
|
|
@@ -547,8 +621,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
547
621
|
},
|
|
548
622
|
};
|
|
549
623
|
|
|
550
|
-
|
|
551
|
-
return this.request({
|
|
624
|
+
return this.locusDeltaRequest({
|
|
552
625
|
method: HTTP_VERBS.PATCH,
|
|
553
626
|
uri,
|
|
554
627
|
body,
|
|
@@ -574,54 +647,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
574
647
|
...(options.reason && {reason: options.reason}),
|
|
575
648
|
};
|
|
576
649
|
|
|
577
|
-
|
|
578
|
-
return this.request({
|
|
579
|
-
method: HTTP_VERBS.PUT,
|
|
580
|
-
uri,
|
|
581
|
-
body,
|
|
582
|
-
});
|
|
583
|
-
}
|
|
584
|
-
|
|
585
|
-
/**
|
|
586
|
-
* Toggle remote audio and/or video
|
|
587
|
-
* @param {Object} options options for toggling
|
|
588
|
-
* @param {String} options.selfId Locus self id??
|
|
589
|
-
* @param {String} options.locusUrl Locus url
|
|
590
|
-
* @param {String} options.deviceUrl Url of a device
|
|
591
|
-
* @param {String} options.resourceId Populated if you are paired to a device
|
|
592
|
-
* @param {String} options.localMedias local sdps
|
|
593
|
-
* @param {Boolean} options.preferTranscoding false for multistream (Homer), true for transcoded media (Edonus)
|
|
594
|
-
* @returns {Promise}
|
|
595
|
-
*/
|
|
596
|
-
remoteAudioVideoToggle(
|
|
597
|
-
options:
|
|
598
|
-
| {
|
|
599
|
-
selfId: string;
|
|
600
|
-
locusUrl: string;
|
|
601
|
-
deviceUrl: string;
|
|
602
|
-
resourceId: string;
|
|
603
|
-
localMedias: string;
|
|
604
|
-
}
|
|
605
|
-
| any
|
|
606
|
-
) {
|
|
607
|
-
const uri = `${options.locusUrl}/${PARTICIPANT}/${options.selfId}/${MEDIA}`;
|
|
608
|
-
const body = {
|
|
609
|
-
device: {
|
|
610
|
-
// @ts-ignore
|
|
611
|
-
deviceType: this.config.meetings.deviceType,
|
|
612
|
-
url: options.deviceUrl,
|
|
613
|
-
},
|
|
614
|
-
usingResource: options.resourceId || null,
|
|
615
|
-
correlationId: options.correlationId,
|
|
616
|
-
respOnlySdp: true,
|
|
617
|
-
localMedias: options.localMedias,
|
|
618
|
-
clientMediaPreferences: {
|
|
619
|
-
preferTranscoding: options.preferTranscoding ?? true,
|
|
620
|
-
},
|
|
621
|
-
};
|
|
622
|
-
|
|
623
|
-
// @ts-ignore
|
|
624
|
-
return this.request({
|
|
650
|
+
return this.locusDeltaRequest({
|
|
625
651
|
method: HTTP_VERBS.PUT,
|
|
626
652
|
uri,
|
|
627
653
|
body,
|
|
@@ -636,6 +662,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
636
662
|
* @param {String} options.deviceUrl Url of a device
|
|
637
663
|
* @param {String} options.resourceId Populated if you are paired to a device
|
|
638
664
|
* @param {String} options.uri floor grant uri
|
|
665
|
+
* @param {String} options.shareInstanceId id for current share
|
|
639
666
|
* @returns {Promise}
|
|
640
667
|
*/
|
|
641
668
|
changeMeetingFloor(
|
|
@@ -646,6 +673,8 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
646
673
|
deviceUrl: string;
|
|
647
674
|
resourceId: string;
|
|
648
675
|
uri: string;
|
|
676
|
+
annotationInfo: AnnotationInfo;
|
|
677
|
+
shareInstanceId: string;
|
|
649
678
|
}
|
|
650
679
|
| any
|
|
651
680
|
) {
|
|
@@ -676,9 +705,16 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
676
705
|
resourceUrl: options.resourceUrl,
|
|
677
706
|
};
|
|
678
707
|
|
|
708
|
+
if (options?.shareInstanceId) {
|
|
709
|
+
body.floor.shareInstanceId = options.shareInstanceId;
|
|
710
|
+
}
|
|
711
|
+
|
|
679
712
|
if (options?.resourceToken) {
|
|
680
713
|
body.resourceToken = options?.resourceToken;
|
|
681
714
|
}
|
|
715
|
+
if (options?.annotationInfo) {
|
|
716
|
+
body.annotation = options?.annotationInfo;
|
|
717
|
+
}
|
|
682
718
|
|
|
683
719
|
// @ts-ignore
|
|
684
720
|
return this.request({
|
|
@@ -698,7 +734,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
698
734
|
*/
|
|
699
735
|
sendDTMF({locusUrl, deviceUrl, tones}: {locusUrl: string; deviceUrl: string; tones: string}) {
|
|
700
736
|
// @ts-ignore
|
|
701
|
-
return this.
|
|
737
|
+
return this.locusDeltaRequest({
|
|
702
738
|
method: HTTP_VERBS.POST,
|
|
703
739
|
uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,
|
|
704
740
|
body: {
|
|
@@ -779,7 +815,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
779
815
|
: undefined;
|
|
780
816
|
|
|
781
817
|
// @ts-ignore
|
|
782
|
-
return this.
|
|
818
|
+
return this.locusDeltaRequest({
|
|
783
819
|
method: HTTP_VERBS.PUT,
|
|
784
820
|
uri: `${locusUrl}/${CONTROLS}`,
|
|
785
821
|
body: {
|
|
@@ -802,7 +838,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
802
838
|
const uri = `${locusUrl}/${END}`;
|
|
803
839
|
|
|
804
840
|
// @ts-ignore
|
|
805
|
-
return this.
|
|
841
|
+
return this.locusDeltaRequest({
|
|
806
842
|
method: HTTP_VERBS.POST,
|
|
807
843
|
uri,
|
|
808
844
|
});
|
|
@@ -854,7 +890,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
854
890
|
const uri = `${locusUrl}/${CONTROLS}`;
|
|
855
891
|
|
|
856
892
|
// @ts-ignore
|
|
857
|
-
return this.
|
|
893
|
+
return this.locusDeltaRequest({
|
|
858
894
|
method: HTTP_VERBS.PUT,
|
|
859
895
|
uri,
|
|
860
896
|
body: {
|
|
@@ -865,4 +901,12 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
865
901
|
},
|
|
866
902
|
});
|
|
867
903
|
}
|
|
904
|
+
|
|
905
|
+
getLocusStatusByUrl(locusUrl: string) {
|
|
906
|
+
// @ts-ignore
|
|
907
|
+
return this.request({
|
|
908
|
+
method: HTTP_VERBS.GET,
|
|
909
|
+
uri: locusUrl,
|
|
910
|
+
});
|
|
911
|
+
}
|
|
868
912
|
}
|