@webex/plugin-meetings 2.60.0 → 2.60.1-next.10
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.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 +234 -100
- package/dist/constants.js +433 -444
- 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 +705 -520
- package/dist/meeting/index.js +5047 -3089
- 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 +304 -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 +118 -1
- package/dist/meeting/util.js +676 -435
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting/voicea-meeting.d.ts +20 -0
- package/dist/meeting/voicea-meeting.js +201 -0
- package/dist/meeting/voicea-meeting.js.map +1 -0
- 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 +114 -20
- package/dist/meetings/index.js +540 -126
- 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 +304 -392
- 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 +285 -232
- 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 +100 -238
- 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 +436 -511
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +8 -6
- package/dist/statsAnalyzer/mqaUtil.js +130 -90
- 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 +39 -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 +265 -100
- 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 +450 -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 +4306 -2581
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +224 -138
- package/src/meeting/request.ts +214 -127
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/util.ts +687 -423
- package/src/meeting/voicea-meeting.ts +161 -0
- 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 +529 -127
- 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 +246 -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 +96 -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 +479 -645
- package/src/statsAnalyzer/mqaUtil.ts +128 -126
- 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 +1438 -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 +8886 -2815
- 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 +523 -43
- package/test/unit/spec/meeting/utils.js +834 -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 +1446 -217
- 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 +532 -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 +163 -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 +187 -77
- 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 +644 -165
- 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,22 +1,91 @@
|
|
|
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
|
-
import
|
|
11
|
-
import {
|
|
13
|
+
import { NETWORK_STATUS } from '../constants';
|
|
14
|
+
import { ReceiveSlotManager } from '../multistream/receiveSlotManager';
|
|
15
|
+
import { MediaRequestManager } from '../multistream/mediaRequestManager';
|
|
16
|
+
import { Configuration as RemoteMediaManagerConfiguration, RemoteMediaManager } from '../multistream/remoteMediaManager';
|
|
17
|
+
import { ReactionServerType, SkinToneType } from '../reactions/reactions.type';
|
|
12
18
|
import InMeetingActions from './in-meeting-actions';
|
|
13
19
|
import RecordingController from '../recording-controller';
|
|
14
20
|
import ControlsOptionsManager from '../controls-options-manager';
|
|
21
|
+
import { LocusMediaRequest } from './locusMediaRequest';
|
|
22
|
+
export type CaptionData = {
|
|
23
|
+
id: string;
|
|
24
|
+
isFinal: boolean;
|
|
25
|
+
translations: Array<string>;
|
|
26
|
+
text: string;
|
|
27
|
+
currentCaptionLanguage: string;
|
|
28
|
+
timestamp: string;
|
|
29
|
+
speaker: string;
|
|
30
|
+
};
|
|
31
|
+
export type Transcription = {
|
|
32
|
+
languageOptions: {
|
|
33
|
+
captionLanguages?: string;
|
|
34
|
+
maxLanguages?: number;
|
|
35
|
+
spokenLanguages?: Array<string>;
|
|
36
|
+
currentCaptionLanguage?: string;
|
|
37
|
+
requestedCaptionLanguage?: string;
|
|
38
|
+
currentSpokenLanguage?: string;
|
|
39
|
+
};
|
|
40
|
+
status: string;
|
|
41
|
+
isListening: boolean;
|
|
42
|
+
commandText: string;
|
|
43
|
+
captions: Array<CaptionData>;
|
|
44
|
+
highlights: Array<any>;
|
|
45
|
+
showCaptionBox: boolean;
|
|
46
|
+
transcribingRequestStatus: string;
|
|
47
|
+
isCaptioning: boolean;
|
|
48
|
+
speakerProxy: Map<string, any>;
|
|
49
|
+
interimCaptions: Map<string, CaptionData>;
|
|
50
|
+
};
|
|
51
|
+
export type LocalStreams = {
|
|
52
|
+
microphone?: LocalMicrophoneStream;
|
|
53
|
+
camera?: LocalCameraStream;
|
|
54
|
+
screenShare?: {
|
|
55
|
+
audio?: LocalSystemAudioStream;
|
|
56
|
+
video?: LocalDisplayStream;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
export type AddMediaOptions = {
|
|
60
|
+
localStreams?: LocalStreams;
|
|
61
|
+
audioEnabled?: boolean;
|
|
62
|
+
videoEnabled?: boolean;
|
|
63
|
+
shareAudioEnabled?: boolean;
|
|
64
|
+
shareVideoEnabled?: boolean;
|
|
65
|
+
remoteMediaManagerConfig?: RemoteMediaManagerConfiguration;
|
|
66
|
+
bundlePolicy?: BundlePolicy;
|
|
67
|
+
allowMediaInLobby?: boolean;
|
|
68
|
+
};
|
|
69
|
+
export type CallStateForMetrics = {
|
|
70
|
+
correlationId?: string;
|
|
71
|
+
joinTrigger?: string;
|
|
72
|
+
loginType?: string;
|
|
73
|
+
};
|
|
15
74
|
export declare const MEDIA_UPDATE_TYPE: {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
75
|
+
TRANSCODED_MEDIA_CONNECTION: string;
|
|
76
|
+
SHARE_FLOOR_REQUEST: string;
|
|
77
|
+
UPDATE_MEDIA: string;
|
|
78
|
+
};
|
|
79
|
+
export declare enum ScreenShareFloorStatus {
|
|
80
|
+
PENDING = "floor_request_pending",
|
|
81
|
+
GRANTED = "floor_request_granted",
|
|
82
|
+
RELEASED = "floor_released"
|
|
83
|
+
}
|
|
84
|
+
type FetchMeetingInfoParams = {
|
|
85
|
+
password?: string;
|
|
86
|
+
captchaCode?: string;
|
|
87
|
+
extraParams?: Record<string, any>;
|
|
88
|
+
sendCAevents?: boolean;
|
|
20
89
|
};
|
|
21
90
|
/**
|
|
22
91
|
* MediaDirection
|
|
@@ -29,15 +98,6 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
29
98
|
* @property {boolean} receiveShare
|
|
30
99
|
* @property {boolean} isSharing
|
|
31
100
|
*/
|
|
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
101
|
/**
|
|
42
102
|
* SharePreferences
|
|
43
103
|
* @typedef {Object} SharePreferences
|
|
@@ -51,16 +111,9 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
51
111
|
* @property {String} [pin]
|
|
52
112
|
* @property {Boolean} [moderator]
|
|
53
113
|
* @property {String|Object} [meetingQuality]
|
|
54
|
-
* @property {String} [meetingQuality.local]
|
|
55
114
|
* @property {String} [meetingQuality.remote]
|
|
56
115
|
* @property {Boolean} [rejoin]
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* SendOptions
|
|
60
|
-
* @typedef {Object} SendOptions
|
|
61
|
-
* @property {Boolean} sendAudio
|
|
62
|
-
* @property {Boolean} sendVideo
|
|
63
|
-
* @property {Boolean} sendShare
|
|
116
|
+
* @property {Boolean} [enableMultistream]
|
|
64
117
|
*/
|
|
65
118
|
/**
|
|
66
119
|
* Recording
|
|
@@ -143,7 +196,11 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
143
196
|
* @instance
|
|
144
197
|
* @type {Object}
|
|
145
198
|
* @property {Boolean} memberId id of the meeting member that started screen share
|
|
199
|
+
* @property {String} url of this content share
|
|
200
|
+
* @property {String} shareInstanceId of this content share
|
|
201
|
+
* @property {Object} annotation Info of this content share
|
|
146
202
|
* @memberof Meeting
|
|
203
|
+
*
|
|
147
204
|
*/
|
|
148
205
|
/**
|
|
149
206
|
* Meeting Stopped Sharing Remote Event
|
|
@@ -279,18 +336,23 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
279
336
|
export default class Meeting extends StatelessWebexPlugin {
|
|
280
337
|
attrs: any;
|
|
281
338
|
audio: any;
|
|
339
|
+
breakouts: any;
|
|
340
|
+
simultaneousInterpretation: any;
|
|
341
|
+
annotation: any;
|
|
342
|
+
webinar: any;
|
|
282
343
|
conversationUrl: string;
|
|
283
|
-
|
|
344
|
+
callStateForMetrics: CallStateForMetrics;
|
|
284
345
|
destination: string;
|
|
285
346
|
destinationType: string;
|
|
286
347
|
deviceUrl: string;
|
|
287
|
-
effects: any;
|
|
288
348
|
hostId: string;
|
|
289
349
|
id: string;
|
|
350
|
+
isMultistream: boolean;
|
|
290
351
|
locusUrl: string;
|
|
291
352
|
mediaConnections: any[];
|
|
353
|
+
mediaId?: string;
|
|
292
354
|
meetingFiniteStateMachine: any;
|
|
293
|
-
meetingInfo:
|
|
355
|
+
meetingInfo: any;
|
|
294
356
|
meetingRequest: MeetingRequest;
|
|
295
357
|
members: Members;
|
|
296
358
|
options: object;
|
|
@@ -302,11 +364,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
302
364
|
resource: string;
|
|
303
365
|
roap: Roap;
|
|
304
366
|
roapSeq: number;
|
|
367
|
+
selfUrl?: string;
|
|
305
368
|
sipUri: string;
|
|
306
369
|
type: string;
|
|
307
370
|
userId: string;
|
|
308
371
|
video: any;
|
|
309
372
|
callEvents: any[];
|
|
373
|
+
datachannelUrl: string;
|
|
310
374
|
deferJoin: Promise<any>;
|
|
311
375
|
dialInDeviceStatus: string;
|
|
312
376
|
dialInUrl: string;
|
|
@@ -318,31 +382,45 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
318
382
|
hasWebsocketConnected: boolean;
|
|
319
383
|
inMeetingActions: InMeetingActions;
|
|
320
384
|
isLocalShareLive: boolean;
|
|
321
|
-
|
|
385
|
+
isRoapInProgress: boolean;
|
|
322
386
|
keepAliveTimerId: NodeJS.Timeout;
|
|
323
387
|
lastVideoLayoutInfo: any;
|
|
324
388
|
locusInfo: any;
|
|
389
|
+
locusMediaRequest?: LocusMediaRequest;
|
|
325
390
|
mediaProperties: MediaProperties;
|
|
391
|
+
mediaRequestManagers: {
|
|
392
|
+
audio: MediaRequestManager;
|
|
393
|
+
video: MediaRequestManager;
|
|
394
|
+
screenShareAudio: MediaRequestManager;
|
|
395
|
+
screenShareVideo: MediaRequestManager;
|
|
396
|
+
};
|
|
326
397
|
meetingInfoFailureReason: string;
|
|
398
|
+
meetingInfoFailureCode?: number;
|
|
399
|
+
meetingInfoExtraParams?: Record<string, any>;
|
|
327
400
|
networkQualityMonitor: NetworkQualityMonitor;
|
|
328
|
-
networkStatus
|
|
401
|
+
networkStatus?: NETWORK_STATUS;
|
|
329
402
|
passwordStatus: string;
|
|
330
403
|
queuedMediaUpdates: any[];
|
|
331
404
|
recording: any;
|
|
405
|
+
remoteMediaManager: RemoteMediaManager | null;
|
|
332
406
|
recordingController: RecordingController;
|
|
333
407
|
controlsOptionsManager: ControlsOptionsManager;
|
|
334
408
|
requiredCaptcha: any;
|
|
409
|
+
receiveSlotManager: ReceiveSlotManager;
|
|
410
|
+
selfUserPolicies: any;
|
|
411
|
+
enforceVBGImagesURL: string;
|
|
335
412
|
shareStatus: string;
|
|
413
|
+
screenShareFloorState: ScreenShareFloorStatus;
|
|
336
414
|
statsAnalyzer: StatsAnalyzer;
|
|
337
415
|
transcription: Transcription;
|
|
338
|
-
receiveTranscription: boolean;
|
|
339
416
|
updateMediaConnections: (mediaConnections: any[]) => void;
|
|
340
|
-
|
|
417
|
+
userDisplayHints: any;
|
|
418
|
+
endCallInitJoinReq: any;
|
|
341
419
|
endJoinReqResp: any;
|
|
342
420
|
endLocalSDPGenRemoteSDPRecvDelay: any;
|
|
343
421
|
joinedWith: any;
|
|
344
422
|
locusId: any;
|
|
345
|
-
|
|
423
|
+
startCallInitJoinReq: any;
|
|
346
424
|
startJoinReqResp: any;
|
|
347
425
|
startLocalSDPGenRemoteSDPRecvDelay: any;
|
|
348
426
|
wirelessShare: any;
|
|
@@ -350,12 +428,31 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
350
428
|
meetingJoinUrl: any;
|
|
351
429
|
meetingNumber: any;
|
|
352
430
|
meetingState: any;
|
|
353
|
-
permissionToken:
|
|
431
|
+
permissionToken: string;
|
|
432
|
+
permissionTokenPayload: any;
|
|
433
|
+
permissionTokenReceivedLocalTime: number;
|
|
354
434
|
resourceId: any;
|
|
355
435
|
resourceUrl: string;
|
|
356
436
|
selfId: string;
|
|
357
437
|
state: any;
|
|
438
|
+
localAudioStreamMuteStateHandler: (muted: boolean) => void;
|
|
439
|
+
localVideoStreamMuteStateHandler: (muted: boolean) => void;
|
|
440
|
+
localOutputTrackChangeHandler: () => void;
|
|
441
|
+
roles: any[];
|
|
442
|
+
environment: string;
|
|
358
443
|
namespace: string;
|
|
444
|
+
allowMediaInLobby: boolean;
|
|
445
|
+
localShareInstanceId: string;
|
|
446
|
+
remoteShareInstanceId: string;
|
|
447
|
+
turnDiscoverySkippedReason: string;
|
|
448
|
+
turnServerUsed: boolean;
|
|
449
|
+
areVoiceaEventsSetup: boolean;
|
|
450
|
+
voiceaListenerCallbacks: object;
|
|
451
|
+
private retriedWithTurnServer;
|
|
452
|
+
private sendSlotManager;
|
|
453
|
+
private deferSDPAnswer?;
|
|
454
|
+
private sdpResponseTimer?;
|
|
455
|
+
private hasMediaConnectionConnectedAtLeastOnce;
|
|
359
456
|
/**
|
|
360
457
|
* @param {Object} attrs
|
|
361
458
|
* @param {Object} options
|
|
@@ -363,29 +460,91 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
363
460
|
* @memberof Meeting
|
|
364
461
|
*/
|
|
365
462
|
constructor(attrs: any, options: object);
|
|
463
|
+
/**
|
|
464
|
+
* returns meeting is joined
|
|
465
|
+
* @private
|
|
466
|
+
* @memberof Meeting
|
|
467
|
+
* @returns {Boolean}
|
|
468
|
+
*/
|
|
469
|
+
private isJoined;
|
|
470
|
+
/**
|
|
471
|
+
* Returns whether this meeting is a Locus CALL
|
|
472
|
+
* @returns {Boolean}
|
|
473
|
+
*/
|
|
474
|
+
isLocusCall(): boolean;
|
|
475
|
+
/**
|
|
476
|
+
* Getter - Returns callStateForMetrics.correlationId
|
|
477
|
+
* @returns {string}
|
|
478
|
+
*/
|
|
479
|
+
get correlationId(): string;
|
|
480
|
+
/**
|
|
481
|
+
* Setter - sets callStateForMetrics.correlationId
|
|
482
|
+
* @param {string} correlationId
|
|
483
|
+
*/
|
|
484
|
+
set correlationId(correlationId: string);
|
|
485
|
+
/**
|
|
486
|
+
* Set meeting info and trigger `MEETING_INFO_AVAILABLE` event
|
|
487
|
+
* @param {any} info
|
|
488
|
+
* @param {string} [meetingLookupUrl] Lookup url, defined when the meeting info fetched
|
|
489
|
+
* @returns {void}
|
|
490
|
+
*/
|
|
491
|
+
private setMeetingInfo;
|
|
492
|
+
/**
|
|
493
|
+
* Add pre-fetched meeting info
|
|
494
|
+
*
|
|
495
|
+
* The passed meeting info should be be complete, e.g.: fetched after password or captcha provided
|
|
496
|
+
*
|
|
497
|
+
* @param {Object} meetingInfo - Complete meeting info
|
|
498
|
+
* @param {FetchMeetingInfoParams} fetchParams - Fetch parameters for validation
|
|
499
|
+
* @param {String|undefined} meetingLookupUrl - Lookup url, defined when the meeting info fetched
|
|
500
|
+
* @returns {Promise<void>}
|
|
501
|
+
*/
|
|
502
|
+
injectMeetingInfo(meetingInfo: any, fetchParams: FetchMeetingInfoParams, meetingLookupUrl: string | undefined): Promise<void>;
|
|
503
|
+
/**
|
|
504
|
+
* Validate fetch parameters and clear the fetchMeetingInfoTimeout timeout
|
|
505
|
+
*
|
|
506
|
+
* @param {FetchMeetingInfoParams} fetchParams - fetch parameters for validation
|
|
507
|
+
* @param {String} caller - Name of the caller for logging
|
|
508
|
+
*
|
|
509
|
+
* @returns {Promise<void>}
|
|
510
|
+
* @private
|
|
511
|
+
*/
|
|
512
|
+
private prepForFetchMeetingInfo;
|
|
513
|
+
/**
|
|
514
|
+
* Internal method for fetching meeting info
|
|
515
|
+
*
|
|
516
|
+
* @returns {Promise}
|
|
517
|
+
*/
|
|
518
|
+
private fetchMeetingInfoInternal;
|
|
519
|
+
/**
|
|
520
|
+
* Refreshes the meeting info permission token (it's required for joining meetings)
|
|
521
|
+
*
|
|
522
|
+
* @param {string} [reason] used for metrics and logging purposes (optional)
|
|
523
|
+
* @returns {Promise}
|
|
524
|
+
*/
|
|
525
|
+
refreshPermissionToken(reason?: string): Promise<void>;
|
|
366
526
|
/**
|
|
367
527
|
* Fetches meeting information.
|
|
368
528
|
* @param {Object} options
|
|
369
529
|
* @param {String} [options.password] optional
|
|
370
530
|
* @param {String} [options.captchaCode] optional
|
|
531
|
+
* @param {Boolean} [options.sendCAevents] optional - Whether to submit Call Analyzer events or not. Default: false.
|
|
371
532
|
* @public
|
|
372
533
|
* @memberof Meeting
|
|
373
534
|
* @returns {Promise}
|
|
374
535
|
*/
|
|
375
|
-
fetchMeetingInfo(
|
|
376
|
-
password?: string;
|
|
377
|
-
captchaCode?: string;
|
|
378
|
-
}): Promise<void>;
|
|
536
|
+
fetchMeetingInfo(options: FetchMeetingInfoParams): Promise<void>;
|
|
379
537
|
/**
|
|
380
538
|
* Checks if the supplied password/host key is correct. It returns a promise with information whether the
|
|
381
539
|
* password and captcha code were correct or not.
|
|
382
540
|
* @param {String} password - this can be either a password or a host key, can be undefined if only captcha was required
|
|
383
541
|
* @param {String} captchaCode - can be undefined if captcha was not required by the server
|
|
542
|
+
* @param {Boolean} sendCAevents - whether Call Analyzer events should be sent when fetching meeting information
|
|
384
543
|
* @public
|
|
385
544
|
* @memberof Meeting
|
|
386
545
|
* @returns {Promise<{isPasswordValid: boolean, requiredCaptcha: boolean, failureReason: MEETING_INFO_FAILURE_REASON}>}
|
|
387
546
|
*/
|
|
388
|
-
verifyPassword(password: string, captchaCode: string): Promise<{
|
|
547
|
+
verifyPassword(password: string, captchaCode: string, sendCAevents?: boolean): Promise<{
|
|
389
548
|
isPasswordValid: boolean;
|
|
390
549
|
requiredCaptcha: any;
|
|
391
550
|
failureReason: string;
|
|
@@ -402,6 +561,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
402
561
|
* @returns {Promise}
|
|
403
562
|
*/
|
|
404
563
|
refreshCaptcha(): any;
|
|
564
|
+
/**
|
|
565
|
+
* Posts metrics event for this meeting. Allows the app to send Call Analyzer events.
|
|
566
|
+
* @param {String} eventName - Call Analyzer event
|
|
567
|
+
* @public
|
|
568
|
+
* @memberof Meeting
|
|
569
|
+
* @returns {Promise}
|
|
570
|
+
*/
|
|
571
|
+
postMetrics(eventName: ClientEvent['name']): void;
|
|
405
572
|
/**
|
|
406
573
|
* Proxy function for all the listener set ups
|
|
407
574
|
* @returns {undefined}
|
|
@@ -410,70 +577,50 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
410
577
|
*/
|
|
411
578
|
private setUpLocusInfoListeners;
|
|
412
579
|
/**
|
|
413
|
-
* Set up the
|
|
580
|
+
* Set up the listeners for breakouts
|
|
414
581
|
* @returns {undefined}
|
|
415
582
|
* @private
|
|
416
583
|
* @memberof Meeting
|
|
417
584
|
*/
|
|
418
|
-
|
|
585
|
+
setUpBreakoutsListener(): void;
|
|
419
586
|
/**
|
|
420
|
-
* Set up the
|
|
587
|
+
* Set up the listeners for interpretation
|
|
421
588
|
* @returns {undefined}
|
|
422
589
|
* @private
|
|
423
590
|
* @memberof Meeting
|
|
424
591
|
*/
|
|
425
|
-
private
|
|
592
|
+
private setUpInterpretationListener;
|
|
426
593
|
/**
|
|
427
|
-
* Set up the
|
|
594
|
+
* Set up the listeners for captions
|
|
428
595
|
* @returns {undefined}
|
|
429
596
|
* @private
|
|
430
597
|
* @memberof Meeting
|
|
431
598
|
*/
|
|
432
|
-
private
|
|
599
|
+
private setUpVoiceaListeners;
|
|
433
600
|
/**
|
|
434
|
-
*
|
|
435
|
-
* @
|
|
436
|
-
* @
|
|
437
|
-
* @
|
|
438
|
-
|
|
439
|
-
|
|
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): {};
|
|
601
|
+
* Set up the locus info listener for meetings disconnected due to inactivity
|
|
602
|
+
* @returns {undefined}
|
|
603
|
+
* @private
|
|
604
|
+
* @memberof Meeting
|
|
605
|
+
*/
|
|
606
|
+
private setUpLocusInfoMediaInactiveListener;
|
|
451
607
|
/**
|
|
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}
|
|
608
|
+
* Set up the locus info listener for assign host permissions on a meeting
|
|
609
|
+
* @returns {undefined}
|
|
459
610
|
* @private
|
|
460
611
|
* @memberof Meeting
|
|
461
612
|
*/
|
|
462
|
-
private
|
|
613
|
+
private setUpLocusInfoAssignHostListener;
|
|
463
614
|
/**
|
|
464
|
-
*
|
|
465
|
-
* @
|
|
466
|
-
* @param {String} options.event
|
|
467
|
-
* @param {String} options.trackingId
|
|
468
|
-
* @param {Object} options.locus
|
|
469
|
-
* @returns {Promise}
|
|
615
|
+
* Set up the internal locus info full state object listener
|
|
616
|
+
* @returns {undefined}
|
|
470
617
|
* @private
|
|
471
618
|
* @memberof Meeting
|
|
472
619
|
*/
|
|
473
|
-
private
|
|
620
|
+
private setUpLocusFullStateListener;
|
|
474
621
|
/**
|
|
475
622
|
* sets the network status on meeting object
|
|
476
|
-
* @param {
|
|
623
|
+
* @param {NETWORK_STATUS} networkStatus
|
|
477
624
|
* @private
|
|
478
625
|
* @returns {undefined}
|
|
479
626
|
* @memberof Meeting
|
|
@@ -533,6 +680,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
533
680
|
* @memberof Meeting
|
|
534
681
|
*/
|
|
535
682
|
private setupLocusControlsListener;
|
|
683
|
+
/**
|
|
684
|
+
* Trigger annotation info update event
|
|
685
|
+
@returns {undefined}
|
|
686
|
+
@param {object} contentShare
|
|
687
|
+
@param {object} previousContentShare
|
|
688
|
+
*/
|
|
689
|
+
private triggerAnnotationInfoEvent;
|
|
536
690
|
/**
|
|
537
691
|
* Set up the locus info media shares listener
|
|
538
692
|
* update content and whiteboard sharing id value for members, and updates the member
|
|
@@ -567,6 +721,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
567
721
|
* @memberof meeting
|
|
568
722
|
*/
|
|
569
723
|
private setUpLocusInfoMeetingInfoListener;
|
|
724
|
+
/**
|
|
725
|
+
* Handles a data channel URL change
|
|
726
|
+
* @param {String} datachannelUrl
|
|
727
|
+
* @returns {void}
|
|
728
|
+
*/
|
|
729
|
+
handleDataChannelUrlChange(datachannelUrl: any): void;
|
|
570
730
|
/**
|
|
571
731
|
* Set up the locus info embedded apps listener
|
|
572
732
|
* @returns {undefined}
|
|
@@ -625,13 +785,23 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
625
785
|
phoneNumber: string;
|
|
626
786
|
}): any;
|
|
627
787
|
/**
|
|
628
|
-
* Admit the guest(s) to the call once they are waiting
|
|
788
|
+
* Admit the guest(s) to the call once they are waiting.
|
|
789
|
+
* If the host/cohost is in a breakout session, the locus url
|
|
790
|
+
* of the session must be provided as the authorizingLocusUrl.
|
|
791
|
+
* Regardless of host/cohost location, the locus Id (lid) in
|
|
792
|
+
* the path should be the locus Id of the main, which means the
|
|
793
|
+
* locus url of the api call must be from the main session.
|
|
794
|
+
* If these loucs urls are not provided, the function will do the check.
|
|
629
795
|
* @param {Array} memberIds
|
|
796
|
+
* @param {Object} sessionLocusUrls: {authorizingLocusUrl, mainLocusUrl}
|
|
630
797
|
* @returns {Promise} see #members.admitMembers
|
|
631
798
|
* @public
|
|
632
799
|
* @memberof Meeting
|
|
633
800
|
*/
|
|
634
|
-
admit(memberIds: Array<any
|
|
801
|
+
admit(memberIds: Array<any>, sessionLocusUrls?: {
|
|
802
|
+
authorizingLocusUrl: string;
|
|
803
|
+
mainLocusUrl: string;
|
|
804
|
+
}): any;
|
|
635
805
|
/**
|
|
636
806
|
* Remove the member from the meeting, boot them
|
|
637
807
|
* @param {String} memberId
|
|
@@ -665,80 +835,63 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
665
835
|
* @memberof Meeting
|
|
666
836
|
*/
|
|
667
837
|
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
838
|
/**
|
|
711
839
|
* Sets the meeting info on the class instance
|
|
712
840
|
* @param {Object} meetingInfo
|
|
713
|
-
* @param {
|
|
714
|
-
* @param {String} meetingInfo.
|
|
715
|
-
* @param {String} meetingInfo.
|
|
716
|
-
* @param {String} meetingInfo.
|
|
717
|
-
* @param {
|
|
841
|
+
* @param {String} meetingInfo.conversationUrl
|
|
842
|
+
* @param {String} meetingInfo.locusUrl
|
|
843
|
+
* @param {String} meetingInfo.sipUri
|
|
844
|
+
* @param {String} [meetingInfo.sipUrl]
|
|
845
|
+
* @param {String} [meetingInfo.sipMeetingUri]
|
|
846
|
+
* @param {String} [meetingInfo.meetingNumber]
|
|
847
|
+
* @param {String} [meetingInfo.meetingJoinUrl]
|
|
848
|
+
* @param {String} [meetingInfo.hostId]
|
|
849
|
+
* @param {String} [meetingInfo.permissionToken]
|
|
850
|
+
* @param {String} [meetingInfo.channel]
|
|
851
|
+
* @param {Object} meetingInfo.owner
|
|
718
852
|
* @param {Object | String} destination locus object with meeting data or destination string (sip url, meeting link, etc)
|
|
853
|
+
* @param {Object | String} errors Meeting info request error
|
|
719
854
|
* @returns {undefined}
|
|
720
855
|
* @private
|
|
721
856
|
* @memberof Meeting
|
|
722
857
|
*/
|
|
723
858
|
parseMeetingInfo(meetingInfo: {
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
859
|
+
conversationUrl: string;
|
|
860
|
+
locusUrl: string;
|
|
861
|
+
sipUri: string;
|
|
862
|
+
owner: object;
|
|
863
|
+
sipUrl?: string;
|
|
864
|
+
sipMeetingUri?: string;
|
|
865
|
+
meetingNumber?: string;
|
|
866
|
+
meetingJoinUrl?: string;
|
|
867
|
+
hostId?: string;
|
|
868
|
+
permissionToken?: string;
|
|
869
|
+
channel?: string;
|
|
870
|
+
}, destination?: object | string | null, errors?: any): void;
|
|
871
|
+
/**
|
|
872
|
+
* Indicates whether policy can be applied
|
|
873
|
+
* @returns {boolean}
|
|
874
|
+
*/
|
|
875
|
+
private arePolicyRestrictionsSupported;
|
|
731
876
|
/**
|
|
732
|
-
*
|
|
733
|
-
* @param {Object} locus
|
|
734
|
-
* @param {String} locus.url
|
|
735
|
-
* @param {Array} locus.participants
|
|
736
|
-
* @param {Object} locus.self
|
|
877
|
+
* Updates the meeting actions (display hints), depends on locus display hints, user policy and app api info
|
|
737
878
|
* @returns {undefined}
|
|
738
879
|
* @private
|
|
739
880
|
* @memberof Meeting
|
|
740
881
|
*/
|
|
741
|
-
private
|
|
882
|
+
private updateMeetingActions;
|
|
883
|
+
/**
|
|
884
|
+
* Sets the self user policies based on the contents of the permission token
|
|
885
|
+
* @returns {void}
|
|
886
|
+
*/
|
|
887
|
+
setSelfUserPolicies(): void;
|
|
888
|
+
/**
|
|
889
|
+
* Sets the permission token payload on the class instance
|
|
890
|
+
*
|
|
891
|
+
* @param {String} permissionToken
|
|
892
|
+
* @returns {void}
|
|
893
|
+
*/
|
|
894
|
+
setPermissionTokenPayload(permissionToken: string): void;
|
|
742
895
|
/**
|
|
743
896
|
* Sets the sip uri on the class instance
|
|
744
897
|
* uses meeting info as precedence
|
|
@@ -748,14 +901,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
748
901
|
* @memberof Meeting
|
|
749
902
|
*/
|
|
750
903
|
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
904
|
/**
|
|
760
905
|
* Set the locus info the class instance
|
|
761
906
|
* @param {Object} locus
|
|
@@ -769,16 +914,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
769
914
|
* @private
|
|
770
915
|
* @memberof Meeting
|
|
771
916
|
*/
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
* @memberof Meeting
|
|
780
|
-
*/
|
|
781
|
-
setRemoteStream(pc: any): void;
|
|
917
|
+
setLocus(locus: {
|
|
918
|
+
mediaConnections: Array<any>;
|
|
919
|
+
locusUrl: string;
|
|
920
|
+
locusId: string;
|
|
921
|
+
mediaId: string;
|
|
922
|
+
host: object;
|
|
923
|
+
} | any): void;
|
|
782
924
|
/**
|
|
783
925
|
* Upload logs for the current meeting
|
|
784
926
|
* @param {object} options file name and function name
|
|
@@ -788,19 +930,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
788
930
|
*/
|
|
789
931
|
uploadLogs(options?: object): void;
|
|
790
932
|
/**
|
|
791
|
-
* Removes remote audio and
|
|
792
|
-
* to developers
|
|
793
|
-
* @returns {undefined}
|
|
794
|
-
* @public
|
|
795
|
-
* @memberof Meeting
|
|
796
|
-
* @deprecated after v1.89.3
|
|
797
|
-
*/
|
|
798
|
-
unsetRemoteStream(): void;
|
|
799
|
-
/**
|
|
800
|
-
* Removes remote audio, video and share tracks from class instance's mediaProperties
|
|
933
|
+
* Removes remote audio, video and share streams from class instance's mediaProperties
|
|
801
934
|
* @returns {undefined}
|
|
802
935
|
*/
|
|
803
|
-
|
|
936
|
+
unsetRemoteStreams(): void;
|
|
804
937
|
/**
|
|
805
938
|
* Removes the remote stream on the class instance and triggers an event
|
|
806
939
|
* to developers
|
|
@@ -811,115 +944,92 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
811
944
|
*/
|
|
812
945
|
closeRemoteStream(): void;
|
|
813
946
|
/**
|
|
814
|
-
* Removes the remote
|
|
947
|
+
* Removes the remote streams on the class instance and triggers an event
|
|
815
948
|
* to developers
|
|
816
949
|
* @returns {undefined}
|
|
817
950
|
* @memberof Meeting
|
|
818
951
|
*/
|
|
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;
|
|
952
|
+
closeRemoteStreams(): Promise<[any, any, any]>;
|
|
827
953
|
/**
|
|
828
|
-
*
|
|
829
|
-
*
|
|
830
|
-
*
|
|
831
|
-
* @
|
|
832
|
-
* @
|
|
833
|
-
* @memberof Meeting
|
|
834
|
-
*/
|
|
835
|
-
private setLocalAudioTrack;
|
|
836
|
-
/**
|
|
837
|
-
* Sets the local video track on the class and emits an event to the developer
|
|
838
|
-
* @param {MediaStreamTrack} videoTrack
|
|
839
|
-
* @param {Boolean} emitEvent if true, a media ready event is emitted to the developer
|
|
840
|
-
* @returns {undefined}
|
|
841
|
-
* @private
|
|
842
|
-
* @memberof Meeting
|
|
954
|
+
* Stores the reference to a new microphone stream, sets up the required event listeners
|
|
955
|
+
* on it, cleans up previous stream, etc.
|
|
956
|
+
*
|
|
957
|
+
* @param {LocalMicrophoneStream | null} localStream local microphone stream
|
|
958
|
+
* @returns {Promise<void>}
|
|
843
959
|
*/
|
|
844
|
-
private
|
|
960
|
+
private setLocalAudioStream;
|
|
845
961
|
/**
|
|
846
|
-
*
|
|
847
|
-
*
|
|
848
|
-
*
|
|
849
|
-
* @
|
|
850
|
-
* @
|
|
962
|
+
* Stores the reference to a new camera stream, sets up the required event listeners
|
|
963
|
+
* on it, cleans up previous stream, etc.
|
|
964
|
+
*
|
|
965
|
+
* @param {LocalCameraStream | null} localStream local camera stream
|
|
966
|
+
* @returns {Promise<void>}
|
|
851
967
|
*/
|
|
852
|
-
|
|
968
|
+
private setLocalVideoStream;
|
|
853
969
|
/**
|
|
854
|
-
*
|
|
855
|
-
*
|
|
856
|
-
*
|
|
857
|
-
*
|
|
858
|
-
* @
|
|
970
|
+
* Stores the reference to a new screen share stream, sets up the required event listeners
|
|
971
|
+
* on it, cleans up previous stream, etc.
|
|
972
|
+
* It also sends the floor grant/release request.
|
|
973
|
+
*
|
|
974
|
+
* @param {LocalDisplayStream | undefined} localDisplayStream local display stream
|
|
975
|
+
* @returns {Promise<void>}
|
|
859
976
|
*/
|
|
860
|
-
|
|
977
|
+
private setLocalShareVideoStream;
|
|
861
978
|
/**
|
|
862
|
-
*
|
|
863
|
-
*
|
|
864
|
-
*
|
|
865
|
-
* @
|
|
866
|
-
* @
|
|
979
|
+
* Stores the reference to a new screen share audio stream, sets up the required event listeners
|
|
980
|
+
* on it, cleans up previous stream, etc.
|
|
981
|
+
*
|
|
982
|
+
* @param {LocalSystemAudioStream | undefined} localSystemAudioStream local system audio stream
|
|
983
|
+
* @returns {Promise<void>}
|
|
867
984
|
*/
|
|
868
|
-
|
|
985
|
+
private setLocalShareAudioStream;
|
|
869
986
|
/**
|
|
870
|
-
*
|
|
987
|
+
* sets up listner for mercury event
|
|
871
988
|
* @returns {undefined}
|
|
872
|
-
* @event media:stopped
|
|
873
989
|
* @public
|
|
874
990
|
* @memberof Meeting
|
|
875
991
|
*/
|
|
876
|
-
|
|
992
|
+
setMercuryListener(): void;
|
|
877
993
|
/**
|
|
878
|
-
*
|
|
879
|
-
*
|
|
994
|
+
* Close the peer connections and remove them from the class.
|
|
995
|
+
* Cleanup any media connection related things.
|
|
996
|
+
*
|
|
997
|
+
* @returns {Promise}
|
|
880
998
|
* @public
|
|
881
999
|
* @memberof Meeting
|
|
882
1000
|
*/
|
|
883
|
-
|
|
1001
|
+
closePeerConnections(): Promise<void>;
|
|
884
1002
|
/**
|
|
885
|
-
*
|
|
1003
|
+
* Unsets the peer connections on the class
|
|
1004
|
+
* warning DO NOT CALL WITHOUT CLOSING PEER CONNECTIONS FIRST
|
|
886
1005
|
* @returns {undefined}
|
|
887
1006
|
* @public
|
|
888
1007
|
* @memberof Meeting
|
|
889
1008
|
*/
|
|
890
|
-
|
|
1009
|
+
unsetPeerConnections(): void;
|
|
891
1010
|
/**
|
|
892
|
-
*
|
|
1011
|
+
* Convenience method to set the correlation id for the callStateForMetrics
|
|
1012
|
+
* @param {String} id correlation id to set on the callStateForMetrics
|
|
893
1013
|
* @returns {undefined}
|
|
894
1014
|
* @public
|
|
895
1015
|
* @memberof Meeting
|
|
896
1016
|
*/
|
|
897
|
-
|
|
898
|
-
/**
|
|
899
|
-
* Close the peer connections and remove them from the class. Triggers an event
|
|
900
|
-
* when each is closed.
|
|
901
|
-
* @returns {Promise} returns a resolved promise with an array of closed peer connections
|
|
902
|
-
* @public
|
|
903
|
-
* @memberof Meeting
|
|
904
|
-
*/
|
|
905
|
-
closePeerConnections(): any;
|
|
1017
|
+
setCorrelationId(id: string): void;
|
|
906
1018
|
/**
|
|
907
|
-
*
|
|
908
|
-
*
|
|
909
|
-
* @param {PeerConnection} peerConnection
|
|
1019
|
+
* Update the callStateForMetrics
|
|
1020
|
+
* @param {CallStateForMetrics} callStateForMetrics updated values for callStateForMetrics
|
|
910
1021
|
* @returns {undefined}
|
|
911
1022
|
* @public
|
|
912
1023
|
* @memberof Meeting
|
|
913
1024
|
*/
|
|
914
|
-
|
|
1025
|
+
updateCallStateForMetrics(callStateForMetrics: CallStateForMetrics): void;
|
|
915
1026
|
/**
|
|
916
|
-
*
|
|
917
|
-
* @
|
|
918
|
-
* @returns {undefined}
|
|
1027
|
+
* Enqueue request for screenshare floor and set the status to pending
|
|
1028
|
+
* @returns {Promise}
|
|
919
1029
|
* @private
|
|
920
1030
|
* @memberof Meeting
|
|
921
1031
|
*/
|
|
922
|
-
private
|
|
1032
|
+
private enqueueScreenShareFloorRequest;
|
|
923
1033
|
/**
|
|
924
1034
|
* Mute the audio for a meeting
|
|
925
1035
|
* @returns {Promise} resolves the data from muting audio {mute, self} or rejects if there is no audio set
|
|
@@ -952,32 +1062,25 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
952
1062
|
* Shorthand function to join AND set up media
|
|
953
1063
|
* @param {Object} options - options to join with media
|
|
954
1064
|
* @param {JoinOptions} [options.joinOptions] - see #join()
|
|
955
|
-
* @param {
|
|
956
|
-
* @
|
|
957
|
-
* @returns {Promise} -- {join: see join(), media: see addMedia(), local: see getMediaStreams()}
|
|
1065
|
+
* @param {AddMediaOptions} [options.mediaOptions] - see #addMedia()
|
|
1066
|
+
* @returns {Promise} -- {join: see join(), media: see addMedia()}
|
|
958
1067
|
* @public
|
|
959
1068
|
* @memberof Meeting
|
|
960
1069
|
* @example
|
|
961
1070
|
* joinWithMedia({
|
|
962
1071
|
* 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
|
-
* }})
|
|
1072
|
+
* mediaOptions: {
|
|
1073
|
+
* localStreams: { microphone: microphoneStream, camera: cameraStream }
|
|
1074
|
+
* }
|
|
1075
|
+
* })
|
|
975
1076
|
*/
|
|
976
1077
|
joinWithMedia(options?: {
|
|
977
1078
|
joinOptions?: any;
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
1079
|
+
mediaOptions?: AddMediaOptions;
|
|
1080
|
+
}): Promise<{
|
|
1081
|
+
join: any;
|
|
1082
|
+
media: void;
|
|
1083
|
+
}>;
|
|
981
1084
|
/**
|
|
982
1085
|
* Initiates the reconnection of the media in the meeting
|
|
983
1086
|
*
|
|
@@ -994,23 +1097,43 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
994
1097
|
*/
|
|
995
1098
|
isTranscriptionSupported(): boolean;
|
|
996
1099
|
/**
|
|
997
|
-
*
|
|
998
|
-
* @
|
|
999
|
-
* @returns {void}
|
|
1100
|
+
* Check if the meeting supports the Reactions
|
|
1101
|
+
* @returns {boolean}
|
|
1000
1102
|
*/
|
|
1001
|
-
|
|
1103
|
+
isReactionsSupported(): boolean;
|
|
1002
1104
|
/**
|
|
1003
|
-
*
|
|
1004
|
-
* @
|
|
1105
|
+
* sets Caption language for the meeting
|
|
1106
|
+
* @param {string} language
|
|
1107
|
+
* @returns {Promise}
|
|
1108
|
+
*/
|
|
1109
|
+
setCaptionLanguage(language: string): Promise<unknown>;
|
|
1110
|
+
/**
|
|
1111
|
+
* sets Spoken language for the meeting
|
|
1112
|
+
* @param {string} language
|
|
1113
|
+
* @returns {Promise}
|
|
1114
|
+
*/
|
|
1115
|
+
setSpokenLanguage(language: string): Promise<unknown>;
|
|
1116
|
+
/**
|
|
1117
|
+
* This method will enable the transcription for the current meeting if the meeting has enabled/supports Webex Assistant
|
|
1118
|
+
* @param {Object} options object with spokenlanguage setting
|
|
1119
|
+
* @public
|
|
1005
1120
|
* @returns {Promise<void>} a promise to open the WebSocket connection
|
|
1006
1121
|
*/
|
|
1007
|
-
|
|
1122
|
+
startTranscription(options?: {
|
|
1123
|
+
spokenLanguage?: string;
|
|
1124
|
+
}): Promise<void>;
|
|
1008
1125
|
/**
|
|
1009
|
-
*
|
|
1010
|
-
*
|
|
1126
|
+
* Callback called when a relay event is received from meeting LLM Connection
|
|
1127
|
+
* @param {RelayEvent} e Event object coming from LLM Connection
|
|
1128
|
+
* @private
|
|
1011
1129
|
* @returns {void}
|
|
1012
1130
|
*/
|
|
1013
|
-
|
|
1131
|
+
private processRelayEvent;
|
|
1132
|
+
/**
|
|
1133
|
+
* This method stops receiving transcription for the current meeting
|
|
1134
|
+
* @returns {void}
|
|
1135
|
+
*/
|
|
1136
|
+
stopTranscription(): void;
|
|
1014
1137
|
/**
|
|
1015
1138
|
* triggers an event to notify that the user
|
|
1016
1139
|
* will not receive any more transcription
|
|
@@ -1030,7 +1153,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1030
1153
|
* if joining as host on second loop, pass pin and pass moderator if joining as guest on second loop
|
|
1031
1154
|
* Scenario D: Joining any other way (sip, pstn, conversationUrl, link just need to specify resourceId)
|
|
1032
1155
|
*/
|
|
1033
|
-
join(options?: any): any
|
|
1156
|
+
join(options?: any): Promise<any>;
|
|
1157
|
+
/**
|
|
1158
|
+
* Connects to low latency mercury and reconnects if the address has changed
|
|
1159
|
+
* It will also disconnect if called when the meeting has ended
|
|
1160
|
+
* @param {String} datachannelUrl
|
|
1161
|
+
* @returns {Promise}
|
|
1162
|
+
*/
|
|
1163
|
+
updateLLMConnection(): Promise<any>;
|
|
1034
1164
|
/**
|
|
1035
1165
|
* Use phone for meeting audio
|
|
1036
1166
|
* @param {String} phoneNumber If provided, it will dial-out using this number. If not provided, dial-in will be used
|
|
@@ -1038,7 +1168,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1038
1168
|
* @public
|
|
1039
1169
|
* @memberof Meeting
|
|
1040
1170
|
*/
|
|
1041
|
-
usePhoneAudio(phoneNumber: string): any
|
|
1171
|
+
usePhoneAudio(phoneNumber: string): Promise<any>;
|
|
1042
1172
|
/**
|
|
1043
1173
|
* Determines if the given pstnStatus is in a state which implies the phone is provisioned
|
|
1044
1174
|
* @param {String} pstnStatus
|
|
@@ -1087,34 +1217,19 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1087
1217
|
*/
|
|
1088
1218
|
moveFrom(resourceId: string): any;
|
|
1089
1219
|
/**
|
|
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
|
|
1220
|
+
* Handles ROAP_FAILURE event from the webrtc media connection
|
|
1221
|
+
*
|
|
1222
|
+
* @param {Error} error
|
|
1223
|
+
* @returns {void}
|
|
1107
1224
|
*/
|
|
1108
|
-
|
|
1109
|
-
sendAudio: boolean;
|
|
1110
|
-
sendVideo: boolean;
|
|
1111
|
-
}) => any;
|
|
1225
|
+
handleRoapFailure: (error: any) => void;
|
|
1112
1226
|
/**
|
|
1113
|
-
*
|
|
1114
|
-
*
|
|
1115
|
-
* @
|
|
1227
|
+
* This function makes sure we send the right metrics when local and remote SDPs are processed/generated
|
|
1228
|
+
*
|
|
1229
|
+
* @returns {undefined}
|
|
1116
1230
|
*/
|
|
1117
|
-
|
|
1231
|
+
setupSdpListeners: () => void;
|
|
1232
|
+
setupMediaConnectionListeners: () => void;
|
|
1118
1233
|
/**
|
|
1119
1234
|
* Registers for all required StatsAnalyzer events
|
|
1120
1235
|
* @private
|
|
@@ -1122,23 +1237,142 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1122
1237
|
* @memberof Meetings
|
|
1123
1238
|
*/
|
|
1124
1239
|
setupStatsAnalyzerEventHandlers: () => void;
|
|
1240
|
+
getMediaConnectionDebugId(): string;
|
|
1125
1241
|
/**
|
|
1126
|
-
*
|
|
1127
|
-
*
|
|
1128
|
-
* @param {Object}
|
|
1129
|
-
* @param {
|
|
1130
|
-
* @param {
|
|
1131
|
-
* @
|
|
1132
|
-
|
|
1242
|
+
* Creates a webrtc media connection and publishes streams to it
|
|
1243
|
+
*
|
|
1244
|
+
* @param {Object} turnServerInfo TURN server information
|
|
1245
|
+
* @param {BundlePolicy} [bundlePolicy] Bundle policy settings
|
|
1246
|
+
* @param {AddMediaOptions} [options] Options for enabling/disabling audio/video
|
|
1247
|
+
* @returns {RoapMediaConnection | MultistreamRoapMediaConnection}
|
|
1248
|
+
*/
|
|
1249
|
+
private createMediaConnection;
|
|
1250
|
+
/**
|
|
1251
|
+
* Listens for an event emitted by eventEmitter and emits it from the meeting object
|
|
1252
|
+
*
|
|
1253
|
+
* @private
|
|
1254
|
+
* @param {*} eventEmitter object from which to forward the event
|
|
1255
|
+
* @param {*} eventTypeToForward which event type to listen on and to forward
|
|
1256
|
+
* @param {string} meetingEventType event type to be used in the event emitted from the meeting object
|
|
1257
|
+
* @returns {void}
|
|
1258
|
+
*/
|
|
1259
|
+
forwardEvent(eventEmitter: any, eventTypeToForward: any, meetingEventType: any): void;
|
|
1260
|
+
/**
|
|
1261
|
+
* Sets up all the references to local streams in this.mediaProperties before creating media connection
|
|
1262
|
+
* and before TURN discovery, so that the correct mute state is sent with TURN discovery roap messages.
|
|
1263
|
+
*
|
|
1264
|
+
* @private
|
|
1265
|
+
* @param {LocalStreams} localStreams
|
|
1266
|
+
* @returns {Promise<void>}
|
|
1267
|
+
*/
|
|
1268
|
+
private setUpLocalStreamReferences;
|
|
1269
|
+
/**
|
|
1270
|
+
* Calls mediaProperties.waitForMediaConnectionConnected() and sends CA client.ice.end metric on failure
|
|
1271
|
+
*
|
|
1272
|
+
* @private
|
|
1273
|
+
* @returns {Promise<void>}
|
|
1274
|
+
*/
|
|
1275
|
+
private waitForMediaConnectionConnected;
|
|
1276
|
+
/**
|
|
1277
|
+
* Enables statsAnalyser if config allows it
|
|
1278
|
+
*
|
|
1279
|
+
* @private
|
|
1280
|
+
* @returns {void}
|
|
1281
|
+
*/
|
|
1282
|
+
private createStatsAnalyzer;
|
|
1283
|
+
/**
|
|
1284
|
+
* Handles device logging
|
|
1285
|
+
*
|
|
1286
|
+
* @private
|
|
1287
|
+
* @static
|
|
1288
|
+
* @returns {Promise<void>}
|
|
1289
|
+
*/
|
|
1290
|
+
private static handleDeviceLogging;
|
|
1291
|
+
/**
|
|
1292
|
+
* Returns a promise. This promise is created once the local sdp offer has been successfully created and is resolved
|
|
1293
|
+
* once the remote sdp answer has been received.
|
|
1294
|
+
*
|
|
1295
|
+
* @private
|
|
1296
|
+
* @returns {Promise<void>}
|
|
1297
|
+
*/
|
|
1298
|
+
private waitForRemoteSDPAnswer;
|
|
1299
|
+
/**
|
|
1300
|
+
* Calls establishMediaConnection with isForced = true to force turn discovery to happen
|
|
1301
|
+
*
|
|
1302
|
+
* @private
|
|
1303
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1304
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1305
|
+
* @returns {Promise<void>}
|
|
1306
|
+
*/
|
|
1307
|
+
private retryEstablishMediaConnectionWithForcedTurnDiscovery;
|
|
1308
|
+
/**
|
|
1309
|
+
* Does relevant clean up before retrying to establish media connection
|
|
1310
|
+
* and performs the retry with forced turn discovery
|
|
1311
|
+
*
|
|
1312
|
+
* @private
|
|
1313
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1314
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1315
|
+
* @returns {Promise<void>}
|
|
1316
|
+
*/
|
|
1317
|
+
private retryWithForcedTurnDiscovery;
|
|
1318
|
+
/**
|
|
1319
|
+
* If waitForMediaConnectionConnected() fails when we haven't done turn discovery then we
|
|
1320
|
+
* attempt to establish a media connection again, but this time using turn discovery. If we
|
|
1321
|
+
* used turn discovery on the first pass we do not attempt connection again.
|
|
1322
|
+
*
|
|
1323
|
+
* @private
|
|
1324
|
+
* @param {Error} error
|
|
1325
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1326
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1327
|
+
* @returns {Promise<void>}
|
|
1328
|
+
*/
|
|
1329
|
+
private handleWaitForMediaConnectionConnectedError;
|
|
1330
|
+
/**
|
|
1331
|
+
* Does TURN discovery, SDP offer/answer exhange, establishes ICE connection and DTLS handshake.
|
|
1332
|
+
*
|
|
1333
|
+
* @private
|
|
1334
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1335
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
1336
|
+
* @param {boolean} [isForced] - let isForced be true to do turn discovery regardless of reachability results
|
|
1337
|
+
* @returns {Promise<void>}
|
|
1338
|
+
*/
|
|
1339
|
+
private establishMediaConnection;
|
|
1340
|
+
/**
|
|
1341
|
+
* Cleans up stats analyzer, peer connection, and turns off listeners
|
|
1342
|
+
*
|
|
1343
|
+
* @private
|
|
1344
|
+
* @returns {Promise<void>}
|
|
1345
|
+
*/
|
|
1346
|
+
private cleanUpOnAddMediaFailure;
|
|
1347
|
+
/**
|
|
1348
|
+
* Sends stats report, closes peer connection and cleans up any media connection
|
|
1349
|
+
* related things before trying to establish media connection again with turn server
|
|
1350
|
+
*
|
|
1351
|
+
* @private
|
|
1352
|
+
* @returns {Promise<void>}
|
|
1353
|
+
*/
|
|
1354
|
+
private cleanUpBeforeRetryWithTurnServer;
|
|
1355
|
+
/**
|
|
1356
|
+
* Creates a media connection to the server. Media connection is required for sending or receiving any audio/video.
|
|
1357
|
+
*
|
|
1358
|
+
* @param {AddMediaOptions} options
|
|
1359
|
+
* @returns {Promise<void>}
|
|
1133
1360
|
* @public
|
|
1134
1361
|
* @memberof Meeting
|
|
1135
1362
|
*/
|
|
1136
|
-
addMedia(options?:
|
|
1363
|
+
addMedia(options?: AddMediaOptions): Promise<void>;
|
|
1137
1364
|
/**
|
|
1138
1365
|
* Informs if the peer connection is in a state that can be updated with updateMedia (audio/video/share)
|
|
1139
1366
|
* @returns {Boolean}
|
|
1140
1367
|
*/
|
|
1141
1368
|
canUpdateMedia(): boolean;
|
|
1369
|
+
/**
|
|
1370
|
+
* media failed, so collect a stats report from webrtc using the wcme connection to grab the rtc stats report
|
|
1371
|
+
* send a webrtc telemetry dump to the configured server using the internal media core check metrics configured callback
|
|
1372
|
+
* @param {String} callFrom - the function calling this function, optional.
|
|
1373
|
+
* @returns {Promise<void>}
|
|
1374
|
+
*/
|
|
1375
|
+
private forceSendStatsReport;
|
|
1142
1376
|
/**
|
|
1143
1377
|
* Enqueues a media update operation.
|
|
1144
1378
|
* @param {String} mediaUpdateType one of MEDIA_UPDATE_TYPE values
|
|
@@ -1164,86 +1398,26 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1164
1398
|
*/
|
|
1165
1399
|
processNextQueuedMediaUpdate: () => void;
|
|
1166
1400
|
/**
|
|
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
|
|
1401
|
+
* Updates the media connection - it allows to enable/disable all audio/video/share in the meeting.
|
|
1402
|
+
* This does not affect the published tracks, so for example if a microphone track is published and
|
|
1403
|
+
* updateMedia({audioEnabled: false}) is called, the audio will not be sent or received anymore,
|
|
1404
|
+
* but the track's "published" state is not changed and when updateMedia({audioEnabled: true}) is called,
|
|
1405
|
+
* the sending of the audio from the same track will resume.
|
|
1406
|
+
*
|
|
1224
1407
|
* @param {Object} options
|
|
1225
|
-
* @param {boolean} options.
|
|
1226
|
-
* @param {boolean} options.
|
|
1408
|
+
* @param {boolean} options.audioEnabled [optional] enables/disables receiving and sending of main audio in the meeting
|
|
1409
|
+
* @param {boolean} options.videoEnabled [optional] enables/disables receiving and sending of main video in the meeting
|
|
1410
|
+
* @param {boolean} options.shareEnabled [optional] enables/disables receiving and sending of screen share in the meeting
|
|
1227
1411
|
* @returns {Promise}
|
|
1228
1412
|
* @public
|
|
1229
1413
|
* @memberof Meeting
|
|
1230
1414
|
*/
|
|
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;
|
|
1415
|
+
updateMedia(options: {
|
|
1416
|
+
audioEnabled?: boolean;
|
|
1417
|
+
videoEnabled?: boolean;
|
|
1418
|
+
shareAudioEnabled?: boolean;
|
|
1419
|
+
shareVideoEnabled?: boolean;
|
|
1420
|
+
}): Promise<void>;
|
|
1247
1421
|
/**
|
|
1248
1422
|
* Acknowledge the meeting, outgoing or incoming
|
|
1249
1423
|
* @param {String} type
|
|
@@ -1251,7 +1425,11 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1251
1425
|
* @public
|
|
1252
1426
|
* @memberof Meeting
|
|
1253
1427
|
*/
|
|
1254
|
-
acknowledge(type: string):
|
|
1428
|
+
acknowledge(type: string): Promise<{
|
|
1429
|
+
response: any;
|
|
1430
|
+
}> | Promise<{
|
|
1431
|
+
message: string;
|
|
1432
|
+
}>;
|
|
1255
1433
|
/**
|
|
1256
1434
|
* Decline this meeting
|
|
1257
1435
|
* @param {String} reason
|
|
@@ -1261,15 +1439,45 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1261
1439
|
*/
|
|
1262
1440
|
decline(reason: string): any;
|
|
1263
1441
|
/**
|
|
1264
|
-
*
|
|
1442
|
+
* Returns a promise that will resolve to fetch options for leaving a meeting.
|
|
1443
|
+
*
|
|
1444
|
+
* This is to support quickly submitting a leave request when the browser/tab is closing.
|
|
1445
|
+
* Calling meeting.leave will not work because there are some async steps that will
|
|
1446
|
+
* not complete before the browser is closed. Instead, we pre-gather all the
|
|
1447
|
+
* information/options needed for the request(s), and then simply and quickly
|
|
1448
|
+
* fire the fetch(es) when pagehide is triggered.
|
|
1449
|
+
*
|
|
1450
|
+
* We must use fetch instead of request because fetch has a keepalive option that
|
|
1451
|
+
* allows the request it to outlive the page.
|
|
1452
|
+
*
|
|
1453
|
+
* Note: the $timings values will be wrong, but setRequestTimingsAndFetch() will
|
|
1454
|
+
* properly adjust them before submitting.
|
|
1455
|
+
*
|
|
1456
|
+
* @public
|
|
1265
1457
|
* @param {Object} options leave options
|
|
1266
1458
|
* @param {String} options.resourceId the device with which to leave from, empty if just the computer
|
|
1459
|
+
* @param {any} options.reason the reason for leaving
|
|
1460
|
+
* @returns {Promise} resolves to options to be used with fetch
|
|
1461
|
+
*/
|
|
1462
|
+
buildLeaveFetchRequestOptions(options?: {
|
|
1463
|
+
resourceId?: string;
|
|
1464
|
+
reason?: any;
|
|
1465
|
+
}): any;
|
|
1466
|
+
/**
|
|
1467
|
+
* Leave the current meeting
|
|
1468
|
+
* @param {Object} options - leave options
|
|
1469
|
+
* @param {String} [options.resourceId] - the device with which to leave from, empty if just the computer
|
|
1470
|
+
* @param {String} [options.clientEventLeaveReason] - the leaveReason to include in the Call Analyzer event.
|
|
1471
|
+
* Must be one of: 'paired-leave' | 'one-to-one' | 'ended-by-locus' (defaults to no reason)
|
|
1472
|
+
* https://sqbu-github.cisco.com/WebExSquared/event-dictionary/blob/main/diagnostic-events.raml#L796
|
|
1473
|
+
* @param {String} [options.reason] - only used for logging
|
|
1267
1474
|
* @returns {Promise}
|
|
1268
1475
|
* @public
|
|
1269
1476
|
* @memberof Meeting
|
|
1270
1477
|
*/
|
|
1271
1478
|
leave(options?: {
|
|
1272
1479
|
resourceId?: string;
|
|
1480
|
+
clientEventLeaveReason?: ClientEventLeaveReason;
|
|
1273
1481
|
reason?: any;
|
|
1274
1482
|
}): any;
|
|
1275
1483
|
/**
|
|
@@ -1297,12 +1505,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1297
1505
|
*/
|
|
1298
1506
|
private requestScreenShareFloor;
|
|
1299
1507
|
/**
|
|
1300
|
-
*
|
|
1301
|
-
*
|
|
1302
|
-
*
|
|
1303
|
-
* @
|
|
1508
|
+
* Requests screen share floor if such request is pending.
|
|
1509
|
+
* It should be called whenever meeting state changes to JOINED
|
|
1510
|
+
*
|
|
1511
|
+
* @returns {void}
|
|
1304
1512
|
*/
|
|
1305
|
-
|
|
1513
|
+
private requestScreenShareFloorIfPending;
|
|
1306
1514
|
/**
|
|
1307
1515
|
* Sends a request to Locus to release the screen share floor.
|
|
1308
1516
|
* @returns {Promise} see #meetingRequest.changeMeetingFloor
|
|
@@ -1333,6 +1541,16 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1333
1541
|
* @memberof Meeting
|
|
1334
1542
|
*/
|
|
1335
1543
|
setDisallowUnmute(enabled: boolean): Promise<any>;
|
|
1544
|
+
/**
|
|
1545
|
+
* set the mute all flag for participants if you're the host
|
|
1546
|
+
* @returns {Promise}
|
|
1547
|
+
* @param {boolean} mutedEnabled
|
|
1548
|
+
* @param {boolean} disallowUnmuteEnabled
|
|
1549
|
+
* @param {boolean} muteOnEntryEnabled
|
|
1550
|
+
* @public
|
|
1551
|
+
* @memberof Meeting
|
|
1552
|
+
*/
|
|
1553
|
+
setMuteAll(mutedEnabled: boolean, disallowUnmuteEnabled: boolean, muteOnEntryEnabled: boolean): Promise<any>;
|
|
1336
1554
|
/**
|
|
1337
1555
|
* End the recording of this meeting
|
|
1338
1556
|
* @returns {Promise}
|
|
@@ -1383,7 +1601,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1383
1601
|
* @public
|
|
1384
1602
|
* @memberof Meeting
|
|
1385
1603
|
*/
|
|
1386
|
-
sendDTMF(tones: string): any
|
|
1604
|
+
sendDTMF(tones: string): Promise<any>;
|
|
1387
1605
|
/**
|
|
1388
1606
|
* Sends request to change layout type for the current meeting for the specific participant/device only
|
|
1389
1607
|
* @param {String} [layoutType] a layout type that should be available in meeting constants {@link #layout_types}
|
|
@@ -1408,50 +1626,41 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1408
1626
|
height: number;
|
|
1409
1627
|
};
|
|
1410
1628
|
}): 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
1629
|
/**
|
|
1418
1630
|
* Sets the quality level of the remote incoming media
|
|
1419
1631
|
* @param {String} level {LOW|MEDIUM|HIGH}
|
|
1420
1632
|
* @returns {Promise}
|
|
1421
1633
|
*/
|
|
1422
|
-
setRemoteQualityLevel(level: string):
|
|
1634
|
+
setRemoteQualityLevel(level: string): Promise<void>;
|
|
1423
1635
|
/**
|
|
1424
|
-
*
|
|
1425
|
-
* @
|
|
1426
|
-
* @
|
|
1427
|
-
* @
|
|
1636
|
+
* Functionality for when a share audio is ended.
|
|
1637
|
+
* @private
|
|
1638
|
+
* @memberof Meeting
|
|
1639
|
+
* @returns {undefined}
|
|
1428
1640
|
*/
|
|
1429
|
-
|
|
1641
|
+
private handleShareAudioStreamEnded;
|
|
1430
1642
|
/**
|
|
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}
|
|
1643
|
+
* Functionality for when a share video is muted or unmuted.
|
|
1644
|
+
* @private
|
|
1645
|
+
* @memberof Meeting
|
|
1646
|
+
* @param {boolean} muted
|
|
1647
|
+
* @returns {undefined}
|
|
1439
1648
|
*/
|
|
1440
|
-
|
|
1441
|
-
sendAudio: boolean;
|
|
1442
|
-
sendShare: boolean;
|
|
1443
|
-
sharePreferences: {
|
|
1444
|
-
shareConstraints: MediaTrackConstraints;
|
|
1445
|
-
};
|
|
1446
|
-
}): any;
|
|
1649
|
+
private handleShareVideoStreamMuteStateChange;
|
|
1447
1650
|
/**
|
|
1448
|
-
* Functionality for when a share is ended.
|
|
1651
|
+
* Functionality for when a share video is ended.
|
|
1449
1652
|
* @private
|
|
1450
1653
|
* @memberof Meeting
|
|
1451
|
-
* @param {MediaStream} localShare
|
|
1452
1654
|
* @returns {undefined}
|
|
1453
1655
|
*/
|
|
1454
|
-
private
|
|
1656
|
+
private handleShareVideoStreamEnded;
|
|
1657
|
+
/**
|
|
1658
|
+
* Emits meeting:stoppedSharingLocal
|
|
1659
|
+
* @private
|
|
1660
|
+
* @returns {undefined}
|
|
1661
|
+
* @memberof Meeting
|
|
1662
|
+
*/
|
|
1663
|
+
private triggerStoppedSharing;
|
|
1455
1664
|
/**
|
|
1456
1665
|
* Emits the 'network:quality' event
|
|
1457
1666
|
* 1 indicates an acceptable uplink network.
|
|
@@ -1466,92 +1675,16 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1466
1675
|
private sendNetworkQualityEvent;
|
|
1467
1676
|
/**
|
|
1468
1677
|
* Handle logging the media
|
|
1469
|
-
* @param {Object}
|
|
1470
|
-
* @param {Object} videoTrack The video track
|
|
1678
|
+
* @param {Object} mediaProperties
|
|
1471
1679
|
* @private
|
|
1472
1680
|
* @returns {undefined}
|
|
1473
1681
|
*/
|
|
1474
1682
|
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
1683
|
/**
|
|
1546
1684
|
*
|
|
1547
|
-
* @returns {string}
|
|
1685
|
+
* @returns {string} one of 'attendee','host','cohost', returns the user type of the current user
|
|
1548
1686
|
*/
|
|
1549
|
-
|
|
1550
|
-
/**
|
|
1551
|
-
*
|
|
1552
|
-
* @returns {string} duration between call initiate and successful locus join (even if it is in lobby)
|
|
1553
|
-
*/
|
|
1554
|
-
getTotalJmt(): number;
|
|
1687
|
+
getCurUserType(): "host" | "cohost" | "presenter" | "attendee";
|
|
1555
1688
|
/**
|
|
1556
1689
|
* End the current meeting for all
|
|
1557
1690
|
* @returns {Promise}
|
|
@@ -1567,56 +1700,108 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1567
1700
|
*/
|
|
1568
1701
|
clearMeetingData: () => void;
|
|
1569
1702
|
/**
|
|
1570
|
-
*
|
|
1571
|
-
* @returns {
|
|
1572
|
-
* @
|
|
1703
|
+
* starts keepAlives being sent
|
|
1704
|
+
* @returns {void}
|
|
1705
|
+
* @private
|
|
1573
1706
|
* @memberof Meeting
|
|
1574
1707
|
*/
|
|
1575
|
-
|
|
1708
|
+
startKeepAlive: () => void;
|
|
1576
1709
|
/**
|
|
1577
|
-
*
|
|
1578
|
-
* @returns {
|
|
1710
|
+
* stops keepAlives being sent
|
|
1711
|
+
* @returns {void}
|
|
1579
1712
|
* @private
|
|
1580
|
-
* @param {MedaiStreamTrack} audioTrack from updateAudio
|
|
1581
1713
|
* @memberof Meeting
|
|
1582
1714
|
*/
|
|
1583
|
-
|
|
1715
|
+
stopKeepAlive: () => void;
|
|
1584
1716
|
/**
|
|
1585
|
-
*
|
|
1586
|
-
*
|
|
1717
|
+
* Send a reaction inside the meeting.
|
|
1718
|
+
*
|
|
1719
|
+
* @param {ReactionServerType} reactionType - type of reaction to be sent. Example: "thumbs_up"
|
|
1720
|
+
* @param {SkinToneType} skinToneType - skin tone for the reaction. Example: "medium_dark"
|
|
1721
|
+
* @returns {Promise}
|
|
1587
1722
|
* @public
|
|
1588
1723
|
* @memberof Meeting
|
|
1589
1724
|
*/
|
|
1590
|
-
|
|
1725
|
+
sendReaction(reactionType: ReactionServerType, skinToneType?: SkinToneType): any;
|
|
1591
1726
|
/**
|
|
1592
|
-
*
|
|
1593
|
-
*
|
|
1727
|
+
* Method to enable or disable reactions inside the meeting.
|
|
1728
|
+
*
|
|
1729
|
+
* @param {boolean} enable - enable or disable reactions
|
|
1730
|
+
* @returns {Promise}
|
|
1594
1731
|
* @public
|
|
1595
1732
|
* @memberof Meeting
|
|
1596
1733
|
*/
|
|
1597
|
-
|
|
1734
|
+
toggleReactions(enable: boolean): Promise<any>;
|
|
1598
1735
|
/**
|
|
1599
|
-
*
|
|
1736
|
+
* Throws if we don't have a media connection created
|
|
1737
|
+
*
|
|
1600
1738
|
* @returns {void}
|
|
1601
|
-
* @private
|
|
1602
|
-
* @memberof Meeting
|
|
1603
1739
|
*/
|
|
1604
|
-
|
|
1740
|
+
private checkMediaConnection;
|
|
1605
1741
|
/**
|
|
1606
|
-
*
|
|
1607
|
-
*
|
|
1608
|
-
* @
|
|
1609
|
-
* @
|
|
1742
|
+
* Method to enable or disable the 'Music mode' effect on audio stream
|
|
1743
|
+
*
|
|
1744
|
+
* @param {boolean} shouldEnableMusicMode
|
|
1745
|
+
* @returns {Promise}
|
|
1610
1746
|
*/
|
|
1611
|
-
|
|
1747
|
+
enableMusicMode(shouldEnableMusicMode: boolean): Promise<void>;
|
|
1748
|
+
/** Updates the tracks being sent on the transcoded media connection
|
|
1749
|
+
*
|
|
1750
|
+
* @returns {Promise<void>}
|
|
1751
|
+
*/
|
|
1752
|
+
private updateTranscodedMediaConnection;
|
|
1612
1753
|
/**
|
|
1613
|
-
*
|
|
1754
|
+
* Publishes a stream.
|
|
1614
1755
|
*
|
|
1615
|
-
* @param {
|
|
1616
|
-
* @param {
|
|
1756
|
+
* @param {MediaType} mediaType of the stream
|
|
1757
|
+
* @param {LocalStream} stream to publish
|
|
1617
1758
|
* @returns {Promise}
|
|
1618
|
-
* @public
|
|
1619
|
-
* @memberof Meeting
|
|
1620
1759
|
*/
|
|
1621
|
-
|
|
1760
|
+
private publishStream;
|
|
1761
|
+
/**
|
|
1762
|
+
* Un-publishes a stream.
|
|
1763
|
+
*
|
|
1764
|
+
* @param {MediaType} mediaType of the stream
|
|
1765
|
+
* @param {LocalStream} stream to unpublish
|
|
1766
|
+
* @returns {Promise}
|
|
1767
|
+
*/
|
|
1768
|
+
private unpublishStream;
|
|
1769
|
+
/**
|
|
1770
|
+
* Publishes specified local streams in the meeting
|
|
1771
|
+
*
|
|
1772
|
+
* @param {Object} streams
|
|
1773
|
+
* @returns {Promise}
|
|
1774
|
+
*/
|
|
1775
|
+
publishStreams(streams: LocalStreams): Promise<void>;
|
|
1776
|
+
/**
|
|
1777
|
+
* Un-publishes specified local streams in the meeting
|
|
1778
|
+
*
|
|
1779
|
+
* @param {Array<LocalStream>} streams
|
|
1780
|
+
* @returns {Promise}
|
|
1781
|
+
*/
|
|
1782
|
+
unpublishStreams(streams: LocalStream[]): Promise<void>;
|
|
1783
|
+
/**
|
|
1784
|
+
* Gets permission token expiry information including timeLeft, expiryTime, currentTime
|
|
1785
|
+
* (from the time the function has been fired)
|
|
1786
|
+
*
|
|
1787
|
+
* @returns {object} permissionTokenExpiryInfo
|
|
1788
|
+
* @returns {number} permissionTokenExpiryInfo.timeLeft The time left for token to expire
|
|
1789
|
+
* @returns {number} permissionTokenExpiryInfo.expiryTime The expiry time of permission token from the server
|
|
1790
|
+
* @returns {number} permissionTokenExpiryInfo.currentTime The current time of the local machine
|
|
1791
|
+
*/
|
|
1792
|
+
getPermissionTokenExpiryInfo(): {
|
|
1793
|
+
timeLeft: number;
|
|
1794
|
+
expiryTime: number;
|
|
1795
|
+
currentTime: number;
|
|
1796
|
+
};
|
|
1797
|
+
/**
|
|
1798
|
+
* Check if there is enough time left till the permission token expires
|
|
1799
|
+
* If not - refresh the permission token
|
|
1800
|
+
*
|
|
1801
|
+
* @param {number} threshold - time in seconds
|
|
1802
|
+
* @param {string} reason - reason for refreshing the permission token
|
|
1803
|
+
* @returns {Promise<void>}
|
|
1804
|
+
*/
|
|
1805
|
+
checkAndRefreshPermissionToken(threshold: number, reason: string): Promise<void>;
|
|
1622
1806
|
}
|
|
1807
|
+
export {};
|