@webex/plugin-meetings 2.59.2 → 2.59.3-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +6 -6
- package/LICENSE +1 -1
- package/README.md +1204 -1204
- package/UPGRADING.md +287 -287
- package/babel.config.js +3 -3
- package/browsers.js +108 -108
- package/dist/common/browser-detection.d.ts +9 -9
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.d.ts +48 -48
- package/dist/common/collection.js +43 -43
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.d.ts +2 -2
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.d.ts +15 -15
- package/dist/common/errors/captcha-error.js +7 -7
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.d.ts +16 -16
- package/dist/common/errors/intent-to-join.js +7 -7
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.d.ts +17 -17
- package/dist/common/errors/join-meeting.js +8 -8
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.d.ts +15 -15
- package/dist/common/errors/media.js +7 -7
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.d.ts +15 -15
- package/dist/common/errors/parameter.js +7 -7
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.d.ts +15 -15
- package/dist/common/errors/password-error.js +7 -7
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.d.ts +14 -14
- package/dist/common/errors/permission.js +6 -6
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reconnection-in-progress.d.ts +9 -9
- package/dist/common/errors/reconnection-in-progress.js +6 -6
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.d.ts +15 -15
- package/dist/common/errors/reconnection.js +7 -7
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.d.ts +15 -15
- package/dist/common/errors/stats.js +7 -7
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.d.ts +81 -81
- package/dist/common/errors/webex-errors.js +42 -42
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.d.ts +20 -20
- package/dist/common/errors/webex-meetings-error.js +12 -12
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.d.ts +17 -17
- package/dist/common/events/events-scope.js +10 -10
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.d.ts +12 -12
- package/dist/common/events/events.js +4 -4
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.d.ts +2 -2
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.d.ts +2 -2
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.d.ts +2 -2
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.d.ts +2 -2
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.d.ts +34 -34
- package/dist/common/logs/request.js +18 -18
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.d.ts +32 -32
- package/dist/common/queue.js +18 -18
- package/dist/common/queue.js.map +1 -1
- package/dist/config.d.ts +73 -73
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +924 -924
- package/dist/constants.js +9 -9
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.d.ts +4 -4
- package/dist/controls-options-manager/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.d.ts +5 -5
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.d.ts +120 -120
- package/dist/controls-options-manager/index.js +81 -81
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/util.d.ts +7 -7
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.d.ts +2 -2
- package/dist/locus-info/controlsUtils.js +21 -21
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.d.ts +2 -2
- package/dist/locus-info/embeddedAppsUtils.js +14 -14
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.d.ts +2 -2
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.d.ts +2 -2
- package/dist/locus-info/hostUtils.js +19 -19
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.d.ts +269 -269
- package/dist/locus-info/index.js +180 -180
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.d.ts +2 -2
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.d.ts +2 -2
- package/dist/locus-info/mediaSharesUtils.js +50 -50
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.d.ts +212 -212
- package/dist/locus-info/parser.js +136 -136
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.d.ts +2 -2
- package/dist/locus-info/selfUtils.js +52 -52
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.d.ts +32 -32
- package/dist/media/index.js +145 -145
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.d.ts +108 -108
- package/dist/media/properties.js +49 -49
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.d.ts +2 -2
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.d.ts +233 -233
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/effectsState.d.ts +42 -42
- package/dist/meeting/effectsState.js +24 -24
- package/dist/meeting/effectsState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.d.ts +79 -79
- package/dist/meeting/in-meeting-actions.js +11 -11
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.d.ts +1621 -1621
- package/dist/meeting/index.js +1502 -1505
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.d.ts +116 -116
- package/dist/meeting/muteState.js +85 -85
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.d.ts +255 -255
- package/dist/meeting/request.js +141 -141
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/state.d.ts +9 -9
- package/dist/meeting/state.js +30 -30
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.d.ts +2 -2
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.d.ts +20 -20
- package/dist/meeting-info/collection.js +11 -11
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.d.ts +57 -57
- package/dist/meeting-info/index.js +50 -50
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.d.ts +93 -93
- package/dist/meeting-info/meeting-info-v2.js +52 -52
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.d.ts +22 -22
- package/dist/meeting-info/request.js +14 -14
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.d.ts +2 -2
- package/dist/meeting-info/util.js +9 -9
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.d.ts +2 -2
- package/dist/meeting-info/utilv2.js +20 -20
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.d.ts +23 -23
- package/dist/meetings/collection.js +14 -14
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.d.ts +296 -296
- package/dist/meetings/index.js +259 -259
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.d.ts +27 -27
- package/dist/meetings/request.js +15 -15
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.d.ts +18 -18
- package/dist/meetings/util.js +29 -29
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.d.ts +147 -147
- package/dist/member/index.js +214 -214
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.d.ts +11 -11
- package/dist/member/member.types.js.map +1 -1
- package/dist/member/util.d.ts +2 -2
- package/dist/member/util.js +60 -60
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.d.ts +24 -24
- package/dist/members/collection.js +11 -11
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.d.ts +298 -298
- package/dist/members/index.js +275 -275
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.d.ts +50 -50
- package/dist/members/request.js +27 -27
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.d.ts +2 -2
- package/dist/members/util.js +21 -21
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.d.ts +169 -169
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.d.ts +57 -57
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.d.ts +152 -152
- package/dist/metrics/index.js +90 -90
- package/dist/metrics/index.js.map +1 -1
- package/dist/networkQualityMonitor/index.d.ts +70 -70
- package/dist/networkQualityMonitor/index.js +65 -65
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/peer-connection-manager/index.d.ts +6 -6
- package/dist/peer-connection-manager/index.js +87 -87
- package/dist/peer-connection-manager/index.js.map +1 -1
- package/dist/peer-connection-manager/util.d.ts +6 -6
- package/dist/peer-connection-manager/util.js +9 -9
- package/dist/peer-connection-manager/util.js.map +1 -1
- package/dist/personal-meeting-room/index.d.ts +47 -47
- package/dist/personal-meeting-room/index.js +67 -67
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.d.ts +14 -14
- package/dist/personal-meeting-room/request.js +7 -7
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.d.ts +2 -2
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.d.ts +139 -139
- package/dist/reachability/index.js +110 -110
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.d.ts +35 -35
- package/dist/reachability/request.js +15 -15
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/reactions.d.ts +4 -4
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.d.ts +32 -32
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.d.ts +112 -112
- package/dist/reconnection-manager/index.js +112 -112
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.d.ts +7 -7
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.d.ts +193 -193
- package/dist/recording-controller/index.js +127 -127
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.d.ts +13 -13
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/collection.d.ts +10 -10
- package/dist/roap/collection.js.map +1 -1
- package/dist/roap/handler.d.ts +47 -47
- package/dist/roap/handler.js +27 -27
- package/dist/roap/handler.js.map +1 -1
- package/dist/roap/index.d.ts +116 -116
- package/dist/roap/index.js +111 -111
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.d.ts +35 -35
- package/dist/roap/request.js +17 -17
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/state.d.ts +9 -9
- package/dist/roap/state.js +14 -14
- package/dist/roap/state.js.map +1 -1
- package/dist/roap/turnDiscovery.d.ts +67 -67
- package/dist/roap/turnDiscovery.js +46 -46
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/roap/util.d.ts +2 -2
- package/dist/roap/util.js.map +1 -1
- package/dist/statsAnalyzer/global.d.ts +126 -116
- package/dist/statsAnalyzer/global.js +10 -0
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.d.ts +190 -191
- package/dist/statsAnalyzer/index.js +137 -139
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +22 -22
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.d.ts +64 -64
- package/dist/transcription/index.js +42 -42
- package/dist/transcription/index.js.map +1 -1
- package/internal-README.md +172 -172
- package/jest.config.js +3 -3
- package/package.json +22 -21
- package/process +1 -1
- package/src/common/browser-detection.ts +39 -39
- package/src/common/collection.ts +94 -94
- package/src/common/config.ts +9 -9
- package/src/common/errors/captcha-error.ts +25 -25
- package/src/common/errors/intent-to-join.ts +27 -27
- package/src/common/errors/join-meeting.ts +32 -32
- package/src/common/errors/media.ts +25 -25
- package/src/common/errors/parameter.ts +33 -33
- package/src/common/errors/password-error.ts +25 -25
- package/src/common/errors/permission.ts +24 -24
- package/src/common/errors/reconnection-in-progress.ts +8 -8
- package/src/common/errors/reconnection.ts +25 -25
- package/src/common/errors/stats.ts +25 -25
- package/src/common/errors/webex-errors.ts +140 -140
- package/src/common/errors/webex-meetings-error.ts +35 -35
- package/src/common/events/events-scope.ts +30 -30
- package/src/common/events/events.ts +25 -25
- package/src/common/events/trigger-proxy.ts +25 -25
- package/src/common/events/util.ts +39 -39
- package/src/common/logs/logger-config.ts +8 -8
- package/src/common/logs/logger-proxy.ts +44 -44
- package/src/common/logs/request.ts +65 -65
- package/src/common/queue.ts +50 -50
- package/src/config.ts +96 -96
- package/src/constants.ts +1121 -1121
- package/src/controls-options-manager/constants.ts +5 -5
- package/src/controls-options-manager/enums.ts +6 -6
- package/src/controls-options-manager/index.ts +183 -183
- package/src/controls-options-manager/util.ts +20 -20
- package/src/index.js +15 -15
- package/src/locus-info/controlsUtils.ts +112 -112
- package/src/locus-info/embeddedAppsUtils.ts +57 -57
- package/src/locus-info/fullState.ts +69 -69
- package/src/locus-info/hostUtils.ts +60 -60
- package/src/locus-info/index.ts +1303 -1303
- package/src/locus-info/infoUtils.ts +101 -101
- package/src/locus-info/mediaSharesUtils.ts +173 -173
- package/src/locus-info/parser.ts +680 -680
- package/src/locus-info/selfUtils.ts +428 -428
- package/src/media/index.ts +675 -675
- package/src/media/properties.ts +313 -313
- package/src/media/util.ts +37 -37
- package/src/mediaQualityMetrics/config.ts +382 -382
- package/src/meeting/effectsState.ts +209 -209
- package/src/meeting/in-meeting-actions.ts +153 -153
- package/src/meeting/index.ts +6537 -6543
- package/src/meeting/muteState.ts +365 -365
- package/src/meeting/request.ts +810 -810
- package/src/meeting/state.ts +194 -194
- package/src/meeting/util.ts +530 -530
- package/src/meeting-info/collection.ts +41 -41
- package/src/meeting-info/index.ts +137 -137
- package/src/meeting-info/meeting-info-v2.ts +273 -273
- package/src/meeting-info/request.ts +46 -46
- package/src/meeting-info/util.ts +314 -314
- package/src/meeting-info/utilv2.ts +324 -324
- package/src/meetings/collection.ts +43 -43
- package/src/meetings/index.ts +1128 -1128
- package/src/meetings/request.ts +81 -81
- package/src/meetings/util.ts +181 -181
- package/src/member/index.ts +446 -446
- package/src/member/member.types.ts +13 -13
- package/src/member/util.ts +286 -286
- package/src/members/collection.ts +40 -40
- package/src/members/index.ts +900 -900
- package/src/members/request.ts +175 -175
- package/src/members/util.ts +260 -260
- package/src/metrics/config.ts +485 -485
- package/src/metrics/constants.ts +61 -61
- package/src/metrics/index.ts +543 -543
- package/src/networkQualityMonitor/index.ts +211 -211
- package/src/peer-connection-manager/index.ts +847 -847
- package/src/peer-connection-manager/util.ts +119 -119
- package/src/personal-meeting-room/index.ts +157 -157
- package/src/personal-meeting-room/request.ts +48 -48
- package/src/personal-meeting-room/util.ts +49 -49
- package/src/reachability/index.ts +478 -478
- package/src/reachability/request.ts +81 -81
- package/src/reactions/reactions.ts +104 -104
- package/src/reactions/reactions.type.ts +36 -36
- package/src/reconnection-manager/index.ts +622 -622
- package/src/recording-controller/enums.ts +8 -8
- package/src/recording-controller/index.ts +315 -315
- package/src/recording-controller/util.ts +58 -58
- package/src/roap/collection.ts +62 -62
- package/src/roap/handler.ts +294 -294
- package/src/roap/index.ts +413 -413
- package/src/roap/request.ts +229 -229
- package/src/roap/state.ts +156 -156
- package/src/roap/turnDiscovery.ts +283 -283
- package/src/roap/util.ts +100 -100
- package/src/statsAnalyzer/global.ts +128 -118
- package/src/statsAnalyzer/index.ts +1266 -1265
- package/src/statsAnalyzer/mqaUtil.ts +290 -290
- package/src/transcription/index.ts +154 -154
- package/test/integration/spec/journey.js +941 -941
- package/test/integration/spec/space-meeting.js +457 -457
- package/test/integration/spec/transcription.js +55 -55
- package/test/unit/spec/common/browser-detection.js +119 -119
- package/test/unit/spec/common/queue.js +69 -69
- package/test/unit/spec/controls-options-manager/index.js +123 -123
- package/test/unit/spec/controls-options-manager/util.js +65 -65
- package/test/unit/spec/fixture/locus.js +406 -406
- package/test/unit/spec/locus-info/controlsUtils.js +82 -82
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +104 -104
- package/test/unit/spec/locus-info/index.js +1272 -1272
- package/test/unit/spec/locus-info/infoUtils.js +138 -138
- package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +975 -975
- package/test/unit/spec/locus-info/lib/SeqCmp.json +522 -522
- package/test/unit/spec/locus-info/lib/selfConstant.js +286 -286
- package/test/unit/spec/locus-info/parser.js +298 -298
- package/test/unit/spec/locus-info/selfUtils.js +185 -185
- package/test/unit/spec/media/properties.ts +305 -305
- package/test/unit/spec/meeting/effectsState.js +281 -281
- package/test/unit/spec/meeting/in-meeting-actions.ts +90 -90
- package/test/unit/spec/meeting/index.js +5227 -5227
- package/test/unit/spec/meeting/muteState.js +430 -430
- package/test/unit/spec/meeting/request.js +317 -317
- package/test/unit/spec/meeting/utils.js +319 -319
- package/test/unit/spec/meeting-info/meetinginfov2.js +376 -376
- package/test/unit/spec/meeting-info/request.js +64 -64
- package/test/unit/spec/meeting-info/util.js +37 -37
- package/test/unit/spec/meeting-info/utilv2.js +330 -330
- package/test/unit/spec/meetings/collection.js +52 -52
- package/test/unit/spec/meetings/index.js +1375 -1375
- package/test/unit/spec/meetings/utils.js +66 -66
- package/test/unit/spec/member/index.js +47 -47
- package/test/unit/spec/member/util.js +80 -80
- package/test/unit/spec/members/index.js +364 -364
- package/test/unit/spec/members/request.js +200 -200
- package/test/unit/spec/members/utils.js +42 -42
- package/test/unit/spec/metrics/index.js +111 -111
- package/test/unit/spec/networkQualityMonitor/index.js +99 -99
- package/test/unit/spec/peerconnection-manager/index.js +218 -218
- package/test/unit/spec/peerconnection-manager/utils.js +49 -49
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -388
- package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +29 -29
- package/test/unit/spec/reachability/index.ts +50 -50
- package/test/unit/spec/reconnection-manager/index.js +206 -206
- package/test/unit/spec/recording-controller/index.js +230 -230
- package/test/unit/spec/recording-controller/util.js +101 -101
- package/test/unit/spec/roap/index.ts +128 -128
- package/test/unit/spec/roap/turnDiscovery.ts +372 -372
- package/test/unit/spec/roap/util.js +30 -30
- package/test/unit/spec/stats-analyzer/index.js +287 -355
- package/test/utils/cmr.js +104 -104
- package/test/utils/testUtils.js +287 -287
- package/test/utils/webex-config.js +77 -77
- package/test/utils/webex-test-users.js +82 -82
- package/tsconfig.json +5 -5
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
// values are inherited from locus so don't update these
|
|
2
|
-
export enum MediaStatus {
|
|
3
|
-
RECVONLY = 'RECVONLY', // participant only receiving and not sending
|
|
4
|
-
SENDONLY = 'SENDONLY', // participant only sending and not receiving
|
|
5
|
-
SENDRECV = 'SENDRECV', // participant both sending and receiving
|
|
6
|
-
INACTIVE = 'INACTIVE', // participant is not connected to media source
|
|
7
|
-
UNKNOWN = 'UNKNOWN', // participant has not added media in the meeting
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export interface IMediaStatus {
|
|
11
|
-
audio: MediaStatus;
|
|
12
|
-
video: MediaStatus;
|
|
13
|
-
}
|
|
1
|
+
// values are inherited from locus so don't update these
|
|
2
|
+
export enum MediaStatus {
|
|
3
|
+
RECVONLY = 'RECVONLY', // participant only receiving and not sending
|
|
4
|
+
SENDONLY = 'SENDONLY', // participant only sending and not receiving
|
|
5
|
+
SENDRECV = 'SENDRECV', // participant both sending and receiving
|
|
6
|
+
INACTIVE = 'INACTIVE', // participant is not connected to media source
|
|
7
|
+
UNKNOWN = 'UNKNOWN', // participant has not added media in the meeting
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface IMediaStatus {
|
|
11
|
+
audio: MediaStatus;
|
|
12
|
+
video: MediaStatus;
|
|
13
|
+
}
|
package/src/member/util.ts
CHANGED
|
@@ -1,286 +1,286 @@
|
|
|
1
|
-
import {
|
|
2
|
-
_USER_,
|
|
3
|
-
_RESOURCE_ROOM_,
|
|
4
|
-
_OBSERVE_,
|
|
5
|
-
_WAIT_,
|
|
6
|
-
_LEFT_,
|
|
7
|
-
_JOINED_,
|
|
8
|
-
_IDLE_,
|
|
9
|
-
_IN_LOBBY_,
|
|
10
|
-
_NOT_IN_MEETING_,
|
|
11
|
-
_IN_MEETING_,
|
|
12
|
-
AUDIO_STATUS,
|
|
13
|
-
VIDEO_STATUS,
|
|
14
|
-
_SEND_RECEIVE_,
|
|
15
|
-
_RECEIVE_ONLY_,
|
|
16
|
-
_CALL_,
|
|
17
|
-
} from '../constants';
|
|
18
|
-
import ParameterError from '../common/errors/parameter';
|
|
19
|
-
import {IMediaStatus} from './member.types';
|
|
20
|
-
|
|
21
|
-
const MemberUtil: any = {};
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* @param {Object} participant the locus participant
|
|
25
|
-
* @returns {Boolean}
|
|
26
|
-
*/
|
|
27
|
-
MemberUtil.isUser = (participant: any) => participant && participant.type === _USER_;
|
|
28
|
-
|
|
29
|
-
MemberUtil.isModerator = (participant) => participant && participant.moderator;
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* @param {Object} participant the locus participant
|
|
33
|
-
* @returns {Boolean}
|
|
34
|
-
*/
|
|
35
|
-
MemberUtil.isGuest = (participant: any) => participant && participant.guest;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* @param {Object} participant the locus participant
|
|
39
|
-
* @returns {Boolean}
|
|
40
|
-
*/
|
|
41
|
-
MemberUtil.isDevice = (participant: any) => participant && participant.type === _RESOURCE_ROOM_;
|
|
42
|
-
|
|
43
|
-
MemberUtil.isModeratorAssignmentProhibited = (participant) =>
|
|
44
|
-
participant && participant.moderatorAssignmentNotAllowed;
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* checks to see if the participant id is the same as the passed id
|
|
48
|
-
* there are multiple ids that can be used
|
|
49
|
-
* @param {Object} participant the locus participant
|
|
50
|
-
* @param {String} id
|
|
51
|
-
* @returns {Boolean}
|
|
52
|
-
*/
|
|
53
|
-
MemberUtil.isSame = (participant: any, id: string) =>
|
|
54
|
-
participant && (participant.id === id || (participant.person && participant.person.id === id));
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* checks to see if the participant id is the same as the passed id for associated devices
|
|
58
|
-
* there are multiple ids that can be used
|
|
59
|
-
* @param {Object} participant the locus participant
|
|
60
|
-
* @param {String} id
|
|
61
|
-
* @returns {Boolean}
|
|
62
|
-
*/
|
|
63
|
-
MemberUtil.isAssociatedSame = (participant: any, id: string) =>
|
|
64
|
-
participant &&
|
|
65
|
-
participant.associatedUsers &&
|
|
66
|
-
participant.associatedUsers.some(
|
|
67
|
-
(user) => user.id === id || (user.person && user.person.id === id)
|
|
68
|
-
);
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* @param {Object} participant the locus participant
|
|
72
|
-
* @param {Boolean} isGuest
|
|
73
|
-
* @param {String} status
|
|
74
|
-
* @returns {Boolean}
|
|
75
|
-
*/
|
|
76
|
-
MemberUtil.isNotAdmitted = (participant: any, isGuest: boolean, status: string): boolean =>
|
|
77
|
-
participant &&
|
|
78
|
-
participant.guest &&
|
|
79
|
-
((participant.devices &&
|
|
80
|
-
participant.devices[0] &&
|
|
81
|
-
participant.devices[0].intent &&
|
|
82
|
-
participant.devices[0].intent.type === _WAIT_ &&
|
|
83
|
-
// @ts-ignore
|
|
84
|
-
isGuest &&
|
|
85
|
-
status === _IN_LOBBY_) ||
|
|
86
|
-
// @ts-ignore
|
|
87
|
-
!status === _IN_MEETING_);
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* @param {Object} participant the locus participant
|
|
91
|
-
* @returns {Boolean}
|
|
92
|
-
*/
|
|
93
|
-
MemberUtil.isAudioMuted = (participant: any) => {
|
|
94
|
-
if (!participant) {
|
|
95
|
-
throw new ParameterError('Audio could not be processed, participant is undefined.');
|
|
96
|
-
}
|
|
97
|
-
const mutedStatus = MemberUtil.isMuted(participant.status, AUDIO_STATUS);
|
|
98
|
-
|
|
99
|
-
if (participant.controls && participant.controls.audio) {
|
|
100
|
-
if (participant.controls.audio.muted) {
|
|
101
|
-
return true;
|
|
102
|
-
}
|
|
103
|
-
if (mutedStatus) {
|
|
104
|
-
return true;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
return false;
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* @param {Object} participant the locus participant
|
|
113
|
-
* @returns {Boolean}
|
|
114
|
-
*/
|
|
115
|
-
MemberUtil.isVideoMuted = (participant: any) => {
|
|
116
|
-
if (!participant) {
|
|
117
|
-
throw new ParameterError('Video could not be processed, participant is undefined.');
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
return MemberUtil.isMuted(participant.status, VIDEO_STATUS);
|
|
121
|
-
};
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* @param {Object} participant the locus participant
|
|
125
|
-
* @returns {Boolean}
|
|
126
|
-
*/
|
|
127
|
-
MemberUtil.isHandRaised = (participant: any) => {
|
|
128
|
-
if (!participant) {
|
|
129
|
-
throw new ParameterError('Raise hand could not be processed, participant is undefined.');
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
return participant.controls?.hand?.raised || false;
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* utility method for audio/video muted status
|
|
137
|
-
* @param {String} status
|
|
138
|
-
* @param {String} accessor
|
|
139
|
-
* @returns {Boolean}
|
|
140
|
-
*/
|
|
141
|
-
MemberUtil.isMuted = (status: string, accessor: string) => {
|
|
142
|
-
if (status) {
|
|
143
|
-
if (status[accessor] === _RECEIVE_ONLY_) {
|
|
144
|
-
return true;
|
|
145
|
-
}
|
|
146
|
-
if (status[accessor] === _SEND_RECEIVE_) {
|
|
147
|
-
return false;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
return null;
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* utility method for getting the recording member for later comparison
|
|
156
|
-
* @param {Object} controls
|
|
157
|
-
* @returns {String|null}
|
|
158
|
-
*/
|
|
159
|
-
MemberUtil.getRecordingMember = (controls: any) => {
|
|
160
|
-
if (!controls) {
|
|
161
|
-
return null;
|
|
162
|
-
}
|
|
163
|
-
if (controls.record && controls.record.recording && controls.record.meta) {
|
|
164
|
-
return controls.record.meta.modifiedBy;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
return null;
|
|
168
|
-
};
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* @param {Object} participant the locus participant
|
|
172
|
-
* @returns {Boolean}
|
|
173
|
-
*/
|
|
174
|
-
MemberUtil.isRecording = (participant: any) => {
|
|
175
|
-
if (!participant) {
|
|
176
|
-
throw new ParameterError('Recording could not be processed, participant is undefined.');
|
|
177
|
-
}
|
|
178
|
-
if (participant.controls && participant.controls.localRecord) {
|
|
179
|
-
return participant.controls.localRecord.recording;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
return false;
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
MemberUtil.isRemovable = (isSelf, isGuest, isInMeeting, type) => {
|
|
186
|
-
if (isGuest || isSelf) {
|
|
187
|
-
return false;
|
|
188
|
-
}
|
|
189
|
-
if (type === _CALL_) {
|
|
190
|
-
return false;
|
|
191
|
-
}
|
|
192
|
-
if (isInMeeting) {
|
|
193
|
-
return true;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
return false;
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
MemberUtil.isMutable = (isSelf, isDevice, isInMeeting, isMuted, type) => {
|
|
200
|
-
if (!isInMeeting) {
|
|
201
|
-
return false;
|
|
202
|
-
}
|
|
203
|
-
if (isMuted) {
|
|
204
|
-
return false;
|
|
205
|
-
}
|
|
206
|
-
if (type === _CALL_) {
|
|
207
|
-
return false;
|
|
208
|
-
}
|
|
209
|
-
if (isSelf || isDevice) {
|
|
210
|
-
return true;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
return false;
|
|
214
|
-
};
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* @param {Object} participant the locus participant
|
|
218
|
-
* @returns {String}
|
|
219
|
-
*/
|
|
220
|
-
MemberUtil.extractStatus = (participant: any) => {
|
|
221
|
-
if (!(participant && participant.devices && participant.devices.length)) {
|
|
222
|
-
return _NOT_IN_MEETING_;
|
|
223
|
-
}
|
|
224
|
-
if (participant.state === _JOINED_) {
|
|
225
|
-
return _IN_MEETING_;
|
|
226
|
-
}
|
|
227
|
-
if (participant.state === _IDLE_) {
|
|
228
|
-
if (participant.devices && participant.devices.length > 0) {
|
|
229
|
-
const foundDevice = participant.devices.find(
|
|
230
|
-
(device) =>
|
|
231
|
-
device.intent && (device.intent.type === _WAIT_ || device.intent.type === _OBSERVE_)
|
|
232
|
-
);
|
|
233
|
-
|
|
234
|
-
return foundDevice ? _IN_LOBBY_ : _NOT_IN_MEETING_;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
return _NOT_IN_MEETING_;
|
|
238
|
-
}
|
|
239
|
-
if (participant.state === _LEFT_) {
|
|
240
|
-
return _NOT_IN_MEETING_;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
return _NOT_IN_MEETING_;
|
|
244
|
-
};
|
|
245
|
-
|
|
246
|
-
/**
|
|
247
|
-
* @param {Object} participant the locus participant
|
|
248
|
-
* @returns {String}
|
|
249
|
-
*/
|
|
250
|
-
MemberUtil.extractId = (participant: any) => {
|
|
251
|
-
if (participant) {
|
|
252
|
-
return participant.id;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
return null;
|
|
256
|
-
};
|
|
257
|
-
|
|
258
|
-
/**
|
|
259
|
-
* extracts the media status from nested participant object
|
|
260
|
-
* @param {Object} participant the locus participant
|
|
261
|
-
* @returns {Object}
|
|
262
|
-
*/
|
|
263
|
-
MemberUtil.extractMediaStatus = (participant: any): IMediaStatus => {
|
|
264
|
-
if (!participant) {
|
|
265
|
-
throw new ParameterError('Media status could not be extracted, participant is undefined.');
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
return {
|
|
269
|
-
audio: participant.status.audioStatus,
|
|
270
|
-
video: participant.status.videoStatus,
|
|
271
|
-
};
|
|
272
|
-
};
|
|
273
|
-
|
|
274
|
-
/**
|
|
275
|
-
* @param {Object} participant the locus participant
|
|
276
|
-
* @returns {String}
|
|
277
|
-
*/
|
|
278
|
-
MemberUtil.extractName = (participant: any) => {
|
|
279
|
-
if (participant && participant.person) {
|
|
280
|
-
return participant.person.name;
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
return null;
|
|
284
|
-
};
|
|
285
|
-
|
|
286
|
-
export default MemberUtil;
|
|
1
|
+
import {
|
|
2
|
+
_USER_,
|
|
3
|
+
_RESOURCE_ROOM_,
|
|
4
|
+
_OBSERVE_,
|
|
5
|
+
_WAIT_,
|
|
6
|
+
_LEFT_,
|
|
7
|
+
_JOINED_,
|
|
8
|
+
_IDLE_,
|
|
9
|
+
_IN_LOBBY_,
|
|
10
|
+
_NOT_IN_MEETING_,
|
|
11
|
+
_IN_MEETING_,
|
|
12
|
+
AUDIO_STATUS,
|
|
13
|
+
VIDEO_STATUS,
|
|
14
|
+
_SEND_RECEIVE_,
|
|
15
|
+
_RECEIVE_ONLY_,
|
|
16
|
+
_CALL_,
|
|
17
|
+
} from '../constants';
|
|
18
|
+
import ParameterError from '../common/errors/parameter';
|
|
19
|
+
import {IMediaStatus} from './member.types';
|
|
20
|
+
|
|
21
|
+
const MemberUtil: any = {};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @param {Object} participant the locus participant
|
|
25
|
+
* @returns {Boolean}
|
|
26
|
+
*/
|
|
27
|
+
MemberUtil.isUser = (participant: any) => participant && participant.type === _USER_;
|
|
28
|
+
|
|
29
|
+
MemberUtil.isModerator = (participant) => participant && participant.moderator;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @param {Object} participant the locus participant
|
|
33
|
+
* @returns {Boolean}
|
|
34
|
+
*/
|
|
35
|
+
MemberUtil.isGuest = (participant: any) => participant && participant.guest;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @param {Object} participant the locus participant
|
|
39
|
+
* @returns {Boolean}
|
|
40
|
+
*/
|
|
41
|
+
MemberUtil.isDevice = (participant: any) => participant && participant.type === _RESOURCE_ROOM_;
|
|
42
|
+
|
|
43
|
+
MemberUtil.isModeratorAssignmentProhibited = (participant) =>
|
|
44
|
+
participant && participant.moderatorAssignmentNotAllowed;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* checks to see if the participant id is the same as the passed id
|
|
48
|
+
* there are multiple ids that can be used
|
|
49
|
+
* @param {Object} participant the locus participant
|
|
50
|
+
* @param {String} id
|
|
51
|
+
* @returns {Boolean}
|
|
52
|
+
*/
|
|
53
|
+
MemberUtil.isSame = (participant: any, id: string) =>
|
|
54
|
+
participant && (participant.id === id || (participant.person && participant.person.id === id));
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* checks to see if the participant id is the same as the passed id for associated devices
|
|
58
|
+
* there are multiple ids that can be used
|
|
59
|
+
* @param {Object} participant the locus participant
|
|
60
|
+
* @param {String} id
|
|
61
|
+
* @returns {Boolean}
|
|
62
|
+
*/
|
|
63
|
+
MemberUtil.isAssociatedSame = (participant: any, id: string) =>
|
|
64
|
+
participant &&
|
|
65
|
+
participant.associatedUsers &&
|
|
66
|
+
participant.associatedUsers.some(
|
|
67
|
+
(user) => user.id === id || (user.person && user.person.id === id)
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* @param {Object} participant the locus participant
|
|
72
|
+
* @param {Boolean} isGuest
|
|
73
|
+
* @param {String} status
|
|
74
|
+
* @returns {Boolean}
|
|
75
|
+
*/
|
|
76
|
+
MemberUtil.isNotAdmitted = (participant: any, isGuest: boolean, status: string): boolean =>
|
|
77
|
+
participant &&
|
|
78
|
+
participant.guest &&
|
|
79
|
+
((participant.devices &&
|
|
80
|
+
participant.devices[0] &&
|
|
81
|
+
participant.devices[0].intent &&
|
|
82
|
+
participant.devices[0].intent.type === _WAIT_ &&
|
|
83
|
+
// @ts-ignore
|
|
84
|
+
isGuest &&
|
|
85
|
+
status === _IN_LOBBY_) ||
|
|
86
|
+
// @ts-ignore
|
|
87
|
+
!status === _IN_MEETING_);
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* @param {Object} participant the locus participant
|
|
91
|
+
* @returns {Boolean}
|
|
92
|
+
*/
|
|
93
|
+
MemberUtil.isAudioMuted = (participant: any) => {
|
|
94
|
+
if (!participant) {
|
|
95
|
+
throw new ParameterError('Audio could not be processed, participant is undefined.');
|
|
96
|
+
}
|
|
97
|
+
const mutedStatus = MemberUtil.isMuted(participant.status, AUDIO_STATUS);
|
|
98
|
+
|
|
99
|
+
if (participant.controls && participant.controls.audio) {
|
|
100
|
+
if (participant.controls.audio.muted) {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
if (mutedStatus) {
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return false;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* @param {Object} participant the locus participant
|
|
113
|
+
* @returns {Boolean}
|
|
114
|
+
*/
|
|
115
|
+
MemberUtil.isVideoMuted = (participant: any) => {
|
|
116
|
+
if (!participant) {
|
|
117
|
+
throw new ParameterError('Video could not be processed, participant is undefined.');
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
return MemberUtil.isMuted(participant.status, VIDEO_STATUS);
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* @param {Object} participant the locus participant
|
|
125
|
+
* @returns {Boolean}
|
|
126
|
+
*/
|
|
127
|
+
MemberUtil.isHandRaised = (participant: any) => {
|
|
128
|
+
if (!participant) {
|
|
129
|
+
throw new ParameterError('Raise hand could not be processed, participant is undefined.');
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
return participant.controls?.hand?.raised || false;
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* utility method for audio/video muted status
|
|
137
|
+
* @param {String} status
|
|
138
|
+
* @param {String} accessor
|
|
139
|
+
* @returns {Boolean}
|
|
140
|
+
*/
|
|
141
|
+
MemberUtil.isMuted = (status: string, accessor: string) => {
|
|
142
|
+
if (status) {
|
|
143
|
+
if (status[accessor] === _RECEIVE_ONLY_) {
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
if (status[accessor] === _SEND_RECEIVE_) {
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return null;
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* utility method for getting the recording member for later comparison
|
|
156
|
+
* @param {Object} controls
|
|
157
|
+
* @returns {String|null}
|
|
158
|
+
*/
|
|
159
|
+
MemberUtil.getRecordingMember = (controls: any) => {
|
|
160
|
+
if (!controls) {
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
if (controls.record && controls.record.recording && controls.record.meta) {
|
|
164
|
+
return controls.record.meta.modifiedBy;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
return null;
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* @param {Object} participant the locus participant
|
|
172
|
+
* @returns {Boolean}
|
|
173
|
+
*/
|
|
174
|
+
MemberUtil.isRecording = (participant: any) => {
|
|
175
|
+
if (!participant) {
|
|
176
|
+
throw new ParameterError('Recording could not be processed, participant is undefined.');
|
|
177
|
+
}
|
|
178
|
+
if (participant.controls && participant.controls.localRecord) {
|
|
179
|
+
return participant.controls.localRecord.recording;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
return false;
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
MemberUtil.isRemovable = (isSelf, isGuest, isInMeeting, type) => {
|
|
186
|
+
if (isGuest || isSelf) {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
if (type === _CALL_) {
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
if (isInMeeting) {
|
|
193
|
+
return true;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
return false;
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
MemberUtil.isMutable = (isSelf, isDevice, isInMeeting, isMuted, type) => {
|
|
200
|
+
if (!isInMeeting) {
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
if (isMuted) {
|
|
204
|
+
return false;
|
|
205
|
+
}
|
|
206
|
+
if (type === _CALL_) {
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
209
|
+
if (isSelf || isDevice) {
|
|
210
|
+
return true;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
return false;
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* @param {Object} participant the locus participant
|
|
218
|
+
* @returns {String}
|
|
219
|
+
*/
|
|
220
|
+
MemberUtil.extractStatus = (participant: any) => {
|
|
221
|
+
if (!(participant && participant.devices && participant.devices.length)) {
|
|
222
|
+
return _NOT_IN_MEETING_;
|
|
223
|
+
}
|
|
224
|
+
if (participant.state === _JOINED_) {
|
|
225
|
+
return _IN_MEETING_;
|
|
226
|
+
}
|
|
227
|
+
if (participant.state === _IDLE_) {
|
|
228
|
+
if (participant.devices && participant.devices.length > 0) {
|
|
229
|
+
const foundDevice = participant.devices.find(
|
|
230
|
+
(device) =>
|
|
231
|
+
device.intent && (device.intent.type === _WAIT_ || device.intent.type === _OBSERVE_)
|
|
232
|
+
);
|
|
233
|
+
|
|
234
|
+
return foundDevice ? _IN_LOBBY_ : _NOT_IN_MEETING_;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
return _NOT_IN_MEETING_;
|
|
238
|
+
}
|
|
239
|
+
if (participant.state === _LEFT_) {
|
|
240
|
+
return _NOT_IN_MEETING_;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
return _NOT_IN_MEETING_;
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* @param {Object} participant the locus participant
|
|
248
|
+
* @returns {String}
|
|
249
|
+
*/
|
|
250
|
+
MemberUtil.extractId = (participant: any) => {
|
|
251
|
+
if (participant) {
|
|
252
|
+
return participant.id;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
return null;
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* extracts the media status from nested participant object
|
|
260
|
+
* @param {Object} participant the locus participant
|
|
261
|
+
* @returns {Object}
|
|
262
|
+
*/
|
|
263
|
+
MemberUtil.extractMediaStatus = (participant: any): IMediaStatus => {
|
|
264
|
+
if (!participant) {
|
|
265
|
+
throw new ParameterError('Media status could not be extracted, participant is undefined.');
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
return {
|
|
269
|
+
audio: participant.status.audioStatus,
|
|
270
|
+
video: participant.status.videoStatus,
|
|
271
|
+
};
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* @param {Object} participant the locus participant
|
|
276
|
+
* @returns {String}
|
|
277
|
+
*/
|
|
278
|
+
MemberUtil.extractName = (participant: any) => {
|
|
279
|
+
if (participant && participant.person) {
|
|
280
|
+
return participant.person.name;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
return null;
|
|
284
|
+
};
|
|
285
|
+
|
|
286
|
+
export default MemberUtil;
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import {MEETINGS} from '../constants';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @class MembersCollection
|
|
5
|
-
*/
|
|
6
|
-
export default class MembersCollection {
|
|
7
|
-
members: any;
|
|
8
|
-
namespace = MEETINGS;
|
|
9
|
-
/**
|
|
10
|
-
* @param {Object} locus
|
|
11
|
-
* @memberof Members
|
|
12
|
-
*/
|
|
13
|
-
constructor() {
|
|
14
|
-
this.members = {};
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
set(id, member) {
|
|
18
|
-
this.members[id] = member;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
setAll(members) {
|
|
22
|
-
this.members = members;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* @param {String} id
|
|
27
|
-
* @returns {Member}
|
|
28
|
-
*/
|
|
29
|
-
get(id: string) {
|
|
30
|
-
return this.members[id];
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* @returns {Object} returns an object map of Member instances
|
|
35
|
-
* @memberof MembersCollection
|
|
36
|
-
*/
|
|
37
|
-
getAll() {
|
|
38
|
-
return this.members;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
1
|
+
import {MEETINGS} from '../constants';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @class MembersCollection
|
|
5
|
+
*/
|
|
6
|
+
export default class MembersCollection {
|
|
7
|
+
members: any;
|
|
8
|
+
namespace = MEETINGS;
|
|
9
|
+
/**
|
|
10
|
+
* @param {Object} locus
|
|
11
|
+
* @memberof Members
|
|
12
|
+
*/
|
|
13
|
+
constructor() {
|
|
14
|
+
this.members = {};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
set(id, member) {
|
|
18
|
+
this.members[id] = member;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
setAll(members) {
|
|
22
|
+
this.members = members;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @param {String} id
|
|
27
|
+
* @returns {Member}
|
|
28
|
+
*/
|
|
29
|
+
get(id: string) {
|
|
30
|
+
return this.members[id];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @returns {Object} returns an object map of Member instances
|
|
35
|
+
* @memberof MembersCollection
|
|
36
|
+
*/
|
|
37
|
+
getAll() {
|
|
38
|
+
return this.members;
|
|
39
|
+
}
|
|
40
|
+
}
|