@webex/plugin-meetings 3.0.0-beta.36 → 3.0.0-beta.360
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -8
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +342 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +94 -15
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +671 -81
- 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 +226 -33
- 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 +117 -2
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.js +15 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/locusRetry.js +93 -0
- package/dist/interceptors/locusRetry.js.map +1 -0
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +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 -101
- 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 +3938 -2803
- 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 -136
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +166 -152
- 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 +478 -118
- 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 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -446
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +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 +269 -390
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +6 -4
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- package/dist/reconnection-manager/index.js +217 -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 +51 -28
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +48 -64
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +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 +182 -215
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +35 -28
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +42 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +117 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/utils.d.ts +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 +191 -31
- 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/interceptors/index.d.ts +2 -0
- package/dist/types/interceptors/locusRetry.d.ts +27 -0
- package/dist/types/interpretation/collection.d.ts +5 -0
- package/dist/types/interpretation/index.d.ts +5 -0
- package/dist/types/interpretation/siLanguage.d.ts +5 -0
- package/dist/types/locus-info/index.d.ts +57 -4
- package/dist/types/locus-info/parser.d.ts +66 -6
- package/dist/types/media/index.d.ts +2 -0
- package/dist/types/media/properties.d.ts +34 -49
- package/dist/types/mediaQualityMetrics/config.d.ts +0 -128
- package/dist/types/meeting/in-meeting-actions.d.ts +86 -2
- package/dist/types/meeting/index.d.ts +557 -496
- 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 +62 -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 +112 -20
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/member/index.d.ts +14 -0
- package/dist/types/member/types.d.ts +32 -0
- package/dist/types/members/collection.d.ts +5 -0
- package/dist/types/members/index.d.ts +35 -2
- package/dist/types/members/request.d.ts +73 -9
- package/dist/types/members/types.d.ts +25 -0
- package/dist/types/members/util.d.ts +214 -1
- package/dist/types/metrics/constants.d.ts +15 -0
- 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 +3 -1
- package/dist/types/reachability/util.d.ts +8 -0
- package/dist/types/reconnection-manager/index.d.ts +19 -0
- package/dist/types/recording-controller/index.d.ts +15 -1
- package/dist/types/recording-controller/util.d.ts +5 -4
- package/dist/types/roap/index.d.ts +2 -1
- package/dist/types/roap/request.d.ts +9 -8
- 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 +35 -11
- package/src/breakouts/breakout.ts +67 -9
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +558 -59
- 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 +214 -21
- package/src/controls-options-manager/enums.ts +12 -0
- package/src/controls-options-manager/index.ts +116 -21
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +294 -14
- package/src/index.ts +44 -0
- package/src/interceptors/index.ts +3 -0
- package/src/interceptors/locusRetry.ts +67 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +108 -0
- package/src/locus-info/index.ts +414 -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 +97 -107
- package/src/media/properties.ts +88 -117
- package/src/mediaQualityMetrics/config.ts +0 -135
- package/src/meeting/in-meeting-actions.ts +171 -3
- package/src/meeting/index.ts +3253 -2408
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +223 -136
- package/src/meeting/request.ts +142 -120
- package/src/meeting/util.ts +588 -395
- 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 +497 -126
- 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 -0
- 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 +229 -340
- package/src/reachability/request.ts +8 -4
- 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 +52 -23
- package/src/roap/request.ts +48 -67
- 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 +220 -291
- package/src/statsAnalyzer/mqaUtil.ts +43 -44
- 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/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1349 -114
- 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/interceptors/locusRetry.ts +131 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +316 -43
- package/test/unit/spec/locus-info/index.js +1352 -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 +118 -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 +6686 -2212
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +402 -212
- package/test/unit/spec/meeting/request.js +459 -52
- package/test/unit/spec/meeting/utils.js +680 -67
- 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 +1393 -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 +477 -14
- package/test/unit/spec/reachability/request.js +3 -1
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +118 -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 +180 -83
- package/test/unit/spec/roap/request.ts +100 -62
- 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 +621 -12
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -57
- package/dist/metrics/config.js +0 -289
- package/dist/metrics/config.js.map +0 -1
- package/dist/types/metrics/config.d.ts +0 -169
- package/src/index.js +0 -16
- package/src/metrics/config.ts +0 -485
|
@@ -1,26 +1,63 @@
|
|
|
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
|
-
|
|
23
|
-
|
|
47
|
+
TRANSCODED_MEDIA_CONNECTION: string;
|
|
48
|
+
SHARE_FLOOR_REQUEST: string;
|
|
49
|
+
UPDATE_MEDIA: string;
|
|
50
|
+
};
|
|
51
|
+
export declare enum ScreenShareFloorStatus {
|
|
52
|
+
PENDING = "floor_request_pending",
|
|
53
|
+
GRANTED = "floor_request_granted",
|
|
54
|
+
RELEASED = "floor_released"
|
|
55
|
+
}
|
|
56
|
+
type FetchMeetingInfoParams = {
|
|
57
|
+
password?: string;
|
|
58
|
+
captchaCode?: string;
|
|
59
|
+
extraParams?: Record<string, any>;
|
|
60
|
+
sendCAevents?: boolean;
|
|
24
61
|
};
|
|
25
62
|
/**
|
|
26
63
|
* MediaDirection
|
|
@@ -33,15 +70,6 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
33
70
|
* @property {boolean} receiveShare
|
|
34
71
|
* @property {boolean} isSharing
|
|
35
72
|
*/
|
|
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
73
|
/**
|
|
46
74
|
* SharePreferences
|
|
47
75
|
* @typedef {Object} SharePreferences
|
|
@@ -55,18 +83,10 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
55
83
|
* @property {String} [pin]
|
|
56
84
|
* @property {Boolean} [moderator]
|
|
57
85
|
* @property {String|Object} [meetingQuality]
|
|
58
|
-
* @property {String} [meetingQuality.local]
|
|
59
86
|
* @property {String} [meetingQuality.remote]
|
|
60
87
|
* @property {Boolean} [rejoin]
|
|
61
88
|
* @property {Boolean} [enableMultistream]
|
|
62
89
|
*/
|
|
63
|
-
/**
|
|
64
|
-
* SendOptions
|
|
65
|
-
* @typedef {Object} SendOptions
|
|
66
|
-
* @property {Boolean} sendAudio
|
|
67
|
-
* @property {Boolean} sendVideo
|
|
68
|
-
* @property {Boolean} sendShare
|
|
69
|
-
*/
|
|
70
90
|
/**
|
|
71
91
|
* Recording
|
|
72
92
|
* @typedef {Object} Recording
|
|
@@ -148,7 +168,11 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
148
168
|
* @instance
|
|
149
169
|
* @type {Object}
|
|
150
170
|
* @property {Boolean} memberId id of the meeting member that started screen share
|
|
171
|
+
* @property {String} url of this content share
|
|
172
|
+
* @property {String} shareInstanceId of this content share
|
|
173
|
+
* @property {Object} annotation Info of this content share
|
|
151
174
|
* @memberof Meeting
|
|
175
|
+
*
|
|
152
176
|
*/
|
|
153
177
|
/**
|
|
154
178
|
* Meeting Stopped Sharing Remote Event
|
|
@@ -285,8 +309,11 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
285
309
|
attrs: any;
|
|
286
310
|
audio: any;
|
|
287
311
|
breakouts: any;
|
|
312
|
+
simultaneousInterpretation: any;
|
|
313
|
+
annotation: any;
|
|
314
|
+
webinar: any;
|
|
288
315
|
conversationUrl: string;
|
|
289
|
-
|
|
316
|
+
callStateForMetrics: CallStateForMetrics;
|
|
290
317
|
destination: string;
|
|
291
318
|
destinationType: string;
|
|
292
319
|
deviceUrl: string;
|
|
@@ -297,7 +324,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
297
324
|
mediaConnections: any[];
|
|
298
325
|
mediaId?: string;
|
|
299
326
|
meetingFiniteStateMachine: any;
|
|
300
|
-
meetingInfo:
|
|
327
|
+
meetingInfo: any;
|
|
301
328
|
meetingRequest: MeetingRequest;
|
|
302
329
|
members: Members;
|
|
303
330
|
options: object;
|
|
@@ -309,11 +336,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
309
336
|
resource: string;
|
|
310
337
|
roap: Roap;
|
|
311
338
|
roapSeq: number;
|
|
339
|
+
selfUrl?: string;
|
|
312
340
|
sipUri: string;
|
|
313
341
|
type: string;
|
|
314
342
|
userId: string;
|
|
315
343
|
video: any;
|
|
316
344
|
callEvents: any[];
|
|
345
|
+
datachannelUrl: string;
|
|
317
346
|
deferJoin: Promise<any>;
|
|
318
347
|
dialInDeviceStatus: string;
|
|
319
348
|
dialInUrl: string;
|
|
@@ -326,10 +355,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
326
355
|
inMeetingActions: InMeetingActions;
|
|
327
356
|
isLocalShareLive: boolean;
|
|
328
357
|
isRoapInProgress: boolean;
|
|
329
|
-
isSharing: boolean;
|
|
330
358
|
keepAliveTimerId: NodeJS.Timeout;
|
|
331
359
|
lastVideoLayoutInfo: any;
|
|
332
360
|
locusInfo: any;
|
|
361
|
+
locusMediaRequest?: LocusMediaRequest;
|
|
333
362
|
mediaProperties: MediaProperties;
|
|
334
363
|
mediaRequestManagers: {
|
|
335
364
|
audio: MediaRequestManager;
|
|
@@ -338,8 +367,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
338
367
|
screenShareVideo: MediaRequestManager;
|
|
339
368
|
};
|
|
340
369
|
meetingInfoFailureReason: string;
|
|
370
|
+
meetingInfoFailureCode?: number;
|
|
371
|
+
meetingInfoExtraParams?: Record<string, any>;
|
|
341
372
|
networkQualityMonitor: NetworkQualityMonitor;
|
|
342
|
-
networkStatus
|
|
373
|
+
networkStatus?: NETWORK_STATUS;
|
|
343
374
|
passwordStatus: string;
|
|
344
375
|
queuedMediaUpdates: any[];
|
|
345
376
|
recording: any;
|
|
@@ -348,16 +379,20 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
348
379
|
controlsOptionsManager: ControlsOptionsManager;
|
|
349
380
|
requiredCaptcha: any;
|
|
350
381
|
receiveSlotManager: ReceiveSlotManager;
|
|
382
|
+
selfUserPolicies: any;
|
|
383
|
+
enforceVBGImagesURL: string;
|
|
351
384
|
shareStatus: string;
|
|
385
|
+
screenShareFloorState: ScreenShareFloorStatus;
|
|
352
386
|
statsAnalyzer: StatsAnalyzer;
|
|
353
387
|
transcription: Transcription;
|
|
354
388
|
updateMediaConnections: (mediaConnections: any[]) => void;
|
|
355
|
-
|
|
389
|
+
userDisplayHints: any;
|
|
390
|
+
endCallInitJoinReq: any;
|
|
356
391
|
endJoinReqResp: any;
|
|
357
392
|
endLocalSDPGenRemoteSDPRecvDelay: any;
|
|
358
393
|
joinedWith: any;
|
|
359
394
|
locusId: any;
|
|
360
|
-
|
|
395
|
+
startCallInitJoinReq: any;
|
|
361
396
|
startJoinReqResp: any;
|
|
362
397
|
startLocalSDPGenRemoteSDPRecvDelay: any;
|
|
363
398
|
wirelessShare: any;
|
|
@@ -365,12 +400,27 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
365
400
|
meetingJoinUrl: any;
|
|
366
401
|
meetingNumber: any;
|
|
367
402
|
meetingState: any;
|
|
368
|
-
permissionToken:
|
|
403
|
+
permissionToken: string;
|
|
404
|
+
permissionTokenPayload: any;
|
|
405
|
+
permissionTokenReceivedLocalTime: number;
|
|
369
406
|
resourceId: any;
|
|
370
407
|
resourceUrl: string;
|
|
371
408
|
selfId: string;
|
|
372
409
|
state: any;
|
|
410
|
+
localAudioStreamMuteStateHandler: (muted: boolean) => void;
|
|
411
|
+
localVideoStreamMuteStateHandler: (muted: boolean) => void;
|
|
412
|
+
localOutputTrackChangeHandler: () => void;
|
|
413
|
+
roles: any[];
|
|
414
|
+
environment: string;
|
|
373
415
|
namespace: string;
|
|
416
|
+
allowMediaInLobby: boolean;
|
|
417
|
+
turnDiscoverySkippedReason: string;
|
|
418
|
+
turnServerUsed: boolean;
|
|
419
|
+
private retriedWithTurnServer;
|
|
420
|
+
private sendSlotManager;
|
|
421
|
+
private deferSDPAnswer?;
|
|
422
|
+
private sdpResponseTimer?;
|
|
423
|
+
private hasMediaConnectionConnectedAtLeastOnce;
|
|
374
424
|
/**
|
|
375
425
|
* @param {Object} attrs
|
|
376
426
|
* @param {Object} options
|
|
@@ -378,29 +428,91 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
378
428
|
* @memberof Meeting
|
|
379
429
|
*/
|
|
380
430
|
constructor(attrs: any, options: object);
|
|
431
|
+
/**
|
|
432
|
+
* returns meeting is joined
|
|
433
|
+
* @private
|
|
434
|
+
* @memberof Meeting
|
|
435
|
+
* @returns {Boolean}
|
|
436
|
+
*/
|
|
437
|
+
private isJoined;
|
|
438
|
+
/**
|
|
439
|
+
* Returns whether this meeting is a Locus CALL
|
|
440
|
+
* @returns {Boolean}
|
|
441
|
+
*/
|
|
442
|
+
isLocusCall(): boolean;
|
|
443
|
+
/**
|
|
444
|
+
* Getter - Returns callStateForMetrics.correlationId
|
|
445
|
+
* @returns {string}
|
|
446
|
+
*/
|
|
447
|
+
get correlationId(): string;
|
|
448
|
+
/**
|
|
449
|
+
* Setter - sets callStateForMetrics.correlationId
|
|
450
|
+
* @param {string} correlationId
|
|
451
|
+
*/
|
|
452
|
+
set correlationId(correlationId: string);
|
|
453
|
+
/**
|
|
454
|
+
* Set meeting info and trigger `MEETING_INFO_AVAILABLE` event
|
|
455
|
+
* @param {any} info
|
|
456
|
+
* @param {string} [meetingLookupUrl] Lookup url, defined when the meeting info fetched
|
|
457
|
+
* @returns {void}
|
|
458
|
+
*/
|
|
459
|
+
private setMeetingInfo;
|
|
460
|
+
/**
|
|
461
|
+
* Add pre-fetched meeting info
|
|
462
|
+
*
|
|
463
|
+
* The passed meeting info should be be complete, e.g.: fetched after password or captcha provided
|
|
464
|
+
*
|
|
465
|
+
* @param {Object} meetingInfo - Complete meeting info
|
|
466
|
+
* @param {FetchMeetingInfoParams} fetchParams - Fetch parameters for validation
|
|
467
|
+
* @param {String|undefined} meetingLookupUrl - Lookup url, defined when the meeting info fetched
|
|
468
|
+
* @returns {Promise<void>}
|
|
469
|
+
*/
|
|
470
|
+
injectMeetingInfo(meetingInfo: any, fetchParams: FetchMeetingInfoParams, meetingLookupUrl: string | undefined): Promise<void>;
|
|
471
|
+
/**
|
|
472
|
+
* Validate fetch parameters and clear the fetchMeetingInfoTimeout timeout
|
|
473
|
+
*
|
|
474
|
+
* @param {FetchMeetingInfoParams} fetchParams - fetch parameters for validation
|
|
475
|
+
* @param {String} caller - Name of the caller for logging
|
|
476
|
+
*
|
|
477
|
+
* @returns {Promise<void>}
|
|
478
|
+
* @private
|
|
479
|
+
*/
|
|
480
|
+
private prepForFetchMeetingInfo;
|
|
481
|
+
/**
|
|
482
|
+
* Internal method for fetching meeting info
|
|
483
|
+
*
|
|
484
|
+
* @returns {Promise}
|
|
485
|
+
*/
|
|
486
|
+
private fetchMeetingInfoInternal;
|
|
487
|
+
/**
|
|
488
|
+
* Refreshes the meeting info permission token (it's required for joining meetings)
|
|
489
|
+
*
|
|
490
|
+
* @param {string} [reason] used for metrics and logging purposes (optional)
|
|
491
|
+
* @returns {Promise}
|
|
492
|
+
*/
|
|
493
|
+
refreshPermissionToken(reason?: string): Promise<void>;
|
|
381
494
|
/**
|
|
382
495
|
* Fetches meeting information.
|
|
383
496
|
* @param {Object} options
|
|
384
497
|
* @param {String} [options.password] optional
|
|
385
498
|
* @param {String} [options.captchaCode] optional
|
|
499
|
+
* @param {Boolean} [options.sendCAevents] optional - Whether to submit Call Analyzer events or not. Default: false.
|
|
386
500
|
* @public
|
|
387
501
|
* @memberof Meeting
|
|
388
502
|
* @returns {Promise}
|
|
389
503
|
*/
|
|
390
|
-
fetchMeetingInfo(
|
|
391
|
-
password?: string;
|
|
392
|
-
captchaCode?: string;
|
|
393
|
-
}): Promise<void>;
|
|
504
|
+
fetchMeetingInfo(options: FetchMeetingInfoParams): Promise<void>;
|
|
394
505
|
/**
|
|
395
506
|
* Checks if the supplied password/host key is correct. It returns a promise with information whether the
|
|
396
507
|
* password and captcha code were correct or not.
|
|
397
508
|
* @param {String} password - this can be either a password or a host key, can be undefined if only captcha was required
|
|
398
509
|
* @param {String} captchaCode - can be undefined if captcha was not required by the server
|
|
510
|
+
* @param {Boolean} sendCAevents - whether Call Analyzer events should be sent when fetching meeting information
|
|
399
511
|
* @public
|
|
400
512
|
* @memberof Meeting
|
|
401
513
|
* @returns {Promise<{isPasswordValid: boolean, requiredCaptcha: boolean, failureReason: MEETING_INFO_FAILURE_REASON}>}
|
|
402
514
|
*/
|
|
403
|
-
verifyPassword(password: string, captchaCode: string): Promise<{
|
|
515
|
+
verifyPassword(password: string, captchaCode: string, sendCAevents?: boolean): Promise<{
|
|
404
516
|
isPasswordValid: boolean;
|
|
405
517
|
requiredCaptcha: any;
|
|
406
518
|
failureReason: string;
|
|
@@ -417,6 +529,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
417
529
|
* @returns {Promise}
|
|
418
530
|
*/
|
|
419
531
|
refreshCaptcha(): any;
|
|
532
|
+
/**
|
|
533
|
+
* Posts metrics event for this meeting. Allows the app to send Call Analyzer events.
|
|
534
|
+
* @param {String} eventName - Call Analyzer event
|
|
535
|
+
* @public
|
|
536
|
+
* @memberof Meeting
|
|
537
|
+
* @returns {Promise}
|
|
538
|
+
*/
|
|
539
|
+
postMetrics(eventName: ClientEvent['name']): void;
|
|
420
540
|
/**
|
|
421
541
|
* Proxy function for all the listener set ups
|
|
422
542
|
* @returns {undefined}
|
|
@@ -431,6 +551,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
431
551
|
* @memberof Meeting
|
|
432
552
|
*/
|
|
433
553
|
setUpBreakoutsListener(): void;
|
|
554
|
+
/**
|
|
555
|
+
* Set up the listeners for interpretation
|
|
556
|
+
* @returns {undefined}
|
|
557
|
+
* @private
|
|
558
|
+
* @memberof Meeting
|
|
559
|
+
*/
|
|
560
|
+
private setUpInterpretationListener;
|
|
434
561
|
/**
|
|
435
562
|
* Set up the locus info listener for meetings disconnected due to inactivity
|
|
436
563
|
* @returns {undefined}
|
|
@@ -452,50 +579,9 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
452
579
|
* @memberof Meeting
|
|
453
580
|
*/
|
|
454
581
|
private setUpLocusFullStateListener;
|
|
455
|
-
/**
|
|
456
|
-
* get the metrics payload pre
|
|
457
|
-
* @param {Object} options
|
|
458
|
-
* @param {String} options.event
|
|
459
|
-
* @param {String} options.trackingId
|
|
460
|
-
* @param {Object} options.locus
|
|
461
|
-
* @param {Array} options.mediaConnections
|
|
462
|
-
* @param {Object} options.errors
|
|
463
|
-
* @returns {Object}
|
|
464
|
-
* @memberof Meeting
|
|
465
|
-
*/
|
|
466
|
-
getAnalyzerMetricsPrePayload(options: {
|
|
467
|
-
event: string;
|
|
468
|
-
trackingId: string;
|
|
469
|
-
locus: object;
|
|
470
|
-
mediaConnections: Array<any>;
|
|
471
|
-
errors: object;
|
|
472
|
-
} | any): {};
|
|
473
|
-
/**
|
|
474
|
-
* Send the metrics to call-analyzer dashboard
|
|
475
|
-
* @param {Object} options
|
|
476
|
-
* @param {String} options.event
|
|
477
|
-
* @param {String} options.trackingId
|
|
478
|
-
* @param {Object} options.locus
|
|
479
|
-
* @param {Object} options.errors
|
|
480
|
-
* @returns {Promise}
|
|
481
|
-
* @private
|
|
482
|
-
* @memberof Meeting
|
|
483
|
-
*/
|
|
484
|
-
private sendCallAnalyzerMetrics;
|
|
485
|
-
/**
|
|
486
|
-
* Send the metrics to Media Quality Analyzer dashboard
|
|
487
|
-
* @param {Object} options
|
|
488
|
-
* @param {String} options.event
|
|
489
|
-
* @param {String} options.trackingId
|
|
490
|
-
* @param {Object} options.locus
|
|
491
|
-
* @returns {Promise}
|
|
492
|
-
* @private
|
|
493
|
-
* @memberof Meeting
|
|
494
|
-
*/
|
|
495
|
-
private sendMediaQualityAnalyzerMetrics;
|
|
496
582
|
/**
|
|
497
583
|
* sets the network status on meeting object
|
|
498
|
-
* @param {
|
|
584
|
+
* @param {NETWORK_STATUS} networkStatus
|
|
499
585
|
* @private
|
|
500
586
|
* @returns {undefined}
|
|
501
587
|
* @memberof Meeting
|
|
@@ -555,6 +641,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
555
641
|
* @memberof Meeting
|
|
556
642
|
*/
|
|
557
643
|
private setupLocusControlsListener;
|
|
644
|
+
/**
|
|
645
|
+
* Trigger annotation info update event
|
|
646
|
+
@returns {undefined}
|
|
647
|
+
@param {object} contentShare
|
|
648
|
+
@param {object} previousContentShare
|
|
649
|
+
*/
|
|
650
|
+
private triggerAnnotationInfoEvent;
|
|
558
651
|
/**
|
|
559
652
|
* Set up the locus info media shares listener
|
|
560
653
|
* update content and whiteboard sharing id value for members, and updates the member
|
|
@@ -653,13 +746,23 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
653
746
|
phoneNumber: string;
|
|
654
747
|
}): any;
|
|
655
748
|
/**
|
|
656
|
-
* Admit the guest(s) to the call once they are waiting
|
|
749
|
+
* Admit the guest(s) to the call once they are waiting.
|
|
750
|
+
* If the host/cohost is in a breakout session, the locus url
|
|
751
|
+
* of the session must be provided as the authorizingLocusUrl.
|
|
752
|
+
* Regardless of host/cohost location, the locus Id (lid) in
|
|
753
|
+
* the path should be the locus Id of the main, which means the
|
|
754
|
+
* locus url of the api call must be from the main session.
|
|
755
|
+
* If these loucs urls are not provided, the function will do the check.
|
|
657
756
|
* @param {Array} memberIds
|
|
757
|
+
* @param {Object} sessionLocusUrls: {authorizingLocusUrl, mainLocusUrl}
|
|
658
758
|
* @returns {Promise} see #members.admitMembers
|
|
659
759
|
* @public
|
|
660
760
|
* @memberof Meeting
|
|
661
761
|
*/
|
|
662
|
-
admit(memberIds: Array<any
|
|
762
|
+
admit(memberIds: Array<any>, sessionLocusUrls?: {
|
|
763
|
+
authorizingLocusUrl: string;
|
|
764
|
+
mainLocusUrl: string;
|
|
765
|
+
}): any;
|
|
663
766
|
/**
|
|
664
767
|
* Remove the member from the meeting, boot them
|
|
665
768
|
* @param {String} memberId
|
|
@@ -693,80 +796,63 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
693
796
|
* @memberof Meeting
|
|
694
797
|
*/
|
|
695
798
|
getMembers(): Members;
|
|
696
|
-
/**
|
|
697
|
-
* Truthy when a meeting has an audio connection established
|
|
698
|
-
* @returns {Boolean} true if meeting audio is connected otherwise false
|
|
699
|
-
* @public
|
|
700
|
-
* @memberof Meeting
|
|
701
|
-
*/
|
|
702
|
-
isAudioConnected(): boolean;
|
|
703
|
-
/**
|
|
704
|
-
* Convenience function to tell whether a meeting is muted
|
|
705
|
-
* @returns {Boolean} if meeting audio muted or not
|
|
706
|
-
* @public
|
|
707
|
-
* @memberof Meeting
|
|
708
|
-
*/
|
|
709
|
-
isAudioMuted(): any;
|
|
710
|
-
/**
|
|
711
|
-
* Convenience function to tell if the end user last changed the audio state
|
|
712
|
-
* @returns {Boolean} if audio was manipulated by the end user
|
|
713
|
-
* @public
|
|
714
|
-
* @memberof Meeting
|
|
715
|
-
*/
|
|
716
|
-
isAudioSelf(): any;
|
|
717
|
-
/**
|
|
718
|
-
* Truthy when a meeting has a video connection established
|
|
719
|
-
* @returns {Boolean} true if meeting video connected otherwise false
|
|
720
|
-
* @public
|
|
721
|
-
* @memberof Meeting
|
|
722
|
-
*/
|
|
723
|
-
isVideoConnected(): boolean;
|
|
724
|
-
/**
|
|
725
|
-
* Convenience function to tell whether video is muted
|
|
726
|
-
* @returns {Boolean} if meeting video is muted or not
|
|
727
|
-
* @public
|
|
728
|
-
* @memberof Meeting
|
|
729
|
-
*/
|
|
730
|
-
isVideoMuted(): any;
|
|
731
|
-
/**
|
|
732
|
-
* Convenience function to tell whether the end user changed the video state
|
|
733
|
-
* @returns {Boolean} if meeting video is muted or not
|
|
734
|
-
* @public
|
|
735
|
-
* @memberof Meeting
|
|
736
|
-
*/
|
|
737
|
-
isVideoSelf(): any;
|
|
738
799
|
/**
|
|
739
800
|
* Sets the meeting info on the class instance
|
|
740
801
|
* @param {Object} meetingInfo
|
|
741
|
-
* @param {
|
|
742
|
-
* @param {String} meetingInfo.
|
|
743
|
-
* @param {String} meetingInfo.
|
|
744
|
-
* @param {String} meetingInfo.
|
|
745
|
-
* @param {
|
|
802
|
+
* @param {String} meetingInfo.conversationUrl
|
|
803
|
+
* @param {String} meetingInfo.locusUrl
|
|
804
|
+
* @param {String} meetingInfo.sipUri
|
|
805
|
+
* @param {String} [meetingInfo.sipUrl]
|
|
806
|
+
* @param {String} [meetingInfo.sipMeetingUri]
|
|
807
|
+
* @param {String} [meetingInfo.meetingNumber]
|
|
808
|
+
* @param {String} [meetingInfo.meetingJoinUrl]
|
|
809
|
+
* @param {String} [meetingInfo.hostId]
|
|
810
|
+
* @param {String} [meetingInfo.permissionToken]
|
|
811
|
+
* @param {String} [meetingInfo.channel]
|
|
812
|
+
* @param {Object} meetingInfo.owner
|
|
746
813
|
* @param {Object | String} destination locus object with meeting data or destination string (sip url, meeting link, etc)
|
|
814
|
+
* @param {Object | String} errors Meeting info request error
|
|
747
815
|
* @returns {undefined}
|
|
748
816
|
* @private
|
|
749
817
|
* @memberof Meeting
|
|
750
818
|
*/
|
|
751
819
|
parseMeetingInfo(meetingInfo: {
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
820
|
+
conversationUrl: string;
|
|
821
|
+
locusUrl: string;
|
|
822
|
+
sipUri: string;
|
|
823
|
+
owner: object;
|
|
824
|
+
sipUrl?: string;
|
|
825
|
+
sipMeetingUri?: string;
|
|
826
|
+
meetingNumber?: string;
|
|
827
|
+
meetingJoinUrl?: string;
|
|
828
|
+
hostId?: string;
|
|
829
|
+
permissionToken?: string;
|
|
830
|
+
channel?: string;
|
|
831
|
+
}, destination?: object | string | null, errors?: any): void;
|
|
832
|
+
/**
|
|
833
|
+
* Indicates whether policy can be applied
|
|
834
|
+
* @returns {boolean}
|
|
835
|
+
*/
|
|
836
|
+
private arePolicyRestrictionsSupported;
|
|
759
837
|
/**
|
|
760
|
-
*
|
|
761
|
-
* @param {Object} locus
|
|
762
|
-
* @param {String} locus.url
|
|
763
|
-
* @param {Array} locus.participants
|
|
764
|
-
* @param {Object} locus.self
|
|
838
|
+
* Updates the meeting actions (display hints), depends on locus display hints, user policy and app api info
|
|
765
839
|
* @returns {undefined}
|
|
766
840
|
* @private
|
|
767
841
|
* @memberof Meeting
|
|
768
842
|
*/
|
|
769
|
-
private
|
|
843
|
+
private updateMeetingActions;
|
|
844
|
+
/**
|
|
845
|
+
* Sets the self user policies based on the contents of the permission token
|
|
846
|
+
* @returns {void}
|
|
847
|
+
*/
|
|
848
|
+
setSelfUserPolicies(): void;
|
|
849
|
+
/**
|
|
850
|
+
* Sets the permission token payload on the class instance
|
|
851
|
+
*
|
|
852
|
+
* @param {String} permissionToken
|
|
853
|
+
* @returns {void}
|
|
854
|
+
*/
|
|
855
|
+
setPermissionTokenPayload(permissionToken: string): void;
|
|
770
856
|
/**
|
|
771
857
|
* Sets the sip uri on the class instance
|
|
772
858
|
* uses meeting info as precedence
|
|
@@ -789,7 +875,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
789
875
|
* @private
|
|
790
876
|
* @memberof Meeting
|
|
791
877
|
*/
|
|
792
|
-
|
|
878
|
+
setLocus(locus: {
|
|
879
|
+
mediaConnections: Array<any>;
|
|
880
|
+
locusUrl: string;
|
|
881
|
+
locusId: string;
|
|
882
|
+
mediaId: string;
|
|
883
|
+
host: object;
|
|
884
|
+
} | any): void;
|
|
793
885
|
/**
|
|
794
886
|
* Upload logs for the current meeting
|
|
795
887
|
* @param {object} options file name and function name
|
|
@@ -799,19 +891,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
799
891
|
*/
|
|
800
892
|
uploadLogs(options?: object): void;
|
|
801
893
|
/**
|
|
802
|
-
* Removes remote audio and
|
|
803
|
-
* to developers
|
|
804
|
-
* @returns {undefined}
|
|
805
|
-
* @public
|
|
806
|
-
* @memberof Meeting
|
|
807
|
-
* @deprecated after v1.89.3
|
|
808
|
-
*/
|
|
809
|
-
unsetRemoteStream(): void;
|
|
810
|
-
/**
|
|
811
|
-
* Removes remote audio, video and share tracks from class instance's mediaProperties
|
|
894
|
+
* Removes remote audio, video and share streams from class instance's mediaProperties
|
|
812
895
|
* @returns {undefined}
|
|
813
896
|
*/
|
|
814
|
-
|
|
897
|
+
unsetRemoteStreams(): void;
|
|
815
898
|
/**
|
|
816
899
|
* Removes the remote stream on the class instance and triggers an event
|
|
817
900
|
* to developers
|
|
@@ -822,83 +905,45 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
822
905
|
*/
|
|
823
906
|
closeRemoteStream(): void;
|
|
824
907
|
/**
|
|
825
|
-
* Removes the remote
|
|
908
|
+
* Removes the remote streams on the class instance and triggers an event
|
|
826
909
|
* to developers
|
|
827
910
|
* @returns {undefined}
|
|
828
911
|
* @memberof Meeting
|
|
829
912
|
*/
|
|
830
|
-
|
|
831
|
-
/**
|
|
832
|
-
* Emits the 'media:ready' event with a local stream that consists of 1 local audio and 1 local video track
|
|
833
|
-
* @returns {undefined}
|
|
834
|
-
* @private
|
|
835
|
-
* @memberof Meeting
|
|
836
|
-
*/
|
|
837
|
-
private sendLocalMediaReadyEvent;
|
|
838
|
-
/**
|
|
839
|
-
* Sets the local audio track on the class and emits an event to the developer
|
|
840
|
-
* @param {MediaStreamTrack} rawAudioTrack
|
|
841
|
-
* @param {Boolean} emitEvent if true, a media ready event is emitted to the developer
|
|
842
|
-
* @returns {undefined}
|
|
843
|
-
* @private
|
|
844
|
-
* @memberof Meeting
|
|
845
|
-
*/
|
|
846
|
-
private setLocalAudioTrack;
|
|
847
|
-
/**
|
|
848
|
-
* Sets the local video track on the class and emits an event to the developer
|
|
849
|
-
* @param {MediaStreamTrack} rawVideoTrack
|
|
850
|
-
* @param {Boolean} emitEvent if true, a media ready event is emitted to the developer
|
|
851
|
-
* @returns {undefined}
|
|
852
|
-
* @private
|
|
853
|
-
* @memberof Meeting
|
|
854
|
-
*/
|
|
855
|
-
private setLocalVideoTrack;
|
|
856
|
-
/**
|
|
857
|
-
* Sets the local media stream on the class and emits an event to the developer
|
|
858
|
-
* @param {Stream} localStream the local media stream
|
|
859
|
-
* @returns {undefined}
|
|
860
|
-
* @public
|
|
861
|
-
* @memberof Meeting
|
|
862
|
-
*/
|
|
863
|
-
setLocalTracks(localStream: any): void;
|
|
864
|
-
/**
|
|
865
|
-
* Sets the local media stream on the class and emits an event to the developer
|
|
866
|
-
* @param {MediaStreamTrack} rawLocalShareTrack the local share media track
|
|
867
|
-
* @returns {undefined}
|
|
868
|
-
* @public
|
|
869
|
-
* @memberof Meeting
|
|
870
|
-
*/
|
|
871
|
-
setLocalShareTrack(rawLocalShareTrack: MediaStreamTrack | null): void;
|
|
913
|
+
closeRemoteStreams(): Promise<[any, any, any]>;
|
|
872
914
|
/**
|
|
873
|
-
*
|
|
874
|
-
*
|
|
875
|
-
*
|
|
876
|
-
* @
|
|
877
|
-
* @
|
|
915
|
+
* Stores the reference to a new microphone stream, sets up the required event listeners
|
|
916
|
+
* on it, cleans up previous stream, etc.
|
|
917
|
+
*
|
|
918
|
+
* @param {LocalMicrophoneStream | null} localStream local microphone stream
|
|
919
|
+
* @returns {Promise<void>}
|
|
878
920
|
*/
|
|
879
|
-
|
|
921
|
+
private setLocalAudioStream;
|
|
880
922
|
/**
|
|
881
|
-
*
|
|
882
|
-
*
|
|
883
|
-
*
|
|
884
|
-
* @
|
|
885
|
-
* @
|
|
923
|
+
* Stores the reference to a new camera stream, sets up the required event listeners
|
|
924
|
+
* on it, cleans up previous stream, etc.
|
|
925
|
+
*
|
|
926
|
+
* @param {LocalCameraStream | null} localStream local camera stream
|
|
927
|
+
* @returns {Promise<void>}
|
|
886
928
|
*/
|
|
887
|
-
|
|
929
|
+
private setLocalVideoStream;
|
|
888
930
|
/**
|
|
889
|
-
*
|
|
890
|
-
*
|
|
891
|
-
*
|
|
892
|
-
*
|
|
931
|
+
* Stores the reference to a new screen share stream, sets up the required event listeners
|
|
932
|
+
* on it, cleans up previous stream, etc.
|
|
933
|
+
* It also sends the floor grant/release request.
|
|
934
|
+
*
|
|
935
|
+
* @param {LocalDisplayStream | undefined} localDisplayStream local display stream
|
|
936
|
+
* @returns {Promise<void>}
|
|
893
937
|
*/
|
|
894
|
-
|
|
938
|
+
private setLocalShareVideoStream;
|
|
895
939
|
/**
|
|
896
|
-
*
|
|
897
|
-
*
|
|
898
|
-
*
|
|
899
|
-
* @
|
|
940
|
+
* Stores the reference to a new screen share audio stream, sets up the required event listeners
|
|
941
|
+
* on it, cleans up previous stream, etc.
|
|
942
|
+
*
|
|
943
|
+
* @param {LocalSystemAudioStream | undefined} localSystemAudioStream local system audio stream
|
|
944
|
+
* @returns {Promise<void>}
|
|
900
945
|
*/
|
|
901
|
-
|
|
946
|
+
private setLocalShareAudioStream;
|
|
902
947
|
/**
|
|
903
948
|
* sets up listner for mercury event
|
|
904
949
|
* @returns {undefined}
|
|
@@ -924,13 +969,28 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
924
969
|
*/
|
|
925
970
|
unsetPeerConnections(): void;
|
|
926
971
|
/**
|
|
927
|
-
* Convenience method to set the correlation id for the
|
|
928
|
-
* @param {String} id correlation id to set on the
|
|
972
|
+
* Convenience method to set the correlation id for the callStateForMetrics
|
|
973
|
+
* @param {String} id correlation id to set on the callStateForMetrics
|
|
974
|
+
* @returns {undefined}
|
|
975
|
+
* @public
|
|
976
|
+
* @memberof Meeting
|
|
977
|
+
*/
|
|
978
|
+
setCorrelationId(id: string): void;
|
|
979
|
+
/**
|
|
980
|
+
* Update the callStateForMetrics
|
|
981
|
+
* @param {CallStateForMetrics} callStateForMetrics updated values for callStateForMetrics
|
|
929
982
|
* @returns {undefined}
|
|
983
|
+
* @public
|
|
984
|
+
* @memberof Meeting
|
|
985
|
+
*/
|
|
986
|
+
updateCallStateForMetrics(callStateForMetrics: CallStateForMetrics): void;
|
|
987
|
+
/**
|
|
988
|
+
* Enqueue request for screenshare floor and set the status to pending
|
|
989
|
+
* @returns {Promise}
|
|
930
990
|
* @private
|
|
931
991
|
* @memberof Meeting
|
|
932
992
|
*/
|
|
933
|
-
private
|
|
993
|
+
private enqueueScreenShareFloorRequest;
|
|
934
994
|
/**
|
|
935
995
|
* Mute the audio for a meeting
|
|
936
996
|
* @returns {Promise} resolves the data from muting audio {mute, self} or rejects if there is no audio set
|
|
@@ -963,32 +1023,25 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
963
1023
|
* Shorthand function to join AND set up media
|
|
964
1024
|
* @param {Object} options - options to join with media
|
|
965
1025
|
* @param {JoinOptions} [options.joinOptions] - see #join()
|
|
966
|
-
* @param {
|
|
967
|
-
* @
|
|
968
|
-
* @returns {Promise} -- {join: see join(), media: see addMedia(), local: see getMediaStreams()}
|
|
1026
|
+
* @param {AddMediaOptions} [options.mediaOptions] - see #addMedia()
|
|
1027
|
+
* @returns {Promise} -- {join: see join(), media: see addMedia()}
|
|
969
1028
|
* @public
|
|
970
1029
|
* @memberof Meeting
|
|
971
1030
|
* @example
|
|
972
1031
|
* joinWithMedia({
|
|
973
1032
|
* joinOptions: {resourceId: 'resourceId' },
|
|
974
|
-
*
|
|
975
|
-
*
|
|
976
|
-
*
|
|
977
|
-
*
|
|
978
|
-
* receiveVideo:true,
|
|
979
|
-
* receiveAudio: true,
|
|
980
|
-
* receiveShare: true
|
|
981
|
-
* }
|
|
982
|
-
* audioVideoOptions: {
|
|
983
|
-
* audio: 'audioDeviceId',
|
|
984
|
-
* video: 'videoDeviceId'
|
|
985
|
-
* }})
|
|
1033
|
+
* mediaOptions: {
|
|
1034
|
+
* localStreams: { microphone: microphoneStream, camera: cameraStream }
|
|
1035
|
+
* }
|
|
1036
|
+
* })
|
|
986
1037
|
*/
|
|
987
1038
|
joinWithMedia(options?: {
|
|
988
1039
|
joinOptions?: any;
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
1040
|
+
mediaOptions?: AddMediaOptions;
|
|
1041
|
+
}): Promise<{
|
|
1042
|
+
join: any;
|
|
1043
|
+
media: void;
|
|
1044
|
+
}>;
|
|
992
1045
|
/**
|
|
993
1046
|
* Initiates the reconnection of the media in the meeting
|
|
994
1047
|
*
|
|
@@ -1053,7 +1106,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1053
1106
|
* if joining as host on second loop, pass pin and pass moderator if joining as guest on second loop
|
|
1054
1107
|
* Scenario D: Joining any other way (sip, pstn, conversationUrl, link just need to specify resourceId)
|
|
1055
1108
|
*/
|
|
1056
|
-
join(options?: any): any
|
|
1109
|
+
join(options?: any): Promise<any>;
|
|
1057
1110
|
/**
|
|
1058
1111
|
* Connects to low latency mercury and reconnects if the address has changed
|
|
1059
1112
|
* It will also disconnect if called when the meeting has ended
|
|
@@ -1068,7 +1121,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1068
1121
|
* @public
|
|
1069
1122
|
* @memberof Meeting
|
|
1070
1123
|
*/
|
|
1071
|
-
usePhoneAudio(phoneNumber: string): any
|
|
1124
|
+
usePhoneAudio(phoneNumber: string): Promise<any>;
|
|
1072
1125
|
/**
|
|
1073
1126
|
* Determines if the given pstnStatus is in a state which implies the phone is provisioned
|
|
1074
1127
|
* @param {String} pstnStatus
|
|
@@ -1116,38 +1169,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1116
1169
|
* @memberof Meeting
|
|
1117
1170
|
*/
|
|
1118
1171
|
moveFrom(resourceId: string): any;
|
|
1119
|
-
/**
|
|
1120
|
-
* Get local media streams based on options passed
|
|
1121
|
-
*
|
|
1122
|
-
* NOTE: this method can only be used with transcoded meetings, not with multistream meetings
|
|
1123
|
-
*
|
|
1124
|
-
* @param {MediaDirection} mediaDirection A configurable options object for joining a meeting
|
|
1125
|
-
* @param {AudioVideo} [audioVideo] audio/video object to set audioinput and videoinput devices, see #Media.getUserMedia
|
|
1126
|
-
* @param {SharePreferences} [sharePreferences] audio/video object to set audioinput and videoinput devices, see #Media.getUserMedia
|
|
1127
|
-
* @returns {Promise} see #Media.getUserMedia
|
|
1128
|
-
* @public
|
|
1129
|
-
* @todo should be static, or moved so can be called outside of a meeting
|
|
1130
|
-
* @memberof Meeting
|
|
1131
|
-
*/
|
|
1132
|
-
getMediaStreams: (mediaDirection: any, audioVideo?: any, sharePreferences?: any) => any;
|
|
1133
|
-
/**
|
|
1134
|
-
* Checks if the machine has at least one audio or video device
|
|
1135
|
-
* @param {Object} options
|
|
1136
|
-
* @param {Boolean} options.sendAudio
|
|
1137
|
-
* @param {Boolean} options.sendVideo
|
|
1138
|
-
* @returns {Object}
|
|
1139
|
-
* @memberof Meetings
|
|
1140
|
-
*/
|
|
1141
|
-
getSupportedDevices: ({ sendAudio, sendVideo, }: {
|
|
1142
|
-
sendAudio: boolean;
|
|
1143
|
-
sendVideo: boolean;
|
|
1144
|
-
}) => any;
|
|
1145
|
-
/**
|
|
1146
|
-
* Get the devices from the Media module
|
|
1147
|
-
* @returns {Promise} resolves to an array of DeviceInfo
|
|
1148
|
-
* @memberof Meetings
|
|
1149
|
-
*/
|
|
1150
|
-
getDevices: () => any;
|
|
1151
1172
|
/**
|
|
1152
1173
|
* Handles ROAP_FAILURE event from the webrtc media connection
|
|
1153
1174
|
*
|
|
@@ -1155,6 +1176,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1155
1176
|
* @returns {void}
|
|
1156
1177
|
*/
|
|
1157
1178
|
handleRoapFailure: (error: any) => void;
|
|
1179
|
+
/**
|
|
1180
|
+
* This function makes sure we send the right metrics when local and remote SDPs are processed/generated
|
|
1181
|
+
*
|
|
1182
|
+
* @returns {undefined}
|
|
1183
|
+
*/
|
|
1184
|
+
setupSdpListeners: () => void;
|
|
1158
1185
|
setupMediaConnectionListeners: () => void;
|
|
1159
1186
|
/**
|
|
1160
1187
|
* Registers for all required StatsAnalyzer events
|
|
@@ -1165,12 +1192,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1165
1192
|
setupStatsAnalyzerEventHandlers: () => void;
|
|
1166
1193
|
getMediaConnectionDebugId(): string;
|
|
1167
1194
|
/**
|
|
1168
|
-
* Creates a webrtc media connection
|
|
1195
|
+
* Creates a webrtc media connection and publishes streams to it
|
|
1169
1196
|
*
|
|
1170
1197
|
* @param {Object} turnServerInfo TURN server information
|
|
1198
|
+
* @param {BundlePolicy} [bundlePolicy] Bundle policy settings
|
|
1199
|
+
* @param {AddMediaOptions} [options] Options for enabling/disabling audio/video
|
|
1171
1200
|
* @returns {RoapMediaConnection | MultistreamRoapMediaConnection}
|
|
1172
1201
|
*/
|
|
1173
|
-
createMediaConnection
|
|
1202
|
+
private createMediaConnection;
|
|
1174
1203
|
/**
|
|
1175
1204
|
* Listens for an event emitted by eventEmitter and emits it from the meeting object
|
|
1176
1205
|
*
|
|
@@ -1182,23 +1211,121 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1182
1211
|
*/
|
|
1183
1212
|
forwardEvent(eventEmitter: any, eventTypeToForward: any, meetingEventType: any): void;
|
|
1184
1213
|
/**
|
|
1185
|
-
*
|
|
1186
|
-
*
|
|
1187
|
-
*
|
|
1188
|
-
* @
|
|
1189
|
-
* @param {
|
|
1190
|
-
* @
|
|
1191
|
-
|
|
1192
|
-
|
|
1214
|
+
* Sets up all the references to local streams in this.mediaProperties before creating media connection
|
|
1215
|
+
* and before TURN discovery, so that the correct mute state is sent with TURN discovery roap messages.
|
|
1216
|
+
*
|
|
1217
|
+
* @private
|
|
1218
|
+
* @param {LocalStreams} localStreams
|
|
1219
|
+
* @returns {Promise<void>}
|
|
1220
|
+
*/
|
|
1221
|
+
private setUpLocalStreamReferences;
|
|
1222
|
+
/**
|
|
1223
|
+
* Calls mediaProperties.waitForMediaConnectionConnected() and sends CA client.ice.end metric on failure
|
|
1224
|
+
*
|
|
1225
|
+
* @private
|
|
1226
|
+
* @returns {Promise<void>}
|
|
1227
|
+
*/
|
|
1228
|
+
private waitForMediaConnectionConnected;
|
|
1229
|
+
/**
|
|
1230
|
+
* Enables statsAnalyser if config allows it
|
|
1231
|
+
*
|
|
1232
|
+
* @private
|
|
1233
|
+
* @returns {void}
|
|
1234
|
+
*/
|
|
1235
|
+
private createStatsAnalyzer;
|
|
1236
|
+
/**
|
|
1237
|
+
* Handles device logging
|
|
1238
|
+
*
|
|
1239
|
+
* @private
|
|
1240
|
+
* @static
|
|
1241
|
+
* @returns {Promise<void>}
|
|
1242
|
+
*/
|
|
1243
|
+
private static handleDeviceLogging;
|
|
1244
|
+
/**
|
|
1245
|
+
* Returns a promise. This promise is created once the local sdp offer has been successfully created and is resolved
|
|
1246
|
+
* once the remote sdp answer has been received.
|
|
1247
|
+
*
|
|
1248
|
+
* @private
|
|
1249
|
+
* @returns {Promise<void>}
|
|
1250
|
+
*/
|
|
1251
|
+
private waitForRemoteSDPAnswer;
|
|
1252
|
+
/**
|
|
1253
|
+
* Calls establishMediaConnection with isForced = true to force turn discovery to happen
|
|
1254
|
+
*
|
|
1255
|
+
* @private
|
|
1256
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1257
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1258
|
+
* @returns {Promise<void>}
|
|
1259
|
+
*/
|
|
1260
|
+
private retryEstablishMediaConnectionWithForcedTurnDiscovery;
|
|
1261
|
+
/**
|
|
1262
|
+
* Does relevant clean up before retrying to establish media connection
|
|
1263
|
+
* and performs the retry with forced turn discovery
|
|
1264
|
+
*
|
|
1265
|
+
* @private
|
|
1266
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1267
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1268
|
+
* @returns {Promise<void>}
|
|
1269
|
+
*/
|
|
1270
|
+
private retryWithForcedTurnDiscovery;
|
|
1271
|
+
/**
|
|
1272
|
+
* If waitForMediaConnectionConnected() fails when we haven't done turn discovery then we
|
|
1273
|
+
* attempt to establish a media connection again, but this time using turn discovery. If we
|
|
1274
|
+
* used turn discovery on the first pass we do not attempt connection again.
|
|
1275
|
+
*
|
|
1276
|
+
* @private
|
|
1277
|
+
* @param {Error} error
|
|
1278
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1279
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1280
|
+
* @returns {Promise<void>}
|
|
1281
|
+
*/
|
|
1282
|
+
private handleWaitForMediaConnectionConnectedError;
|
|
1283
|
+
/**
|
|
1284
|
+
* Does TURN discovery, SDP offer/answer exhange, establishes ICE connection and DTLS handshake.
|
|
1285
|
+
*
|
|
1286
|
+
* @private
|
|
1287
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1288
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1289
|
+
* @param {boolean} [isForced] - let isForced be true to do turn discovery regardless of reachability results
|
|
1290
|
+
* @returns {Promise<void>}
|
|
1291
|
+
*/
|
|
1292
|
+
private establishMediaConnection;
|
|
1293
|
+
/**
|
|
1294
|
+
* Cleans up stats analyzer, peer connection, and turns off listeners
|
|
1295
|
+
*
|
|
1296
|
+
* @private
|
|
1297
|
+
* @returns {Promise<void>}
|
|
1298
|
+
*/
|
|
1299
|
+
private cleanUpOnAddMediaFailure;
|
|
1300
|
+
/**
|
|
1301
|
+
* Sends stats report, closes peer connection and cleans up any media connection
|
|
1302
|
+
* related things before trying to establish media connection again with turn server
|
|
1303
|
+
*
|
|
1304
|
+
* @private
|
|
1305
|
+
* @returns {Promise<void>}
|
|
1306
|
+
*/
|
|
1307
|
+
private cleanUpBeforeRetryWithTurnServer;
|
|
1308
|
+
/**
|
|
1309
|
+
* Creates a media connection to the server. Media connection is required for sending or receiving any audio/video.
|
|
1310
|
+
*
|
|
1311
|
+
* @param {AddMediaOptions} options
|
|
1312
|
+
* @returns {Promise<void>}
|
|
1193
1313
|
* @public
|
|
1194
1314
|
* @memberof Meeting
|
|
1195
1315
|
*/
|
|
1196
|
-
addMedia(options?:
|
|
1316
|
+
addMedia(options?: AddMediaOptions): Promise<void>;
|
|
1197
1317
|
/**
|
|
1198
1318
|
* Informs if the peer connection is in a state that can be updated with updateMedia (audio/video/share)
|
|
1199
1319
|
* @returns {Boolean}
|
|
1200
1320
|
*/
|
|
1201
1321
|
canUpdateMedia(): boolean;
|
|
1322
|
+
/**
|
|
1323
|
+
* media failed, so collect a stats report from webrtc using the wcme connection to grab the rtc stats report
|
|
1324
|
+
* send a webrtc telemetry dump to the configured server using the internal media core check metrics configured callback
|
|
1325
|
+
* @param {String} callFrom - the function calling this function, optional.
|
|
1326
|
+
* @returns {Promise<void>}
|
|
1327
|
+
*/
|
|
1328
|
+
private forceSendStatsReport;
|
|
1202
1329
|
/**
|
|
1203
1330
|
* Enqueues a media update operation.
|
|
1204
1331
|
* @param {String} mediaUpdateType one of MEDIA_UPDATE_TYPE values
|
|
@@ -1224,94 +1351,26 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1224
1351
|
*/
|
|
1225
1352
|
processNextQueuedMediaUpdate: () => void;
|
|
1226
1353
|
/**
|
|
1227
|
-
*
|
|
1228
|
-
*
|
|
1229
|
-
*
|
|
1230
|
-
*
|
|
1231
|
-
*
|
|
1232
|
-
* @param {MediaDirection} options.mediaSettings
|
|
1233
|
-
* @returns {Promise}
|
|
1234
|
-
* @public
|
|
1235
|
-
* @memberof Meeting
|
|
1236
|
-
*/
|
|
1237
|
-
updateMedia(options?: {
|
|
1238
|
-
localStream?: MediaStream;
|
|
1239
|
-
localShare?: MediaStream;
|
|
1240
|
-
mediaSettings?: any;
|
|
1241
|
-
}): any;
|
|
1242
|
-
/**
|
|
1243
|
-
* Update the main audio track with new parameters
|
|
1244
|
-
*
|
|
1245
|
-
* NOTE: this method can only be used with transcoded meetings, for multistream meetings use publishTrack()
|
|
1246
|
-
*
|
|
1247
|
-
* @param {Object} options
|
|
1248
|
-
* @param {boolean} options.sendAudio
|
|
1249
|
-
* @param {boolean} options.receiveAudio
|
|
1250
|
-
* @param {MediaStream} options.stream Stream that contains the audio track to update
|
|
1251
|
-
* @returns {Promise}
|
|
1252
|
-
* @public
|
|
1253
|
-
* @memberof Meeting
|
|
1254
|
-
*/
|
|
1255
|
-
updateAudio(options: {
|
|
1256
|
-
sendAudio: boolean;
|
|
1257
|
-
receiveAudio: boolean;
|
|
1258
|
-
stream: MediaStream;
|
|
1259
|
-
}): Promise<any>;
|
|
1260
|
-
/**
|
|
1261
|
-
* Update the main video track with new parameters
|
|
1262
|
-
*
|
|
1263
|
-
* NOTE: this method can only be used with transcoded meetings, for multistream meetings use publishTrack()
|
|
1264
|
-
*
|
|
1265
|
-
* @param {Object} options
|
|
1266
|
-
* @param {boolean} options.sendVideo
|
|
1267
|
-
* @param {boolean} options.receiveVideo
|
|
1268
|
-
* @param {MediaStream} options.stream Stream that contains the video track to update
|
|
1269
|
-
* @returns {Promise}
|
|
1270
|
-
* @public
|
|
1271
|
-
* @memberof Meeting
|
|
1272
|
-
*/
|
|
1273
|
-
updateVideo(options: {
|
|
1274
|
-
sendVideo: boolean;
|
|
1275
|
-
receiveVideo: boolean;
|
|
1276
|
-
stream: MediaStream;
|
|
1277
|
-
}): any;
|
|
1278
|
-
/**
|
|
1279
|
-
* Internal function when stopping a share stream, cleanup
|
|
1280
|
-
* @param {boolean} sendShare
|
|
1281
|
-
* @param {boolean} previousShareStatus
|
|
1282
|
-
* @returns {Promise}
|
|
1283
|
-
* @private
|
|
1284
|
-
* @memberof Meeting
|
|
1285
|
-
*/
|
|
1286
|
-
private checkForStopShare;
|
|
1287
|
-
/**
|
|
1288
|
-
* Update the share streams, can be used to start sharing
|
|
1289
|
-
*
|
|
1290
|
-
* NOTE: this method can only be used with transcoded meetings, for multistream meetings use publishTrack()
|
|
1354
|
+
* Updates the media connection - it allows to enable/disable all audio/video/share in the meeting.
|
|
1355
|
+
* This does not affect the published tracks, so for example if a microphone track is published and
|
|
1356
|
+
* updateMedia({audioEnabled: false}) is called, the audio will not be sent or received anymore,
|
|
1357
|
+
* but the track's "published" state is not changed and when updateMedia({audioEnabled: true}) is called,
|
|
1358
|
+
* the sending of the audio from the same track will resume.
|
|
1291
1359
|
*
|
|
1292
1360
|
* @param {Object} options
|
|
1293
|
-
* @param {boolean} options.
|
|
1294
|
-
* @param {boolean} options.
|
|
1361
|
+
* @param {boolean} options.audioEnabled [optional] enables/disables receiving and sending of main audio in the meeting
|
|
1362
|
+
* @param {boolean} options.videoEnabled [optional] enables/disables receiving and sending of main video in the meeting
|
|
1363
|
+
* @param {boolean} options.shareEnabled [optional] enables/disables receiving and sending of screen share in the meeting
|
|
1295
1364
|
* @returns {Promise}
|
|
1296
1365
|
* @public
|
|
1297
1366
|
* @memberof Meeting
|
|
1298
1367
|
*/
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
}):
|
|
1305
|
-
/**
|
|
1306
|
-
* Do all the attach media pre set up before executing the actual attach
|
|
1307
|
-
* @param {MediaStream} localStream
|
|
1308
|
-
* @param {MediaStream} localShare
|
|
1309
|
-
* @param {MediaDirection} mediaSettings
|
|
1310
|
-
* @returns {undefined}
|
|
1311
|
-
* @private
|
|
1312
|
-
* @memberof Meeting
|
|
1313
|
-
*/
|
|
1314
|
-
private preMedia;
|
|
1368
|
+
updateMedia(options: {
|
|
1369
|
+
audioEnabled?: boolean;
|
|
1370
|
+
videoEnabled?: boolean;
|
|
1371
|
+
shareAudioEnabled?: boolean;
|
|
1372
|
+
shareVideoEnabled?: boolean;
|
|
1373
|
+
}): Promise<void>;
|
|
1315
1374
|
/**
|
|
1316
1375
|
* Acknowledge the meeting, outgoing or incoming
|
|
1317
1376
|
* @param {String} type
|
|
@@ -1319,7 +1378,11 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1319
1378
|
* @public
|
|
1320
1379
|
* @memberof Meeting
|
|
1321
1380
|
*/
|
|
1322
|
-
acknowledge(type: string):
|
|
1381
|
+
acknowledge(type: string): Promise<{
|
|
1382
|
+
response: any;
|
|
1383
|
+
}> | Promise<{
|
|
1384
|
+
message: string;
|
|
1385
|
+
}>;
|
|
1323
1386
|
/**
|
|
1324
1387
|
* Decline this meeting
|
|
1325
1388
|
* @param {String} reason
|
|
@@ -1329,15 +1392,45 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1329
1392
|
*/
|
|
1330
1393
|
decline(reason: string): any;
|
|
1331
1394
|
/**
|
|
1332
|
-
*
|
|
1395
|
+
* Returns a promise that will resolve to fetch options for leaving a meeting.
|
|
1396
|
+
*
|
|
1397
|
+
* This is to support quickly submitting a leave request when the browser/tab is closing.
|
|
1398
|
+
* Calling meeting.leave will not work because there are some async steps that will
|
|
1399
|
+
* not complete before the browser is closed. Instead, we pre-gather all the
|
|
1400
|
+
* information/options needed for the request(s), and then simply and quickly
|
|
1401
|
+
* fire the fetch(es) when pagehide is triggered.
|
|
1402
|
+
*
|
|
1403
|
+
* We must use fetch instead of request because fetch has a keepalive option that
|
|
1404
|
+
* allows the request it to outlive the page.
|
|
1405
|
+
*
|
|
1406
|
+
* Note: the $timings values will be wrong, but setRequestTimingsAndFetch() will
|
|
1407
|
+
* properly adjust them before submitting.
|
|
1408
|
+
*
|
|
1409
|
+
* @public
|
|
1333
1410
|
* @param {Object} options leave options
|
|
1334
1411
|
* @param {String} options.resourceId the device with which to leave from, empty if just the computer
|
|
1412
|
+
* @param {any} options.reason the reason for leaving
|
|
1413
|
+
* @returns {Promise} resolves to options to be used with fetch
|
|
1414
|
+
*/
|
|
1415
|
+
buildLeaveFetchRequestOptions(options?: {
|
|
1416
|
+
resourceId?: string;
|
|
1417
|
+
reason?: any;
|
|
1418
|
+
}): any;
|
|
1419
|
+
/**
|
|
1420
|
+
* Leave the current meeting
|
|
1421
|
+
* @param {Object} options - leave options
|
|
1422
|
+
* @param {String} [options.resourceId] - the device with which to leave from, empty if just the computer
|
|
1423
|
+
* @param {String} [options.clientEventLeaveReason] - the leaveReason to include in the Call Analyzer event.
|
|
1424
|
+
* Must be one of: 'paired-leave' | 'one-to-one' | 'ended-by-locus' (defaults to no reason)
|
|
1425
|
+
* https://sqbu-github.cisco.com/WebExSquared/event-dictionary/blob/main/diagnostic-events.raml#L796
|
|
1426
|
+
* @param {String} [options.reason] - only used for logging
|
|
1335
1427
|
* @returns {Promise}
|
|
1336
1428
|
* @public
|
|
1337
1429
|
* @memberof Meeting
|
|
1338
1430
|
*/
|
|
1339
1431
|
leave(options?: {
|
|
1340
1432
|
resourceId?: string;
|
|
1433
|
+
clientEventLeaveReason?: ClientEventLeaveReason;
|
|
1341
1434
|
reason?: any;
|
|
1342
1435
|
}): any;
|
|
1343
1436
|
/**
|
|
@@ -1365,12 +1458,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1365
1458
|
*/
|
|
1366
1459
|
private requestScreenShareFloor;
|
|
1367
1460
|
/**
|
|
1368
|
-
*
|
|
1369
|
-
*
|
|
1370
|
-
*
|
|
1371
|
-
* @
|
|
1461
|
+
* Requests screen share floor if such request is pending.
|
|
1462
|
+
* It should be called whenever meeting state changes to JOINED
|
|
1463
|
+
*
|
|
1464
|
+
* @returns {void}
|
|
1372
1465
|
*/
|
|
1373
|
-
|
|
1466
|
+
private requestScreenShareFloorIfPending;
|
|
1374
1467
|
/**
|
|
1375
1468
|
* Sends a request to Locus to release the screen share floor.
|
|
1376
1469
|
* @returns {Promise} see #meetingRequest.changeMeetingFloor
|
|
@@ -1401,6 +1494,16 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1401
1494
|
* @memberof Meeting
|
|
1402
1495
|
*/
|
|
1403
1496
|
setDisallowUnmute(enabled: boolean): Promise<any>;
|
|
1497
|
+
/**
|
|
1498
|
+
* set the mute all flag for participants if you're the host
|
|
1499
|
+
* @returns {Promise}
|
|
1500
|
+
* @param {boolean} mutedEnabled
|
|
1501
|
+
* @param {boolean} disallowUnmuteEnabled
|
|
1502
|
+
* @param {boolean} muteOnEntryEnabled
|
|
1503
|
+
* @public
|
|
1504
|
+
* @memberof Meeting
|
|
1505
|
+
*/
|
|
1506
|
+
setMuteAll(mutedEnabled: boolean, disallowUnmuteEnabled: boolean, muteOnEntryEnabled: boolean): Promise<any>;
|
|
1404
1507
|
/**
|
|
1405
1508
|
* End the recording of this meeting
|
|
1406
1509
|
* @returns {Promise}
|
|
@@ -1451,7 +1554,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1451
1554
|
* @public
|
|
1452
1555
|
* @memberof Meeting
|
|
1453
1556
|
*/
|
|
1454
|
-
sendDTMF(tones: string): any
|
|
1557
|
+
sendDTMF(tones: string): Promise<any>;
|
|
1455
1558
|
/**
|
|
1456
1559
|
* Sends request to change layout type for the current meeting for the specific participant/device only
|
|
1457
1560
|
* @param {String} [layoutType] a layout type that should be available in meeting constants {@link #layout_types}
|
|
@@ -1476,53 +1579,41 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1476
1579
|
height: number;
|
|
1477
1580
|
};
|
|
1478
1581
|
}): any;
|
|
1479
|
-
/**
|
|
1480
|
-
* Sets the quality of the local video stream
|
|
1481
|
-
* @param {String} level {LOW|MEDIUM|HIGH}
|
|
1482
|
-
* @returns {Promise<MediaStream>} localStream
|
|
1483
|
-
*/
|
|
1484
|
-
setLocalVideoQuality(level: string): any;
|
|
1485
1582
|
/**
|
|
1486
1583
|
* Sets the quality level of the remote incoming media
|
|
1487
1584
|
* @param {String} level {LOW|MEDIUM|HIGH}
|
|
1488
1585
|
* @returns {Promise}
|
|
1489
1586
|
*/
|
|
1490
|
-
setRemoteQualityLevel(level: string):
|
|
1587
|
+
setRemoteQualityLevel(level: string): Promise<void>;
|
|
1491
1588
|
/**
|
|
1492
|
-
*
|
|
1493
|
-
* @
|
|
1494
|
-
* @
|
|
1495
|
-
* @
|
|
1589
|
+
* Functionality for when a share audio is ended.
|
|
1590
|
+
* @private
|
|
1591
|
+
* @memberof Meeting
|
|
1592
|
+
* @returns {undefined}
|
|
1496
1593
|
*/
|
|
1497
|
-
|
|
1594
|
+
private handleShareAudioStreamEnded;
|
|
1498
1595
|
/**
|
|
1499
|
-
*
|
|
1500
|
-
*
|
|
1501
|
-
*
|
|
1502
|
-
* @param {
|
|
1503
|
-
* @
|
|
1504
|
-
* @param {Boolean} options.sendShare send video from the display share
|
|
1505
|
-
* @param {Object} options.sharePreferences
|
|
1506
|
-
* @param {MediaTrackConstraints} options.sharePreferences.shareConstraints constraints to apply to video
|
|
1507
|
-
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints}
|
|
1508
|
-
* @param {Boolean} options.sharePreferences.highFrameRate if shareConstraints isn't provided, set default values based off of this boolean
|
|
1509
|
-
* @returns {Promise}
|
|
1596
|
+
* Functionality for when a share video is muted or unmuted.
|
|
1597
|
+
* @private
|
|
1598
|
+
* @memberof Meeting
|
|
1599
|
+
* @param {boolean} muted
|
|
1600
|
+
* @returns {undefined}
|
|
1510
1601
|
*/
|
|
1511
|
-
|
|
1512
|
-
sendAudio: boolean;
|
|
1513
|
-
sendShare: boolean;
|
|
1514
|
-
sharePreferences: {
|
|
1515
|
-
shareConstraints: MediaTrackConstraints;
|
|
1516
|
-
};
|
|
1517
|
-
}): any;
|
|
1602
|
+
private handleShareVideoStreamMuteStateChange;
|
|
1518
1603
|
/**
|
|
1519
|
-
* Functionality for when a share is ended.
|
|
1604
|
+
* Functionality for when a share video is ended.
|
|
1520
1605
|
* @private
|
|
1521
1606
|
* @memberof Meeting
|
|
1522
|
-
* @param {MediaStream} localShare
|
|
1523
1607
|
* @returns {undefined}
|
|
1524
1608
|
*/
|
|
1525
|
-
private
|
|
1609
|
+
private handleShareVideoStreamEnded;
|
|
1610
|
+
/**
|
|
1611
|
+
* Emits meeting:stoppedSharingLocal
|
|
1612
|
+
* @private
|
|
1613
|
+
* @returns {undefined}
|
|
1614
|
+
* @memberof Meeting
|
|
1615
|
+
*/
|
|
1616
|
+
private triggerStoppedSharing;
|
|
1526
1617
|
/**
|
|
1527
1618
|
* Emits the 'network:quality' event
|
|
1528
1619
|
* 1 indicates an acceptable uplink network.
|
|
@@ -1542,86 +1633,11 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1542
1633
|
* @returns {undefined}
|
|
1543
1634
|
*/
|
|
1544
1635
|
private handleMediaLogging;
|
|
1545
|
-
/**
|
|
1546
|
-
* @param {string} typeMedia 'audio' or 'video'
|
|
1547
|
-
* @returns {undefined}
|
|
1548
|
-
*/
|
|
1549
|
-
setStartSetupDelay(typeMedia: string): void;
|
|
1550
|
-
/**
|
|
1551
|
-
* @param {string} typeMedia 'audio' or 'video'
|
|
1552
|
-
* @returns {undefined}
|
|
1553
|
-
*/
|
|
1554
|
-
setEndSetupDelay(typeMedia: string): void;
|
|
1555
|
-
/**
|
|
1556
|
-
* @param {string} typeMedia 'audio' or 'video'
|
|
1557
|
-
* @returns {string} duration between start and end of setup
|
|
1558
|
-
*/
|
|
1559
|
-
getSetupDelayDuration(typeMedia: string): number;
|
|
1560
|
-
/**
|
|
1561
|
-
* @param {string} typeMedia 'audio' or 'video'
|
|
1562
|
-
* @returns {undefined}
|
|
1563
|
-
*/
|
|
1564
|
-
setStartSendingMediaDelay(typeMedia: string): void;
|
|
1565
|
-
/**
|
|
1566
|
-
* @param {string} typeMedia 'audio' or 'video'
|
|
1567
|
-
* @returns {undefined}
|
|
1568
|
-
*/
|
|
1569
|
-
setEndSendingMediaDelay(typeMedia: string): void;
|
|
1570
|
-
/**
|
|
1571
|
-
* @param {string} typeMedia 'audio' or 'video'
|
|
1572
|
-
* @returns {string} duration between join response and first media tx
|
|
1573
|
-
*/
|
|
1574
|
-
getSendingMediaDelayDuration(typeMedia: string): number;
|
|
1575
|
-
/**
|
|
1576
|
-
*
|
|
1577
|
-
* @returns {undefined}
|
|
1578
|
-
*/
|
|
1579
|
-
setStartLocalSDPGenRemoteSDPRecvDelay(): void;
|
|
1580
|
-
/**
|
|
1581
|
-
*
|
|
1582
|
-
* @returns {undefined}
|
|
1583
|
-
*/
|
|
1584
|
-
setEndLocalSDPGenRemoteSDPRecvDelay(): void;
|
|
1585
|
-
/**
|
|
1586
|
-
*
|
|
1587
|
-
* @returns {string} duration between local SDP generation and remote SDP reception
|
|
1588
|
-
*/
|
|
1589
|
-
getLocalSDPGenRemoteSDPRecvDelay(): number;
|
|
1590
|
-
/**
|
|
1591
|
-
*
|
|
1592
|
-
* @returns {undefined}
|
|
1593
|
-
*/
|
|
1594
|
-
setStartCallInitiateJoinReq(): void;
|
|
1595
|
-
/**
|
|
1596
|
-
*
|
|
1597
|
-
* @returns {undefined}
|
|
1598
|
-
*/
|
|
1599
|
-
setEndCallInitiateJoinReq(): void;
|
|
1600
|
-
/**
|
|
1601
|
-
*
|
|
1602
|
-
* @returns {string} duration between call initiate and sending join request to locus
|
|
1603
|
-
*/
|
|
1604
|
-
getCallInitiateJoinReq(): number;
|
|
1605
|
-
/**
|
|
1606
|
-
*
|
|
1607
|
-
* @returns {undefined}
|
|
1608
|
-
*/
|
|
1609
|
-
setStartJoinReqResp(): void;
|
|
1610
|
-
/**
|
|
1611
|
-
*
|
|
1612
|
-
* @returns {undefined}
|
|
1613
|
-
*/
|
|
1614
|
-
setEndJoinReqResp(): void;
|
|
1615
|
-
/**
|
|
1616
|
-
*
|
|
1617
|
-
* @returns {string} duration between sending locus join request and receiving join response
|
|
1618
|
-
*/
|
|
1619
|
-
getJoinReqResp(): number;
|
|
1620
1636
|
/**
|
|
1621
1637
|
*
|
|
1622
|
-
* @returns {string}
|
|
1638
|
+
* @returns {string} one of 'attendee','host','cohost', returns the user type of the current user
|
|
1623
1639
|
*/
|
|
1624
|
-
|
|
1640
|
+
getCurUserType(): "host" | "cohost" | "attendee";
|
|
1625
1641
|
/**
|
|
1626
1642
|
* End the current meeting for all
|
|
1627
1643
|
* @returns {Promise}
|
|
@@ -1668,7 +1684,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1668
1684
|
* @public
|
|
1669
1685
|
* @memberof Meeting
|
|
1670
1686
|
*/
|
|
1671
|
-
toggleReactions(enable: boolean): any
|
|
1687
|
+
toggleReactions(enable: boolean): Promise<any>;
|
|
1672
1688
|
/**
|
|
1673
1689
|
* Throws if we don't have a media connection created
|
|
1674
1690
|
*
|
|
@@ -1676,24 +1692,69 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1676
1692
|
*/
|
|
1677
1693
|
private checkMediaConnection;
|
|
1678
1694
|
/**
|
|
1679
|
-
*
|
|
1695
|
+
* Method to enable or disable the 'Music mode' effect on audio stream
|
|
1680
1696
|
*
|
|
1681
|
-
* @param {
|
|
1697
|
+
* @param {boolean} shouldEnableMusicMode
|
|
1682
1698
|
* @returns {Promise}
|
|
1683
1699
|
*/
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1700
|
+
enableMusicMode(shouldEnableMusicMode: boolean): Promise<void>;
|
|
1701
|
+
/** Updates the tracks being sent on the transcoded media connection
|
|
1702
|
+
*
|
|
1703
|
+
* @returns {Promise<void>}
|
|
1704
|
+
*/
|
|
1705
|
+
private updateTranscodedMediaConnection;
|
|
1706
|
+
/**
|
|
1707
|
+
* Publishes a stream.
|
|
1708
|
+
*
|
|
1709
|
+
* @param {MediaType} mediaType of the stream
|
|
1710
|
+
* @param {LocalStream} stream to publish
|
|
1711
|
+
* @returns {Promise}
|
|
1712
|
+
*/
|
|
1713
|
+
private publishStream;
|
|
1714
|
+
/**
|
|
1715
|
+
* Un-publishes a stream.
|
|
1716
|
+
*
|
|
1717
|
+
* @param {MediaType} mediaType of the stream
|
|
1718
|
+
* @param {LocalStream} stream to unpublish
|
|
1719
|
+
* @returns {Promise}
|
|
1720
|
+
*/
|
|
1721
|
+
private unpublishStream;
|
|
1722
|
+
/**
|
|
1723
|
+
* Publishes specified local streams in the meeting
|
|
1724
|
+
*
|
|
1725
|
+
* @param {Object} streams
|
|
1726
|
+
* @returns {Promise}
|
|
1727
|
+
*/
|
|
1728
|
+
publishStreams(streams: LocalStreams): Promise<void>;
|
|
1692
1729
|
/**
|
|
1693
|
-
* Un-publishes specified local
|
|
1730
|
+
* Un-publishes specified local streams in the meeting
|
|
1694
1731
|
*
|
|
1695
|
-
* @param {Array<
|
|
1732
|
+
* @param {Array<LocalStream>} streams
|
|
1696
1733
|
* @returns {Promise}
|
|
1697
1734
|
*/
|
|
1698
|
-
|
|
1735
|
+
unpublishStreams(streams: LocalStream[]): Promise<void>;
|
|
1736
|
+
/**
|
|
1737
|
+
* Gets permission token expiry information including timeLeft, expiryTime, currentTime
|
|
1738
|
+
* (from the time the function has been fired)
|
|
1739
|
+
*
|
|
1740
|
+
* @returns {object} permissionTokenExpiryInfo
|
|
1741
|
+
* @returns {number} permissionTokenExpiryInfo.timeLeft The time left for token to expire
|
|
1742
|
+
* @returns {number} permissionTokenExpiryInfo.expiryTime The expiry time of permission token from the server
|
|
1743
|
+
* @returns {number} permissionTokenExpiryInfo.currentTime The current time of the local machine
|
|
1744
|
+
*/
|
|
1745
|
+
getPermissionTokenExpiryInfo(): {
|
|
1746
|
+
timeLeft: number;
|
|
1747
|
+
expiryTime: number;
|
|
1748
|
+
currentTime: number;
|
|
1749
|
+
};
|
|
1750
|
+
/**
|
|
1751
|
+
* Check if there is enough time left till the permission token expires
|
|
1752
|
+
* If not - refresh the permission token
|
|
1753
|
+
*
|
|
1754
|
+
* @param {number} threshold - time in seconds
|
|
1755
|
+
* @param {string} reason - reason for refreshing the permission token
|
|
1756
|
+
* @returns {Promise<void>}
|
|
1757
|
+
*/
|
|
1758
|
+
checkAndRefreshPermissionToken(threshold: number, reason: string): Promise<void>;
|
|
1699
1759
|
}
|
|
1760
|
+
export {};
|