@webex/plugin-meetings 3.0.0-beta.34 → 3.0.0-beta.340
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 -10
- 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 +62 -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/mediaQualityMetrics/config.js +1 -204
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +86 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +3927 -2960
- 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 +224 -131
- 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 +424 -116
- 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 +16 -5
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -446
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +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/clusterReachability.js +356 -0
- package/dist/reachability/clusterReachability.js.map +1 -0
- package/dist/reachability/index.js +273 -391
- 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/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- package/dist/reconnection-manager/index.js +214 -170
- 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 -35
- 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 -38
- 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 +181 -214
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +22 -18
- 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 +2 -7
- package/dist/types/constants.d.ts +201 -30
- 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 +66 -6
- package/dist/types/media/index.d.ts +2 -0
- package/dist/types/media/properties.d.ts +34 -48
- package/dist/types/mediaQualityMetrics/config.d.ts +0 -128
- package/dist/types/meeting/in-meeting-actions.d.ts +86 -2
- package/dist/types/meeting/index.d.ts +506 -512
- package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/types/meeting/muteState.d.ts +93 -25
- 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 +91 -21
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/member/index.d.ts +14 -0
- package/dist/types/member/types.d.ts +32 -0
- package/dist/types/members/collection.d.ts +5 -0
- package/dist/types/members/index.d.ts +35 -2
- package/dist/types/members/request.d.ts +73 -9
- package/dist/types/members/types.d.ts +25 -0
- package/dist/types/members/util.d.ts +214 -1
- package/dist/types/metrics/constants.d.ts +15 -4
- package/dist/types/metrics/index.d.ts +4 -111
- 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/clusterReachability.d.ts +109 -0
- package/dist/types/reachability/index.d.ts +60 -95
- package/dist/types/reachability/request.d.ts +7 -3
- package/dist/types/reachability/util.d.ts +8 -0
- package/dist/types/reconnection-manager/index.d.ts +19 -0
- package/dist/types/recording-controller/index.d.ts +15 -1
- package/dist/types/recording-controller/util.d.ts +5 -4
- package/dist/types/roap/index.d.ts +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 +29 -11
- package/dist/types/webinar/collection.d.ts +16 -0
- package/dist/types/webinar/index.d.ts +5 -0
- package/dist/webinar/collection.js +44 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.js +69 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +22 -19
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +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 -9
- package/src/constants.ts +224 -20
- 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/mediaQualityMetrics/config.ts +0 -135
- package/src/meeting/in-meeting-actions.ts +171 -3
- package/src/meeting/index.ts +3276 -2555
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +223 -136
- 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 +454 -125
- 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 +15 -4
- package/src/metrics/index.ts +1 -469
- 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/clusterReachability.ts +320 -0
- package/src/reachability/index.ts +236 -342
- package/src/reachability/request.ts +17 -8
- package/src/reachability/util.ts +24 -0
- package/src/reconnection-manager/index.ts +128 -106
- 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 +218 -289
- package/src/statsAnalyzer/mqaUtil.ts +28 -30
- 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 +120 -37
- package/test/unit/spec/media/properties.ts +2 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +85 -3
- package/test/unit/spec/meeting/index.js +5849 -2014
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +402 -213
- 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 +1231 -212
- 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/clusterReachability.ts +279 -0
- package/test/unit/spec/reachability/index.ts +486 -13
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +117 -11
- 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 +174 -63
- package/test/unit/spec/roap/request.ts +226 -85
- package/test/unit/spec/roap/turnDiscovery.ts +76 -34
- package/test/unit/spec/rtcMetrics/index.ts +93 -0
- package/test/unit/spec/stats-analyzer/index.js +231 -7
- 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 -289
- 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 -169
- package/src/index.js +0 -16
- package/src/meeting/effectsState.ts +0 -211
- package/src/metrics/config.ts +0 -485
- package/test/unit/spec/meeting/effectsState.js +0 -285
|
@@ -1,27 +1,58 @@
|
|
|
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
|
+
};
|
|
41
|
+
export type CallStateForMetrics = {
|
|
42
|
+
correlationId?: string;
|
|
43
|
+
joinTrigger?: string;
|
|
44
|
+
loginType?: string;
|
|
45
|
+
};
|
|
18
46
|
export declare const MEDIA_UPDATE_TYPE: {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
SHARE: string;
|
|
23
|
-
LAMBDA: string;
|
|
47
|
+
TRANSCODED_MEDIA_CONNECTION: string;
|
|
48
|
+
SHARE_FLOOR_REQUEST: string;
|
|
49
|
+
UPDATE_MEDIA: string;
|
|
24
50
|
};
|
|
51
|
+
export declare enum ScreenShareFloorStatus {
|
|
52
|
+
PENDING = "floor_request_pending",
|
|
53
|
+
GRANTED = "floor_request_granted",
|
|
54
|
+
RELEASED = "floor_released"
|
|
55
|
+
}
|
|
25
56
|
/**
|
|
26
57
|
* MediaDirection
|
|
27
58
|
* @typedef {Object} MediaDirection
|
|
@@ -33,15 +64,6 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
33
64
|
* @property {boolean} receiveShare
|
|
34
65
|
* @property {boolean} isSharing
|
|
35
66
|
*/
|
|
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
67
|
/**
|
|
46
68
|
* SharePreferences
|
|
47
69
|
* @typedef {Object} SharePreferences
|
|
@@ -55,18 +77,10 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
55
77
|
* @property {String} [pin]
|
|
56
78
|
* @property {Boolean} [moderator]
|
|
57
79
|
* @property {String|Object} [meetingQuality]
|
|
58
|
-
* @property {String} [meetingQuality.local]
|
|
59
80
|
* @property {String} [meetingQuality.remote]
|
|
60
81
|
* @property {Boolean} [rejoin]
|
|
61
82
|
* @property {Boolean} [enableMultistream]
|
|
62
83
|
*/
|
|
63
|
-
/**
|
|
64
|
-
* SendOptions
|
|
65
|
-
* @typedef {Object} SendOptions
|
|
66
|
-
* @property {Boolean} sendAudio
|
|
67
|
-
* @property {Boolean} sendVideo
|
|
68
|
-
* @property {Boolean} sendShare
|
|
69
|
-
*/
|
|
70
84
|
/**
|
|
71
85
|
* Recording
|
|
72
86
|
* @typedef {Object} Recording
|
|
@@ -148,7 +162,11 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
148
162
|
* @instance
|
|
149
163
|
* @type {Object}
|
|
150
164
|
* @property {Boolean} memberId id of the meeting member that started screen share
|
|
165
|
+
* @property {String} url of this content share
|
|
166
|
+
* @property {String} shareInstanceId of this content share
|
|
167
|
+
* @property {Object} annotation Info of this content share
|
|
151
168
|
* @memberof Meeting
|
|
169
|
+
*
|
|
152
170
|
*/
|
|
153
171
|
/**
|
|
154
172
|
* Meeting Stopped Sharing Remote Event
|
|
@@ -285,12 +303,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
285
303
|
attrs: any;
|
|
286
304
|
audio: any;
|
|
287
305
|
breakouts: any;
|
|
306
|
+
simultaneousInterpretation: any;
|
|
307
|
+
annotation: any;
|
|
308
|
+
webinar: any;
|
|
288
309
|
conversationUrl: string;
|
|
289
|
-
|
|
310
|
+
callStateForMetrics: CallStateForMetrics;
|
|
290
311
|
destination: string;
|
|
291
312
|
destinationType: string;
|
|
292
313
|
deviceUrl: string;
|
|
293
|
-
effects: any;
|
|
294
314
|
hostId: string;
|
|
295
315
|
id: string;
|
|
296
316
|
isMultistream: boolean;
|
|
@@ -298,7 +318,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
298
318
|
mediaConnections: any[];
|
|
299
319
|
mediaId?: string;
|
|
300
320
|
meetingFiniteStateMachine: any;
|
|
301
|
-
meetingInfo:
|
|
321
|
+
meetingInfo: any;
|
|
302
322
|
meetingRequest: MeetingRequest;
|
|
303
323
|
members: Members;
|
|
304
324
|
options: object;
|
|
@@ -310,11 +330,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
310
330
|
resource: string;
|
|
311
331
|
roap: Roap;
|
|
312
332
|
roapSeq: number;
|
|
333
|
+
selfUrl?: string;
|
|
313
334
|
sipUri: string;
|
|
314
335
|
type: string;
|
|
315
336
|
userId: string;
|
|
316
337
|
video: any;
|
|
317
338
|
callEvents: any[];
|
|
339
|
+
datachannelUrl: string;
|
|
318
340
|
deferJoin: Promise<any>;
|
|
319
341
|
dialInDeviceStatus: string;
|
|
320
342
|
dialInUrl: string;
|
|
@@ -327,10 +349,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
327
349
|
inMeetingActions: InMeetingActions;
|
|
328
350
|
isLocalShareLive: boolean;
|
|
329
351
|
isRoapInProgress: boolean;
|
|
330
|
-
isSharing: boolean;
|
|
331
352
|
keepAliveTimerId: NodeJS.Timeout;
|
|
332
353
|
lastVideoLayoutInfo: any;
|
|
333
354
|
locusInfo: any;
|
|
355
|
+
locusMediaRequest?: LocusMediaRequest;
|
|
334
356
|
mediaProperties: MediaProperties;
|
|
335
357
|
mediaRequestManagers: {
|
|
336
358
|
audio: MediaRequestManager;
|
|
@@ -339,8 +361,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
339
361
|
screenShareVideo: MediaRequestManager;
|
|
340
362
|
};
|
|
341
363
|
meetingInfoFailureReason: string;
|
|
364
|
+
meetingInfoFailureCode?: number;
|
|
365
|
+
meetingInfoExtraParams?: Record<string, any>;
|
|
342
366
|
networkQualityMonitor: NetworkQualityMonitor;
|
|
343
|
-
networkStatus
|
|
367
|
+
networkStatus?: NETWORK_STATUS;
|
|
344
368
|
passwordStatus: string;
|
|
345
369
|
queuedMediaUpdates: any[];
|
|
346
370
|
recording: any;
|
|
@@ -349,16 +373,20 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
349
373
|
controlsOptionsManager: ControlsOptionsManager;
|
|
350
374
|
requiredCaptcha: any;
|
|
351
375
|
receiveSlotManager: ReceiveSlotManager;
|
|
376
|
+
selfUserPolicies: any;
|
|
377
|
+
enforceVBGImagesURL: string;
|
|
352
378
|
shareStatus: string;
|
|
379
|
+
screenShareFloorState: ScreenShareFloorStatus;
|
|
353
380
|
statsAnalyzer: StatsAnalyzer;
|
|
354
381
|
transcription: Transcription;
|
|
355
382
|
updateMediaConnections: (mediaConnections: any[]) => void;
|
|
356
|
-
|
|
383
|
+
userDisplayHints: any;
|
|
384
|
+
endCallInitJoinReq: any;
|
|
357
385
|
endJoinReqResp: any;
|
|
358
386
|
endLocalSDPGenRemoteSDPRecvDelay: any;
|
|
359
387
|
joinedWith: any;
|
|
360
388
|
locusId: any;
|
|
361
|
-
|
|
389
|
+
startCallInitJoinReq: any;
|
|
362
390
|
startJoinReqResp: any;
|
|
363
391
|
startLocalSDPGenRemoteSDPRecvDelay: any;
|
|
364
392
|
wirelessShare: any;
|
|
@@ -366,12 +394,27 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
366
394
|
meetingJoinUrl: any;
|
|
367
395
|
meetingNumber: any;
|
|
368
396
|
meetingState: any;
|
|
369
|
-
permissionToken:
|
|
397
|
+
permissionToken: string;
|
|
398
|
+
permissionTokenPayload: any;
|
|
399
|
+
permissionTokenReceivedLocalTime: number;
|
|
370
400
|
resourceId: any;
|
|
371
401
|
resourceUrl: string;
|
|
372
402
|
selfId: string;
|
|
373
403
|
state: any;
|
|
404
|
+
localAudioStreamMuteStateHandler: (muted: boolean) => void;
|
|
405
|
+
localVideoStreamMuteStateHandler: (muted: boolean) => void;
|
|
406
|
+
localOutputTrackChangeHandler: () => void;
|
|
407
|
+
roles: any[];
|
|
408
|
+
environment: string;
|
|
374
409
|
namespace: string;
|
|
410
|
+
allowMediaInLobby: boolean;
|
|
411
|
+
turnDiscoverySkippedReason: string;
|
|
412
|
+
turnServerUsed: boolean;
|
|
413
|
+
private retriedWithTurnServer;
|
|
414
|
+
private sendSlotManager;
|
|
415
|
+
private deferSDPAnswer?;
|
|
416
|
+
private sdpResponseTimer?;
|
|
417
|
+
private hasMediaConnectionConnectedAtLeastOnce;
|
|
375
418
|
/**
|
|
376
419
|
* @param {Object} attrs
|
|
377
420
|
* @param {Object} options
|
|
@@ -379,29 +422,68 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
379
422
|
* @memberof Meeting
|
|
380
423
|
*/
|
|
381
424
|
constructor(attrs: any, options: object);
|
|
425
|
+
/**
|
|
426
|
+
* returns meeting is joined
|
|
427
|
+
* @private
|
|
428
|
+
* @memberof Meeting
|
|
429
|
+
* @returns {Boolean}
|
|
430
|
+
*/
|
|
431
|
+
private isJoined;
|
|
432
|
+
/**
|
|
433
|
+
* Returns whether this meeting is a Locus CALL
|
|
434
|
+
* @returns {Boolean}
|
|
435
|
+
*/
|
|
436
|
+
isLocusCall(): boolean;
|
|
437
|
+
/**
|
|
438
|
+
* Getter - Returns callStateForMetrics.correlationId
|
|
439
|
+
* @returns {string}
|
|
440
|
+
*/
|
|
441
|
+
get correlationId(): string;
|
|
442
|
+
/**
|
|
443
|
+
* Setter - sets callStateForMetrics.correlationId
|
|
444
|
+
* @param {string} correlationId
|
|
445
|
+
*/
|
|
446
|
+
set correlationId(correlationId: string);
|
|
447
|
+
/**
|
|
448
|
+
* Internal method for fetching meeting info
|
|
449
|
+
*
|
|
450
|
+
* @returns {Promise}
|
|
451
|
+
*/
|
|
452
|
+
private fetchMeetingInfoInternal;
|
|
453
|
+
/**
|
|
454
|
+
* Refreshes the meeting info permission token (it's required for joining meetings)
|
|
455
|
+
*
|
|
456
|
+
* @param {string} [reason] used for metrics and logging purposes (optional)
|
|
457
|
+
* @returns {Promise}
|
|
458
|
+
*/
|
|
459
|
+
refreshPermissionToken(reason?: string): Promise<void>;
|
|
382
460
|
/**
|
|
383
461
|
* Fetches meeting information.
|
|
384
462
|
* @param {Object} options
|
|
385
463
|
* @param {String} [options.password] optional
|
|
386
464
|
* @param {String} [options.captchaCode] optional
|
|
465
|
+
* @param {Boolean} [options.sendCAevents] optional - Whether to submit Call Analyzer events or not. Default: false.
|
|
387
466
|
* @public
|
|
388
467
|
* @memberof Meeting
|
|
389
468
|
* @returns {Promise}
|
|
390
469
|
*/
|
|
391
|
-
fetchMeetingInfo({ password, captchaCode, }: {
|
|
470
|
+
fetchMeetingInfo({ password, captchaCode, extraParams, sendCAevents, }: {
|
|
392
471
|
password?: string;
|
|
393
472
|
captchaCode?: string;
|
|
473
|
+
extraParams?: Record<string, any>;
|
|
474
|
+
sendCAevents?: boolean;
|
|
394
475
|
}): Promise<void>;
|
|
395
476
|
/**
|
|
396
477
|
* Checks if the supplied password/host key is correct. It returns a promise with information whether the
|
|
397
478
|
* password and captcha code were correct or not.
|
|
398
479
|
* @param {String} password - this can be either a password or a host key, can be undefined if only captcha was required
|
|
399
480
|
* @param {String} captchaCode - can be undefined if captcha was not required by the server
|
|
481
|
+
* @param {Boolean} sendCAevents - whether Call Analyzer events should be sent when fetching meeting information
|
|
400
482
|
* @public
|
|
401
483
|
* @memberof Meeting
|
|
402
484
|
* @returns {Promise<{isPasswordValid: boolean, requiredCaptcha: boolean, failureReason: MEETING_INFO_FAILURE_REASON}>}
|
|
403
485
|
*/
|
|
404
|
-
verifyPassword(password: string, captchaCode: string): Promise<{
|
|
486
|
+
verifyPassword(password: string, captchaCode: string, sendCAevents?: boolean): Promise<{
|
|
405
487
|
isPasswordValid: boolean;
|
|
406
488
|
requiredCaptcha: any;
|
|
407
489
|
failureReason: string;
|
|
@@ -418,6 +500,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
418
500
|
* @returns {Promise}
|
|
419
501
|
*/
|
|
420
502
|
refreshCaptcha(): any;
|
|
503
|
+
/**
|
|
504
|
+
* Posts metrics event for this meeting. Allows the app to send Call Analyzer events.
|
|
505
|
+
* @param {String} eventName - Call Analyzer event
|
|
506
|
+
* @public
|
|
507
|
+
* @memberof Meeting
|
|
508
|
+
* @returns {Promise}
|
|
509
|
+
*/
|
|
510
|
+
postMetrics(eventName: ClientEvent['name']): void;
|
|
421
511
|
/**
|
|
422
512
|
* Proxy function for all the listener set ups
|
|
423
513
|
* @returns {undefined}
|
|
@@ -432,6 +522,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
432
522
|
* @memberof Meeting
|
|
433
523
|
*/
|
|
434
524
|
setUpBreakoutsListener(): void;
|
|
525
|
+
/**
|
|
526
|
+
* Set up the listeners for interpretation
|
|
527
|
+
* @returns {undefined}
|
|
528
|
+
* @private
|
|
529
|
+
* @memberof Meeting
|
|
530
|
+
*/
|
|
531
|
+
private setUpInterpretationListener;
|
|
435
532
|
/**
|
|
436
533
|
* Set up the locus info listener for meetings disconnected due to inactivity
|
|
437
534
|
* @returns {undefined}
|
|
@@ -453,50 +550,9 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
453
550
|
* @memberof Meeting
|
|
454
551
|
*/
|
|
455
552
|
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
553
|
/**
|
|
498
554
|
* sets the network status on meeting object
|
|
499
|
-
* @param {
|
|
555
|
+
* @param {NETWORK_STATUS} networkStatus
|
|
500
556
|
* @private
|
|
501
557
|
* @returns {undefined}
|
|
502
558
|
* @memberof Meeting
|
|
@@ -556,6 +612,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
556
612
|
* @memberof Meeting
|
|
557
613
|
*/
|
|
558
614
|
private setupLocusControlsListener;
|
|
615
|
+
/**
|
|
616
|
+
* Trigger annotation info update event
|
|
617
|
+
@returns {undefined}
|
|
618
|
+
@param {object} contentShare
|
|
619
|
+
@param {object} previousContentShare
|
|
620
|
+
*/
|
|
621
|
+
private triggerAnnotationInfoEvent;
|
|
559
622
|
/**
|
|
560
623
|
* Set up the locus info media shares listener
|
|
561
624
|
* update content and whiteboard sharing id value for members, and updates the member
|
|
@@ -654,13 +717,23 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
654
717
|
phoneNumber: string;
|
|
655
718
|
}): any;
|
|
656
719
|
/**
|
|
657
|
-
* Admit the guest(s) to the call once they are waiting
|
|
720
|
+
* Admit the guest(s) to the call once they are waiting.
|
|
721
|
+
* If the host/cohost is in a breakout session, the locus url
|
|
722
|
+
* of the session must be provided as the authorizingLocusUrl.
|
|
723
|
+
* Regardless of host/cohost location, the locus Id (lid) in
|
|
724
|
+
* the path should be the locus Id of the main, which means the
|
|
725
|
+
* locus url of the api call must be from the main session.
|
|
726
|
+
* If these loucs urls are not provided, the function will do the check.
|
|
658
727
|
* @param {Array} memberIds
|
|
728
|
+
* @param {Object} sessionLocusUrls: {authorizingLocusUrl, mainLocusUrl}
|
|
659
729
|
* @returns {Promise} see #members.admitMembers
|
|
660
730
|
* @public
|
|
661
731
|
* @memberof Meeting
|
|
662
732
|
*/
|
|
663
|
-
admit(memberIds: Array<any
|
|
733
|
+
admit(memberIds: Array<any>, sessionLocusUrls?: {
|
|
734
|
+
authorizingLocusUrl: string;
|
|
735
|
+
mainLocusUrl: string;
|
|
736
|
+
}): any;
|
|
664
737
|
/**
|
|
665
738
|
* Remove the member from the meeting, boot them
|
|
666
739
|
* @param {String} memberId
|
|
@@ -694,48 +767,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
694
767
|
* @memberof Meeting
|
|
695
768
|
*/
|
|
696
769
|
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
770
|
/**
|
|
740
771
|
* Sets the meeting info on the class instance
|
|
741
772
|
* @param {Object} meetingInfo
|
|
@@ -758,16 +789,29 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
758
789
|
};
|
|
759
790
|
} | any, destination?: object | string | null): void;
|
|
760
791
|
/**
|
|
761
|
-
*
|
|
762
|
-
* @
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
792
|
+
* Indicates whether policy can be applied
|
|
793
|
+
* @returns {boolean}
|
|
794
|
+
*/
|
|
795
|
+
private arePolicyRestrictionsSupported;
|
|
796
|
+
/**
|
|
797
|
+
* Updates the meeting actions (display hints), depends on locus display hints, user policy and app api info
|
|
766
798
|
* @returns {undefined}
|
|
767
799
|
* @private
|
|
768
800
|
* @memberof Meeting
|
|
769
801
|
*/
|
|
770
|
-
private
|
|
802
|
+
private updateMeetingActions;
|
|
803
|
+
/**
|
|
804
|
+
* Sets the self user policies based on the contents of the permission token
|
|
805
|
+
* @returns {void}
|
|
806
|
+
*/
|
|
807
|
+
setSelfUserPolicies(): void;
|
|
808
|
+
/**
|
|
809
|
+
* Sets the permission token payload on the class instance
|
|
810
|
+
*
|
|
811
|
+
* @param {String} permissionToken
|
|
812
|
+
* @returns {void}
|
|
813
|
+
*/
|
|
814
|
+
setPermissionTokenPayload(permissionToken: string): void;
|
|
771
815
|
/**
|
|
772
816
|
* Sets the sip uri on the class instance
|
|
773
817
|
* uses meeting info as precedence
|
|
@@ -790,7 +834,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
790
834
|
* @private
|
|
791
835
|
* @memberof Meeting
|
|
792
836
|
*/
|
|
793
|
-
|
|
837
|
+
setLocus(locus: {
|
|
838
|
+
mediaConnections: Array<any>;
|
|
839
|
+
locusUrl: string;
|
|
840
|
+
locusId: string;
|
|
841
|
+
mediaId: string;
|
|
842
|
+
host: object;
|
|
843
|
+
} | any): void;
|
|
794
844
|
/**
|
|
795
845
|
* Upload logs for the current meeting
|
|
796
846
|
* @param {object} options file name and function name
|
|
@@ -800,19 +850,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
800
850
|
*/
|
|
801
851
|
uploadLogs(options?: object): void;
|
|
802
852
|
/**
|
|
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
|
|
853
|
+
* Removes remote audio, video and share streams from class instance's mediaProperties
|
|
813
854
|
* @returns {undefined}
|
|
814
855
|
*/
|
|
815
|
-
|
|
856
|
+
unsetRemoteStreams(): void;
|
|
816
857
|
/**
|
|
817
858
|
* Removes the remote stream on the class instance and triggers an event
|
|
818
859
|
* to developers
|
|
@@ -823,83 +864,45 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
823
864
|
*/
|
|
824
865
|
closeRemoteStream(): void;
|
|
825
866
|
/**
|
|
826
|
-
* Removes the remote
|
|
867
|
+
* Removes the remote streams on the class instance and triggers an event
|
|
827
868
|
* to developers
|
|
828
869
|
* @returns {undefined}
|
|
829
870
|
* @memberof Meeting
|
|
830
871
|
*/
|
|
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;
|
|
872
|
+
closeRemoteStreams(): Promise<[any, any, any]>;
|
|
839
873
|
/**
|
|
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
|
|
874
|
+
* Stores the reference to a new microphone stream, sets up the required event listeners
|
|
875
|
+
* on it, cleans up previous stream, etc.
|
|
876
|
+
*
|
|
877
|
+
* @param {LocalMicrophoneStream | null} localStream local microphone stream
|
|
878
|
+
* @returns {Promise<void>}
|
|
879
879
|
*/
|
|
880
|
-
|
|
880
|
+
private setLocalAudioStream;
|
|
881
881
|
/**
|
|
882
|
-
*
|
|
883
|
-
*
|
|
884
|
-
*
|
|
885
|
-
* @
|
|
886
|
-
* @
|
|
882
|
+
* Stores the reference to a new camera stream, sets up the required event listeners
|
|
883
|
+
* on it, cleans up previous stream, etc.
|
|
884
|
+
*
|
|
885
|
+
* @param {LocalCameraStream | null} localStream local camera stream
|
|
886
|
+
* @returns {Promise<void>}
|
|
887
887
|
*/
|
|
888
|
-
|
|
888
|
+
private setLocalVideoStream;
|
|
889
889
|
/**
|
|
890
|
-
*
|
|
891
|
-
*
|
|
892
|
-
*
|
|
893
|
-
*
|
|
890
|
+
* Stores the reference to a new screen share stream, sets up the required event listeners
|
|
891
|
+
* on it, cleans up previous stream, etc.
|
|
892
|
+
* It also sends the floor grant/release request.
|
|
893
|
+
*
|
|
894
|
+
* @param {LocalDisplayStream | undefined} localDisplayStream local display stream
|
|
895
|
+
* @returns {Promise<void>}
|
|
894
896
|
*/
|
|
895
|
-
|
|
897
|
+
private setLocalShareVideoStream;
|
|
896
898
|
/**
|
|
897
|
-
*
|
|
898
|
-
*
|
|
899
|
-
*
|
|
900
|
-
* @
|
|
899
|
+
* Stores the reference to a new screen share audio stream, sets up the required event listeners
|
|
900
|
+
* on it, cleans up previous stream, etc.
|
|
901
|
+
*
|
|
902
|
+
* @param {LocalSystemAudioStream | undefined} localSystemAudioStream local system audio stream
|
|
903
|
+
* @returns {Promise<void>}
|
|
901
904
|
*/
|
|
902
|
-
|
|
905
|
+
private setLocalShareAudioStream;
|
|
903
906
|
/**
|
|
904
907
|
* sets up listner for mercury event
|
|
905
908
|
* @returns {undefined}
|
|
@@ -925,13 +928,28 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
925
928
|
*/
|
|
926
929
|
unsetPeerConnections(): void;
|
|
927
930
|
/**
|
|
928
|
-
* Convenience method to set the correlation id for the
|
|
929
|
-
* @param {String} id correlation id to set on the
|
|
931
|
+
* Convenience method to set the correlation id for the callStateForMetrics
|
|
932
|
+
* @param {String} id correlation id to set on the callStateForMetrics
|
|
930
933
|
* @returns {undefined}
|
|
934
|
+
* @public
|
|
935
|
+
* @memberof Meeting
|
|
936
|
+
*/
|
|
937
|
+
setCorrelationId(id: string): void;
|
|
938
|
+
/**
|
|
939
|
+
* Update the callStateForMetrics
|
|
940
|
+
* @param {CallStateForMetrics} callStateForMetrics updated values for callStateForMetrics
|
|
941
|
+
* @returns {undefined}
|
|
942
|
+
* @public
|
|
943
|
+
* @memberof Meeting
|
|
944
|
+
*/
|
|
945
|
+
updateCallStateForMetrics(callStateForMetrics: CallStateForMetrics): void;
|
|
946
|
+
/**
|
|
947
|
+
* Enqueue request for screenshare floor and set the status to pending
|
|
948
|
+
* @returns {Promise}
|
|
931
949
|
* @private
|
|
932
950
|
* @memberof Meeting
|
|
933
951
|
*/
|
|
934
|
-
private
|
|
952
|
+
private enqueueScreenShareFloorRequest;
|
|
935
953
|
/**
|
|
936
954
|
* Mute the audio for a meeting
|
|
937
955
|
* @returns {Promise} resolves the data from muting audio {mute, self} or rejects if there is no audio set
|
|
@@ -964,32 +982,25 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
964
982
|
* Shorthand function to join AND set up media
|
|
965
983
|
* @param {Object} options - options to join with media
|
|
966
984
|
* @param {JoinOptions} [options.joinOptions] - see #join()
|
|
967
|
-
* @param {
|
|
968
|
-
* @
|
|
969
|
-
* @returns {Promise} -- {join: see join(), media: see addMedia(), local: see getMediaStreams()}
|
|
985
|
+
* @param {AddMediaOptions} [options.mediaOptions] - see #addMedia()
|
|
986
|
+
* @returns {Promise} -- {join: see join(), media: see addMedia()}
|
|
970
987
|
* @public
|
|
971
988
|
* @memberof Meeting
|
|
972
989
|
* @example
|
|
973
990
|
* joinWithMedia({
|
|
974
991
|
* 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
|
-
* }})
|
|
992
|
+
* mediaOptions: {
|
|
993
|
+
* localStreams: { microphone: microphoneStream, camera: cameraStream }
|
|
994
|
+
* }
|
|
995
|
+
* })
|
|
987
996
|
*/
|
|
988
997
|
joinWithMedia(options?: {
|
|
989
998
|
joinOptions?: any;
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
999
|
+
mediaOptions?: AddMediaOptions;
|
|
1000
|
+
}): Promise<{
|
|
1001
|
+
join: any;
|
|
1002
|
+
media: void;
|
|
1003
|
+
}>;
|
|
993
1004
|
/**
|
|
994
1005
|
* Initiates the reconnection of the media in the meeting
|
|
995
1006
|
*
|
|
@@ -1054,7 +1065,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1054
1065
|
* if joining as host on second loop, pass pin and pass moderator if joining as guest on second loop
|
|
1055
1066
|
* Scenario D: Joining any other way (sip, pstn, conversationUrl, link just need to specify resourceId)
|
|
1056
1067
|
*/
|
|
1057
|
-
join(options?: any): any
|
|
1068
|
+
join(options?: any): Promise<any>;
|
|
1058
1069
|
/**
|
|
1059
1070
|
* Connects to low latency mercury and reconnects if the address has changed
|
|
1060
1071
|
* It will also disconnect if called when the meeting has ended
|
|
@@ -1069,7 +1080,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1069
1080
|
* @public
|
|
1070
1081
|
* @memberof Meeting
|
|
1071
1082
|
*/
|
|
1072
|
-
usePhoneAudio(phoneNumber: string): any
|
|
1083
|
+
usePhoneAudio(phoneNumber: string): Promise<any>;
|
|
1073
1084
|
/**
|
|
1074
1085
|
* Determines if the given pstnStatus is in a state which implies the phone is provisioned
|
|
1075
1086
|
* @param {String} pstnStatus
|
|
@@ -1117,38 +1128,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1117
1128
|
* @memberof Meeting
|
|
1118
1129
|
*/
|
|
1119
1130
|
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
1131
|
/**
|
|
1153
1132
|
* Handles ROAP_FAILURE event from the webrtc media connection
|
|
1154
1133
|
*
|
|
@@ -1156,6 +1135,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1156
1135
|
* @returns {void}
|
|
1157
1136
|
*/
|
|
1158
1137
|
handleRoapFailure: (error: any) => void;
|
|
1138
|
+
/**
|
|
1139
|
+
* This function makes sure we send the right metrics when local and remote SDPs are processed/generated
|
|
1140
|
+
*
|
|
1141
|
+
* @returns {undefined}
|
|
1142
|
+
*/
|
|
1143
|
+
setupSdpListeners: () => void;
|
|
1159
1144
|
setupMediaConnectionListeners: () => void;
|
|
1160
1145
|
/**
|
|
1161
1146
|
* Registers for all required StatsAnalyzer events
|
|
@@ -1165,7 +1150,15 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1165
1150
|
*/
|
|
1166
1151
|
setupStatsAnalyzerEventHandlers: () => void;
|
|
1167
1152
|
getMediaConnectionDebugId(): string;
|
|
1168
|
-
|
|
1153
|
+
/**
|
|
1154
|
+
* Creates a webrtc media connection and publishes streams to it
|
|
1155
|
+
*
|
|
1156
|
+
* @param {Object} turnServerInfo TURN server information
|
|
1157
|
+
* @param {BundlePolicy} [bundlePolicy] Bundle policy settings
|
|
1158
|
+
* @param {AddMediaOptions} [options] Options for enabling/disabling audio/video
|
|
1159
|
+
* @returns {RoapMediaConnection | MultistreamRoapMediaConnection}
|
|
1160
|
+
*/
|
|
1161
|
+
private createMediaConnection;
|
|
1169
1162
|
/**
|
|
1170
1163
|
* Listens for an event emitted by eventEmitter and emits it from the meeting object
|
|
1171
1164
|
*
|
|
@@ -1177,23 +1170,121 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1177
1170
|
*/
|
|
1178
1171
|
forwardEvent(eventEmitter: any, eventTypeToForward: any, meetingEventType: any): void;
|
|
1179
1172
|
/**
|
|
1180
|
-
*
|
|
1181
|
-
*
|
|
1182
|
-
*
|
|
1183
|
-
* @
|
|
1184
|
-
* @param {
|
|
1185
|
-
* @
|
|
1186
|
-
|
|
1187
|
-
|
|
1173
|
+
* Sets up all the references to local streams in this.mediaProperties before creating media connection
|
|
1174
|
+
* and before TURN discovery, so that the correct mute state is sent with TURN discovery roap messages.
|
|
1175
|
+
*
|
|
1176
|
+
* @private
|
|
1177
|
+
* @param {LocalStreams} localStreams
|
|
1178
|
+
* @returns {Promise<void>}
|
|
1179
|
+
*/
|
|
1180
|
+
private setUpLocalStreamReferences;
|
|
1181
|
+
/**
|
|
1182
|
+
* Calls mediaProperties.waitForMediaConnectionConnected() and sends CA client.ice.end metric on failure
|
|
1183
|
+
*
|
|
1184
|
+
* @private
|
|
1185
|
+
* @returns {Promise<void>}
|
|
1186
|
+
*/
|
|
1187
|
+
private waitForMediaConnectionConnected;
|
|
1188
|
+
/**
|
|
1189
|
+
* Enables statsAnalyser if config allows it
|
|
1190
|
+
*
|
|
1191
|
+
* @private
|
|
1192
|
+
* @returns {void}
|
|
1193
|
+
*/
|
|
1194
|
+
private createStatsAnalyzer;
|
|
1195
|
+
/**
|
|
1196
|
+
* Handles device logging
|
|
1197
|
+
*
|
|
1198
|
+
* @private
|
|
1199
|
+
* @static
|
|
1200
|
+
* @returns {Promise<void>}
|
|
1201
|
+
*/
|
|
1202
|
+
private static handleDeviceLogging;
|
|
1203
|
+
/**
|
|
1204
|
+
* Returns a promise. This promise is created once the local sdp offer has been successfully created and is resolved
|
|
1205
|
+
* once the remote sdp answer has been received.
|
|
1206
|
+
*
|
|
1207
|
+
* @private
|
|
1208
|
+
* @returns {Promise<void>}
|
|
1209
|
+
*/
|
|
1210
|
+
private waitForRemoteSDPAnswer;
|
|
1211
|
+
/**
|
|
1212
|
+
* Calls establishMediaConnection with isForced = true to force turn discovery to happen
|
|
1213
|
+
*
|
|
1214
|
+
* @private
|
|
1215
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1216
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1217
|
+
* @returns {Promise<void>}
|
|
1218
|
+
*/
|
|
1219
|
+
private retryEstablishMediaConnectionWithForcedTurnDiscovery;
|
|
1220
|
+
/**
|
|
1221
|
+
* Does relevant clean up before retrying to establish media connection
|
|
1222
|
+
* and performs the retry with forced turn discovery
|
|
1223
|
+
*
|
|
1224
|
+
* @private
|
|
1225
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1226
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1227
|
+
* @returns {Promise<void>}
|
|
1228
|
+
*/
|
|
1229
|
+
private retryWithForcedTurnDiscovery;
|
|
1230
|
+
/**
|
|
1231
|
+
* If waitForMediaConnectionConnected() fails when we haven't done turn discovery then we
|
|
1232
|
+
* attempt to establish a media connection again, but this time using turn discovery. If we
|
|
1233
|
+
* used turn discovery on the first pass we do not attempt connection again.
|
|
1234
|
+
*
|
|
1235
|
+
* @private
|
|
1236
|
+
* @param {Error} error
|
|
1237
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1238
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1239
|
+
* @returns {Promise<void>}
|
|
1240
|
+
*/
|
|
1241
|
+
private handleWaitForMediaConnectionConnectedError;
|
|
1242
|
+
/**
|
|
1243
|
+
* Does TURN discovery, SDP offer/answer exhange, establishes ICE connection and DTLS handshake.
|
|
1244
|
+
*
|
|
1245
|
+
* @private
|
|
1246
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1247
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1248
|
+
* @param {boolean} [isForced] - let isForced be true to do turn discovery regardless of reachability results
|
|
1249
|
+
* @returns {Promise<void>}
|
|
1250
|
+
*/
|
|
1251
|
+
private establishMediaConnection;
|
|
1252
|
+
/**
|
|
1253
|
+
* Cleans up stats analyzer, peer connection, and turns off listeners
|
|
1254
|
+
*
|
|
1255
|
+
* @private
|
|
1256
|
+
* @returns {Promise<void>}
|
|
1257
|
+
*/
|
|
1258
|
+
private cleanUpOnAddMediaFailure;
|
|
1259
|
+
/**
|
|
1260
|
+
* Sends stats report, closes peer connection and cleans up any media connection
|
|
1261
|
+
* related things before trying to establish media connection again with turn server
|
|
1262
|
+
*
|
|
1263
|
+
* @private
|
|
1264
|
+
* @returns {Promise<void>}
|
|
1265
|
+
*/
|
|
1266
|
+
private cleanUpBeforeRetryWithTurnServer;
|
|
1267
|
+
/**
|
|
1268
|
+
* Creates a media connection to the server. Media connection is required for sending or receiving any audio/video.
|
|
1269
|
+
*
|
|
1270
|
+
* @param {AddMediaOptions} options
|
|
1271
|
+
* @returns {Promise<void>}
|
|
1188
1272
|
* @public
|
|
1189
1273
|
* @memberof Meeting
|
|
1190
1274
|
*/
|
|
1191
|
-
addMedia(options?:
|
|
1275
|
+
addMedia(options?: AddMediaOptions): Promise<void>;
|
|
1192
1276
|
/**
|
|
1193
1277
|
* Informs if the peer connection is in a state that can be updated with updateMedia (audio/video/share)
|
|
1194
1278
|
* @returns {Boolean}
|
|
1195
1279
|
*/
|
|
1196
1280
|
canUpdateMedia(): boolean;
|
|
1281
|
+
/**
|
|
1282
|
+
* media failed, so collect a stats report from webrtc using the wcme connection to grab the rtc stats report
|
|
1283
|
+
* send a webrtc telemetry dump to the configured server using the internal media core check metrics configured callback
|
|
1284
|
+
* @param {String} callFrom - the function calling this function, optional.
|
|
1285
|
+
* @returns {Promise<void>}
|
|
1286
|
+
*/
|
|
1287
|
+
private forceSendStatsReport;
|
|
1197
1288
|
/**
|
|
1198
1289
|
* Enqueues a media update operation.
|
|
1199
1290
|
* @param {String} mediaUpdateType one of MEDIA_UPDATE_TYPE values
|
|
@@ -1219,94 +1310,26 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1219
1310
|
*/
|
|
1220
1311
|
processNextQueuedMediaUpdate: () => void;
|
|
1221
1312
|
/**
|
|
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()
|
|
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()
|
|
1313
|
+
* Updates the media connection - it allows to enable/disable all audio/video/share in the meeting.
|
|
1314
|
+
* This does not affect the published tracks, so for example if a microphone track is published and
|
|
1315
|
+
* updateMedia({audioEnabled: false}) is called, the audio will not be sent or received anymore,
|
|
1316
|
+
* but the track's "published" state is not changed and when updateMedia({audioEnabled: true}) is called,
|
|
1317
|
+
* the sending of the audio from the same track will resume.
|
|
1286
1318
|
*
|
|
1287
1319
|
* @param {Object} options
|
|
1288
|
-
* @param {boolean} options.
|
|
1289
|
-
* @param {boolean} options.
|
|
1320
|
+
* @param {boolean} options.audioEnabled [optional] enables/disables receiving and sending of main audio in the meeting
|
|
1321
|
+
* @param {boolean} options.videoEnabled [optional] enables/disables receiving and sending of main video in the meeting
|
|
1322
|
+
* @param {boolean} options.shareEnabled [optional] enables/disables receiving and sending of screen share in the meeting
|
|
1290
1323
|
* @returns {Promise}
|
|
1291
1324
|
* @public
|
|
1292
1325
|
* @memberof Meeting
|
|
1293
1326
|
*/
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
}):
|
|
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;
|
|
1327
|
+
updateMedia(options: {
|
|
1328
|
+
audioEnabled?: boolean;
|
|
1329
|
+
videoEnabled?: boolean;
|
|
1330
|
+
shareAudioEnabled?: boolean;
|
|
1331
|
+
shareVideoEnabled?: boolean;
|
|
1332
|
+
}): Promise<void>;
|
|
1310
1333
|
/**
|
|
1311
1334
|
* Acknowledge the meeting, outgoing or incoming
|
|
1312
1335
|
* @param {String} type
|
|
@@ -1314,7 +1337,11 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1314
1337
|
* @public
|
|
1315
1338
|
* @memberof Meeting
|
|
1316
1339
|
*/
|
|
1317
|
-
acknowledge(type: string):
|
|
1340
|
+
acknowledge(type: string): Promise<{
|
|
1341
|
+
response: any;
|
|
1342
|
+
}> | Promise<{
|
|
1343
|
+
message: string;
|
|
1344
|
+
}>;
|
|
1318
1345
|
/**
|
|
1319
1346
|
* Decline this meeting
|
|
1320
1347
|
* @param {String} reason
|
|
@@ -1324,15 +1351,45 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1324
1351
|
*/
|
|
1325
1352
|
decline(reason: string): any;
|
|
1326
1353
|
/**
|
|
1327
|
-
*
|
|
1354
|
+
* Returns a promise that will resolve to fetch options for leaving a meeting.
|
|
1355
|
+
*
|
|
1356
|
+
* This is to support quickly submitting a leave request when the browser/tab is closing.
|
|
1357
|
+
* Calling meeting.leave will not work because there are some async steps that will
|
|
1358
|
+
* not complete before the browser is closed. Instead, we pre-gather all the
|
|
1359
|
+
* information/options needed for the request(s), and then simply and quickly
|
|
1360
|
+
* fire the fetch(es) when pagehide is triggered.
|
|
1361
|
+
*
|
|
1362
|
+
* We must use fetch instead of request because fetch has a keepalive option that
|
|
1363
|
+
* allows the request it to outlive the page.
|
|
1364
|
+
*
|
|
1365
|
+
* Note: the $timings values will be wrong, but setRequestTimingsAndFetch() will
|
|
1366
|
+
* properly adjust them before submitting.
|
|
1367
|
+
*
|
|
1368
|
+
* @public
|
|
1328
1369
|
* @param {Object} options leave options
|
|
1329
1370
|
* @param {String} options.resourceId the device with which to leave from, empty if just the computer
|
|
1371
|
+
* @param {any} options.reason the reason for leaving
|
|
1372
|
+
* @returns {Promise} resolves to options to be used with fetch
|
|
1373
|
+
*/
|
|
1374
|
+
buildLeaveFetchRequestOptions(options?: {
|
|
1375
|
+
resourceId?: string;
|
|
1376
|
+
reason?: any;
|
|
1377
|
+
}): any;
|
|
1378
|
+
/**
|
|
1379
|
+
* Leave the current meeting
|
|
1380
|
+
* @param {Object} options - leave options
|
|
1381
|
+
* @param {String} [options.resourceId] - the device with which to leave from, empty if just the computer
|
|
1382
|
+
* @param {String} [options.clientEventLeaveReason] - the leaveReason to include in the Call Analyzer event.
|
|
1383
|
+
* Must be one of: 'paired-leave' | 'one-to-one' | 'ended-by-locus' (defaults to no reason)
|
|
1384
|
+
* https://sqbu-github.cisco.com/WebExSquared/event-dictionary/blob/main/diagnostic-events.raml#L796
|
|
1385
|
+
* @param {String} [options.reason] - only used for logging
|
|
1330
1386
|
* @returns {Promise}
|
|
1331
1387
|
* @public
|
|
1332
1388
|
* @memberof Meeting
|
|
1333
1389
|
*/
|
|
1334
1390
|
leave(options?: {
|
|
1335
1391
|
resourceId?: string;
|
|
1392
|
+
clientEventLeaveReason?: ClientEventLeaveReason;
|
|
1336
1393
|
reason?: any;
|
|
1337
1394
|
}): any;
|
|
1338
1395
|
/**
|
|
@@ -1360,12 +1417,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1360
1417
|
*/
|
|
1361
1418
|
private requestScreenShareFloor;
|
|
1362
1419
|
/**
|
|
1363
|
-
*
|
|
1364
|
-
*
|
|
1365
|
-
*
|
|
1366
|
-
* @
|
|
1420
|
+
* Requests screen share floor if such request is pending.
|
|
1421
|
+
* It should be called whenever meeting state changes to JOINED
|
|
1422
|
+
*
|
|
1423
|
+
* @returns {void}
|
|
1367
1424
|
*/
|
|
1368
|
-
|
|
1425
|
+
private requestScreenShareFloorIfPending;
|
|
1369
1426
|
/**
|
|
1370
1427
|
* Sends a request to Locus to release the screen share floor.
|
|
1371
1428
|
* @returns {Promise} see #meetingRequest.changeMeetingFloor
|
|
@@ -1396,6 +1453,16 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1396
1453
|
* @memberof Meeting
|
|
1397
1454
|
*/
|
|
1398
1455
|
setDisallowUnmute(enabled: boolean): Promise<any>;
|
|
1456
|
+
/**
|
|
1457
|
+
* set the mute all flag for participants if you're the host
|
|
1458
|
+
* @returns {Promise}
|
|
1459
|
+
* @param {boolean} mutedEnabled
|
|
1460
|
+
* @param {boolean} disallowUnmuteEnabled
|
|
1461
|
+
* @param {boolean} muteOnEntryEnabled
|
|
1462
|
+
* @public
|
|
1463
|
+
* @memberof Meeting
|
|
1464
|
+
*/
|
|
1465
|
+
setMuteAll(mutedEnabled: boolean, disallowUnmuteEnabled: boolean, muteOnEntryEnabled: boolean): Promise<any>;
|
|
1399
1466
|
/**
|
|
1400
1467
|
* End the recording of this meeting
|
|
1401
1468
|
* @returns {Promise}
|
|
@@ -1446,7 +1513,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1446
1513
|
* @public
|
|
1447
1514
|
* @memberof Meeting
|
|
1448
1515
|
*/
|
|
1449
|
-
sendDTMF(tones: string): any
|
|
1516
|
+
sendDTMF(tones: string): Promise<any>;
|
|
1450
1517
|
/**
|
|
1451
1518
|
* Sends request to change layout type for the current meeting for the specific participant/device only
|
|
1452
1519
|
* @param {String} [layoutType] a layout type that should be available in meeting constants {@link #layout_types}
|
|
@@ -1471,53 +1538,41 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1471
1538
|
height: number;
|
|
1472
1539
|
};
|
|
1473
1540
|
}): 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
1541
|
/**
|
|
1481
1542
|
* Sets the quality level of the remote incoming media
|
|
1482
1543
|
* @param {String} level {LOW|MEDIUM|HIGH}
|
|
1483
1544
|
* @returns {Promise}
|
|
1484
1545
|
*/
|
|
1485
|
-
setRemoteQualityLevel(level: string):
|
|
1546
|
+
setRemoteQualityLevel(level: string): Promise<void>;
|
|
1486
1547
|
/**
|
|
1487
|
-
*
|
|
1488
|
-
* @
|
|
1489
|
-
* @
|
|
1490
|
-
* @
|
|
1548
|
+
* Functionality for when a share audio is ended.
|
|
1549
|
+
* @private
|
|
1550
|
+
* @memberof Meeting
|
|
1551
|
+
* @returns {undefined}
|
|
1491
1552
|
*/
|
|
1492
|
-
|
|
1553
|
+
private handleShareAudioStreamEnded;
|
|
1493
1554
|
/**
|
|
1494
|
-
*
|
|
1495
|
-
*
|
|
1496
|
-
*
|
|
1497
|
-
* @param {
|
|
1498
|
-
* @
|
|
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}
|
|
1555
|
+
* Functionality for when a share video is muted or unmuted.
|
|
1556
|
+
* @private
|
|
1557
|
+
* @memberof Meeting
|
|
1558
|
+
* @param {boolean} muted
|
|
1559
|
+
* @returns {undefined}
|
|
1505
1560
|
*/
|
|
1506
|
-
|
|
1507
|
-
sendAudio: boolean;
|
|
1508
|
-
sendShare: boolean;
|
|
1509
|
-
sharePreferences: {
|
|
1510
|
-
shareConstraints: MediaTrackConstraints;
|
|
1511
|
-
};
|
|
1512
|
-
}): any;
|
|
1561
|
+
private handleShareVideoStreamMuteStateChange;
|
|
1513
1562
|
/**
|
|
1514
|
-
* Functionality for when a share is ended.
|
|
1563
|
+
* Functionality for when a share video is ended.
|
|
1515
1564
|
* @private
|
|
1516
1565
|
* @memberof Meeting
|
|
1517
|
-
* @param {MediaStream} localShare
|
|
1518
1566
|
* @returns {undefined}
|
|
1519
1567
|
*/
|
|
1520
|
-
private
|
|
1568
|
+
private handleShareVideoStreamEnded;
|
|
1569
|
+
/**
|
|
1570
|
+
* Emits meeting:stoppedSharingLocal
|
|
1571
|
+
* @private
|
|
1572
|
+
* @returns {undefined}
|
|
1573
|
+
* @memberof Meeting
|
|
1574
|
+
*/
|
|
1575
|
+
private triggerStoppedSharing;
|
|
1521
1576
|
/**
|
|
1522
1577
|
* Emits the 'network:quality' event
|
|
1523
1578
|
* 1 indicates an acceptable uplink network.
|
|
@@ -1532,92 +1587,16 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1532
1587
|
private sendNetworkQualityEvent;
|
|
1533
1588
|
/**
|
|
1534
1589
|
* Handle logging the media
|
|
1535
|
-
* @param {Object}
|
|
1536
|
-
* @param {Object} videoTrack The video track
|
|
1590
|
+
* @param {Object} mediaProperties
|
|
1537
1591
|
* @private
|
|
1538
1592
|
* @returns {undefined}
|
|
1539
1593
|
*/
|
|
1540
1594
|
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
1595
|
/**
|
|
1612
1596
|
*
|
|
1613
|
-
* @returns {string}
|
|
1597
|
+
* @returns {string} one of 'attendee','host','cohost', returns the user type of the current user
|
|
1614
1598
|
*/
|
|
1615
|
-
|
|
1616
|
-
/**
|
|
1617
|
-
*
|
|
1618
|
-
* @returns {string} duration between call initiate and successful locus join (even if it is in lobby)
|
|
1619
|
-
*/
|
|
1620
|
-
getTotalJmt(): number;
|
|
1599
|
+
getCurUserType(): "host" | "cohost" | "attendee";
|
|
1621
1600
|
/**
|
|
1622
1601
|
* End the current meeting for all
|
|
1623
1602
|
* @returns {Promise}
|
|
@@ -1632,35 +1611,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1632
1611
|
* @memberof Meeting
|
|
1633
1612
|
*/
|
|
1634
1613
|
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
1614
|
/**
|
|
1665
1615
|
* starts keepAlives being sent
|
|
1666
1616
|
* @returns {void}
|
|
@@ -1693,7 +1643,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1693
1643
|
* @public
|
|
1694
1644
|
* @memberof Meeting
|
|
1695
1645
|
*/
|
|
1696
|
-
toggleReactions(enable: boolean): any
|
|
1646
|
+
toggleReactions(enable: boolean): Promise<any>;
|
|
1697
1647
|
/**
|
|
1698
1648
|
* Throws if we don't have a media connection created
|
|
1699
1649
|
*
|
|
@@ -1701,24 +1651,68 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1701
1651
|
*/
|
|
1702
1652
|
private checkMediaConnection;
|
|
1703
1653
|
/**
|
|
1704
|
-
*
|
|
1654
|
+
* Method to enable or disable the 'Music mode' effect on audio stream
|
|
1705
1655
|
*
|
|
1706
|
-
* @param {
|
|
1656
|
+
* @param {boolean} shouldEnableMusicMode
|
|
1707
1657
|
* @returns {Promise}
|
|
1708
1658
|
*/
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1659
|
+
enableMusicMode(shouldEnableMusicMode: boolean): Promise<void>;
|
|
1660
|
+
/** Updates the tracks being sent on the transcoded media connection
|
|
1661
|
+
*
|
|
1662
|
+
* @returns {Promise<void>}
|
|
1663
|
+
*/
|
|
1664
|
+
private updateTranscodedMediaConnection;
|
|
1665
|
+
/**
|
|
1666
|
+
* Publishes a stream.
|
|
1667
|
+
*
|
|
1668
|
+
* @param {MediaType} mediaType of the stream
|
|
1669
|
+
* @param {LocalStream} stream to publish
|
|
1670
|
+
* @returns {Promise}
|
|
1671
|
+
*/
|
|
1672
|
+
private publishStream;
|
|
1673
|
+
/**
|
|
1674
|
+
* Un-publishes a stream.
|
|
1675
|
+
*
|
|
1676
|
+
* @param {MediaType} mediaType of the stream
|
|
1677
|
+
* @param {LocalStream} stream to unpublish
|
|
1678
|
+
* @returns {Promise}
|
|
1679
|
+
*/
|
|
1680
|
+
private unpublishStream;
|
|
1681
|
+
/**
|
|
1682
|
+
* Publishes specified local streams in the meeting
|
|
1683
|
+
*
|
|
1684
|
+
* @param {Object} streams
|
|
1685
|
+
* @returns {Promise}
|
|
1686
|
+
*/
|
|
1687
|
+
publishStreams(streams: LocalStreams): Promise<void>;
|
|
1717
1688
|
/**
|
|
1718
|
-
* Un-publishes specified local
|
|
1689
|
+
* Un-publishes specified local streams in the meeting
|
|
1719
1690
|
*
|
|
1720
|
-
* @param {Array<
|
|
1691
|
+
* @param {Array<LocalStream>} streams
|
|
1721
1692
|
* @returns {Promise}
|
|
1722
1693
|
*/
|
|
1723
|
-
|
|
1694
|
+
unpublishStreams(streams: LocalStream[]): Promise<void>;
|
|
1695
|
+
/**
|
|
1696
|
+
* Gets permission token expiry information including timeLeft, expiryTime, currentTime
|
|
1697
|
+
* (from the time the function has been fired)
|
|
1698
|
+
*
|
|
1699
|
+
* @returns {object} permissionTokenExpiryInfo
|
|
1700
|
+
* @returns {number} permissionTokenExpiryInfo.timeLeft The time left for token to expire
|
|
1701
|
+
* @returns {number} permissionTokenExpiryInfo.expiryTime The expiry time of permission token from the server
|
|
1702
|
+
* @returns {number} permissionTokenExpiryInfo.currentTime The current time of the local machine
|
|
1703
|
+
*/
|
|
1704
|
+
getPermissionTokenExpiryInfo(): {
|
|
1705
|
+
timeLeft: number;
|
|
1706
|
+
expiryTime: number;
|
|
1707
|
+
currentTime: number;
|
|
1708
|
+
};
|
|
1709
|
+
/**
|
|
1710
|
+
* Check if there is enough time left till the permission token expires
|
|
1711
|
+
* If not - refresh the permission token
|
|
1712
|
+
*
|
|
1713
|
+
* @param {number} threshold - time in seconds
|
|
1714
|
+
* @param {string} reason - reason for refreshing the permission token
|
|
1715
|
+
* @returns {Promise<void>}
|
|
1716
|
+
*/
|
|
1717
|
+
checkAndRefreshPermissionToken(threshold: number, reason: string): Promise<void>;
|
|
1724
1718
|
}
|