@webex/plugin-meetings 3.0.0-beta.29 → 3.0.0-beta.291
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/webex-errors.js +28 -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 -10
- package/dist/config.js.map +1 -1
- package/dist/constants.js +206 -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 +82 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +3576 -2946
- 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 +256 -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 +22 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +402 -98
- 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 +71 -1
- 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 +86 -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 +12 -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 +238 -49
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +40 -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 +199 -154
- 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 +23 -29
- 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 +96 -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 +117 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/index.js +84 -73
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +11 -10
- 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/webex-errors.d.ts +13 -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 -6
- package/dist/types/constants.d.ts +162 -21
- 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 +82 -2
- package/dist/types/meeting/index.d.ts +413 -508
- 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 +8 -0
- package/dist/types/meetings/index.d.ts +90 -12
- 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 +11 -4
- package/dist/types/metrics/index.d.ts +4 -119
- package/dist/types/multistream/mediaRequestManager.d.ts +73 -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/request.d.ts +15 -11
- package/dist/types/roap/turnDiscovery.d.ts +18 -1
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +47 -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 +23 -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/webex-errors.ts +27 -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 -9
- package/src/constants.ts +185 -18
- 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 +163 -3
- package/src/meeting/index.ts +2858 -2462
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +229 -131
- package/src/meeting/request.ts +172 -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 +20 -0
- package/src/meetings/index.ts +434 -108
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +79 -4
- 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 +106 -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 +11 -4
- package/src/metrics/index.ts +1 -490
- package/src/multistream/mediaRequestManager.ts +289 -79
- package/src/multistream/receiveSlot.ts +47 -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 +81 -54
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +23 -30
- package/src/roap/request.ts +100 -104
- package/src/roap/turnDiscovery.ts +51 -25
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +100 -0
- package/src/statsAnalyzer/index.ts +103 -87
- package/src/statsAnalyzer/mqaUtil.ts +13 -14
- 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 +81 -3
- package/test/unit/spec/meeting/index.js +4721 -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 +440 -45
- 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 +14 -0
- package/test/unit/spec/meetings/index.js +1011 -177
- package/test/unit/spec/meetings/utils.js +206 -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 +319 -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 +803 -162
- package/test/unit/spec/multistream/receiveSlot.ts +43 -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 +84 -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 +31 -51
- package/test/unit/spec/roap/request.ts +203 -85
- package/test/unit/spec/roap/turnDiscovery.ts +48 -13
- package/test/unit/spec/rtcMetrics/index.ts +73 -0
- package/test/unit/spec/stats-analyzer/index.js +112 -2
- 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,8 +1,11 @@
|
|
|
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';
|
|
@@ -10,18 +13,40 @@ import Members from '../members/index';
|
|
|
10
13
|
import Transcription from '../transcription';
|
|
11
14
|
import { ReceiveSlotManager } from '../multistream/receiveSlotManager';
|
|
12
15
|
import { MediaRequestManager } from '../multistream/mediaRequestManager';
|
|
13
|
-
import { RemoteMediaManager } from '../multistream/remoteMediaManager';
|
|
16
|
+
import { Configuration as RemoteMediaManagerConfiguration, RemoteMediaManager } from '../multistream/remoteMediaManager';
|
|
14
17
|
import { ReactionServerType, SkinToneType } from '../reactions/reactions.type';
|
|
15
18
|
import InMeetingActions from './in-meeting-actions';
|
|
16
19
|
import RecordingController from '../recording-controller';
|
|
17
20
|
import ControlsOptionsManager from '../controls-options-manager';
|
|
21
|
+
import { LocusMediaRequest } from './locusMediaRequest';
|
|
22
|
+
export type LocalStreams = {
|
|
23
|
+
microphone?: LocalMicrophoneStream;
|
|
24
|
+
camera?: LocalCameraStream;
|
|
25
|
+
screenShare?: {
|
|
26
|
+
audio?: LocalSystemAudioStream;
|
|
27
|
+
video?: LocalDisplayStream;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
export type AddMediaOptions = {
|
|
31
|
+
localStreams?: LocalStreams;
|
|
32
|
+
audioEnabled?: boolean;
|
|
33
|
+
videoEnabled?: boolean;
|
|
34
|
+
shareAudioEnabled?: boolean;
|
|
35
|
+
shareVideoEnabled?: boolean;
|
|
36
|
+
remoteMediaManagerConfig?: RemoteMediaManagerConfiguration;
|
|
37
|
+
bundlePolicy?: BundlePolicy;
|
|
38
|
+
allowMediaInLobby?: boolean;
|
|
39
|
+
};
|
|
18
40
|
export declare const MEDIA_UPDATE_TYPE: {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
SHARE: string;
|
|
23
|
-
LAMBDA: string;
|
|
41
|
+
TRANSCODED_MEDIA_CONNECTION: string;
|
|
42
|
+
SHARE_FLOOR_REQUEST: string;
|
|
43
|
+
UPDATE_MEDIA: string;
|
|
24
44
|
};
|
|
45
|
+
export declare enum ScreenShareFloorStatus {
|
|
46
|
+
PENDING = "floor_request_pending",
|
|
47
|
+
GRANTED = "floor_request_granted",
|
|
48
|
+
RELEASED = "floor_released"
|
|
49
|
+
}
|
|
25
50
|
/**
|
|
26
51
|
* MediaDirection
|
|
27
52
|
* @typedef {Object} MediaDirection
|
|
@@ -33,15 +58,6 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
33
58
|
* @property {boolean} receiveShare
|
|
34
59
|
* @property {boolean} isSharing
|
|
35
60
|
*/
|
|
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
61
|
/**
|
|
46
62
|
* SharePreferences
|
|
47
63
|
* @typedef {Object} SharePreferences
|
|
@@ -55,18 +71,10 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
55
71
|
* @property {String} [pin]
|
|
56
72
|
* @property {Boolean} [moderator]
|
|
57
73
|
* @property {String|Object} [meetingQuality]
|
|
58
|
-
* @property {String} [meetingQuality.local]
|
|
59
74
|
* @property {String} [meetingQuality.remote]
|
|
60
75
|
* @property {Boolean} [rejoin]
|
|
61
76
|
* @property {Boolean} [enableMultistream]
|
|
62
77
|
*/
|
|
63
|
-
/**
|
|
64
|
-
* SendOptions
|
|
65
|
-
* @typedef {Object} SendOptions
|
|
66
|
-
* @property {Boolean} sendAudio
|
|
67
|
-
* @property {Boolean} sendVideo
|
|
68
|
-
* @property {Boolean} sendShare
|
|
69
|
-
*/
|
|
70
78
|
/**
|
|
71
79
|
* Recording
|
|
72
80
|
* @typedef {Object} Recording
|
|
@@ -148,7 +156,11 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
148
156
|
* @instance
|
|
149
157
|
* @type {Object}
|
|
150
158
|
* @property {Boolean} memberId id of the meeting member that started screen share
|
|
159
|
+
* @property {String} url of this content share
|
|
160
|
+
* @property {String} shareInstanceId of this content share
|
|
161
|
+
* @property {Object} annotation Info of this content share
|
|
151
162
|
* @memberof Meeting
|
|
163
|
+
*
|
|
152
164
|
*/
|
|
153
165
|
/**
|
|
154
166
|
* Meeting Stopped Sharing Remote Event
|
|
@@ -285,12 +297,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
285
297
|
attrs: any;
|
|
286
298
|
audio: any;
|
|
287
299
|
breakouts: any;
|
|
300
|
+
simultaneousInterpretation: any;
|
|
301
|
+
annotation: any;
|
|
302
|
+
webinar: any;
|
|
288
303
|
conversationUrl: string;
|
|
289
304
|
correlationId: string;
|
|
290
305
|
destination: string;
|
|
291
306
|
destinationType: string;
|
|
292
307
|
deviceUrl: string;
|
|
293
|
-
effects: any;
|
|
294
308
|
hostId: string;
|
|
295
309
|
id: string;
|
|
296
310
|
isMultistream: boolean;
|
|
@@ -298,7 +312,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
298
312
|
mediaConnections: any[];
|
|
299
313
|
mediaId?: string;
|
|
300
314
|
meetingFiniteStateMachine: any;
|
|
301
|
-
meetingInfo:
|
|
315
|
+
meetingInfo: any;
|
|
302
316
|
meetingRequest: MeetingRequest;
|
|
303
317
|
members: Members;
|
|
304
318
|
options: object;
|
|
@@ -310,11 +324,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
310
324
|
resource: string;
|
|
311
325
|
roap: Roap;
|
|
312
326
|
roapSeq: number;
|
|
327
|
+
selfUrl?: string;
|
|
313
328
|
sipUri: string;
|
|
314
329
|
type: string;
|
|
315
330
|
userId: string;
|
|
316
331
|
video: any;
|
|
317
332
|
callEvents: any[];
|
|
333
|
+
datachannelUrl: string;
|
|
318
334
|
deferJoin: Promise<any>;
|
|
319
335
|
dialInDeviceStatus: string;
|
|
320
336
|
dialInUrl: string;
|
|
@@ -327,10 +343,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
327
343
|
inMeetingActions: InMeetingActions;
|
|
328
344
|
isLocalShareLive: boolean;
|
|
329
345
|
isRoapInProgress: boolean;
|
|
330
|
-
isSharing: boolean;
|
|
331
346
|
keepAliveTimerId: NodeJS.Timeout;
|
|
332
347
|
lastVideoLayoutInfo: any;
|
|
333
348
|
locusInfo: any;
|
|
349
|
+
locusMediaRequest?: LocusMediaRequest;
|
|
334
350
|
mediaProperties: MediaProperties;
|
|
335
351
|
mediaRequestManagers: {
|
|
336
352
|
audio: MediaRequestManager;
|
|
@@ -339,6 +355,8 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
339
355
|
screenShareVideo: MediaRequestManager;
|
|
340
356
|
};
|
|
341
357
|
meetingInfoFailureReason: string;
|
|
358
|
+
meetingInfoFailureCode?: number;
|
|
359
|
+
meetingInfoExtraParams?: Record<string, any>;
|
|
342
360
|
networkQualityMonitor: NetworkQualityMonitor;
|
|
343
361
|
networkStatus: string;
|
|
344
362
|
passwordStatus: string;
|
|
@@ -349,16 +367,19 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
349
367
|
controlsOptionsManager: ControlsOptionsManager;
|
|
350
368
|
requiredCaptcha: any;
|
|
351
369
|
receiveSlotManager: ReceiveSlotManager;
|
|
370
|
+
selfUserPolicies: any;
|
|
352
371
|
shareStatus: string;
|
|
372
|
+
screenShareFloorState: ScreenShareFloorStatus;
|
|
353
373
|
statsAnalyzer: StatsAnalyzer;
|
|
354
374
|
transcription: Transcription;
|
|
355
375
|
updateMediaConnections: (mediaConnections: any[]) => void;
|
|
356
|
-
|
|
376
|
+
userDisplayHints: any;
|
|
377
|
+
endCallInitJoinReq: any;
|
|
357
378
|
endJoinReqResp: any;
|
|
358
379
|
endLocalSDPGenRemoteSDPRecvDelay: any;
|
|
359
380
|
joinedWith: any;
|
|
360
381
|
locusId: any;
|
|
361
|
-
|
|
382
|
+
startCallInitJoinReq: any;
|
|
362
383
|
startJoinReqResp: any;
|
|
363
384
|
startLocalSDPGenRemoteSDPRecvDelay: any;
|
|
364
385
|
wirelessShare: any;
|
|
@@ -366,12 +387,24 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
366
387
|
meetingJoinUrl: any;
|
|
367
388
|
meetingNumber: any;
|
|
368
389
|
meetingState: any;
|
|
369
|
-
permissionToken:
|
|
390
|
+
permissionToken: string;
|
|
391
|
+
permissionTokenPayload: any;
|
|
370
392
|
resourceId: any;
|
|
371
393
|
resourceUrl: string;
|
|
372
394
|
selfId: string;
|
|
373
395
|
state: any;
|
|
396
|
+
localAudioStreamMuteStateHandler: (muted: boolean) => void;
|
|
397
|
+
localVideoStreamMuteStateHandler: (muted: boolean) => void;
|
|
398
|
+
localOutputTrackChangeHandler: () => void;
|
|
399
|
+
roles: any[];
|
|
400
|
+
environment: string;
|
|
374
401
|
namespace: string;
|
|
402
|
+
allowMediaInLobby: boolean;
|
|
403
|
+
turnDiscoverySkippedReason: string;
|
|
404
|
+
turnServerUsed: boolean;
|
|
405
|
+
private sendSlotManager;
|
|
406
|
+
private deferSDPAnswer?;
|
|
407
|
+
private sdpResponseTimer?;
|
|
375
408
|
/**
|
|
376
409
|
* @param {Object} attrs
|
|
377
410
|
* @param {Object} options
|
|
@@ -379,29 +412,58 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
379
412
|
* @memberof Meeting
|
|
380
413
|
*/
|
|
381
414
|
constructor(attrs: any, options: object);
|
|
415
|
+
/**
|
|
416
|
+
* returns meeting is joined
|
|
417
|
+
* @private
|
|
418
|
+
* @memberof Meeting
|
|
419
|
+
* @returns {Boolean}
|
|
420
|
+
*/
|
|
421
|
+
private isJoined;
|
|
422
|
+
/**
|
|
423
|
+
* Returns whether this meeting is a Locus CALL
|
|
424
|
+
* @returns {Boolean}
|
|
425
|
+
*/
|
|
426
|
+
isLocusCall(): boolean;
|
|
427
|
+
/**
|
|
428
|
+
* Internal method for fetching meeting info
|
|
429
|
+
*
|
|
430
|
+
* @returns {Promise}
|
|
431
|
+
*/
|
|
432
|
+
private fetchMeetingInfoInternal;
|
|
433
|
+
/**
|
|
434
|
+
* Refreshes the meeting info permission token (it's required for joining meetings)
|
|
435
|
+
*
|
|
436
|
+
* @param {string} [reason] used for metrics and logging purposes (optional)
|
|
437
|
+
* @returns {Promise}
|
|
438
|
+
*/
|
|
439
|
+
refreshPermissionToken(reason?: string): Promise<void>;
|
|
382
440
|
/**
|
|
383
441
|
* Fetches meeting information.
|
|
384
442
|
* @param {Object} options
|
|
385
443
|
* @param {String} [options.password] optional
|
|
386
444
|
* @param {String} [options.captchaCode] optional
|
|
445
|
+
* @param {Boolean} [options.sendCAevents] optional - Whether to submit Call Analyzer events or not. Default: false.
|
|
387
446
|
* @public
|
|
388
447
|
* @memberof Meeting
|
|
389
448
|
* @returns {Promise}
|
|
390
449
|
*/
|
|
391
|
-
fetchMeetingInfo({ password, captchaCode, }: {
|
|
450
|
+
fetchMeetingInfo({ password, captchaCode, extraParams, sendCAevents, }: {
|
|
392
451
|
password?: string;
|
|
393
452
|
captchaCode?: string;
|
|
453
|
+
extraParams?: Record<string, any>;
|
|
454
|
+
sendCAevents?: boolean;
|
|
394
455
|
}): Promise<void>;
|
|
395
456
|
/**
|
|
396
457
|
* Checks if the supplied password/host key is correct. It returns a promise with information whether the
|
|
397
458
|
* password and captcha code were correct or not.
|
|
398
459
|
* @param {String} password - this can be either a password or a host key, can be undefined if only captcha was required
|
|
399
460
|
* @param {String} captchaCode - can be undefined if captcha was not required by the server
|
|
461
|
+
* @param {Boolean} sendCAevents - whether Call Analyzer events should be sent when fetching meeting information
|
|
400
462
|
* @public
|
|
401
463
|
* @memberof Meeting
|
|
402
464
|
* @returns {Promise<{isPasswordValid: boolean, requiredCaptcha: boolean, failureReason: MEETING_INFO_FAILURE_REASON}>}
|
|
403
465
|
*/
|
|
404
|
-
verifyPassword(password: string, captchaCode: string): Promise<{
|
|
466
|
+
verifyPassword(password: string, captchaCode: string, sendCAevents?: boolean): Promise<{
|
|
405
467
|
isPasswordValid: boolean;
|
|
406
468
|
requiredCaptcha: any;
|
|
407
469
|
failureReason: string;
|
|
@@ -418,6 +480,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
418
480
|
* @returns {Promise}
|
|
419
481
|
*/
|
|
420
482
|
refreshCaptcha(): any;
|
|
483
|
+
/**
|
|
484
|
+
* Posts metrics event for this meeting. Allows the app to send Call Analyzer events.
|
|
485
|
+
* @param {String} eventName - Call Analyzer event
|
|
486
|
+
* @public
|
|
487
|
+
* @memberof Meeting
|
|
488
|
+
* @returns {Promise}
|
|
489
|
+
*/
|
|
490
|
+
postMetrics(eventName: ClientEvent['name']): void;
|
|
421
491
|
/**
|
|
422
492
|
* Proxy function for all the listener set ups
|
|
423
493
|
* @returns {undefined}
|
|
@@ -432,6 +502,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
432
502
|
* @memberof Meeting
|
|
433
503
|
*/
|
|
434
504
|
setUpBreakoutsListener(): void;
|
|
505
|
+
/**
|
|
506
|
+
* Set up the listeners for interpretation
|
|
507
|
+
* @returns {undefined}
|
|
508
|
+
* @private
|
|
509
|
+
* @memberof Meeting
|
|
510
|
+
*/
|
|
511
|
+
private setUpInterpretationListener;
|
|
435
512
|
/**
|
|
436
513
|
* Set up the locus info listener for meetings disconnected due to inactivity
|
|
437
514
|
* @returns {undefined}
|
|
@@ -453,47 +530,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
453
530
|
* @memberof Meeting
|
|
454
531
|
*/
|
|
455
532
|
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
533
|
/**
|
|
498
534
|
* sets the network status on meeting object
|
|
499
535
|
* @param {String} networkStatus
|
|
@@ -556,6 +592,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
556
592
|
* @memberof Meeting
|
|
557
593
|
*/
|
|
558
594
|
private setupLocusControlsListener;
|
|
595
|
+
/**
|
|
596
|
+
* Trigger annotation info update event
|
|
597
|
+
@returns {undefined}
|
|
598
|
+
@param {object} contentShare
|
|
599
|
+
@param {object} previousContentShare
|
|
600
|
+
*/
|
|
601
|
+
private triggerAnnotationInfoEvent;
|
|
559
602
|
/**
|
|
560
603
|
* Set up the locus info media shares listener
|
|
561
604
|
* update content and whiteboard sharing id value for members, and updates the member
|
|
@@ -654,13 +697,23 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
654
697
|
phoneNumber: string;
|
|
655
698
|
}): any;
|
|
656
699
|
/**
|
|
657
|
-
* Admit the guest(s) to the call once they are waiting
|
|
700
|
+
* Admit the guest(s) to the call once they are waiting.
|
|
701
|
+
* If the host/cohost is in a breakout session, the locus url
|
|
702
|
+
* of the session must be provided as the authorizingLocusUrl.
|
|
703
|
+
* Regardless of host/cohost location, the locus Id (lid) in
|
|
704
|
+
* the path should be the locus Id of the main, which means the
|
|
705
|
+
* locus url of the api call must be from the main session.
|
|
706
|
+
* If these loucs urls are not provided, the function will do the check.
|
|
658
707
|
* @param {Array} memberIds
|
|
708
|
+
* @param {Object} sessionLocusUrls: {authorizingLocusUrl, mainLocusUrl}
|
|
659
709
|
* @returns {Promise} see #members.admitMembers
|
|
660
710
|
* @public
|
|
661
711
|
* @memberof Meeting
|
|
662
712
|
*/
|
|
663
|
-
admit(memberIds: Array<any
|
|
713
|
+
admit(memberIds: Array<any>, sessionLocusUrls?: {
|
|
714
|
+
authorizingLocusUrl: string;
|
|
715
|
+
mainLocusUrl: string;
|
|
716
|
+
}): any;
|
|
664
717
|
/**
|
|
665
718
|
* Remove the member from the meeting, boot them
|
|
666
719
|
* @param {String} memberId
|
|
@@ -694,48 +747,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
694
747
|
* @memberof Meeting
|
|
695
748
|
*/
|
|
696
749
|
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
750
|
/**
|
|
740
751
|
* Sets the meeting info on the class instance
|
|
741
752
|
* @param {Object} meetingInfo
|
|
@@ -758,16 +769,29 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
758
769
|
};
|
|
759
770
|
} | any, destination?: object | string | null): void;
|
|
760
771
|
/**
|
|
761
|
-
*
|
|
762
|
-
* @
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
772
|
+
* Indicates whether policy can be applied
|
|
773
|
+
* @returns {boolean}
|
|
774
|
+
*/
|
|
775
|
+
private arePolicyRestrictionsSupported;
|
|
776
|
+
/**
|
|
777
|
+
* Updates the meeting actions (display hints), depends on locus display hints, user policy and app api info
|
|
766
778
|
* @returns {undefined}
|
|
767
779
|
* @private
|
|
768
780
|
* @memberof Meeting
|
|
769
781
|
*/
|
|
770
|
-
private
|
|
782
|
+
private updateMeetingActions;
|
|
783
|
+
/**
|
|
784
|
+
* Sets the self user policies based on the contents of the permission token
|
|
785
|
+
* @returns {void}
|
|
786
|
+
*/
|
|
787
|
+
setSelfUserPolicies(): void;
|
|
788
|
+
/**
|
|
789
|
+
* Sets the permission token payload on the class instance
|
|
790
|
+
*
|
|
791
|
+
* @param {String} permissionToken
|
|
792
|
+
* @returns {void}
|
|
793
|
+
*/
|
|
794
|
+
setPermissionTokenPayload(permissionToken: string): void;
|
|
771
795
|
/**
|
|
772
796
|
* Sets the sip uri on the class instance
|
|
773
797
|
* uses meeting info as precedence
|
|
@@ -790,7 +814,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
790
814
|
* @private
|
|
791
815
|
* @memberof Meeting
|
|
792
816
|
*/
|
|
793
|
-
|
|
817
|
+
setLocus(locus: {
|
|
818
|
+
mediaConnections: Array<any>;
|
|
819
|
+
locusUrl: string;
|
|
820
|
+
locusId: string;
|
|
821
|
+
mediaId: string;
|
|
822
|
+
host: object;
|
|
823
|
+
} | any): void;
|
|
794
824
|
/**
|
|
795
825
|
* Upload logs for the current meeting
|
|
796
826
|
* @param {object} options file name and function name
|
|
@@ -800,19 +830,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
800
830
|
*/
|
|
801
831
|
uploadLogs(options?: object): void;
|
|
802
832
|
/**
|
|
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
|
|
833
|
+
* Removes remote audio, video and share streams from class instance's mediaProperties
|
|
813
834
|
* @returns {undefined}
|
|
814
835
|
*/
|
|
815
|
-
|
|
836
|
+
unsetRemoteStreams(): void;
|
|
816
837
|
/**
|
|
817
838
|
* Removes the remote stream on the class instance and triggers an event
|
|
818
839
|
* to developers
|
|
@@ -823,83 +844,45 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
823
844
|
*/
|
|
824
845
|
closeRemoteStream(): void;
|
|
825
846
|
/**
|
|
826
|
-
* Removes the remote
|
|
847
|
+
* Removes the remote streams on the class instance and triggers an event
|
|
827
848
|
* to developers
|
|
828
849
|
* @returns {undefined}
|
|
829
850
|
* @memberof Meeting
|
|
830
851
|
*/
|
|
831
|
-
|
|
832
|
-
/**
|
|
833
|
-
* Emits the 'media:ready' event with a local stream that consists of 1 local audio and 1 local video track
|
|
834
|
-
* @returns {undefined}
|
|
835
|
-
* @private
|
|
836
|
-
* @memberof Meeting
|
|
837
|
-
*/
|
|
838
|
-
private sendLocalMediaReadyEvent;
|
|
852
|
+
closeRemoteStreams(): Promise<[any, any, any, any]>;
|
|
839
853
|
/**
|
|
840
|
-
*
|
|
841
|
-
*
|
|
842
|
-
*
|
|
843
|
-
* @
|
|
844
|
-
* @
|
|
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
|
|
854
|
+
* Stores the reference to a new microphone stream, sets up the required event listeners
|
|
855
|
+
* on it, cleans up previous stream, etc.
|
|
856
|
+
*
|
|
857
|
+
* @param {LocalMicrophoneStream | null} localStream local microphone stream
|
|
858
|
+
* @returns {Promise<void>}
|
|
879
859
|
*/
|
|
880
|
-
|
|
860
|
+
private setLocalAudioStream;
|
|
881
861
|
/**
|
|
882
|
-
*
|
|
883
|
-
*
|
|
884
|
-
*
|
|
885
|
-
* @
|
|
886
|
-
* @
|
|
862
|
+
* Stores the reference to a new camera stream, sets up the required event listeners
|
|
863
|
+
* on it, cleans up previous stream, etc.
|
|
864
|
+
*
|
|
865
|
+
* @param {LocalCameraStream | null} localStream local camera stream
|
|
866
|
+
* @returns {Promise<void>}
|
|
887
867
|
*/
|
|
888
|
-
|
|
868
|
+
private setLocalVideoStream;
|
|
889
869
|
/**
|
|
890
|
-
*
|
|
891
|
-
*
|
|
892
|
-
*
|
|
893
|
-
*
|
|
870
|
+
* Stores the reference to a new screen share stream, sets up the required event listeners
|
|
871
|
+
* on it, cleans up previous stream, etc.
|
|
872
|
+
* It also sends the floor grant/release request.
|
|
873
|
+
*
|
|
874
|
+
* @param {LocalDisplayStream | undefined} localDisplayStream local display stream
|
|
875
|
+
* @returns {Promise<void>}
|
|
894
876
|
*/
|
|
895
|
-
|
|
877
|
+
private setLocalShareVideoStream;
|
|
896
878
|
/**
|
|
897
|
-
*
|
|
898
|
-
*
|
|
899
|
-
*
|
|
900
|
-
* @
|
|
879
|
+
* Stores the reference to a new screen share audio stream, sets up the required event listeners
|
|
880
|
+
* on it, cleans up previous stream, etc.
|
|
881
|
+
*
|
|
882
|
+
* @param {LocalSystemAudioStream | undefined} localSystemAudioStream local system audio stream
|
|
883
|
+
* @returns {Promise<void>}
|
|
901
884
|
*/
|
|
902
|
-
|
|
885
|
+
private setLocalShareAudioStream;
|
|
903
886
|
/**
|
|
904
887
|
* sets up listner for mercury event
|
|
905
888
|
* @returns {undefined}
|
|
@@ -928,10 +911,17 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
928
911
|
* Convenience method to set the correlation id for the Meeting
|
|
929
912
|
* @param {String} id correlation id to set on the class
|
|
930
913
|
* @returns {undefined}
|
|
914
|
+
* @public
|
|
915
|
+
* @memberof Meeting
|
|
916
|
+
*/
|
|
917
|
+
setCorrelationId(id: string): void;
|
|
918
|
+
/**
|
|
919
|
+
* Enqueue request for screenshare floor and set the status to pending
|
|
920
|
+
* @returns {Promise}
|
|
931
921
|
* @private
|
|
932
922
|
* @memberof Meeting
|
|
933
923
|
*/
|
|
934
|
-
private
|
|
924
|
+
private enqueueScreenShareFloorRequest;
|
|
935
925
|
/**
|
|
936
926
|
* Mute the audio for a meeting
|
|
937
927
|
* @returns {Promise} resolves the data from muting audio {mute, self} or rejects if there is no audio set
|
|
@@ -964,32 +954,25 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
964
954
|
* Shorthand function to join AND set up media
|
|
965
955
|
* @param {Object} options - options to join with media
|
|
966
956
|
* @param {JoinOptions} [options.joinOptions] - see #join()
|
|
967
|
-
* @param {
|
|
968
|
-
* @
|
|
969
|
-
* @returns {Promise} -- {join: see join(), media: see addMedia(), local: see getMediaStreams()}
|
|
957
|
+
* @param {AddMediaOptions} [options.mediaOptions] - see #addMedia()
|
|
958
|
+
* @returns {Promise} -- {join: see join(), media: see addMedia()}
|
|
970
959
|
* @public
|
|
971
960
|
* @memberof Meeting
|
|
972
961
|
* @example
|
|
973
962
|
* joinWithMedia({
|
|
974
963
|
* 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
|
-
* }})
|
|
964
|
+
* mediaOptions: {
|
|
965
|
+
* localStreams: { microphone: microphoneStream, camera: cameraStream }
|
|
966
|
+
* }
|
|
967
|
+
* })
|
|
987
968
|
*/
|
|
988
969
|
joinWithMedia(options?: {
|
|
989
970
|
joinOptions?: any;
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
971
|
+
mediaOptions?: AddMediaOptions;
|
|
972
|
+
}): Promise<{
|
|
973
|
+
join: any;
|
|
974
|
+
media: void;
|
|
975
|
+
}>;
|
|
993
976
|
/**
|
|
994
977
|
* Initiates the reconnection of the media in the meeting
|
|
995
978
|
*
|
|
@@ -1054,7 +1037,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1054
1037
|
* if joining as host on second loop, pass pin and pass moderator if joining as guest on second loop
|
|
1055
1038
|
* Scenario D: Joining any other way (sip, pstn, conversationUrl, link just need to specify resourceId)
|
|
1056
1039
|
*/
|
|
1057
|
-
join(options?: any): any
|
|
1040
|
+
join(options?: any): Promise<any>;
|
|
1058
1041
|
/**
|
|
1059
1042
|
* Connects to low latency mercury and reconnects if the address has changed
|
|
1060
1043
|
* It will also disconnect if called when the meeting has ended
|
|
@@ -1069,7 +1052,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1069
1052
|
* @public
|
|
1070
1053
|
* @memberof Meeting
|
|
1071
1054
|
*/
|
|
1072
|
-
usePhoneAudio(phoneNumber: string): any
|
|
1055
|
+
usePhoneAudio(phoneNumber: string): Promise<any>;
|
|
1073
1056
|
/**
|
|
1074
1057
|
* Determines if the given pstnStatus is in a state which implies the phone is provisioned
|
|
1075
1058
|
* @param {String} pstnStatus
|
|
@@ -1117,38 +1100,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1117
1100
|
* @memberof Meeting
|
|
1118
1101
|
*/
|
|
1119
1102
|
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
1103
|
/**
|
|
1153
1104
|
* Handles ROAP_FAILURE event from the webrtc media connection
|
|
1154
1105
|
*
|
|
@@ -1165,7 +1116,15 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1165
1116
|
*/
|
|
1166
1117
|
setupStatsAnalyzerEventHandlers: () => void;
|
|
1167
1118
|
getMediaConnectionDebugId(): string;
|
|
1168
|
-
|
|
1119
|
+
/**
|
|
1120
|
+
* Creates a webrtc media connection and publishes streams to it
|
|
1121
|
+
*
|
|
1122
|
+
* @param {Object} turnServerInfo TURN server information
|
|
1123
|
+
* @param {BundlePolicy} [bundlePolicy] Bundle policy settings
|
|
1124
|
+
* @param {AddMediaOptions} [options] Options for enabling/disabling audio/video
|
|
1125
|
+
* @returns {RoapMediaConnection | MultistreamRoapMediaConnection}
|
|
1126
|
+
*/
|
|
1127
|
+
private createMediaConnection;
|
|
1169
1128
|
/**
|
|
1170
1129
|
* Listens for an event emitted by eventEmitter and emits it from the meeting object
|
|
1171
1130
|
*
|
|
@@ -1177,23 +1136,81 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1177
1136
|
*/
|
|
1178
1137
|
forwardEvent(eventEmitter: any, eventTypeToForward: any, meetingEventType: any): void;
|
|
1179
1138
|
/**
|
|
1180
|
-
*
|
|
1181
|
-
*
|
|
1182
|
-
*
|
|
1183
|
-
* @
|
|
1184
|
-
* @param {
|
|
1185
|
-
* @
|
|
1186
|
-
|
|
1187
|
-
|
|
1139
|
+
* Sets up all the references to local streams in this.mediaProperties before creating media connection
|
|
1140
|
+
* and before TURN discovery, so that the correct mute state is sent with TURN discovery roap messages.
|
|
1141
|
+
*
|
|
1142
|
+
* @private
|
|
1143
|
+
* @param {LocalStreams} localStreams
|
|
1144
|
+
* @returns {Promise<void>}
|
|
1145
|
+
*/
|
|
1146
|
+
private setUpLocalStreamReferences;
|
|
1147
|
+
/**
|
|
1148
|
+
* Calls mediaProperties.waitForMediaConnectionConnected() and sends CA client.ice.end metric on failure
|
|
1149
|
+
*
|
|
1150
|
+
* @private
|
|
1151
|
+
* @returns {Promise<void>}
|
|
1152
|
+
*/
|
|
1153
|
+
private waitForMediaConnectionConnected;
|
|
1154
|
+
/**
|
|
1155
|
+
* Enables statsAnalyser if config allows it
|
|
1156
|
+
*
|
|
1157
|
+
* @private
|
|
1158
|
+
* @returns {void}
|
|
1159
|
+
*/
|
|
1160
|
+
private createStatsAnalyzer;
|
|
1161
|
+
/**
|
|
1162
|
+
* Handles device logging
|
|
1163
|
+
*
|
|
1164
|
+
* @private
|
|
1165
|
+
* @static
|
|
1166
|
+
* @returns {Promise<void>}
|
|
1167
|
+
*/
|
|
1168
|
+
private static handleDeviceLogging;
|
|
1169
|
+
/**
|
|
1170
|
+
* Returns a promise. This promise is created once the local sdp offer has been successfully created and is resolved
|
|
1171
|
+
* once the remote sdp answer has been received.
|
|
1172
|
+
*
|
|
1173
|
+
* @private
|
|
1174
|
+
* @returns {Promise<void>}
|
|
1175
|
+
*/
|
|
1176
|
+
private waitForRemoteSDPAnswer;
|
|
1177
|
+
/**
|
|
1178
|
+
* Does TURN discovery, SDP offer/answer exhange, establishes ICE connection and DTLS handshake
|
|
1179
|
+
*
|
|
1180
|
+
* @private
|
|
1181
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1182
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1183
|
+
* @returns {Promise<void>}
|
|
1184
|
+
*/
|
|
1185
|
+
private establishMediaConnection;
|
|
1186
|
+
/**
|
|
1187
|
+
* Cleans up stats analyzer, peer connection, and turns off listeners
|
|
1188
|
+
*
|
|
1189
|
+
* @private
|
|
1190
|
+
* @returns {Promise<void>}
|
|
1191
|
+
*/
|
|
1192
|
+
private cleanUpOnAddMediaFailure;
|
|
1193
|
+
/**
|
|
1194
|
+
* Creates a media connection to the server. Media connection is required for sending or receiving any audio/video.
|
|
1195
|
+
*
|
|
1196
|
+
* @param {AddMediaOptions} options
|
|
1197
|
+
* @returns {Promise<void>}
|
|
1188
1198
|
* @public
|
|
1189
1199
|
* @memberof Meeting
|
|
1190
1200
|
*/
|
|
1191
|
-
addMedia(options?:
|
|
1201
|
+
addMedia(options?: AddMediaOptions): Promise<void>;
|
|
1192
1202
|
/**
|
|
1193
1203
|
* Informs if the peer connection is in a state that can be updated with updateMedia (audio/video/share)
|
|
1194
1204
|
* @returns {Boolean}
|
|
1195
1205
|
*/
|
|
1196
1206
|
canUpdateMedia(): boolean;
|
|
1207
|
+
/**
|
|
1208
|
+
* media failed, so collect a stats report from webrtc using the wcme connection to grab the rtc stats report
|
|
1209
|
+
* send a webrtc telemetry dump to the configured server using the internal media core check metrics configured callback
|
|
1210
|
+
* @param {String} callFrom - the function calling this function, optional.
|
|
1211
|
+
* @returns {Promise<void>}
|
|
1212
|
+
*/
|
|
1213
|
+
private forceSendStatsReport;
|
|
1197
1214
|
/**
|
|
1198
1215
|
* Enqueues a media update operation.
|
|
1199
1216
|
* @param {String} mediaUpdateType one of MEDIA_UPDATE_TYPE values
|
|
@@ -1219,94 +1236,26 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1219
1236
|
*/
|
|
1220
1237
|
processNextQueuedMediaUpdate: () => void;
|
|
1221
1238
|
/**
|
|
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()
|
|
1239
|
+
* Updates the media connection - it allows to enable/disable all audio/video/share in the meeting.
|
|
1240
|
+
* This does not affect the published tracks, so for example if a microphone track is published and
|
|
1241
|
+
* updateMedia({audioEnabled: false}) is called, the audio will not be sent or received anymore,
|
|
1242
|
+
* but the track's "published" state is not changed and when updateMedia({audioEnabled: true}) is called,
|
|
1243
|
+
* the sending of the audio from the same track will resume.
|
|
1241
1244
|
*
|
|
1242
1245
|
* @param {Object} options
|
|
1243
|
-
* @param {boolean} options.
|
|
1244
|
-
* @param {boolean} options.
|
|
1245
|
-
* @param {
|
|
1246
|
+
* @param {boolean} options.audioEnabled [optional] enables/disables receiving and sending of main audio in the meeting
|
|
1247
|
+
* @param {boolean} options.videoEnabled [optional] enables/disables receiving and sending of main video in the meeting
|
|
1248
|
+
* @param {boolean} options.shareEnabled [optional] enables/disables receiving and sending of screen share in the meeting
|
|
1246
1249
|
* @returns {Promise}
|
|
1247
1250
|
* @public
|
|
1248
1251
|
* @memberof Meeting
|
|
1249
1252
|
*/
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
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()
|
|
1259
|
-
*
|
|
1260
|
-
* @param {Object} options
|
|
1261
|
-
* @param {boolean} options.sendVideo
|
|
1262
|
-
* @param {boolean} options.receiveVideo
|
|
1263
|
-
* @param {MediaStream} options.stream Stream that contains the video track to update
|
|
1264
|
-
* @returns {Promise}
|
|
1265
|
-
* @public
|
|
1266
|
-
* @memberof Meeting
|
|
1267
|
-
*/
|
|
1268
|
-
updateVideo(options: {
|
|
1269
|
-
sendVideo: boolean;
|
|
1270
|
-
receiveVideo: boolean;
|
|
1271
|
-
stream: MediaStream;
|
|
1272
|
-
}): any;
|
|
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;
|
|
1253
|
+
updateMedia(options: {
|
|
1254
|
+
audioEnabled?: boolean;
|
|
1255
|
+
videoEnabled?: boolean;
|
|
1256
|
+
shareAudioEnabled?: boolean;
|
|
1257
|
+
shareVideoEnabled?: boolean;
|
|
1258
|
+
}): Promise<void>;
|
|
1310
1259
|
/**
|
|
1311
1260
|
* Acknowledge the meeting, outgoing or incoming
|
|
1312
1261
|
* @param {String} type
|
|
@@ -1314,7 +1263,11 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1314
1263
|
* @public
|
|
1315
1264
|
* @memberof Meeting
|
|
1316
1265
|
*/
|
|
1317
|
-
acknowledge(type: string):
|
|
1266
|
+
acknowledge(type: string): Promise<{
|
|
1267
|
+
response: any;
|
|
1268
|
+
}> | Promise<{
|
|
1269
|
+
message: string;
|
|
1270
|
+
}>;
|
|
1318
1271
|
/**
|
|
1319
1272
|
* Decline this meeting
|
|
1320
1273
|
* @param {String} reason
|
|
@@ -1324,15 +1277,45 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1324
1277
|
*/
|
|
1325
1278
|
decline(reason: string): any;
|
|
1326
1279
|
/**
|
|
1327
|
-
*
|
|
1280
|
+
* Returns a promise that will resolve to fetch options for leaving a meeting.
|
|
1281
|
+
*
|
|
1282
|
+
* This is to support quickly submitting a leave request when the browser/tab is closing.
|
|
1283
|
+
* Calling meeting.leave will not work because there are some async steps that will
|
|
1284
|
+
* not complete before the browser is closed. Instead, we pre-gather all the
|
|
1285
|
+
* information/options needed for the request(s), and then simply and quickly
|
|
1286
|
+
* fire the fetch(es) when pagehide is triggered.
|
|
1287
|
+
*
|
|
1288
|
+
* We must use fetch instead of request because fetch has a keepalive option that
|
|
1289
|
+
* allows the request it to outlive the page.
|
|
1290
|
+
*
|
|
1291
|
+
* Note: the $timings values will be wrong, but setRequestTimingsAndFetch() will
|
|
1292
|
+
* properly adjust them before submitting.
|
|
1293
|
+
*
|
|
1294
|
+
* @public
|
|
1328
1295
|
* @param {Object} options leave options
|
|
1329
1296
|
* @param {String} options.resourceId the device with which to leave from, empty if just the computer
|
|
1297
|
+
* @param {any} options.reason the reason for leaving
|
|
1298
|
+
* @returns {Promise} resolves to options to be used with fetch
|
|
1299
|
+
*/
|
|
1300
|
+
buildLeaveFetchRequestOptions(options?: {
|
|
1301
|
+
resourceId?: string;
|
|
1302
|
+
reason?: any;
|
|
1303
|
+
}): any;
|
|
1304
|
+
/**
|
|
1305
|
+
* Leave the current meeting
|
|
1306
|
+
* @param {Object} options - leave options
|
|
1307
|
+
* @param {String} [options.resourceId] - the device with which to leave from, empty if just the computer
|
|
1308
|
+
* @param {String} [options.clientEventLeaveReason] - the leaveReason to include in the Call Analyzer event.
|
|
1309
|
+
* Must be one of: 'paired-leave' | 'one-to-one' | 'ended-by-locus' (defaults to no reason)
|
|
1310
|
+
* https://sqbu-github.cisco.com/WebExSquared/event-dictionary/blob/main/diagnostic-events.raml#L796
|
|
1311
|
+
* @param {String} [options.reason] - only used for logging
|
|
1330
1312
|
* @returns {Promise}
|
|
1331
1313
|
* @public
|
|
1332
1314
|
* @memberof Meeting
|
|
1333
1315
|
*/
|
|
1334
1316
|
leave(options?: {
|
|
1335
1317
|
resourceId?: string;
|
|
1318
|
+
clientEventLeaveReason?: ClientEventLeaveReason;
|
|
1336
1319
|
reason?: any;
|
|
1337
1320
|
}): any;
|
|
1338
1321
|
/**
|
|
@@ -1360,12 +1343,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1360
1343
|
*/
|
|
1361
1344
|
private requestScreenShareFloor;
|
|
1362
1345
|
/**
|
|
1363
|
-
*
|
|
1364
|
-
*
|
|
1365
|
-
*
|
|
1366
|
-
* @
|
|
1346
|
+
* Requests screen share floor if such request is pending.
|
|
1347
|
+
* It should be called whenever meeting state changes to JOINED
|
|
1348
|
+
*
|
|
1349
|
+
* @returns {void}
|
|
1367
1350
|
*/
|
|
1368
|
-
|
|
1351
|
+
private requestScreenShareFloorIfPending;
|
|
1369
1352
|
/**
|
|
1370
1353
|
* Sends a request to Locus to release the screen share floor.
|
|
1371
1354
|
* @returns {Promise} see #meetingRequest.changeMeetingFloor
|
|
@@ -1396,6 +1379,16 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1396
1379
|
* @memberof Meeting
|
|
1397
1380
|
*/
|
|
1398
1381
|
setDisallowUnmute(enabled: boolean): Promise<any>;
|
|
1382
|
+
/**
|
|
1383
|
+
* set the mute all flag for participants if you're the host
|
|
1384
|
+
* @returns {Promise}
|
|
1385
|
+
* @param {boolean} mutedEnabled
|
|
1386
|
+
* @param {boolean} disallowUnmuteEnabled
|
|
1387
|
+
* @param {boolean} muteOnEntryEnabled
|
|
1388
|
+
* @public
|
|
1389
|
+
* @memberof Meeting
|
|
1390
|
+
*/
|
|
1391
|
+
setMuteAll(mutedEnabled: boolean, disallowUnmuteEnabled: boolean, muteOnEntryEnabled: boolean): Promise<any>;
|
|
1399
1392
|
/**
|
|
1400
1393
|
* End the recording of this meeting
|
|
1401
1394
|
* @returns {Promise}
|
|
@@ -1446,7 +1439,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1446
1439
|
* @public
|
|
1447
1440
|
* @memberof Meeting
|
|
1448
1441
|
*/
|
|
1449
|
-
sendDTMF(tones: string): any
|
|
1442
|
+
sendDTMF(tones: string): Promise<any>;
|
|
1450
1443
|
/**
|
|
1451
1444
|
* Sends request to change layout type for the current meeting for the specific participant/device only
|
|
1452
1445
|
* @param {String} [layoutType] a layout type that should be available in meeting constants {@link #layout_types}
|
|
@@ -1471,53 +1464,33 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1471
1464
|
height: number;
|
|
1472
1465
|
};
|
|
1473
1466
|
}): 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
1467
|
/**
|
|
1481
1468
|
* Sets the quality level of the remote incoming media
|
|
1482
1469
|
* @param {String} level {LOW|MEDIUM|HIGH}
|
|
1483
1470
|
* @returns {Promise}
|
|
1484
1471
|
*/
|
|
1485
|
-
setRemoteQualityLevel(level: string):
|
|
1472
|
+
setRemoteQualityLevel(level: string): Promise<void>;
|
|
1486
1473
|
/**
|
|
1487
|
-
*
|
|
1488
|
-
* @
|
|
1489
|
-
* @
|
|
1490
|
-
* @
|
|
1474
|
+
* Functionality for when a share audio is ended.
|
|
1475
|
+
* @private
|
|
1476
|
+
* @memberof Meeting
|
|
1477
|
+
* @returns {undefined}
|
|
1491
1478
|
*/
|
|
1492
|
-
|
|
1479
|
+
private handleShareAudioStreamEnded;
|
|
1493
1480
|
/**
|
|
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}
|
|
1481
|
+
* Functionality for when a share video is ended.
|
|
1482
|
+
* @private
|
|
1483
|
+
* @memberof Meeting
|
|
1484
|
+
* @returns {undefined}
|
|
1505
1485
|
*/
|
|
1506
|
-
|
|
1507
|
-
sendAudio: boolean;
|
|
1508
|
-
sendShare: boolean;
|
|
1509
|
-
sharePreferences: {
|
|
1510
|
-
shareConstraints: MediaTrackConstraints;
|
|
1511
|
-
};
|
|
1512
|
-
}): any;
|
|
1486
|
+
private handleShareVideoStreamEnded;
|
|
1513
1487
|
/**
|
|
1514
|
-
*
|
|
1488
|
+
* Emits meeting:stoppedSharingLocal
|
|
1515
1489
|
* @private
|
|
1516
|
-
* @memberof Meeting
|
|
1517
|
-
* @param {MediaStream} localShare
|
|
1518
1490
|
* @returns {undefined}
|
|
1491
|
+
* @memberof Meeting
|
|
1519
1492
|
*/
|
|
1520
|
-
private
|
|
1493
|
+
private triggerStoppedSharing;
|
|
1521
1494
|
/**
|
|
1522
1495
|
* Emits the 'network:quality' event
|
|
1523
1496
|
* 1 indicates an acceptable uplink network.
|
|
@@ -1532,92 +1505,16 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1532
1505
|
private sendNetworkQualityEvent;
|
|
1533
1506
|
/**
|
|
1534
1507
|
* Handle logging the media
|
|
1535
|
-
* @param {Object}
|
|
1536
|
-
* @param {Object} videoTrack The video track
|
|
1508
|
+
* @param {Object} mediaProperties
|
|
1537
1509
|
* @private
|
|
1538
1510
|
* @returns {undefined}
|
|
1539
1511
|
*/
|
|
1540
1512
|
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
1513
|
/**
|
|
1572
1514
|
*
|
|
1573
|
-
* @returns {
|
|
1515
|
+
* @returns {string} one of 'attendee','host','cohost', returns the user type of the current user
|
|
1574
1516
|
*/
|
|
1575
|
-
|
|
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
|
-
/**
|
|
1617
|
-
*
|
|
1618
|
-
* @returns {string} duration between call initiate and successful locus join (even if it is in lobby)
|
|
1619
|
-
*/
|
|
1620
|
-
getTotalJmt(): number;
|
|
1517
|
+
getCurUserType(): "host" | "cohost" | "attendee";
|
|
1621
1518
|
/**
|
|
1622
1519
|
* End the current meeting for all
|
|
1623
1520
|
* @returns {Promise}
|
|
@@ -1632,35 +1529,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1632
1529
|
* @memberof Meeting
|
|
1633
1530
|
*/
|
|
1634
1531
|
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
1532
|
/**
|
|
1665
1533
|
* starts keepAlives being sent
|
|
1666
1534
|
* @returns {void}
|
|
@@ -1693,7 +1561,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1693
1561
|
* @public
|
|
1694
1562
|
* @memberof Meeting
|
|
1695
1563
|
*/
|
|
1696
|
-
toggleReactions(enable: boolean): any
|
|
1564
|
+
toggleReactions(enable: boolean): Promise<any>;
|
|
1697
1565
|
/**
|
|
1698
1566
|
* Throws if we don't have a media connection created
|
|
1699
1567
|
*
|
|
@@ -1701,24 +1569,61 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1701
1569
|
*/
|
|
1702
1570
|
private checkMediaConnection;
|
|
1703
1571
|
/**
|
|
1704
|
-
*
|
|
1572
|
+
* Method to enable or disable the 'Music mode' effect on audio stream
|
|
1705
1573
|
*
|
|
1706
|
-
* @param {
|
|
1574
|
+
* @param {boolean} shouldEnableMusicMode
|
|
1707
1575
|
* @returns {Promise}
|
|
1708
1576
|
*/
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1577
|
+
enableMusicMode(shouldEnableMusicMode: boolean): Promise<void>;
|
|
1578
|
+
/** Updates the tracks being sent on the transcoded media connection
|
|
1579
|
+
*
|
|
1580
|
+
* @returns {Promise<void>}
|
|
1581
|
+
*/
|
|
1582
|
+
private updateTranscodedMediaConnection;
|
|
1583
|
+
/**
|
|
1584
|
+
* Publishes a stream.
|
|
1585
|
+
*
|
|
1586
|
+
* @param {MediaType} mediaType of the stream
|
|
1587
|
+
* @param {LocalStream} stream to publish
|
|
1588
|
+
* @returns {Promise}
|
|
1589
|
+
*/
|
|
1590
|
+
private publishStream;
|
|
1591
|
+
/**
|
|
1592
|
+
* Un-publishes a stream.
|
|
1593
|
+
*
|
|
1594
|
+
* @param {MediaType} mediaType of the stream
|
|
1595
|
+
* @param {LocalStream} stream to unpublish
|
|
1596
|
+
* @returns {Promise}
|
|
1597
|
+
*/
|
|
1598
|
+
private unpublishStream;
|
|
1599
|
+
/**
|
|
1600
|
+
* Publishes specified local streams in the meeting
|
|
1601
|
+
*
|
|
1602
|
+
* @param {Object} streams
|
|
1603
|
+
* @returns {Promise}
|
|
1604
|
+
*/
|
|
1605
|
+
publishStreams(streams: LocalStreams): Promise<void>;
|
|
1717
1606
|
/**
|
|
1718
|
-
* Un-publishes specified local
|
|
1607
|
+
* Un-publishes specified local streams in the meeting
|
|
1719
1608
|
*
|
|
1720
|
-
* @param {Array<
|
|
1609
|
+
* @param {Array<LocalStream>} streams
|
|
1721
1610
|
* @returns {Promise}
|
|
1722
1611
|
*/
|
|
1723
|
-
|
|
1612
|
+
unpublishStreams(streams: LocalStream[]): Promise<void>;
|
|
1613
|
+
/**
|
|
1614
|
+
* Gets the time left in seconds till the permission token expires
|
|
1615
|
+
* (from the time the function has been fired)
|
|
1616
|
+
*
|
|
1617
|
+
* @returns {number} time left in seconds
|
|
1618
|
+
*/
|
|
1619
|
+
getPermissionTokenTimeLeftInSec(): number | undefined;
|
|
1620
|
+
/**
|
|
1621
|
+
* Check if there is enough time left till the permission token expires
|
|
1622
|
+
* If not - refresh the permission token
|
|
1623
|
+
*
|
|
1624
|
+
* @param {number} threshold - time in seconds
|
|
1625
|
+
* @param {string} reason - reason for refreshing the permission token
|
|
1626
|
+
* @returns {Promise<void>}
|
|
1627
|
+
*/
|
|
1628
|
+
checkAndRefreshPermissionToken(threshold: number, reason: string): Promise<void>;
|
|
1724
1629
|
}
|