@webex/plugin-meetings 3.0.0-beta.42 → 3.0.0-beta.421
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -8
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +342 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +94 -15
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +625 -123
- package/dist/breakouts/index.js.map +1 -1
- package/dist/breakouts/utils.js +27 -8
- package/dist/breakouts/utils.js.map +1 -1
- package/dist/common/errors/no-meeting-info.js +51 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/reclaim-host-role-errors.js +158 -0
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/webex-errors.js +48 -7
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +5 -1
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +24 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +6 -10
- package/dist/config.js.map +1 -1
- package/dist/constants.js +247 -34
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +14 -2
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.js +109 -15
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.js +7 -0
- package/dist/controls-options-manager/types.js.map +1 -0
- package/dist/controls-options-manager/util.js +309 -18
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.js +116 -2
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.js +15 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/locusRetry.js +93 -0
- package/dist/interceptors/locusRetry.js.map +1 -0
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +380 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +25 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +91 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +386 -62
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +7 -1
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +71 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +249 -72
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +89 -14
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +65 -102
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +73 -124
- package/dist/media/properties.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +135 -330
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +86 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +4525 -2997
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +292 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +236 -136
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +189 -155
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +676 -417
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting/voicea-meeting.js +172 -0
- package/dist/meeting/voicea-meeting.js.map +1 -0
- package/dist/meeting-info/index.js +73 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +201 -57
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/util.js +8 -7
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +44 -40
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +39 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +484 -119
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +2 -0
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +73 -7
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +57 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +25 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +132 -25
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +10 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +100 -5
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +106 -38
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +326 -232
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +18 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -446
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +223 -32
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +10 -0
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +20 -4
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +3 -1
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +76 -5
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +366 -104
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +255 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/reachability/clusterReachability.js +356 -0
- package/dist/reachability/clusterReachability.js.map +1 -0
- package/dist/reachability/index.js +263 -390
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +16 -12
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- package/dist/reconnection-manager/index.js +266 -202
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/index.js +21 -2
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +9 -8
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js +66 -28
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +50 -66
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +407 -79
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +12 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +179 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/index.js +389 -304
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +296 -156
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +42 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +117 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/utils.d.ts +9 -2
- package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/types/common/errors/webex-errors.d.ts +25 -1
- package/dist/types/common/logs/request.d.ts +2 -0
- package/dist/types/common/queue.d.ts +9 -7
- package/dist/types/config.d.ts +2 -7
- package/dist/types/constants.d.ts +204 -32
- package/dist/types/controls-options-manager/enums.d.ts +11 -1
- package/dist/types/controls-options-manager/index.d.ts +17 -1
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -7
- package/dist/types/index.d.ts +6 -5
- package/dist/types/interceptors/index.d.ts +2 -0
- package/dist/types/interceptors/locusRetry.d.ts +27 -0
- package/dist/types/interpretation/collection.d.ts +5 -0
- package/dist/types/interpretation/index.d.ts +5 -0
- package/dist/types/interpretation/siLanguage.d.ts +5 -0
- package/dist/types/locus-info/index.d.ts +57 -4
- package/dist/types/locus-info/parser.d.ts +66 -6
- package/dist/types/media/index.d.ts +2 -0
- package/dist/types/media/properties.d.ts +34 -49
- package/dist/types/mediaQualityMetrics/config.d.ts +99 -223
- package/dist/types/meeting/in-meeting-actions.d.ts +86 -2
- package/dist/types/meeting/index.d.ts +631 -505
- package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/types/meeting/muteState.d.ts +88 -26
- package/dist/types/meeting/request.d.ts +67 -43
- package/dist/types/meeting/util.d.ts +118 -1
- package/dist/types/meeting/voicea-meeting.d.ts +16 -0
- package/dist/types/meeting-info/index.d.ts +13 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
- package/dist/types/meetings/collection.d.ts +17 -0
- package/dist/types/meetings/index.d.ts +114 -21
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/member/index.d.ts +14 -0
- package/dist/types/member/types.d.ts +32 -0
- package/dist/types/members/collection.d.ts +5 -0
- package/dist/types/members/index.d.ts +35 -2
- package/dist/types/members/request.d.ts +73 -9
- package/dist/types/members/types.d.ts +25 -0
- package/dist/types/members/util.d.ts +214 -1
- package/dist/types/metrics/constants.d.ts +17 -0
- package/dist/types/metrics/index.d.ts +4 -111
- package/dist/types/multistream/mediaRequestManager.d.ts +71 -3
- package/dist/types/multistream/receiveSlot.d.ts +7 -3
- package/dist/types/multistream/receiveSlotManager.d.ts +7 -0
- package/dist/types/multistream/remoteMedia.d.ts +3 -31
- package/dist/types/multistream/remoteMediaGroup.d.ts +2 -9
- package/dist/types/multistream/remoteMediaManager.d.ts +61 -2
- package/dist/types/multistream/sendSlotManager.d.ts +69 -0
- package/dist/types/reachability/clusterReachability.d.ts +109 -0
- package/dist/types/reachability/index.d.ts +60 -95
- package/dist/types/reachability/request.d.ts +3 -1
- package/dist/types/reachability/util.d.ts +8 -0
- package/dist/types/reconnection-manager/index.d.ts +19 -0
- package/dist/types/recording-controller/index.d.ts +15 -1
- package/dist/types/recording-controller/util.d.ts +5 -4
- package/dist/types/roap/index.d.ts +11 -2
- package/dist/types/roap/request.d.ts +9 -8
- package/dist/types/roap/turnDiscovery.d.ts +90 -9
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +61 -0
- package/dist/types/statsAnalyzer/index.d.ts +34 -12
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +28 -4
- package/dist/types/webinar/collection.d.ts +16 -0
- package/dist/types/webinar/index.d.ts +5 -0
- package/dist/webinar/collection.js +44 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.js +69 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +22 -19
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +27 -6
- package/src/breakouts/breakout.ts +67 -9
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +494 -73
- package/src/breakouts/utils.ts +26 -8
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/reclaim-host-role-errors.ts +134 -0
- package/src/common/errors/webex-errors.ts +44 -2
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/logs/request.ts +5 -1
- package/src/common/queue.ts +22 -8
- package/src/config.ts +6 -13
- package/src/constants.ts +234 -22
- package/src/controls-options-manager/enums.ts +12 -0
- package/src/controls-options-manager/index.ts +116 -21
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +294 -14
- package/src/index.ts +45 -0
- package/src/interceptors/index.ts +3 -0
- package/src/interceptors/locusRetry.ts +67 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +349 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +108 -0
- package/src/locus-info/index.ts +417 -59
- package/src/locus-info/infoUtils.ts +10 -2
- package/src/locus-info/mediaSharesUtils.ts +80 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +81 -5
- package/src/media/index.ts +100 -108
- package/src/media/properties.ts +88 -117
- package/src/mediaQualityMetrics/config.ts +103 -238
- package/src/meeting/in-meeting-actions.ts +171 -3
- package/src/meeting/index.ts +3869 -2574
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +237 -136
- package/src/meeting/request.ts +173 -122
- package/src/meeting/util.ts +690 -395
- package/src/meeting/voicea-meeting.ts +122 -0
- package/src/meeting-info/index.ts +81 -8
- package/src/meeting-info/meeting-info-v2.ts +166 -16
- package/src/meeting-info/util.ts +13 -10
- package/src/meeting-info/utilv2.ts +47 -37
- package/src/meetings/collection.ts +33 -0
- package/src/meetings/index.ts +507 -127
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +81 -12
- package/src/member/index.ts +57 -0
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +141 -25
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +133 -7
- package/src/members/request.ts +97 -17
- package/src/members/types.ts +29 -0
- package/src/members/util.ts +333 -240
- package/src/metrics/constants.ts +17 -0
- package/src/metrics/index.ts +1 -469
- package/src/multistream/mediaRequestManager.ts +271 -56
- package/src/multistream/receiveSlot.ts +11 -4
- package/src/multistream/receiveSlotManager.ts +16 -4
- package/src/multistream/remoteMedia.ts +5 -3
- package/src/multistream/remoteMediaGroup.ts +78 -0
- package/src/multistream/remoteMediaManager.ts +248 -45
- package/src/multistream/sendSlotManager.ts +198 -0
- package/src/reachability/clusterReachability.ts +320 -0
- package/src/reachability/index.ts +229 -346
- package/src/reachability/request.ts +22 -14
- package/src/reachability/util.ts +24 -0
- package/src/reconnection-manager/index.ts +128 -97
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +76 -25
- package/src/roap/request.ts +50 -69
- package/src/roap/turnDiscovery.ts +331 -67
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +166 -0
- package/src/statsAnalyzer/index.ts +496 -419
- package/src/statsAnalyzer/mqaUtil.ts +317 -170
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +60 -3
- package/test/integration/spec/journey.js +321 -262
- package/test/integration/spec/space-meeting.js +76 -3
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +119 -28
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1204 -118
- package/test/unit/spec/breakouts/utils.js +27 -2
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +163 -0
- package/test/unit/spec/controls-options-manager/util.js +576 -60
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interceptors/locusRetry.ts +131 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +625 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +316 -43
- package/test/unit/spec/locus-info/index.js +1372 -37
- package/test/unit/spec/locus-info/infoUtils.js +37 -15
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +41 -0
- package/test/unit/spec/locus-info/parser.js +116 -35
- package/test/unit/spec/locus-info/selfConstant.js +27 -4
- package/test/unit/spec/locus-info/selfUtils.js +203 -17
- package/test/unit/spec/media/index.ts +178 -81
- package/test/unit/spec/media/properties.ts +2 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +85 -3
- package/test/unit/spec/meeting/index.js +7775 -2521
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +549 -207
- package/test/unit/spec/meeting/request.js +494 -54
- package/test/unit/spec/meeting/utils.js +827 -74
- package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +535 -9
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +26 -0
- package/test/unit/spec/meetings/index.js +1496 -219
- package/test/unit/spec/meetings/utils.js +229 -2
- package/test/unit/spec/member/index.js +61 -6
- package/test/unit/spec/member/util.js +510 -34
- package/test/unit/spec/members/index.js +432 -1
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +210 -0
- package/test/unit/spec/metrics/index.js +2 -52
- package/test/unit/spec/multistream/mediaRequestManager.ts +782 -114
- package/test/unit/spec/multistream/receiveSlot.ts +9 -1
- package/test/unit/spec/multistream/receiveSlotManager.ts +11 -3
- package/test/unit/spec/multistream/remoteMedia.ts +2 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +344 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +524 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +274 -0
- package/test/unit/spec/reachability/clusterReachability.ts +279 -0
- package/test/unit/spec/reachability/index.ts +551 -14
- package/test/unit/spec/reachability/request.js +18 -8
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +171 -11
- package/test/unit/spec/recording-controller/index.js +293 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +233 -81
- package/test/unit/spec/roap/request.ts +100 -62
- package/test/unit/spec/roap/turnDiscovery.ts +682 -108
- package/test/unit/spec/rtcMetrics/index.ts +122 -0
- package/test/unit/spec/stats-analyzer/index.js +1431 -12
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -57
- package/test/utils/webex-test-users.js +12 -4
- package/dist/metrics/config.js +0 -289
- package/dist/metrics/config.js.map +0 -1
- package/dist/types/metrics/config.d.ts +0 -169
- package/src/index.js +0 -18
- package/src/metrics/config.ts +0 -485
|
@@ -1,26 +1,92 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { StatelessWebexPlugin } from '@webex/webex-core';
|
|
3
|
+
import { ClientEvent, ClientEventLeaveReason } from '@webex/internal-plugin-metrics';
|
|
4
|
+
import { ClientEvent as RawClientEvent } from '@webex/event-dictionary-ts';
|
|
5
|
+
import { MediaType } from '@webex/internal-media-core';
|
|
6
|
+
import { LocalStream, LocalCameraStream, LocalDisplayStream, LocalSystemAudioStream, LocalMicrophoneStream } from '@webex/media-helpers';
|
|
3
7
|
import { StatsAnalyzer } from '../statsAnalyzer';
|
|
4
8
|
import NetworkQualityMonitor from '../networkQualityMonitor';
|
|
5
|
-
import Roap from '../roap/index';
|
|
9
|
+
import Roap, { type TurnServerInfo, type TurnDiscoverySkipReason } from '../roap/index';
|
|
10
|
+
import { type BundlePolicy } from '../media';
|
|
6
11
|
import MediaProperties from '../media/properties';
|
|
7
12
|
import ReconnectionManager from '../reconnection-manager';
|
|
8
13
|
import MeetingRequest from './request';
|
|
9
14
|
import Members from '../members/index';
|
|
10
|
-
import
|
|
15
|
+
import { NETWORK_STATUS } from '../constants';
|
|
11
16
|
import { ReceiveSlotManager } from '../multistream/receiveSlotManager';
|
|
12
17
|
import { MediaRequestManager } from '../multistream/mediaRequestManager';
|
|
13
|
-
import { RemoteMediaManager } from '../multistream/remoteMediaManager';
|
|
18
|
+
import { Configuration as RemoteMediaManagerConfiguration, RemoteMediaManager } from '../multistream/remoteMediaManager';
|
|
14
19
|
import { ReactionServerType, SkinToneType } from '../reactions/reactions.type';
|
|
15
20
|
import InMeetingActions from './in-meeting-actions';
|
|
16
21
|
import RecordingController from '../recording-controller';
|
|
17
22
|
import ControlsOptionsManager from '../controls-options-manager';
|
|
23
|
+
import { LocusMediaRequest } from './locusMediaRequest';
|
|
24
|
+
export type CaptionData = {
|
|
25
|
+
id: string;
|
|
26
|
+
isFinal: boolean;
|
|
27
|
+
translations: Array<string>;
|
|
28
|
+
text: string;
|
|
29
|
+
currentCaptionLanguage: string;
|
|
30
|
+
timestamp: string;
|
|
31
|
+
speaker: string;
|
|
32
|
+
};
|
|
33
|
+
export type Transcription = {
|
|
34
|
+
languageOptions: {
|
|
35
|
+
captionLanguages?: string;
|
|
36
|
+
maxLanguages?: number;
|
|
37
|
+
spokenLanguages?: Array<string>;
|
|
38
|
+
currentCaptionLanguage?: string;
|
|
39
|
+
requestedCaptionLanguage?: string;
|
|
40
|
+
currentSpokenLanguage?: string;
|
|
41
|
+
};
|
|
42
|
+
status: string;
|
|
43
|
+
isListening: boolean;
|
|
44
|
+
commandText: string;
|
|
45
|
+
captions: Array<CaptionData>;
|
|
46
|
+
showCaptionBox: boolean;
|
|
47
|
+
transcribingRequestStatus: string;
|
|
48
|
+
isCaptioning: boolean;
|
|
49
|
+
speakerProxy: Map<string, any>;
|
|
50
|
+
interimCaptions: Map<string, CaptionData>;
|
|
51
|
+
};
|
|
52
|
+
export type LocalStreams = {
|
|
53
|
+
microphone?: LocalMicrophoneStream;
|
|
54
|
+
camera?: LocalCameraStream;
|
|
55
|
+
screenShare?: {
|
|
56
|
+
audio?: LocalSystemAudioStream;
|
|
57
|
+
video?: LocalDisplayStream;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
export type AddMediaOptions = {
|
|
61
|
+
localStreams?: LocalStreams;
|
|
62
|
+
audioEnabled?: boolean;
|
|
63
|
+
videoEnabled?: boolean;
|
|
64
|
+
shareAudioEnabled?: boolean;
|
|
65
|
+
shareVideoEnabled?: boolean;
|
|
66
|
+
remoteMediaManagerConfig?: RemoteMediaManagerConfiguration;
|
|
67
|
+
bundlePolicy?: BundlePolicy;
|
|
68
|
+
allowMediaInLobby?: boolean;
|
|
69
|
+
};
|
|
70
|
+
export type CallStateForMetrics = {
|
|
71
|
+
correlationId?: string;
|
|
72
|
+
joinTrigger?: string;
|
|
73
|
+
loginType?: string;
|
|
74
|
+
};
|
|
18
75
|
export declare const MEDIA_UPDATE_TYPE: {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
76
|
+
TRANSCODED_MEDIA_CONNECTION: string;
|
|
77
|
+
SHARE_FLOOR_REQUEST: string;
|
|
78
|
+
UPDATE_MEDIA: string;
|
|
79
|
+
};
|
|
80
|
+
export declare enum ScreenShareFloorStatus {
|
|
81
|
+
PENDING = "floor_request_pending",
|
|
82
|
+
GRANTED = "floor_request_granted",
|
|
83
|
+
RELEASED = "floor_released"
|
|
84
|
+
}
|
|
85
|
+
type FetchMeetingInfoParams = {
|
|
86
|
+
password?: string;
|
|
87
|
+
captchaCode?: string;
|
|
88
|
+
extraParams?: Record<string, any>;
|
|
89
|
+
sendCAevents?: boolean;
|
|
24
90
|
};
|
|
25
91
|
/**
|
|
26
92
|
* MediaDirection
|
|
@@ -33,15 +99,6 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
33
99
|
* @property {boolean} receiveShare
|
|
34
100
|
* @property {boolean} isSharing
|
|
35
101
|
*/
|
|
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
102
|
/**
|
|
46
103
|
* SharePreferences
|
|
47
104
|
* @typedef {Object} SharePreferences
|
|
@@ -55,18 +112,10 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
55
112
|
* @property {String} [pin]
|
|
56
113
|
* @property {Boolean} [moderator]
|
|
57
114
|
* @property {String|Object} [meetingQuality]
|
|
58
|
-
* @property {String} [meetingQuality.local]
|
|
59
115
|
* @property {String} [meetingQuality.remote]
|
|
60
116
|
* @property {Boolean} [rejoin]
|
|
61
117
|
* @property {Boolean} [enableMultistream]
|
|
62
118
|
*/
|
|
63
|
-
/**
|
|
64
|
-
* SendOptions
|
|
65
|
-
* @typedef {Object} SendOptions
|
|
66
|
-
* @property {Boolean} sendAudio
|
|
67
|
-
* @property {Boolean} sendVideo
|
|
68
|
-
* @property {Boolean} sendShare
|
|
69
|
-
*/
|
|
70
119
|
/**
|
|
71
120
|
* Recording
|
|
72
121
|
* @typedef {Object} Recording
|
|
@@ -148,7 +197,11 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
148
197
|
* @instance
|
|
149
198
|
* @type {Object}
|
|
150
199
|
* @property {Boolean} memberId id of the meeting member that started screen share
|
|
200
|
+
* @property {String} url of this content share
|
|
201
|
+
* @property {String} shareInstanceId of this content share
|
|
202
|
+
* @property {Object} annotation Info of this content share
|
|
151
203
|
* @memberof Meeting
|
|
204
|
+
*
|
|
152
205
|
*/
|
|
153
206
|
/**
|
|
154
207
|
* Meeting Stopped Sharing Remote Event
|
|
@@ -285,8 +338,11 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
285
338
|
attrs: any;
|
|
286
339
|
audio: any;
|
|
287
340
|
breakouts: any;
|
|
341
|
+
simultaneousInterpretation: any;
|
|
342
|
+
annotation: any;
|
|
343
|
+
webinar: any;
|
|
288
344
|
conversationUrl: string;
|
|
289
|
-
|
|
345
|
+
callStateForMetrics: CallStateForMetrics;
|
|
290
346
|
destination: string;
|
|
291
347
|
destinationType: string;
|
|
292
348
|
deviceUrl: string;
|
|
@@ -297,7 +353,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
297
353
|
mediaConnections: any[];
|
|
298
354
|
mediaId?: string;
|
|
299
355
|
meetingFiniteStateMachine: any;
|
|
300
|
-
meetingInfo:
|
|
356
|
+
meetingInfo: any;
|
|
301
357
|
meetingRequest: MeetingRequest;
|
|
302
358
|
members: Members;
|
|
303
359
|
options: object;
|
|
@@ -309,11 +365,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
309
365
|
resource: string;
|
|
310
366
|
roap: Roap;
|
|
311
367
|
roapSeq: number;
|
|
368
|
+
selfUrl?: string;
|
|
312
369
|
sipUri: string;
|
|
313
370
|
type: string;
|
|
314
371
|
userId: string;
|
|
315
372
|
video: any;
|
|
316
373
|
callEvents: any[];
|
|
374
|
+
datachannelUrl: string;
|
|
317
375
|
deferJoin: Promise<any>;
|
|
318
376
|
dialInDeviceStatus: string;
|
|
319
377
|
dialInUrl: string;
|
|
@@ -326,10 +384,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
326
384
|
inMeetingActions: InMeetingActions;
|
|
327
385
|
isLocalShareLive: boolean;
|
|
328
386
|
isRoapInProgress: boolean;
|
|
329
|
-
isSharing: boolean;
|
|
330
387
|
keepAliveTimerId: NodeJS.Timeout;
|
|
331
388
|
lastVideoLayoutInfo: any;
|
|
332
389
|
locusInfo: any;
|
|
390
|
+
locusMediaRequest?: LocusMediaRequest;
|
|
333
391
|
mediaProperties: MediaProperties;
|
|
334
392
|
mediaRequestManagers: {
|
|
335
393
|
audio: MediaRequestManager;
|
|
@@ -338,8 +396,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
338
396
|
screenShareVideo: MediaRequestManager;
|
|
339
397
|
};
|
|
340
398
|
meetingInfoFailureReason: string;
|
|
399
|
+
meetingInfoFailureCode?: number;
|
|
400
|
+
meetingInfoExtraParams?: Record<string, any>;
|
|
341
401
|
networkQualityMonitor: NetworkQualityMonitor;
|
|
342
|
-
networkStatus
|
|
402
|
+
networkStatus?: NETWORK_STATUS;
|
|
343
403
|
passwordStatus: string;
|
|
344
404
|
queuedMediaUpdates: any[];
|
|
345
405
|
recording: any;
|
|
@@ -348,16 +408,20 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
348
408
|
controlsOptionsManager: ControlsOptionsManager;
|
|
349
409
|
requiredCaptcha: any;
|
|
350
410
|
receiveSlotManager: ReceiveSlotManager;
|
|
411
|
+
selfUserPolicies: any;
|
|
412
|
+
enforceVBGImagesURL: string;
|
|
351
413
|
shareStatus: string;
|
|
414
|
+
screenShareFloorState: ScreenShareFloorStatus;
|
|
352
415
|
statsAnalyzer: StatsAnalyzer;
|
|
353
416
|
transcription: Transcription;
|
|
354
417
|
updateMediaConnections: (mediaConnections: any[]) => void;
|
|
355
|
-
|
|
418
|
+
userDisplayHints: any;
|
|
419
|
+
endCallInitJoinReq: any;
|
|
356
420
|
endJoinReqResp: any;
|
|
357
421
|
endLocalSDPGenRemoteSDPRecvDelay: any;
|
|
358
422
|
joinedWith: any;
|
|
359
423
|
locusId: any;
|
|
360
|
-
|
|
424
|
+
startCallInitJoinReq: any;
|
|
361
425
|
startJoinReqResp: any;
|
|
362
426
|
startLocalSDPGenRemoteSDPRecvDelay: any;
|
|
363
427
|
wirelessShare: any;
|
|
@@ -365,12 +429,31 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
365
429
|
meetingJoinUrl: any;
|
|
366
430
|
meetingNumber: any;
|
|
367
431
|
meetingState: any;
|
|
368
|
-
permissionToken:
|
|
432
|
+
permissionToken: string;
|
|
433
|
+
permissionTokenPayload: any;
|
|
434
|
+
permissionTokenReceivedLocalTime: number;
|
|
369
435
|
resourceId: any;
|
|
370
436
|
resourceUrl: string;
|
|
371
437
|
selfId: string;
|
|
372
438
|
state: any;
|
|
439
|
+
localAudioStreamMuteStateHandler: () => void;
|
|
440
|
+
localVideoStreamMuteStateHandler: () => void;
|
|
441
|
+
localOutputTrackChangeHandler: () => void;
|
|
442
|
+
roles: any[];
|
|
443
|
+
environment: string;
|
|
373
444
|
namespace: string;
|
|
445
|
+
allowMediaInLobby: boolean;
|
|
446
|
+
localShareInstanceId: string;
|
|
447
|
+
remoteShareInstanceId: string;
|
|
448
|
+
turnDiscoverySkippedReason: TurnDiscoverySkipReason;
|
|
449
|
+
turnServerUsed: boolean;
|
|
450
|
+
areVoiceaEventsSetup: boolean;
|
|
451
|
+
voiceaListenerCallbacks: object;
|
|
452
|
+
private retriedWithTurnServer;
|
|
453
|
+
private sendSlotManager;
|
|
454
|
+
private deferSDPAnswer?;
|
|
455
|
+
private sdpResponseTimer?;
|
|
456
|
+
private hasMediaConnectionConnectedAtLeastOnce;
|
|
374
457
|
/**
|
|
375
458
|
* @param {Object} attrs
|
|
376
459
|
* @param {Object} options
|
|
@@ -378,29 +461,91 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
378
461
|
* @memberof Meeting
|
|
379
462
|
*/
|
|
380
463
|
constructor(attrs: any, options: object);
|
|
464
|
+
/**
|
|
465
|
+
* returns meeting is joined
|
|
466
|
+
* @private
|
|
467
|
+
* @memberof Meeting
|
|
468
|
+
* @returns {Boolean}
|
|
469
|
+
*/
|
|
470
|
+
private isJoined;
|
|
471
|
+
/**
|
|
472
|
+
* Returns whether this meeting is a Locus CALL
|
|
473
|
+
* @returns {Boolean}
|
|
474
|
+
*/
|
|
475
|
+
isLocusCall(): boolean;
|
|
476
|
+
/**
|
|
477
|
+
* Getter - Returns callStateForMetrics.correlationId
|
|
478
|
+
* @returns {string}
|
|
479
|
+
*/
|
|
480
|
+
get correlationId(): string;
|
|
481
|
+
/**
|
|
482
|
+
* Setter - sets callStateForMetrics.correlationId
|
|
483
|
+
* @param {string} correlationId
|
|
484
|
+
*/
|
|
485
|
+
set correlationId(correlationId: string);
|
|
486
|
+
/**
|
|
487
|
+
* Set meeting info and trigger `MEETING_INFO_AVAILABLE` event
|
|
488
|
+
* @param {any} info
|
|
489
|
+
* @param {string} [meetingLookupUrl] Lookup url, defined when the meeting info fetched
|
|
490
|
+
* @returns {void}
|
|
491
|
+
*/
|
|
492
|
+
private setMeetingInfo;
|
|
493
|
+
/**
|
|
494
|
+
* Add pre-fetched meeting info
|
|
495
|
+
*
|
|
496
|
+
* The passed meeting info should be be complete, e.g.: fetched after password or captcha provided
|
|
497
|
+
*
|
|
498
|
+
* @param {Object} meetingInfo - Complete meeting info
|
|
499
|
+
* @param {FetchMeetingInfoParams} fetchParams - Fetch parameters for validation
|
|
500
|
+
* @param {String|undefined} meetingLookupUrl - Lookup url, defined when the meeting info fetched
|
|
501
|
+
* @returns {Promise<void>}
|
|
502
|
+
*/
|
|
503
|
+
injectMeetingInfo(meetingInfo: any, fetchParams: FetchMeetingInfoParams, meetingLookupUrl: string | undefined): Promise<void>;
|
|
504
|
+
/**
|
|
505
|
+
* Validate fetch parameters and clear the fetchMeetingInfoTimeout timeout
|
|
506
|
+
*
|
|
507
|
+
* @param {FetchMeetingInfoParams} fetchParams - fetch parameters for validation
|
|
508
|
+
* @param {String} caller - Name of the caller for logging
|
|
509
|
+
*
|
|
510
|
+
* @returns {Promise<void>}
|
|
511
|
+
* @private
|
|
512
|
+
*/
|
|
513
|
+
private prepForFetchMeetingInfo;
|
|
514
|
+
/**
|
|
515
|
+
* Internal method for fetching meeting info
|
|
516
|
+
*
|
|
517
|
+
* @returns {Promise}
|
|
518
|
+
*/
|
|
519
|
+
private fetchMeetingInfoInternal;
|
|
520
|
+
/**
|
|
521
|
+
* Refreshes the meeting info permission token (it's required for joining meetings)
|
|
522
|
+
*
|
|
523
|
+
* @param {string} [reason] used for metrics and logging purposes (optional)
|
|
524
|
+
* @returns {Promise}
|
|
525
|
+
*/
|
|
526
|
+
refreshPermissionToken(reason?: string): Promise<void>;
|
|
381
527
|
/**
|
|
382
528
|
* Fetches meeting information.
|
|
383
529
|
* @param {Object} options
|
|
384
530
|
* @param {String} [options.password] optional
|
|
385
531
|
* @param {String} [options.captchaCode] optional
|
|
532
|
+
* @param {Boolean} [options.sendCAevents] optional - Whether to submit Call Analyzer events or not. Default: false.
|
|
386
533
|
* @public
|
|
387
534
|
* @memberof Meeting
|
|
388
535
|
* @returns {Promise}
|
|
389
536
|
*/
|
|
390
|
-
fetchMeetingInfo(
|
|
391
|
-
password?: string;
|
|
392
|
-
captchaCode?: string;
|
|
393
|
-
}): Promise<void>;
|
|
537
|
+
fetchMeetingInfo(options: FetchMeetingInfoParams): Promise<void>;
|
|
394
538
|
/**
|
|
395
539
|
* Checks if the supplied password/host key is correct. It returns a promise with information whether the
|
|
396
540
|
* password and captcha code were correct or not.
|
|
397
541
|
* @param {String} password - this can be either a password or a host key, can be undefined if only captcha was required
|
|
398
542
|
* @param {String} captchaCode - can be undefined if captcha was not required by the server
|
|
543
|
+
* @param {Boolean} sendCAevents - whether Call Analyzer events should be sent when fetching meeting information
|
|
399
544
|
* @public
|
|
400
545
|
* @memberof Meeting
|
|
401
546
|
* @returns {Promise<{isPasswordValid: boolean, requiredCaptcha: boolean, failureReason: MEETING_INFO_FAILURE_REASON}>}
|
|
402
547
|
*/
|
|
403
|
-
verifyPassword(password: string, captchaCode: string): Promise<{
|
|
548
|
+
verifyPassword(password: string, captchaCode: string, sendCAevents?: boolean): Promise<{
|
|
404
549
|
isPasswordValid: boolean;
|
|
405
550
|
requiredCaptcha: any;
|
|
406
551
|
failureReason: string;
|
|
@@ -417,6 +562,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
417
562
|
* @returns {Promise}
|
|
418
563
|
*/
|
|
419
564
|
refreshCaptcha(): any;
|
|
565
|
+
/**
|
|
566
|
+
* Posts metrics event for this meeting. Allows the app to send Call Analyzer events.
|
|
567
|
+
* @param {String} eventName - Call Analyzer event
|
|
568
|
+
* @public
|
|
569
|
+
* @memberof Meeting
|
|
570
|
+
* @returns {Promise}
|
|
571
|
+
*/
|
|
572
|
+
postMetrics(eventName: ClientEvent['name']): void;
|
|
420
573
|
/**
|
|
421
574
|
* Proxy function for all the listener set ups
|
|
422
575
|
* @returns {undefined}
|
|
@@ -432,70 +585,43 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
432
585
|
*/
|
|
433
586
|
setUpBreakoutsListener(): void;
|
|
434
587
|
/**
|
|
435
|
-
* Set up the
|
|
588
|
+
* Set up the listeners for interpretation
|
|
436
589
|
* @returns {undefined}
|
|
437
590
|
* @private
|
|
438
591
|
* @memberof Meeting
|
|
439
592
|
*/
|
|
440
|
-
private
|
|
593
|
+
private setUpInterpretationListener;
|
|
441
594
|
/**
|
|
442
|
-
* Set up the
|
|
595
|
+
* Set up the listeners for captions
|
|
443
596
|
* @returns {undefined}
|
|
444
597
|
* @private
|
|
445
598
|
* @memberof Meeting
|
|
446
599
|
*/
|
|
447
|
-
private
|
|
600
|
+
private setUpVoiceaListeners;
|
|
448
601
|
/**
|
|
449
|
-
* Set up the
|
|
602
|
+
* Set up the locus info listener for meetings disconnected due to inactivity
|
|
450
603
|
* @returns {undefined}
|
|
451
604
|
* @private
|
|
452
605
|
* @memberof Meeting
|
|
453
606
|
*/
|
|
454
|
-
private
|
|
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): {};
|
|
607
|
+
private setUpLocusInfoMediaInactiveListener;
|
|
473
608
|
/**
|
|
474
|
-
*
|
|
475
|
-
* @
|
|
476
|
-
* @param {String} options.event
|
|
477
|
-
* @param {String} options.trackingId
|
|
478
|
-
* @param {Object} options.locus
|
|
479
|
-
* @param {Object} options.errors
|
|
480
|
-
* @returns {Promise}
|
|
609
|
+
* Set up the locus info listener for assign host permissions on a meeting
|
|
610
|
+
* @returns {undefined}
|
|
481
611
|
* @private
|
|
482
612
|
* @memberof Meeting
|
|
483
613
|
*/
|
|
484
|
-
private
|
|
614
|
+
private setUpLocusInfoAssignHostListener;
|
|
485
615
|
/**
|
|
486
|
-
*
|
|
487
|
-
* @
|
|
488
|
-
* @param {String} options.event
|
|
489
|
-
* @param {String} options.trackingId
|
|
490
|
-
* @param {Object} options.locus
|
|
491
|
-
* @returns {Promise}
|
|
616
|
+
* Set up the internal locus info full state object listener
|
|
617
|
+
* @returns {undefined}
|
|
492
618
|
* @private
|
|
493
619
|
* @memberof Meeting
|
|
494
620
|
*/
|
|
495
|
-
private
|
|
621
|
+
private setUpLocusFullStateListener;
|
|
496
622
|
/**
|
|
497
623
|
* sets the network status on meeting object
|
|
498
|
-
* @param {
|
|
624
|
+
* @param {NETWORK_STATUS} networkStatus
|
|
499
625
|
* @private
|
|
500
626
|
* @returns {undefined}
|
|
501
627
|
* @memberof Meeting
|
|
@@ -555,6 +681,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
555
681
|
* @memberof Meeting
|
|
556
682
|
*/
|
|
557
683
|
private setupLocusControlsListener;
|
|
684
|
+
/**
|
|
685
|
+
* Trigger annotation info update event
|
|
686
|
+
@returns {undefined}
|
|
687
|
+
@param {object} contentShare
|
|
688
|
+
@param {object} previousContentShare
|
|
689
|
+
*/
|
|
690
|
+
private triggerAnnotationInfoEvent;
|
|
558
691
|
/**
|
|
559
692
|
* Set up the locus info media shares listener
|
|
560
693
|
* update content and whiteboard sharing id value for members, and updates the member
|
|
@@ -653,13 +786,23 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
653
786
|
phoneNumber: string;
|
|
654
787
|
}): any;
|
|
655
788
|
/**
|
|
656
|
-
* Admit the guest(s) to the call once they are waiting
|
|
789
|
+
* Admit the guest(s) to the call once they are waiting.
|
|
790
|
+
* If the host/cohost is in a breakout session, the locus url
|
|
791
|
+
* of the session must be provided as the authorizingLocusUrl.
|
|
792
|
+
* Regardless of host/cohost location, the locus Id (lid) in
|
|
793
|
+
* the path should be the locus Id of the main, which means the
|
|
794
|
+
* locus url of the api call must be from the main session.
|
|
795
|
+
* If these loucs urls are not provided, the function will do the check.
|
|
657
796
|
* @param {Array} memberIds
|
|
797
|
+
* @param {Object} sessionLocusUrls: {authorizingLocusUrl, mainLocusUrl}
|
|
658
798
|
* @returns {Promise} see #members.admitMembers
|
|
659
799
|
* @public
|
|
660
800
|
* @memberof Meeting
|
|
661
801
|
*/
|
|
662
|
-
admit(memberIds: Array<any
|
|
802
|
+
admit(memberIds: Array<any>, sessionLocusUrls?: {
|
|
803
|
+
authorizingLocusUrl: string;
|
|
804
|
+
mainLocusUrl: string;
|
|
805
|
+
}): any;
|
|
663
806
|
/**
|
|
664
807
|
* Remove the member from the meeting, boot them
|
|
665
808
|
* @param {String} memberId
|
|
@@ -693,80 +836,63 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
693
836
|
* @memberof Meeting
|
|
694
837
|
*/
|
|
695
838
|
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
839
|
/**
|
|
739
840
|
* Sets the meeting info on the class instance
|
|
740
841
|
* @param {Object} meetingInfo
|
|
741
|
-
* @param {
|
|
742
|
-
* @param {String} meetingInfo.
|
|
743
|
-
* @param {String} meetingInfo.
|
|
744
|
-
* @param {String} meetingInfo.
|
|
745
|
-
* @param {
|
|
842
|
+
* @param {String} meetingInfo.conversationUrl
|
|
843
|
+
* @param {String} meetingInfo.locusUrl
|
|
844
|
+
* @param {String} meetingInfo.sipUri
|
|
845
|
+
* @param {String} [meetingInfo.sipUrl]
|
|
846
|
+
* @param {String} [meetingInfo.sipMeetingUri]
|
|
847
|
+
* @param {String} [meetingInfo.meetingNumber]
|
|
848
|
+
* @param {String} [meetingInfo.meetingJoinUrl]
|
|
849
|
+
* @param {String} [meetingInfo.hostId]
|
|
850
|
+
* @param {String} [meetingInfo.permissionToken]
|
|
851
|
+
* @param {String} [meetingInfo.channel]
|
|
852
|
+
* @param {Object} meetingInfo.owner
|
|
746
853
|
* @param {Object | String} destination locus object with meeting data or destination string (sip url, meeting link, etc)
|
|
854
|
+
* @param {Object | String} errors Meeting info request error
|
|
747
855
|
* @returns {undefined}
|
|
748
856
|
* @private
|
|
749
857
|
* @memberof Meeting
|
|
750
858
|
*/
|
|
751
859
|
parseMeetingInfo(meetingInfo: {
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
860
|
+
conversationUrl: string;
|
|
861
|
+
locusUrl: string;
|
|
862
|
+
sipUri: string;
|
|
863
|
+
owner: object;
|
|
864
|
+
sipUrl?: string;
|
|
865
|
+
sipMeetingUri?: string;
|
|
866
|
+
meetingNumber?: string;
|
|
867
|
+
meetingJoinUrl?: string;
|
|
868
|
+
hostId?: string;
|
|
869
|
+
permissionToken?: string;
|
|
870
|
+
channel?: string;
|
|
871
|
+
}, destination?: object | string | null, errors?: any): void;
|
|
872
|
+
/**
|
|
873
|
+
* Indicates whether policy can be applied
|
|
874
|
+
* @returns {boolean}
|
|
875
|
+
*/
|
|
876
|
+
private arePolicyRestrictionsSupported;
|
|
759
877
|
/**
|
|
760
|
-
*
|
|
761
|
-
* @param {Object} locus
|
|
762
|
-
* @param {String} locus.url
|
|
763
|
-
* @param {Array} locus.participants
|
|
764
|
-
* @param {Object} locus.self
|
|
878
|
+
* Updates the meeting actions (display hints), depends on locus display hints, user policy and app api info
|
|
765
879
|
* @returns {undefined}
|
|
766
880
|
* @private
|
|
767
881
|
* @memberof Meeting
|
|
768
882
|
*/
|
|
769
|
-
private
|
|
883
|
+
private updateMeetingActions;
|
|
884
|
+
/**
|
|
885
|
+
* Sets the self user policies based on the contents of the permission token
|
|
886
|
+
* @returns {void}
|
|
887
|
+
*/
|
|
888
|
+
setSelfUserPolicies(): void;
|
|
889
|
+
/**
|
|
890
|
+
* Sets the permission token payload on the class instance
|
|
891
|
+
*
|
|
892
|
+
* @param {String} permissionToken
|
|
893
|
+
* @returns {void}
|
|
894
|
+
*/
|
|
895
|
+
setPermissionTokenPayload(permissionToken: string): void;
|
|
770
896
|
/**
|
|
771
897
|
* Sets the sip uri on the class instance
|
|
772
898
|
* uses meeting info as precedence
|
|
@@ -789,7 +915,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
789
915
|
* @private
|
|
790
916
|
* @memberof Meeting
|
|
791
917
|
*/
|
|
792
|
-
|
|
918
|
+
setLocus(locus: {
|
|
919
|
+
mediaConnections: Array<any>;
|
|
920
|
+
locusUrl: string;
|
|
921
|
+
locusId: string;
|
|
922
|
+
mediaId: string;
|
|
923
|
+
host: object;
|
|
924
|
+
} | any): void;
|
|
793
925
|
/**
|
|
794
926
|
* Upload logs for the current meeting
|
|
795
927
|
* @param {object} options file name and function name
|
|
@@ -799,19 +931,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
799
931
|
*/
|
|
800
932
|
uploadLogs(options?: object): void;
|
|
801
933
|
/**
|
|
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
|
|
934
|
+
* Removes remote audio, video and share streams from class instance's mediaProperties
|
|
812
935
|
* @returns {undefined}
|
|
813
936
|
*/
|
|
814
|
-
|
|
937
|
+
unsetRemoteStreams(): void;
|
|
815
938
|
/**
|
|
816
939
|
* Removes the remote stream on the class instance and triggers an event
|
|
817
940
|
* to developers
|
|
@@ -822,83 +945,45 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
822
945
|
*/
|
|
823
946
|
closeRemoteStream(): void;
|
|
824
947
|
/**
|
|
825
|
-
* Removes the remote
|
|
948
|
+
* Removes the remote streams on the class instance and triggers an event
|
|
826
949
|
* to developers
|
|
827
950
|
* @returns {undefined}
|
|
828
951
|
* @memberof Meeting
|
|
829
952
|
*/
|
|
830
|
-
|
|
953
|
+
closeRemoteStreams(): Promise<[any, any, any]>;
|
|
831
954
|
/**
|
|
832
|
-
*
|
|
833
|
-
*
|
|
834
|
-
*
|
|
835
|
-
* @
|
|
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;
|
|
872
|
-
/**
|
|
873
|
-
* Closes the local stream from the class and emits an event to the developer
|
|
874
|
-
* @returns {undefined}
|
|
875
|
-
* @event media:stopped
|
|
876
|
-
* @public
|
|
877
|
-
* @memberof Meeting
|
|
955
|
+
* Stores the reference to a new microphone stream, sets up the required event listeners
|
|
956
|
+
* on it, cleans up previous stream, etc.
|
|
957
|
+
*
|
|
958
|
+
* @param {LocalMicrophoneStream | null} localStream local microphone stream
|
|
959
|
+
* @returns {Promise<void>}
|
|
878
960
|
*/
|
|
879
|
-
|
|
961
|
+
private setLocalAudioStream;
|
|
880
962
|
/**
|
|
881
|
-
*
|
|
882
|
-
*
|
|
883
|
-
*
|
|
884
|
-
* @
|
|
885
|
-
* @
|
|
963
|
+
* Stores the reference to a new camera stream, sets up the required event listeners
|
|
964
|
+
* on it, cleans up previous stream, etc.
|
|
965
|
+
*
|
|
966
|
+
* @param {LocalCameraStream | null} localStream local camera stream
|
|
967
|
+
* @returns {Promise<void>}
|
|
886
968
|
*/
|
|
887
|
-
|
|
969
|
+
private setLocalVideoStream;
|
|
888
970
|
/**
|
|
889
|
-
*
|
|
890
|
-
*
|
|
891
|
-
*
|
|
892
|
-
*
|
|
971
|
+
* Stores the reference to a new screen share stream, sets up the required event listeners
|
|
972
|
+
* on it, cleans up previous stream, etc.
|
|
973
|
+
* It also sends the floor grant/release request.
|
|
974
|
+
*
|
|
975
|
+
* @param {LocalDisplayStream | undefined} localDisplayStream local display stream
|
|
976
|
+
* @returns {Promise<void>}
|
|
893
977
|
*/
|
|
894
|
-
|
|
978
|
+
private setLocalShareVideoStream;
|
|
895
979
|
/**
|
|
896
|
-
*
|
|
897
|
-
*
|
|
898
|
-
*
|
|
899
|
-
* @
|
|
980
|
+
* Stores the reference to a new screen share audio stream, sets up the required event listeners
|
|
981
|
+
* on it, cleans up previous stream, etc.
|
|
982
|
+
*
|
|
983
|
+
* @param {LocalSystemAudioStream | undefined} localSystemAudioStream local system audio stream
|
|
984
|
+
* @returns {Promise<void>}
|
|
900
985
|
*/
|
|
901
|
-
|
|
986
|
+
private setLocalShareAudioStream;
|
|
902
987
|
/**
|
|
903
988
|
* sets up listner for mercury event
|
|
904
989
|
* @returns {undefined}
|
|
@@ -924,13 +1009,28 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
924
1009
|
*/
|
|
925
1010
|
unsetPeerConnections(): void;
|
|
926
1011
|
/**
|
|
927
|
-
* Convenience method to set the correlation id for the
|
|
928
|
-
* @param {String} id correlation id to set on the
|
|
1012
|
+
* Convenience method to set the correlation id for the callStateForMetrics
|
|
1013
|
+
* @param {String} id correlation id to set on the callStateForMetrics
|
|
929
1014
|
* @returns {undefined}
|
|
1015
|
+
* @public
|
|
1016
|
+
* @memberof Meeting
|
|
1017
|
+
*/
|
|
1018
|
+
setCorrelationId(id: string): void;
|
|
1019
|
+
/**
|
|
1020
|
+
* Update the callStateForMetrics
|
|
1021
|
+
* @param {CallStateForMetrics} callStateForMetrics updated values for callStateForMetrics
|
|
1022
|
+
* @returns {undefined}
|
|
1023
|
+
* @public
|
|
1024
|
+
* @memberof Meeting
|
|
1025
|
+
*/
|
|
1026
|
+
updateCallStateForMetrics(callStateForMetrics: CallStateForMetrics): void;
|
|
1027
|
+
/**
|
|
1028
|
+
* Enqueue request for screenshare floor and set the status to pending
|
|
1029
|
+
* @returns {Promise}
|
|
930
1030
|
* @private
|
|
931
1031
|
* @memberof Meeting
|
|
932
1032
|
*/
|
|
933
|
-
private
|
|
1033
|
+
private enqueueScreenShareFloorRequest;
|
|
934
1034
|
/**
|
|
935
1035
|
* Mute the audio for a meeting
|
|
936
1036
|
* @returns {Promise} resolves the data from muting audio {mute, self} or rejects if there is no audio set
|
|
@@ -963,32 +1063,25 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
963
1063
|
* Shorthand function to join AND set up media
|
|
964
1064
|
* @param {Object} options - options to join with media
|
|
965
1065
|
* @param {JoinOptions} [options.joinOptions] - see #join()
|
|
966
|
-
* @param {
|
|
967
|
-
* @
|
|
968
|
-
* @returns {Promise} -- {join: see join(), media: see addMedia(), local: see getMediaStreams()}
|
|
1066
|
+
* @param {AddMediaOptions} [options.mediaOptions] - see #addMedia()
|
|
1067
|
+
* @returns {Promise} -- {join: see join(), media: see addMedia()}
|
|
969
1068
|
* @public
|
|
970
1069
|
* @memberof Meeting
|
|
971
1070
|
* @example
|
|
972
1071
|
* joinWithMedia({
|
|
973
1072
|
* 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
|
-
* }})
|
|
1073
|
+
* mediaOptions: {
|
|
1074
|
+
* localStreams: { microphone: microphoneStream, camera: cameraStream }
|
|
1075
|
+
* }
|
|
1076
|
+
* })
|
|
986
1077
|
*/
|
|
987
1078
|
joinWithMedia(options?: {
|
|
988
1079
|
joinOptions?: any;
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
1080
|
+
mediaOptions?: AddMediaOptions;
|
|
1081
|
+
}): Promise<{
|
|
1082
|
+
join: any;
|
|
1083
|
+
media: void;
|
|
1084
|
+
}>;
|
|
992
1085
|
/**
|
|
993
1086
|
* Initiates the reconnection of the media in the meeting
|
|
994
1087
|
*
|
|
@@ -1010,17 +1103,26 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1010
1103
|
*/
|
|
1011
1104
|
isReactionsSupported(): boolean;
|
|
1012
1105
|
/**
|
|
1013
|
-
*
|
|
1014
|
-
* @
|
|
1015
|
-
* @returns {
|
|
1106
|
+
* sets Caption language for the meeting
|
|
1107
|
+
* @param {string} language
|
|
1108
|
+
* @returns {Promise}
|
|
1016
1109
|
*/
|
|
1017
|
-
|
|
1110
|
+
setCaptionLanguage(language: string): Promise<unknown>;
|
|
1018
1111
|
/**
|
|
1019
|
-
*
|
|
1020
|
-
* @
|
|
1112
|
+
* sets Spoken language for the meeting
|
|
1113
|
+
* @param {string} language
|
|
1114
|
+
* @returns {Promise}
|
|
1115
|
+
*/
|
|
1116
|
+
setSpokenLanguage(language: string): Promise<unknown>;
|
|
1117
|
+
/**
|
|
1118
|
+
* This method will enable the transcription for the current meeting if the meeting has enabled/supports Webex Assistant
|
|
1119
|
+
* @param {Object} options object with spokenlanguage setting
|
|
1120
|
+
* @public
|
|
1021
1121
|
* @returns {Promise<void>} a promise to open the WebSocket connection
|
|
1022
1122
|
*/
|
|
1023
|
-
|
|
1123
|
+
startTranscription(options?: {
|
|
1124
|
+
spokenLanguage?: string;
|
|
1125
|
+
}): Promise<void>;
|
|
1024
1126
|
/**
|
|
1025
1127
|
* Callback called when a relay event is received from meeting LLM Connection
|
|
1026
1128
|
* @param {RelayEvent} e Event object coming from LLM Connection
|
|
@@ -1029,11 +1131,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1029
1131
|
*/
|
|
1030
1132
|
private processRelayEvent;
|
|
1031
1133
|
/**
|
|
1032
|
-
*
|
|
1033
|
-
* the web socket connection properly
|
|
1134
|
+
* This method stops receiving transcription for the current meeting
|
|
1034
1135
|
* @returns {void}
|
|
1035
1136
|
*/
|
|
1036
|
-
|
|
1137
|
+
stopTranscription(): void;
|
|
1037
1138
|
/**
|
|
1038
1139
|
* triggers an event to notify that the user
|
|
1039
1140
|
* will not receive any more transcription
|
|
@@ -1053,7 +1154,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1053
1154
|
* if joining as host on second loop, pass pin and pass moderator if joining as guest on second loop
|
|
1054
1155
|
* Scenario D: Joining any other way (sip, pstn, conversationUrl, link just need to specify resourceId)
|
|
1055
1156
|
*/
|
|
1056
|
-
join(options?: any): any
|
|
1157
|
+
join(options?: any): Promise<any>;
|
|
1057
1158
|
/**
|
|
1058
1159
|
* Connects to low latency mercury and reconnects if the address has changed
|
|
1059
1160
|
* It will also disconnect if called when the meeting has ended
|
|
@@ -1068,7 +1169,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1068
1169
|
* @public
|
|
1069
1170
|
* @memberof Meeting
|
|
1070
1171
|
*/
|
|
1071
|
-
usePhoneAudio(phoneNumber: string): any
|
|
1172
|
+
usePhoneAudio(phoneNumber: string): Promise<any>;
|
|
1072
1173
|
/**
|
|
1073
1174
|
* Determines if the given pstnStatus is in a state which implies the phone is provisioned
|
|
1074
1175
|
* @param {String} pstnStatus
|
|
@@ -1116,38 +1217,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1116
1217
|
* @memberof Meeting
|
|
1117
1218
|
*/
|
|
1118
1219
|
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
1220
|
/**
|
|
1152
1221
|
* Handles ROAP_FAILURE event from the webrtc media connection
|
|
1153
1222
|
*
|
|
@@ -1155,6 +1224,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1155
1224
|
* @returns {void}
|
|
1156
1225
|
*/
|
|
1157
1226
|
handleRoapFailure: (error: any) => void;
|
|
1227
|
+
/**
|
|
1228
|
+
* This function makes sure we send the right metrics when local and remote SDPs are processed/generated
|
|
1229
|
+
*
|
|
1230
|
+
* @returns {undefined}
|
|
1231
|
+
*/
|
|
1232
|
+
setupSdpListeners: () => void;
|
|
1158
1233
|
setupMediaConnectionListeners: () => void;
|
|
1159
1234
|
/**
|
|
1160
1235
|
* Registers for all required StatsAnalyzer events
|
|
@@ -1165,12 +1240,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1165
1240
|
setupStatsAnalyzerEventHandlers: () => void;
|
|
1166
1241
|
getMediaConnectionDebugId(): string;
|
|
1167
1242
|
/**
|
|
1168
|
-
* Creates a webrtc media connection
|
|
1243
|
+
* Creates a webrtc media connection and publishes streams to it
|
|
1169
1244
|
*
|
|
1170
1245
|
* @param {Object} turnServerInfo TURN server information
|
|
1246
|
+
* @param {BundlePolicy} [bundlePolicy] Bundle policy settings
|
|
1247
|
+
* @param {AddMediaOptions} [options] Options for enabling/disabling audio/video
|
|
1171
1248
|
* @returns {RoapMediaConnection | MultistreamRoapMediaConnection}
|
|
1172
1249
|
*/
|
|
1173
|
-
createMediaConnection
|
|
1250
|
+
private createMediaConnection;
|
|
1174
1251
|
/**
|
|
1175
1252
|
* Listens for an event emitted by eventEmitter and emits it from the meeting object
|
|
1176
1253
|
*
|
|
@@ -1182,23 +1259,131 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1182
1259
|
*/
|
|
1183
1260
|
forwardEvent(eventEmitter: any, eventTypeToForward: any, meetingEventType: any): void;
|
|
1184
1261
|
/**
|
|
1185
|
-
*
|
|
1186
|
-
*
|
|
1187
|
-
*
|
|
1188
|
-
* @
|
|
1189
|
-
* @param {
|
|
1190
|
-
* @
|
|
1191
|
-
|
|
1262
|
+
* Sets up all the references to local streams in this.mediaProperties before creating media connection
|
|
1263
|
+
* and before TURN discovery, so that the correct mute state is sent with TURN discovery roap messages.
|
|
1264
|
+
*
|
|
1265
|
+
* @private
|
|
1266
|
+
* @param {LocalStreams} localStreams
|
|
1267
|
+
* @returns {Promise<void>}
|
|
1268
|
+
*/
|
|
1269
|
+
private setUpLocalStreamReferences;
|
|
1270
|
+
/**
|
|
1271
|
+
* Calls mediaProperties.waitForMediaConnectionConnected() and sends CA client.ice.end metric on failure
|
|
1272
|
+
*
|
|
1273
|
+
* @private
|
|
1274
|
+
* @returns {Promise<void>}
|
|
1275
|
+
*/
|
|
1276
|
+
private waitForMediaConnectionConnected;
|
|
1277
|
+
/**
|
|
1278
|
+
* Enables statsAnalyser if config allows it
|
|
1279
|
+
*
|
|
1280
|
+
* @private
|
|
1281
|
+
* @returns {void}
|
|
1282
|
+
*/
|
|
1283
|
+
private createStatsAnalyzer;
|
|
1284
|
+
/**
|
|
1285
|
+
* Handles device logging
|
|
1286
|
+
*
|
|
1287
|
+
* @private
|
|
1288
|
+
* @static
|
|
1289
|
+
* @returns {Promise<void>}
|
|
1290
|
+
*/
|
|
1291
|
+
private static handleDeviceLogging;
|
|
1292
|
+
/**
|
|
1293
|
+
* Returns a promise. This promise is created once the local sdp offer has been successfully created and is resolved
|
|
1294
|
+
* once the remote sdp answer has been received.
|
|
1295
|
+
*
|
|
1296
|
+
* @private
|
|
1297
|
+
* @returns {Promise<void>}
|
|
1298
|
+
*/
|
|
1299
|
+
private waitForRemoteSDPAnswer;
|
|
1300
|
+
/**
|
|
1301
|
+
* Calls establishMediaConnection with isForced = true to force turn discovery to happen
|
|
1302
|
+
*
|
|
1303
|
+
* @private
|
|
1304
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1305
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1306
|
+
* @returns {Promise<void>}
|
|
1307
|
+
*/
|
|
1308
|
+
private retryEstablishMediaConnectionWithForcedTurnDiscovery;
|
|
1309
|
+
/**
|
|
1310
|
+
* Does relevant clean up before retrying to establish media connection
|
|
1311
|
+
* and performs the retry with forced turn discovery
|
|
1312
|
+
*
|
|
1313
|
+
* @private
|
|
1314
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1315
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1316
|
+
* @returns {Promise<void>}
|
|
1317
|
+
*/
|
|
1318
|
+
private retryWithForcedTurnDiscovery;
|
|
1319
|
+
/**
|
|
1320
|
+
* If waitForMediaConnectionConnected() fails when we haven't done turn discovery then we
|
|
1321
|
+
* attempt to establish a media connection again, but this time using turn discovery. If we
|
|
1322
|
+
* used turn discovery on the first pass we do not attempt connection again.
|
|
1323
|
+
*
|
|
1324
|
+
* @private
|
|
1325
|
+
* @param {Error} error
|
|
1326
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1327
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1328
|
+
* @returns {Promise<void>}
|
|
1329
|
+
*/
|
|
1330
|
+
private handleWaitForMediaConnectionConnectedError;
|
|
1331
|
+
/**
|
|
1332
|
+
* Performs TURN discovery as a separate call to the Locus /media API
|
|
1333
|
+
*
|
|
1334
|
+
* @param {boolean} isRetry
|
|
1335
|
+
* @param {boolean} isForced
|
|
1192
1336
|
* @returns {Promise}
|
|
1337
|
+
*/
|
|
1338
|
+
private doTurnDiscovery;
|
|
1339
|
+
/**
|
|
1340
|
+
* Does TURN discovery, SDP offer/answer exhange, establishes ICE connection and DTLS handshake.
|
|
1341
|
+
*
|
|
1342
|
+
* @private
|
|
1343
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1344
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1345
|
+
* @param {boolean} [isForced] - let isForced be true to do turn discovery regardless of reachability results
|
|
1346
|
+
* @param {TurnServerInfo} [turnServerInfo]
|
|
1347
|
+
* @returns {Promise<void>}
|
|
1348
|
+
*/
|
|
1349
|
+
private establishMediaConnection;
|
|
1350
|
+
/**
|
|
1351
|
+
* Cleans up stats analyzer, peer connection, and turns off listeners
|
|
1352
|
+
*
|
|
1353
|
+
* @private
|
|
1354
|
+
* @returns {Promise<void>}
|
|
1355
|
+
*/
|
|
1356
|
+
private cleanUpOnAddMediaFailure;
|
|
1357
|
+
/**
|
|
1358
|
+
* Sends stats report, closes peer connection and cleans up any media connection
|
|
1359
|
+
* related things before trying to establish media connection again with turn server
|
|
1360
|
+
*
|
|
1361
|
+
* @private
|
|
1362
|
+
* @returns {Promise<void>}
|
|
1363
|
+
*/
|
|
1364
|
+
private cleanUpBeforeRetryWithTurnServer;
|
|
1365
|
+
/**
|
|
1366
|
+
* Creates a media connection to the server. Media connection is required for sending or receiving any audio/video.
|
|
1367
|
+
*
|
|
1368
|
+
* @param {AddMediaOptions} options
|
|
1369
|
+
* @param {TurnServerInfo} turnServerInfo - TURN server information (used only internally by the SDK)
|
|
1370
|
+
* @returns {Promise<void>}
|
|
1193
1371
|
* @public
|
|
1194
1372
|
* @memberof Meeting
|
|
1195
1373
|
*/
|
|
1196
|
-
addMedia(options?:
|
|
1374
|
+
addMedia(options?: AddMediaOptions, turnServerInfo?: TurnServerInfo): Promise<void>;
|
|
1197
1375
|
/**
|
|
1198
1376
|
* Informs if the peer connection is in a state that can be updated with updateMedia (audio/video/share)
|
|
1199
1377
|
* @returns {Boolean}
|
|
1200
1378
|
*/
|
|
1201
1379
|
canUpdateMedia(): boolean;
|
|
1380
|
+
/**
|
|
1381
|
+
* media failed, so collect a stats report from webrtc using the wcme connection to grab the rtc stats report
|
|
1382
|
+
* send a webrtc telemetry dump to the configured server using the internal media core check metrics configured callback
|
|
1383
|
+
* @param {String} callFrom - the function calling this function, optional.
|
|
1384
|
+
* @returns {Promise<void>}
|
|
1385
|
+
*/
|
|
1386
|
+
private forceSendStatsReport;
|
|
1202
1387
|
/**
|
|
1203
1388
|
* Enqueues a media update operation.
|
|
1204
1389
|
* @param {String} mediaUpdateType one of MEDIA_UPDATE_TYPE values
|
|
@@ -1224,94 +1409,26 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1224
1409
|
*/
|
|
1225
1410
|
processNextQueuedMediaUpdate: () => void;
|
|
1226
1411
|
/**
|
|
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()
|
|
1412
|
+
* Updates the media connection - it allows to enable/disable all audio/video/share in the meeting.
|
|
1413
|
+
* This does not affect the published tracks, so for example if a microphone track is published and
|
|
1414
|
+
* updateMedia({audioEnabled: false}) is called, the audio will not be sent or received anymore,
|
|
1415
|
+
* but the track's "published" state is not changed and when updateMedia({audioEnabled: true}) is called,
|
|
1416
|
+
* the sending of the audio from the same track will resume.
|
|
1291
1417
|
*
|
|
1292
1418
|
* @param {Object} options
|
|
1293
|
-
* @param {boolean} options.
|
|
1294
|
-
* @param {boolean} options.
|
|
1419
|
+
* @param {boolean} options.audioEnabled [optional] enables/disables receiving and sending of main audio in the meeting
|
|
1420
|
+
* @param {boolean} options.videoEnabled [optional] enables/disables receiving and sending of main video in the meeting
|
|
1421
|
+
* @param {boolean} options.shareEnabled [optional] enables/disables receiving and sending of screen share in the meeting
|
|
1295
1422
|
* @returns {Promise}
|
|
1296
1423
|
* @public
|
|
1297
1424
|
* @memberof Meeting
|
|
1298
1425
|
*/
|
|
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;
|
|
1426
|
+
updateMedia(options: {
|
|
1427
|
+
audioEnabled?: boolean;
|
|
1428
|
+
videoEnabled?: boolean;
|
|
1429
|
+
shareAudioEnabled?: boolean;
|
|
1430
|
+
shareVideoEnabled?: boolean;
|
|
1431
|
+
}): Promise<void>;
|
|
1315
1432
|
/**
|
|
1316
1433
|
* Acknowledge the meeting, outgoing or incoming
|
|
1317
1434
|
* @param {String} type
|
|
@@ -1319,7 +1436,11 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1319
1436
|
* @public
|
|
1320
1437
|
* @memberof Meeting
|
|
1321
1438
|
*/
|
|
1322
|
-
acknowledge(type: string):
|
|
1439
|
+
acknowledge(type: string): Promise<{
|
|
1440
|
+
response: any;
|
|
1441
|
+
}> | Promise<{
|
|
1442
|
+
message: string;
|
|
1443
|
+
}>;
|
|
1323
1444
|
/**
|
|
1324
1445
|
* Decline this meeting
|
|
1325
1446
|
* @param {String} reason
|
|
@@ -1329,15 +1450,45 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1329
1450
|
*/
|
|
1330
1451
|
decline(reason: string): any;
|
|
1331
1452
|
/**
|
|
1332
|
-
*
|
|
1453
|
+
* Returns a promise that will resolve to fetch options for leaving a meeting.
|
|
1454
|
+
*
|
|
1455
|
+
* This is to support quickly submitting a leave request when the browser/tab is closing.
|
|
1456
|
+
* Calling meeting.leave will not work because there are some async steps that will
|
|
1457
|
+
* not complete before the browser is closed. Instead, we pre-gather all the
|
|
1458
|
+
* information/options needed for the request(s), and then simply and quickly
|
|
1459
|
+
* fire the fetch(es) when pagehide is triggered.
|
|
1460
|
+
*
|
|
1461
|
+
* We must use fetch instead of request because fetch has a keepalive option that
|
|
1462
|
+
* allows the request it to outlive the page.
|
|
1463
|
+
*
|
|
1464
|
+
* Note: the $timings values will be wrong, but setRequestTimingsAndFetch() will
|
|
1465
|
+
* properly adjust them before submitting.
|
|
1466
|
+
*
|
|
1467
|
+
* @public
|
|
1333
1468
|
* @param {Object} options leave options
|
|
1334
1469
|
* @param {String} options.resourceId the device with which to leave from, empty if just the computer
|
|
1470
|
+
* @param {any} options.reason the reason for leaving
|
|
1471
|
+
* @returns {Promise} resolves to options to be used with fetch
|
|
1472
|
+
*/
|
|
1473
|
+
buildLeaveFetchRequestOptions(options?: {
|
|
1474
|
+
resourceId?: string;
|
|
1475
|
+
reason?: any;
|
|
1476
|
+
}): any;
|
|
1477
|
+
/**
|
|
1478
|
+
* Leave the current meeting
|
|
1479
|
+
* @param {Object} options - leave options
|
|
1480
|
+
* @param {String} [options.resourceId] - the device with which to leave from, empty if just the computer
|
|
1481
|
+
* @param {String} [options.clientEventLeaveReason] - the leaveReason to include in the Call Analyzer event.
|
|
1482
|
+
* Must be one of: 'paired-leave' | 'one-to-one' | 'ended-by-locus' (defaults to no reason)
|
|
1483
|
+
* https://sqbu-github.cisco.com/WebExSquared/event-dictionary/blob/main/diagnostic-events.raml#L796
|
|
1484
|
+
* @param {String} [options.reason] - only used for logging
|
|
1335
1485
|
* @returns {Promise}
|
|
1336
1486
|
* @public
|
|
1337
1487
|
* @memberof Meeting
|
|
1338
1488
|
*/
|
|
1339
1489
|
leave(options?: {
|
|
1340
1490
|
resourceId?: string;
|
|
1491
|
+
clientEventLeaveReason?: ClientEventLeaveReason;
|
|
1341
1492
|
reason?: any;
|
|
1342
1493
|
}): any;
|
|
1343
1494
|
/**
|
|
@@ -1365,12 +1516,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1365
1516
|
*/
|
|
1366
1517
|
private requestScreenShareFloor;
|
|
1367
1518
|
/**
|
|
1368
|
-
*
|
|
1369
|
-
*
|
|
1370
|
-
*
|
|
1371
|
-
* @
|
|
1519
|
+
* Requests screen share floor if such request is pending.
|
|
1520
|
+
* It should be called whenever meeting state changes to JOINED
|
|
1521
|
+
*
|
|
1522
|
+
* @returns {void}
|
|
1372
1523
|
*/
|
|
1373
|
-
|
|
1524
|
+
private requestScreenShareFloorIfPending;
|
|
1374
1525
|
/**
|
|
1375
1526
|
* Sends a request to Locus to release the screen share floor.
|
|
1376
1527
|
* @returns {Promise} see #meetingRequest.changeMeetingFloor
|
|
@@ -1401,6 +1552,16 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1401
1552
|
* @memberof Meeting
|
|
1402
1553
|
*/
|
|
1403
1554
|
setDisallowUnmute(enabled: boolean): Promise<any>;
|
|
1555
|
+
/**
|
|
1556
|
+
* set the mute all flag for participants if you're the host
|
|
1557
|
+
* @returns {Promise}
|
|
1558
|
+
* @param {boolean} mutedEnabled
|
|
1559
|
+
* @param {boolean} disallowUnmuteEnabled
|
|
1560
|
+
* @param {boolean} muteOnEntryEnabled
|
|
1561
|
+
* @public
|
|
1562
|
+
* @memberof Meeting
|
|
1563
|
+
*/
|
|
1564
|
+
setMuteAll(mutedEnabled: boolean, disallowUnmuteEnabled: boolean, muteOnEntryEnabled: boolean): Promise<any>;
|
|
1404
1565
|
/**
|
|
1405
1566
|
* End the recording of this meeting
|
|
1406
1567
|
* @returns {Promise}
|
|
@@ -1451,7 +1612,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1451
1612
|
* @public
|
|
1452
1613
|
* @memberof Meeting
|
|
1453
1614
|
*/
|
|
1454
|
-
sendDTMF(tones: string): any
|
|
1615
|
+
sendDTMF(tones: string): Promise<any>;
|
|
1455
1616
|
/**
|
|
1456
1617
|
* Sends request to change layout type for the current meeting for the specific participant/device only
|
|
1457
1618
|
* @param {String} [layoutType] a layout type that should be available in meeting constants {@link #layout_types}
|
|
@@ -1476,53 +1637,41 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1476
1637
|
height: number;
|
|
1477
1638
|
};
|
|
1478
1639
|
}): 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
1640
|
/**
|
|
1486
1641
|
* Sets the quality level of the remote incoming media
|
|
1487
1642
|
* @param {String} level {LOW|MEDIUM|HIGH}
|
|
1488
1643
|
* @returns {Promise}
|
|
1489
1644
|
*/
|
|
1490
|
-
setRemoteQualityLevel(level: string):
|
|
1645
|
+
setRemoteQualityLevel(level: string): Promise<void>;
|
|
1491
1646
|
/**
|
|
1492
|
-
*
|
|
1493
|
-
* @
|
|
1494
|
-
* @
|
|
1495
|
-
* @
|
|
1647
|
+
* Functionality for when a share audio is ended.
|
|
1648
|
+
* @private
|
|
1649
|
+
* @memberof Meeting
|
|
1650
|
+
* @returns {undefined}
|
|
1496
1651
|
*/
|
|
1497
|
-
|
|
1652
|
+
private handleShareAudioStreamEnded;
|
|
1498
1653
|
/**
|
|
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}
|
|
1654
|
+
* Functionality for when a share video is muted or unmuted.
|
|
1655
|
+
* @private
|
|
1656
|
+
* @memberof Meeting
|
|
1657
|
+
* @param {boolean} muted
|
|
1658
|
+
* @returns {undefined}
|
|
1510
1659
|
*/
|
|
1511
|
-
|
|
1512
|
-
sendAudio: boolean;
|
|
1513
|
-
sendShare: boolean;
|
|
1514
|
-
sharePreferences: {
|
|
1515
|
-
shareConstraints: MediaTrackConstraints;
|
|
1516
|
-
};
|
|
1517
|
-
}): any;
|
|
1660
|
+
private handleShareVideoStreamMuteStateChange;
|
|
1518
1661
|
/**
|
|
1519
|
-
* Functionality for when a share is ended.
|
|
1662
|
+
* Functionality for when a share video is ended.
|
|
1520
1663
|
* @private
|
|
1521
1664
|
* @memberof Meeting
|
|
1522
|
-
* @param {MediaStream} localShare
|
|
1523
1665
|
* @returns {undefined}
|
|
1524
1666
|
*/
|
|
1525
|
-
private
|
|
1667
|
+
private handleShareVideoStreamEnded;
|
|
1668
|
+
/**
|
|
1669
|
+
* Emits meeting:stoppedSharingLocal
|
|
1670
|
+
* @private
|
|
1671
|
+
* @returns {undefined}
|
|
1672
|
+
* @memberof Meeting
|
|
1673
|
+
*/
|
|
1674
|
+
private triggerStoppedSharing;
|
|
1526
1675
|
/**
|
|
1527
1676
|
* Emits the 'network:quality' event
|
|
1528
1677
|
* 1 indicates an acceptable uplink network.
|
|
@@ -1542,86 +1691,11 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1542
1691
|
* @returns {undefined}
|
|
1543
1692
|
*/
|
|
1544
1693
|
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
1694
|
/**
|
|
1586
1695
|
*
|
|
1587
|
-
* @returns {string}
|
|
1696
|
+
* @returns {string} one of 'panelist', 'attendee', 'host', 'cohost', returns the user type of the current user
|
|
1588
1697
|
*/
|
|
1589
|
-
|
|
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
|
-
/**
|
|
1621
|
-
*
|
|
1622
|
-
* @returns {string} duration between call initiate and successful locus join (even if it is in lobby)
|
|
1623
|
-
*/
|
|
1624
|
-
getTotalJmt(): number;
|
|
1698
|
+
getCurUserType(): RawClientEvent['userType'] | null;
|
|
1625
1699
|
/**
|
|
1626
1700
|
* End the current meeting for all
|
|
1627
1701
|
* @returns {Promise}
|
|
@@ -1668,7 +1742,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1668
1742
|
* @public
|
|
1669
1743
|
* @memberof Meeting
|
|
1670
1744
|
*/
|
|
1671
|
-
toggleReactions(enable: boolean): any
|
|
1745
|
+
toggleReactions(enable: boolean): Promise<any>;
|
|
1672
1746
|
/**
|
|
1673
1747
|
* Throws if we don't have a media connection created
|
|
1674
1748
|
*
|
|
@@ -1676,24 +1750,76 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1676
1750
|
*/
|
|
1677
1751
|
private checkMediaConnection;
|
|
1678
1752
|
/**
|
|
1679
|
-
*
|
|
1753
|
+
* Method to enable or disable the 'Music mode' effect on audio stream
|
|
1680
1754
|
*
|
|
1681
|
-
* @param {
|
|
1755
|
+
* @param {boolean} shouldEnableMusicMode
|
|
1682
1756
|
* @returns {Promise}
|
|
1683
1757
|
*/
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1758
|
+
enableMusicMode(shouldEnableMusicMode: boolean): Promise<void>;
|
|
1759
|
+
/** Updates the tracks being sent on the transcoded media connection
|
|
1760
|
+
*
|
|
1761
|
+
* @returns {Promise<void>}
|
|
1762
|
+
*/
|
|
1763
|
+
private updateTranscodedMediaConnection;
|
|
1764
|
+
/**
|
|
1765
|
+
* set sending named media group which the audio should send to
|
|
1766
|
+
* @param {MediaType} mediaType of the stream
|
|
1767
|
+
* @param {number} languageCode of the stream
|
|
1768
|
+
* @returns {void}
|
|
1769
|
+
*/
|
|
1770
|
+
setSendNamedMediaGroup(mediaType: MediaType, languageCode?: number): void;
|
|
1692
1771
|
/**
|
|
1693
|
-
*
|
|
1772
|
+
* Publishes a stream.
|
|
1694
1773
|
*
|
|
1695
|
-
* @param {
|
|
1774
|
+
* @param {MediaType} mediaType of the stream
|
|
1775
|
+
* @param {LocalStream} stream to publish
|
|
1696
1776
|
* @returns {Promise}
|
|
1697
1777
|
*/
|
|
1698
|
-
|
|
1778
|
+
private publishStream;
|
|
1779
|
+
/**
|
|
1780
|
+
* Un-publishes a stream.
|
|
1781
|
+
*
|
|
1782
|
+
* @param {MediaType} mediaType of the stream
|
|
1783
|
+
* @param {LocalStream} stream to unpublish
|
|
1784
|
+
* @returns {Promise}
|
|
1785
|
+
*/
|
|
1786
|
+
private unpublishStream;
|
|
1787
|
+
/**
|
|
1788
|
+
* Publishes specified local streams in the meeting
|
|
1789
|
+
*
|
|
1790
|
+
* @param {Object} streams
|
|
1791
|
+
* @returns {Promise}
|
|
1792
|
+
*/
|
|
1793
|
+
publishStreams(streams: LocalStreams): Promise<void>;
|
|
1794
|
+
/**
|
|
1795
|
+
* Un-publishes specified local streams in the meeting
|
|
1796
|
+
*
|
|
1797
|
+
* @param {Array<LocalStream>} streams
|
|
1798
|
+
* @returns {Promise}
|
|
1799
|
+
*/
|
|
1800
|
+
unpublishStreams(streams: LocalStream[]): Promise<void>;
|
|
1801
|
+
/**
|
|
1802
|
+
* Gets permission token expiry information including timeLeft, expiryTime, currentTime
|
|
1803
|
+
* (from the time the function has been fired)
|
|
1804
|
+
*
|
|
1805
|
+
* @returns {object} permissionTokenExpiryInfo
|
|
1806
|
+
* @returns {number} permissionTokenExpiryInfo.timeLeft The time left for token to expire
|
|
1807
|
+
* @returns {number} permissionTokenExpiryInfo.expiryTime The expiry time of permission token from the server
|
|
1808
|
+
* @returns {number} permissionTokenExpiryInfo.currentTime The current time of the local machine
|
|
1809
|
+
*/
|
|
1810
|
+
getPermissionTokenExpiryInfo(): {
|
|
1811
|
+
timeLeft: number;
|
|
1812
|
+
expiryTime: number;
|
|
1813
|
+
currentTime: number;
|
|
1814
|
+
};
|
|
1815
|
+
/**
|
|
1816
|
+
* Check if there is enough time left till the permission token expires
|
|
1817
|
+
* If not - refresh the permission token
|
|
1818
|
+
*
|
|
1819
|
+
* @param {number} threshold - time in seconds
|
|
1820
|
+
* @param {string} reason - reason for refreshing the permission token
|
|
1821
|
+
* @returns {Promise<void>}
|
|
1822
|
+
*/
|
|
1823
|
+
checkAndRefreshPermissionToken(threshold: number, reason: string): Promise<void>;
|
|
1699
1824
|
}
|
|
1825
|
+
export {};
|