@webex/plugin-meetings 3.0.0-beta.12 → 3.0.0-beta.121
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 +45 -1
- package/UPGRADING.md +9 -9
- package/browsers.js +19 -24
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +48 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +357 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +193 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.js +23 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +43 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +995 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.js +78 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.js +67 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/browser-detection.js +1 -20
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +5 -20
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +0 -7
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +5 -26
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +5 -26
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +6 -27
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +5 -26
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.js +5 -33
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +5 -26
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +4 -25
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reconnection-in-progress.js +0 -17
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +5 -26
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +5 -26
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +6 -41
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +1 -24
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +0 -22
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +0 -23
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +0 -12
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +0 -15
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +0 -4
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -8
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +35 -61
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +4 -14
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +6 -6
- package/dist/config.js.map +1 -1
- package/dist/constants.js +196 -53
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +14 -0
- package/dist/controls-options-manager/constants.js.map +1 -0
- package/dist/controls-options-manager/enums.js +27 -0
- package/dist/controls-options-manager/enums.js.map +1 -0
- package/dist/controls-options-manager/index.js +297 -0
- package/dist/controls-options-manager/index.js.map +1 -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.js +294 -0
- package/dist/controls-options-manager/util.js.map +1 -0
- package/dist/index.js +72 -17
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +95 -29
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -26
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +0 -15
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +4 -12
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.js +392 -212
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +0 -38
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +54 -38
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +88 -123
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +99 -91
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +55 -165
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +71 -117
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +2 -9
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +505 -495
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +67 -14
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2506 -2444
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +291 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +292 -138
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +315 -336
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js +7 -0
- package/dist/meeting/request.type.js.map +1 -0
- package/dist/meeting/state.js +21 -31
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js +462 -583
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +3 -25
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +10 -33
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +305 -286
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -16
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +98 -183
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +156 -232
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +24 -20
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +675 -593
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +23 -42
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +177 -155
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +89 -88
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +15 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +101 -69
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +12 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +166 -205
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +120 -85
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +314 -260
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +50 -16
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.js +3 -7
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +93 -162
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +167 -50
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +58 -65
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +74 -93
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +55 -74
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +6 -40
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +466 -442
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +32 -59
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +10 -45
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -33
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +0 -13
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.js +190 -199
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +14 -23
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/constants.js +13 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.js +2 -4
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.js +19 -23
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +326 -465
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +17 -0
- package/dist/recording-controller/enums.js.map +1 -0
- package/dist/recording-controller/index.js +343 -0
- package/dist/recording-controller/index.js.map +1 -0
- package/dist/recording-controller/util.js +63 -0
- package/dist/recording-controller/util.js.map +1 -0
- package/dist/roap/index.js +31 -75
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +129 -136
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +143 -103
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/global.js +1 -95
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +369 -461
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +144 -94
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +13 -45
- package/dist/transcription/index.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +35 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +124 -0
- package/dist/types/breakouts/breakout.d.ts +8 -0
- package/dist/types/breakouts/collection.d.ts +5 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +2 -0
- package/dist/types/breakouts/index.d.ts +5 -0
- package/dist/types/breakouts/request.d.ts +22 -0
- package/dist/types/breakouts/utils.d.ts +15 -0
- package/dist/types/common/browser-detection.d.ts +9 -0
- package/dist/types/common/collection.d.ts +48 -0
- package/dist/types/common/config.d.ts +2 -0
- package/dist/types/common/errors/captcha-error.d.ts +15 -0
- package/dist/types/common/errors/intent-to-join.d.ts +16 -0
- package/dist/types/common/errors/join-meeting.d.ts +17 -0
- package/dist/types/common/errors/media.d.ts +15 -0
- package/dist/types/common/errors/parameter.d.ts +15 -0
- package/dist/types/common/errors/password-error.d.ts +15 -0
- package/dist/types/common/errors/permission.d.ts +14 -0
- package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/types/common/errors/reconnection.d.ts +15 -0
- package/dist/types/common/errors/stats.d.ts +15 -0
- package/dist/types/common/errors/webex-errors.d.ts +69 -0
- package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
- package/dist/types/common/events/events-scope.d.ts +17 -0
- package/dist/types/common/events/events.d.ts +12 -0
- package/dist/types/common/events/trigger-proxy.d.ts +2 -0
- package/dist/types/common/events/util.d.ts +2 -0
- package/dist/types/common/logs/logger-config.d.ts +2 -0
- package/dist/types/common/logs/logger-proxy.d.ts +2 -0
- package/dist/types/common/logs/request.d.ts +34 -0
- package/dist/types/common/queue.d.ts +32 -0
- package/dist/types/config.d.ts +78 -0
- package/dist/types/constants.d.ts +987 -0
- package/dist/types/controls-options-manager/constants.d.ts +4 -0
- package/dist/types/controls-options-manager/enums.d.ts +15 -0
- package/dist/types/controls-options-manager/index.d.ts +136 -0
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/locus-info/controlsUtils.d.ts +2 -0
- package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
- package/dist/types/locus-info/fullState.d.ts +2 -0
- package/dist/types/locus-info/hostUtils.d.ts +2 -0
- package/dist/types/locus-info/index.d.ts +315 -0
- package/dist/types/locus-info/infoUtils.d.ts +2 -0
- package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
- package/dist/types/locus-info/parser.d.ts +212 -0
- package/dist/types/locus-info/selfUtils.d.ts +2 -0
- package/dist/types/media/index.d.ts +34 -0
- package/dist/types/media/properties.d.ts +108 -0
- package/dist/types/media/util.d.ts +2 -0
- package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +137 -0
- package/dist/types/meeting/index.d.ts +1755 -0
- package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
- package/dist/types/meeting/muteState.d.ts +186 -0
- package/dist/types/meeting/request.d.ts +269 -0
- package/dist/types/meeting/request.type.d.ts +11 -0
- package/dist/types/meeting/state.d.ts +9 -0
- package/dist/types/meeting/util.d.ts +76 -0
- package/dist/types/meeting-info/collection.d.ts +20 -0
- package/dist/types/meeting-info/index.d.ts +57 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
- package/dist/types/meeting-info/request.d.ts +22 -0
- package/dist/types/meeting-info/util.d.ts +2 -0
- package/dist/types/meeting-info/utilv2.d.ts +2 -0
- package/dist/types/meetings/collection.d.ts +31 -0
- package/dist/types/meetings/index.d.ts +345 -0
- package/dist/types/meetings/request.d.ts +27 -0
- package/dist/types/meetings/util.d.ts +18 -0
- package/dist/types/member/index.d.ts +157 -0
- package/dist/types/member/types.d.ts +21 -0
- package/dist/types/member/util.d.ts +2 -0
- package/dist/types/members/collection.d.ts +29 -0
- package/dist/types/members/index.d.ts +353 -0
- package/dist/types/members/request.d.ts +114 -0
- package/dist/types/members/types.d.ts +24 -0
- package/dist/types/members/util.d.ts +210 -0
- package/dist/types/metrics/config.d.ts +195 -0
- package/dist/types/metrics/constants.d.ts +54 -0
- package/dist/types/metrics/index.d.ts +169 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +101 -0
- package/dist/types/multistream/receiveSlot.d.ts +68 -0
- package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/types/multistream/remoteMedia.d.ts +72 -0
- package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
- package/dist/types/networkQualityMonitor/index.d.ts +70 -0
- package/dist/types/personal-meeting-room/index.d.ts +47 -0
- package/dist/types/personal-meeting-room/request.d.ts +14 -0
- package/dist/types/personal-meeting-room/util.d.ts +2 -0
- package/dist/types/reachability/index.d.ts +152 -0
- package/dist/types/reachability/request.d.ts +37 -0
- package/dist/types/reactions/constants.d.ts +3 -0
- package/dist/types/reactions/reactions.d.ts +4 -0
- package/dist/types/reactions/reactions.type.d.ts +52 -0
- package/dist/types/reconnection-manager/index.d.ts +126 -0
- package/dist/types/recording-controller/enums.d.ts +7 -0
- package/dist/types/recording-controller/index.d.ts +193 -0
- package/dist/types/recording-controller/util.d.ts +13 -0
- package/dist/types/roap/index.d.ts +77 -0
- package/dist/types/roap/request.d.ts +36 -0
- package/dist/types/roap/turnDiscovery.d.ts +91 -0
- package/dist/types/statsAnalyzer/global.d.ts +36 -0
- package/dist/types/statsAnalyzer/index.d.ts +200 -0
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
- package/dist/types/transcription/index.d.ts +64 -0
- package/internal-README.md +7 -6
- package/package.json +28 -21
- package/src/annotation/annotation.types.ts +42 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +339 -0
- package/src/breakouts/README.md +220 -0
- package/src/breakouts/breakout.ts +163 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +37 -0
- package/src/breakouts/index.ts +861 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/browser-detection.ts +9 -6
- package/src/common/collection.ts +3 -1
- package/src/common/errors/captcha-error.ts +6 -6
- package/src/common/errors/intent-to-join.ts +6 -6
- package/src/common/errors/join-meeting.ts +12 -8
- package/src/common/errors/media.ts +6 -6
- package/src/common/errors/parameter.ts +9 -6
- package/src/common/errors/password-error.ts +6 -6
- package/src/common/errors/permission.ts +5 -5
- package/src/common/errors/reconnection.ts +6 -6
- package/src/common/errors/stats.ts +6 -6
- package/src/common/errors/webex-errors.ts +7 -5
- package/src/common/errors/webex-meetings-error.ts +1 -1
- package/src/common/events/events-scope.ts +5 -1
- package/src/common/events/events.ts +5 -1
- package/src/common/events/trigger-proxy.ts +8 -3
- package/src/common/events/util.ts +1 -2
- package/src/common/logs/logger-proxy.ts +21 -10
- package/src/common/logs/request.ts +11 -8
- package/src/config.ts +16 -12
- package/src/constants.ts +144 -6
- package/src/controls-options-manager/constants.ts +5 -0
- package/src/controls-options-manager/enums.ts +18 -0
- package/src/controls-options-manager/index.ts +278 -0
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +281 -0
- package/src/index.ts +33 -0
- package/src/locus-info/controlsUtils.ts +148 -24
- package/src/locus-info/fullState.ts +15 -11
- package/src/locus-info/hostUtils.ts +4 -3
- package/src/locus-info/index.ts +335 -55
- package/src/locus-info/infoUtils.ts +12 -4
- package/src/locus-info/mediaSharesUtils.ts +52 -4
- package/src/locus-info/parser.ts +46 -68
- package/src/locus-info/selfUtils.ts +187 -56
- package/src/media/index.ts +139 -196
- package/src/media/properties.ts +43 -36
- package/src/media/util.ts +1 -1
- package/src/mediaQualityMetrics/config.ts +380 -378
- package/src/meeting/in-meeting-actions.ts +139 -3
- package/src/meeting/index.ts +2733 -1589
- package/src/meeting/locusMediaRequest.ts +309 -0
- package/src/meeting/muteState.ts +290 -72
- package/src/meeting/request.ts +247 -178
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/state.ts +45 -30
- package/src/meeting/util.ts +444 -395
- package/src/meeting-info/collection.ts +2 -1
- package/src/meeting-info/index.ts +32 -30
- package/src/meeting-info/meeting-info-v2.ts +235 -116
- package/src/meeting-info/request.ts +9 -3
- package/src/meeting-info/util.ts +54 -46
- package/src/meeting-info/utilv2.ts +71 -55
- package/src/meetings/collection.ts +21 -1
- package/src/meetings/index.ts +749 -437
- package/src/meetings/request.ts +29 -25
- package/src/meetings/util.ts +122 -33
- package/src/member/index.ts +95 -49
- package/src/member/types.ts +24 -0
- package/src/member/util.ts +106 -13
- package/src/members/collection.ts +8 -1
- package/src/members/index.ts +288 -130
- package/src/members/request.ts +144 -31
- package/src/members/types.ts +28 -0
- package/src/members/util.ts +316 -235
- package/src/metrics/config.ts +302 -90
- package/src/metrics/constants.ts +1 -6
- package/src/metrics/index.ts +124 -95
- package/src/multistream/mediaRequestManager.ts +203 -45
- package/src/multistream/receiveSlot.ts +69 -26
- package/src/multistream/receiveSlotManager.ts +62 -38
- package/src/multistream/remoteMedia.ts +30 -4
- package/src/multistream/remoteMediaGroup.ts +4 -3
- package/src/multistream/remoteMediaManager.ts +230 -66
- package/src/networkQualityMonitor/index.ts +24 -27
- package/src/personal-meeting-room/index.ts +12 -16
- package/src/personal-meeting-room/request.ts +10 -3
- package/src/personal-meeting-room/util.ts +3 -3
- package/src/reachability/index.ts +131 -79
- package/src/reachability/request.ts +43 -34
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +8 -8
- package/src/reactions/reactions.type.ts +31 -5
- package/src/reconnection-manager/index.ts +193 -111
- package/src/recording-controller/enums.ts +8 -0
- package/src/recording-controller/index.ts +315 -0
- package/src/recording-controller/util.ts +58 -0
- package/src/roap/index.ts +53 -53
- package/src/roap/request.ts +77 -64
- package/src/roap/turnDiscovery.ts +101 -48
- package/src/statsAnalyzer/global.ts +8 -104
- package/src/statsAnalyzer/index.ts +624 -376
- package/src/statsAnalyzer/mqaUtil.ts +203 -90
- package/src/transcription/index.ts +34 -32
- package/test/integration/spec/converged-space-meetings.js +177 -0
- package/test/integration/spec/journey.js +670 -466
- package/test/integration/spec/space-meeting.js +320 -204
- package/test/integration/spec/transcription.js +7 -8
- package/test/unit/spec/annotation/index.ts +436 -0
- package/test/unit/spec/breakouts/breakout.ts +203 -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 +77 -0
- package/test/unit/spec/breakouts/index.ts +1611 -0
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +72 -0
- package/test/unit/spec/common/browser-detection.js +9 -28
- package/test/unit/spec/controls-options-manager/index.js +287 -0
- package/test/unit/spec/controls-options-manager/util.js +504 -0
- package/test/unit/spec/fixture/locus.js +93 -90
- package/test/unit/spec/locus-info/controlsUtils.js +297 -32
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +598 -5
- package/test/unit/spec/locus-info/infoUtils.js +26 -33
- package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
- package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
- package/test/unit/spec/locus-info/parser.js +3 -9
- package/test/unit/spec/locus-info/selfConstant.js +110 -103
- package/test/unit/spec/locus-info/selfUtils.js +236 -12
- package/test/unit/spec/media/index.ts +104 -8
- package/test/unit/spec/media/properties.ts +9 -9
- package/test/unit/spec/meeting/in-meeting-actions.ts +66 -3
- package/test/unit/spec/meeting/index.js +2908 -887
- package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
- package/test/unit/spec/meeting/muteState.js +421 -94
- package/test/unit/spec/meeting/request.js +421 -79
- package/test/unit/spec/meeting/utils.js +308 -189
- package/test/unit/spec/meeting-info/meetinginfov2.js +481 -76
- package/test/unit/spec/meeting-info/request.js +7 -9
- package/test/unit/spec/meeting-info/util.js +11 -12
- package/test/unit/spec/meeting-info/utilv2.js +131 -74
- package/test/unit/spec/meetings/collection.js +15 -1
- package/test/unit/spec/meetings/index.js +1052 -329
- package/test/unit/spec/meetings/utils.js +163 -14
- package/test/unit/spec/member/index.js +24 -1
- package/test/unit/spec/member/util.js +383 -32
- package/test/unit/spec/members/index.js +424 -55
- package/test/unit/spec/members/request.js +228 -40
- package/test/unit/spec/members/utils.js +191 -4
- package/test/unit/spec/metrics/index.js +113 -20
- package/test/unit/spec/multistream/mediaRequestManager.ts +650 -105
- package/test/unit/spec/multistream/receiveSlot.ts +76 -17
- package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
- package/test/unit/spec/multistream/remoteMedia.ts +32 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +549 -65
- package/test/unit/spec/networkQualityMonitor/index.js +24 -18
- package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
- package/test/unit/spec/reachability/index.ts +176 -27
- package/test/unit/spec/reachability/request.js +66 -0
- package/test/unit/spec/reconnection-manager/index.js +62 -31
- package/test/unit/spec/recording-controller/index.js +231 -0
- package/test/unit/spec/recording-controller/util.js +102 -0
- package/test/unit/spec/roap/index.ts +19 -49
- package/test/unit/spec/roap/request.ts +187 -0
- package/test/unit/spec/roap/turnDiscovery.ts +92 -50
- package/test/unit/spec/stats-analyzer/index.js +116 -60
- package/test/utils/cmr.js +44 -42
- package/test/utils/constants.js +9 -0
- package/test/utils/integrationTestUtils.js +64 -0
- package/test/utils/testUtils.js +63 -99
- package/test/utils/webex-config.js +22 -18
- package/test/utils/webex-test-users.js +57 -50
- package/tsconfig.json +6 -0
- package/dist/media/internal-media-core-wrapper.js +0 -22
- package/dist/media/internal-media-core-wrapper.js.map +0 -1
- package/dist/meeting/effectsState.js +0 -334
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/multistream/multistreamMedia.js +0 -116
- package/dist/multistream/multistreamMedia.js.map +0 -1
- package/src/index.js +0 -15
- package/src/media/internal-media-core-wrapper.ts +0 -9
- package/src/meeting/effectsState.ts +0 -211
- package/src/multistream/multistreamMedia.ts +0 -92
- package/test/unit/spec/meeting/effectsState.js +0 -291
package/src/meetings/request.ts
CHANGED
|
@@ -2,11 +2,7 @@
|
|
|
2
2
|
import {StatelessWebexPlugin} from '@webex/webex-core';
|
|
3
3
|
|
|
4
4
|
import LoggerProxy from '../common/logs/logger-proxy';
|
|
5
|
-
import {
|
|
6
|
-
HTTP_VERBS,
|
|
7
|
-
API,
|
|
8
|
-
RESOURCE
|
|
9
|
-
} from '../constants';
|
|
5
|
+
import {HTTP_VERBS, API, RESOURCE} from '../constants';
|
|
10
6
|
|
|
11
7
|
/**
|
|
12
8
|
* @class MeetingRequest
|
|
@@ -15,16 +11,19 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
15
11
|
/**
|
|
16
12
|
* get all the active meetings for the user
|
|
17
13
|
* @returns {Array} return locus array
|
|
18
|
-
|
|
14
|
+
*/
|
|
19
15
|
getActiveMeetings() {
|
|
20
16
|
// @ts-ignore
|
|
21
17
|
return this.request({
|
|
22
18
|
api: API.LOCUS,
|
|
23
|
-
resource: RESOURCE.LOCI
|
|
19
|
+
resource: RESOURCE.LOCI,
|
|
24
20
|
})
|
|
25
21
|
.then((res) => this.determineRedirections(res.body))
|
|
26
22
|
.catch((error) => {
|
|
27
|
-
LoggerProxy.logger.error(
|
|
23
|
+
LoggerProxy.logger.error(
|
|
24
|
+
`Meetings:request#getActiveMeetings --> failed to get locus details, ${error}`
|
|
25
|
+
);
|
|
26
|
+
throw new Error(error);
|
|
28
27
|
});
|
|
29
28
|
}
|
|
30
29
|
|
|
@@ -40,13 +39,12 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
40
39
|
/**
|
|
41
40
|
* get user meeting preference information
|
|
42
41
|
* @returns {Promise<object>} getMeetingPreferences
|
|
43
|
-
|
|
42
|
+
*/
|
|
44
43
|
getMeetingPreferences() {
|
|
45
44
|
// @ts-ignore
|
|
46
45
|
return this.webex.internal.services.getMeetingPreferences();
|
|
47
46
|
}
|
|
48
47
|
|
|
49
|
-
|
|
50
48
|
// locus federation, determines and populate locus if the responseBody has remote URLs to fetch locus details
|
|
51
49
|
|
|
52
50
|
/**
|
|
@@ -56,22 +54,28 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
56
54
|
*/
|
|
57
55
|
determineRedirections(responseBody: any) {
|
|
58
56
|
if (responseBody.remoteLocusClusterUrls && responseBody.remoteLocusClusterUrls.length) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
57
|
+
return Promise.all(
|
|
58
|
+
responseBody.remoteLocusClusterUrls.map((url) =>
|
|
59
|
+
// @ts-ignore
|
|
60
|
+
this.request({
|
|
61
|
+
method: HTTP_VERBS.GET,
|
|
62
|
+
url,
|
|
63
|
+
runWhitelistedDomains: true, // allows auth token for whitelisted domain
|
|
64
|
+
})
|
|
65
|
+
.then((res) => {
|
|
66
|
+
responseBody.loci = responseBody.loci.concat(res.body.loci);
|
|
67
|
+
responseBody.locusUrls = responseBody.locusUrls.concat(res.body.locusUrls);
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
return Promise.resolve(responseBody);
|
|
70
|
+
})
|
|
71
|
+
.catch((error) => {
|
|
72
|
+
LoggerProxy.logger.error(
|
|
73
|
+
`Meetings:request#determineRedirections --> failed to get locus details from url: ${url}, reason: ${error}`
|
|
74
|
+
);
|
|
75
|
+
throw new Error(error);
|
|
76
|
+
})
|
|
77
|
+
)
|
|
78
|
+
).then(() => Promise.resolve(responseBody));
|
|
75
79
|
}
|
|
76
80
|
|
|
77
81
|
return Promise.resolve(responseBody);
|
package/src/meetings/util.ts
CHANGED
|
@@ -1,34 +1,39 @@
|
|
|
1
1
|
/* globals window */
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
|
-
_LOCUS_ID_,
|
|
5
|
-
_INCOMING_,
|
|
6
4
|
_CREATED_,
|
|
7
|
-
|
|
5
|
+
_INCOMING_,
|
|
6
|
+
_JOINED_,
|
|
7
|
+
_LEFT_,
|
|
8
|
+
_LOCUS_ID_,
|
|
9
|
+
_MOVED_,
|
|
10
|
+
BREAKOUTS,
|
|
8
11
|
CORRELATION_ID,
|
|
9
12
|
EVENT_TRIGGERS,
|
|
10
|
-
|
|
13
|
+
LOCUS,
|
|
14
|
+
LOCUSEVENT,
|
|
15
|
+
ROAP,
|
|
11
16
|
} from '../constants';
|
|
12
17
|
import LoggerProxy from '../common/logs/logger-proxy';
|
|
13
18
|
import Trigger from '../common/events/trigger-proxy';
|
|
14
19
|
|
|
15
20
|
/**
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
* Meetings Media Codec Missing Event
|
|
22
|
+
* Emitted when H.264 codec is not
|
|
23
|
+
* found in the browser.
|
|
24
|
+
* @event media:codec:missing
|
|
25
|
+
* @instance
|
|
26
|
+
* @memberof MeetingsUtil
|
|
27
|
+
*/
|
|
23
28
|
|
|
24
29
|
/**
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
* Meetings Media Codec Loaded Event
|
|
31
|
+
* Emitted when H.264 codec has been
|
|
32
|
+
* loaded in the browser.
|
|
33
|
+
* @event media:codec:loaded
|
|
34
|
+
* @instance
|
|
35
|
+
* @memberof MeetingsUtil
|
|
36
|
+
*/
|
|
32
37
|
|
|
33
38
|
const MeetingsUtil: any = {};
|
|
34
39
|
|
|
@@ -42,31 +47,52 @@ MeetingsUtil.handleRoapMercury = (envelope, meetingCollection) => {
|
|
|
42
47
|
const meeting = meetingCollection.getByKey(CORRELATION_ID, data.correlationId);
|
|
43
48
|
|
|
44
49
|
if (meeting) {
|
|
45
|
-
const {
|
|
46
|
-
seq, messageType, tieBreaker, errorType, errorCause
|
|
47
|
-
} = data.message;
|
|
50
|
+
const {seq, messageType, tieBreaker, errorType, errorCause} = data.message;
|
|
48
51
|
|
|
49
52
|
if (messageType === ROAP.ROAP_TYPES.TURN_DISCOVERY_RESPONSE) {
|
|
50
53
|
// turn discovery is not part of normal roap protocol and so we are not handling it
|
|
51
54
|
// through the usual roap state machine
|
|
52
55
|
meeting.roap.turnDiscovery.handleTurnDiscoveryResponse(data.message);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
56
|
+
} else {
|
|
55
57
|
const roapMessage = {
|
|
56
58
|
seq,
|
|
57
59
|
messageType,
|
|
58
60
|
sdp: data.message.sdps?.length > 0 ? data.message.sdps[0] : undefined,
|
|
59
61
|
tieBreaker,
|
|
60
62
|
errorType,
|
|
61
|
-
errorCause
|
|
63
|
+
errorCause,
|
|
62
64
|
};
|
|
63
65
|
|
|
66
|
+
const mediaServer = MeetingsUtil.getMediaServer(roapMessage.sdp);
|
|
67
|
+
|
|
64
68
|
meeting.mediaProperties.webrtcMediaConnection.roapMessageReceived(roapMessage);
|
|
69
|
+
|
|
70
|
+
if (mediaServer) {
|
|
71
|
+
meeting.mediaProperties.webrtcMediaConnection.mediaServer = mediaServer;
|
|
72
|
+
}
|
|
65
73
|
}
|
|
66
74
|
}
|
|
67
75
|
}
|
|
68
76
|
};
|
|
69
77
|
|
|
78
|
+
MeetingsUtil.getMediaServer = (sdp) => {
|
|
79
|
+
let mediaServer;
|
|
80
|
+
|
|
81
|
+
// Attempt to collect the media server from the roap message.
|
|
82
|
+
try {
|
|
83
|
+
mediaServer = sdp
|
|
84
|
+
.split('\r\n')
|
|
85
|
+
.find((line) => line.startsWith('o='))
|
|
86
|
+
.split(' ')
|
|
87
|
+
.shift()
|
|
88
|
+
.replace('o=', '');
|
|
89
|
+
} catch {
|
|
90
|
+
mediaServer = undefined;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return mediaServer;
|
|
94
|
+
};
|
|
95
|
+
|
|
70
96
|
MeetingsUtil.checkForCorrelationId = (deviceUrl, locus) => {
|
|
71
97
|
let devices = [];
|
|
72
98
|
|
|
@@ -88,11 +114,13 @@ MeetingsUtil.checkForCorrelationId = (deviceUrl, locus) => {
|
|
|
88
114
|
MeetingsUtil.parseDefaultSiteFromMeetingPreferences = (userPreferences) => {
|
|
89
115
|
let result = '';
|
|
90
116
|
|
|
91
|
-
if (userPreferences
|
|
117
|
+
if (userPreferences?.sites?.length) {
|
|
92
118
|
const defaultSite = userPreferences.sites.find((site) => site.default);
|
|
93
119
|
|
|
94
120
|
if (defaultSite) {
|
|
95
121
|
result = defaultSite.siteUrl;
|
|
122
|
+
} else {
|
|
123
|
+
result = userPreferences.sites[0].siteUrl;
|
|
96
124
|
}
|
|
97
125
|
}
|
|
98
126
|
|
|
@@ -116,9 +144,10 @@ MeetingsUtil.hasH264Codec = async () => {
|
|
|
116
144
|
hasCodec = true;
|
|
117
145
|
}
|
|
118
146
|
pc.close();
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
|
|
147
|
+
} catch (error) {
|
|
148
|
+
LoggerProxy.logger.warn(
|
|
149
|
+
'Meetings:util#hasH264Codec --> Error creating peerConnection for H.264 test.'
|
|
150
|
+
);
|
|
122
151
|
}
|
|
123
152
|
|
|
124
153
|
return hasCodec;
|
|
@@ -143,8 +172,8 @@ MeetingsUtil.checkH264Support = async function checkH264Support(options: {
|
|
|
143
172
|
const {firstChecked, disableNotifications} = options || {};
|
|
144
173
|
const delay = 5e3; // ms
|
|
145
174
|
const maxDuration = 3e5; // ms
|
|
146
|
-
const shouldTrigger =
|
|
147
|
-
const shouldStopChecking = firstChecked &&
|
|
175
|
+
const shouldTrigger = firstChecked === undefined;
|
|
176
|
+
const shouldStopChecking = firstChecked && Date.now() - firstChecked >= maxDuration;
|
|
148
177
|
|
|
149
178
|
// Disable notifications and start H.264 download only
|
|
150
179
|
if (disableNotifications) {
|
|
@@ -159,7 +188,7 @@ MeetingsUtil.checkH264Support = async function checkH264Support(options: {
|
|
|
159
188
|
this,
|
|
160
189
|
{
|
|
161
190
|
file: 'meetings/util',
|
|
162
|
-
function: 'checkH264Support'
|
|
191
|
+
function: 'checkH264Support',
|
|
163
192
|
},
|
|
164
193
|
EVENT_TRIGGERS.MEDIA_CODEC_LOADED
|
|
165
194
|
);
|
|
@@ -170,7 +199,9 @@ MeetingsUtil.checkH264Support = async function checkH264Support(options: {
|
|
|
170
199
|
|
|
171
200
|
// Stop checking if past the timelimit
|
|
172
201
|
if (shouldStopChecking) {
|
|
173
|
-
LoggerProxy.logger.error(
|
|
202
|
+
LoggerProxy.logger.error(
|
|
203
|
+
'Meetings:util#checkH264Support --> Timed out waiting for H264 codec to load.'
|
|
204
|
+
);
|
|
174
205
|
|
|
175
206
|
return;
|
|
176
207
|
}
|
|
@@ -181,7 +212,7 @@ MeetingsUtil.checkH264Support = async function checkH264Support(options: {
|
|
|
181
212
|
this,
|
|
182
213
|
{
|
|
183
214
|
file: 'meetings/util',
|
|
184
|
-
function: 'checkH264Support'
|
|
215
|
+
function: 'checkH264Support',
|
|
185
216
|
},
|
|
186
217
|
EVENT_TRIGGERS.MEDIA_CODEC_MISSING
|
|
187
218
|
);
|
|
@@ -196,4 +227,62 @@ MeetingsUtil.checkH264Support = async function checkH264Support(options: {
|
|
|
196
227
|
}, delay);
|
|
197
228
|
};
|
|
198
229
|
|
|
230
|
+
/**
|
|
231
|
+
* get device from locus data
|
|
232
|
+
* @param {Object} newLocus new locus data
|
|
233
|
+
* @param {String} deviceUrl current device url
|
|
234
|
+
* @returns {Object}
|
|
235
|
+
*/
|
|
236
|
+
MeetingsUtil.getThisDevice = (newLocus: any, deviceUrl: string) => {
|
|
237
|
+
if (newLocus?.self?.devices?.length > 0) {
|
|
238
|
+
return newLocus.self.devices.find((device) => device.url === deviceUrl);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
return null;
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* get self device joined status from locus data
|
|
246
|
+
* @param {Object} meeting current meeting data
|
|
247
|
+
* @param {Object} newLocus new locus data
|
|
248
|
+
* @param {String} deviceUrl current device url
|
|
249
|
+
* @returns {Object}
|
|
250
|
+
*/
|
|
251
|
+
MeetingsUtil.joinedOnThisDevice = (meeting: any, newLocus: any, deviceUrl: string) => {
|
|
252
|
+
const thisDevice = MeetingsUtil.getThisDevice(newLocus, deviceUrl);
|
|
253
|
+
if (thisDevice) {
|
|
254
|
+
if (!thisDevice.correlationId || meeting?.correlationId === thisDevice.correlationId) {
|
|
255
|
+
return (
|
|
256
|
+
thisDevice.state === _JOINED_ ||
|
|
257
|
+
(thisDevice.state === _LEFT_ && thisDevice.reason === _MOVED_)
|
|
258
|
+
);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
return false;
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* check the new locus is breakout session's one or not
|
|
267
|
+
* @param {Object} newLocus new locus data
|
|
268
|
+
* @returns {boolean}
|
|
269
|
+
* @private
|
|
270
|
+
*/
|
|
271
|
+
MeetingsUtil.isBreakoutLocusDTO = (newLocus: any) => {
|
|
272
|
+
return newLocus?.controls?.breakout?.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT;
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* check the locus is valid breakout locus or not
|
|
277
|
+
* @param {Object} locus
|
|
278
|
+
* @returns {boolean}
|
|
279
|
+
* @private
|
|
280
|
+
*/
|
|
281
|
+
MeetingsUtil.isValidBreakoutLocus = (locus: any) => {
|
|
282
|
+
const inActiveStatus = locus?.fullState?.state === LOCUS.STATE.INACTIVE;
|
|
283
|
+
const isLocusAsBreakout = MeetingsUtil.isBreakoutLocusDTO(locus);
|
|
284
|
+
const selfJoined = locus.self?.state === _JOINED_;
|
|
285
|
+
|
|
286
|
+
return isLocusAsBreakout && !inActiveStatus && selfJoined;
|
|
287
|
+
};
|
|
199
288
|
export default MeetingsUtil;
|
package/src/member/index.ts
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
_IN_LOBBY_,
|
|
7
|
-
_NOT_IN_MEETING_,
|
|
8
|
-
_IN_MEETING_
|
|
9
|
-
} from '../constants';
|
|
4
|
+
import {MEETINGS, _IN_LOBBY_, _NOT_IN_MEETING_, _IN_MEETING_} from '../constants';
|
|
5
|
+
import {IExternalRoles, ParticipantWithRoles} from './types';
|
|
10
6
|
|
|
11
7
|
import MemberUtil from './util';
|
|
12
8
|
|
|
@@ -33,9 +29,12 @@ export default class Member {
|
|
|
33
29
|
isSelf: any;
|
|
34
30
|
isUser: any;
|
|
35
31
|
isVideoMuted: any;
|
|
32
|
+
roles: IExternalRoles;
|
|
36
33
|
name: any;
|
|
37
34
|
participant: any;
|
|
38
35
|
status: any;
|
|
36
|
+
supportsBreakouts: boolean;
|
|
37
|
+
supportLiveAnnotation: boolean;
|
|
39
38
|
type: any;
|
|
40
39
|
namespace = MEETINGS;
|
|
41
40
|
|
|
@@ -51,20 +50,22 @@ export default class Member {
|
|
|
51
50
|
*/
|
|
52
51
|
constructor(
|
|
53
52
|
participant: object,
|
|
54
|
-
options:
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
53
|
+
options:
|
|
54
|
+
| {
|
|
55
|
+
selfId: string;
|
|
56
|
+
hostId: string;
|
|
57
|
+
contentSharingId: string;
|
|
58
|
+
type: string;
|
|
59
|
+
}
|
|
60
|
+
| any = {}
|
|
60
61
|
) {
|
|
61
|
-
|
|
62
|
+
/**
|
|
62
63
|
* The server participant object
|
|
63
64
|
* @instance
|
|
64
65
|
* @type {Object}
|
|
65
66
|
* @private
|
|
66
67
|
* @memberof Member
|
|
67
|
-
|
|
68
|
+
*/
|
|
68
69
|
this.participant = null;
|
|
69
70
|
/**
|
|
70
71
|
* The member id
|
|
@@ -72,7 +73,7 @@ export default class Member {
|
|
|
72
73
|
* @type {String}
|
|
73
74
|
* @public
|
|
74
75
|
* @memberof Member
|
|
75
|
-
|
|
76
|
+
*/
|
|
76
77
|
this.id = null;
|
|
77
78
|
/**
|
|
78
79
|
* The member name
|
|
@@ -80,34 +81,48 @@ export default class Member {
|
|
|
80
81
|
* @type {String}
|
|
81
82
|
* @public
|
|
82
83
|
* @memberof Member
|
|
83
|
-
|
|
84
|
+
*/
|
|
84
85
|
this.name = null;
|
|
85
86
|
/**
|
|
86
87
|
* @instance
|
|
87
88
|
* @type {Boolean}
|
|
88
89
|
* @public
|
|
89
90
|
* @memberof Member
|
|
90
|
-
|
|
91
|
+
*/
|
|
91
92
|
this.isAudioMuted = null;
|
|
92
93
|
/**
|
|
93
94
|
* @instance
|
|
94
95
|
* @type {Boolean}
|
|
95
96
|
* @public
|
|
96
97
|
* @memberof Member
|
|
97
|
-
|
|
98
|
+
*/
|
|
98
99
|
this.isVideoMuted = null;
|
|
99
100
|
/**
|
|
100
101
|
* @instance
|
|
101
102
|
* @type {Boolean}
|
|
102
103
|
* @public
|
|
103
104
|
* @memberof Member
|
|
104
|
-
|
|
105
|
+
*/
|
|
105
106
|
this.isHandRaised = null;
|
|
106
107
|
/**
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
108
|
+
* @instance
|
|
109
|
+
* @type {Boolean}
|
|
110
|
+
* @public
|
|
111
|
+
* @memberof Member
|
|
112
|
+
*/
|
|
113
|
+
this.supportsBreakouts = null;
|
|
114
|
+
/**
|
|
115
|
+
* @instance
|
|
116
|
+
* @type {Boolean}
|
|
117
|
+
* @public
|
|
118
|
+
* @memberof Member
|
|
119
|
+
*/
|
|
120
|
+
this.supportLiveAnnotation = null;
|
|
121
|
+
/**
|
|
122
|
+
* @instance
|
|
123
|
+
* @type {Boolean}
|
|
124
|
+
* @public
|
|
125
|
+
* @memberof Member
|
|
111
126
|
*/
|
|
112
127
|
this.isSelf = null;
|
|
113
128
|
/**
|
|
@@ -115,114 +130,122 @@ export default class Member {
|
|
|
115
130
|
* @type {Boolean}
|
|
116
131
|
* @public
|
|
117
132
|
* @memberof Member
|
|
118
|
-
|
|
133
|
+
*/
|
|
119
134
|
this.isHost = null;
|
|
120
135
|
/**
|
|
121
136
|
* @instance
|
|
122
137
|
* @type {Boolean}
|
|
123
138
|
* @public
|
|
124
139
|
* @memberof Member
|
|
125
|
-
|
|
140
|
+
*/
|
|
126
141
|
this.isGuest = null;
|
|
127
142
|
/**
|
|
128
143
|
* @instance
|
|
129
144
|
* @type {Boolean}
|
|
130
145
|
* @public
|
|
131
146
|
* @memberof Member
|
|
132
|
-
|
|
147
|
+
*/
|
|
133
148
|
this.isInLobby = null;
|
|
134
149
|
/**
|
|
135
150
|
* @instance
|
|
136
151
|
* @type {Boolean}
|
|
137
152
|
* @public
|
|
138
153
|
* @memberof Member
|
|
139
|
-
|
|
154
|
+
*/
|
|
140
155
|
this.isInMeeting = null;
|
|
141
156
|
/**
|
|
142
157
|
* @instance
|
|
143
158
|
* @type {Boolean}
|
|
144
159
|
* @public
|
|
145
160
|
* @memberof Member
|
|
146
|
-
|
|
161
|
+
*/
|
|
147
162
|
this.isNotAdmitted = null;
|
|
148
163
|
/**
|
|
149
164
|
* @instance
|
|
150
165
|
* @type {Boolean}
|
|
151
166
|
* @public
|
|
152
167
|
* @memberof Member
|
|
153
|
-
|
|
168
|
+
*/
|
|
154
169
|
this.isContentSharing = null;
|
|
155
170
|
/**
|
|
156
171
|
* @instance
|
|
157
172
|
* @type {Boolean}
|
|
158
173
|
* @public
|
|
159
174
|
* @memberof Member
|
|
160
|
-
|
|
175
|
+
*/
|
|
161
176
|
this.status = null;
|
|
162
177
|
/**
|
|
163
178
|
* @instance
|
|
164
179
|
* @type {Boolean}
|
|
165
180
|
* @public
|
|
166
181
|
* @memberof Member
|
|
167
|
-
|
|
182
|
+
*/
|
|
168
183
|
this.isDevice = null;
|
|
169
184
|
/**
|
|
170
185
|
* @instance
|
|
171
186
|
* @type {Boolean}
|
|
172
187
|
* @public
|
|
173
188
|
* @memberof Member
|
|
174
|
-
|
|
189
|
+
*/
|
|
175
190
|
this.isUser = null;
|
|
176
191
|
/**
|
|
177
|
-
|
|
192
|
+
* Is this member associated to another user by way of pairing (typical of devices)
|
|
178
193
|
* @instance
|
|
179
194
|
* @type {String}
|
|
180
195
|
* @public
|
|
181
196
|
* @memberof Member
|
|
182
|
-
|
|
197
|
+
*/
|
|
183
198
|
this.associatedUser = null;
|
|
184
199
|
/**
|
|
185
200
|
* @instance
|
|
186
201
|
* @type {Boolean}
|
|
187
202
|
* @public
|
|
188
203
|
* @memberof Member
|
|
189
|
-
|
|
204
|
+
*/
|
|
190
205
|
this.isRecording = null;
|
|
191
206
|
/**
|
|
192
207
|
* @instance
|
|
193
208
|
* @type {Boolean}
|
|
194
209
|
* @public
|
|
195
210
|
* @memberof Member
|
|
196
|
-
|
|
211
|
+
*/
|
|
197
212
|
this.isMutable = null;
|
|
198
213
|
/**
|
|
199
214
|
* @instance
|
|
200
215
|
* @type {Boolean}
|
|
201
216
|
* @public
|
|
202
217
|
* @memberof Member
|
|
203
|
-
|
|
218
|
+
*/
|
|
204
219
|
this.isRemovable = null;
|
|
205
220
|
/**
|
|
206
221
|
* @instance
|
|
207
222
|
* @type {String}
|
|
208
223
|
* @private
|
|
209
224
|
* @memberof Member
|
|
210
|
-
|
|
225
|
+
*/
|
|
211
226
|
this.type = null;
|
|
212
227
|
/**
|
|
213
228
|
* @instance
|
|
214
229
|
* @type {Boolean}
|
|
215
230
|
* @public
|
|
216
231
|
* @memberof Member
|
|
217
|
-
|
|
232
|
+
*/
|
|
218
233
|
this.isModerator = null;
|
|
219
234
|
/**
|
|
220
235
|
* @instance
|
|
221
236
|
* @type {Boolean}
|
|
222
237
|
* @public
|
|
223
238
|
* @memberof Member
|
|
224
|
-
|
|
239
|
+
*/
|
|
225
240
|
this.isModeratorAssignmentProhibited = null;
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* @instance
|
|
244
|
+
* @type {IExternalRoles}
|
|
245
|
+
* @public
|
|
246
|
+
* @memberof Member
|
|
247
|
+
*/
|
|
248
|
+
this.roles = null;
|
|
226
249
|
// TODO: more participant types
|
|
227
250
|
// such as native client, web client, is a device, what type of phone, etc
|
|
228
251
|
this.processParticipant(participant);
|
|
@@ -245,12 +268,16 @@ export default class Member {
|
|
|
245
268
|
this.isAudioMuted = MemberUtil.isAudioMuted(participant);
|
|
246
269
|
this.isVideoMuted = MemberUtil.isVideoMuted(participant);
|
|
247
270
|
this.isHandRaised = MemberUtil.isHandRaised(participant);
|
|
271
|
+
this.supportsBreakouts = MemberUtil.isBreakoutsSupported(participant);
|
|
272
|
+
this.supportLiveAnnotation = MemberUtil.isLiveAnnotationSupported(participant);
|
|
248
273
|
this.isGuest = MemberUtil.isGuest(participant);
|
|
249
274
|
this.isUser = MemberUtil.isUser(participant);
|
|
250
275
|
this.isDevice = MemberUtil.isDevice(participant);
|
|
251
276
|
this.isModerator = MemberUtil.isModerator(participant);
|
|
252
|
-
this.isModeratorAssignmentProhibited =
|
|
277
|
+
this.isModeratorAssignmentProhibited =
|
|
278
|
+
MemberUtil.isModeratorAssignmentProhibited(participant);
|
|
253
279
|
this.processStatus(participant);
|
|
280
|
+
this.processRoles(participant as ParticipantWithRoles);
|
|
254
281
|
// must be done last
|
|
255
282
|
this.isNotAdmitted = MemberUtil.isNotAdmitted(participant, this.isGuest, this.status);
|
|
256
283
|
}
|
|
@@ -282,9 +309,20 @@ export default class Member {
|
|
|
282
309
|
*/
|
|
283
310
|
private processMember() {
|
|
284
311
|
// must occur after self, guest, meeting, and type properties are calculated
|
|
285
|
-
this.isRemovable = MemberUtil.isRemovable(
|
|
312
|
+
this.isRemovable = MemberUtil.isRemovable(
|
|
313
|
+
this.isSelf,
|
|
314
|
+
this.isGuest,
|
|
315
|
+
this.isInMeeting,
|
|
316
|
+
this.type
|
|
317
|
+
);
|
|
286
318
|
// must occur after self, device, meeting, mute status, and type properties are calculated
|
|
287
|
-
this.isMutable = MemberUtil.isMutable(
|
|
319
|
+
this.isMutable = MemberUtil.isMutable(
|
|
320
|
+
this.isSelf,
|
|
321
|
+
this.isDevice,
|
|
322
|
+
this.isInMeeting,
|
|
323
|
+
this.isAudioMuted,
|
|
324
|
+
this.type
|
|
325
|
+
);
|
|
288
326
|
}
|
|
289
327
|
|
|
290
328
|
/**
|
|
@@ -359,8 +397,7 @@ export default class Member {
|
|
|
359
397
|
public processIsContentSharing(participant: object, sharingId: string) {
|
|
360
398
|
if (MemberUtil.isUser(participant)) {
|
|
361
399
|
this.isContentSharing = MemberUtil.isSame(participant, sharingId);
|
|
362
|
-
}
|
|
363
|
-
else if (MemberUtil.isDevice(participant)) {
|
|
400
|
+
} else if (MemberUtil.isDevice(participant)) {
|
|
364
401
|
this.isContentSharing = MemberUtil.isAssociatedSame(participant, sharingId);
|
|
365
402
|
}
|
|
366
403
|
}
|
|
@@ -388,8 +425,7 @@ export default class Member {
|
|
|
388
425
|
private processIsSelf(participant: object, selfId: string) {
|
|
389
426
|
if (MemberUtil.isUser(participant)) {
|
|
390
427
|
this.isSelf = MemberUtil.isSame(participant, selfId);
|
|
391
|
-
}
|
|
392
|
-
else if (MemberUtil.isDevice(participant)) {
|
|
428
|
+
} else if (MemberUtil.isDevice(participant)) {
|
|
393
429
|
this.isSelf = MemberUtil.isAssociatedSame(participant, selfId);
|
|
394
430
|
this.associatedUser = selfId;
|
|
395
431
|
}
|
|
@@ -406,12 +442,22 @@ export default class Member {
|
|
|
406
442
|
private processIsHost(participant: object, hostId: string) {
|
|
407
443
|
if (MemberUtil.isUser(participant)) {
|
|
408
444
|
this.isHost = MemberUtil.isSame(participant, hostId);
|
|
409
|
-
}
|
|
410
|
-
else if (MemberUtil.isDevice(participant)) {
|
|
445
|
+
} else if (MemberUtil.isDevice(participant)) {
|
|
411
446
|
this.isHost = MemberUtil.isAssociatedSame(participant, hostId);
|
|
412
447
|
}
|
|
413
448
|
}
|
|
414
449
|
|
|
450
|
+
/**
|
|
451
|
+
* process the roles that have been applied to this member
|
|
452
|
+
* @param {Object} participant
|
|
453
|
+
* @returns {undefined}
|
|
454
|
+
* @private
|
|
455
|
+
* @memberof Member
|
|
456
|
+
*/
|
|
457
|
+
private processRoles(participant: ParticipantWithRoles) {
|
|
458
|
+
this.roles = MemberUtil.extractControlRoles(participant);
|
|
459
|
+
}
|
|
460
|
+
|
|
415
461
|
/**
|
|
416
462
|
* set the type for the member, could be MEETING or CALL
|
|
417
463
|
* @param {String} type
|