@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
package/dist/meeting/state.js
CHANGED
|
@@ -14,10 +14,10 @@ var _constants = require("../constants");
|
|
|
14
14
|
var _parameter = _interopRequireDefault(require("../common/errors/parameter"));
|
|
15
15
|
// TODO: ensure that meeting can be destroyed when in an error state
|
|
16
16
|
var MeetingStateMachine = {
|
|
17
|
-
/**
|
|
18
|
-
* Initializes the StateMachine for the meeting
|
|
19
|
-
* @param {Meeting} meetingRef A reference to a meeting instance
|
|
20
|
-
* @returns {StateMachine}
|
|
17
|
+
/**
|
|
18
|
+
* Initializes the StateMachine for the meeting
|
|
19
|
+
* @param {Meeting} meetingRef A reference to a meeting instance
|
|
20
|
+
* @returns {StateMachine}
|
|
21
21
|
*/
|
|
22
22
|
create: function create(meetingRef) {
|
|
23
23
|
if (!meetingRef) {
|
|
@@ -43,11 +43,11 @@ var MeetingStateMachine = {
|
|
|
43
43
|
{
|
|
44
44
|
name: _constants.MEETING_STATE_MACHINE.TRANSITIONS.REMOTE,
|
|
45
45
|
from: [_constants.MEETING_STATE_MACHINE.STATES.JOINED, _constants.MEETING_STATE_MACHINE.STATES.ERROR],
|
|
46
|
-
/**
|
|
47
|
-
* @param {Object} remote
|
|
48
|
-
* @param {Boolean} remote.remoteAnswered
|
|
49
|
-
* @param {Boolean} remote.remoteDeclined
|
|
50
|
-
* @returns {String}
|
|
46
|
+
/**
|
|
47
|
+
* @param {Object} remote
|
|
48
|
+
* @param {Boolean} remote.remoteAnswered
|
|
49
|
+
* @param {Boolean} remote.remoteDeclined
|
|
50
|
+
* @returns {String}
|
|
51
51
|
*/
|
|
52
52
|
to: function to(remote) {
|
|
53
53
|
// other user answered the call
|
|
@@ -90,17 +90,17 @@ var MeetingStateMachine = {
|
|
|
90
90
|
to: _constants.MEETING_STATE_MACHINE.STATES.IDLE
|
|
91
91
|
}],
|
|
92
92
|
data: {
|
|
93
|
-
/**
|
|
94
|
-
* The meeting instance to execute all state changes on
|
|
93
|
+
/**
|
|
94
|
+
* The meeting instance to execute all state changes on
|
|
95
95
|
*/
|
|
96
96
|
meeting: meetingRef
|
|
97
97
|
},
|
|
98
98
|
methods: {
|
|
99
|
-
/**
|
|
100
|
-
* Ring stop transition, to end the ring event for the meeting, and transition the state to ANSWERED OR DECLINED, only for outgoing meetings
|
|
101
|
-
* @param {Object} transition -- FiniteStateMachine automatically passed, not used
|
|
102
|
-
* @param {Object} stop -- {remoteAnswered: {Boolean}, remoteDeclined: {Boolean}}
|
|
103
|
-
* @returns {Boolean}
|
|
99
|
+
/**
|
|
100
|
+
* Ring stop transition, to end the ring event for the meeting, and transition the state to ANSWERED OR DECLINED, only for outgoing meetings
|
|
101
|
+
* @param {Object} transition -- FiniteStateMachine automatically passed, not used
|
|
102
|
+
* @param {Object} stop -- {remoteAnswered: {Boolean}, remoteDeclined: {Boolean}}
|
|
103
|
+
* @returns {Boolean}
|
|
104
104
|
*/
|
|
105
105
|
onRemote: function onRemote(transition, stop) {
|
|
106
106
|
if (this.meeting) {
|
|
@@ -113,11 +113,11 @@ var MeetingStateMachine = {
|
|
|
113
113
|
});
|
|
114
114
|
}
|
|
115
115
|
},
|
|
116
|
-
/**
|
|
117
|
-
* Ring transition, to cause the ring event for the meeting, and transition the state to RINGING, for both incoming, and outgoing meetings
|
|
118
|
-
* @param {Object} transition -- FiniteStateMachine automatically passed, not used
|
|
119
|
-
* @param {String} type -- incoming call === INCOMING / or other meetings have a ring type of JOIN
|
|
120
|
-
* @returns {Boolean}
|
|
116
|
+
/**
|
|
117
|
+
* Ring transition, to cause the ring event for the meeting, and transition the state to RINGING, for both incoming, and outgoing meetings
|
|
118
|
+
* @param {Object} transition -- FiniteStateMachine automatically passed, not used
|
|
119
|
+
* @param {String} type -- incoming call === INCOMING / or other meetings have a ring type of JOIN
|
|
120
|
+
* @returns {Boolean}
|
|
121
121
|
*/
|
|
122
122
|
onRing: function onRing(transition, type) {
|
|
123
123
|
if (this.meeting) {
|
|
@@ -130,19 +130,19 @@ var MeetingStateMachine = {
|
|
|
130
130
|
});
|
|
131
131
|
}
|
|
132
132
|
},
|
|
133
|
-
/**
|
|
134
|
-
* handle the entry to error state
|
|
135
|
-
* @param {Object} transition
|
|
136
|
-
* @param {Error} error
|
|
137
|
-
* @returns {Boolean}
|
|
133
|
+
/**
|
|
134
|
+
* handle the entry to error state
|
|
135
|
+
* @param {Object} transition
|
|
136
|
+
* @param {Error} error
|
|
137
|
+
* @returns {Boolean}
|
|
138
138
|
*/
|
|
139
139
|
onEnterError: function onEnterError(transition, error) {
|
|
140
140
|
_loggerProxy.default.logger.error("Meeting:state#onEnterError --> state->onEnterError#meeting.id: ".concat(this.meeting.id, " | Transition '").concat(transition === null || transition === void 0 ? void 0 : transition.transition, "' : ").concat(transition === null || transition === void 0 ? void 0 : transition.from, " -> ").concat(transition === null || transition === void 0 ? void 0 : transition.to, ", with error ").concat(error, ". Last states: ").concat(this.history));
|
|
141
141
|
},
|
|
142
|
-
/**
|
|
143
|
-
* After ANY transition occurs, we want to know what state the meeting moved to for debugging
|
|
144
|
-
* @param {Object} transition
|
|
145
|
-
* @returns {Boolean}
|
|
142
|
+
/**
|
|
143
|
+
* After ANY transition occurs, we want to know what state the meeting moved to for debugging
|
|
144
|
+
* @param {Object} transition
|
|
145
|
+
* @returns {Boolean}
|
|
146
146
|
*/
|
|
147
147
|
onAfterTransition: function onAfterTransition(transition) {
|
|
148
148
|
_loggerProxy.default.logger.log("Meeting:state#onAfterTransition --> state->onAfterTransition#meeting.id: ".concat(this.meeting.id, " | Transition '").concat(transition.transition, "' : ").concat(transition.from, " -> ").concat(transition.to, " executed. Last states: ").concat(this.history));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_javascriptStateMachine","_interopRequireDefault","require","_history","_loggerProxy","_triggerProxy","_constants","_parameter","MeetingStateMachine","create","meetingRef","ParameterError","StateMachine","init","MEETING_STATE_MACHINE","STATES","IDLE","transitions","name","TRANSITIONS","RING","from","ERROR","JOINED","to","RINGING","JOIN","REMOTE","remote","remoteAnswered","ANSWERED","remoteDeclined","DECLINED","LEAVE","ENDED","END","DECLINE","FAIL","RESET","data","meeting","methods","onRemote","transition","stop","Trigger","trigger","file","function","EVENT_TRIGGERS","MEETING_RINGING_STOP","id","type","onRing","MEETING_RINGING","onEnterError","error","LoggerProxy","logger","concat","history","onAfterTransition","log","plugins","StateMachineHistory","max","_default","exports","default"],"sources":["state.ts"],"sourcesContent":["import StateMachine from 'javascript-state-machine';\nimport StateMachineHistory from 'javascript-state-machine/lib/history';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport Trigger from '../common/events/trigger-proxy';\nimport {MEETING_STATE_MACHINE, EVENT_TRIGGERS} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\n// TODO: ensure that meeting can be destroyed when in an error state\nconst MeetingStateMachine = {\n /**\n * Initializes the StateMachine for the meeting\n * @param {Meeting} meetingRef A reference to a meeting instance\n * @returns {StateMachine}\n */\n create(meetingRef: any) {\n if (!meetingRef) {\n throw new ParameterError(\n 'You must initialize the meeting state machine with a meeting reference.'\n );\n }\n\n return new StateMachine({\n init: MEETING_STATE_MACHINE.STATES.IDLE,\n transitions: [\n // when ringing a meeting, it must be first IDLE, because all other states are invalid, it transitions to the RINGING state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.RING,\n from: [\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.ERROR,\n MEETING_STATE_MACHINE.STATES.JOINED,\n ],\n to: MEETING_STATE_MACHINE.STATES.RINGING,\n },\n // when joining a meeting, it must be from the RINGING or IDLE state, transitions to JOINED state, 1:1 will go to RINGING,\n // others will go straight to JOINED with this transition\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.JOIN,\n from: [\n MEETING_STATE_MACHINE.STATES.JOINED,\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.RINGING,\n MEETING_STATE_MACHINE.STATES.ERROR,\n ],\n to: MEETING_STATE_MACHINE.STATES.JOINED,\n },\n // signify that ringing has stopped and somebody else answered, move state to DECLINED, ANSWERED\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.REMOTE,\n from: [MEETING_STATE_MACHINE.STATES.JOINED, MEETING_STATE_MACHINE.STATES.ERROR],\n /**\n * @param {Object} remote\n * @param {Boolean} remote.remoteAnswered\n * @param {Boolean} remote.remoteDeclined\n * @returns {String}\n */\n to(remote: {remoteAnswered: boolean; remoteDeclined: boolean}) {\n // other user answered the call\n if (remote.remoteAnswered) {\n return MEETING_STATE_MACHINE.STATES.ANSWERED;\n }\n // other user declined the call\n if (remote.remoteDeclined) {\n return MEETING_STATE_MACHINE.STATES.DECLINED;\n }\n\n // default\n return MEETING_STATE_MACHINE.STATES.ERROR;\n },\n },\n // when leaving a meeting it must be from either the RINGING, JOINED, or ERROR states, and transitions it to the ENDED state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.LEAVE,\n from: [\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.RINGING,\n MEETING_STATE_MACHINE.STATES.JOINED,\n MEETING_STATE_MACHINE.STATES.ANSWERED,\n MEETING_STATE_MACHINE.STATES.DECLINED,\n MEETING_STATE_MACHINE.STATES.ERROR,\n ],\n to: MEETING_STATE_MACHINE.STATES.ENDED,\n },\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.END,\n from: [\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.RINGING,\n MEETING_STATE_MACHINE.STATES.JOINED,\n MEETING_STATE_MACHINE.STATES.ANSWERED,\n MEETING_STATE_MACHINE.STATES.DECLINED,\n MEETING_STATE_MACHINE.STATES.ERROR,\n ],\n to: MEETING_STATE_MACHINE.STATES.ENDED,\n },\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.DECLINE,\n from: [MEETING_STATE_MACHINE.STATES.RINGING, MEETING_STATE_MACHINE.STATES.ERROR],\n to: MEETING_STATE_MACHINE.STATES.ENDED,\n },\n // transition from ANY state to ERROR state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.FAIL,\n from: '*',\n to: MEETING_STATE_MACHINE.STATES.ERROR,\n },\n // fail safe, transition from ANY state to IDLE state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.RESET,\n from: '*',\n to: MEETING_STATE_MACHINE.STATES.IDLE,\n },\n ],\n data: {\n /**\n * The meeting instance to execute all state changes on\n */\n meeting: meetingRef,\n },\n methods: {\n /**\n * Ring stop transition, to end the ring event for the meeting, and transition the state to ANSWERED OR DECLINED, only for outgoing meetings\n * @param {Object} transition -- FiniteStateMachine automatically passed, not used\n * @param {Object} stop -- {remoteAnswered: {Boolean}, remoteDeclined: {Boolean}}\n * @returns {Boolean}\n */\n onRemote(transition: object, stop: object) {\n if (this.meeting) {\n Trigger.trigger(\n this.meeting,\n {\n file: 'meeting/state',\n function: 'onRemote',\n },\n EVENT_TRIGGERS.MEETING_RINGING_STOP,\n {\n id: this.meeting.id,\n type: stop,\n }\n );\n }\n },\n /**\n * Ring transition, to cause the ring event for the meeting, and transition the state to RINGING, for both incoming, and outgoing meetings\n * @param {Object} transition -- FiniteStateMachine automatically passed, not used\n * @param {String} type -- incoming call === INCOMING / or other meetings have a ring type of JOIN\n * @returns {Boolean}\n */\n onRing(transition: object, type: string) {\n if (this.meeting) {\n Trigger.trigger(\n this.meeting,\n {\n file: 'meeting/state',\n function: 'onRing',\n },\n EVENT_TRIGGERS.MEETING_RINGING,\n {\n type,\n id: this.meeting.id,\n }\n );\n }\n },\n /**\n * handle the entry to error state\n * @param {Object} transition\n * @param {Error} error\n * @returns {Boolean}\n */\n onEnterError(transition: any, error: Error) {\n LoggerProxy.logger.error(\n `Meeting:state#onEnterError --> state->onEnterError#meeting.id: ${this.meeting.id} | Transition '${transition?.transition}' : ${transition?.from} -> ${transition?.to}, with error ${error}. Last states: ${this.history}`\n );\n },\n /**\n * After ANY transition occurs, we want to know what state the meeting moved to for debugging\n * @param {Object} transition\n * @returns {Boolean}\n */\n onAfterTransition(transition: any) {\n LoggerProxy.logger.log(\n `Meeting:state#onAfterTransition --> state->onAfterTransition#meeting.id: ${this.meeting.id} | Transition '${transition.transition}' : ${transition.from} -> ${transition.to} executed. Last states: ${this.history}`\n );\n },\n },\n // track the last 25 states entered\n plugins: [new StateMachineHistory({max: 25})],\n });\n },\n};\n\nexport default MeetingStateMachine;\n"],"mappings":";;;;;;;;AAAA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,YAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,aAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAN,sBAAA,CAAAC,OAAA;AAEA;AACA,IAAMM,mBAAmB,GAAG;EAC1B;AACF;AACA;AACA;AACA;EACEC,MAAM,WAAAA,OAACC,UAAe,EAAE;IACtB,IAAI,CAACA,UAAU,EAAE;MACf,MAAM,IAAIC,kBAAc,CACtB,yEAAyE,CAC1E;IACH;IAEA,OAAO,IAAIC,+BAAY,CAAC;MACtBC,IAAI,EAAEC,gCAAqB,CAACC,MAAM,CAACC,IAAI;MACvCC,WAAW,EAAE;MACX;MACA;QACEC,IAAI,EAAEJ,gCAAqB,CAACK,WAAW,CAACC,IAAI;QAC5CC,IAAI,EAAE,CACJP,gCAAqB,CAACC,MAAM,CAACC,IAAI,EACjCF,gCAAqB,CAACC,MAAM,CAACO,KAAK,EAClCR,gCAAqB,CAACC,MAAM,CAACQ,MAAM,CACpC;QACDC,EAAE,EAAEV,gCAAqB,CAACC,MAAM,CAACU;MACnC,CAAC;MACD;MACA;MACA;QACEP,IAAI,EAAEJ,gCAAqB,CAACK,WAAW,CAACO,IAAI;QAC5CL,IAAI,EAAE,CACJP,gCAAqB,CAACC,MAAM,CAACQ,MAAM,EACnCT,gCAAqB,CAACC,MAAM,CAACC,IAAI,EACjCF,gCAAqB,CAACC,MAAM,CAACU,OAAO,EACpCX,gCAAqB,CAACC,MAAM,CAACO,KAAK,CACnC;QACDE,EAAE,EAAEV,gCAAqB,CAACC,MAAM,CAACQ;MACnC,CAAC;MACD;MACA;QACEL,IAAI,EAAEJ,gCAAqB,CAACK,WAAW,CAACQ,MAAM;QAC9CN,IAAI,EAAE,CAACP,gCAAqB,CAACC,MAAM,CAACQ,MAAM,EAAET,gCAAqB,CAACC,MAAM,CAACO,KAAK,CAAC;QAC/E;AACV;AACA;AACA;AACA;AACA;QACUE,EAAE,WAAAA,GAACI,MAA0D,EAAE;UAC7D;UACA,IAAIA,MAAM,CAACC,cAAc,EAAE;YACzB,OAAOf,gCAAqB,CAACC,MAAM,CAACe,QAAQ;UAC9C;UACA;UACA,IAAIF,MAAM,CAACG,cAAc,EAAE;YACzB,OAAOjB,gCAAqB,CAACC,MAAM,CAACiB,QAAQ;UAC9C;;UAEA;UACA,OAAOlB,gCAAqB,CAACC,MAAM,CAACO,KAAK;QAC3C;MACF,CAAC;MACD;MACA;QACEJ,IAAI,EAAEJ,gCAAqB,CAACK,WAAW,CAACc,KAAK;QAC7CZ,IAAI,EAAE,CACJP,gCAAqB,CAACC,MAAM,CAACC,IAAI,EACjCF,gCAAqB,CAACC,MAAM,CAACU,OAAO,EACpCX,gCAAqB,CAACC,MAAM,CAACQ,MAAM,EACnCT,gCAAqB,CAACC,MAAM,CAACe,QAAQ,EACrChB,gCAAqB,CAACC,MAAM,CAACiB,QAAQ,EACrClB,gCAAqB,CAACC,MAAM,CAACO,KAAK,CACnC;QACDE,EAAE,EAAEV,gCAAqB,CAACC,MAAM,CAACmB;MACnC,CAAC,EACD;QACEhB,IAAI,EAAEJ,gCAAqB,CAACK,WAAW,CAACgB,GAAG;QAC3Cd,IAAI,EAAE,CACJP,gCAAqB,CAACC,MAAM,CAACC,IAAI,EACjCF,gCAAqB,CAACC,MAAM,CAACU,OAAO,EACpCX,gCAAqB,CAACC,MAAM,CAACQ,MAAM,EACnCT,gCAAqB,CAACC,MAAM,CAACe,QAAQ,EACrChB,gCAAqB,CAACC,MAAM,CAACiB,QAAQ,EACrClB,gCAAqB,CAACC,MAAM,CAACO,KAAK,CACnC;QACDE,EAAE,EAAEV,gCAAqB,CAACC,MAAM,CAACmB;MACnC,CAAC,EACD;QACEhB,IAAI,EAAEJ,gCAAqB,CAACK,WAAW,CAACiB,OAAO;QAC/Cf,IAAI,EAAE,CAACP,gCAAqB,CAACC,MAAM,CAACU,OAAO,EAAEX,gCAAqB,CAACC,MAAM,CAACO,KAAK,CAAC;QAChFE,EAAE,EAAEV,gCAAqB,CAACC,MAAM,CAACmB;MACnC,CAAC;MACD;MACA;QACEhB,IAAI,EAAEJ,gCAAqB,CAACK,WAAW,CAACkB,IAAI;QAC5ChB,IAAI,EAAE,GAAG;QACTG,EAAE,EAAEV,gCAAqB,CAACC,MAAM,CAACO;MACnC,CAAC;MACD;MACA;QACEJ,IAAI,EAAEJ,gCAAqB,CAACK,WAAW,CAACmB,KAAK;QAC7CjB,IAAI,EAAE,GAAG;QACTG,EAAE,EAAEV,gCAAqB,CAACC,MAAM,CAACC;MACnC,CAAC,CACF;MACDuB,IAAI,EAAE;QACJ;AACR;AACA;QACQC,OAAO,EAAE9B;MACX,CAAC;MACD+B,OAAO,EAAE;QACP;AACR;AACA;AACA;AACA;AACA;QACQC,QAAQ,WAAAA,SAACC,UAAkB,EAAEC,IAAY,EAAE;UACzC,IAAI,IAAI,CAACJ,OAAO,EAAE;YAChBK,qBAAO,CAACC,OAAO,CACb,IAAI,CAACN,OAAO,EACZ;cACEO,IAAI,EAAE,eAAe;cACrBC,QAAQ,EAAE;YACZ,CAAC,EACDC,yBAAc,CAACC,oBAAoB,EACnC;cACEC,EAAE,EAAE,IAAI,CAACX,OAAO,CAACW,EAAE;cACnBC,IAAI,EAAER;YACR,CAAC,CACF;UACH;QACF,CAAC;QACD;AACR;AACA;AACA;AACA;AACA;QACQS,MAAM,WAAAA,OAACV,UAAkB,EAAES,IAAY,EAAE;UACvC,IAAI,IAAI,CAACZ,OAAO,EAAE;YAChBK,qBAAO,CAACC,OAAO,CACb,IAAI,CAACN,OAAO,EACZ;cACEO,IAAI,EAAE,eAAe;cACrBC,QAAQ,EAAE;YACZ,CAAC,EACDC,yBAAc,CAACK,eAAe,EAC9B;cACEF,IAAI,EAAJA,IAAI;cACJD,EAAE,EAAE,IAAI,CAACX,OAAO,CAACW;YACnB,CAAC,CACF;UACH;QACF,CAAC;QACD;AACR;AACA;AACA;AACA;AACA;QACQI,YAAY,WAAAA,aAACZ,UAAe,EAAEa,KAAY,EAAE;UAC1CC,oBAAW,CAACC,MAAM,CAACF,KAAK,mEAAAG,MAAA,CAC4C,IAAI,CAACnB,OAAO,CAACW,EAAE,qBAAAQ,MAAA,CAAkBhB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEA,UAAU,UAAAgB,MAAA,CAAOhB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEtB,IAAI,UAAAsC,MAAA,CAAOhB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEnB,EAAE,mBAAAmC,MAAA,CAAgBH,KAAK,qBAAAG,MAAA,CAAkB,IAAI,CAACC,OAAO,EACzN;QACH,CAAC;QACD;AACR;AACA;AACA;AACA;QACQC,iBAAiB,WAAAA,kBAAClB,UAAe,EAAE;UACjCc,oBAAW,CAACC,MAAM,CAACI,GAAG,6EAAAH,MAAA,CACwD,IAAI,CAACnB,OAAO,CAACW,EAAE,qBAAAQ,MAAA,CAAkBhB,UAAU,CAACA,UAAU,UAAAgB,MAAA,CAAOhB,UAAU,CAACtB,IAAI,UAAAsC,MAAA,CAAOhB,UAAU,CAACnB,EAAE,8BAAAmC,MAAA,CAA2B,IAAI,CAACC,OAAO,EACpN;QACH;MACF,CAAC;MACD;MACAG,OAAO,EAAE,CAAC,IAAIC,gBAAmB,CAAC;QAACC,GAAG,EAAE;MAAE,CAAC,CAAC;IAC9C,CAAC,CAAC;EACJ;AACF,CAAC;AAAC,IAAAC,QAAA,GAEa1D,mBAAmB;AAAA2D,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
|
|
1
|
+
{"version":3,"names":["_javascriptStateMachine","_interopRequireDefault","require","_history","_loggerProxy","_triggerProxy","_constants","_parameter","MeetingStateMachine","create","meetingRef","ParameterError","StateMachine","init","MEETING_STATE_MACHINE","STATES","IDLE","transitions","name","TRANSITIONS","RING","from","ERROR","JOINED","to","RINGING","JOIN","REMOTE","remote","remoteAnswered","ANSWERED","remoteDeclined","DECLINED","LEAVE","ENDED","END","DECLINE","FAIL","RESET","data","meeting","methods","onRemote","transition","stop","Trigger","trigger","file","function","EVENT_TRIGGERS","MEETING_RINGING_STOP","id","type","onRing","MEETING_RINGING","onEnterError","error","LoggerProxy","logger","concat","history","onAfterTransition","log","plugins","StateMachineHistory","max","_default","exports","default"],"sources":["state.ts"],"sourcesContent":["import StateMachine from 'javascript-state-machine';\r\nimport StateMachineHistory from 'javascript-state-machine/lib/history';\r\n\r\nimport LoggerProxy from '../common/logs/logger-proxy';\r\nimport Trigger from '../common/events/trigger-proxy';\r\nimport {MEETING_STATE_MACHINE, EVENT_TRIGGERS} from '../constants';\r\nimport ParameterError from '../common/errors/parameter';\r\n\r\n// TODO: ensure that meeting can be destroyed when in an error state\r\nconst MeetingStateMachine = {\r\n /**\r\n * Initializes the StateMachine for the meeting\r\n * @param {Meeting} meetingRef A reference to a meeting instance\r\n * @returns {StateMachine}\r\n */\r\n create(meetingRef: any) {\r\n if (!meetingRef) {\r\n throw new ParameterError(\r\n 'You must initialize the meeting state machine with a meeting reference.'\r\n );\r\n }\r\n\r\n return new StateMachine({\r\n init: MEETING_STATE_MACHINE.STATES.IDLE,\r\n transitions: [\r\n // when ringing a meeting, it must be first IDLE, because all other states are invalid, it transitions to the RINGING state\r\n {\r\n name: MEETING_STATE_MACHINE.TRANSITIONS.RING,\r\n from: [\r\n MEETING_STATE_MACHINE.STATES.IDLE,\r\n MEETING_STATE_MACHINE.STATES.ERROR,\r\n MEETING_STATE_MACHINE.STATES.JOINED,\r\n ],\r\n to: MEETING_STATE_MACHINE.STATES.RINGING,\r\n },\r\n // when joining a meeting, it must be from the RINGING or IDLE state, transitions to JOINED state, 1:1 will go to RINGING,\r\n // others will go straight to JOINED with this transition\r\n {\r\n name: MEETING_STATE_MACHINE.TRANSITIONS.JOIN,\r\n from: [\r\n MEETING_STATE_MACHINE.STATES.JOINED,\r\n MEETING_STATE_MACHINE.STATES.IDLE,\r\n MEETING_STATE_MACHINE.STATES.RINGING,\r\n MEETING_STATE_MACHINE.STATES.ERROR,\r\n ],\r\n to: MEETING_STATE_MACHINE.STATES.JOINED,\r\n },\r\n // signify that ringing has stopped and somebody else answered, move state to DECLINED, ANSWERED\r\n {\r\n name: MEETING_STATE_MACHINE.TRANSITIONS.REMOTE,\r\n from: [MEETING_STATE_MACHINE.STATES.JOINED, MEETING_STATE_MACHINE.STATES.ERROR],\r\n /**\r\n * @param {Object} remote\r\n * @param {Boolean} remote.remoteAnswered\r\n * @param {Boolean} remote.remoteDeclined\r\n * @returns {String}\r\n */\r\n to(remote: {remoteAnswered: boolean; remoteDeclined: boolean}) {\r\n // other user answered the call\r\n if (remote.remoteAnswered) {\r\n return MEETING_STATE_MACHINE.STATES.ANSWERED;\r\n }\r\n // other user declined the call\r\n if (remote.remoteDeclined) {\r\n return MEETING_STATE_MACHINE.STATES.DECLINED;\r\n }\r\n\r\n // default\r\n return MEETING_STATE_MACHINE.STATES.ERROR;\r\n },\r\n },\r\n // when leaving a meeting it must be from either the RINGING, JOINED, or ERROR states, and transitions it to the ENDED state\r\n {\r\n name: MEETING_STATE_MACHINE.TRANSITIONS.LEAVE,\r\n from: [\r\n MEETING_STATE_MACHINE.STATES.IDLE,\r\n MEETING_STATE_MACHINE.STATES.RINGING,\r\n MEETING_STATE_MACHINE.STATES.JOINED,\r\n MEETING_STATE_MACHINE.STATES.ANSWERED,\r\n MEETING_STATE_MACHINE.STATES.DECLINED,\r\n MEETING_STATE_MACHINE.STATES.ERROR,\r\n ],\r\n to: MEETING_STATE_MACHINE.STATES.ENDED,\r\n },\r\n {\r\n name: MEETING_STATE_MACHINE.TRANSITIONS.END,\r\n from: [\r\n MEETING_STATE_MACHINE.STATES.IDLE,\r\n MEETING_STATE_MACHINE.STATES.RINGING,\r\n MEETING_STATE_MACHINE.STATES.JOINED,\r\n MEETING_STATE_MACHINE.STATES.ANSWERED,\r\n MEETING_STATE_MACHINE.STATES.DECLINED,\r\n MEETING_STATE_MACHINE.STATES.ERROR,\r\n ],\r\n to: MEETING_STATE_MACHINE.STATES.ENDED,\r\n },\r\n {\r\n name: MEETING_STATE_MACHINE.TRANSITIONS.DECLINE,\r\n from: [MEETING_STATE_MACHINE.STATES.RINGING, MEETING_STATE_MACHINE.STATES.ERROR],\r\n to: MEETING_STATE_MACHINE.STATES.ENDED,\r\n },\r\n // transition from ANY state to ERROR state\r\n {\r\n name: MEETING_STATE_MACHINE.TRANSITIONS.FAIL,\r\n from: '*',\r\n to: MEETING_STATE_MACHINE.STATES.ERROR,\r\n },\r\n // fail safe, transition from ANY state to IDLE state\r\n {\r\n name: MEETING_STATE_MACHINE.TRANSITIONS.RESET,\r\n from: '*',\r\n to: MEETING_STATE_MACHINE.STATES.IDLE,\r\n },\r\n ],\r\n data: {\r\n /**\r\n * The meeting instance to execute all state changes on\r\n */\r\n meeting: meetingRef,\r\n },\r\n methods: {\r\n /**\r\n * Ring stop transition, to end the ring event for the meeting, and transition the state to ANSWERED OR DECLINED, only for outgoing meetings\r\n * @param {Object} transition -- FiniteStateMachine automatically passed, not used\r\n * @param {Object} stop -- {remoteAnswered: {Boolean}, remoteDeclined: {Boolean}}\r\n * @returns {Boolean}\r\n */\r\n onRemote(transition: object, stop: object) {\r\n if (this.meeting) {\r\n Trigger.trigger(\r\n this.meeting,\r\n {\r\n file: 'meeting/state',\r\n function: 'onRemote',\r\n },\r\n EVENT_TRIGGERS.MEETING_RINGING_STOP,\r\n {\r\n id: this.meeting.id,\r\n type: stop,\r\n }\r\n );\r\n }\r\n },\r\n /**\r\n * Ring transition, to cause the ring event for the meeting, and transition the state to RINGING, for both incoming, and outgoing meetings\r\n * @param {Object} transition -- FiniteStateMachine automatically passed, not used\r\n * @param {String} type -- incoming call === INCOMING / or other meetings have a ring type of JOIN\r\n * @returns {Boolean}\r\n */\r\n onRing(transition: object, type: string) {\r\n if (this.meeting) {\r\n Trigger.trigger(\r\n this.meeting,\r\n {\r\n file: 'meeting/state',\r\n function: 'onRing',\r\n },\r\n EVENT_TRIGGERS.MEETING_RINGING,\r\n {\r\n type,\r\n id: this.meeting.id,\r\n }\r\n );\r\n }\r\n },\r\n /**\r\n * handle the entry to error state\r\n * @param {Object} transition\r\n * @param {Error} error\r\n * @returns {Boolean}\r\n */\r\n onEnterError(transition: any, error: Error) {\r\n LoggerProxy.logger.error(\r\n `Meeting:state#onEnterError --> state->onEnterError#meeting.id: ${this.meeting.id} | Transition '${transition?.transition}' : ${transition?.from} -> ${transition?.to}, with error ${error}. Last states: ${this.history}`\r\n );\r\n },\r\n /**\r\n * After ANY transition occurs, we want to know what state the meeting moved to for debugging\r\n * @param {Object} transition\r\n * @returns {Boolean}\r\n */\r\n onAfterTransition(transition: any) {\r\n LoggerProxy.logger.log(\r\n `Meeting:state#onAfterTransition --> state->onAfterTransition#meeting.id: ${this.meeting.id} | Transition '${transition.transition}' : ${transition.from} -> ${transition.to} executed. Last states: ${this.history}`\r\n );\r\n },\r\n },\r\n // track the last 25 states entered\r\n plugins: [new StateMachineHistory({max: 25})],\r\n });\r\n },\r\n};\r\n\r\nexport default MeetingStateMachine;\r\n"],"mappings":";;;;;;;;AAAA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,YAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,aAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAN,sBAAA,CAAAC,OAAA;AAEA;AACA,IAAMM,mBAAmB,GAAG;EAC1B;AACF;AACA;AACA;AACA;EACEC,MAAM,WAAAA,OAACC,UAAe,EAAE;IACtB,IAAI,CAACA,UAAU,EAAE;MACf,MAAM,IAAIC,kBAAc,CACtB,yEAAyE,CAC1E;IACH;IAEA,OAAO,IAAIC,+BAAY,CAAC;MACtBC,IAAI,EAAEC,gCAAqB,CAACC,MAAM,CAACC,IAAI;MACvCC,WAAW,EAAE;MACX;MACA;QACEC,IAAI,EAAEJ,gCAAqB,CAACK,WAAW,CAACC,IAAI;QAC5CC,IAAI,EAAE,CACJP,gCAAqB,CAACC,MAAM,CAACC,IAAI,EACjCF,gCAAqB,CAACC,MAAM,CAACO,KAAK,EAClCR,gCAAqB,CAACC,MAAM,CAACQ,MAAM,CACpC;QACDC,EAAE,EAAEV,gCAAqB,CAACC,MAAM,CAACU;MACnC,CAAC;MACD;MACA;MACA;QACEP,IAAI,EAAEJ,gCAAqB,CAACK,WAAW,CAACO,IAAI;QAC5CL,IAAI,EAAE,CACJP,gCAAqB,CAACC,MAAM,CAACQ,MAAM,EACnCT,gCAAqB,CAACC,MAAM,CAACC,IAAI,EACjCF,gCAAqB,CAACC,MAAM,CAACU,OAAO,EACpCX,gCAAqB,CAACC,MAAM,CAACO,KAAK,CACnC;QACDE,EAAE,EAAEV,gCAAqB,CAACC,MAAM,CAACQ;MACnC,CAAC;MACD;MACA;QACEL,IAAI,EAAEJ,gCAAqB,CAACK,WAAW,CAACQ,MAAM;QAC9CN,IAAI,EAAE,CAACP,gCAAqB,CAACC,MAAM,CAACQ,MAAM,EAAET,gCAAqB,CAACC,MAAM,CAACO,KAAK,CAAC;QAC/E;AACV;AACA;AACA;AACA;AACA;QACUE,EAAE,WAAAA,GAACI,MAA0D,EAAE;UAC7D;UACA,IAAIA,MAAM,CAACC,cAAc,EAAE;YACzB,OAAOf,gCAAqB,CAACC,MAAM,CAACe,QAAQ;UAC9C;UACA;UACA,IAAIF,MAAM,CAACG,cAAc,EAAE;YACzB,OAAOjB,gCAAqB,CAACC,MAAM,CAACiB,QAAQ;UAC9C;;UAEA;UACA,OAAOlB,gCAAqB,CAACC,MAAM,CAACO,KAAK;QAC3C;MACF,CAAC;MACD;MACA;QACEJ,IAAI,EAAEJ,gCAAqB,CAACK,WAAW,CAACc,KAAK;QAC7CZ,IAAI,EAAE,CACJP,gCAAqB,CAACC,MAAM,CAACC,IAAI,EACjCF,gCAAqB,CAACC,MAAM,CAACU,OAAO,EACpCX,gCAAqB,CAACC,MAAM,CAACQ,MAAM,EACnCT,gCAAqB,CAACC,MAAM,CAACe,QAAQ,EACrChB,gCAAqB,CAACC,MAAM,CAACiB,QAAQ,EACrClB,gCAAqB,CAACC,MAAM,CAACO,KAAK,CACnC;QACDE,EAAE,EAAEV,gCAAqB,CAACC,MAAM,CAACmB;MACnC,CAAC,EACD;QACEhB,IAAI,EAAEJ,gCAAqB,CAACK,WAAW,CAACgB,GAAG;QAC3Cd,IAAI,EAAE,CACJP,gCAAqB,CAACC,MAAM,CAACC,IAAI,EACjCF,gCAAqB,CAACC,MAAM,CAACU,OAAO,EACpCX,gCAAqB,CAACC,MAAM,CAACQ,MAAM,EACnCT,gCAAqB,CAACC,MAAM,CAACe,QAAQ,EACrChB,gCAAqB,CAACC,MAAM,CAACiB,QAAQ,EACrClB,gCAAqB,CAACC,MAAM,CAACO,KAAK,CACnC;QACDE,EAAE,EAAEV,gCAAqB,CAACC,MAAM,CAACmB;MACnC,CAAC,EACD;QACEhB,IAAI,EAAEJ,gCAAqB,CAACK,WAAW,CAACiB,OAAO;QAC/Cf,IAAI,EAAE,CAACP,gCAAqB,CAACC,MAAM,CAACU,OAAO,EAAEX,gCAAqB,CAACC,MAAM,CAACO,KAAK,CAAC;QAChFE,EAAE,EAAEV,gCAAqB,CAACC,MAAM,CAACmB;MACnC,CAAC;MACD;MACA;QACEhB,IAAI,EAAEJ,gCAAqB,CAACK,WAAW,CAACkB,IAAI;QAC5ChB,IAAI,EAAE,GAAG;QACTG,EAAE,EAAEV,gCAAqB,CAACC,MAAM,CAACO;MACnC,CAAC;MACD;MACA;QACEJ,IAAI,EAAEJ,gCAAqB,CAACK,WAAW,CAACmB,KAAK;QAC7CjB,IAAI,EAAE,GAAG;QACTG,EAAE,EAAEV,gCAAqB,CAACC,MAAM,CAACC;MACnC,CAAC,CACF;MACDuB,IAAI,EAAE;QACJ;AACR;AACA;QACQC,OAAO,EAAE9B;MACX,CAAC;MACD+B,OAAO,EAAE;QACP;AACR;AACA;AACA;AACA;AACA;QACQC,QAAQ,WAAAA,SAACC,UAAkB,EAAEC,IAAY,EAAE;UACzC,IAAI,IAAI,CAACJ,OAAO,EAAE;YAChBK,qBAAO,CAACC,OAAO,CACb,IAAI,CAACN,OAAO,EACZ;cACEO,IAAI,EAAE,eAAe;cACrBC,QAAQ,EAAE;YACZ,CAAC,EACDC,yBAAc,CAACC,oBAAoB,EACnC;cACEC,EAAE,EAAE,IAAI,CAACX,OAAO,CAACW,EAAE;cACnBC,IAAI,EAAER;YACR,CAAC,CACF;UACH;QACF,CAAC;QACD;AACR;AACA;AACA;AACA;AACA;QACQS,MAAM,WAAAA,OAACV,UAAkB,EAAES,IAAY,EAAE;UACvC,IAAI,IAAI,CAACZ,OAAO,EAAE;YAChBK,qBAAO,CAACC,OAAO,CACb,IAAI,CAACN,OAAO,EACZ;cACEO,IAAI,EAAE,eAAe;cACrBC,QAAQ,EAAE;YACZ,CAAC,EACDC,yBAAc,CAACK,eAAe,EAC9B;cACEF,IAAI,EAAJA,IAAI;cACJD,EAAE,EAAE,IAAI,CAACX,OAAO,CAACW;YACnB,CAAC,CACF;UACH;QACF,CAAC;QACD;AACR;AACA;AACA;AACA;AACA;QACQI,YAAY,WAAAA,aAACZ,UAAe,EAAEa,KAAY,EAAE;UAC1CC,oBAAW,CAACC,MAAM,CAACF,KAAK,mEAAAG,MAAA,CAC4C,IAAI,CAACnB,OAAO,CAACW,EAAE,qBAAAQ,MAAA,CAAkBhB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEA,UAAU,UAAAgB,MAAA,CAAOhB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEtB,IAAI,UAAAsC,MAAA,CAAOhB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEnB,EAAE,mBAAAmC,MAAA,CAAgBH,KAAK,qBAAAG,MAAA,CAAkB,IAAI,CAACC,OAAO,EACzN;QACH,CAAC;QACD;AACR;AACA;AACA;AACA;QACQC,iBAAiB,WAAAA,kBAAClB,UAAe,EAAE;UACjCc,oBAAW,CAACC,MAAM,CAACI,GAAG,6EAAAH,MAAA,CACwD,IAAI,CAACnB,OAAO,CAACW,EAAE,qBAAAQ,MAAA,CAAkBhB,UAAU,CAACA,UAAU,UAAAgB,MAAA,CAAOhB,UAAU,CAACtB,IAAI,UAAAsC,MAAA,CAAOhB,UAAU,CAACnB,EAAE,8BAAAmC,MAAA,CAA2B,IAAI,CAACC,OAAO,EACpN;QACH;MACF,CAAC;MACD;MACAG,OAAO,EAAE,CAAC,IAAIC,gBAAmB,CAAC;QAACC,GAAG,EAAE;MAAE,CAAC,CAAC;IAC9C,CAAC,CAAC;EACJ;AACF,CAAC;AAAC,IAAAC,QAAA,GAEa1D,mBAAmB;AAAA2D,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
|
package/dist/meeting/util.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const MeetingUtil: any;
|
|
2
|
-
export default MeetingUtil;
|
|
1
|
+
declare const MeetingUtil: any;
|
|
2
|
+
export default MeetingUtil;
|
package/dist/meeting/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_webexErrors","require","_metrics","_interopRequireDefault","_config","_media","_loggerProxy","_constants","_intentToJoin","_joinMeeting","_parameter","_permission","_passwordError","_captchaError","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","MeetingUtil","parseLocusJoin","response","parsed","locus","body","mediaConnections","locusUrl","url","locusId","split","pop","selfId","self","id","mediaConnection","mediaId","remoteUpdateAudioVideo","audioMuted","videoMuted","meeting","_promise","reject","ParameterError","localMedias","Media","generateLocalMedias","_isEmpty2","Metrics","postEvent","event","eventType","MEDIA_REQUEST","meetingRequest","remoteAudioVideoToggle","deviceUrl","correlationId","then","MEDIA_RESPONSE","hasOwner","info","owner","isOwnerSelf","isPinOrGuest","err","_err$body","errorCode","INTENT_TO_JOIN","includes","joinMeeting","options","LOCUS_JOIN_REQUEST","inviteeAddress","meetingJoinUrl","sipUri","meetingNumber","roapMessage","permissionToken","resourceId","moderator","pin","moveToResource","preferTranscoding","asResourceOccupant","res","LOCUS_JOIN_RESPONSE","data","trigger","LOCI_UPDATE","trackingId","headers","trackingid","cleanUp","stopStatsAnalyzer","statsAnalyzer","stopAnalyzer","resolve","closeLocalStream","closeLocalShare","closeRemoteTracks","closePeerConnections","unsetLocalVideoTrack","unsetLocalShareTrack","unsetRemoteTracks","unsetPeerConnections","reconnectionManager","roap","stop","roapSeq","stopKeepAlive","disconnectPhoneAudio","phoneUrl","meetingState","FULL_STATE","INACTIVE","MeetingNotActiveError","_response$body","locusInfo","onFullLocus","catch","LoggerProxy","logger","error","concat","leaveMeeting","undefined","isUserInLeftState","UserNotJoinedError","defaultOptions","leaveOptions","moveMeeting","declineMeeting","reason","_locusInfo$parsedLocu","_locusInfo$parsedLocu2","parsedLocus","state","_LEFT_","isUserInIdleState","_locusInfo$parsedLocu3","_locusInfo$parsedLocu4","_IDLE_","isUserInJoinedState","_locusInfo$parsedLocu5","_locusInfo$parsedLocu6","_JOINED_","isMediaEstablished","currentMediaStatus","audio","video","share","joinMeetingOptions","requiredCaptcha","CaptchaError","passwordStatus","PASSWORD_STATUS","REQUIRED","PasswordError","PIN_COLLECTED","setLocus","PIN_PROMPT","IntentToJoinError","JoinMeetingError","updateTransceiver","meetingOptions","type","sendTrack","receiveTrack","track","transceiver","peerConnection","previousMediaDirection","meetingId","remoteQualityLevel","mediaProperties","enableRtx","config","enableExtmap","sendRoapMediaRequest","sdp","e","sender","replaceTrack","validateOptions","sendVideo","sendAudio","sendShare","localStream","localShare","getTrack","videoTrack","audioTrack","stream","audioTracks","videoTracks","getAudioTracks","getVideoTracks","_audioTracks","_audioTracks2","_slicedToArray2","_videoTracks","_videoTracks2","getModeratorFromLocusInfo","getPolicyFromLocusInfo","policy","getUserDisplayHintsFromLocusInfo","_locusInfo$parsedLocu7","_locusInfo$parsedLocu8","userDisplayHints","canInviteNewParticipants","displayHints","DISPLAY_HINTS","ADD_GUEST","canAdmitParticipant","ROSTER_WAITING_TO_JOIN","canUserLock","LOCK_CONTROL_LOCK","LOCK_STATUS_UNLOCKED","canUserUnlock","LOCK_CONTROL_UNLOCK","LOCK_STATUS_LOCKED","canUserRaiseHand","RAISE_HAND","canUserLowerAllHands","LOWER_ALL_HANDS","canUserLowerSomeoneElsesHand","LOWER_SOMEONE_ELSES_HAND","bothLeaveAndEndMeetingAvailable","LEAVE_TRANSFER_HOST_END_MEETING","LEAVE_END_MEETING","lockMeeting","actions","request","canLock","lock","PermissionError","unlockMeeting","canUnlock","handleAudioLogging","LOG_HEADER","settings","getSettings","deviceId","log","_stringify","handleVideoLogging","handleDeviceLogging","devices","device","endMeetingForAll","endOptions","canEnableClosedCaption","CAPTION_START","canStartTranscribing","TRANSCRIPTION_CONTROL_START","canStopTranscribing","TRANSCRIPTION_CONTROL_STOP","isClosedCaptionActive","CAPTION_STATUS_ACTIVE","isWebexAssistantActive","WEBEX_ASSISTANT_STATUS_ACTIVE","canViewCaptionPanel","ENABLE_CAPTION_PANEL","isRealTimeTranslationEnabled","DISPLAY_REAL_TIME_TRANSLATION","canSelectSpokenLanguages","DISPLAY_NON_ENGLISH_ASR","waitingForOthersToJoin","WAITING_FOR_OTHERS","_default","exports"],"sources":["util.ts"],"sourcesContent":["import {isEmpty} from 'lodash';\n\nimport {MeetingNotActiveError, UserNotJoinedError} from '../common/errors/webex-errors';\nimport Metrics from '../metrics';\nimport {eventType, trigger} from '../metrics/config';\nimport Media from '../media';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n INTENT_TO_JOIN,\n _LEFT_,\n _IDLE_,\n _JOINED_,\n PASSWORD_STATUS,\n DISPLAY_HINTS,\n FULL_STATE,\n} from '../constants';\nimport IntentToJoinError from '../common/errors/intent-to-join';\nimport JoinMeetingError from '../common/errors/join-meeting';\nimport ParameterError from '../common/errors/parameter';\nimport PermissionError from '../common/errors/permission';\nimport PasswordError from '../common/errors/password-error';\nimport CaptchaError from '../common/errors/captcha-error';\n\nconst MeetingUtil: any = {};\n\nMeetingUtil.parseLocusJoin = (response) => {\n const parsed: any = {};\n\n // First todo: add check for existance\n parsed.locus = response.body.locus;\n parsed.mediaConnections = response.body.mediaConnections;\n parsed.locusUrl = parsed.locus.url;\n parsed.locusId = parsed.locus.url.split('/').pop();\n parsed.selfId = parsed.locus.self.id;\n\n // we need mediaId before making roap calls\n parsed.mediaConnections.forEach((mediaConnection) => {\n if (mediaConnection.mediaId) {\n parsed.mediaId = mediaConnection.mediaId;\n }\n });\n\n return parsed;\n};\n\nMeetingUtil.remoteUpdateAudioVideo = (audioMuted, videoMuted, meeting) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n const localMedias = Media.generateLocalMedias(meeting.mediaId, audioMuted, videoMuted);\n\n if (isEmpty(localMedias)) {\n return Promise.reject(\n new ParameterError('You need a media id on the meeting to change remote audio.')\n );\n }\n\n Metrics.postEvent({event: eventType.MEDIA_REQUEST, meeting});\n\n return meeting.meetingRequest\n .remoteAudioVideoToggle({\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n localMedias,\n deviceUrl: meeting.deviceUrl,\n correlationId: meeting.correlationId,\n })\n .then((response) => {\n Metrics.postEvent({event: eventType.MEDIA_RESPONSE, meeting});\n\n return response.body.locus;\n });\n};\n\nMeetingUtil.hasOwner = (info) => info && info.owner;\n\nMeetingUtil.isOwnerSelf = (owner, selfId) => owner === selfId;\n\nMeetingUtil.isPinOrGuest = (err) =>\n err?.body?.errorCode && INTENT_TO_JOIN.includes(err.body.errorCode);\n\nMeetingUtil.joinMeeting = (meeting, options) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n\n Metrics.postEvent({event: eventType.LOCUS_JOIN_REQUEST, meeting});\n\n // eslint-disable-next-line no-warning-comments\n // TODO: check if the meeting is in JOINING state\n // if Joining state termintate the request as user might click multiple times\n return meeting.meetingRequest\n .joinMeeting({\n inviteeAddress: meeting.meetingJoinUrl || meeting.sipUri,\n meetingNumber: meeting.meetingNumber,\n deviceUrl: meeting.deviceUrl,\n locusUrl: meeting.locusUrl,\n correlationId: meeting.correlationId,\n roapMessage: options.roapMessage,\n permissionToken: meeting.permissionToken,\n resourceId: options.resourceId || null,\n moderator: options.moderator,\n pin: options.pin,\n moveToResource: options.moveToResource,\n preferTranscoding: options.preferTranscoding,\n asResourceOccupant: options.asResourceOccupant,\n })\n .then((res) => {\n Metrics.postEvent({\n event: eventType.LOCUS_JOIN_RESPONSE,\n meeting,\n data: {\n trigger: trigger.LOCI_UPDATE,\n locus: res.body.locus,\n mediaConnections: res.body.mediaConnections,\n trackingId: res.headers.trackingid,\n },\n });\n\n return MeetingUtil.parseLocusJoin(res);\n });\n};\n\nMeetingUtil.cleanUp = (meeting) => {\n // make sure we send last metrics before we close the peerconnection\n const stopStatsAnalyzer = meeting.statsAnalyzer\n ? meeting.statsAnalyzer.stopAnalyzer()\n : Promise.resolve();\n\n return stopStatsAnalyzer\n .then(() => meeting.closeLocalStream())\n .then(() => meeting.closeLocalShare())\n .then(() => meeting.closeRemoteTracks())\n .then(() => meeting.closePeerConnections())\n .then(() => {\n meeting.unsetLocalVideoTrack();\n meeting.unsetLocalShareTrack();\n meeting.unsetRemoteTracks();\n meeting.unsetPeerConnections();\n meeting.reconnectionManager.cleanUp();\n })\n .then(() => meeting.roap.stop(meeting.correlationId, meeting.roapSeq))\n .then(() => meeting.stopKeepAlive());\n};\n\nMeetingUtil.disconnectPhoneAudio = (meeting, phoneUrl) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n return Promise.reject(new MeetingNotActiveError());\n }\n\n const options = {\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n correlationId: meeting.correlationId,\n phoneUrl,\n };\n\n return meeting.meetingRequest\n .disconnectPhoneAudio(options)\n .then((response) => {\n if (response?.body?.locus) {\n meeting.locusInfo.onFullLocus(response.body.locus);\n }\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:util#disconnectPhoneAudio --> An error occured while disconnecting phone audio in meeting ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n};\n\n// by default will leave on meeting's resourceId\n// if you explicity want it not to leave on resource id, pass\n// {resourceId: null}\n// TODO: chris, you can modify this however you want\nMeetingUtil.leaveMeeting = (meeting, options: any = {}) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n // TODO: clean up if the meeting is already inactive\n return Promise.reject(new MeetingNotActiveError());\n }\n\n if (MeetingUtil.isUserInLeftState(meeting.locusInfo)) {\n return Promise.reject(new UserNotJoinedError());\n }\n\n const defaultOptions = {\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n correlationId: meeting.correlationId,\n resourceId: meeting.resourceId,\n deviceUrl: meeting.deviceUrl,\n };\n\n const leaveOptions = {...defaultOptions, ...options};\n\n return meeting.meetingRequest\n .leaveMeeting(leaveOptions)\n .then((response) => {\n if (response && response.body && response.body.locus) {\n // && !options.moveMeeting) {\n meeting.locusInfo.onFullLocus(response.body.locus);\n }\n\n return Promise.resolve();\n })\n .then(() => {\n if (options.moveMeeting) {\n return Promise.resolve();\n }\n\n return MeetingUtil.cleanUp(meeting);\n })\n .catch((err) => {\n // TODO: If the meeting state comes as LEFT or INACTIVE as response then\n // 1) on leave clean up the meeting or simply do a sync on the meeting\n // 2) If the error says meeting is inactive then destroy the meeting object\n LoggerProxy.logger.error(\n `Meeting:util#leaveMeeting --> An error occured while trying to leave meeting with an id of ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n};\nMeetingUtil.declineMeeting = (meeting, reason) =>\n meeting.meetingRequest.declineMeeting({\n locusUrl: meeting.locusUrl,\n deviceUrl: meeting.deviceUrl,\n reason,\n });\n\nMeetingUtil.isUserInLeftState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _LEFT_;\n\nMeetingUtil.isUserInIdleState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _IDLE_;\n\nMeetingUtil.isUserInJoinedState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _JOINED_;\n\nMeetingUtil.isMediaEstablished = (currentMediaStatus) =>\n currentMediaStatus &&\n (currentMediaStatus.audio || currentMediaStatus.video || currentMediaStatus.share);\n\nMeetingUtil.joinMeetingOptions = (meeting, options: any = {}) => {\n meeting.resourceId = meeting.resourceId || options.resourceId;\n\n if (meeting.requiredCaptcha) {\n return Promise.reject(new CaptchaError());\n }\n if (meeting.passwordStatus === PASSWORD_STATUS.REQUIRED) {\n return Promise.reject(new PasswordError());\n }\n\n if (options.pin) {\n Metrics.postEvent({\n event: eventType.PIN_COLLECTED,\n meeting,\n });\n }\n\n // normal join meeting, scenario A, D\n return MeetingUtil.joinMeeting(meeting, options)\n .then((response) => {\n meeting.setLocus(response);\n\n return Promise.resolve(response);\n })\n .catch((err) => {\n // joining a claimed PMR that is not my own, scenario B\n if (MeetingUtil.isPinOrGuest(err)) {\n Metrics.postEvent({\n event: eventType.PIN_PROMPT,\n meeting,\n });\n\n // request host pin or non host for unclaimed PMR, start of Scenario C\n // see https://sqbu-github.cisco.com/WebExSquared/locus/wiki/Locus-Lobby-and--IVR-Feature\n return Promise.reject(new IntentToJoinError('Error Joining Meeting', err));\n }\n LoggerProxy.logger.error('Meeting:util#joinMeetingOptions --> Error joining the call, ', err);\n\n return Promise.reject(new JoinMeetingError(options, 'Error Joining Meeting', err));\n });\n};\n\nMeetingUtil.updateTransceiver = (options, meetingOptions) => {\n const {\n type,\n sendTrack,\n receiveTrack,\n track,\n transceiver,\n peerConnection,\n previousMediaDirection,\n } = options;\n\n if (\n (sendTrack !== undefined && sendTrack !== previousMediaDirection.sendTrack) ||\n (receiveTrack !== undefined && receiveTrack !== previousMediaDirection.receiveTrack)\n ) {\n return Media.updateTransceiver(\n {\n meetingId: meetingOptions.meeting.id,\n remoteQualityLevel: meetingOptions.mediaProperties.remoteQualityLevel,\n enableRtx: meetingOptions.meeting.config.enableRtx,\n enableExtmap: meetingOptions.meeting.config.enableExtmap,\n },\n peerConnection,\n transceiver,\n {\n track,\n type,\n receiveTrack,\n sendTrack,\n }\n )\n .then(() =>\n meetingOptions.meeting.roap.sendRoapMediaRequest({\n sdp: meetingOptions.mediaProperties.peerConnection.sdp,\n roapSeq: meetingOptions.meeting.roapSeq,\n meeting: meetingOptions.meeting, // or can pass meeting ID\n })\n )\n .catch((e) => {\n LoggerProxy.logger.error(\n `Meeting:util#updateTransceiver --> Error updating the ${type} streams with error: ${e}`\n );\n });\n }\n if (track) {\n transceiver.sender.replaceTrack(track);\n\n return Promise.resolve();\n }\n\n return Promise.reject(new ParameterError('update Failed: please pass valid parameter'));\n};\n\nMeetingUtil.validateOptions = (options) => {\n const {sendVideo, sendAudio, sendShare, localStream, localShare} = options;\n\n if (sendVideo && !MeetingUtil.getTrack(localStream).videoTrack) {\n return Promise.reject(new ParameterError('please pass valid video streams'));\n }\n\n if (sendAudio && !MeetingUtil.getTrack(localStream).audioTrack) {\n return Promise.reject(new ParameterError('please pass valid audio streams'));\n }\n\n if (sendShare && !MeetingUtil.getTrack(localShare).videoTrack) {\n return Promise.reject(new ParameterError('please pass valid share streams'));\n }\n\n return Promise.resolve();\n};\n\nMeetingUtil.getTrack = (stream) => {\n let audioTrack = null;\n let videoTrack = null;\n let audioTracks = null;\n let videoTracks = null;\n\n if (!stream) {\n return {audioTrack: null, videoTrack: null};\n }\n if (stream.getAudioTracks) {\n audioTracks = stream.getAudioTracks();\n }\n if (stream.getVideoTracks) {\n videoTracks = stream.getVideoTracks();\n }\n\n if (audioTracks && audioTracks.length > 0) {\n [audioTrack] = audioTracks;\n }\n\n if (videoTracks && videoTracks.length > 0) {\n [videoTrack] = videoTracks;\n }\n\n return {audioTrack, videoTrack};\n};\n\nMeetingUtil.getModeratorFromLocusInfo = (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.moderator;\n\nMeetingUtil.getPolicyFromLocusInfo = (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.policy;\n\nMeetingUtil.getUserDisplayHintsFromLocusInfo = (locusInfo) =>\n locusInfo?.parsedLocus?.info?.userDisplayHints || [];\n\nMeetingUtil.canInviteNewParticipants = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ADD_GUEST);\n\nMeetingUtil.canAdmitParticipant = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ROSTER_WAITING_TO_JOIN);\n\nMeetingUtil.canUserLock = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_LOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_UNLOCKED);\n\nMeetingUtil.canUserUnlock = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_UNLOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_LOCKED);\n\nMeetingUtil.canUserRaiseHand = (displayHints) => displayHints.includes(DISPLAY_HINTS.RAISE_HAND);\n\nMeetingUtil.canUserLowerAllHands = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOWER_ALL_HANDS);\n\nMeetingUtil.canUserLowerSomeoneElsesHand = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND);\n\nMeetingUtil.bothLeaveAndEndMeetingAvailable = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LEAVE_TRANSFER_HOST_END_MEETING) ||\n displayHints.includes(DISPLAY_HINTS.LEAVE_END_MEETING);\n\nMeetingUtil.lockMeeting = (actions, request, locusUrl) => {\n if (actions && actions.canLock) {\n return request.lockMeeting({locusUrl, lock: true});\n }\n\n return Promise.reject(new PermissionError('Lock not allowed, due to joined property.'));\n};\n\nMeetingUtil.unlockMeeting = (actions, request, locusUrl) => {\n if (actions && actions.canUnlock) {\n return request.lockMeeting({locusUrl, lock: false});\n }\n\n return Promise.reject(new PermissionError('Unlock not allowed, due to joined property.'));\n};\n\nMeetingUtil.handleAudioLogging = (audioTrack) => {\n const LOG_HEADER = 'MeetingUtil#handleAudioLogging -->';\n\n if (audioTrack) {\n const settings = audioTrack.getSettings();\n const {deviceId} = settings;\n\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\n }\n};\n\nMeetingUtil.handleVideoLogging = (videoTrack) => {\n const LOG_HEADER = 'MeetingUtil#handleVideoLogging -->';\n\n if (videoTrack) {\n const settings = videoTrack.getSettings();\n const {deviceId} = settings;\n\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\n }\n};\n\nMeetingUtil.handleDeviceLogging = (devices = []) => {\n const LOG_HEADER = 'MeetingUtil#handleDeviceLogging -->';\n\n devices.forEach((device) => {\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${device.deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings', JSON.stringify(device));\n });\n};\n\nMeetingUtil.endMeetingForAll = (meeting) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n return Promise.reject(new MeetingNotActiveError());\n }\n\n const endOptions = {\n locusUrl: meeting.locusUrl,\n };\n\n return meeting.meetingRequest\n .endMeetingForAll(endOptions)\n .then((response) => {\n if (response && response.body && response.body.locus) {\n meeting.locusInfo.onFullLocus(response.body.locus);\n }\n\n return Promise.resolve();\n })\n .then(() => MeetingUtil.cleanUp(meeting))\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:util#endMeetingForAll An error occured while trying to end meeting for all with an id of ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n};\n\nMeetingUtil.canEnableClosedCaption = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAPTION_START);\n\nMeetingUtil.canStartTranscribing = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_START);\n\nMeetingUtil.canStopTranscribing = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_STOP);\n\nMeetingUtil.isClosedCaptionActive = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAPTION_STATUS_ACTIVE);\n\nMeetingUtil.isWebexAssistantActive = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.WEBEX_ASSISTANT_STATUS_ACTIVE);\n\nMeetingUtil.canViewCaptionPanel = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ENABLE_CAPTION_PANEL);\n\nMeetingUtil.isRealTimeTranslationEnabled = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_REAL_TIME_TRANSLATION);\n\nMeetingUtil.canSelectSpokenLanguages = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_NON_ENGLISH_ASR);\n\nMeetingUtil.waitingForOthersToJoin = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.WAITING_FOR_OTHERS);\n\nexport default MeetingUtil;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_webexErrors","require","_metrics","_interopRequireDefault","_config","_media","_loggerProxy","_constants","_intentToJoin","_joinMeeting","_parameter","_permission","_passwordError","_captchaError","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","MeetingUtil","parseLocusJoin","response","parsed","locus","body","mediaConnections","locusUrl","url","locusId","split","pop","selfId","self","id","mediaConnection","mediaId","remoteUpdateAudioVideo","audioMuted","videoMuted","meeting","_promise","reject","ParameterError","localMedias","Media","generateLocalMedias","_isEmpty2","Metrics","postEvent","event","eventType","MEDIA_REQUEST","meetingRequest","remoteAudioVideoToggle","deviceUrl","correlationId","then","MEDIA_RESPONSE","hasOwner","info","owner","isOwnerSelf","isPinOrGuest","err","_err$body","errorCode","INTENT_TO_JOIN","includes","joinMeeting","options","LOCUS_JOIN_REQUEST","inviteeAddress","meetingJoinUrl","sipUri","meetingNumber","roapMessage","permissionToken","resourceId","moderator","pin","moveToResource","preferTranscoding","asResourceOccupant","res","LOCUS_JOIN_RESPONSE","data","trigger","LOCI_UPDATE","trackingId","headers","trackingid","cleanUp","stopStatsAnalyzer","statsAnalyzer","stopAnalyzer","resolve","closeLocalStream","closeLocalShare","closeRemoteTracks","closePeerConnections","unsetLocalVideoTrack","unsetLocalShareTrack","unsetRemoteTracks","unsetPeerConnections","reconnectionManager","roap","stop","roapSeq","stopKeepAlive","disconnectPhoneAudio","phoneUrl","meetingState","FULL_STATE","INACTIVE","MeetingNotActiveError","_response$body","locusInfo","onFullLocus","catch","LoggerProxy","logger","error","concat","leaveMeeting","undefined","isUserInLeftState","UserNotJoinedError","defaultOptions","leaveOptions","moveMeeting","declineMeeting","reason","_locusInfo$parsedLocu","_locusInfo$parsedLocu2","parsedLocus","state","_LEFT_","isUserInIdleState","_locusInfo$parsedLocu3","_locusInfo$parsedLocu4","_IDLE_","isUserInJoinedState","_locusInfo$parsedLocu5","_locusInfo$parsedLocu6","_JOINED_","isMediaEstablished","currentMediaStatus","audio","video","share","joinMeetingOptions","requiredCaptcha","CaptchaError","passwordStatus","PASSWORD_STATUS","REQUIRED","PasswordError","PIN_COLLECTED","setLocus","PIN_PROMPT","IntentToJoinError","JoinMeetingError","updateTransceiver","meetingOptions","type","sendTrack","receiveTrack","track","transceiver","peerConnection","previousMediaDirection","meetingId","remoteQualityLevel","mediaProperties","enableRtx","config","enableExtmap","sendRoapMediaRequest","sdp","e","sender","replaceTrack","validateOptions","sendVideo","sendAudio","sendShare","localStream","localShare","getTrack","videoTrack","audioTrack","stream","audioTracks","videoTracks","getAudioTracks","getVideoTracks","_audioTracks","_audioTracks2","_slicedToArray2","_videoTracks","_videoTracks2","getModeratorFromLocusInfo","getPolicyFromLocusInfo","policy","getUserDisplayHintsFromLocusInfo","_locusInfo$parsedLocu7","_locusInfo$parsedLocu8","userDisplayHints","canInviteNewParticipants","displayHints","DISPLAY_HINTS","ADD_GUEST","canAdmitParticipant","ROSTER_WAITING_TO_JOIN","canUserLock","LOCK_CONTROL_LOCK","LOCK_STATUS_UNLOCKED","canUserUnlock","LOCK_CONTROL_UNLOCK","LOCK_STATUS_LOCKED","canUserRaiseHand","RAISE_HAND","canUserLowerAllHands","LOWER_ALL_HANDS","canUserLowerSomeoneElsesHand","LOWER_SOMEONE_ELSES_HAND","bothLeaveAndEndMeetingAvailable","LEAVE_TRANSFER_HOST_END_MEETING","LEAVE_END_MEETING","lockMeeting","actions","request","canLock","lock","PermissionError","unlockMeeting","canUnlock","handleAudioLogging","LOG_HEADER","settings","getSettings","deviceId","log","_stringify","handleVideoLogging","handleDeviceLogging","devices","device","endMeetingForAll","endOptions","canEnableClosedCaption","CAPTION_START","canStartTranscribing","TRANSCRIPTION_CONTROL_START","canStopTranscribing","TRANSCRIPTION_CONTROL_STOP","isClosedCaptionActive","CAPTION_STATUS_ACTIVE","isWebexAssistantActive","WEBEX_ASSISTANT_STATUS_ACTIVE","canViewCaptionPanel","ENABLE_CAPTION_PANEL","isRealTimeTranslationEnabled","DISPLAY_REAL_TIME_TRANSLATION","canSelectSpokenLanguages","DISPLAY_NON_ENGLISH_ASR","waitingForOthersToJoin","WAITING_FOR_OTHERS","_default","exports"],"sources":["util.ts"],"sourcesContent":["import {isEmpty} from 'lodash';\r\n\r\nimport {MeetingNotActiveError, UserNotJoinedError} from '../common/errors/webex-errors';\r\nimport Metrics from '../metrics';\r\nimport {eventType, trigger} from '../metrics/config';\r\nimport Media from '../media';\r\nimport LoggerProxy from '../common/logs/logger-proxy';\r\nimport {\r\n INTENT_TO_JOIN,\r\n _LEFT_,\r\n _IDLE_,\r\n _JOINED_,\r\n PASSWORD_STATUS,\r\n DISPLAY_HINTS,\r\n FULL_STATE,\r\n} from '../constants';\r\nimport IntentToJoinError from '../common/errors/intent-to-join';\r\nimport JoinMeetingError from '../common/errors/join-meeting';\r\nimport ParameterError from '../common/errors/parameter';\r\nimport PermissionError from '../common/errors/permission';\r\nimport PasswordError from '../common/errors/password-error';\r\nimport CaptchaError from '../common/errors/captcha-error';\r\n\r\nconst MeetingUtil: any = {};\r\n\r\nMeetingUtil.parseLocusJoin = (response) => {\r\n const parsed: any = {};\r\n\r\n // First todo: add check for existance\r\n parsed.locus = response.body.locus;\r\n parsed.mediaConnections = response.body.mediaConnections;\r\n parsed.locusUrl = parsed.locus.url;\r\n parsed.locusId = parsed.locus.url.split('/').pop();\r\n parsed.selfId = parsed.locus.self.id;\r\n\r\n // we need mediaId before making roap calls\r\n parsed.mediaConnections.forEach((mediaConnection) => {\r\n if (mediaConnection.mediaId) {\r\n parsed.mediaId = mediaConnection.mediaId;\r\n }\r\n });\r\n\r\n return parsed;\r\n};\r\n\r\nMeetingUtil.remoteUpdateAudioVideo = (audioMuted, videoMuted, meeting) => {\r\n if (!meeting) {\r\n return Promise.reject(new ParameterError('You need a meeting object.'));\r\n }\r\n const localMedias = Media.generateLocalMedias(meeting.mediaId, audioMuted, videoMuted);\r\n\r\n if (isEmpty(localMedias)) {\r\n return Promise.reject(\r\n new ParameterError('You need a media id on the meeting to change remote audio.')\r\n );\r\n }\r\n\r\n Metrics.postEvent({event: eventType.MEDIA_REQUEST, meeting});\r\n\r\n return meeting.meetingRequest\r\n .remoteAudioVideoToggle({\r\n locusUrl: meeting.locusUrl,\r\n selfId: meeting.selfId,\r\n localMedias,\r\n deviceUrl: meeting.deviceUrl,\r\n correlationId: meeting.correlationId,\r\n })\r\n .then((response) => {\r\n Metrics.postEvent({event: eventType.MEDIA_RESPONSE, meeting});\r\n\r\n return response.body.locus;\r\n });\r\n};\r\n\r\nMeetingUtil.hasOwner = (info) => info && info.owner;\r\n\r\nMeetingUtil.isOwnerSelf = (owner, selfId) => owner === selfId;\r\n\r\nMeetingUtil.isPinOrGuest = (err) =>\r\n err?.body?.errorCode && INTENT_TO_JOIN.includes(err.body.errorCode);\r\n\r\nMeetingUtil.joinMeeting = (meeting, options) => {\r\n if (!meeting) {\r\n return Promise.reject(new ParameterError('You need a meeting object.'));\r\n }\r\n\r\n Metrics.postEvent({event: eventType.LOCUS_JOIN_REQUEST, meeting});\r\n\r\n // eslint-disable-next-line no-warning-comments\r\n // TODO: check if the meeting is in JOINING state\r\n // if Joining state termintate the request as user might click multiple times\r\n return meeting.meetingRequest\r\n .joinMeeting({\r\n inviteeAddress: meeting.meetingJoinUrl || meeting.sipUri,\r\n meetingNumber: meeting.meetingNumber,\r\n deviceUrl: meeting.deviceUrl,\r\n locusUrl: meeting.locusUrl,\r\n correlationId: meeting.correlationId,\r\n roapMessage: options.roapMessage,\r\n permissionToken: meeting.permissionToken,\r\n resourceId: options.resourceId || null,\r\n moderator: options.moderator,\r\n pin: options.pin,\r\n moveToResource: options.moveToResource,\r\n preferTranscoding: options.preferTranscoding,\r\n asResourceOccupant: options.asResourceOccupant,\r\n })\r\n .then((res) => {\r\n Metrics.postEvent({\r\n event: eventType.LOCUS_JOIN_RESPONSE,\r\n meeting,\r\n data: {\r\n trigger: trigger.LOCI_UPDATE,\r\n locus: res.body.locus,\r\n mediaConnections: res.body.mediaConnections,\r\n trackingId: res.headers.trackingid,\r\n },\r\n });\r\n\r\n return MeetingUtil.parseLocusJoin(res);\r\n });\r\n};\r\n\r\nMeetingUtil.cleanUp = (meeting) => {\r\n // make sure we send last metrics before we close the peerconnection\r\n const stopStatsAnalyzer = meeting.statsAnalyzer\r\n ? meeting.statsAnalyzer.stopAnalyzer()\r\n : Promise.resolve();\r\n\r\n return stopStatsAnalyzer\r\n .then(() => meeting.closeLocalStream())\r\n .then(() => meeting.closeLocalShare())\r\n .then(() => meeting.closeRemoteTracks())\r\n .then(() => meeting.closePeerConnections())\r\n .then(() => {\r\n meeting.unsetLocalVideoTrack();\r\n meeting.unsetLocalShareTrack();\r\n meeting.unsetRemoteTracks();\r\n meeting.unsetPeerConnections();\r\n meeting.reconnectionManager.cleanUp();\r\n })\r\n .then(() => meeting.roap.stop(meeting.correlationId, meeting.roapSeq))\r\n .then(() => meeting.stopKeepAlive());\r\n};\r\n\r\nMeetingUtil.disconnectPhoneAudio = (meeting, phoneUrl) => {\r\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\r\n return Promise.reject(new MeetingNotActiveError());\r\n }\r\n\r\n const options = {\r\n locusUrl: meeting.locusUrl,\r\n selfId: meeting.selfId,\r\n correlationId: meeting.correlationId,\r\n phoneUrl,\r\n };\r\n\r\n return meeting.meetingRequest\r\n .disconnectPhoneAudio(options)\r\n .then((response) => {\r\n if (response?.body?.locus) {\r\n meeting.locusInfo.onFullLocus(response.body.locus);\r\n }\r\n })\r\n .catch((err) => {\r\n LoggerProxy.logger.error(\r\n `Meeting:util#disconnectPhoneAudio --> An error occured while disconnecting phone audio in meeting ${meeting.id}, error: ${err}`\r\n );\r\n\r\n return Promise.reject(err);\r\n });\r\n};\r\n\r\n// by default will leave on meeting's resourceId\r\n// if you explicity want it not to leave on resource id, pass\r\n// {resourceId: null}\r\n// TODO: chris, you can modify this however you want\r\nMeetingUtil.leaveMeeting = (meeting, options: any = {}) => {\r\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\r\n // TODO: clean up if the meeting is already inactive\r\n return Promise.reject(new MeetingNotActiveError());\r\n }\r\n\r\n if (MeetingUtil.isUserInLeftState(meeting.locusInfo)) {\r\n return Promise.reject(new UserNotJoinedError());\r\n }\r\n\r\n const defaultOptions = {\r\n locusUrl: meeting.locusUrl,\r\n selfId: meeting.selfId,\r\n correlationId: meeting.correlationId,\r\n resourceId: meeting.resourceId,\r\n deviceUrl: meeting.deviceUrl,\r\n };\r\n\r\n const leaveOptions = {...defaultOptions, ...options};\r\n\r\n return meeting.meetingRequest\r\n .leaveMeeting(leaveOptions)\r\n .then((response) => {\r\n if (response && response.body && response.body.locus) {\r\n // && !options.moveMeeting) {\r\n meeting.locusInfo.onFullLocus(response.body.locus);\r\n }\r\n\r\n return Promise.resolve();\r\n })\r\n .then(() => {\r\n if (options.moveMeeting) {\r\n return Promise.resolve();\r\n }\r\n\r\n return MeetingUtil.cleanUp(meeting);\r\n })\r\n .catch((err) => {\r\n // TODO: If the meeting state comes as LEFT or INACTIVE as response then\r\n // 1) on leave clean up the meeting or simply do a sync on the meeting\r\n // 2) If the error says meeting is inactive then destroy the meeting object\r\n LoggerProxy.logger.error(\r\n `Meeting:util#leaveMeeting --> An error occured while trying to leave meeting with an id of ${meeting.id}, error: ${err}`\r\n );\r\n\r\n return Promise.reject(err);\r\n });\r\n};\r\nMeetingUtil.declineMeeting = (meeting, reason) =>\r\n meeting.meetingRequest.declineMeeting({\r\n locusUrl: meeting.locusUrl,\r\n deviceUrl: meeting.deviceUrl,\r\n reason,\r\n });\r\n\r\nMeetingUtil.isUserInLeftState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _LEFT_;\r\n\r\nMeetingUtil.isUserInIdleState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _IDLE_;\r\n\r\nMeetingUtil.isUserInJoinedState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _JOINED_;\r\n\r\nMeetingUtil.isMediaEstablished = (currentMediaStatus) =>\r\n currentMediaStatus &&\r\n (currentMediaStatus.audio || currentMediaStatus.video || currentMediaStatus.share);\r\n\r\nMeetingUtil.joinMeetingOptions = (meeting, options: any = {}) => {\r\n meeting.resourceId = meeting.resourceId || options.resourceId;\r\n\r\n if (meeting.requiredCaptcha) {\r\n return Promise.reject(new CaptchaError());\r\n }\r\n if (meeting.passwordStatus === PASSWORD_STATUS.REQUIRED) {\r\n return Promise.reject(new PasswordError());\r\n }\r\n\r\n if (options.pin) {\r\n Metrics.postEvent({\r\n event: eventType.PIN_COLLECTED,\r\n meeting,\r\n });\r\n }\r\n\r\n // normal join meeting, scenario A, D\r\n return MeetingUtil.joinMeeting(meeting, options)\r\n .then((response) => {\r\n meeting.setLocus(response);\r\n\r\n return Promise.resolve(response);\r\n })\r\n .catch((err) => {\r\n // joining a claimed PMR that is not my own, scenario B\r\n if (MeetingUtil.isPinOrGuest(err)) {\r\n Metrics.postEvent({\r\n event: eventType.PIN_PROMPT,\r\n meeting,\r\n });\r\n\r\n // request host pin or non host for unclaimed PMR, start of Scenario C\r\n // see https://sqbu-github.cisco.com/WebExSquared/locus/wiki/Locus-Lobby-and--IVR-Feature\r\n return Promise.reject(new IntentToJoinError('Error Joining Meeting', err));\r\n }\r\n LoggerProxy.logger.error('Meeting:util#joinMeetingOptions --> Error joining the call, ', err);\r\n\r\n return Promise.reject(new JoinMeetingError(options, 'Error Joining Meeting', err));\r\n });\r\n};\r\n\r\nMeetingUtil.updateTransceiver = (options, meetingOptions) => {\r\n const {\r\n type,\r\n sendTrack,\r\n receiveTrack,\r\n track,\r\n transceiver,\r\n peerConnection,\r\n previousMediaDirection,\r\n } = options;\r\n\r\n if (\r\n (sendTrack !== undefined && sendTrack !== previousMediaDirection.sendTrack) ||\r\n (receiveTrack !== undefined && receiveTrack !== previousMediaDirection.receiveTrack)\r\n ) {\r\n return Media.updateTransceiver(\r\n {\r\n meetingId: meetingOptions.meeting.id,\r\n remoteQualityLevel: meetingOptions.mediaProperties.remoteQualityLevel,\r\n enableRtx: meetingOptions.meeting.config.enableRtx,\r\n enableExtmap: meetingOptions.meeting.config.enableExtmap,\r\n },\r\n peerConnection,\r\n transceiver,\r\n {\r\n track,\r\n type,\r\n receiveTrack,\r\n sendTrack,\r\n }\r\n )\r\n .then(() =>\r\n meetingOptions.meeting.roap.sendRoapMediaRequest({\r\n sdp: meetingOptions.mediaProperties.peerConnection.sdp,\r\n roapSeq: meetingOptions.meeting.roapSeq,\r\n meeting: meetingOptions.meeting, // or can pass meeting ID\r\n })\r\n )\r\n .catch((e) => {\r\n LoggerProxy.logger.error(\r\n `Meeting:util#updateTransceiver --> Error updating the ${type} streams with error: ${e}`\r\n );\r\n });\r\n }\r\n if (track) {\r\n transceiver.sender.replaceTrack(track);\r\n\r\n return Promise.resolve();\r\n }\r\n\r\n return Promise.reject(new ParameterError('update Failed: please pass valid parameter'));\r\n};\r\n\r\nMeetingUtil.validateOptions = (options) => {\r\n const {sendVideo, sendAudio, sendShare, localStream, localShare} = options;\r\n\r\n if (sendVideo && !MeetingUtil.getTrack(localStream).videoTrack) {\r\n return Promise.reject(new ParameterError('please pass valid video streams'));\r\n }\r\n\r\n if (sendAudio && !MeetingUtil.getTrack(localStream).audioTrack) {\r\n return Promise.reject(new ParameterError('please pass valid audio streams'));\r\n }\r\n\r\n if (sendShare && !MeetingUtil.getTrack(localShare).videoTrack) {\r\n return Promise.reject(new ParameterError('please pass valid share streams'));\r\n }\r\n\r\n return Promise.resolve();\r\n};\r\n\r\nMeetingUtil.getTrack = (stream) => {\r\n let audioTrack = null;\r\n let videoTrack = null;\r\n let audioTracks = null;\r\n let videoTracks = null;\r\n\r\n if (!stream) {\r\n return {audioTrack: null, videoTrack: null};\r\n }\r\n if (stream.getAudioTracks) {\r\n audioTracks = stream.getAudioTracks();\r\n }\r\n if (stream.getVideoTracks) {\r\n videoTracks = stream.getVideoTracks();\r\n }\r\n\r\n if (audioTracks && audioTracks.length > 0) {\r\n [audioTrack] = audioTracks;\r\n }\r\n\r\n if (videoTracks && videoTracks.length > 0) {\r\n [videoTrack] = videoTracks;\r\n }\r\n\r\n return {audioTrack, videoTrack};\r\n};\r\n\r\nMeetingUtil.getModeratorFromLocusInfo = (locusInfo) =>\r\n locusInfo &&\r\n locusInfo.parsedLocus &&\r\n locusInfo.parsedLocus.info &&\r\n locusInfo.parsedLocus.info &&\r\n locusInfo.parsedLocus.info.moderator;\r\n\r\nMeetingUtil.getPolicyFromLocusInfo = (locusInfo) =>\r\n locusInfo &&\r\n locusInfo.parsedLocus &&\r\n locusInfo.parsedLocus.info &&\r\n locusInfo.parsedLocus.info &&\r\n locusInfo.parsedLocus.info.policy;\r\n\r\nMeetingUtil.getUserDisplayHintsFromLocusInfo = (locusInfo) =>\r\n locusInfo?.parsedLocus?.info?.userDisplayHints || [];\r\n\r\nMeetingUtil.canInviteNewParticipants = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.ADD_GUEST);\r\n\r\nMeetingUtil.canAdmitParticipant = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.ROSTER_WAITING_TO_JOIN);\r\n\r\nMeetingUtil.canUserLock = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_LOCK) &&\r\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_UNLOCKED);\r\n\r\nMeetingUtil.canUserUnlock = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_UNLOCK) &&\r\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_LOCKED);\r\n\r\nMeetingUtil.canUserRaiseHand = (displayHints) => displayHints.includes(DISPLAY_HINTS.RAISE_HAND);\r\n\r\nMeetingUtil.canUserLowerAllHands = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.LOWER_ALL_HANDS);\r\n\r\nMeetingUtil.canUserLowerSomeoneElsesHand = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND);\r\n\r\nMeetingUtil.bothLeaveAndEndMeetingAvailable = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.LEAVE_TRANSFER_HOST_END_MEETING) ||\r\n displayHints.includes(DISPLAY_HINTS.LEAVE_END_MEETING);\r\n\r\nMeetingUtil.lockMeeting = (actions, request, locusUrl) => {\r\n if (actions && actions.canLock) {\r\n return request.lockMeeting({locusUrl, lock: true});\r\n }\r\n\r\n return Promise.reject(new PermissionError('Lock not allowed, due to joined property.'));\r\n};\r\n\r\nMeetingUtil.unlockMeeting = (actions, request, locusUrl) => {\r\n if (actions && actions.canUnlock) {\r\n return request.lockMeeting({locusUrl, lock: false});\r\n }\r\n\r\n return Promise.reject(new PermissionError('Unlock not allowed, due to joined property.'));\r\n};\r\n\r\nMeetingUtil.handleAudioLogging = (audioTrack) => {\r\n const LOG_HEADER = 'MeetingUtil#handleAudioLogging -->';\r\n\r\n if (audioTrack) {\r\n const settings = audioTrack.getSettings();\r\n const {deviceId} = settings;\r\n\r\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\r\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\r\n }\r\n};\r\n\r\nMeetingUtil.handleVideoLogging = (videoTrack) => {\r\n const LOG_HEADER = 'MeetingUtil#handleVideoLogging -->';\r\n\r\n if (videoTrack) {\r\n const settings = videoTrack.getSettings();\r\n const {deviceId} = settings;\r\n\r\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\r\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\r\n }\r\n};\r\n\r\nMeetingUtil.handleDeviceLogging = (devices = []) => {\r\n const LOG_HEADER = 'MeetingUtil#handleDeviceLogging -->';\r\n\r\n devices.forEach((device) => {\r\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${device.deviceId}`);\r\n LoggerProxy.logger.log(LOG_HEADER, 'settings', JSON.stringify(device));\r\n });\r\n};\r\n\r\nMeetingUtil.endMeetingForAll = (meeting) => {\r\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\r\n return Promise.reject(new MeetingNotActiveError());\r\n }\r\n\r\n const endOptions = {\r\n locusUrl: meeting.locusUrl,\r\n };\r\n\r\n return meeting.meetingRequest\r\n .endMeetingForAll(endOptions)\r\n .then((response) => {\r\n if (response && response.body && response.body.locus) {\r\n meeting.locusInfo.onFullLocus(response.body.locus);\r\n }\r\n\r\n return Promise.resolve();\r\n })\r\n .then(() => MeetingUtil.cleanUp(meeting))\r\n .catch((err) => {\r\n LoggerProxy.logger.error(\r\n `Meeting:util#endMeetingForAll An error occured while trying to end meeting for all with an id of ${meeting.id}, error: ${err}`\r\n );\r\n\r\n return Promise.reject(err);\r\n });\r\n};\r\n\r\nMeetingUtil.canEnableClosedCaption = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.CAPTION_START);\r\n\r\nMeetingUtil.canStartTranscribing = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_START);\r\n\r\nMeetingUtil.canStopTranscribing = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_STOP);\r\n\r\nMeetingUtil.isClosedCaptionActive = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.CAPTION_STATUS_ACTIVE);\r\n\r\nMeetingUtil.isWebexAssistantActive = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.WEBEX_ASSISTANT_STATUS_ACTIVE);\r\n\r\nMeetingUtil.canViewCaptionPanel = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.ENABLE_CAPTION_PANEL);\r\n\r\nMeetingUtil.isRealTimeTranslationEnabled = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.DISPLAY_REAL_TIME_TRANSLATION);\r\n\r\nMeetingUtil.canSelectSpokenLanguages = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.DISPLAY_NON_ENGLISH_ASR);\r\n\r\nMeetingUtil.waitingForOthersToJoin = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.WAITING_FOR_OTHERS);\r\n\r\nexport default MeetingUtil;\r\n"],"mappings":"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"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import Collection from '../common/collection';
|
|
2
|
-
/**
|
|
3
|
-
* @class MeetingInfoCollection
|
|
4
|
-
*/
|
|
5
|
-
export default class MeetingInfoCollection extends Collection {
|
|
6
|
-
namespace: string;
|
|
7
|
-
/**
|
|
8
|
-
* @memberof MeetingInfoCollection
|
|
9
|
-
* @constructor
|
|
10
|
-
* @public
|
|
11
|
-
*/
|
|
12
|
-
constructor();
|
|
13
|
-
/**
|
|
14
|
-
* @param {String} id ID of the meeting info you wish to retreive
|
|
15
|
-
* @returns {MeetingInfo} returns a meeting info instance
|
|
16
|
-
* @public
|
|
17
|
-
* @memberof MeetingInfoCollection
|
|
18
|
-
*/
|
|
19
|
-
get(id: string): any;
|
|
20
|
-
}
|
|
1
|
+
import Collection from '../common/collection';
|
|
2
|
+
/**
|
|
3
|
+
* @class MeetingInfoCollection
|
|
4
|
+
*/
|
|
5
|
+
export default class MeetingInfoCollection extends Collection {
|
|
6
|
+
namespace: string;
|
|
7
|
+
/**
|
|
8
|
+
* @memberof MeetingInfoCollection
|
|
9
|
+
* @constructor
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
constructor();
|
|
13
|
+
/**
|
|
14
|
+
* @param {String} id ID of the meeting info you wish to retreive
|
|
15
|
+
* @returns {MeetingInfo} returns a meeting info instance
|
|
16
|
+
* @public
|
|
17
|
+
* @memberof MeetingInfoCollection
|
|
18
|
+
*/
|
|
19
|
+
get(id: string): any;
|
|
20
|
+
}
|
|
@@ -19,16 +19,16 @@ var _collection = _interopRequireDefault(require("../common/collection"));
|
|
|
19
19
|
var _constants = require("../constants");
|
|
20
20
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
21
21
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
22
|
-
/**
|
|
23
|
-
* @class MeetingInfoCollection
|
|
22
|
+
/**
|
|
23
|
+
* @class MeetingInfoCollection
|
|
24
24
|
*/
|
|
25
25
|
var MeetingInfoCollection = /*#__PURE__*/function (_Collection) {
|
|
26
26
|
(0, _inherits2.default)(MeetingInfoCollection, _Collection);
|
|
27
27
|
var _super = _createSuper(MeetingInfoCollection);
|
|
28
|
-
/**
|
|
29
|
-
* @memberof MeetingInfoCollection
|
|
30
|
-
* @constructor
|
|
31
|
-
* @public
|
|
28
|
+
/**
|
|
29
|
+
* @memberof MeetingInfoCollection
|
|
30
|
+
* @constructor
|
|
31
|
+
* @public
|
|
32
32
|
*/
|
|
33
33
|
function MeetingInfoCollection() {
|
|
34
34
|
var _this;
|
|
@@ -38,11 +38,11 @@ var MeetingInfoCollection = /*#__PURE__*/function (_Collection) {
|
|
|
38
38
|
return _this;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
/**
|
|
42
|
-
* @param {String} id ID of the meeting info you wish to retreive
|
|
43
|
-
* @returns {MeetingInfo} returns a meeting info instance
|
|
44
|
-
* @public
|
|
45
|
-
* @memberof MeetingInfoCollection
|
|
41
|
+
/**
|
|
42
|
+
* @param {String} id ID of the meeting info you wish to retreive
|
|
43
|
+
* @returns {MeetingInfo} returns a meeting info instance
|
|
44
|
+
* @public
|
|
45
|
+
* @memberof MeetingInfoCollection
|
|
46
46
|
*/
|
|
47
47
|
(0, _createClass2.default)(MeetingInfoCollection, [{
|
|
48
48
|
key: "get",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_collection","_interopRequireDefault","require","_constants","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","MeetingInfoCollection","_Collection","_inherits2","_super","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","MEETINGS","_createClass2","key","value","get","id","meetingInfos","_find2","info","sipUrl","locusId","userId","meetingLink","Collection","exports"],"sources":["collection.ts"],"sourcesContent":["import {find} from 'lodash';\n\nimport Collection from '../common/collection';\nimport {MEETINGS} from '../constants';\n\n/**\n * @class MeetingInfoCollection\n */\nexport default class MeetingInfoCollection extends Collection {\n namespace = MEETINGS;\n\n /**\n * @memberof MeetingInfoCollection\n * @constructor\n * @public\n */\n constructor() {\n super('meetingInfos');\n }\n\n /**\n * @param {String} id ID of the meeting info you wish to retreive\n * @returns {MeetingInfo} returns a meeting info instance\n * @public\n * @memberof MeetingInfoCollection\n */\n public get(id: string) {\n // @ts-ignore\n if (this.meetingInfos[id]) {\n // @ts-ignore\n return this.meetingInfos[id];\n }\n\n return find(\n // @ts-ignore\n this.meetingInfos,\n (info) =>\n info.sipUrl === id || info.locusId === id || info.userId === id || info.meetingLink === id\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAEA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAAsC,SAAAE,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA;AAEtC;AACA;AACA;AAFA,IAGqBC,qBAAqB,0BAAAC,WAAA;EAAA,IAAAC,UAAA,CAAAlB,OAAA,EAAAgB,qBAAA,EAAAC,WAAA;EAAA,IAAAE,MAAA,GAAA1B,YAAA,CAAAuB,qBAAA;EAGxC;AACF;AACA;AACA;AACA;EACE,SAAAA,sBAAA,EAAc;IAAA,IAAAI,KAAA;IAAA,IAAAC,gBAAA,CAAArB,OAAA,QAAAgB,qBAAA;IACZI,KAAA,GAAAD,MAAA,CAAAL,IAAA,OAAM,cAAc;IAAE,IAAAQ,gBAAA,CAAAtB,OAAA,MAAAuB,uBAAA,CAAAvB,OAAA,EAAAoB,KAAA,gBARZI,mBAAQ;IAAA,OAAAJ,KAAA;EASpB;;EAEA;AACF;AACA;AACA;AACA;AACA;EALE,IAAAK,aAAA,CAAAzB,OAAA,EAAAgB,qBAAA;IAAAU,GAAA;IAAAC,KAAA,EAMA,SAAAC,IAAWC,EAAU,EAAE;MACrB;MACA,IAAI,IAAI,CAACC,YAAY,CAACD,EAAE,CAAC,EAAE;QACzB;QACA,OAAO,IAAI,CAACC,YAAY,CAACD,EAAE,CAAC;MAC9B;MAEA,OAAO,IAAAE,MAAA,CAAA/B,OAAA;MACL;MACA,IAAI,CAAC8B,YAAY,EACjB,UAACE,IAAI;QAAA,OACHA,IAAI,CAACC,MAAM,KAAKJ,EAAE,IAAIG,IAAI,CAACE,OAAO,KAAKL,EAAE,IAAIG,IAAI,CAACG,MAAM,KAAKN,EAAE,IAAIG,IAAI,CAACI,WAAW,KAAKP,EAAE;MAAA,EAC7F;IACH;EAAC;EAAA,OAAAb,qBAAA;AAAA,EA/BgDqB,mBAAU;AAAAC,OAAA,CAAAtC,OAAA,GAAAgB,qBAAA"}
|
|
1
|
+
{"version":3,"names":["_collection","_interopRequireDefault","require","_constants","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","MeetingInfoCollection","_Collection","_inherits2","_super","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","MEETINGS","_createClass2","key","value","get","id","meetingInfos","_find2","info","sipUrl","locusId","userId","meetingLink","Collection","exports"],"sources":["collection.ts"],"sourcesContent":["import {find} from 'lodash';\r\n\r\nimport Collection from '../common/collection';\r\nimport {MEETINGS} from '../constants';\r\n\r\n/**\r\n * @class MeetingInfoCollection\r\n */\r\nexport default class MeetingInfoCollection extends Collection {\r\n namespace = MEETINGS;\r\n\r\n /**\r\n * @memberof MeetingInfoCollection\r\n * @constructor\r\n * @public\r\n */\r\n constructor() {\r\n super('meetingInfos');\r\n }\r\n\r\n /**\r\n * @param {String} id ID of the meeting info you wish to retreive\r\n * @returns {MeetingInfo} returns a meeting info instance\r\n * @public\r\n * @memberof MeetingInfoCollection\r\n */\r\n public get(id: string) {\r\n // @ts-ignore\r\n if (this.meetingInfos[id]) {\r\n // @ts-ignore\r\n return this.meetingInfos[id];\r\n }\r\n\r\n return find(\r\n // @ts-ignore\r\n this.meetingInfos,\r\n (info) =>\r\n info.sipUrl === id || info.locusId === id || info.userId === id || info.meetingLink === id\r\n );\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;AAEA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAAsC,SAAAE,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA;AAEtC;AACA;AACA;AAFA,IAGqBC,qBAAqB,0BAAAC,WAAA;EAAA,IAAAC,UAAA,CAAAlB,OAAA,EAAAgB,qBAAA,EAAAC,WAAA;EAAA,IAAAE,MAAA,GAAA1B,YAAA,CAAAuB,qBAAA;EAGxC;AACF;AACA;AACA;AACA;EACE,SAAAA,sBAAA,EAAc;IAAA,IAAAI,KAAA;IAAA,IAAAC,gBAAA,CAAArB,OAAA,QAAAgB,qBAAA;IACZI,KAAA,GAAAD,MAAA,CAAAL,IAAA,OAAM,cAAc;IAAE,IAAAQ,gBAAA,CAAAtB,OAAA,MAAAuB,uBAAA,CAAAvB,OAAA,EAAAoB,KAAA,gBARZI,mBAAQ;IAAA,OAAAJ,KAAA;EASpB;;EAEA;AACF;AACA;AACA;AACA;AACA;EALE,IAAAK,aAAA,CAAAzB,OAAA,EAAAgB,qBAAA;IAAAU,GAAA;IAAAC,KAAA,EAMA,SAAAC,IAAWC,EAAU,EAAE;MACrB;MACA,IAAI,IAAI,CAACC,YAAY,CAACD,EAAE,CAAC,EAAE;QACzB;QACA,OAAO,IAAI,CAACC,YAAY,CAACD,EAAE,CAAC;MAC9B;MAEA,OAAO,IAAAE,MAAA,CAAA/B,OAAA;MACL;MACA,IAAI,CAAC8B,YAAY,EACjB,UAACE,IAAI;QAAA,OACHA,IAAI,CAACC,MAAM,KAAKJ,EAAE,IAAIG,IAAI,CAACE,OAAO,KAAKL,EAAE,IAAIG,IAAI,CAACG,MAAM,KAAKN,EAAE,IAAIG,IAAI,CAACI,WAAW,KAAKP,EAAE;MAAA,EAC7F;IACH;EAAC;EAAA,OAAAb,qBAAA;AAAA,EA/BgDqB,mBAAU;AAAAC,OAAA,CAAAtC,OAAA,GAAAgB,qBAAA"}
|
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* @class MeetingInfo
|
|
6
|
-
*/
|
|
7
|
-
export default class MeetingInfo {
|
|
8
|
-
meetingInfoCollection: any;
|
|
9
|
-
meetingInfoRequest: any;
|
|
10
|
-
webex: any;
|
|
11
|
-
/**
|
|
12
|
-
*
|
|
13
|
-
* @param {WebexSDK} webex
|
|
14
|
-
*/
|
|
15
|
-
constructor(webex: any);
|
|
16
|
-
/**
|
|
17
|
-
* @param {string} id
|
|
18
|
-
* @returns {object}
|
|
19
|
-
* @public
|
|
20
|
-
* @memberof MeetingInfo
|
|
21
|
-
*/
|
|
22
|
-
getMeetingInfo(id: string): any;
|
|
23
|
-
/**
|
|
24
|
-
* @param {string} id
|
|
25
|
-
* @param {object} info
|
|
26
|
-
* @returns {null}
|
|
27
|
-
* @public
|
|
28
|
-
* @memberof MeetingInfo
|
|
29
|
-
*/
|
|
30
|
-
setMeetingInfo(id: string, info: object): void;
|
|
31
|
-
/**
|
|
32
|
-
* Helper to make the actual MeetingInfo request and set the meetingInfo if successful, else reject
|
|
33
|
-
* @param {Object} options
|
|
34
|
-
* @returns {Promise}
|
|
35
|
-
* @private
|
|
36
|
-
* @memberof MeetingInfo
|
|
37
|
-
*/
|
|
38
|
-
private requestFetchInfo;
|
|
39
|
-
/**
|
|
40
|
-
* Helper to generate the options for the MeetingInfo request
|
|
41
|
-
* @param {String} destination
|
|
42
|
-
* @param {String} type
|
|
43
|
-
* @returns {Promise}
|
|
44
|
-
* @private
|
|
45
|
-
* @memberof MeetingInfo
|
|
46
|
-
*/
|
|
47
|
-
private fetchInfoOptions;
|
|
48
|
-
/**
|
|
49
|
-
* Fetches meeting info from the server
|
|
50
|
-
* @param {String} destination one of many different types of destinations to look up info for
|
|
51
|
-
* @param {String} [type] to match up with the destination value
|
|
52
|
-
* @returns {Promise} returns a meeting info object
|
|
53
|
-
* @public
|
|
54
|
-
* @memberof MeetingInfo
|
|
55
|
-
*/
|
|
56
|
-
fetchMeetingInfo(destination: string, type?: string): any;
|
|
57
|
-
}
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* @class MeetingInfo
|
|
6
|
+
*/
|
|
7
|
+
export default class MeetingInfo {
|
|
8
|
+
meetingInfoCollection: any;
|
|
9
|
+
meetingInfoRequest: any;
|
|
10
|
+
webex: any;
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @param {WebexSDK} webex
|
|
14
|
+
*/
|
|
15
|
+
constructor(webex: any);
|
|
16
|
+
/**
|
|
17
|
+
* @param {string} id
|
|
18
|
+
* @returns {object}
|
|
19
|
+
* @public
|
|
20
|
+
* @memberof MeetingInfo
|
|
21
|
+
*/
|
|
22
|
+
getMeetingInfo(id: string): any;
|
|
23
|
+
/**
|
|
24
|
+
* @param {string} id
|
|
25
|
+
* @param {object} info
|
|
26
|
+
* @returns {null}
|
|
27
|
+
* @public
|
|
28
|
+
* @memberof MeetingInfo
|
|
29
|
+
*/
|
|
30
|
+
setMeetingInfo(id: string, info: object): void;
|
|
31
|
+
/**
|
|
32
|
+
* Helper to make the actual MeetingInfo request and set the meetingInfo if successful, else reject
|
|
33
|
+
* @param {Object} options
|
|
34
|
+
* @returns {Promise}
|
|
35
|
+
* @private
|
|
36
|
+
* @memberof MeetingInfo
|
|
37
|
+
*/
|
|
38
|
+
private requestFetchInfo;
|
|
39
|
+
/**
|
|
40
|
+
* Helper to generate the options for the MeetingInfo request
|
|
41
|
+
* @param {String} destination
|
|
42
|
+
* @param {String} type
|
|
43
|
+
* @returns {Promise}
|
|
44
|
+
* @private
|
|
45
|
+
* @memberof MeetingInfo
|
|
46
|
+
*/
|
|
47
|
+
private fetchInfoOptions;
|
|
48
|
+
/**
|
|
49
|
+
* Fetches meeting info from the server
|
|
50
|
+
* @param {String} destination one of many different types of destinations to look up info for
|
|
51
|
+
* @param {String} [type] to match up with the destination value
|
|
52
|
+
* @returns {Promise} returns a meeting info object
|
|
53
|
+
* @public
|
|
54
|
+
* @memberof MeetingInfo
|
|
55
|
+
*/
|
|
56
|
+
fetchMeetingInfo(destination: string, type?: string): any;
|
|
57
|
+
}
|