@webex/plugin-meetings 2.60.0 → 2.60.1-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -8
- package/dist/annotation/annotation.types.d.ts +42 -0
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.d.ts +31 -0
- package/dist/annotation/constants.js +41 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.d.ts +117 -0
- package/dist/annotation/index.js +357 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.d.ts +8 -0
- package/dist/breakouts/breakout.js +215 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.d.ts +5 -0
- package/dist/breakouts/collection.js +22 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/breakouts/edit-lock-error.js +51 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.d.ts +8 -0
- package/dist/breakouts/events.js +44 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.d.ts +5 -0
- package/dist/breakouts/index.js +1047 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.d.ts +22 -0
- package/dist/breakouts/request.js +77 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.d.ts +15 -0
- package/dist/breakouts/utils.js +64 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/browser-detection.js +2 -3
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +3 -4
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +1 -2
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +1 -2
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +1 -2
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +1 -2
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +1 -2
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/common/errors/no-meeting-info.js +50 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/parameter.js +3 -4
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +1 -2
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +1 -2
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/{reclaim-host-role-error.js → reclaim-host-role-errors.js} +7 -11
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/reconnection-in-progress.js +1 -2
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +1 -2
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +1 -2
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.d.ts +20 -8
- package/dist/common/errors/webex-errors.js +48 -28
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +1 -2
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +1 -2
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +1 -2
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +1 -2
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +1 -2
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +1 -2
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +2 -3
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.d.ts +3 -1
- package/dist/common/logs/request.js +8 -5
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.d.ts +9 -7
- package/dist/common/queue.js +22 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.d.ts +6 -7
- package/dist/config.js +8 -10
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +217 -97
- package/dist/constants.js +416 -441
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +3 -6
- package/dist/controls-options-manager/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.d.ts +11 -1
- package/dist/controls-options-manager/enums.js +15 -6
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.d.ts +17 -1
- package/dist/controls-options-manager/index.js +127 -38
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.d.ts +43 -0
- 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.d.ts +1 -7
- package/dist/controls-options-manager/util.js +309 -19
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.js +121 -5
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.d.ts +2 -0
- package/dist/interceptors/index.js +15 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/locusRetry.d.ts +27 -0
- package/dist/interceptors/locusRetry.js +94 -0
- package/dist/interceptors/locusRetry.js.map +1 -0
- package/dist/interpretation/collection.d.ts +5 -0
- package/dist/interpretation/collection.js +22 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.d.ts +5 -0
- package/dist/interpretation/index.js +365 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.d.ts +5 -0
- package/dist/interpretation/siLanguage.js +24 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +100 -11
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -4
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +1 -2
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +1 -2
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.d.ts +57 -4
- package/dist/locus-info/index.js +425 -84
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +13 -5
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +58 -3
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.d.ts +66 -6
- package/dist/locus-info/parser.js +253 -80
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +97 -13
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.d.ts +2 -0
- package/dist/media/index.js +107 -319
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.d.ts +38 -53
- package/dist/media/properties.js +96 -153
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +1 -22
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.d.ts +234 -230
- package/dist/mediaQualityMetrics/config.js +302 -498
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.d.ts +88 -0
- package/dist/meeting/in-meeting-actions.js +94 -3
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.d.ts +591 -494
- package/dist/meeting/index.js +4732 -2990
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/meeting/locusMediaRequest.js +291 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.d.ts +93 -25
- package/dist/meeting/muteState.js +224 -133
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.d.ts +82 -47
- package/dist/meeting/request.js +297 -199
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.d.ts +11 -0
- package/dist/meeting/request.type.js +7 -0
- package/dist/meeting/request.type.js.map +1 -0
- package/dist/meeting/state.js +1 -2
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.d.ts +102 -1
- package/dist/meeting/util.js +605 -435
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +3 -4
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.d.ts +13 -1
- package/dist/meeting-info/index.js +74 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.d.ts +31 -1
- package/dist/meeting-info/meeting-info-v2.js +200 -63
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -2
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +2 -3
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +39 -41
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.d.ts +17 -0
- package/dist/meetings/collection.js +42 -4
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.d.ts +93 -21
- package/dist/meetings/index.js +490 -127
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.d.ts +4 -0
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +4 -3
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +107 -6
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.d.ts +13 -1
- package/dist/member/index.js +45 -2
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.js +3 -4
- package/dist/member/member.types.js.map +1 -1
- package/dist/member/types.d.ts +32 -0
- package/dist/member/types.js +23 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +120 -29
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.d.ts +5 -0
- package/dist/members/collection.js +11 -2
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.d.ts +56 -11
- package/dist/members/index.js +174 -47
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.d.ts +67 -11
- package/dist/members/request.js +102 -54
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +3 -4
- package/dist/members/types.js.map +1 -1
- package/dist/members/util.d.ts +214 -1
- package/dist/members/util.js +327 -284
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.d.ts +15 -6
- package/dist/metrics/constants.js +17 -9
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.d.ts +4 -111
- package/dist/metrics/index.js +4 -452
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.d.ts +118 -0
- package/dist/multistream/mediaRequestManager.js +344 -0
- package/dist/multistream/mediaRequestManager.js.map +1 -0
- package/dist/multistream/receiveSlot.d.ts +68 -0
- package/dist/multistream/receiveSlot.js +200 -0
- package/dist/multistream/receiveSlot.js.map +1 -0
- package/dist/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/multistream/receiveSlotManager.js +174 -0
- package/dist/multistream/receiveSlotManager.js.map +1 -0
- package/dist/multistream/remoteMedia.d.ts +72 -0
- package/dist/multistream/remoteMedia.js +268 -0
- package/dist/multistream/remoteMedia.js.map +1 -0
- package/dist/multistream/remoteMediaGroup.d.ts +47 -0
- package/dist/multistream/remoteMediaGroup.js +267 -0
- package/dist/multistream/remoteMediaGroup.js.map +1 -0
- package/dist/multistream/remoteMediaManager.d.ts +285 -0
- package/dist/multistream/remoteMediaManager.js +1211 -0
- package/dist/multistream/remoteMediaManager.js.map +1 -0
- package/dist/multistream/sendSlotManager.d.ts +61 -0
- package/dist/multistream/sendSlotManager.js +236 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/networkQualityMonitor/index.js +5 -4
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +2 -3
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -3
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +1 -2
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/clusterReachability.d.ts +109 -0
- package/dist/reachability/clusterReachability.js +357 -0
- package/dist/reachability/clusterReachability.js.map +1 -0
- package/dist/reachability/index.d.ts +61 -95
- package/dist/reachability/index.js +300 -393
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.d.ts +7 -3
- package/dist/reachability/request.js +18 -10
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.d.ts +8 -0
- package/dist/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- package/dist/reactions/constants.d.ts +3 -0
- package/dist/reactions/constants.js +12 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.d.ts +2 -2
- package/dist/reactions/reactions.js +4 -6
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.d.ts +23 -3
- package/dist/reactions/reactions.type.js +21 -23
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.d.ts +32 -8
- package/dist/reconnection-manager/index.js +282 -231
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +4 -5
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.d.ts +15 -1
- package/dist/recording-controller/index.js +57 -46
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.d.ts +5 -4
- package/dist/recording-controller/util.js +10 -10
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.d.ts +9 -47
- package/dist/roap/index.js +101 -235
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.d.ts +18 -12
- package/dist/roap/request.js +126 -180
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.d.ts +27 -16
- package/dist/roap/turnDiscovery.js +115 -105
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.d.ts +4 -0
- package/dist/rtcMetrics/constants.js +11 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.d.ts +54 -0
- package/dist/rtcMetrics/index.js +140 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/global.d.ts +1 -83
- package/dist/statsAnalyzer/global.js +2 -85
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.d.ts +50 -30
- package/dist/statsAnalyzer/index.js +435 -510
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +8 -6
- package/dist/statsAnalyzer/mqaUtil.js +120 -83
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +1 -2
- package/dist/transcription/index.js.map +1 -1
- package/dist/webinar/collection.d.ts +16 -0
- package/dist/webinar/collection.js +43 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.d.ts +5 -0
- package/dist/webinar/index.js +68 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +38 -26
- 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 +220 -0
- package/src/breakouts/breakout.ts +188 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +925 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/webex-errors.ts +36 -12
- 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 -7
- package/src/constants.ts +244 -97
- 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 +110 -0
- package/src/locus-info/index.ts +449 -61
- package/src/locus-info/infoUtils.ts +14 -2
- package/src/locus-info/mediaSharesUtils.ts +64 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +85 -2
- package/src/media/index.ts +153 -370
- package/src/media/properties.ts +106 -136
- package/src/media/util.ts +0 -21
- package/src/mediaQualityMetrics/config.ts +244 -377
- package/src/meeting/in-meeting-actions.ts +176 -0
- package/src/meeting/index.ts +3944 -2489
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +224 -138
- package/src/meeting/request.ts +207 -127
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/util.ts +590 -423
- package/src/meeting-info/index.ts +81 -8
- package/src/meeting-info/meeting-info-v2.ts +163 -13
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +28 -28
- package/src/meetings/collection.ts +33 -0
- package/src/meetings/index.ts +487 -126
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +116 -5
- package/src/member/index.ts +43 -1
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +125 -28
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +187 -52
- package/src/members/request.ts +87 -27
- package/src/members/util.ts +332 -291
- package/src/metrics/constants.ts +15 -6
- package/src/metrics/index.ts +1 -471
- package/src/multistream/mediaRequestManager.ts +440 -0
- package/src/multistream/receiveSlot.ts +184 -0
- package/src/multistream/receiveSlotManager.ts +166 -0
- package/src/multistream/remoteMedia.ts +254 -0
- package/src/multistream/remoteMediaGroup.ts +284 -0
- package/src/multistream/remoteMediaManager.ts +1145 -0
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/networkQualityMonitor/index.ts +6 -6
- package/src/reachability/clusterReachability.ts +320 -0
- package/src/reachability/index.ts +243 -347
- package/src/reachability/request.ts +17 -8
- package/src/reachability/util.ts +24 -0
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +30 -4
- package/src/reconnection-manager/index.ts +168 -156
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +98 -241
- package/src/roap/request.ts +74 -148
- package/src/roap/turnDiscovery.ts +62 -56
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +124 -0
- package/src/statsAnalyzer/global.ts +1 -84
- package/src/statsAnalyzer/index.ts +477 -643
- package/src/statsAnalyzer/mqaUtil.ts +115 -114
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +320 -264
- package/test/integration/spec/space-meeting.js +77 -4
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +237 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1790 -0
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +72 -0
- 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 +323 -30
- package/test/unit/spec/locus-info/index.js +1390 -16
- package/test/unit/spec/locus-info/infoUtils.js +54 -16
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/lib/selfConstant.js +48 -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/selfUtils.js +275 -0
- package/test/unit/spec/media/index.ts +290 -0
- package/test/unit/spec/media/properties.ts +75 -84
- package/test/unit/spec/meeting/in-meeting-actions.ts +86 -0
- package/test/unit/spec/meeting/index.js +8187 -2769
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +409 -213
- package/test/unit/spec/meeting/request.js +512 -42
- package/test/unit/spec/meeting/utils.js +741 -24
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +527 -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 +1313 -243
- package/test/unit/spec/meetings/utils.js +202 -2
- package/test/unit/spec/member/index.js +32 -9
- package/test/unit/spec/member/util.js +499 -61
- package/test/unit/spec/members/index.js +394 -5
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +173 -38
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
- package/test/unit/spec/multistream/receiveSlot.ts +163 -0
- package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
- package/test/unit/spec/multistream/remoteMedia.ts +255 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/networkQualityMonitor/index.js +4 -4
- package/test/unit/spec/reachability/clusterReachability.ts +279 -0
- package/test/unit/spec/reachability/index.ts +531 -24
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +162 -24
- 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 +200 -76
- package/test/unit/spec/roap/request.ts +255 -0
- package/test/unit/spec/roap/turnDiscovery.ts +86 -48
- package/test/unit/spec/rtcMetrics/index.ts +93 -0
- package/test/unit/spec/stats-analyzer/index.js +261 -167
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/constants.js +9 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -45
- package/test/utils/webex-config.js +4 -0
- package/test/utils/webex-test-users.js +7 -3
- package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
- package/dist/meeting/effectsState.d.ts +0 -42
- package/dist/meeting/effectsState.js +0 -260
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.d.ts +0 -169
- package/dist/metrics/config.js +0 -289
- package/dist/metrics/config.js.map +0 -1
- package/dist/peer-connection-manager/index.d.ts +0 -6
- package/dist/peer-connection-manager/index.js +0 -671
- package/dist/peer-connection-manager/index.js.map +0 -1
- package/dist/peer-connection-manager/util.d.ts +0 -6
- package/dist/peer-connection-manager/util.js +0 -110
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/dist/roap/collection.d.ts +0 -10
- package/dist/roap/collection.js +0 -63
- package/dist/roap/collection.js.map +0 -1
- package/dist/roap/handler.d.ts +0 -47
- package/dist/roap/handler.js +0 -279
- package/dist/roap/handler.js.map +0 -1
- package/dist/roap/state.d.ts +0 -9
- package/dist/roap/state.js +0 -127
- package/dist/roap/state.js.map +0 -1
- package/dist/roap/util.d.ts +0 -2
- package/dist/roap/util.js +0 -76
- package/dist/roap/util.js.map +0 -1
- package/src/index.js +0 -15
- package/src/meeting/effectsState.ts +0 -209
- package/src/metrics/config.ts +0 -485
- package/src/peer-connection-manager/index.ts +0 -847
- package/src/peer-connection-manager/util.ts +0 -119
- package/src/roap/collection.ts +0 -62
- package/src/roap/handler.ts +0 -294
- package/src/roap/state.ts +0 -156
- package/src/roap/util.ts +0 -100
- package/test/unit/spec/meeting/effectsState.js +0 -281
- package/test/unit/spec/peerconnection-manager/index.js +0 -218
- package/test/unit/spec/peerconnection-manager/utils.js +0 -49
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
- package/test/unit/spec/roap/util.js +0 -30
- /package/dist/common/errors/{reclaim-host-role-error.d.ts → reclaim-host-role-errors.d.ts} +0 -0
- /package/src/common/errors/{reclaim-host-role-error.ts → reclaim-host-role-errors.ts} +0 -0
package/dist/meeting/index.d.ts
CHANGED
|
@@ -1,23 +1,58 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { StatelessWebexPlugin } from '@webex/webex-core';
|
|
3
|
+
import { ClientEvent, ClientEventLeaveReason } from '@webex/internal-plugin-metrics';
|
|
4
|
+
import { LocalStream, LocalCameraStream, LocalDisplayStream, LocalSystemAudioStream, LocalMicrophoneStream } from '@webex/media-helpers';
|
|
3
5
|
import { StatsAnalyzer } from '../statsAnalyzer';
|
|
4
6
|
import NetworkQualityMonitor from '../networkQualityMonitor';
|
|
5
7
|
import Roap from '../roap/index';
|
|
8
|
+
import { type BundlePolicy } from '../media';
|
|
6
9
|
import MediaProperties from '../media/properties';
|
|
7
10
|
import ReconnectionManager from '../reconnection-manager';
|
|
8
11
|
import MeetingRequest from './request';
|
|
9
12
|
import Members from '../members/index';
|
|
10
13
|
import Transcription from '../transcription';
|
|
11
|
-
import {
|
|
14
|
+
import { NETWORK_STATUS } from '../constants';
|
|
15
|
+
import { ReceiveSlotManager } from '../multistream/receiveSlotManager';
|
|
16
|
+
import { MediaRequestManager } from '../multistream/mediaRequestManager';
|
|
17
|
+
import { Configuration as RemoteMediaManagerConfiguration, RemoteMediaManager } from '../multistream/remoteMediaManager';
|
|
18
|
+
import { ReactionServerType, SkinToneType } from '../reactions/reactions.type';
|
|
12
19
|
import InMeetingActions from './in-meeting-actions';
|
|
13
20
|
import RecordingController from '../recording-controller';
|
|
14
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
|
+
};
|
|
15
46
|
export declare const MEDIA_UPDATE_TYPE: {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
SHARE: string;
|
|
47
|
+
TRANSCODED_MEDIA_CONNECTION: string;
|
|
48
|
+
SHARE_FLOOR_REQUEST: string;
|
|
49
|
+
UPDATE_MEDIA: string;
|
|
20
50
|
};
|
|
51
|
+
export declare enum ScreenShareFloorStatus {
|
|
52
|
+
PENDING = "floor_request_pending",
|
|
53
|
+
GRANTED = "floor_request_granted",
|
|
54
|
+
RELEASED = "floor_released"
|
|
55
|
+
}
|
|
21
56
|
/**
|
|
22
57
|
* MediaDirection
|
|
23
58
|
* @typedef {Object} MediaDirection
|
|
@@ -29,15 +64,6 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
29
64
|
* @property {boolean} receiveShare
|
|
30
65
|
* @property {boolean} isSharing
|
|
31
66
|
*/
|
|
32
|
-
/**
|
|
33
|
-
* AudioVideo
|
|
34
|
-
* @typedef {Object} AudioVideo
|
|
35
|
-
* @property {Object} audio
|
|
36
|
-
* @property {String} audio.deviceId
|
|
37
|
-
* @property {Object} video
|
|
38
|
-
* @property {String} video.deviceId
|
|
39
|
-
* @property {String} video.localVideoQuality // [240p, 360p, 480p, 720p, 1080p]
|
|
40
|
-
*/
|
|
41
67
|
/**
|
|
42
68
|
* SharePreferences
|
|
43
69
|
* @typedef {Object} SharePreferences
|
|
@@ -51,16 +77,9 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
51
77
|
* @property {String} [pin]
|
|
52
78
|
* @property {Boolean} [moderator]
|
|
53
79
|
* @property {String|Object} [meetingQuality]
|
|
54
|
-
* @property {String} [meetingQuality.local]
|
|
55
80
|
* @property {String} [meetingQuality.remote]
|
|
56
81
|
* @property {Boolean} [rejoin]
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* SendOptions
|
|
60
|
-
* @typedef {Object} SendOptions
|
|
61
|
-
* @property {Boolean} sendAudio
|
|
62
|
-
* @property {Boolean} sendVideo
|
|
63
|
-
* @property {Boolean} sendShare
|
|
82
|
+
* @property {Boolean} [enableMultistream]
|
|
64
83
|
*/
|
|
65
84
|
/**
|
|
66
85
|
* Recording
|
|
@@ -143,7 +162,11 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
143
162
|
* @instance
|
|
144
163
|
* @type {Object}
|
|
145
164
|
* @property {Boolean} memberId id of the meeting member that started screen share
|
|
165
|
+
* @property {String} url of this content share
|
|
166
|
+
* @property {String} shareInstanceId of this content share
|
|
167
|
+
* @property {Object} annotation Info of this content share
|
|
146
168
|
* @memberof Meeting
|
|
169
|
+
*
|
|
147
170
|
*/
|
|
148
171
|
/**
|
|
149
172
|
* Meeting Stopped Sharing Remote Event
|
|
@@ -279,18 +302,23 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
279
302
|
export default class Meeting extends StatelessWebexPlugin {
|
|
280
303
|
attrs: any;
|
|
281
304
|
audio: any;
|
|
305
|
+
breakouts: any;
|
|
306
|
+
simultaneousInterpretation: any;
|
|
307
|
+
annotation: any;
|
|
308
|
+
webinar: any;
|
|
282
309
|
conversationUrl: string;
|
|
283
|
-
|
|
310
|
+
callStateForMetrics: CallStateForMetrics;
|
|
284
311
|
destination: string;
|
|
285
312
|
destinationType: string;
|
|
286
313
|
deviceUrl: string;
|
|
287
|
-
effects: any;
|
|
288
314
|
hostId: string;
|
|
289
315
|
id: string;
|
|
316
|
+
isMultistream: boolean;
|
|
290
317
|
locusUrl: string;
|
|
291
318
|
mediaConnections: any[];
|
|
319
|
+
mediaId?: string;
|
|
292
320
|
meetingFiniteStateMachine: any;
|
|
293
|
-
meetingInfo:
|
|
321
|
+
meetingInfo: any;
|
|
294
322
|
meetingRequest: MeetingRequest;
|
|
295
323
|
members: Members;
|
|
296
324
|
options: object;
|
|
@@ -302,11 +330,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
302
330
|
resource: string;
|
|
303
331
|
roap: Roap;
|
|
304
332
|
roapSeq: number;
|
|
333
|
+
selfUrl?: string;
|
|
305
334
|
sipUri: string;
|
|
306
335
|
type: string;
|
|
307
336
|
userId: string;
|
|
308
337
|
video: any;
|
|
309
338
|
callEvents: any[];
|
|
339
|
+
datachannelUrl: string;
|
|
310
340
|
deferJoin: Promise<any>;
|
|
311
341
|
dialInDeviceStatus: string;
|
|
312
342
|
dialInUrl: string;
|
|
@@ -318,31 +348,46 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
318
348
|
hasWebsocketConnected: boolean;
|
|
319
349
|
inMeetingActions: InMeetingActions;
|
|
320
350
|
isLocalShareLive: boolean;
|
|
321
|
-
|
|
351
|
+
isRoapInProgress: boolean;
|
|
322
352
|
keepAliveTimerId: NodeJS.Timeout;
|
|
323
353
|
lastVideoLayoutInfo: any;
|
|
324
354
|
locusInfo: any;
|
|
355
|
+
locusMediaRequest?: LocusMediaRequest;
|
|
325
356
|
mediaProperties: MediaProperties;
|
|
357
|
+
mediaRequestManagers: {
|
|
358
|
+
audio: MediaRequestManager;
|
|
359
|
+
video: MediaRequestManager;
|
|
360
|
+
screenShareAudio: MediaRequestManager;
|
|
361
|
+
screenShareVideo: MediaRequestManager;
|
|
362
|
+
};
|
|
326
363
|
meetingInfoFailureReason: string;
|
|
364
|
+
meetingInfoFailureCode?: number;
|
|
365
|
+
meetingInfoExtraParams?: Record<string, any>;
|
|
327
366
|
networkQualityMonitor: NetworkQualityMonitor;
|
|
328
|
-
networkStatus
|
|
367
|
+
networkStatus?: NETWORK_STATUS;
|
|
329
368
|
passwordStatus: string;
|
|
330
369
|
queuedMediaUpdates: any[];
|
|
331
370
|
recording: any;
|
|
371
|
+
remoteMediaManager: RemoteMediaManager | null;
|
|
332
372
|
recordingController: RecordingController;
|
|
333
373
|
controlsOptionsManager: ControlsOptionsManager;
|
|
334
374
|
requiredCaptcha: any;
|
|
375
|
+
receiveSlotManager: ReceiveSlotManager;
|
|
376
|
+
selfUserPolicies: any;
|
|
377
|
+
enforceVBGImagesURL: string;
|
|
335
378
|
shareStatus: string;
|
|
379
|
+
screenShareFloorState: ScreenShareFloorStatus;
|
|
336
380
|
statsAnalyzer: StatsAnalyzer;
|
|
337
381
|
transcription: Transcription;
|
|
338
382
|
receiveTranscription: boolean;
|
|
339
383
|
updateMediaConnections: (mediaConnections: any[]) => void;
|
|
340
|
-
|
|
384
|
+
userDisplayHints: any;
|
|
385
|
+
endCallInitJoinReq: any;
|
|
341
386
|
endJoinReqResp: any;
|
|
342
387
|
endLocalSDPGenRemoteSDPRecvDelay: any;
|
|
343
388
|
joinedWith: any;
|
|
344
389
|
locusId: any;
|
|
345
|
-
|
|
390
|
+
startCallInitJoinReq: any;
|
|
346
391
|
startJoinReqResp: any;
|
|
347
392
|
startLocalSDPGenRemoteSDPRecvDelay: any;
|
|
348
393
|
wirelessShare: any;
|
|
@@ -350,12 +395,27 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
350
395
|
meetingJoinUrl: any;
|
|
351
396
|
meetingNumber: any;
|
|
352
397
|
meetingState: any;
|
|
353
|
-
permissionToken:
|
|
398
|
+
permissionToken: string;
|
|
399
|
+
permissionTokenPayload: any;
|
|
400
|
+
permissionTokenReceivedLocalTime: number;
|
|
354
401
|
resourceId: any;
|
|
355
402
|
resourceUrl: string;
|
|
356
403
|
selfId: string;
|
|
357
404
|
state: any;
|
|
405
|
+
localAudioStreamMuteStateHandler: (muted: boolean) => void;
|
|
406
|
+
localVideoStreamMuteStateHandler: (muted: boolean) => void;
|
|
407
|
+
localOutputTrackChangeHandler: () => void;
|
|
408
|
+
roles: any[];
|
|
409
|
+
environment: string;
|
|
358
410
|
namespace: string;
|
|
411
|
+
allowMediaInLobby: boolean;
|
|
412
|
+
turnDiscoverySkippedReason: string;
|
|
413
|
+
turnServerUsed: boolean;
|
|
414
|
+
private retriedWithTurnServer;
|
|
415
|
+
private sendSlotManager;
|
|
416
|
+
private deferSDPAnswer?;
|
|
417
|
+
private sdpResponseTimer?;
|
|
418
|
+
private hasMediaConnectionConnectedAtLeastOnce;
|
|
359
419
|
/**
|
|
360
420
|
* @param {Object} attrs
|
|
361
421
|
* @param {Object} options
|
|
@@ -363,29 +423,68 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
363
423
|
* @memberof Meeting
|
|
364
424
|
*/
|
|
365
425
|
constructor(attrs: any, options: object);
|
|
426
|
+
/**
|
|
427
|
+
* returns meeting is joined
|
|
428
|
+
* @private
|
|
429
|
+
* @memberof Meeting
|
|
430
|
+
* @returns {Boolean}
|
|
431
|
+
*/
|
|
432
|
+
private isJoined;
|
|
433
|
+
/**
|
|
434
|
+
* Returns whether this meeting is a Locus CALL
|
|
435
|
+
* @returns {Boolean}
|
|
436
|
+
*/
|
|
437
|
+
isLocusCall(): boolean;
|
|
438
|
+
/**
|
|
439
|
+
* Getter - Returns callStateForMetrics.correlationId
|
|
440
|
+
* @returns {string}
|
|
441
|
+
*/
|
|
442
|
+
get correlationId(): string;
|
|
443
|
+
/**
|
|
444
|
+
* Setter - sets callStateForMetrics.correlationId
|
|
445
|
+
* @param {string} correlationId
|
|
446
|
+
*/
|
|
447
|
+
set correlationId(correlationId: string);
|
|
448
|
+
/**
|
|
449
|
+
* Internal method for fetching meeting info
|
|
450
|
+
*
|
|
451
|
+
* @returns {Promise}
|
|
452
|
+
*/
|
|
453
|
+
private fetchMeetingInfoInternal;
|
|
454
|
+
/**
|
|
455
|
+
* Refreshes the meeting info permission token (it's required for joining meetings)
|
|
456
|
+
*
|
|
457
|
+
* @param {string} [reason] used for metrics and logging purposes (optional)
|
|
458
|
+
* @returns {Promise}
|
|
459
|
+
*/
|
|
460
|
+
refreshPermissionToken(reason?: string): Promise<void>;
|
|
366
461
|
/**
|
|
367
462
|
* Fetches meeting information.
|
|
368
463
|
* @param {Object} options
|
|
369
464
|
* @param {String} [options.password] optional
|
|
370
465
|
* @param {String} [options.captchaCode] optional
|
|
466
|
+
* @param {Boolean} [options.sendCAevents] optional - Whether to submit Call Analyzer events or not. Default: false.
|
|
371
467
|
* @public
|
|
372
468
|
* @memberof Meeting
|
|
373
469
|
* @returns {Promise}
|
|
374
470
|
*/
|
|
375
|
-
fetchMeetingInfo({ password, captchaCode, }: {
|
|
471
|
+
fetchMeetingInfo({ password, captchaCode, extraParams, sendCAevents, }: {
|
|
376
472
|
password?: string;
|
|
377
473
|
captchaCode?: string;
|
|
474
|
+
extraParams?: Record<string, any>;
|
|
475
|
+
sendCAevents?: boolean;
|
|
378
476
|
}): Promise<void>;
|
|
379
477
|
/**
|
|
380
478
|
* Checks if the supplied password/host key is correct. It returns a promise with information whether the
|
|
381
479
|
* password and captcha code were correct or not.
|
|
382
480
|
* @param {String} password - this can be either a password or a host key, can be undefined if only captcha was required
|
|
383
481
|
* @param {String} captchaCode - can be undefined if captcha was not required by the server
|
|
482
|
+
* @param {Boolean} sendCAevents - whether Call Analyzer events should be sent when fetching meeting information
|
|
384
483
|
* @public
|
|
385
484
|
* @memberof Meeting
|
|
386
485
|
* @returns {Promise<{isPasswordValid: boolean, requiredCaptcha: boolean, failureReason: MEETING_INFO_FAILURE_REASON}>}
|
|
387
486
|
*/
|
|
388
|
-
verifyPassword(password: string, captchaCode: string): Promise<{
|
|
487
|
+
verifyPassword(password: string, captchaCode: string, sendCAevents?: boolean): Promise<{
|
|
389
488
|
isPasswordValid: boolean;
|
|
390
489
|
requiredCaptcha: any;
|
|
391
490
|
failureReason: string;
|
|
@@ -402,6 +501,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
402
501
|
* @returns {Promise}
|
|
403
502
|
*/
|
|
404
503
|
refreshCaptcha(): any;
|
|
504
|
+
/**
|
|
505
|
+
* Posts metrics event for this meeting. Allows the app to send Call Analyzer events.
|
|
506
|
+
* @param {String} eventName - Call Analyzer event
|
|
507
|
+
* @public
|
|
508
|
+
* @memberof Meeting
|
|
509
|
+
* @returns {Promise}
|
|
510
|
+
*/
|
|
511
|
+
postMetrics(eventName: ClientEvent['name']): void;
|
|
405
512
|
/**
|
|
406
513
|
* Proxy function for all the listener set ups
|
|
407
514
|
* @returns {undefined}
|
|
@@ -410,70 +517,43 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
410
517
|
*/
|
|
411
518
|
private setUpLocusInfoListeners;
|
|
412
519
|
/**
|
|
413
|
-
* Set up the
|
|
520
|
+
* Set up the listeners for breakouts
|
|
414
521
|
* @returns {undefined}
|
|
415
522
|
* @private
|
|
416
523
|
* @memberof Meeting
|
|
417
524
|
*/
|
|
418
|
-
|
|
525
|
+
setUpBreakoutsListener(): void;
|
|
419
526
|
/**
|
|
420
|
-
* Set up the
|
|
527
|
+
* Set up the listeners for interpretation
|
|
421
528
|
* @returns {undefined}
|
|
422
529
|
* @private
|
|
423
530
|
* @memberof Meeting
|
|
424
531
|
*/
|
|
425
|
-
private
|
|
532
|
+
private setUpInterpretationListener;
|
|
426
533
|
/**
|
|
427
|
-
* Set up the
|
|
534
|
+
* Set up the locus info listener for meetings disconnected due to inactivity
|
|
428
535
|
* @returns {undefined}
|
|
429
536
|
* @private
|
|
430
537
|
* @memberof Meeting
|
|
431
538
|
*/
|
|
432
|
-
private
|
|
433
|
-
/**
|
|
434
|
-
* get the metrics payload pre
|
|
435
|
-
* @param {Object} options
|
|
436
|
-
* @param {String} options.event
|
|
437
|
-
* @param {String} options.trackingId
|
|
438
|
-
* @param {Object} options.locus
|
|
439
|
-
* @param {Array} options.mediaConnections
|
|
440
|
-
* @param {Object} options.errors
|
|
441
|
-
* @returns {Object}
|
|
442
|
-
* @memberof Meeting
|
|
443
|
-
*/
|
|
444
|
-
getAnalyzerMetricsPrePayload(options: {
|
|
445
|
-
event: string;
|
|
446
|
-
trackingId: string;
|
|
447
|
-
locus: object;
|
|
448
|
-
mediaConnections: Array<any>;
|
|
449
|
-
errors: object;
|
|
450
|
-
} | any): {};
|
|
539
|
+
private setUpLocusInfoMediaInactiveListener;
|
|
451
540
|
/**
|
|
452
|
-
*
|
|
453
|
-
* @
|
|
454
|
-
* @param {String} options.event
|
|
455
|
-
* @param {String} options.trackingId
|
|
456
|
-
* @param {Object} options.locus
|
|
457
|
-
* @param {Object} options.errors
|
|
458
|
-
* @returns {Promise}
|
|
541
|
+
* Set up the locus info listener for assign host permissions on a meeting
|
|
542
|
+
* @returns {undefined}
|
|
459
543
|
* @private
|
|
460
544
|
* @memberof Meeting
|
|
461
545
|
*/
|
|
462
|
-
private
|
|
546
|
+
private setUpLocusInfoAssignHostListener;
|
|
463
547
|
/**
|
|
464
|
-
*
|
|
465
|
-
* @
|
|
466
|
-
* @param {String} options.event
|
|
467
|
-
* @param {String} options.trackingId
|
|
468
|
-
* @param {Object} options.locus
|
|
469
|
-
* @returns {Promise}
|
|
548
|
+
* Set up the internal locus info full state object listener
|
|
549
|
+
* @returns {undefined}
|
|
470
550
|
* @private
|
|
471
551
|
* @memberof Meeting
|
|
472
552
|
*/
|
|
473
|
-
private
|
|
553
|
+
private setUpLocusFullStateListener;
|
|
474
554
|
/**
|
|
475
555
|
* sets the network status on meeting object
|
|
476
|
-
* @param {
|
|
556
|
+
* @param {NETWORK_STATUS} networkStatus
|
|
477
557
|
* @private
|
|
478
558
|
* @returns {undefined}
|
|
479
559
|
* @memberof Meeting
|
|
@@ -533,6 +613,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
533
613
|
* @memberof Meeting
|
|
534
614
|
*/
|
|
535
615
|
private setupLocusControlsListener;
|
|
616
|
+
/**
|
|
617
|
+
* Trigger annotation info update event
|
|
618
|
+
@returns {undefined}
|
|
619
|
+
@param {object} contentShare
|
|
620
|
+
@param {object} previousContentShare
|
|
621
|
+
*/
|
|
622
|
+
private triggerAnnotationInfoEvent;
|
|
536
623
|
/**
|
|
537
624
|
* Set up the locus info media shares listener
|
|
538
625
|
* update content and whiteboard sharing id value for members, and updates the member
|
|
@@ -567,6 +654,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
567
654
|
* @memberof meeting
|
|
568
655
|
*/
|
|
569
656
|
private setUpLocusInfoMeetingInfoListener;
|
|
657
|
+
/**
|
|
658
|
+
* Handles a data channel URL change
|
|
659
|
+
* @param {String} datachannelUrl
|
|
660
|
+
* @returns {void}
|
|
661
|
+
*/
|
|
662
|
+
handleDataChannelUrlChange(datachannelUrl: any): void;
|
|
570
663
|
/**
|
|
571
664
|
* Set up the locus info embedded apps listener
|
|
572
665
|
* @returns {undefined}
|
|
@@ -625,13 +718,23 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
625
718
|
phoneNumber: string;
|
|
626
719
|
}): any;
|
|
627
720
|
/**
|
|
628
|
-
* Admit the guest(s) to the call once they are waiting
|
|
721
|
+
* Admit the guest(s) to the call once they are waiting.
|
|
722
|
+
* If the host/cohost is in a breakout session, the locus url
|
|
723
|
+
* of the session must be provided as the authorizingLocusUrl.
|
|
724
|
+
* Regardless of host/cohost location, the locus Id (lid) in
|
|
725
|
+
* the path should be the locus Id of the main, which means the
|
|
726
|
+
* locus url of the api call must be from the main session.
|
|
727
|
+
* If these loucs urls are not provided, the function will do the check.
|
|
629
728
|
* @param {Array} memberIds
|
|
729
|
+
* @param {Object} sessionLocusUrls: {authorizingLocusUrl, mainLocusUrl}
|
|
630
730
|
* @returns {Promise} see #members.admitMembers
|
|
631
731
|
* @public
|
|
632
732
|
* @memberof Meeting
|
|
633
733
|
*/
|
|
634
|
-
admit(memberIds: Array<any
|
|
734
|
+
admit(memberIds: Array<any>, sessionLocusUrls?: {
|
|
735
|
+
authorizingLocusUrl: string;
|
|
736
|
+
mainLocusUrl: string;
|
|
737
|
+
}): any;
|
|
635
738
|
/**
|
|
636
739
|
* Remove the member from the meeting, boot them
|
|
637
740
|
* @param {String} memberId
|
|
@@ -665,48 +768,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
665
768
|
* @memberof Meeting
|
|
666
769
|
*/
|
|
667
770
|
getMembers(): Members;
|
|
668
|
-
/**
|
|
669
|
-
* Truthy when a meeting has an audio connection established
|
|
670
|
-
* @returns {Boolean} true if meeting audio is connected otherwise false
|
|
671
|
-
* @public
|
|
672
|
-
* @memberof Meeting
|
|
673
|
-
*/
|
|
674
|
-
isAudioConnected(): boolean;
|
|
675
|
-
/**
|
|
676
|
-
* Convenience function to tell whether a meeting is muted
|
|
677
|
-
* @returns {Boolean} if meeting audio muted or not
|
|
678
|
-
* @public
|
|
679
|
-
* @memberof Meeting
|
|
680
|
-
*/
|
|
681
|
-
isAudioMuted(): any;
|
|
682
|
-
/**
|
|
683
|
-
* Convenience function to tell if the end user last changed the audio state
|
|
684
|
-
* @returns {Boolean} if audio was manipulated by the end user
|
|
685
|
-
* @public
|
|
686
|
-
* @memberof Meeting
|
|
687
|
-
*/
|
|
688
|
-
isAudioSelf(): any;
|
|
689
|
-
/**
|
|
690
|
-
* Truthy when a meeting has a video connection established
|
|
691
|
-
* @returns {Boolean} true if meeting video connected otherwise false
|
|
692
|
-
* @public
|
|
693
|
-
* @memberof Meeting
|
|
694
|
-
*/
|
|
695
|
-
isVideoConnected(): boolean;
|
|
696
|
-
/**
|
|
697
|
-
* Convenience function to tell whether video is muted
|
|
698
|
-
* @returns {Boolean} if meeting video is muted or not
|
|
699
|
-
* @public
|
|
700
|
-
* @memberof Meeting
|
|
701
|
-
*/
|
|
702
|
-
isVideoMuted(): any;
|
|
703
|
-
/**
|
|
704
|
-
* Convenience function to tell whether the end user changed the video state
|
|
705
|
-
* @returns {Boolean} if meeting video is muted or not
|
|
706
|
-
* @public
|
|
707
|
-
* @memberof Meeting
|
|
708
|
-
*/
|
|
709
|
-
isVideoSelf(): any;
|
|
710
771
|
/**
|
|
711
772
|
* Sets the meeting info on the class instance
|
|
712
773
|
* @param {Object} meetingInfo
|
|
@@ -729,16 +790,29 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
729
790
|
};
|
|
730
791
|
} | any, destination?: object | string | null): void;
|
|
731
792
|
/**
|
|
732
|
-
*
|
|
733
|
-
* @
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
793
|
+
* Indicates whether policy can be applied
|
|
794
|
+
* @returns {boolean}
|
|
795
|
+
*/
|
|
796
|
+
private arePolicyRestrictionsSupported;
|
|
797
|
+
/**
|
|
798
|
+
* Updates the meeting actions (display hints), depends on locus display hints, user policy and app api info
|
|
737
799
|
* @returns {undefined}
|
|
738
800
|
* @private
|
|
739
801
|
* @memberof Meeting
|
|
740
802
|
*/
|
|
741
|
-
private
|
|
803
|
+
private updateMeetingActions;
|
|
804
|
+
/**
|
|
805
|
+
* Sets the self user policies based on the contents of the permission token
|
|
806
|
+
* @returns {void}
|
|
807
|
+
*/
|
|
808
|
+
setSelfUserPolicies(): void;
|
|
809
|
+
/**
|
|
810
|
+
* Sets the permission token payload on the class instance
|
|
811
|
+
*
|
|
812
|
+
* @param {String} permissionToken
|
|
813
|
+
* @returns {void}
|
|
814
|
+
*/
|
|
815
|
+
setPermissionTokenPayload(permissionToken: string): void;
|
|
742
816
|
/**
|
|
743
817
|
* Sets the sip uri on the class instance
|
|
744
818
|
* uses meeting info as precedence
|
|
@@ -748,14 +822,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
748
822
|
* @memberof Meeting
|
|
749
823
|
*/
|
|
750
824
|
setSipUri(sipUri: string): void;
|
|
751
|
-
/**
|
|
752
|
-
* Set the roap seq on the class instance
|
|
753
|
-
* @param {Number} seq
|
|
754
|
-
* @returns {undefined}
|
|
755
|
-
* @private
|
|
756
|
-
* @memberof Meeting
|
|
757
|
-
*/
|
|
758
|
-
setRoapSeq(seq: number): void;
|
|
759
825
|
/**
|
|
760
826
|
* Set the locus info the class instance
|
|
761
827
|
* @param {Object} locus
|
|
@@ -769,16 +835,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
769
835
|
* @private
|
|
770
836
|
* @memberof Meeting
|
|
771
837
|
*/
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
* @memberof Meeting
|
|
780
|
-
*/
|
|
781
|
-
setRemoteStream(pc: any): void;
|
|
838
|
+
setLocus(locus: {
|
|
839
|
+
mediaConnections: Array<any>;
|
|
840
|
+
locusUrl: string;
|
|
841
|
+
locusId: string;
|
|
842
|
+
mediaId: string;
|
|
843
|
+
host: object;
|
|
844
|
+
} | any): void;
|
|
782
845
|
/**
|
|
783
846
|
* Upload logs for the current meeting
|
|
784
847
|
* @param {object} options file name and function name
|
|
@@ -788,19 +851,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
788
851
|
*/
|
|
789
852
|
uploadLogs(options?: object): void;
|
|
790
853
|
/**
|
|
791
|
-
* Removes remote audio and
|
|
792
|
-
* to developers
|
|
854
|
+
* Removes remote audio, video and share streams from class instance's mediaProperties
|
|
793
855
|
* @returns {undefined}
|
|
794
|
-
* @public
|
|
795
|
-
* @memberof Meeting
|
|
796
|
-
* @deprecated after v1.89.3
|
|
797
856
|
*/
|
|
798
|
-
|
|
799
|
-
/**
|
|
800
|
-
* Removes remote audio, video and share tracks from class instance's mediaProperties
|
|
801
|
-
* @returns {undefined}
|
|
802
|
-
*/
|
|
803
|
-
unsetRemoteTracks(): void;
|
|
857
|
+
unsetRemoteStreams(): void;
|
|
804
858
|
/**
|
|
805
859
|
* Removes the remote stream on the class instance and triggers an event
|
|
806
860
|
* to developers
|
|
@@ -811,115 +865,92 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
811
865
|
*/
|
|
812
866
|
closeRemoteStream(): void;
|
|
813
867
|
/**
|
|
814
|
-
* Removes the remote
|
|
868
|
+
* Removes the remote streams on the class instance and triggers an event
|
|
815
869
|
* to developers
|
|
816
870
|
* @returns {undefined}
|
|
817
871
|
* @memberof Meeting
|
|
818
872
|
*/
|
|
819
|
-
|
|
820
|
-
/**
|
|
821
|
-
* Emits the 'media:ready' event with a local stream that consists of 1 local audio and 1 local video track
|
|
822
|
-
* @returns {undefined}
|
|
823
|
-
* @private
|
|
824
|
-
* @memberof Meeting
|
|
825
|
-
*/
|
|
826
|
-
private sendLocalMediaReadyEvent;
|
|
873
|
+
closeRemoteStreams(): Promise<[any, any, any]>;
|
|
827
874
|
/**
|
|
828
|
-
*
|
|
829
|
-
*
|
|
830
|
-
*
|
|
831
|
-
* @
|
|
832
|
-
* @
|
|
833
|
-
* @memberof Meeting
|
|
875
|
+
* Stores the reference to a new microphone stream, sets up the required event listeners
|
|
876
|
+
* on it, cleans up previous stream, etc.
|
|
877
|
+
*
|
|
878
|
+
* @param {LocalMicrophoneStream | null} localStream local microphone stream
|
|
879
|
+
* @returns {Promise<void>}
|
|
834
880
|
*/
|
|
835
|
-
private
|
|
881
|
+
private setLocalAudioStream;
|
|
836
882
|
/**
|
|
837
|
-
*
|
|
838
|
-
*
|
|
839
|
-
*
|
|
840
|
-
* @
|
|
841
|
-
* @
|
|
842
|
-
* @memberof Meeting
|
|
883
|
+
* Stores the reference to a new camera stream, sets up the required event listeners
|
|
884
|
+
* on it, cleans up previous stream, etc.
|
|
885
|
+
*
|
|
886
|
+
* @param {LocalCameraStream | null} localStream local camera stream
|
|
887
|
+
* @returns {Promise<void>}
|
|
843
888
|
*/
|
|
844
|
-
private
|
|
889
|
+
private setLocalVideoStream;
|
|
845
890
|
/**
|
|
846
|
-
*
|
|
847
|
-
*
|
|
848
|
-
*
|
|
849
|
-
*
|
|
850
|
-
* @
|
|
891
|
+
* Stores the reference to a new screen share stream, sets up the required event listeners
|
|
892
|
+
* on it, cleans up previous stream, etc.
|
|
893
|
+
* It also sends the floor grant/release request.
|
|
894
|
+
*
|
|
895
|
+
* @param {LocalDisplayStream | undefined} localDisplayStream local display stream
|
|
896
|
+
* @returns {Promise<void>}
|
|
851
897
|
*/
|
|
852
|
-
|
|
898
|
+
private setLocalShareVideoStream;
|
|
853
899
|
/**
|
|
854
|
-
*
|
|
855
|
-
*
|
|
856
|
-
*
|
|
857
|
-
* @
|
|
858
|
-
* @
|
|
900
|
+
* Stores the reference to a new screen share audio stream, sets up the required event listeners
|
|
901
|
+
* on it, cleans up previous stream, etc.
|
|
902
|
+
*
|
|
903
|
+
* @param {LocalSystemAudioStream | undefined} localSystemAudioStream local system audio stream
|
|
904
|
+
* @returns {Promise<void>}
|
|
859
905
|
*/
|
|
860
|
-
|
|
906
|
+
private setLocalShareAudioStream;
|
|
861
907
|
/**
|
|
862
|
-
*
|
|
908
|
+
* sets up listner for mercury event
|
|
863
909
|
* @returns {undefined}
|
|
864
|
-
* @event media:stopped
|
|
865
910
|
* @public
|
|
866
911
|
* @memberof Meeting
|
|
867
912
|
*/
|
|
868
|
-
|
|
913
|
+
setMercuryListener(): void;
|
|
869
914
|
/**
|
|
870
|
-
*
|
|
871
|
-
*
|
|
872
|
-
*
|
|
915
|
+
* Close the peer connections and remove them from the class.
|
|
916
|
+
* Cleanup any media connection related things.
|
|
917
|
+
*
|
|
918
|
+
* @returns {Promise}
|
|
873
919
|
* @public
|
|
874
920
|
* @memberof Meeting
|
|
875
921
|
*/
|
|
876
|
-
|
|
922
|
+
closePeerConnections(): Promise<void>;
|
|
877
923
|
/**
|
|
878
|
-
*
|
|
924
|
+
* Unsets the peer connections on the class
|
|
925
|
+
* warning DO NOT CALL WITHOUT CLOSING PEER CONNECTIONS FIRST
|
|
879
926
|
* @returns {undefined}
|
|
880
927
|
* @public
|
|
881
928
|
* @memberof Meeting
|
|
882
929
|
*/
|
|
883
|
-
|
|
930
|
+
unsetPeerConnections(): void;
|
|
884
931
|
/**
|
|
885
|
-
*
|
|
932
|
+
* Convenience method to set the correlation id for the callStateForMetrics
|
|
933
|
+
* @param {String} id correlation id to set on the callStateForMetrics
|
|
886
934
|
* @returns {undefined}
|
|
887
935
|
* @public
|
|
888
936
|
* @memberof Meeting
|
|
889
937
|
*/
|
|
890
|
-
|
|
938
|
+
setCorrelationId(id: string): void;
|
|
891
939
|
/**
|
|
892
|
-
*
|
|
940
|
+
* Update the callStateForMetrics
|
|
941
|
+
* @param {CallStateForMetrics} callStateForMetrics updated values for callStateForMetrics
|
|
893
942
|
* @returns {undefined}
|
|
894
943
|
* @public
|
|
895
944
|
* @memberof Meeting
|
|
896
945
|
*/
|
|
897
|
-
|
|
946
|
+
updateCallStateForMetrics(callStateForMetrics: CallStateForMetrics): void;
|
|
898
947
|
/**
|
|
899
|
-
*
|
|
900
|
-
*
|
|
901
|
-
* @returns {Promise} returns a resolved promise with an array of closed peer connections
|
|
902
|
-
* @public
|
|
903
|
-
* @memberof Meeting
|
|
904
|
-
*/
|
|
905
|
-
closePeerConnections(): any;
|
|
906
|
-
/**
|
|
907
|
-
* Unsets the peer connections on the class
|
|
908
|
-
* warning DO NOT CALL WITHOUT CLOSING PEER CONNECTIONS FIRST
|
|
909
|
-
* @param {PeerConnection} peerConnection
|
|
910
|
-
* @returns {undefined}
|
|
911
|
-
* @public
|
|
912
|
-
* @memberof Meeting
|
|
913
|
-
*/
|
|
914
|
-
unsetPeerConnections(): void;
|
|
915
|
-
/**
|
|
916
|
-
* Convenience method to set the correlation id for the Meeting
|
|
917
|
-
* @param {String} id correlation id to set on the class
|
|
918
|
-
* @returns {undefined}
|
|
948
|
+
* Enqueue request for screenshare floor and set the status to pending
|
|
949
|
+
* @returns {Promise}
|
|
919
950
|
* @private
|
|
920
951
|
* @memberof Meeting
|
|
921
952
|
*/
|
|
922
|
-
private
|
|
953
|
+
private enqueueScreenShareFloorRequest;
|
|
923
954
|
/**
|
|
924
955
|
* Mute the audio for a meeting
|
|
925
956
|
* @returns {Promise} resolves the data from muting audio {mute, self} or rejects if there is no audio set
|
|
@@ -952,32 +983,25 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
952
983
|
* Shorthand function to join AND set up media
|
|
953
984
|
* @param {Object} options - options to join with media
|
|
954
985
|
* @param {JoinOptions} [options.joinOptions] - see #join()
|
|
955
|
-
* @param {
|
|
956
|
-
* @
|
|
957
|
-
* @returns {Promise} -- {join: see join(), media: see addMedia(), local: see getMediaStreams()}
|
|
986
|
+
* @param {AddMediaOptions} [options.mediaOptions] - see #addMedia()
|
|
987
|
+
* @returns {Promise} -- {join: see join(), media: see addMedia()}
|
|
958
988
|
* @public
|
|
959
989
|
* @memberof Meeting
|
|
960
990
|
* @example
|
|
961
991
|
* joinWithMedia({
|
|
962
992
|
* joinOptions: {resourceId: 'resourceId' },
|
|
963
|
-
*
|
|
964
|
-
*
|
|
965
|
-
*
|
|
966
|
-
*
|
|
967
|
-
* receiveVideo:true,
|
|
968
|
-
* receiveAudio: true,
|
|
969
|
-
* receiveShare: true
|
|
970
|
-
* }
|
|
971
|
-
* audioVideoOptions: {
|
|
972
|
-
* audio: 'audioDeviceId',
|
|
973
|
-
* video: 'videoDeviceId'
|
|
974
|
-
* }})
|
|
993
|
+
* mediaOptions: {
|
|
994
|
+
* localStreams: { microphone: microphoneStream, camera: cameraStream }
|
|
995
|
+
* }
|
|
996
|
+
* })
|
|
975
997
|
*/
|
|
976
998
|
joinWithMedia(options?: {
|
|
977
999
|
joinOptions?: any;
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
1000
|
+
mediaOptions?: AddMediaOptions;
|
|
1001
|
+
}): Promise<{
|
|
1002
|
+
join: any;
|
|
1003
|
+
media: void;
|
|
1004
|
+
}>;
|
|
981
1005
|
/**
|
|
982
1006
|
* Initiates the reconnection of the media in the meeting
|
|
983
1007
|
*
|
|
@@ -993,6 +1017,11 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
993
1017
|
* @throws TranscriptionNotSupportedError
|
|
994
1018
|
*/
|
|
995
1019
|
isTranscriptionSupported(): boolean;
|
|
1020
|
+
/**
|
|
1021
|
+
* Check if the meeting supports the Reactions
|
|
1022
|
+
* @returns {boolean}
|
|
1023
|
+
*/
|
|
1024
|
+
isReactionsSupported(): boolean;
|
|
996
1025
|
/**
|
|
997
1026
|
* Monitor the Low-Latency Mercury (LLM) web socket connection on `onError` and `onClose` states
|
|
998
1027
|
* @private
|
|
@@ -1005,6 +1034,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1005
1034
|
* @returns {Promise<void>} a promise to open the WebSocket connection
|
|
1006
1035
|
*/
|
|
1007
1036
|
private startTranscription;
|
|
1037
|
+
/**
|
|
1038
|
+
* Callback called when a relay event is received from meeting LLM Connection
|
|
1039
|
+
* @param {RelayEvent} e Event object coming from LLM Connection
|
|
1040
|
+
* @private
|
|
1041
|
+
* @returns {void}
|
|
1042
|
+
*/
|
|
1043
|
+
private processRelayEvent;
|
|
1008
1044
|
/**
|
|
1009
1045
|
* stop recieving Transcription by closing
|
|
1010
1046
|
* the web socket connection properly
|
|
@@ -1030,7 +1066,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1030
1066
|
* if joining as host on second loop, pass pin and pass moderator if joining as guest on second loop
|
|
1031
1067
|
* Scenario D: Joining any other way (sip, pstn, conversationUrl, link just need to specify resourceId)
|
|
1032
1068
|
*/
|
|
1033
|
-
join(options?: any): any
|
|
1069
|
+
join(options?: any): Promise<any>;
|
|
1070
|
+
/**
|
|
1071
|
+
* Connects to low latency mercury and reconnects if the address has changed
|
|
1072
|
+
* It will also disconnect if called when the meeting has ended
|
|
1073
|
+
* @param {String} datachannelUrl
|
|
1074
|
+
* @returns {Promise}
|
|
1075
|
+
*/
|
|
1076
|
+
updateLLMConnection(): Promise<any>;
|
|
1034
1077
|
/**
|
|
1035
1078
|
* Use phone for meeting audio
|
|
1036
1079
|
* @param {String} phoneNumber If provided, it will dial-out using this number. If not provided, dial-in will be used
|
|
@@ -1038,7 +1081,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1038
1081
|
* @public
|
|
1039
1082
|
* @memberof Meeting
|
|
1040
1083
|
*/
|
|
1041
|
-
usePhoneAudio(phoneNumber: string): any
|
|
1084
|
+
usePhoneAudio(phoneNumber: string): Promise<any>;
|
|
1042
1085
|
/**
|
|
1043
1086
|
* Determines if the given pstnStatus is in a state which implies the phone is provisioned
|
|
1044
1087
|
* @param {String} pstnStatus
|
|
@@ -1087,34 +1130,19 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1087
1130
|
*/
|
|
1088
1131
|
moveFrom(resourceId: string): any;
|
|
1089
1132
|
/**
|
|
1090
|
-
*
|
|
1091
|
-
*
|
|
1092
|
-
* @param {
|
|
1093
|
-
* @
|
|
1094
|
-
* @returns {Promise} see #Media.getUserMedia
|
|
1095
|
-
* @public
|
|
1096
|
-
* @todo should be static, or moved so can be called outside of a meeting
|
|
1097
|
-
* @memberof Meeting
|
|
1098
|
-
*/
|
|
1099
|
-
getMediaStreams: (mediaDirection: any, audioVideo?: any, sharePreferences?: any) => any;
|
|
1100
|
-
/**
|
|
1101
|
-
* Checks if the machine has at least one audio or video device
|
|
1102
|
-
* @param {Object} options
|
|
1103
|
-
* @param {Boolean} options.sendAudio
|
|
1104
|
-
* @param {Boolean} options.sendVideo
|
|
1105
|
-
* @returns {Object}
|
|
1106
|
-
* @memberof Meetings
|
|
1133
|
+
* Handles ROAP_FAILURE event from the webrtc media connection
|
|
1134
|
+
*
|
|
1135
|
+
* @param {Error} error
|
|
1136
|
+
* @returns {void}
|
|
1107
1137
|
*/
|
|
1108
|
-
|
|
1109
|
-
sendAudio: boolean;
|
|
1110
|
-
sendVideo: boolean;
|
|
1111
|
-
}) => any;
|
|
1138
|
+
handleRoapFailure: (error: any) => void;
|
|
1112
1139
|
/**
|
|
1113
|
-
*
|
|
1114
|
-
*
|
|
1115
|
-
* @
|
|
1140
|
+
* This function makes sure we send the right metrics when local and remote SDPs are processed/generated
|
|
1141
|
+
*
|
|
1142
|
+
* @returns {undefined}
|
|
1116
1143
|
*/
|
|
1117
|
-
|
|
1144
|
+
setupSdpListeners: () => void;
|
|
1145
|
+
setupMediaConnectionListeners: () => void;
|
|
1118
1146
|
/**
|
|
1119
1147
|
* Registers for all required StatsAnalyzer events
|
|
1120
1148
|
* @private
|
|
@@ -1122,23 +1150,142 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1122
1150
|
* @memberof Meetings
|
|
1123
1151
|
*/
|
|
1124
1152
|
setupStatsAnalyzerEventHandlers: () => void;
|
|
1153
|
+
getMediaConnectionDebugId(): string;
|
|
1125
1154
|
/**
|
|
1126
|
-
*
|
|
1127
|
-
*
|
|
1128
|
-
* @param {Object}
|
|
1129
|
-
* @param {
|
|
1130
|
-
* @param {
|
|
1131
|
-
* @
|
|
1132
|
-
|
|
1155
|
+
* Creates a webrtc media connection and publishes streams to it
|
|
1156
|
+
*
|
|
1157
|
+
* @param {Object} turnServerInfo TURN server information
|
|
1158
|
+
* @param {BundlePolicy} [bundlePolicy] Bundle policy settings
|
|
1159
|
+
* @param {AddMediaOptions} [options] Options for enabling/disabling audio/video
|
|
1160
|
+
* @returns {RoapMediaConnection | MultistreamRoapMediaConnection}
|
|
1161
|
+
*/
|
|
1162
|
+
private createMediaConnection;
|
|
1163
|
+
/**
|
|
1164
|
+
* Listens for an event emitted by eventEmitter and emits it from the meeting object
|
|
1165
|
+
*
|
|
1166
|
+
* @private
|
|
1167
|
+
* @param {*} eventEmitter object from which to forward the event
|
|
1168
|
+
* @param {*} eventTypeToForward which event type to listen on and to forward
|
|
1169
|
+
* @param {string} meetingEventType event type to be used in the event emitted from the meeting object
|
|
1170
|
+
* @returns {void}
|
|
1171
|
+
*/
|
|
1172
|
+
forwardEvent(eventEmitter: any, eventTypeToForward: any, meetingEventType: any): void;
|
|
1173
|
+
/**
|
|
1174
|
+
* Sets up all the references to local streams in this.mediaProperties before creating media connection
|
|
1175
|
+
* and before TURN discovery, so that the correct mute state is sent with TURN discovery roap messages.
|
|
1176
|
+
*
|
|
1177
|
+
* @private
|
|
1178
|
+
* @param {LocalStreams} localStreams
|
|
1179
|
+
* @returns {Promise<void>}
|
|
1180
|
+
*/
|
|
1181
|
+
private setUpLocalStreamReferences;
|
|
1182
|
+
/**
|
|
1183
|
+
* Calls mediaProperties.waitForMediaConnectionConnected() and sends CA client.ice.end metric on failure
|
|
1184
|
+
*
|
|
1185
|
+
* @private
|
|
1186
|
+
* @returns {Promise<void>}
|
|
1187
|
+
*/
|
|
1188
|
+
private waitForMediaConnectionConnected;
|
|
1189
|
+
/**
|
|
1190
|
+
* Enables statsAnalyser if config allows it
|
|
1191
|
+
*
|
|
1192
|
+
* @private
|
|
1193
|
+
* @returns {void}
|
|
1194
|
+
*/
|
|
1195
|
+
private createStatsAnalyzer;
|
|
1196
|
+
/**
|
|
1197
|
+
* Handles device logging
|
|
1198
|
+
*
|
|
1199
|
+
* @private
|
|
1200
|
+
* @static
|
|
1201
|
+
* @returns {Promise<void>}
|
|
1202
|
+
*/
|
|
1203
|
+
private static handleDeviceLogging;
|
|
1204
|
+
/**
|
|
1205
|
+
* Returns a promise. This promise is created once the local sdp offer has been successfully created and is resolved
|
|
1206
|
+
* once the remote sdp answer has been received.
|
|
1207
|
+
*
|
|
1208
|
+
* @private
|
|
1209
|
+
* @returns {Promise<void>}
|
|
1210
|
+
*/
|
|
1211
|
+
private waitForRemoteSDPAnswer;
|
|
1212
|
+
/**
|
|
1213
|
+
* Calls establishMediaConnection with isForced = true to force turn discovery to happen
|
|
1214
|
+
*
|
|
1215
|
+
* @private
|
|
1216
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1217
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1218
|
+
* @returns {Promise<void>}
|
|
1219
|
+
*/
|
|
1220
|
+
private retryEstablishMediaConnectionWithForcedTurnDiscovery;
|
|
1221
|
+
/**
|
|
1222
|
+
* Does relevant clean up before retrying to establish media connection
|
|
1223
|
+
* and performs the retry with forced turn discovery
|
|
1224
|
+
*
|
|
1225
|
+
* @private
|
|
1226
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1227
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1228
|
+
* @returns {Promise<void>}
|
|
1229
|
+
*/
|
|
1230
|
+
private retryWithForcedTurnDiscovery;
|
|
1231
|
+
/**
|
|
1232
|
+
* If waitForMediaConnectionConnected() fails when we haven't done turn discovery then we
|
|
1233
|
+
* attempt to establish a media connection again, but this time using turn discovery. If we
|
|
1234
|
+
* used turn discovery on the first pass we do not attempt connection again.
|
|
1235
|
+
*
|
|
1236
|
+
* @private
|
|
1237
|
+
* @param {Error} error
|
|
1238
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1239
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1240
|
+
* @returns {Promise<void>}
|
|
1241
|
+
*/
|
|
1242
|
+
private handleWaitForMediaConnectionConnectedError;
|
|
1243
|
+
/**
|
|
1244
|
+
* Does TURN discovery, SDP offer/answer exhange, establishes ICE connection and DTLS handshake.
|
|
1245
|
+
*
|
|
1246
|
+
* @private
|
|
1247
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1248
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1249
|
+
* @param {boolean} [isForced] - let isForced be true to do turn discovery regardless of reachability results
|
|
1250
|
+
* @returns {Promise<void>}
|
|
1251
|
+
*/
|
|
1252
|
+
private establishMediaConnection;
|
|
1253
|
+
/**
|
|
1254
|
+
* Cleans up stats analyzer, peer connection, and turns off listeners
|
|
1255
|
+
*
|
|
1256
|
+
* @private
|
|
1257
|
+
* @returns {Promise<void>}
|
|
1258
|
+
*/
|
|
1259
|
+
private cleanUpOnAddMediaFailure;
|
|
1260
|
+
/**
|
|
1261
|
+
* Sends stats report, closes peer connection and cleans up any media connection
|
|
1262
|
+
* related things before trying to establish media connection again with turn server
|
|
1263
|
+
*
|
|
1264
|
+
* @private
|
|
1265
|
+
* @returns {Promise<void>}
|
|
1266
|
+
*/
|
|
1267
|
+
private cleanUpBeforeRetryWithTurnServer;
|
|
1268
|
+
/**
|
|
1269
|
+
* Creates a media connection to the server. Media connection is required for sending or receiving any audio/video.
|
|
1270
|
+
*
|
|
1271
|
+
* @param {AddMediaOptions} options
|
|
1272
|
+
* @returns {Promise<void>}
|
|
1133
1273
|
* @public
|
|
1134
1274
|
* @memberof Meeting
|
|
1135
1275
|
*/
|
|
1136
|
-
addMedia(options?:
|
|
1276
|
+
addMedia(options?: AddMediaOptions): Promise<void>;
|
|
1137
1277
|
/**
|
|
1138
1278
|
* Informs if the peer connection is in a state that can be updated with updateMedia (audio/video/share)
|
|
1139
1279
|
* @returns {Boolean}
|
|
1140
1280
|
*/
|
|
1141
1281
|
canUpdateMedia(): boolean;
|
|
1282
|
+
/**
|
|
1283
|
+
* media failed, so collect a stats report from webrtc using the wcme connection to grab the rtc stats report
|
|
1284
|
+
* send a webrtc telemetry dump to the configured server using the internal media core check metrics configured callback
|
|
1285
|
+
* @param {String} callFrom - the function calling this function, optional.
|
|
1286
|
+
* @returns {Promise<void>}
|
|
1287
|
+
*/
|
|
1288
|
+
private forceSendStatsReport;
|
|
1142
1289
|
/**
|
|
1143
1290
|
* Enqueues a media update operation.
|
|
1144
1291
|
* @param {String} mediaUpdateType one of MEDIA_UPDATE_TYPE values
|
|
@@ -1164,86 +1311,26 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1164
1311
|
*/
|
|
1165
1312
|
processNextQueuedMediaUpdate: () => void;
|
|
1166
1313
|
/**
|
|
1167
|
-
*
|
|
1168
|
-
*
|
|
1169
|
-
*
|
|
1170
|
-
*
|
|
1171
|
-
*
|
|
1172
|
-
*
|
|
1173
|
-
* @returns {Promise}
|
|
1174
|
-
* @todo fix setRemoteStream for updateMedia
|
|
1175
|
-
* @public
|
|
1176
|
-
* @memberof Meeting
|
|
1177
|
-
*/
|
|
1178
|
-
updateMedia(options?: {
|
|
1179
|
-
localStream?: MediaStream;
|
|
1180
|
-
localShare?: MediaStream;
|
|
1181
|
-
mediaSettings?: any;
|
|
1182
|
-
}): any;
|
|
1183
|
-
/**
|
|
1184
|
-
* Update the main audio track with new parameters
|
|
1185
|
-
* @param {Object} options
|
|
1186
|
-
* @param {boolean} options.sendAudio
|
|
1187
|
-
* @param {boolean} options.receiveAudio
|
|
1188
|
-
* @param {MediaStream} options.stream Stream that contains the audio track to update
|
|
1189
|
-
* @returns {Promise}
|
|
1190
|
-
* @public
|
|
1191
|
-
* @memberof Meeting
|
|
1192
|
-
*/
|
|
1193
|
-
updateAudio(options: {
|
|
1194
|
-
sendAudio: boolean;
|
|
1195
|
-
receiveAudio: boolean;
|
|
1196
|
-
stream: MediaStream;
|
|
1197
|
-
}): Promise<any>;
|
|
1198
|
-
/**
|
|
1199
|
-
* Update the main video track with new parameters
|
|
1200
|
-
* @param {Object} options
|
|
1201
|
-
* @param {boolean} options.sendVideo
|
|
1202
|
-
* @param {boolean} options.receiveVideo
|
|
1203
|
-
* @param {MediaStream} options.stream Stream that contains the video track to update
|
|
1204
|
-
* @returns {Promise}
|
|
1205
|
-
* @public
|
|
1206
|
-
* @memberof Meeting
|
|
1207
|
-
*/
|
|
1208
|
-
updateVideo(options: {
|
|
1209
|
-
sendVideo: boolean;
|
|
1210
|
-
receiveVideo: boolean;
|
|
1211
|
-
stream: MediaStream;
|
|
1212
|
-
}): any;
|
|
1213
|
-
/**
|
|
1214
|
-
* Internal function when stopping a share stream, cleanup
|
|
1215
|
-
* @param {boolean} sendShare
|
|
1216
|
-
* @param {boolean} previousShareStatus
|
|
1217
|
-
* @returns {Promise}
|
|
1218
|
-
* @private
|
|
1219
|
-
* @memberof Meeting
|
|
1220
|
-
*/
|
|
1221
|
-
private checkForStopShare;
|
|
1222
|
-
/**
|
|
1223
|
-
* Update the share streams, can be used to start sharing
|
|
1314
|
+
* Updates the media connection - it allows to enable/disable all audio/video/share in the meeting.
|
|
1315
|
+
* This does not affect the published tracks, so for example if a microphone track is published and
|
|
1316
|
+
* updateMedia({audioEnabled: false}) is called, the audio will not be sent or received anymore,
|
|
1317
|
+
* but the track's "published" state is not changed and when updateMedia({audioEnabled: true}) is called,
|
|
1318
|
+
* the sending of the audio from the same track will resume.
|
|
1319
|
+
*
|
|
1224
1320
|
* @param {Object} options
|
|
1225
|
-
* @param {boolean} options.
|
|
1226
|
-
* @param {boolean} options.
|
|
1321
|
+
* @param {boolean} options.audioEnabled [optional] enables/disables receiving and sending of main audio in the meeting
|
|
1322
|
+
* @param {boolean} options.videoEnabled [optional] enables/disables receiving and sending of main video in the meeting
|
|
1323
|
+
* @param {boolean} options.shareEnabled [optional] enables/disables receiving and sending of screen share in the meeting
|
|
1227
1324
|
* @returns {Promise}
|
|
1228
1325
|
* @public
|
|
1229
1326
|
* @memberof Meeting
|
|
1230
1327
|
*/
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
}):
|
|
1237
|
-
/**
|
|
1238
|
-
* Do all the attach media pre set up before executing the actual attach
|
|
1239
|
-
* @param {MediaStream} localStream
|
|
1240
|
-
* @param {MediaStream} localShare
|
|
1241
|
-
* @param {MediaDirection} mediaSettings
|
|
1242
|
-
* @returns {undefined}
|
|
1243
|
-
* @private
|
|
1244
|
-
* @memberof Meeting
|
|
1245
|
-
*/
|
|
1246
|
-
private preMedia;
|
|
1328
|
+
updateMedia(options: {
|
|
1329
|
+
audioEnabled?: boolean;
|
|
1330
|
+
videoEnabled?: boolean;
|
|
1331
|
+
shareAudioEnabled?: boolean;
|
|
1332
|
+
shareVideoEnabled?: boolean;
|
|
1333
|
+
}): Promise<void>;
|
|
1247
1334
|
/**
|
|
1248
1335
|
* Acknowledge the meeting, outgoing or incoming
|
|
1249
1336
|
* @param {String} type
|
|
@@ -1251,7 +1338,11 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1251
1338
|
* @public
|
|
1252
1339
|
* @memberof Meeting
|
|
1253
1340
|
*/
|
|
1254
|
-
acknowledge(type: string):
|
|
1341
|
+
acknowledge(type: string): Promise<{
|
|
1342
|
+
response: any;
|
|
1343
|
+
}> | Promise<{
|
|
1344
|
+
message: string;
|
|
1345
|
+
}>;
|
|
1255
1346
|
/**
|
|
1256
1347
|
* Decline this meeting
|
|
1257
1348
|
* @param {String} reason
|
|
@@ -1261,15 +1352,45 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1261
1352
|
*/
|
|
1262
1353
|
decline(reason: string): any;
|
|
1263
1354
|
/**
|
|
1264
|
-
*
|
|
1355
|
+
* Returns a promise that will resolve to fetch options for leaving a meeting.
|
|
1356
|
+
*
|
|
1357
|
+
* This is to support quickly submitting a leave request when the browser/tab is closing.
|
|
1358
|
+
* Calling meeting.leave will not work because there are some async steps that will
|
|
1359
|
+
* not complete before the browser is closed. Instead, we pre-gather all the
|
|
1360
|
+
* information/options needed for the request(s), and then simply and quickly
|
|
1361
|
+
* fire the fetch(es) when pagehide is triggered.
|
|
1362
|
+
*
|
|
1363
|
+
* We must use fetch instead of request because fetch has a keepalive option that
|
|
1364
|
+
* allows the request it to outlive the page.
|
|
1365
|
+
*
|
|
1366
|
+
* Note: the $timings values will be wrong, but setRequestTimingsAndFetch() will
|
|
1367
|
+
* properly adjust them before submitting.
|
|
1368
|
+
*
|
|
1369
|
+
* @public
|
|
1265
1370
|
* @param {Object} options leave options
|
|
1266
1371
|
* @param {String} options.resourceId the device with which to leave from, empty if just the computer
|
|
1372
|
+
* @param {any} options.reason the reason for leaving
|
|
1373
|
+
* @returns {Promise} resolves to options to be used with fetch
|
|
1374
|
+
*/
|
|
1375
|
+
buildLeaveFetchRequestOptions(options?: {
|
|
1376
|
+
resourceId?: string;
|
|
1377
|
+
reason?: any;
|
|
1378
|
+
}): any;
|
|
1379
|
+
/**
|
|
1380
|
+
* Leave the current meeting
|
|
1381
|
+
* @param {Object} options - leave options
|
|
1382
|
+
* @param {String} [options.resourceId] - the device with which to leave from, empty if just the computer
|
|
1383
|
+
* @param {String} [options.clientEventLeaveReason] - the leaveReason to include in the Call Analyzer event.
|
|
1384
|
+
* Must be one of: 'paired-leave' | 'one-to-one' | 'ended-by-locus' (defaults to no reason)
|
|
1385
|
+
* https://sqbu-github.cisco.com/WebExSquared/event-dictionary/blob/main/diagnostic-events.raml#L796
|
|
1386
|
+
* @param {String} [options.reason] - only used for logging
|
|
1267
1387
|
* @returns {Promise}
|
|
1268
1388
|
* @public
|
|
1269
1389
|
* @memberof Meeting
|
|
1270
1390
|
*/
|
|
1271
1391
|
leave(options?: {
|
|
1272
1392
|
resourceId?: string;
|
|
1393
|
+
clientEventLeaveReason?: ClientEventLeaveReason;
|
|
1273
1394
|
reason?: any;
|
|
1274
1395
|
}): any;
|
|
1275
1396
|
/**
|
|
@@ -1297,12 +1418,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1297
1418
|
*/
|
|
1298
1419
|
private requestScreenShareFloor;
|
|
1299
1420
|
/**
|
|
1300
|
-
*
|
|
1301
|
-
*
|
|
1302
|
-
*
|
|
1303
|
-
* @
|
|
1421
|
+
* Requests screen share floor if such request is pending.
|
|
1422
|
+
* It should be called whenever meeting state changes to JOINED
|
|
1423
|
+
*
|
|
1424
|
+
* @returns {void}
|
|
1304
1425
|
*/
|
|
1305
|
-
|
|
1426
|
+
private requestScreenShareFloorIfPending;
|
|
1306
1427
|
/**
|
|
1307
1428
|
* Sends a request to Locus to release the screen share floor.
|
|
1308
1429
|
* @returns {Promise} see #meetingRequest.changeMeetingFloor
|
|
@@ -1333,6 +1454,16 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1333
1454
|
* @memberof Meeting
|
|
1334
1455
|
*/
|
|
1335
1456
|
setDisallowUnmute(enabled: boolean): Promise<any>;
|
|
1457
|
+
/**
|
|
1458
|
+
* set the mute all flag for participants if you're the host
|
|
1459
|
+
* @returns {Promise}
|
|
1460
|
+
* @param {boolean} mutedEnabled
|
|
1461
|
+
* @param {boolean} disallowUnmuteEnabled
|
|
1462
|
+
* @param {boolean} muteOnEntryEnabled
|
|
1463
|
+
* @public
|
|
1464
|
+
* @memberof Meeting
|
|
1465
|
+
*/
|
|
1466
|
+
setMuteAll(mutedEnabled: boolean, disallowUnmuteEnabled: boolean, muteOnEntryEnabled: boolean): Promise<any>;
|
|
1336
1467
|
/**
|
|
1337
1468
|
* End the recording of this meeting
|
|
1338
1469
|
* @returns {Promise}
|
|
@@ -1383,7 +1514,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1383
1514
|
* @public
|
|
1384
1515
|
* @memberof Meeting
|
|
1385
1516
|
*/
|
|
1386
|
-
sendDTMF(tones: string): any
|
|
1517
|
+
sendDTMF(tones: string): Promise<any>;
|
|
1387
1518
|
/**
|
|
1388
1519
|
* Sends request to change layout type for the current meeting for the specific participant/device only
|
|
1389
1520
|
* @param {String} [layoutType] a layout type that should be available in meeting constants {@link #layout_types}
|
|
@@ -1408,50 +1539,41 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1408
1539
|
height: number;
|
|
1409
1540
|
};
|
|
1410
1541
|
}): any;
|
|
1411
|
-
/**
|
|
1412
|
-
* Sets the quality of the local video stream
|
|
1413
|
-
* @param {String} level {LOW|MEDIUM|HIGH}
|
|
1414
|
-
* @returns {Promise<MediaStream>} localStream
|
|
1415
|
-
*/
|
|
1416
|
-
setLocalVideoQuality(level: string): any;
|
|
1417
1542
|
/**
|
|
1418
1543
|
* Sets the quality level of the remote incoming media
|
|
1419
1544
|
* @param {String} level {LOW|MEDIUM|HIGH}
|
|
1420
1545
|
* @returns {Promise}
|
|
1421
1546
|
*/
|
|
1422
|
-
setRemoteQualityLevel(level: string):
|
|
1547
|
+
setRemoteQualityLevel(level: string): Promise<void>;
|
|
1423
1548
|
/**
|
|
1424
|
-
*
|
|
1425
|
-
* @
|
|
1426
|
-
* @
|
|
1427
|
-
* @
|
|
1549
|
+
* Functionality for when a share audio is ended.
|
|
1550
|
+
* @private
|
|
1551
|
+
* @memberof Meeting
|
|
1552
|
+
* @returns {undefined}
|
|
1428
1553
|
*/
|
|
1429
|
-
|
|
1554
|
+
private handleShareAudioStreamEnded;
|
|
1430
1555
|
/**
|
|
1431
|
-
*
|
|
1432
|
-
* @
|
|
1433
|
-
* @
|
|
1434
|
-
* @param {
|
|
1435
|
-
* @
|
|
1436
|
-
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints}
|
|
1437
|
-
* @param {Boolean} options.sharePreferences.highFrameRate if shareConstraints isn't provided, set default values based off of this boolean
|
|
1438
|
-
* @returns {Promise}
|
|
1556
|
+
* Functionality for when a share video is muted or unmuted.
|
|
1557
|
+
* @private
|
|
1558
|
+
* @memberof Meeting
|
|
1559
|
+
* @param {boolean} muted
|
|
1560
|
+
* @returns {undefined}
|
|
1439
1561
|
*/
|
|
1440
|
-
|
|
1441
|
-
sendAudio: boolean;
|
|
1442
|
-
sendShare: boolean;
|
|
1443
|
-
sharePreferences: {
|
|
1444
|
-
shareConstraints: MediaTrackConstraints;
|
|
1445
|
-
};
|
|
1446
|
-
}): any;
|
|
1562
|
+
private handleShareVideoStreamMuteStateChange;
|
|
1447
1563
|
/**
|
|
1448
|
-
* Functionality for when a share is ended.
|
|
1564
|
+
* Functionality for when a share video is ended.
|
|
1449
1565
|
* @private
|
|
1450
1566
|
* @memberof Meeting
|
|
1451
|
-
* @param {MediaStream} localShare
|
|
1452
1567
|
* @returns {undefined}
|
|
1453
1568
|
*/
|
|
1454
|
-
private
|
|
1569
|
+
private handleShareVideoStreamEnded;
|
|
1570
|
+
/**
|
|
1571
|
+
* Emits meeting:stoppedSharingLocal
|
|
1572
|
+
* @private
|
|
1573
|
+
* @returns {undefined}
|
|
1574
|
+
* @memberof Meeting
|
|
1575
|
+
*/
|
|
1576
|
+
private triggerStoppedSharing;
|
|
1455
1577
|
/**
|
|
1456
1578
|
* Emits the 'network:quality' event
|
|
1457
1579
|
* 1 indicates an acceptable uplink network.
|
|
@@ -1466,92 +1588,16 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1466
1588
|
private sendNetworkQualityEvent;
|
|
1467
1589
|
/**
|
|
1468
1590
|
* Handle logging the media
|
|
1469
|
-
* @param {Object}
|
|
1470
|
-
* @param {Object} videoTrack The video track
|
|
1591
|
+
* @param {Object} mediaProperties
|
|
1471
1592
|
* @private
|
|
1472
1593
|
* @returns {undefined}
|
|
1473
1594
|
*/
|
|
1474
1595
|
private handleMediaLogging;
|
|
1475
|
-
/**
|
|
1476
|
-
* @param {string} typeMedia 'audio' or 'video'
|
|
1477
|
-
* @returns {undefined}
|
|
1478
|
-
*/
|
|
1479
|
-
setStartSetupDelay(typeMedia: string): void;
|
|
1480
|
-
/**
|
|
1481
|
-
* @param {string} typeMedia 'audio' or 'video'
|
|
1482
|
-
* @returns {undefined}
|
|
1483
|
-
*/
|
|
1484
|
-
setEndSetupDelay(typeMedia: string): void;
|
|
1485
|
-
/**
|
|
1486
|
-
* @param {string} typeMedia 'audio' or 'video'
|
|
1487
|
-
* @returns {string} duration between start and end of setup
|
|
1488
|
-
*/
|
|
1489
|
-
getSetupDelayDuration(typeMedia: string): number;
|
|
1490
|
-
/**
|
|
1491
|
-
* @param {string} typeMedia 'audio' or 'video'
|
|
1492
|
-
* @returns {undefined}
|
|
1493
|
-
*/
|
|
1494
|
-
setStartSendingMediaDelay(typeMedia: string): void;
|
|
1495
|
-
/**
|
|
1496
|
-
* @param {string} typeMedia 'audio' or 'video'
|
|
1497
|
-
* @returns {undefined}
|
|
1498
|
-
*/
|
|
1499
|
-
setEndSendingMediaDelay(typeMedia: string): void;
|
|
1500
|
-
/**
|
|
1501
|
-
* @param {string} typeMedia 'audio' or 'video'
|
|
1502
|
-
* @returns {string} duration between join response and first media tx
|
|
1503
|
-
*/
|
|
1504
|
-
getSendingMediaDelayDuration(typeMedia: string): number;
|
|
1505
|
-
/**
|
|
1506
|
-
*
|
|
1507
|
-
* @returns {undefined}
|
|
1508
|
-
*/
|
|
1509
|
-
setStartLocalSDPGenRemoteSDPRecvDelay(): void;
|
|
1510
|
-
/**
|
|
1511
|
-
*
|
|
1512
|
-
* @returns {undefined}
|
|
1513
|
-
*/
|
|
1514
|
-
setEndLocalSDPGenRemoteSDPRecvDelay(): void;
|
|
1515
|
-
/**
|
|
1516
|
-
*
|
|
1517
|
-
* @returns {string} duration between local SDP generation and remote SDP reception
|
|
1518
|
-
*/
|
|
1519
|
-
getLocalSDPGenRemoteSDPRecvDelay(): number;
|
|
1520
|
-
/**
|
|
1521
|
-
*
|
|
1522
|
-
* @returns {undefined}
|
|
1523
|
-
*/
|
|
1524
|
-
setStartCallInitiateJoinReq(): void;
|
|
1525
|
-
/**
|
|
1526
|
-
*
|
|
1527
|
-
* @returns {undefined}
|
|
1528
|
-
*/
|
|
1529
|
-
setEndCallInitiateJoinReq(): void;
|
|
1530
|
-
/**
|
|
1531
|
-
*
|
|
1532
|
-
* @returns {string} duration between call initiate and sending join request to locus
|
|
1533
|
-
*/
|
|
1534
|
-
getCallInitiateJoinReq(): number;
|
|
1535
|
-
/**
|
|
1536
|
-
*
|
|
1537
|
-
* @returns {undefined}
|
|
1538
|
-
*/
|
|
1539
|
-
setStartJoinReqResp(): void;
|
|
1540
|
-
/**
|
|
1541
|
-
*
|
|
1542
|
-
* @returns {undefined}
|
|
1543
|
-
*/
|
|
1544
|
-
setEndJoinReqResp(): void;
|
|
1545
|
-
/**
|
|
1546
|
-
*
|
|
1547
|
-
* @returns {string} duration between sending locus join request and receiving join response
|
|
1548
|
-
*/
|
|
1549
|
-
getJoinReqResp(): number;
|
|
1550
1596
|
/**
|
|
1551
1597
|
*
|
|
1552
|
-
* @returns {string}
|
|
1598
|
+
* @returns {string} one of 'attendee','host','cohost', returns the user type of the current user
|
|
1553
1599
|
*/
|
|
1554
|
-
|
|
1600
|
+
getCurUserType(): "host" | "cohost" | "attendee";
|
|
1555
1601
|
/**
|
|
1556
1602
|
* End the current meeting for all
|
|
1557
1603
|
* @returns {Promise}
|
|
@@ -1567,56 +1613,107 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1567
1613
|
*/
|
|
1568
1614
|
clearMeetingData: () => void;
|
|
1569
1615
|
/**
|
|
1570
|
-
*
|
|
1571
|
-
* @returns {
|
|
1572
|
-
* @
|
|
1616
|
+
* starts keepAlives being sent
|
|
1617
|
+
* @returns {void}
|
|
1618
|
+
* @private
|
|
1573
1619
|
* @memberof Meeting
|
|
1574
1620
|
*/
|
|
1575
|
-
|
|
1621
|
+
startKeepAlive: () => void;
|
|
1576
1622
|
/**
|
|
1577
|
-
*
|
|
1578
|
-
* @returns {
|
|
1623
|
+
* stops keepAlives being sent
|
|
1624
|
+
* @returns {void}
|
|
1579
1625
|
* @private
|
|
1580
|
-
* @param {MedaiStreamTrack} audioTrack from updateAudio
|
|
1581
1626
|
* @memberof Meeting
|
|
1582
1627
|
*/
|
|
1583
|
-
|
|
1628
|
+
stopKeepAlive: () => void;
|
|
1584
1629
|
/**
|
|
1585
|
-
*
|
|
1586
|
-
*
|
|
1630
|
+
* Send a reaction inside the meeting.
|
|
1631
|
+
*
|
|
1632
|
+
* @param {ReactionServerType} reactionType - type of reaction to be sent. Example: "thumbs_up"
|
|
1633
|
+
* @param {SkinToneType} skinToneType - skin tone for the reaction. Example: "medium_dark"
|
|
1634
|
+
* @returns {Promise}
|
|
1587
1635
|
* @public
|
|
1588
1636
|
* @memberof Meeting
|
|
1589
1637
|
*/
|
|
1590
|
-
|
|
1638
|
+
sendReaction(reactionType: ReactionServerType, skinToneType?: SkinToneType): any;
|
|
1591
1639
|
/**
|
|
1592
|
-
*
|
|
1593
|
-
*
|
|
1640
|
+
* Method to enable or disable reactions inside the meeting.
|
|
1641
|
+
*
|
|
1642
|
+
* @param {boolean} enable - enable or disable reactions
|
|
1643
|
+
* @returns {Promise}
|
|
1594
1644
|
* @public
|
|
1595
1645
|
* @memberof Meeting
|
|
1596
1646
|
*/
|
|
1597
|
-
|
|
1647
|
+
toggleReactions(enable: boolean): Promise<any>;
|
|
1598
1648
|
/**
|
|
1599
|
-
*
|
|
1649
|
+
* Throws if we don't have a media connection created
|
|
1650
|
+
*
|
|
1600
1651
|
* @returns {void}
|
|
1601
|
-
* @private
|
|
1602
|
-
* @memberof Meeting
|
|
1603
1652
|
*/
|
|
1604
|
-
|
|
1653
|
+
private checkMediaConnection;
|
|
1605
1654
|
/**
|
|
1606
|
-
*
|
|
1607
|
-
*
|
|
1608
|
-
* @
|
|
1609
|
-
* @
|
|
1655
|
+
* Method to enable or disable the 'Music mode' effect on audio stream
|
|
1656
|
+
*
|
|
1657
|
+
* @param {boolean} shouldEnableMusicMode
|
|
1658
|
+
* @returns {Promise}
|
|
1610
1659
|
*/
|
|
1611
|
-
|
|
1660
|
+
enableMusicMode(shouldEnableMusicMode: boolean): Promise<void>;
|
|
1661
|
+
/** Updates the tracks being sent on the transcoded media connection
|
|
1662
|
+
*
|
|
1663
|
+
* @returns {Promise<void>}
|
|
1664
|
+
*/
|
|
1665
|
+
private updateTranscodedMediaConnection;
|
|
1612
1666
|
/**
|
|
1613
|
-
*
|
|
1667
|
+
* Publishes a stream.
|
|
1614
1668
|
*
|
|
1615
|
-
* @param {
|
|
1616
|
-
* @param {
|
|
1669
|
+
* @param {MediaType} mediaType of the stream
|
|
1670
|
+
* @param {LocalStream} stream to publish
|
|
1617
1671
|
* @returns {Promise}
|
|
1618
|
-
* @public
|
|
1619
|
-
* @memberof Meeting
|
|
1620
1672
|
*/
|
|
1621
|
-
|
|
1673
|
+
private publishStream;
|
|
1674
|
+
/**
|
|
1675
|
+
* Un-publishes a stream.
|
|
1676
|
+
*
|
|
1677
|
+
* @param {MediaType} mediaType of the stream
|
|
1678
|
+
* @param {LocalStream} stream to unpublish
|
|
1679
|
+
* @returns {Promise}
|
|
1680
|
+
*/
|
|
1681
|
+
private unpublishStream;
|
|
1682
|
+
/**
|
|
1683
|
+
* Publishes specified local streams in the meeting
|
|
1684
|
+
*
|
|
1685
|
+
* @param {Object} streams
|
|
1686
|
+
* @returns {Promise}
|
|
1687
|
+
*/
|
|
1688
|
+
publishStreams(streams: LocalStreams): Promise<void>;
|
|
1689
|
+
/**
|
|
1690
|
+
* Un-publishes specified local streams in the meeting
|
|
1691
|
+
*
|
|
1692
|
+
* @param {Array<LocalStream>} streams
|
|
1693
|
+
* @returns {Promise}
|
|
1694
|
+
*/
|
|
1695
|
+
unpublishStreams(streams: LocalStream[]): Promise<void>;
|
|
1696
|
+
/**
|
|
1697
|
+
* Gets permission token expiry information including timeLeft, expiryTime, currentTime
|
|
1698
|
+
* (from the time the function has been fired)
|
|
1699
|
+
*
|
|
1700
|
+
* @returns {object} permissionTokenExpiryInfo
|
|
1701
|
+
* @returns {number} permissionTokenExpiryInfo.timeLeft The time left for token to expire
|
|
1702
|
+
* @returns {number} permissionTokenExpiryInfo.expiryTime The expiry time of permission token from the server
|
|
1703
|
+
* @returns {number} permissionTokenExpiryInfo.currentTime The current time of the local machine
|
|
1704
|
+
*/
|
|
1705
|
+
getPermissionTokenExpiryInfo(): {
|
|
1706
|
+
timeLeft: number;
|
|
1707
|
+
expiryTime: number;
|
|
1708
|
+
currentTime: number;
|
|
1709
|
+
};
|
|
1710
|
+
/**
|
|
1711
|
+
* Check if there is enough time left till the permission token expires
|
|
1712
|
+
* If not - refresh the permission token
|
|
1713
|
+
*
|
|
1714
|
+
* @param {number} threshold - time in seconds
|
|
1715
|
+
* @param {string} reason - reason for refreshing the permission token
|
|
1716
|
+
* @returns {Promise<void>}
|
|
1717
|
+
*/
|
|
1718
|
+
checkAndRefreshPermissionToken(threshold: number, reason: string): Promise<void>;
|
|
1622
1719
|
}
|