@webex/plugin-meetings 3.0.0-beta.32 → 3.0.0-beta.321
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 +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/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +709 -35
- package/dist/breakouts/index.js.map +1 -1
- package/dist/breakouts/utils.js +45 -1
- 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 +5 -11
- package/dist/config.js.map +1 -1
- package/dist/constants.js +233 -29
- 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 +112 -1
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +366 -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 +383 -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 +57 -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 +61 -116
- 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/meeting/in-meeting-actions.js +84 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +3810 -2939
- 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 +230 -124
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +260 -196
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +601 -417
- package/dist/meeting/util.js.map +1 -1
- 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 +192 -51
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/util.js +1 -1
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +36 -36
- 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 +415 -115
- 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 +72 -6
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +58 -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 +102 -6
- 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 +13 -5
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -468
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +228 -58
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +29 -16
- 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 +44 -18
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +60 -3
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +209 -59
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +233 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/reachability/index.js +225 -59
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +17 -8
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +201 -156
- 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 +62 -32
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +112 -97
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +95 -36
- 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 +142 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/index.js +107 -79
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +27 -26
- 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/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/utils.d.ts +14 -0
- 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 +1 -7
- package/dist/types/constants.d.ts +194 -24
- 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 -4
- 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 +67 -6
- package/dist/types/media/index.d.ts +2 -0
- package/dist/types/media/properties.d.ts +34 -48
- package/dist/types/meeting/in-meeting-actions.d.ts +84 -2
- package/dist/types/meeting/index.d.ts +464 -510
- package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/types/meeting/muteState.d.ts +99 -23
- package/dist/types/meeting/request.d.ts +72 -43
- package/dist/types/meeting/util.d.ts +101 -1
- 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 +98 -20
- 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 +12 -4
- package/dist/types/metrics/index.d.ts +4 -119
- package/dist/types/multistream/mediaRequestManager.d.ts +72 -5
- package/dist/types/multistream/receiveSlot.d.ts +13 -11
- package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
- package/dist/types/multistream/remoteMedia.d.ts +8 -29
- package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
- package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
- package/dist/types/multistream/sendSlotManager.d.ts +61 -0
- package/dist/types/reachability/index.d.ts +61 -7
- package/dist/types/reachability/request.d.ts +7 -3
- package/dist/types/reconnection-manager/index.d.ts +9 -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 +2 -1
- package/dist/types/roap/request.d.ts +15 -11
- package/dist/types/roap/turnDiscovery.d.ts +21 -3
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +54 -0
- package/dist/types/statsAnalyzer/index.d.ts +7 -1
- 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 +24 -20
- 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 +42 -12
- package/src/breakouts/breakout.ts +67 -9
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +592 -20
- package/src/breakouts/utils.ts +42 -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 +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 +4 -10
- package/src/constants.ts +221 -19
- 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 +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 +108 -0
- package/src/locus-info/index.ts +413 -59
- package/src/locus-info/infoUtils.ts +10 -2
- package/src/locus-info/mediaSharesUtils.ts +64 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +81 -5
- package/src/media/index.ts +102 -122
- package/src/media/properties.ts +87 -110
- package/src/meeting/in-meeting-actions.ts +167 -3
- package/src/meeting/index.ts +3162 -2553
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +229 -131
- package/src/meeting/request.ts +177 -121
- package/src/meeting/util.ts +588 -394
- package/src/meeting-info/index.ts +81 -8
- package/src/meeting-info/meeting-info-v2.ts +170 -14
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +23 -23
- package/src/meetings/collection.ts +33 -0
- package/src/meetings/index.ts +445 -123
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +80 -11
- package/src/member/index.ts +58 -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 +134 -8
- 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 -490
- package/src/multistream/mediaRequestManager.ts +277 -82
- package/src/multistream/receiveSlot.ts +31 -17
- package/src/multistream/receiveSlotManager.ts +34 -24
- package/src/multistream/remoteMedia.ts +27 -2
- package/src/multistream/remoteMediaGroup.ts +59 -0
- package/src/multistream/remoteMediaManager.ts +148 -30
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/reachability/index.ts +228 -37
- package/src/reachability/request.ts +17 -8
- package/src/reconnection-manager/index.ts +83 -56
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +63 -32
- package/src/roap/request.ts +100 -104
- package/src/roap/turnDiscovery.ts +48 -26
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +124 -0
- package/src/statsAnalyzer/index.ts +135 -92
- package/src/statsAnalyzer/mqaUtil.ts +30 -28
- 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 +320 -261
- 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 +118 -28
- 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 +1395 -69
- package/test/unit/spec/breakouts/utils.js +52 -1
- 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 +316 -43
- package/test/unit/spec/locus-info/index.js +1304 -33
- 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 +32 -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 +208 -17
- package/test/unit/spec/media/index.ts +104 -37
- package/test/unit/spec/media/properties.ts +2 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +83 -3
- package/test/unit/spec/meeting/index.js +5428 -1930
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +408 -208
- package/test/unit/spec/meeting/request.js +483 -49
- package/test/unit/spec/meeting/utils.js +679 -64
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +526 -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 +1148 -205
- package/test/unit/spec/meetings/utils.js +202 -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 +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +776 -162
- package/test/unit/spec/multistream/receiveSlot.ts +28 -20
- package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
- package/test/unit/spec/multistream/remoteMedia.ts +30 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/reachability/index.ts +549 -9
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reconnection-manager/index.js +85 -9
- package/test/unit/spec/recording-controller/index.js +294 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +178 -64
- package/test/unit/spec/roap/request.ts +203 -85
- package/test/unit/spec/roap/turnDiscovery.ts +82 -36
- package/test/unit/spec/rtcMetrics/index.ts +93 -0
- package/test/unit/spec/stats-analyzer/index.js +147 -3
- 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 -52
- package/dist/meeting/effectsState.js +0 -262
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -299
- package/dist/metrics/config.js.map +0 -1
- package/dist/types/meeting/effectsState.d.ts +0 -42
- package/dist/types/metrics/config.d.ts +0 -178
- package/src/index.js +0 -16
- package/src/meeting/effectsState.ts +0 -211
- package/src/metrics/config.ts +0 -495
- package/test/unit/spec/meeting/effectsState.js +0 -285
|
@@ -1,27 +1,53 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { StatelessWebexPlugin } from '@webex/webex-core';
|
|
3
|
+
import { ClientEvent, ClientEventLeaveReason } from '@webex/internal-plugin-metrics';
|
|
4
|
+
import { LocalStream, LocalCameraStream, LocalDisplayStream, LocalSystemAudioStream, LocalMicrophoneStream } from '@webex/media-helpers';
|
|
3
5
|
import { StatsAnalyzer } from '../statsAnalyzer';
|
|
4
6
|
import NetworkQualityMonitor from '../networkQualityMonitor';
|
|
5
7
|
import Roap from '../roap/index';
|
|
8
|
+
import { type BundlePolicy } from '../media';
|
|
6
9
|
import MediaProperties from '../media/properties';
|
|
7
10
|
import ReconnectionManager from '../reconnection-manager';
|
|
8
11
|
import MeetingRequest from './request';
|
|
9
12
|
import Members from '../members/index';
|
|
10
13
|
import Transcription from '../transcription';
|
|
14
|
+
import { NETWORK_STATUS } from '../constants';
|
|
11
15
|
import { ReceiveSlotManager } from '../multistream/receiveSlotManager';
|
|
12
16
|
import { MediaRequestManager } from '../multistream/mediaRequestManager';
|
|
13
|
-
import { RemoteMediaManager } from '../multistream/remoteMediaManager';
|
|
17
|
+
import { Configuration as RemoteMediaManagerConfiguration, RemoteMediaManager } from '../multistream/remoteMediaManager';
|
|
14
18
|
import { ReactionServerType, SkinToneType } from '../reactions/reactions.type';
|
|
15
19
|
import InMeetingActions from './in-meeting-actions';
|
|
16
20
|
import RecordingController from '../recording-controller';
|
|
17
21
|
import ControlsOptionsManager from '../controls-options-manager';
|
|
22
|
+
import { LocusMediaRequest } from './locusMediaRequest';
|
|
23
|
+
export type LocalStreams = {
|
|
24
|
+
microphone?: LocalMicrophoneStream;
|
|
25
|
+
camera?: LocalCameraStream;
|
|
26
|
+
screenShare?: {
|
|
27
|
+
audio?: LocalSystemAudioStream;
|
|
28
|
+
video?: LocalDisplayStream;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export type AddMediaOptions = {
|
|
32
|
+
localStreams?: LocalStreams;
|
|
33
|
+
audioEnabled?: boolean;
|
|
34
|
+
videoEnabled?: boolean;
|
|
35
|
+
shareAudioEnabled?: boolean;
|
|
36
|
+
shareVideoEnabled?: boolean;
|
|
37
|
+
remoteMediaManagerConfig?: RemoteMediaManagerConfiguration;
|
|
38
|
+
bundlePolicy?: BundlePolicy;
|
|
39
|
+
allowMediaInLobby?: boolean;
|
|
40
|
+
};
|
|
18
41
|
export declare const MEDIA_UPDATE_TYPE: {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
SHARE: string;
|
|
23
|
-
LAMBDA: string;
|
|
42
|
+
TRANSCODED_MEDIA_CONNECTION: string;
|
|
43
|
+
SHARE_FLOOR_REQUEST: string;
|
|
44
|
+
UPDATE_MEDIA: string;
|
|
24
45
|
};
|
|
46
|
+
export declare enum ScreenShareFloorStatus {
|
|
47
|
+
PENDING = "floor_request_pending",
|
|
48
|
+
GRANTED = "floor_request_granted",
|
|
49
|
+
RELEASED = "floor_released"
|
|
50
|
+
}
|
|
25
51
|
/**
|
|
26
52
|
* MediaDirection
|
|
27
53
|
* @typedef {Object} MediaDirection
|
|
@@ -33,15 +59,6 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
33
59
|
* @property {boolean} receiveShare
|
|
34
60
|
* @property {boolean} isSharing
|
|
35
61
|
*/
|
|
36
|
-
/**
|
|
37
|
-
* AudioVideo
|
|
38
|
-
* @typedef {Object} AudioVideo
|
|
39
|
-
* @property {Object} audio
|
|
40
|
-
* @property {String} audio.deviceId
|
|
41
|
-
* @property {Object} video
|
|
42
|
-
* @property {String} video.deviceId
|
|
43
|
-
* @property {String} video.localVideoQuality // [240p, 360p, 480p, 720p, 1080p]
|
|
44
|
-
*/
|
|
45
62
|
/**
|
|
46
63
|
* SharePreferences
|
|
47
64
|
* @typedef {Object} SharePreferences
|
|
@@ -55,18 +72,10 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
55
72
|
* @property {String} [pin]
|
|
56
73
|
* @property {Boolean} [moderator]
|
|
57
74
|
* @property {String|Object} [meetingQuality]
|
|
58
|
-
* @property {String} [meetingQuality.local]
|
|
59
75
|
* @property {String} [meetingQuality.remote]
|
|
60
76
|
* @property {Boolean} [rejoin]
|
|
61
77
|
* @property {Boolean} [enableMultistream]
|
|
62
78
|
*/
|
|
63
|
-
/**
|
|
64
|
-
* SendOptions
|
|
65
|
-
* @typedef {Object} SendOptions
|
|
66
|
-
* @property {Boolean} sendAudio
|
|
67
|
-
* @property {Boolean} sendVideo
|
|
68
|
-
* @property {Boolean} sendShare
|
|
69
|
-
*/
|
|
70
79
|
/**
|
|
71
80
|
* Recording
|
|
72
81
|
* @typedef {Object} Recording
|
|
@@ -148,7 +157,11 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
148
157
|
* @instance
|
|
149
158
|
* @type {Object}
|
|
150
159
|
* @property {Boolean} memberId id of the meeting member that started screen share
|
|
160
|
+
* @property {String} url of this content share
|
|
161
|
+
* @property {String} shareInstanceId of this content share
|
|
162
|
+
* @property {Object} annotation Info of this content share
|
|
151
163
|
* @memberof Meeting
|
|
164
|
+
*
|
|
152
165
|
*/
|
|
153
166
|
/**
|
|
154
167
|
* Meeting Stopped Sharing Remote Event
|
|
@@ -285,12 +298,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
285
298
|
attrs: any;
|
|
286
299
|
audio: any;
|
|
287
300
|
breakouts: any;
|
|
301
|
+
simultaneousInterpretation: any;
|
|
302
|
+
annotation: any;
|
|
303
|
+
webinar: any;
|
|
288
304
|
conversationUrl: string;
|
|
289
305
|
correlationId: string;
|
|
290
306
|
destination: string;
|
|
291
307
|
destinationType: string;
|
|
292
308
|
deviceUrl: string;
|
|
293
|
-
effects: any;
|
|
294
309
|
hostId: string;
|
|
295
310
|
id: string;
|
|
296
311
|
isMultistream: boolean;
|
|
@@ -298,7 +313,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
298
313
|
mediaConnections: any[];
|
|
299
314
|
mediaId?: string;
|
|
300
315
|
meetingFiniteStateMachine: any;
|
|
301
|
-
meetingInfo:
|
|
316
|
+
meetingInfo: any;
|
|
302
317
|
meetingRequest: MeetingRequest;
|
|
303
318
|
members: Members;
|
|
304
319
|
options: object;
|
|
@@ -310,11 +325,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
310
325
|
resource: string;
|
|
311
326
|
roap: Roap;
|
|
312
327
|
roapSeq: number;
|
|
328
|
+
selfUrl?: string;
|
|
313
329
|
sipUri: string;
|
|
314
330
|
type: string;
|
|
315
331
|
userId: string;
|
|
316
332
|
video: any;
|
|
317
333
|
callEvents: any[];
|
|
334
|
+
datachannelUrl: string;
|
|
318
335
|
deferJoin: Promise<any>;
|
|
319
336
|
dialInDeviceStatus: string;
|
|
320
337
|
dialInUrl: string;
|
|
@@ -327,10 +344,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
327
344
|
inMeetingActions: InMeetingActions;
|
|
328
345
|
isLocalShareLive: boolean;
|
|
329
346
|
isRoapInProgress: boolean;
|
|
330
|
-
isSharing: boolean;
|
|
331
347
|
keepAliveTimerId: NodeJS.Timeout;
|
|
332
348
|
lastVideoLayoutInfo: any;
|
|
333
349
|
locusInfo: any;
|
|
350
|
+
locusMediaRequest?: LocusMediaRequest;
|
|
334
351
|
mediaProperties: MediaProperties;
|
|
335
352
|
mediaRequestManagers: {
|
|
336
353
|
audio: MediaRequestManager;
|
|
@@ -339,8 +356,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
339
356
|
screenShareVideo: MediaRequestManager;
|
|
340
357
|
};
|
|
341
358
|
meetingInfoFailureReason: string;
|
|
359
|
+
meetingInfoFailureCode?: number;
|
|
360
|
+
meetingInfoExtraParams?: Record<string, any>;
|
|
342
361
|
networkQualityMonitor: NetworkQualityMonitor;
|
|
343
|
-
networkStatus
|
|
362
|
+
networkStatus?: NETWORK_STATUS;
|
|
344
363
|
passwordStatus: string;
|
|
345
364
|
queuedMediaUpdates: any[];
|
|
346
365
|
recording: any;
|
|
@@ -349,16 +368,19 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
349
368
|
controlsOptionsManager: ControlsOptionsManager;
|
|
350
369
|
requiredCaptcha: any;
|
|
351
370
|
receiveSlotManager: ReceiveSlotManager;
|
|
371
|
+
selfUserPolicies: any;
|
|
352
372
|
shareStatus: string;
|
|
373
|
+
screenShareFloorState: ScreenShareFloorStatus;
|
|
353
374
|
statsAnalyzer: StatsAnalyzer;
|
|
354
375
|
transcription: Transcription;
|
|
355
376
|
updateMediaConnections: (mediaConnections: any[]) => void;
|
|
356
|
-
|
|
377
|
+
userDisplayHints: any;
|
|
378
|
+
endCallInitJoinReq: any;
|
|
357
379
|
endJoinReqResp: any;
|
|
358
380
|
endLocalSDPGenRemoteSDPRecvDelay: any;
|
|
359
381
|
joinedWith: any;
|
|
360
382
|
locusId: any;
|
|
361
|
-
|
|
383
|
+
startCallInitJoinReq: any;
|
|
362
384
|
startJoinReqResp: any;
|
|
363
385
|
startLocalSDPGenRemoteSDPRecvDelay: any;
|
|
364
386
|
wirelessShare: any;
|
|
@@ -366,12 +388,26 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
366
388
|
meetingJoinUrl: any;
|
|
367
389
|
meetingNumber: any;
|
|
368
390
|
meetingState: any;
|
|
369
|
-
permissionToken:
|
|
391
|
+
permissionToken: string;
|
|
392
|
+
permissionTokenPayload: any;
|
|
370
393
|
resourceId: any;
|
|
371
394
|
resourceUrl: string;
|
|
372
395
|
selfId: string;
|
|
373
396
|
state: any;
|
|
397
|
+
localAudioStreamMuteStateHandler: (muted: boolean) => void;
|
|
398
|
+
localVideoStreamMuteStateHandler: (muted: boolean) => void;
|
|
399
|
+
localOutputTrackChangeHandler: () => void;
|
|
400
|
+
roles: any[];
|
|
401
|
+
environment: string;
|
|
374
402
|
namespace: string;
|
|
403
|
+
allowMediaInLobby: boolean;
|
|
404
|
+
turnDiscoverySkippedReason: string;
|
|
405
|
+
turnServerUsed: boolean;
|
|
406
|
+
private retriedWithTurnServer;
|
|
407
|
+
private sendSlotManager;
|
|
408
|
+
private deferSDPAnswer?;
|
|
409
|
+
private sdpResponseTimer?;
|
|
410
|
+
private hasMediaConnectionConnectedAtLeastOnce;
|
|
375
411
|
/**
|
|
376
412
|
* @param {Object} attrs
|
|
377
413
|
* @param {Object} options
|
|
@@ -379,29 +415,58 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
379
415
|
* @memberof Meeting
|
|
380
416
|
*/
|
|
381
417
|
constructor(attrs: any, options: object);
|
|
418
|
+
/**
|
|
419
|
+
* returns meeting is joined
|
|
420
|
+
* @private
|
|
421
|
+
* @memberof Meeting
|
|
422
|
+
* @returns {Boolean}
|
|
423
|
+
*/
|
|
424
|
+
private isJoined;
|
|
425
|
+
/**
|
|
426
|
+
* Returns whether this meeting is a Locus CALL
|
|
427
|
+
* @returns {Boolean}
|
|
428
|
+
*/
|
|
429
|
+
isLocusCall(): boolean;
|
|
430
|
+
/**
|
|
431
|
+
* Internal method for fetching meeting info
|
|
432
|
+
*
|
|
433
|
+
* @returns {Promise}
|
|
434
|
+
*/
|
|
435
|
+
private fetchMeetingInfoInternal;
|
|
436
|
+
/**
|
|
437
|
+
* Refreshes the meeting info permission token (it's required for joining meetings)
|
|
438
|
+
*
|
|
439
|
+
* @param {string} [reason] used for metrics and logging purposes (optional)
|
|
440
|
+
* @returns {Promise}
|
|
441
|
+
*/
|
|
442
|
+
refreshPermissionToken(reason?: string): Promise<void>;
|
|
382
443
|
/**
|
|
383
444
|
* Fetches meeting information.
|
|
384
445
|
* @param {Object} options
|
|
385
446
|
* @param {String} [options.password] optional
|
|
386
447
|
* @param {String} [options.captchaCode] optional
|
|
448
|
+
* @param {Boolean} [options.sendCAevents] optional - Whether to submit Call Analyzer events or not. Default: false.
|
|
387
449
|
* @public
|
|
388
450
|
* @memberof Meeting
|
|
389
451
|
* @returns {Promise}
|
|
390
452
|
*/
|
|
391
|
-
fetchMeetingInfo({ password, captchaCode, }: {
|
|
453
|
+
fetchMeetingInfo({ password, captchaCode, extraParams, sendCAevents, }: {
|
|
392
454
|
password?: string;
|
|
393
455
|
captchaCode?: string;
|
|
456
|
+
extraParams?: Record<string, any>;
|
|
457
|
+
sendCAevents?: boolean;
|
|
394
458
|
}): Promise<void>;
|
|
395
459
|
/**
|
|
396
460
|
* Checks if the supplied password/host key is correct. It returns a promise with information whether the
|
|
397
461
|
* password and captcha code were correct or not.
|
|
398
462
|
* @param {String} password - this can be either a password or a host key, can be undefined if only captcha was required
|
|
399
463
|
* @param {String} captchaCode - can be undefined if captcha was not required by the server
|
|
464
|
+
* @param {Boolean} sendCAevents - whether Call Analyzer events should be sent when fetching meeting information
|
|
400
465
|
* @public
|
|
401
466
|
* @memberof Meeting
|
|
402
467
|
* @returns {Promise<{isPasswordValid: boolean, requiredCaptcha: boolean, failureReason: MEETING_INFO_FAILURE_REASON}>}
|
|
403
468
|
*/
|
|
404
|
-
verifyPassword(password: string, captchaCode: string): Promise<{
|
|
469
|
+
verifyPassword(password: string, captchaCode: string, sendCAevents?: boolean): Promise<{
|
|
405
470
|
isPasswordValid: boolean;
|
|
406
471
|
requiredCaptcha: any;
|
|
407
472
|
failureReason: string;
|
|
@@ -418,6 +483,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
418
483
|
* @returns {Promise}
|
|
419
484
|
*/
|
|
420
485
|
refreshCaptcha(): any;
|
|
486
|
+
/**
|
|
487
|
+
* Posts metrics event for this meeting. Allows the app to send Call Analyzer events.
|
|
488
|
+
* @param {String} eventName - Call Analyzer event
|
|
489
|
+
* @public
|
|
490
|
+
* @memberof Meeting
|
|
491
|
+
* @returns {Promise}
|
|
492
|
+
*/
|
|
493
|
+
postMetrics(eventName: ClientEvent['name']): void;
|
|
421
494
|
/**
|
|
422
495
|
* Proxy function for all the listener set ups
|
|
423
496
|
* @returns {undefined}
|
|
@@ -432,6 +505,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
432
505
|
* @memberof Meeting
|
|
433
506
|
*/
|
|
434
507
|
setUpBreakoutsListener(): void;
|
|
508
|
+
/**
|
|
509
|
+
* Set up the listeners for interpretation
|
|
510
|
+
* @returns {undefined}
|
|
511
|
+
* @private
|
|
512
|
+
* @memberof Meeting
|
|
513
|
+
*/
|
|
514
|
+
private setUpInterpretationListener;
|
|
435
515
|
/**
|
|
436
516
|
* Set up the locus info listener for meetings disconnected due to inactivity
|
|
437
517
|
* @returns {undefined}
|
|
@@ -453,50 +533,9 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
453
533
|
* @memberof Meeting
|
|
454
534
|
*/
|
|
455
535
|
private setUpLocusFullStateListener;
|
|
456
|
-
/**
|
|
457
|
-
* get the metrics payload pre
|
|
458
|
-
* @param {Object} options
|
|
459
|
-
* @param {String} options.event
|
|
460
|
-
* @param {String} options.trackingId
|
|
461
|
-
* @param {Object} options.locus
|
|
462
|
-
* @param {Array} options.mediaConnections
|
|
463
|
-
* @param {Object} options.errors
|
|
464
|
-
* @returns {Object}
|
|
465
|
-
* @memberof Meeting
|
|
466
|
-
*/
|
|
467
|
-
getAnalyzerMetricsPrePayload(options: {
|
|
468
|
-
event: string;
|
|
469
|
-
trackingId: string;
|
|
470
|
-
locus: object;
|
|
471
|
-
mediaConnections: Array<any>;
|
|
472
|
-
errors: object;
|
|
473
|
-
} | any): {};
|
|
474
|
-
/**
|
|
475
|
-
* Send the metrics to call-analyzer dashboard
|
|
476
|
-
* @param {Object} options
|
|
477
|
-
* @param {String} options.event
|
|
478
|
-
* @param {String} options.trackingId
|
|
479
|
-
* @param {Object} options.locus
|
|
480
|
-
* @param {Object} options.errors
|
|
481
|
-
* @returns {Promise}
|
|
482
|
-
* @private
|
|
483
|
-
* @memberof Meeting
|
|
484
|
-
*/
|
|
485
|
-
private sendCallAnalyzerMetrics;
|
|
486
|
-
/**
|
|
487
|
-
* Send the metrics to Media Quality Analyzer dashboard
|
|
488
|
-
* @param {Object} options
|
|
489
|
-
* @param {String} options.event
|
|
490
|
-
* @param {String} options.trackingId
|
|
491
|
-
* @param {Object} options.locus
|
|
492
|
-
* @returns {Promise}
|
|
493
|
-
* @private
|
|
494
|
-
* @memberof Meeting
|
|
495
|
-
*/
|
|
496
|
-
private sendMediaQualityAnalyzerMetrics;
|
|
497
536
|
/**
|
|
498
537
|
* sets the network status on meeting object
|
|
499
|
-
* @param {
|
|
538
|
+
* @param {NETWORK_STATUS} networkStatus
|
|
500
539
|
* @private
|
|
501
540
|
* @returns {undefined}
|
|
502
541
|
* @memberof Meeting
|
|
@@ -556,6 +595,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
556
595
|
* @memberof Meeting
|
|
557
596
|
*/
|
|
558
597
|
private setupLocusControlsListener;
|
|
598
|
+
/**
|
|
599
|
+
* Trigger annotation info update event
|
|
600
|
+
@returns {undefined}
|
|
601
|
+
@param {object} contentShare
|
|
602
|
+
@param {object} previousContentShare
|
|
603
|
+
*/
|
|
604
|
+
private triggerAnnotationInfoEvent;
|
|
559
605
|
/**
|
|
560
606
|
* Set up the locus info media shares listener
|
|
561
607
|
* update content and whiteboard sharing id value for members, and updates the member
|
|
@@ -654,13 +700,23 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
654
700
|
phoneNumber: string;
|
|
655
701
|
}): any;
|
|
656
702
|
/**
|
|
657
|
-
* Admit the guest(s) to the call once they are waiting
|
|
703
|
+
* Admit the guest(s) to the call once they are waiting.
|
|
704
|
+
* If the host/cohost is in a breakout session, the locus url
|
|
705
|
+
* of the session must be provided as the authorizingLocusUrl.
|
|
706
|
+
* Regardless of host/cohost location, the locus Id (lid) in
|
|
707
|
+
* the path should be the locus Id of the main, which means the
|
|
708
|
+
* locus url of the api call must be from the main session.
|
|
709
|
+
* If these loucs urls are not provided, the function will do the check.
|
|
658
710
|
* @param {Array} memberIds
|
|
711
|
+
* @param {Object} sessionLocusUrls: {authorizingLocusUrl, mainLocusUrl}
|
|
659
712
|
* @returns {Promise} see #members.admitMembers
|
|
660
713
|
* @public
|
|
661
714
|
* @memberof Meeting
|
|
662
715
|
*/
|
|
663
|
-
admit(memberIds: Array<any
|
|
716
|
+
admit(memberIds: Array<any>, sessionLocusUrls?: {
|
|
717
|
+
authorizingLocusUrl: string;
|
|
718
|
+
mainLocusUrl: string;
|
|
719
|
+
}): any;
|
|
664
720
|
/**
|
|
665
721
|
* Remove the member from the meeting, boot them
|
|
666
722
|
* @param {String} memberId
|
|
@@ -694,48 +750,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
694
750
|
* @memberof Meeting
|
|
695
751
|
*/
|
|
696
752
|
getMembers(): Members;
|
|
697
|
-
/**
|
|
698
|
-
* Truthy when a meeting has an audio connection established
|
|
699
|
-
* @returns {Boolean} true if meeting audio is connected otherwise false
|
|
700
|
-
* @public
|
|
701
|
-
* @memberof Meeting
|
|
702
|
-
*/
|
|
703
|
-
isAudioConnected(): boolean;
|
|
704
|
-
/**
|
|
705
|
-
* Convenience function to tell whether a meeting is muted
|
|
706
|
-
* @returns {Boolean} if meeting audio muted or not
|
|
707
|
-
* @public
|
|
708
|
-
* @memberof Meeting
|
|
709
|
-
*/
|
|
710
|
-
isAudioMuted(): any;
|
|
711
|
-
/**
|
|
712
|
-
* Convenience function to tell if the end user last changed the audio state
|
|
713
|
-
* @returns {Boolean} if audio was manipulated by the end user
|
|
714
|
-
* @public
|
|
715
|
-
* @memberof Meeting
|
|
716
|
-
*/
|
|
717
|
-
isAudioSelf(): any;
|
|
718
|
-
/**
|
|
719
|
-
* Truthy when a meeting has a video connection established
|
|
720
|
-
* @returns {Boolean} true if meeting video connected otherwise false
|
|
721
|
-
* @public
|
|
722
|
-
* @memberof Meeting
|
|
723
|
-
*/
|
|
724
|
-
isVideoConnected(): boolean;
|
|
725
|
-
/**
|
|
726
|
-
* Convenience function to tell whether video is muted
|
|
727
|
-
* @returns {Boolean} if meeting video is muted or not
|
|
728
|
-
* @public
|
|
729
|
-
* @memberof Meeting
|
|
730
|
-
*/
|
|
731
|
-
isVideoMuted(): any;
|
|
732
|
-
/**
|
|
733
|
-
* Convenience function to tell whether the end user changed the video state
|
|
734
|
-
* @returns {Boolean} if meeting video is muted or not
|
|
735
|
-
* @public
|
|
736
|
-
* @memberof Meeting
|
|
737
|
-
*/
|
|
738
|
-
isVideoSelf(): any;
|
|
739
753
|
/**
|
|
740
754
|
* Sets the meeting info on the class instance
|
|
741
755
|
* @param {Object} meetingInfo
|
|
@@ -758,16 +772,29 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
758
772
|
};
|
|
759
773
|
} | any, destination?: object | string | null): void;
|
|
760
774
|
/**
|
|
761
|
-
*
|
|
762
|
-
* @
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
775
|
+
* Indicates whether policy can be applied
|
|
776
|
+
* @returns {boolean}
|
|
777
|
+
*/
|
|
778
|
+
private arePolicyRestrictionsSupported;
|
|
779
|
+
/**
|
|
780
|
+
* Updates the meeting actions (display hints), depends on locus display hints, user policy and app api info
|
|
766
781
|
* @returns {undefined}
|
|
767
782
|
* @private
|
|
768
783
|
* @memberof Meeting
|
|
769
784
|
*/
|
|
770
|
-
private
|
|
785
|
+
private updateMeetingActions;
|
|
786
|
+
/**
|
|
787
|
+
* Sets the self user policies based on the contents of the permission token
|
|
788
|
+
* @returns {void}
|
|
789
|
+
*/
|
|
790
|
+
setSelfUserPolicies(): void;
|
|
791
|
+
/**
|
|
792
|
+
* Sets the permission token payload on the class instance
|
|
793
|
+
*
|
|
794
|
+
* @param {String} permissionToken
|
|
795
|
+
* @returns {void}
|
|
796
|
+
*/
|
|
797
|
+
setPermissionTokenPayload(permissionToken: string): void;
|
|
771
798
|
/**
|
|
772
799
|
* Sets the sip uri on the class instance
|
|
773
800
|
* uses meeting info as precedence
|
|
@@ -790,7 +817,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
790
817
|
* @private
|
|
791
818
|
* @memberof Meeting
|
|
792
819
|
*/
|
|
793
|
-
|
|
820
|
+
setLocus(locus: {
|
|
821
|
+
mediaConnections: Array<any>;
|
|
822
|
+
locusUrl: string;
|
|
823
|
+
locusId: string;
|
|
824
|
+
mediaId: string;
|
|
825
|
+
host: object;
|
|
826
|
+
} | any): void;
|
|
794
827
|
/**
|
|
795
828
|
* Upload logs for the current meeting
|
|
796
829
|
* @param {object} options file name and function name
|
|
@@ -800,19 +833,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
800
833
|
*/
|
|
801
834
|
uploadLogs(options?: object): void;
|
|
802
835
|
/**
|
|
803
|
-
* Removes remote audio and
|
|
804
|
-
* to developers
|
|
805
|
-
* @returns {undefined}
|
|
806
|
-
* @public
|
|
807
|
-
* @memberof Meeting
|
|
808
|
-
* @deprecated after v1.89.3
|
|
809
|
-
*/
|
|
810
|
-
unsetRemoteStream(): void;
|
|
811
|
-
/**
|
|
812
|
-
* Removes remote audio, video and share tracks from class instance's mediaProperties
|
|
836
|
+
* Removes remote audio, video and share streams from class instance's mediaProperties
|
|
813
837
|
* @returns {undefined}
|
|
814
838
|
*/
|
|
815
|
-
|
|
839
|
+
unsetRemoteStreams(): void;
|
|
816
840
|
/**
|
|
817
841
|
* Removes the remote stream on the class instance and triggers an event
|
|
818
842
|
* to developers
|
|
@@ -823,83 +847,45 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
823
847
|
*/
|
|
824
848
|
closeRemoteStream(): void;
|
|
825
849
|
/**
|
|
826
|
-
* Removes the remote
|
|
850
|
+
* Removes the remote streams on the class instance and triggers an event
|
|
827
851
|
* to developers
|
|
828
852
|
* @returns {undefined}
|
|
829
853
|
* @memberof Meeting
|
|
830
854
|
*/
|
|
831
|
-
|
|
855
|
+
closeRemoteStreams(): Promise<[any, any, any, any]>;
|
|
832
856
|
/**
|
|
833
|
-
*
|
|
834
|
-
*
|
|
835
|
-
*
|
|
836
|
-
* @
|
|
837
|
-
|
|
838
|
-
private sendLocalMediaReadyEvent;
|
|
839
|
-
/**
|
|
840
|
-
* Sets the local audio track on the class and emits an event to the developer
|
|
841
|
-
* @param {MediaStreamTrack} audioTrack
|
|
842
|
-
* @param {Boolean} emitEvent if true, a media ready event is emitted to the developer
|
|
843
|
-
* @returns {undefined}
|
|
844
|
-
* @private
|
|
845
|
-
* @memberof Meeting
|
|
846
|
-
*/
|
|
847
|
-
private setLocalAudioTrack;
|
|
848
|
-
/**
|
|
849
|
-
* Sets the local video track on the class and emits an event to the developer
|
|
850
|
-
* @param {MediaStreamTrack} videoTrack
|
|
851
|
-
* @param {Boolean} emitEvent if true, a media ready event is emitted to the developer
|
|
852
|
-
* @returns {undefined}
|
|
853
|
-
* @private
|
|
854
|
-
* @memberof Meeting
|
|
855
|
-
*/
|
|
856
|
-
private setLocalVideoTrack;
|
|
857
|
-
/**
|
|
858
|
-
* Sets the local media stream on the class and emits an event to the developer
|
|
859
|
-
* @param {Stream} localStream the local media stream
|
|
860
|
-
* @returns {undefined}
|
|
861
|
-
* @public
|
|
862
|
-
* @memberof Meeting
|
|
863
|
-
*/
|
|
864
|
-
setLocalTracks(localStream: any): void;
|
|
865
|
-
/**
|
|
866
|
-
* Sets the local media stream on the class and emits an event to the developer
|
|
867
|
-
* @param {MediaStreamTrack} localShareTrack the local media stream
|
|
868
|
-
* @returns {undefined}
|
|
869
|
-
* @public
|
|
870
|
-
* @memberof Meeting
|
|
871
|
-
*/
|
|
872
|
-
setLocalShareTrack(localShareTrack: MediaStreamTrack): void;
|
|
873
|
-
/**
|
|
874
|
-
* Closes the local stream from the class and emits an event to the developer
|
|
875
|
-
* @returns {undefined}
|
|
876
|
-
* @event media:stopped
|
|
877
|
-
* @public
|
|
878
|
-
* @memberof Meeting
|
|
857
|
+
* Stores the reference to a new microphone stream, sets up the required event listeners
|
|
858
|
+
* on it, cleans up previous stream, etc.
|
|
859
|
+
*
|
|
860
|
+
* @param {LocalMicrophoneStream | null} localStream local microphone stream
|
|
861
|
+
* @returns {Promise<void>}
|
|
879
862
|
*/
|
|
880
|
-
|
|
863
|
+
private setLocalAudioStream;
|
|
881
864
|
/**
|
|
882
|
-
*
|
|
883
|
-
*
|
|
884
|
-
*
|
|
885
|
-
* @
|
|
886
|
-
* @
|
|
865
|
+
* Stores the reference to a new camera stream, sets up the required event listeners
|
|
866
|
+
* on it, cleans up previous stream, etc.
|
|
867
|
+
*
|
|
868
|
+
* @param {LocalCameraStream | null} localStream local camera stream
|
|
869
|
+
* @returns {Promise<void>}
|
|
887
870
|
*/
|
|
888
|
-
|
|
871
|
+
private setLocalVideoStream;
|
|
889
872
|
/**
|
|
890
|
-
*
|
|
891
|
-
*
|
|
892
|
-
*
|
|
893
|
-
*
|
|
873
|
+
* Stores the reference to a new screen share stream, sets up the required event listeners
|
|
874
|
+
* on it, cleans up previous stream, etc.
|
|
875
|
+
* It also sends the floor grant/release request.
|
|
876
|
+
*
|
|
877
|
+
* @param {LocalDisplayStream | undefined} localDisplayStream local display stream
|
|
878
|
+
* @returns {Promise<void>}
|
|
894
879
|
*/
|
|
895
|
-
|
|
880
|
+
private setLocalShareVideoStream;
|
|
896
881
|
/**
|
|
897
|
-
*
|
|
898
|
-
*
|
|
899
|
-
*
|
|
900
|
-
* @
|
|
882
|
+
* Stores the reference to a new screen share audio stream, sets up the required event listeners
|
|
883
|
+
* on it, cleans up previous stream, etc.
|
|
884
|
+
*
|
|
885
|
+
* @param {LocalSystemAudioStream | undefined} localSystemAudioStream local system audio stream
|
|
886
|
+
* @returns {Promise<void>}
|
|
901
887
|
*/
|
|
902
|
-
|
|
888
|
+
private setLocalShareAudioStream;
|
|
903
889
|
/**
|
|
904
890
|
* sets up listner for mercury event
|
|
905
891
|
* @returns {undefined}
|
|
@@ -928,10 +914,17 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
928
914
|
* Convenience method to set the correlation id for the Meeting
|
|
929
915
|
* @param {String} id correlation id to set on the class
|
|
930
916
|
* @returns {undefined}
|
|
917
|
+
* @public
|
|
918
|
+
* @memberof Meeting
|
|
919
|
+
*/
|
|
920
|
+
setCorrelationId(id: string): void;
|
|
921
|
+
/**
|
|
922
|
+
* Enqueue request for screenshare floor and set the status to pending
|
|
923
|
+
* @returns {Promise}
|
|
931
924
|
* @private
|
|
932
925
|
* @memberof Meeting
|
|
933
926
|
*/
|
|
934
|
-
private
|
|
927
|
+
private enqueueScreenShareFloorRequest;
|
|
935
928
|
/**
|
|
936
929
|
* Mute the audio for a meeting
|
|
937
930
|
* @returns {Promise} resolves the data from muting audio {mute, self} or rejects if there is no audio set
|
|
@@ -964,32 +957,25 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
964
957
|
* Shorthand function to join AND set up media
|
|
965
958
|
* @param {Object} options - options to join with media
|
|
966
959
|
* @param {JoinOptions} [options.joinOptions] - see #join()
|
|
967
|
-
* @param {
|
|
968
|
-
* @
|
|
969
|
-
* @returns {Promise} -- {join: see join(), media: see addMedia(), local: see getMediaStreams()}
|
|
960
|
+
* @param {AddMediaOptions} [options.mediaOptions] - see #addMedia()
|
|
961
|
+
* @returns {Promise} -- {join: see join(), media: see addMedia()}
|
|
970
962
|
* @public
|
|
971
963
|
* @memberof Meeting
|
|
972
964
|
* @example
|
|
973
965
|
* joinWithMedia({
|
|
974
966
|
* joinOptions: {resourceId: 'resourceId' },
|
|
975
|
-
*
|
|
976
|
-
*
|
|
977
|
-
*
|
|
978
|
-
*
|
|
979
|
-
* receiveVideo:true,
|
|
980
|
-
* receiveAudio: true,
|
|
981
|
-
* receiveShare: true
|
|
982
|
-
* }
|
|
983
|
-
* audioVideoOptions: {
|
|
984
|
-
* audio: 'audioDeviceId',
|
|
985
|
-
* video: 'videoDeviceId'
|
|
986
|
-
* }})
|
|
967
|
+
* mediaOptions: {
|
|
968
|
+
* localStreams: { microphone: microphoneStream, camera: cameraStream }
|
|
969
|
+
* }
|
|
970
|
+
* })
|
|
987
971
|
*/
|
|
988
972
|
joinWithMedia(options?: {
|
|
989
973
|
joinOptions?: any;
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
974
|
+
mediaOptions?: AddMediaOptions;
|
|
975
|
+
}): Promise<{
|
|
976
|
+
join: any;
|
|
977
|
+
media: void;
|
|
978
|
+
}>;
|
|
993
979
|
/**
|
|
994
980
|
* Initiates the reconnection of the media in the meeting
|
|
995
981
|
*
|
|
@@ -1054,7 +1040,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1054
1040
|
* if joining as host on second loop, pass pin and pass moderator if joining as guest on second loop
|
|
1055
1041
|
* Scenario D: Joining any other way (sip, pstn, conversationUrl, link just need to specify resourceId)
|
|
1056
1042
|
*/
|
|
1057
|
-
join(options?: any): any
|
|
1043
|
+
join(options?: any): Promise<any>;
|
|
1058
1044
|
/**
|
|
1059
1045
|
* Connects to low latency mercury and reconnects if the address has changed
|
|
1060
1046
|
* It will also disconnect if called when the meeting has ended
|
|
@@ -1069,7 +1055,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1069
1055
|
* @public
|
|
1070
1056
|
* @memberof Meeting
|
|
1071
1057
|
*/
|
|
1072
|
-
usePhoneAudio(phoneNumber: string): any
|
|
1058
|
+
usePhoneAudio(phoneNumber: string): Promise<any>;
|
|
1073
1059
|
/**
|
|
1074
1060
|
* Determines if the given pstnStatus is in a state which implies the phone is provisioned
|
|
1075
1061
|
* @param {String} pstnStatus
|
|
@@ -1117,38 +1103,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1117
1103
|
* @memberof Meeting
|
|
1118
1104
|
*/
|
|
1119
1105
|
moveFrom(resourceId: string): any;
|
|
1120
|
-
/**
|
|
1121
|
-
* Get local media streams based on options passed
|
|
1122
|
-
*
|
|
1123
|
-
* NOTE: this method can only be used with transcoded meetings, not with multistream meetings
|
|
1124
|
-
*
|
|
1125
|
-
* @param {MediaDirection} mediaDirection A configurable options object for joining a meeting
|
|
1126
|
-
* @param {AudioVideo} [audioVideo] audio/video object to set audioinput and videoinput devices, see #Media.getUserMedia
|
|
1127
|
-
* @param {SharePreferences} [sharePreferences] audio/video object to set audioinput and videoinput devices, see #Media.getUserMedia
|
|
1128
|
-
* @returns {Promise} see #Media.getUserMedia
|
|
1129
|
-
* @public
|
|
1130
|
-
* @todo should be static, or moved so can be called outside of a meeting
|
|
1131
|
-
* @memberof Meeting
|
|
1132
|
-
*/
|
|
1133
|
-
getMediaStreams: (mediaDirection: any, audioVideo?: any, sharePreferences?: any) => any;
|
|
1134
|
-
/**
|
|
1135
|
-
* Checks if the machine has at least one audio or video device
|
|
1136
|
-
* @param {Object} options
|
|
1137
|
-
* @param {Boolean} options.sendAudio
|
|
1138
|
-
* @param {Boolean} options.sendVideo
|
|
1139
|
-
* @returns {Object}
|
|
1140
|
-
* @memberof Meetings
|
|
1141
|
-
*/
|
|
1142
|
-
getSupportedDevices: ({ sendAudio, sendVideo, }: {
|
|
1143
|
-
sendAudio: boolean;
|
|
1144
|
-
sendVideo: boolean;
|
|
1145
|
-
}) => any;
|
|
1146
|
-
/**
|
|
1147
|
-
* Get the devices from the Media module
|
|
1148
|
-
* @returns {Promise} resolves to an array of DeviceInfo
|
|
1149
|
-
* @memberof Meetings
|
|
1150
|
-
*/
|
|
1151
|
-
getDevices: () => any;
|
|
1152
1106
|
/**
|
|
1153
1107
|
* Handles ROAP_FAILURE event from the webrtc media connection
|
|
1154
1108
|
*
|
|
@@ -1156,6 +1110,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1156
1110
|
* @returns {void}
|
|
1157
1111
|
*/
|
|
1158
1112
|
handleRoapFailure: (error: any) => void;
|
|
1113
|
+
/**
|
|
1114
|
+
* This function makes sure we send the right metrics when local and remote SDPs are processed/generated
|
|
1115
|
+
*
|
|
1116
|
+
* @returns {undefined}
|
|
1117
|
+
*/
|
|
1118
|
+
setupSdpListeners: () => void;
|
|
1159
1119
|
setupMediaConnectionListeners: () => void;
|
|
1160
1120
|
/**
|
|
1161
1121
|
* Registers for all required StatsAnalyzer events
|
|
@@ -1165,7 +1125,15 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1165
1125
|
*/
|
|
1166
1126
|
setupStatsAnalyzerEventHandlers: () => void;
|
|
1167
1127
|
getMediaConnectionDebugId(): string;
|
|
1168
|
-
|
|
1128
|
+
/**
|
|
1129
|
+
* Creates a webrtc media connection and publishes streams to it
|
|
1130
|
+
*
|
|
1131
|
+
* @param {Object} turnServerInfo TURN server information
|
|
1132
|
+
* @param {BundlePolicy} [bundlePolicy] Bundle policy settings
|
|
1133
|
+
* @param {AddMediaOptions} [options] Options for enabling/disabling audio/video
|
|
1134
|
+
* @returns {RoapMediaConnection | MultistreamRoapMediaConnection}
|
|
1135
|
+
*/
|
|
1136
|
+
private createMediaConnection;
|
|
1169
1137
|
/**
|
|
1170
1138
|
* Listens for an event emitted by eventEmitter and emits it from the meeting object
|
|
1171
1139
|
*
|
|
@@ -1177,23 +1145,121 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1177
1145
|
*/
|
|
1178
1146
|
forwardEvent(eventEmitter: any, eventTypeToForward: any, meetingEventType: any): void;
|
|
1179
1147
|
/**
|
|
1180
|
-
*
|
|
1181
|
-
*
|
|
1182
|
-
*
|
|
1183
|
-
* @
|
|
1184
|
-
* @param {
|
|
1185
|
-
* @
|
|
1186
|
-
|
|
1187
|
-
|
|
1148
|
+
* Sets up all the references to local streams in this.mediaProperties before creating media connection
|
|
1149
|
+
* and before TURN discovery, so that the correct mute state is sent with TURN discovery roap messages.
|
|
1150
|
+
*
|
|
1151
|
+
* @private
|
|
1152
|
+
* @param {LocalStreams} localStreams
|
|
1153
|
+
* @returns {Promise<void>}
|
|
1154
|
+
*/
|
|
1155
|
+
private setUpLocalStreamReferences;
|
|
1156
|
+
/**
|
|
1157
|
+
* Calls mediaProperties.waitForMediaConnectionConnected() and sends CA client.ice.end metric on failure
|
|
1158
|
+
*
|
|
1159
|
+
* @private
|
|
1160
|
+
* @returns {Promise<void>}
|
|
1161
|
+
*/
|
|
1162
|
+
private waitForMediaConnectionConnected;
|
|
1163
|
+
/**
|
|
1164
|
+
* Enables statsAnalyser if config allows it
|
|
1165
|
+
*
|
|
1166
|
+
* @private
|
|
1167
|
+
* @returns {void}
|
|
1168
|
+
*/
|
|
1169
|
+
private createStatsAnalyzer;
|
|
1170
|
+
/**
|
|
1171
|
+
* Handles device logging
|
|
1172
|
+
*
|
|
1173
|
+
* @private
|
|
1174
|
+
* @static
|
|
1175
|
+
* @returns {Promise<void>}
|
|
1176
|
+
*/
|
|
1177
|
+
private static handleDeviceLogging;
|
|
1178
|
+
/**
|
|
1179
|
+
* Returns a promise. This promise is created once the local sdp offer has been successfully created and is resolved
|
|
1180
|
+
* once the remote sdp answer has been received.
|
|
1181
|
+
*
|
|
1182
|
+
* @private
|
|
1183
|
+
* @returns {Promise<void>}
|
|
1184
|
+
*/
|
|
1185
|
+
private waitForRemoteSDPAnswer;
|
|
1186
|
+
/**
|
|
1187
|
+
* Calls establishMediaConnection with isForced = true to force turn discovery to happen
|
|
1188
|
+
*
|
|
1189
|
+
* @private
|
|
1190
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1191
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1192
|
+
* @returns {Promise<void>}
|
|
1193
|
+
*/
|
|
1194
|
+
private retryEstablishMediaConnectionWithForcedTurnDiscovery;
|
|
1195
|
+
/**
|
|
1196
|
+
* Does relevant clean up before retrying to establish media connection
|
|
1197
|
+
* and performs the retry with forced turn discovery
|
|
1198
|
+
*
|
|
1199
|
+
* @private
|
|
1200
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1201
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1202
|
+
* @returns {Promise<void>}
|
|
1203
|
+
*/
|
|
1204
|
+
private retryWithForcedTurnDiscovery;
|
|
1205
|
+
/**
|
|
1206
|
+
* If waitForMediaConnectionConnected() fails when we haven't done turn discovery then we
|
|
1207
|
+
* attempt to establish a media connection again, but this time using turn discovery. If we
|
|
1208
|
+
* used turn discovery on the first pass we do not attempt connection again.
|
|
1209
|
+
*
|
|
1210
|
+
* @private
|
|
1211
|
+
* @param {Error} error
|
|
1212
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1213
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1214
|
+
* @returns {Promise<void>}
|
|
1215
|
+
*/
|
|
1216
|
+
private handleWaitForMediaConnectionConnectedError;
|
|
1217
|
+
/**
|
|
1218
|
+
* Does TURN discovery, SDP offer/answer exhange, establishes ICE connection and DTLS handshake.
|
|
1219
|
+
*
|
|
1220
|
+
* @private
|
|
1221
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1222
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1223
|
+
* @param {boolean} [isForced] - let isForced be true to do turn discovery regardless of reachability results
|
|
1224
|
+
* @returns {Promise<void>}
|
|
1225
|
+
*/
|
|
1226
|
+
private establishMediaConnection;
|
|
1227
|
+
/**
|
|
1228
|
+
* Cleans up stats analyzer, peer connection, and turns off listeners
|
|
1229
|
+
*
|
|
1230
|
+
* @private
|
|
1231
|
+
* @returns {Promise<void>}
|
|
1232
|
+
*/
|
|
1233
|
+
private cleanUpOnAddMediaFailure;
|
|
1234
|
+
/**
|
|
1235
|
+
* Sends stats report, closes peer connection and cleans up any media connection
|
|
1236
|
+
* related things before trying to establish media connection again with turn server
|
|
1237
|
+
*
|
|
1238
|
+
* @private
|
|
1239
|
+
* @returns {Promise<void>}
|
|
1240
|
+
*/
|
|
1241
|
+
private cleanUpBeforeRetryWithTurnServer;
|
|
1242
|
+
/**
|
|
1243
|
+
* Creates a media connection to the server. Media connection is required for sending or receiving any audio/video.
|
|
1244
|
+
*
|
|
1245
|
+
* @param {AddMediaOptions} options
|
|
1246
|
+
* @returns {Promise<void>}
|
|
1188
1247
|
* @public
|
|
1189
1248
|
* @memberof Meeting
|
|
1190
1249
|
*/
|
|
1191
|
-
addMedia(options?:
|
|
1250
|
+
addMedia(options?: AddMediaOptions): Promise<void>;
|
|
1192
1251
|
/**
|
|
1193
1252
|
* Informs if the peer connection is in a state that can be updated with updateMedia (audio/video/share)
|
|
1194
1253
|
* @returns {Boolean}
|
|
1195
1254
|
*/
|
|
1196
1255
|
canUpdateMedia(): boolean;
|
|
1256
|
+
/**
|
|
1257
|
+
* media failed, so collect a stats report from webrtc using the wcme connection to grab the rtc stats report
|
|
1258
|
+
* send a webrtc telemetry dump to the configured server using the internal media core check metrics configured callback
|
|
1259
|
+
* @param {String} callFrom - the function calling this function, optional.
|
|
1260
|
+
* @returns {Promise<void>}
|
|
1261
|
+
*/
|
|
1262
|
+
private forceSendStatsReport;
|
|
1197
1263
|
/**
|
|
1198
1264
|
* Enqueues a media update operation.
|
|
1199
1265
|
* @param {String} mediaUpdateType one of MEDIA_UPDATE_TYPE values
|
|
@@ -1219,94 +1285,26 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1219
1285
|
*/
|
|
1220
1286
|
processNextQueuedMediaUpdate: () => void;
|
|
1221
1287
|
/**
|
|
1222
|
-
*
|
|
1223
|
-
*
|
|
1224
|
-
*
|
|
1225
|
-
*
|
|
1226
|
-
*
|
|
1227
|
-
* @param {MediaDirection} options.mediaSettings
|
|
1228
|
-
* @returns {Promise}
|
|
1229
|
-
* @public
|
|
1230
|
-
* @memberof Meeting
|
|
1231
|
-
*/
|
|
1232
|
-
updateMedia(options?: {
|
|
1233
|
-
localStream?: MediaStream;
|
|
1234
|
-
localShare?: MediaStream;
|
|
1235
|
-
mediaSettings?: any;
|
|
1236
|
-
}): any;
|
|
1237
|
-
/**
|
|
1238
|
-
* Update the main audio track with new parameters
|
|
1239
|
-
*
|
|
1240
|
-
* NOTE: this method can only be used with transcoded meetings, for multistream meetings use publishTrack()
|
|
1241
|
-
*
|
|
1242
|
-
* @param {Object} options
|
|
1243
|
-
* @param {boolean} options.sendAudio
|
|
1244
|
-
* @param {boolean} options.receiveAudio
|
|
1245
|
-
* @param {MediaStream} options.stream Stream that contains the audio track to update
|
|
1246
|
-
* @returns {Promise}
|
|
1247
|
-
* @public
|
|
1248
|
-
* @memberof Meeting
|
|
1249
|
-
*/
|
|
1250
|
-
updateAudio(options: {
|
|
1251
|
-
sendAudio: boolean;
|
|
1252
|
-
receiveAudio: boolean;
|
|
1253
|
-
stream: MediaStream;
|
|
1254
|
-
}): Promise<any>;
|
|
1255
|
-
/**
|
|
1256
|
-
* Update the main video track with new parameters
|
|
1257
|
-
*
|
|
1258
|
-
* NOTE: this method can only be used with transcoded meetings, for multistream meetings use publishTrack()
|
|
1288
|
+
* Updates the media connection - it allows to enable/disable all audio/video/share in the meeting.
|
|
1289
|
+
* This does not affect the published tracks, so for example if a microphone track is published and
|
|
1290
|
+
* updateMedia({audioEnabled: false}) is called, the audio will not be sent or received anymore,
|
|
1291
|
+
* but the track's "published" state is not changed and when updateMedia({audioEnabled: true}) is called,
|
|
1292
|
+
* the sending of the audio from the same track will resume.
|
|
1259
1293
|
*
|
|
1260
1294
|
* @param {Object} options
|
|
1261
|
-
* @param {boolean} options.
|
|
1262
|
-
* @param {boolean} options.
|
|
1263
|
-
* @param {
|
|
1295
|
+
* @param {boolean} options.audioEnabled [optional] enables/disables receiving and sending of main audio in the meeting
|
|
1296
|
+
* @param {boolean} options.videoEnabled [optional] enables/disables receiving and sending of main video in the meeting
|
|
1297
|
+
* @param {boolean} options.shareEnabled [optional] enables/disables receiving and sending of screen share in the meeting
|
|
1264
1298
|
* @returns {Promise}
|
|
1265
1299
|
* @public
|
|
1266
1300
|
* @memberof Meeting
|
|
1267
1301
|
*/
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
* Internal function when stopping a share stream, cleanup
|
|
1275
|
-
* @param {boolean} sendShare
|
|
1276
|
-
* @param {boolean} previousShareStatus
|
|
1277
|
-
* @returns {Promise}
|
|
1278
|
-
* @private
|
|
1279
|
-
* @memberof Meeting
|
|
1280
|
-
*/
|
|
1281
|
-
private checkForStopShare;
|
|
1282
|
-
/**
|
|
1283
|
-
* Update the share streams, can be used to start sharing
|
|
1284
|
-
*
|
|
1285
|
-
* NOTE: this method can only be used with transcoded meetings, for multistream meetings use publishTrack()
|
|
1286
|
-
*
|
|
1287
|
-
* @param {Object} options
|
|
1288
|
-
* @param {boolean} options.sendShare
|
|
1289
|
-
* @param {boolean} options.receiveShare
|
|
1290
|
-
* @returns {Promise}
|
|
1291
|
-
* @public
|
|
1292
|
-
* @memberof Meeting
|
|
1293
|
-
*/
|
|
1294
|
-
updateShare(options: {
|
|
1295
|
-
sendShare?: boolean;
|
|
1296
|
-
receiveShare?: boolean;
|
|
1297
|
-
stream?: any;
|
|
1298
|
-
skipSignalingCheck?: boolean;
|
|
1299
|
-
}): any;
|
|
1300
|
-
/**
|
|
1301
|
-
* Do all the attach media pre set up before executing the actual attach
|
|
1302
|
-
* @param {MediaStream} localStream
|
|
1303
|
-
* @param {MediaStream} localShare
|
|
1304
|
-
* @param {MediaDirection} mediaSettings
|
|
1305
|
-
* @returns {undefined}
|
|
1306
|
-
* @private
|
|
1307
|
-
* @memberof Meeting
|
|
1308
|
-
*/
|
|
1309
|
-
private preMedia;
|
|
1302
|
+
updateMedia(options: {
|
|
1303
|
+
audioEnabled?: boolean;
|
|
1304
|
+
videoEnabled?: boolean;
|
|
1305
|
+
shareAudioEnabled?: boolean;
|
|
1306
|
+
shareVideoEnabled?: boolean;
|
|
1307
|
+
}): Promise<void>;
|
|
1310
1308
|
/**
|
|
1311
1309
|
* Acknowledge the meeting, outgoing or incoming
|
|
1312
1310
|
* @param {String} type
|
|
@@ -1314,7 +1312,11 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1314
1312
|
* @public
|
|
1315
1313
|
* @memberof Meeting
|
|
1316
1314
|
*/
|
|
1317
|
-
acknowledge(type: string):
|
|
1315
|
+
acknowledge(type: string): Promise<{
|
|
1316
|
+
response: any;
|
|
1317
|
+
}> | Promise<{
|
|
1318
|
+
message: string;
|
|
1319
|
+
}>;
|
|
1318
1320
|
/**
|
|
1319
1321
|
* Decline this meeting
|
|
1320
1322
|
* @param {String} reason
|
|
@@ -1324,15 +1326,45 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1324
1326
|
*/
|
|
1325
1327
|
decline(reason: string): any;
|
|
1326
1328
|
/**
|
|
1327
|
-
*
|
|
1329
|
+
* Returns a promise that will resolve to fetch options for leaving a meeting.
|
|
1330
|
+
*
|
|
1331
|
+
* This is to support quickly submitting a leave request when the browser/tab is closing.
|
|
1332
|
+
* Calling meeting.leave will not work because there are some async steps that will
|
|
1333
|
+
* not complete before the browser is closed. Instead, we pre-gather all the
|
|
1334
|
+
* information/options needed for the request(s), and then simply and quickly
|
|
1335
|
+
* fire the fetch(es) when pagehide is triggered.
|
|
1336
|
+
*
|
|
1337
|
+
* We must use fetch instead of request because fetch has a keepalive option that
|
|
1338
|
+
* allows the request it to outlive the page.
|
|
1339
|
+
*
|
|
1340
|
+
* Note: the $timings values will be wrong, but setRequestTimingsAndFetch() will
|
|
1341
|
+
* properly adjust them before submitting.
|
|
1342
|
+
*
|
|
1343
|
+
* @public
|
|
1328
1344
|
* @param {Object} options leave options
|
|
1329
1345
|
* @param {String} options.resourceId the device with which to leave from, empty if just the computer
|
|
1346
|
+
* @param {any} options.reason the reason for leaving
|
|
1347
|
+
* @returns {Promise} resolves to options to be used with fetch
|
|
1348
|
+
*/
|
|
1349
|
+
buildLeaveFetchRequestOptions(options?: {
|
|
1350
|
+
resourceId?: string;
|
|
1351
|
+
reason?: any;
|
|
1352
|
+
}): any;
|
|
1353
|
+
/**
|
|
1354
|
+
* Leave the current meeting
|
|
1355
|
+
* @param {Object} options - leave options
|
|
1356
|
+
* @param {String} [options.resourceId] - the device with which to leave from, empty if just the computer
|
|
1357
|
+
* @param {String} [options.clientEventLeaveReason] - the leaveReason to include in the Call Analyzer event.
|
|
1358
|
+
* Must be one of: 'paired-leave' | 'one-to-one' | 'ended-by-locus' (defaults to no reason)
|
|
1359
|
+
* https://sqbu-github.cisco.com/WebExSquared/event-dictionary/blob/main/diagnostic-events.raml#L796
|
|
1360
|
+
* @param {String} [options.reason] - only used for logging
|
|
1330
1361
|
* @returns {Promise}
|
|
1331
1362
|
* @public
|
|
1332
1363
|
* @memberof Meeting
|
|
1333
1364
|
*/
|
|
1334
1365
|
leave(options?: {
|
|
1335
1366
|
resourceId?: string;
|
|
1367
|
+
clientEventLeaveReason?: ClientEventLeaveReason;
|
|
1336
1368
|
reason?: any;
|
|
1337
1369
|
}): any;
|
|
1338
1370
|
/**
|
|
@@ -1360,12 +1392,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1360
1392
|
*/
|
|
1361
1393
|
private requestScreenShareFloor;
|
|
1362
1394
|
/**
|
|
1363
|
-
*
|
|
1364
|
-
*
|
|
1365
|
-
*
|
|
1366
|
-
* @
|
|
1395
|
+
* Requests screen share floor if such request is pending.
|
|
1396
|
+
* It should be called whenever meeting state changes to JOINED
|
|
1397
|
+
*
|
|
1398
|
+
* @returns {void}
|
|
1367
1399
|
*/
|
|
1368
|
-
|
|
1400
|
+
private requestScreenShareFloorIfPending;
|
|
1369
1401
|
/**
|
|
1370
1402
|
* Sends a request to Locus to release the screen share floor.
|
|
1371
1403
|
* @returns {Promise} see #meetingRequest.changeMeetingFloor
|
|
@@ -1396,6 +1428,16 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1396
1428
|
* @memberof Meeting
|
|
1397
1429
|
*/
|
|
1398
1430
|
setDisallowUnmute(enabled: boolean): Promise<any>;
|
|
1431
|
+
/**
|
|
1432
|
+
* set the mute all flag for participants if you're the host
|
|
1433
|
+
* @returns {Promise}
|
|
1434
|
+
* @param {boolean} mutedEnabled
|
|
1435
|
+
* @param {boolean} disallowUnmuteEnabled
|
|
1436
|
+
* @param {boolean} muteOnEntryEnabled
|
|
1437
|
+
* @public
|
|
1438
|
+
* @memberof Meeting
|
|
1439
|
+
*/
|
|
1440
|
+
setMuteAll(mutedEnabled: boolean, disallowUnmuteEnabled: boolean, muteOnEntryEnabled: boolean): Promise<any>;
|
|
1399
1441
|
/**
|
|
1400
1442
|
* End the recording of this meeting
|
|
1401
1443
|
* @returns {Promise}
|
|
@@ -1446,7 +1488,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1446
1488
|
* @public
|
|
1447
1489
|
* @memberof Meeting
|
|
1448
1490
|
*/
|
|
1449
|
-
sendDTMF(tones: string): any
|
|
1491
|
+
sendDTMF(tones: string): Promise<any>;
|
|
1450
1492
|
/**
|
|
1451
1493
|
* Sends request to change layout type for the current meeting for the specific participant/device only
|
|
1452
1494
|
* @param {String} [layoutType] a layout type that should be available in meeting constants {@link #layout_types}
|
|
@@ -1471,53 +1513,33 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1471
1513
|
height: number;
|
|
1472
1514
|
};
|
|
1473
1515
|
}): any;
|
|
1474
|
-
/**
|
|
1475
|
-
* Sets the quality of the local video stream
|
|
1476
|
-
* @param {String} level {LOW|MEDIUM|HIGH}
|
|
1477
|
-
* @returns {Promise<MediaStream>} localStream
|
|
1478
|
-
*/
|
|
1479
|
-
setLocalVideoQuality(level: string): any;
|
|
1480
1516
|
/**
|
|
1481
1517
|
* Sets the quality level of the remote incoming media
|
|
1482
1518
|
* @param {String} level {LOW|MEDIUM|HIGH}
|
|
1483
1519
|
* @returns {Promise}
|
|
1484
1520
|
*/
|
|
1485
|
-
setRemoteQualityLevel(level: string):
|
|
1521
|
+
setRemoteQualityLevel(level: string): Promise<void>;
|
|
1486
1522
|
/**
|
|
1487
|
-
*
|
|
1488
|
-
* @
|
|
1489
|
-
* @
|
|
1490
|
-
* @
|
|
1523
|
+
* Functionality for when a share audio is ended.
|
|
1524
|
+
* @private
|
|
1525
|
+
* @memberof Meeting
|
|
1526
|
+
* @returns {undefined}
|
|
1491
1527
|
*/
|
|
1492
|
-
|
|
1528
|
+
private handleShareAudioStreamEnded;
|
|
1493
1529
|
/**
|
|
1494
|
-
*
|
|
1495
|
-
*
|
|
1496
|
-
*
|
|
1497
|
-
* @
|
|
1498
|
-
* @param {Boolean} options.sendAudio send audio from the display share
|
|
1499
|
-
* @param {Boolean} options.sendShare send video from the display share
|
|
1500
|
-
* @param {Object} options.sharePreferences
|
|
1501
|
-
* @param {MediaTrackConstraints} options.sharePreferences.shareConstraints constraints to apply to video
|
|
1502
|
-
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints}
|
|
1503
|
-
* @param {Boolean} options.sharePreferences.highFrameRate if shareConstraints isn't provided, set default values based off of this boolean
|
|
1504
|
-
* @returns {Promise}
|
|
1530
|
+
* Functionality for when a share video is ended.
|
|
1531
|
+
* @private
|
|
1532
|
+
* @memberof Meeting
|
|
1533
|
+
* @returns {undefined}
|
|
1505
1534
|
*/
|
|
1506
|
-
|
|
1507
|
-
sendAudio: boolean;
|
|
1508
|
-
sendShare: boolean;
|
|
1509
|
-
sharePreferences: {
|
|
1510
|
-
shareConstraints: MediaTrackConstraints;
|
|
1511
|
-
};
|
|
1512
|
-
}): any;
|
|
1535
|
+
private handleShareVideoStreamEnded;
|
|
1513
1536
|
/**
|
|
1514
|
-
*
|
|
1537
|
+
* Emits meeting:stoppedSharingLocal
|
|
1515
1538
|
* @private
|
|
1516
|
-
* @memberof Meeting
|
|
1517
|
-
* @param {MediaStream} localShare
|
|
1518
1539
|
* @returns {undefined}
|
|
1540
|
+
* @memberof Meeting
|
|
1519
1541
|
*/
|
|
1520
|
-
private
|
|
1542
|
+
private triggerStoppedSharing;
|
|
1521
1543
|
/**
|
|
1522
1544
|
* Emits the 'network:quality' event
|
|
1523
1545
|
* 1 indicates an acceptable uplink network.
|
|
@@ -1532,92 +1554,16 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1532
1554
|
private sendNetworkQualityEvent;
|
|
1533
1555
|
/**
|
|
1534
1556
|
* Handle logging the media
|
|
1535
|
-
* @param {Object}
|
|
1536
|
-
* @param {Object} videoTrack The video track
|
|
1557
|
+
* @param {Object} mediaProperties
|
|
1537
1558
|
* @private
|
|
1538
1559
|
* @returns {undefined}
|
|
1539
1560
|
*/
|
|
1540
1561
|
private handleMediaLogging;
|
|
1541
|
-
/**
|
|
1542
|
-
* @param {string} typeMedia 'audio' or 'video'
|
|
1543
|
-
* @returns {undefined}
|
|
1544
|
-
*/
|
|
1545
|
-
setStartSetupDelay(typeMedia: string): void;
|
|
1546
|
-
/**
|
|
1547
|
-
* @param {string} typeMedia 'audio' or 'video'
|
|
1548
|
-
* @returns {undefined}
|
|
1549
|
-
*/
|
|
1550
|
-
setEndSetupDelay(typeMedia: string): void;
|
|
1551
|
-
/**
|
|
1552
|
-
* @param {string} typeMedia 'audio' or 'video'
|
|
1553
|
-
* @returns {string} duration between start and end of setup
|
|
1554
|
-
*/
|
|
1555
|
-
getSetupDelayDuration(typeMedia: string): number;
|
|
1556
|
-
/**
|
|
1557
|
-
* @param {string} typeMedia 'audio' or 'video'
|
|
1558
|
-
* @returns {undefined}
|
|
1559
|
-
*/
|
|
1560
|
-
setStartSendingMediaDelay(typeMedia: string): void;
|
|
1561
|
-
/**
|
|
1562
|
-
* @param {string} typeMedia 'audio' or 'video'
|
|
1563
|
-
* @returns {undefined}
|
|
1564
|
-
*/
|
|
1565
|
-
setEndSendingMediaDelay(typeMedia: string): void;
|
|
1566
|
-
/**
|
|
1567
|
-
* @param {string} typeMedia 'audio' or 'video'
|
|
1568
|
-
* @returns {string} duration between join response and first media tx
|
|
1569
|
-
*/
|
|
1570
|
-
getSendingMediaDelayDuration(typeMedia: string): number;
|
|
1571
|
-
/**
|
|
1572
|
-
*
|
|
1573
|
-
* @returns {undefined}
|
|
1574
|
-
*/
|
|
1575
|
-
setStartLocalSDPGenRemoteSDPRecvDelay(): void;
|
|
1576
|
-
/**
|
|
1577
|
-
*
|
|
1578
|
-
* @returns {undefined}
|
|
1579
|
-
*/
|
|
1580
|
-
setEndLocalSDPGenRemoteSDPRecvDelay(): void;
|
|
1581
|
-
/**
|
|
1582
|
-
*
|
|
1583
|
-
* @returns {string} duration between local SDP generation and remote SDP reception
|
|
1584
|
-
*/
|
|
1585
|
-
getLocalSDPGenRemoteSDPRecvDelay(): number;
|
|
1586
|
-
/**
|
|
1587
|
-
*
|
|
1588
|
-
* @returns {undefined}
|
|
1589
|
-
*/
|
|
1590
|
-
setStartCallInitiateJoinReq(): void;
|
|
1591
|
-
/**
|
|
1592
|
-
*
|
|
1593
|
-
* @returns {undefined}
|
|
1594
|
-
*/
|
|
1595
|
-
setEndCallInitiateJoinReq(): void;
|
|
1596
|
-
/**
|
|
1597
|
-
*
|
|
1598
|
-
* @returns {string} duration between call initiate and sending join request to locus
|
|
1599
|
-
*/
|
|
1600
|
-
getCallInitiateJoinReq(): number;
|
|
1601
|
-
/**
|
|
1602
|
-
*
|
|
1603
|
-
* @returns {undefined}
|
|
1604
|
-
*/
|
|
1605
|
-
setStartJoinReqResp(): void;
|
|
1606
|
-
/**
|
|
1607
|
-
*
|
|
1608
|
-
* @returns {undefined}
|
|
1609
|
-
*/
|
|
1610
|
-
setEndJoinReqResp(): void;
|
|
1611
|
-
/**
|
|
1612
|
-
*
|
|
1613
|
-
* @returns {string} duration between sending locus join request and receiving join response
|
|
1614
|
-
*/
|
|
1615
|
-
getJoinReqResp(): number;
|
|
1616
1562
|
/**
|
|
1617
1563
|
*
|
|
1618
|
-
* @returns {string}
|
|
1564
|
+
* @returns {string} one of 'attendee','host','cohost', returns the user type of the current user
|
|
1619
1565
|
*/
|
|
1620
|
-
|
|
1566
|
+
getCurUserType(): "host" | "cohost" | "attendee";
|
|
1621
1567
|
/**
|
|
1622
1568
|
* End the current meeting for all
|
|
1623
1569
|
* @returns {Promise}
|
|
@@ -1632,35 +1578,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1632
1578
|
* @memberof Meeting
|
|
1633
1579
|
*/
|
|
1634
1580
|
clearMeetingData: () => void;
|
|
1635
|
-
/**
|
|
1636
|
-
* Internal API to return status of BNR
|
|
1637
|
-
* @returns {Boolean}
|
|
1638
|
-
* @public
|
|
1639
|
-
* @memberof Meeting
|
|
1640
|
-
*/
|
|
1641
|
-
isBnrEnabled(): any;
|
|
1642
|
-
/**
|
|
1643
|
-
* Internal API to obtain BNR enabled MediaStream
|
|
1644
|
-
* @returns {Promise<MediaStreamTrack>}
|
|
1645
|
-
* @private
|
|
1646
|
-
* @param {MedaiStreamTrack} audioTrack from updateAudio
|
|
1647
|
-
* @memberof Meeting
|
|
1648
|
-
*/
|
|
1649
|
-
private internal_enableBNR;
|
|
1650
|
-
/**
|
|
1651
|
-
* Enable the audio track with BNR for a meeting
|
|
1652
|
-
* @returns {Promise} resolves the data from enable bnr or rejects if there is no audio or audio is muted
|
|
1653
|
-
* @public
|
|
1654
|
-
* @memberof Meeting
|
|
1655
|
-
*/
|
|
1656
|
-
enableBNR(): any;
|
|
1657
|
-
/**
|
|
1658
|
-
* Disable the BNR for an audio track
|
|
1659
|
-
* @returns {Promise} resolves the data from disable bnr or rejects if there is no audio set
|
|
1660
|
-
* @public
|
|
1661
|
-
* @memberof Meeting
|
|
1662
|
-
*/
|
|
1663
|
-
disableBNR(): any;
|
|
1664
1581
|
/**
|
|
1665
1582
|
* starts keepAlives being sent
|
|
1666
1583
|
* @returns {void}
|
|
@@ -1693,7 +1610,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1693
1610
|
* @public
|
|
1694
1611
|
* @memberof Meeting
|
|
1695
1612
|
*/
|
|
1696
|
-
toggleReactions(enable: boolean): any
|
|
1613
|
+
toggleReactions(enable: boolean): Promise<any>;
|
|
1697
1614
|
/**
|
|
1698
1615
|
* Throws if we don't have a media connection created
|
|
1699
1616
|
*
|
|
@@ -1701,24 +1618,61 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1701
1618
|
*/
|
|
1702
1619
|
private checkMediaConnection;
|
|
1703
1620
|
/**
|
|
1704
|
-
*
|
|
1621
|
+
* Method to enable or disable the 'Music mode' effect on audio stream
|
|
1705
1622
|
*
|
|
1706
|
-
* @param {
|
|
1623
|
+
* @param {boolean} shouldEnableMusicMode
|
|
1707
1624
|
* @returns {Promise}
|
|
1708
1625
|
*/
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1626
|
+
enableMusicMode(shouldEnableMusicMode: boolean): Promise<void>;
|
|
1627
|
+
/** Updates the tracks being sent on the transcoded media connection
|
|
1628
|
+
*
|
|
1629
|
+
* @returns {Promise<void>}
|
|
1630
|
+
*/
|
|
1631
|
+
private updateTranscodedMediaConnection;
|
|
1632
|
+
/**
|
|
1633
|
+
* Publishes a stream.
|
|
1634
|
+
*
|
|
1635
|
+
* @param {MediaType} mediaType of the stream
|
|
1636
|
+
* @param {LocalStream} stream to publish
|
|
1637
|
+
* @returns {Promise}
|
|
1638
|
+
*/
|
|
1639
|
+
private publishStream;
|
|
1717
1640
|
/**
|
|
1718
|
-
* Un-publishes
|
|
1641
|
+
* Un-publishes a stream.
|
|
1719
1642
|
*
|
|
1720
|
-
* @param {
|
|
1643
|
+
* @param {MediaType} mediaType of the stream
|
|
1644
|
+
* @param {LocalStream} stream to unpublish
|
|
1721
1645
|
* @returns {Promise}
|
|
1722
1646
|
*/
|
|
1723
|
-
|
|
1647
|
+
private unpublishStream;
|
|
1648
|
+
/**
|
|
1649
|
+
* Publishes specified local streams in the meeting
|
|
1650
|
+
*
|
|
1651
|
+
* @param {Object} streams
|
|
1652
|
+
* @returns {Promise}
|
|
1653
|
+
*/
|
|
1654
|
+
publishStreams(streams: LocalStreams): Promise<void>;
|
|
1655
|
+
/**
|
|
1656
|
+
* Un-publishes specified local streams in the meeting
|
|
1657
|
+
*
|
|
1658
|
+
* @param {Array<LocalStream>} streams
|
|
1659
|
+
* @returns {Promise}
|
|
1660
|
+
*/
|
|
1661
|
+
unpublishStreams(streams: LocalStream[]): Promise<void>;
|
|
1662
|
+
/**
|
|
1663
|
+
* Gets the time left in seconds till the permission token expires
|
|
1664
|
+
* (from the time the function has been fired)
|
|
1665
|
+
*
|
|
1666
|
+
* @returns {number} time left in seconds
|
|
1667
|
+
*/
|
|
1668
|
+
getPermissionTokenTimeLeftInSec(): number | undefined;
|
|
1669
|
+
/**
|
|
1670
|
+
* Check if there is enough time left till the permission token expires
|
|
1671
|
+
* If not - refresh the permission token
|
|
1672
|
+
*
|
|
1673
|
+
* @param {number} threshold - time in seconds
|
|
1674
|
+
* @param {string} reason - reason for refreshing the permission token
|
|
1675
|
+
* @returns {Promise<void>}
|
|
1676
|
+
*/
|
|
1677
|
+
checkAndRefreshPermissionToken(threshold: number, reason: string): Promise<void>;
|
|
1724
1678
|
}
|