@webex/plugin-meetings 2.60.1-next.9 → 2.60.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -58
- package/dist/common/browser-detection.js +3 -2
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +4 -3
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +2 -1
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +2 -1
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +2 -1
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +2 -1
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +2 -1
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.js +4 -3
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +2 -1
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +2 -1
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/{reclaim-host-role-errors.js → reclaim-host-role-error.js} +11 -7
- package/dist/common/errors/reclaim-host-role-error.js.map +1 -0
- package/dist/common/errors/reconnection-in-progress.js +2 -1
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +2 -1
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +2 -1
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.d.ts +8 -20
- package/dist/common/errors/webex-errors.js +28 -48
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +2 -1
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +2 -1
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +2 -1
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +2 -1
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +2 -1
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +2 -1
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +3 -2
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.d.ts +1 -3
- package/dist/common/logs/request.js +5 -8
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.d.ts +7 -9
- package/dist/common/queue.js +9 -22
- package/dist/common/queue.js.map +1 -1
- package/dist/config.d.ts +7 -6
- package/dist/config.js +10 -8
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +100 -234
- package/dist/constants.js +444 -433
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +6 -3
- package/dist/controls-options-manager/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.d.ts +1 -11
- package/dist/controls-options-manager/enums.js +6 -15
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.d.ts +1 -17
- package/dist/controls-options-manager/index.js +38 -127
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/util.d.ts +7 -1
- package/dist/controls-options-manager/util.js +19 -309
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.d.ts +3 -6
- package/dist/index.js +5 -121
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +11 -100
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +4 -3
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +2 -1
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +2 -1
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.d.ts +4 -57
- package/dist/locus-info/index.js +84 -425
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +5 -13
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +3 -58
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.d.ts +6 -66
- package/dist/locus-info/parser.js +80 -253
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +13 -97
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.d.ts +0 -2
- package/dist/media/index.js +319 -107
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.d.ts +53 -38
- package/dist/media/properties.js +153 -96
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +22 -1
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.d.ts +230 -234
- package/dist/mediaQualityMetrics/config.js +498 -302
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/effectsState.d.ts +42 -0
- package/dist/meeting/effectsState.js +260 -0
- package/dist/meeting/effectsState.js.map +1 -0
- package/dist/meeting/in-meeting-actions.d.ts +0 -88
- package/dist/meeting/in-meeting-actions.js +3 -94
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.d.ts +520 -705
- package/dist/meeting/index.js +3083 -5041
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.d.ts +25 -93
- package/dist/meeting/muteState.js +133 -224
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.d.ts +47 -82
- package/dist/meeting/request.js +199 -304
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/state.js +2 -1
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.d.ts +1 -118
- package/dist/meeting/util.js +435 -676
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +4 -3
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.d.ts +1 -13
- package/dist/meeting-info/index.js +7 -74
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.d.ts +1 -31
- package/dist/meeting-info/meeting-info-v2.js +63 -200
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +2 -1
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +3 -2
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +41 -39
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.d.ts +0 -17
- package/dist/meetings/collection.js +4 -42
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.d.ts +20 -114
- package/dist/meetings/index.js +133 -540
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +3 -4
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +6 -107
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.d.ts +1 -13
- package/dist/member/index.js +2 -45
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.js +4 -3
- package/dist/member/member.types.js.map +1 -1
- package/dist/member/util.js +29 -120
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.d.ts +0 -5
- package/dist/members/collection.js +2 -11
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.d.ts +11 -56
- package/dist/members/index.js +47 -174
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.d.ts +11 -67
- package/dist/members/request.js +54 -102
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +4 -3
- package/dist/members/types.js.map +1 -1
- package/dist/members/util.d.ts +1 -214
- package/dist/members/util.js +284 -327
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.d.ts +169 -0
- package/dist/metrics/config.js +289 -0
- package/dist/metrics/config.js.map +1 -0
- package/dist/metrics/constants.d.ts +6 -15
- package/dist/metrics/constants.js +9 -17
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.d.ts +111 -4
- package/dist/metrics/index.js +452 -4
- package/dist/metrics/index.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +4 -5
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/peer-connection-manager/index.d.ts +6 -0
- package/dist/peer-connection-manager/index.js +671 -0
- package/dist/peer-connection-manager/index.js.map +1 -0
- package/dist/peer-connection-manager/util.d.ts +6 -0
- package/dist/peer-connection-manager/util.js +110 -0
- package/dist/peer-connection-manager/util.js.map +1 -0
- package/dist/personal-meeting-room/index.js +3 -2
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +3 -2
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +2 -1
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.d.ts +95 -61
- package/dist/reachability/index.js +392 -304
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.d.ts +3 -7
- package/dist/reachability/request.js +10 -18
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/reactions.d.ts +2 -2
- package/dist/reactions/reactions.js +6 -4
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.d.ts +3 -23
- package/dist/reactions/reactions.type.js +23 -21
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.d.ts +8 -32
- package/dist/reconnection-manager/index.js +232 -285
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +5 -4
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.d.ts +1 -15
- package/dist/recording-controller/index.js +46 -57
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.d.ts +4 -5
- package/dist/recording-controller/util.js +10 -10
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/collection.d.ts +10 -0
- package/dist/roap/collection.js +63 -0
- package/dist/roap/collection.js.map +1 -0
- package/dist/roap/handler.d.ts +47 -0
- package/dist/roap/handler.js +279 -0
- package/dist/roap/handler.js.map +1 -0
- package/dist/roap/index.d.ts +47 -9
- package/dist/roap/index.js +238 -100
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.d.ts +12 -18
- package/dist/roap/request.js +180 -126
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/state.d.ts +9 -0
- package/dist/roap/state.js +127 -0
- package/dist/roap/state.js.map +1 -0
- package/dist/roap/turnDiscovery.d.ts +16 -27
- package/dist/roap/turnDiscovery.js +105 -115
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/roap/util.d.ts +2 -0
- package/dist/roap/util.js +76 -0
- package/dist/roap/util.js.map +1 -0
- package/dist/statsAnalyzer/global.d.ts +83 -1
- package/dist/statsAnalyzer/global.js +85 -2
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.d.ts +30 -50
- package/dist/statsAnalyzer/index.js +511 -436
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +6 -8
- package/dist/statsAnalyzer/mqaUtil.js +90 -130
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +2 -1
- package/dist/transcription/index.js.map +1 -1
- package/package.json +26 -39
- package/src/common/errors/webex-errors.ts +12 -36
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/logs/request.ts +1 -5
- package/src/common/queue.ts +8 -22
- package/src/config.ts +7 -6
- package/src/constants.ts +100 -265
- package/src/controls-options-manager/enums.ts +0 -12
- package/src/controls-options-manager/index.ts +21 -116
- package/src/controls-options-manager/util.ts +14 -294
- package/src/index.js +15 -0
- package/src/locus-info/controlsUtils.ts +0 -110
- package/src/locus-info/index.ts +61 -450
- package/src/locus-info/infoUtils.ts +2 -14
- package/src/locus-info/mediaSharesUtils.ts +0 -64
- package/src/locus-info/parser.ts +47 -258
- package/src/locus-info/selfUtils.ts +2 -85
- package/src/media/index.ts +370 -153
- package/src/media/properties.ts +136 -106
- package/src/media/util.ts +21 -0
- package/src/mediaQualityMetrics/config.ts +377 -244
- package/src/meeting/effectsState.ts +209 -0
- package/src/meeting/in-meeting-actions.ts +0 -176
- package/src/meeting/index.ts +2581 -4306
- package/src/meeting/muteState.ts +138 -224
- package/src/meeting/request.ts +127 -214
- package/src/meeting/util.ts +423 -687
- package/src/meeting-info/index.ts +8 -81
- package/src/meeting-info/meeting-info-v2.ts +13 -163
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +28 -28
- package/src/meetings/collection.ts +0 -33
- package/src/meetings/index.ts +136 -531
- package/src/meetings/request.ts +0 -2
- package/src/meetings/util.ts +5 -116
- package/src/member/index.ts +1 -43
- package/src/member/util.ts +28 -125
- package/src/members/collection.ts +0 -8
- package/src/members/index.ts +52 -187
- package/src/members/request.ts +27 -87
- package/src/members/util.ts +291 -332
- package/src/metrics/config.ts +485 -0
- package/src/metrics/constants.ts +6 -15
- package/src/metrics/index.ts +471 -1
- package/src/networkQualityMonitor/index.ts +6 -6
- package/src/peer-connection-manager/index.ts +847 -0
- package/src/peer-connection-manager/util.ts +119 -0
- package/src/reachability/index.ts +347 -246
- package/src/reachability/request.ts +8 -17
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +4 -30
- package/src/reconnection-manager/index.ts +156 -168
- package/src/recording-controller/index.ts +3 -20
- package/src/recording-controller/util.ts +9 -26
- package/src/roap/collection.ts +62 -0
- package/src/roap/handler.ts +294 -0
- package/src/roap/index.ts +241 -96
- package/src/roap/request.ts +148 -74
- package/src/roap/state.ts +156 -0
- package/src/roap/turnDiscovery.ts +56 -62
- package/src/roap/util.ts +100 -0
- package/src/statsAnalyzer/global.ts +84 -1
- package/src/statsAnalyzer/index.ts +645 -479
- package/src/statsAnalyzer/mqaUtil.ts +126 -128
- package/test/integration/spec/journey.js +264 -320
- package/test/integration/spec/space-meeting.js +4 -77
- package/test/unit/spec/common/queue.js +2 -31
- package/test/unit/spec/controls-options-manager/index.js +0 -163
- package/test/unit/spec/controls-options-manager/util.js +60 -576
- package/test/unit/spec/fixture/locus.js +0 -1
- package/test/unit/spec/locus-info/controlsUtils.js +30 -323
- package/test/unit/spec/locus-info/index.js +15 -1437
- package/test/unit/spec/locus-info/infoUtils.js +16 -54
- package/test/unit/spec/locus-info/lib/SeqCmp.json +0 -16
- package/test/unit/spec/locus-info/lib/selfConstant.js +0 -48
- package/test/unit/spec/locus-info/parser.js +35 -116
- package/test/unit/spec/locus-info/selfUtils.js +0 -275
- package/test/unit/spec/media/properties.ts +84 -75
- package/test/unit/spec/meeting/effectsState.js +281 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +0 -86
- package/test/unit/spec/meeting/index.js +2313 -8384
- package/test/unit/spec/meeting/muteState.js +213 -409
- package/test/unit/spec/meeting/request.js +43 -523
- package/test/unit/spec/meeting/utils.js +24 -834
- package/test/unit/spec/meeting-info/meetinginfov2.js +5 -527
- package/test/unit/spec/meeting-info/utilv2.js +0 -21
- package/test/unit/spec/meetings/collection.js +0 -26
- package/test/unit/spec/meetings/index.js +232 -1445
- package/test/unit/spec/meetings/utils.js +2 -202
- package/test/unit/spec/member/index.js +9 -32
- package/test/unit/spec/member/util.js +61 -499
- package/test/unit/spec/members/index.js +5 -394
- package/test/unit/spec/members/request.js +27 -206
- package/test/unit/spec/members/utils.js +38 -173
- package/test/unit/spec/metrics/index.js +50 -1
- package/test/unit/spec/networkQualityMonitor/index.js +4 -4
- package/test/unit/spec/peerconnection-manager/index.js +218 -0
- package/test/unit/spec/peerconnection-manager/utils.js +49 -0
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -0
- package/test/unit/spec/reachability/index.ts +24 -532
- package/test/unit/spec/reconnection-manager/index.js +24 -163
- package/test/unit/spec/recording-controller/index.js +218 -293
- package/test/unit/spec/recording-controller/util.js +96 -223
- package/test/unit/spec/roap/index.ts +77 -187
- package/test/unit/spec/roap/turnDiscovery.ts +48 -86
- package/test/unit/spec/roap/util.js +30 -0
- package/test/unit/spec/stats-analyzer/index.js +165 -644
- package/test/utils/testUtils.js +45 -0
- package/test/utils/webex-config.js +0 -4
- package/test/utils/webex-test-users.js +3 -7
- package/dist/annotation/annotation.types.d.ts +0 -42
- package/dist/annotation/annotation.types.js +0 -7
- package/dist/annotation/annotation.types.js.map +0 -1
- package/dist/annotation/constants.d.ts +0 -31
- package/dist/annotation/constants.js +0 -41
- package/dist/annotation/constants.js.map +0 -1
- package/dist/annotation/index.d.ts +0 -117
- package/dist/annotation/index.js +0 -357
- package/dist/annotation/index.js.map +0 -1
- package/dist/breakouts/breakout.d.ts +0 -8
- package/dist/breakouts/breakout.js +0 -215
- package/dist/breakouts/breakout.js.map +0 -1
- package/dist/breakouts/collection.d.ts +0 -5
- package/dist/breakouts/collection.js +0 -22
- package/dist/breakouts/collection.js.map +0 -1
- package/dist/breakouts/edit-lock-error.d.ts +0 -15
- package/dist/breakouts/edit-lock-error.js +0 -51
- package/dist/breakouts/edit-lock-error.js.map +0 -1
- package/dist/breakouts/events.d.ts +0 -8
- package/dist/breakouts/events.js +0 -44
- package/dist/breakouts/events.js.map +0 -1
- package/dist/breakouts/index.d.ts +0 -5
- package/dist/breakouts/index.js +0 -1047
- package/dist/breakouts/index.js.map +0 -1
- package/dist/breakouts/request.d.ts +0 -22
- package/dist/breakouts/request.js +0 -77
- package/dist/breakouts/request.js.map +0 -1
- package/dist/breakouts/utils.d.ts +0 -15
- package/dist/breakouts/utils.js +0 -64
- package/dist/breakouts/utils.js.map +0 -1
- package/dist/common/errors/no-meeting-info.d.ts +0 -14
- package/dist/common/errors/no-meeting-info.js +0 -50
- package/dist/common/errors/no-meeting-info.js.map +0 -1
- package/dist/common/errors/reclaim-host-role-errors.js.map +0 -1
- package/dist/controls-options-manager/types.d.ts +0 -43
- package/dist/controls-options-manager/types.js +0 -7
- package/dist/controls-options-manager/types.js.map +0 -1
- package/dist/interceptors/index.d.ts +0 -2
- package/dist/interceptors/index.js +0 -15
- package/dist/interceptors/index.js.map +0 -1
- package/dist/interceptors/locusRetry.d.ts +0 -27
- package/dist/interceptors/locusRetry.js +0 -94
- package/dist/interceptors/locusRetry.js.map +0 -1
- package/dist/interpretation/collection.d.ts +0 -5
- package/dist/interpretation/collection.js +0 -22
- package/dist/interpretation/collection.js.map +0 -1
- package/dist/interpretation/index.d.ts +0 -5
- package/dist/interpretation/index.js +0 -365
- package/dist/interpretation/index.js.map +0 -1
- package/dist/interpretation/siLanguage.d.ts +0 -5
- package/dist/interpretation/siLanguage.js +0 -24
- package/dist/interpretation/siLanguage.js.map +0 -1
- package/dist/meeting/locusMediaRequest.d.ts +0 -74
- package/dist/meeting/locusMediaRequest.js +0 -291
- package/dist/meeting/locusMediaRequest.js.map +0 -1
- package/dist/meeting/request.type.d.ts +0 -11
- package/dist/meeting/request.type.js +0 -7
- package/dist/meeting/request.type.js.map +0 -1
- package/dist/meeting/voicea-meeting.d.ts +0 -20
- package/dist/meeting/voicea-meeting.js +0 -201
- package/dist/meeting/voicea-meeting.js.map +0 -1
- package/dist/meetings/meetings.types.d.ts +0 -4
- package/dist/meetings/meetings.types.js +0 -7
- package/dist/meetings/meetings.types.js.map +0 -1
- package/dist/member/types.d.ts +0 -32
- package/dist/member/types.js +0 -23
- package/dist/member/types.js.map +0 -1
- package/dist/multistream/mediaRequestManager.d.ts +0 -118
- package/dist/multistream/mediaRequestManager.js +0 -344
- package/dist/multistream/mediaRequestManager.js.map +0 -1
- package/dist/multistream/receiveSlot.d.ts +0 -68
- package/dist/multistream/receiveSlot.js +0 -200
- package/dist/multistream/receiveSlot.js.map +0 -1
- package/dist/multistream/receiveSlotManager.d.ts +0 -56
- package/dist/multistream/receiveSlotManager.js +0 -174
- package/dist/multistream/receiveSlotManager.js.map +0 -1
- package/dist/multistream/remoteMedia.d.ts +0 -72
- package/dist/multistream/remoteMedia.js +0 -268
- package/dist/multistream/remoteMedia.js.map +0 -1
- package/dist/multistream/remoteMediaGroup.d.ts +0 -47
- package/dist/multistream/remoteMediaGroup.js +0 -267
- package/dist/multistream/remoteMediaGroup.js.map +0 -1
- package/dist/multistream/remoteMediaManager.d.ts +0 -285
- package/dist/multistream/remoteMediaManager.js +0 -1211
- package/dist/multistream/remoteMediaManager.js.map +0 -1
- package/dist/multistream/sendSlotManager.d.ts +0 -61
- package/dist/multistream/sendSlotManager.js +0 -236
- package/dist/multistream/sendSlotManager.js.map +0 -1
- package/dist/reachability/clusterReachability.d.ts +0 -109
- package/dist/reachability/clusterReachability.js +0 -357
- package/dist/reachability/clusterReachability.js.map +0 -1
- package/dist/reachability/util.d.ts +0 -8
- package/dist/reachability/util.js +0 -29
- package/dist/reachability/util.js.map +0 -1
- package/dist/reactions/constants.d.ts +0 -3
- package/dist/reactions/constants.js +0 -12
- package/dist/reactions/constants.js.map +0 -1
- package/dist/rtcMetrics/constants.d.ts +0 -4
- package/dist/rtcMetrics/constants.js +0 -11
- package/dist/rtcMetrics/constants.js.map +0 -1
- package/dist/rtcMetrics/index.d.ts +0 -54
- package/dist/rtcMetrics/index.js +0 -140
- package/dist/rtcMetrics/index.js.map +0 -1
- package/dist/webinar/collection.d.ts +0 -16
- package/dist/webinar/collection.js +0 -43
- package/dist/webinar/collection.js.map +0 -1
- package/dist/webinar/index.d.ts +0 -5
- package/dist/webinar/index.js +0 -68
- package/dist/webinar/index.js.map +0 -1
- package/src/annotation/annotation.types.ts +0 -50
- package/src/annotation/constants.ts +0 -36
- package/src/annotation/index.ts +0 -328
- package/src/breakouts/README.md +0 -220
- package/src/breakouts/breakout.ts +0 -188
- package/src/breakouts/collection.ts +0 -19
- package/src/breakouts/edit-lock-error.ts +0 -25
- package/src/breakouts/events.ts +0 -56
- package/src/breakouts/index.ts +0 -925
- package/src/breakouts/request.ts +0 -55
- package/src/breakouts/utils.ts +0 -57
- package/src/common/errors/no-meeting-info.ts +0 -24
- package/src/controls-options-manager/types.ts +0 -59
- package/src/index.ts +0 -44
- package/src/interceptors/index.ts +0 -3
- package/src/interceptors/locusRetry.ts +0 -67
- package/src/interpretation/README.md +0 -60
- package/src/interpretation/collection.ts +0 -19
- package/src/interpretation/index.ts +0 -332
- package/src/interpretation/siLanguage.ts +0 -18
- package/src/meeting/locusMediaRequest.ts +0 -313
- package/src/meeting/request.type.ts +0 -13
- package/src/meeting/voicea-meeting.ts +0 -161
- package/src/meetings/meetings.types.ts +0 -12
- package/src/member/types.ts +0 -38
- package/src/multistream/mediaRequestManager.ts +0 -440
- package/src/multistream/receiveSlot.ts +0 -184
- package/src/multistream/receiveSlotManager.ts +0 -166
- package/src/multistream/remoteMedia.ts +0 -254
- package/src/multistream/remoteMediaGroup.ts +0 -284
- package/src/multistream/remoteMediaManager.ts +0 -1145
- package/src/multistream/sendSlotManager.ts +0 -170
- package/src/reachability/clusterReachability.ts +0 -320
- package/src/reachability/util.ts +0 -24
- package/src/reactions/constants.ts +0 -4
- package/src/rtcMetrics/constants.ts +0 -3
- package/src/rtcMetrics/index.ts +0 -124
- package/src/webinar/collection.ts +0 -31
- package/src/webinar/index.ts +0 -62
- package/test/integration/spec/converged-space-meetings.js +0 -233
- package/test/unit/spec/annotation/index.ts +0 -418
- package/test/unit/spec/breakouts/breakout.ts +0 -237
- package/test/unit/spec/breakouts/collection.ts +0 -15
- package/test/unit/spec/breakouts/edit-lock-error.ts +0 -30
- package/test/unit/spec/breakouts/events.ts +0 -89
- package/test/unit/spec/breakouts/index.ts +0 -1790
- package/test/unit/spec/breakouts/request.ts +0 -104
- package/test/unit/spec/breakouts/utils.js +0 -72
- package/test/unit/spec/interceptors/locusRetry.ts +0 -131
- package/test/unit/spec/interpretation/collection.ts +0 -15
- package/test/unit/spec/interpretation/index.ts +0 -589
- package/test/unit/spec/interpretation/siLanguage.ts +0 -28
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +0 -32
- package/test/unit/spec/media/index.ts +0 -290
- package/test/unit/spec/meeting/locusMediaRequest.ts +0 -442
- package/test/unit/spec/meeting-info/index.js +0 -300
- package/test/unit/spec/multistream/mediaRequestManager.ts +0 -1418
- package/test/unit/spec/multistream/receiveSlot.ts +0 -163
- package/test/unit/spec/multistream/receiveSlotManager.ts +0 -203
- package/test/unit/spec/multistream/remoteMedia.ts +0 -255
- package/test/unit/spec/multistream/remoteMediaGroup.ts +0 -662
- package/test/unit/spec/multistream/remoteMediaManager.ts +0 -1924
- package/test/unit/spec/multistream/sendSlotManager.ts +0 -242
- package/test/unit/spec/reachability/clusterReachability.ts +0 -279
- package/test/unit/spec/reachability/request.js +0 -68
- package/test/unit/spec/reachability/util.ts +0 -40
- package/test/unit/spec/roap/request.ts +0 -255
- package/test/unit/spec/rtcMetrics/index.ts +0 -93
- package/test/unit/spec/webinar/collection.ts +0 -13
- package/test/unit/spec/webinar/index.ts +0 -60
- package/test/utils/constants.js +0 -9
- package/test/utils/integrationTestUtils.js +0 -46
- /package/dist/common/errors/{reclaim-host-role-errors.d.ts → reclaim-host-role-error.d.ts} +0 -0
- /package/src/common/errors/{reclaim-host-role-errors.ts → reclaim-host-role-error.ts} +0 -0
package/src/locus-info/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {isEqual
|
|
1
|
+
import {isEqual} from 'lodash';
|
|
2
2
|
|
|
3
3
|
import LoggerProxy from '../common/logs/logger-proxy';
|
|
4
4
|
import EventsScope from '../common/events/events-scope';
|
|
@@ -17,6 +17,8 @@ import {
|
|
|
17
17
|
CALL_REMOVED_REASON,
|
|
18
18
|
RECORDING_STATE,
|
|
19
19
|
} from '../constants';
|
|
20
|
+
import Metrics from '../metrics';
|
|
21
|
+
import {eventType} from '../metrics/config';
|
|
20
22
|
import InfoUtils from './infoUtils';
|
|
21
23
|
import FullState from './fullState';
|
|
22
24
|
import SelfUtils from './selfUtils';
|
|
@@ -25,8 +27,6 @@ import ControlsUtils from './controlsUtils';
|
|
|
25
27
|
import EmbeddedAppsUtils from './embeddedAppsUtils';
|
|
26
28
|
import MediaSharesUtils from './mediaSharesUtils';
|
|
27
29
|
import LocusDeltaParser from './parser';
|
|
28
|
-
import Metrics from '../metrics';
|
|
29
|
-
import BEHAVIORAL_METRICS from '../metrics/constants';
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
32
|
* @description LocusInfo extends ChildEmitter to convert locusInfo info a private emitter to parent object
|
|
@@ -59,19 +59,11 @@ export default class LocusInfo extends EventsScope {
|
|
|
59
59
|
fullState: any;
|
|
60
60
|
host: any;
|
|
61
61
|
info: any;
|
|
62
|
-
roles: any;
|
|
63
62
|
mediaShares: any;
|
|
64
63
|
replace: any;
|
|
65
64
|
url: any;
|
|
66
65
|
services: any;
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Constructor
|
|
70
|
-
* @param {function} updateMeeting callback to update the meeting object from an object
|
|
71
|
-
* @param {object} webex
|
|
72
|
-
* @param {string} meetingId
|
|
73
|
-
* @returns {undefined}
|
|
74
|
-
*/
|
|
66
|
+
|
|
75
67
|
constructor(updateMeeting, webex, meetingId) {
|
|
76
68
|
super();
|
|
77
69
|
this.parsedLocus = {
|
|
@@ -85,82 +77,6 @@ export default class LocusInfo extends EventsScope {
|
|
|
85
77
|
this.locusParser = new LocusDeltaParser();
|
|
86
78
|
}
|
|
87
79
|
|
|
88
|
-
/**
|
|
89
|
-
* Does a Locus sync. It tries to get the latest delta DTO or if it can't, it falls back to getting the full Locus DTO.
|
|
90
|
-
*
|
|
91
|
-
* @param {Meeting} meeting
|
|
92
|
-
* @returns {undefined}
|
|
93
|
-
*/
|
|
94
|
-
private doLocusSync(meeting: any) {
|
|
95
|
-
let isDelta;
|
|
96
|
-
let url;
|
|
97
|
-
|
|
98
|
-
if (this.locusParser.workingCopy.syncUrl) {
|
|
99
|
-
url = this.locusParser.workingCopy.syncUrl;
|
|
100
|
-
isDelta = true;
|
|
101
|
-
} else {
|
|
102
|
-
url = meeting.locusUrl;
|
|
103
|
-
isDelta = false;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
LoggerProxy.logger.info(
|
|
107
|
-
`Locus-info:index#doLocusSync --> doing Locus sync (getting ${
|
|
108
|
-
isDelta ? 'delta' : 'full'
|
|
109
|
-
} DTO)`
|
|
110
|
-
);
|
|
111
|
-
|
|
112
|
-
// return value ignored on purpose
|
|
113
|
-
meeting.meetingRequest
|
|
114
|
-
.getLocusDTO({url})
|
|
115
|
-
.catch((e) => {
|
|
116
|
-
if (isDelta) {
|
|
117
|
-
LoggerProxy.logger.info(
|
|
118
|
-
'Locus-info:index#doLocusSync --> delta sync failed, falling back to full sync'
|
|
119
|
-
);
|
|
120
|
-
|
|
121
|
-
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.LOCUS_DELTA_SYNC_FAILED, {
|
|
122
|
-
correlationId: meeting.correlationId,
|
|
123
|
-
url,
|
|
124
|
-
reason: e.message,
|
|
125
|
-
errorName: e.name,
|
|
126
|
-
stack: e.stack,
|
|
127
|
-
code: e.code,
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
isDelta = false;
|
|
131
|
-
|
|
132
|
-
return meeting.meetingRequest.getLocusDTO({url: meeting.locusUrl}).catch((err) => {
|
|
133
|
-
LoggerProxy.logger.info(
|
|
134
|
-
'Locus-info:index#doLocusSync --> fallback full sync failed, destroying the meeting'
|
|
135
|
-
);
|
|
136
|
-
this.webex.meetings.destroy(meeting, MEETING_REMOVED_REASON.LOCUS_DTO_SYNC_FAILED);
|
|
137
|
-
throw err;
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
LoggerProxy.logger.info(
|
|
141
|
-
'Locus-info:index#doLocusSync --> fallback full sync failed, destroying the meeting'
|
|
142
|
-
);
|
|
143
|
-
this.webex.meetings.destroy(meeting, MEETING_REMOVED_REASON.LOCUS_DTO_SYNC_FAILED);
|
|
144
|
-
throw e;
|
|
145
|
-
})
|
|
146
|
-
.then((res) => {
|
|
147
|
-
if (isDelta) {
|
|
148
|
-
if (!isEmpty(res.body)) {
|
|
149
|
-
meeting.locusInfo.handleLocusDelta(res.body, meeting);
|
|
150
|
-
} else {
|
|
151
|
-
LoggerProxy.logger.info(
|
|
152
|
-
'Locus-info:index#doLocusSync --> received empty body from syncUrl, so we already have latest Locus DTO'
|
|
153
|
-
);
|
|
154
|
-
}
|
|
155
|
-
} else {
|
|
156
|
-
meeting.locusInfo.onFullLocus(res.body);
|
|
157
|
-
}
|
|
158
|
-
// Notify parser to resume processing delta events.
|
|
159
|
-
// Any deltas in the queue that have now been superseded by this sync will simply be ignored
|
|
160
|
-
this.locusParser.resume();
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
|
|
164
80
|
/**
|
|
165
81
|
* Apply locus delta data to meeting
|
|
166
82
|
* @param {string} action Locus delta action
|
|
@@ -169,19 +85,28 @@ export default class LocusInfo extends EventsScope {
|
|
|
169
85
|
* @returns {undefined}
|
|
170
86
|
*/
|
|
171
87
|
applyLocusDeltaData(action: string, locus: any, meeting: any) {
|
|
172
|
-
const {DESYNC, USE_CURRENT, USE_INCOMING
|
|
88
|
+
const {DESYNC, USE_CURRENT, USE_INCOMING} = LocusDeltaParser.loci;
|
|
173
89
|
|
|
174
90
|
switch (action) {
|
|
175
91
|
case USE_INCOMING:
|
|
176
92
|
meeting.locusInfo.onDeltaLocus(locus);
|
|
177
93
|
break;
|
|
178
94
|
case USE_CURRENT:
|
|
179
|
-
|
|
180
|
-
|
|
95
|
+
meeting.locusDesync = false;
|
|
96
|
+
meeting.needToGetFullLocus = false;
|
|
181
97
|
break;
|
|
182
98
|
case DESYNC:
|
|
183
|
-
|
|
184
|
-
|
|
99
|
+
meeting.meetingRequest
|
|
100
|
+
.getFullLocus({
|
|
101
|
+
desync: true,
|
|
102
|
+
locusUrl: meeting.locusUrl,
|
|
103
|
+
})
|
|
104
|
+
.then((res) => {
|
|
105
|
+
meeting.locusInfo.onFullLocus(res.body);
|
|
106
|
+
// Notify parser to resume processing delta events
|
|
107
|
+
// now that we have full locus from DESYNC.
|
|
108
|
+
this.locusParser.resume();
|
|
109
|
+
});
|
|
185
110
|
break;
|
|
186
111
|
default:
|
|
187
112
|
LoggerProxy.logger.info(
|
|
@@ -247,13 +172,12 @@ export default class LocusInfo extends EventsScope {
|
|
|
247
172
|
*/
|
|
248
173
|
this.deltaParticipants = [];
|
|
249
174
|
|
|
250
|
-
this.updateLocusCache(locus);
|
|
251
175
|
// above section only updates the locusInfo object
|
|
252
176
|
// The below section makes sure it updates the locusInfo as well as updates the meeting object
|
|
253
177
|
this.updateParticipants(locus.participants);
|
|
254
178
|
// For 1:1 space meeting the conversation Url does not exist in locus.conversation
|
|
255
179
|
this.updateConversationUrl(locus.conversationUrl, locus.info);
|
|
256
|
-
this.updateControls(locus.controls
|
|
180
|
+
this.updateControls(locus.controls);
|
|
257
181
|
this.updateLocusUrl(locus.url);
|
|
258
182
|
this.updateFullState(locus.fullState);
|
|
259
183
|
this.updateMeetingInfo(locus.info);
|
|
@@ -271,7 +195,6 @@ export default class LocusInfo extends EventsScope {
|
|
|
271
195
|
* @memberof LocusInfo
|
|
272
196
|
*/
|
|
273
197
|
initialSetup(locus: object) {
|
|
274
|
-
this.updateLocusCache(locus);
|
|
275
198
|
this.onFullLocus(locus);
|
|
276
199
|
|
|
277
200
|
// Change it to true after it receives it first locus object
|
|
@@ -287,7 +210,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
287
210
|
parse(meeting: any, data: any) {
|
|
288
211
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
289
212
|
const {eventType} = data;
|
|
290
|
-
|
|
213
|
+
|
|
291
214
|
LoggerProxy.logger.info(`Locus-info:index#parse --> received locus data: ${eventType}`);
|
|
292
215
|
|
|
293
216
|
switch (eventType) {
|
|
@@ -305,16 +228,16 @@ export default class LocusInfo extends EventsScope {
|
|
|
305
228
|
case LOCUSEVENT.PARTICIPANT_DECLINED:
|
|
306
229
|
case LOCUSEVENT.FLOOR_GRANTED:
|
|
307
230
|
case LOCUSEVENT.FLOOR_RELEASED:
|
|
308
|
-
this.onFullLocus(locus, eventType);
|
|
231
|
+
this.onFullLocus(data.locus, eventType);
|
|
309
232
|
break;
|
|
310
233
|
case LOCUSEVENT.DIFFERENCE:
|
|
311
|
-
this.handleLocusDelta(locus, meeting);
|
|
234
|
+
this.handleLocusDelta(data.locus, meeting);
|
|
312
235
|
break;
|
|
313
236
|
|
|
314
237
|
default:
|
|
315
238
|
// Why will there be a event with no eventType ????
|
|
316
239
|
// we may not need this, we can get full locus
|
|
317
|
-
this.handleLocusDelta(locus, meeting);
|
|
240
|
+
this.handleLocusDelta(data.locus, meeting);
|
|
318
241
|
}
|
|
319
242
|
}
|
|
320
243
|
|
|
@@ -336,27 +259,18 @@ export default class LocusInfo extends EventsScope {
|
|
|
336
259
|
* @returns {object} null
|
|
337
260
|
* @memberof LocusInfo
|
|
338
261
|
*/
|
|
262
|
+
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
339
263
|
onFullLocus(locus: any, eventType?: string) {
|
|
340
264
|
if (!locus) {
|
|
341
265
|
LoggerProxy.logger.error(
|
|
342
266
|
'Locus-info:index#onFullLocus --> object passed as argument was invalid, continuing.'
|
|
343
267
|
);
|
|
344
268
|
}
|
|
345
|
-
|
|
346
|
-
if (!this.locusParser.isNewFullLocus(locus)) {
|
|
347
|
-
LoggerProxy.logger.info(
|
|
348
|
-
`Locus-info:index#onFullLocus --> ignoring old full locus DTO, eventType=${eventType}`
|
|
349
|
-
);
|
|
350
|
-
|
|
351
|
-
return;
|
|
352
|
-
}
|
|
353
|
-
|
|
354
269
|
this.updateParticipantDeltas(locus.participants);
|
|
355
270
|
this.scheduledMeeting = locus.meeting || null;
|
|
356
271
|
this.participants = locus.participants;
|
|
357
|
-
const isReplaceMembers = ControlsUtils.isNeedReplaceMembers(this.controls, locus.controls);
|
|
358
272
|
this.updateLocusInfo(locus);
|
|
359
|
-
this.updateParticipants(locus.participants
|
|
273
|
+
this.updateParticipants(locus.participants);
|
|
360
274
|
this.isMeetingActive();
|
|
361
275
|
this.handleOneOnOneEvent(eventType);
|
|
362
276
|
this.updateEmbeddedApps(locus.embeddedApps);
|
|
@@ -415,9 +329,8 @@ export default class LocusInfo extends EventsScope {
|
|
|
415
329
|
* @memberof LocusInfo
|
|
416
330
|
*/
|
|
417
331
|
onDeltaLocus(locus: any) {
|
|
418
|
-
const isReplaceMembers = ControlsUtils.isNeedReplaceMembers(this.controls, locus.controls);
|
|
419
332
|
this.updateLocusInfo(locus);
|
|
420
|
-
this.updateParticipants(locus.participants
|
|
333
|
+
this.updateParticipants(locus.participants);
|
|
421
334
|
this.isMeetingActive();
|
|
422
335
|
}
|
|
423
336
|
|
|
@@ -426,15 +339,8 @@ export default class LocusInfo extends EventsScope {
|
|
|
426
339
|
* @returns {undefined}
|
|
427
340
|
* @memberof LocusInfo
|
|
428
341
|
*/
|
|
429
|
-
updateLocusInfo(locus) {
|
|
430
|
-
|
|
431
|
-
// When moved to a breakout session locus sends a message for the previous locus
|
|
432
|
-
// indicating that we have been moved. It isn't helpful to continue parsing this
|
|
433
|
-
// as it gets interpreted as if we have left the call
|
|
434
|
-
return;
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
this.updateControls(locus.controls, locus.self);
|
|
342
|
+
updateLocusInfo(locus: any) {
|
|
343
|
+
this.updateControls(locus.controls);
|
|
438
344
|
this.updateConversationUrl(locus.conversationUrl, locus.info);
|
|
439
345
|
this.updateCreated(locus.created);
|
|
440
346
|
this.updateFullState(locus.fullState);
|
|
@@ -505,15 +411,10 @@ export default class LocusInfo extends EventsScope {
|
|
|
505
411
|
LoggerProxy.logger.warn(
|
|
506
412
|
'Locus-info:index#isMeetingActive --> Call Ended, locus state is inactive.'
|
|
507
413
|
);
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
name: 'client.call.remote-ended',
|
|
512
|
-
options: {
|
|
513
|
-
meetingId: this.meetingId,
|
|
514
|
-
},
|
|
414
|
+
Metrics.postEvent({
|
|
415
|
+
event: eventType.REMOTE_ENDED,
|
|
416
|
+
meetingId: this.meetingId,
|
|
515
417
|
});
|
|
516
|
-
|
|
517
418
|
this.emitScoped(
|
|
518
419
|
{
|
|
519
420
|
file: 'locus-info',
|
|
@@ -532,12 +433,9 @@ export default class LocusInfo extends EventsScope {
|
|
|
532
433
|
this.parsedLocus.self.state === MEETING_STATE.STATES.NOTIFIED ||
|
|
533
434
|
this.parsedLocus.self.state === MEETING_STATE.STATES.JOINED)
|
|
534
435
|
) {
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
options: {
|
|
539
|
-
meetingId: this.meetingId,
|
|
540
|
-
},
|
|
436
|
+
Metrics.postEvent({
|
|
437
|
+
event: eventType.REMOTE_ENDED,
|
|
438
|
+
meetingId: this.meetingId,
|
|
541
439
|
});
|
|
542
440
|
this.emitScoped(
|
|
543
441
|
{
|
|
@@ -559,14 +457,10 @@ export default class LocusInfo extends EventsScope {
|
|
|
559
457
|
partner.state === MEETING_STATE.STATES.NOTIFIED ||
|
|
560
458
|
partner.state === MEETING_STATE.STATES.IDLE) // Happens when user just joins and adds no Media
|
|
561
459
|
) {
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
options: {
|
|
566
|
-
meetingId: this.meetingId,
|
|
567
|
-
},
|
|
460
|
+
Metrics.postEvent({
|
|
461
|
+
event: eventType.REMOTE_ENDED,
|
|
462
|
+
meetingId: this.meetingId,
|
|
568
463
|
});
|
|
569
|
-
|
|
570
464
|
this.emitScoped(
|
|
571
465
|
{
|
|
572
466
|
file: 'locus-info',
|
|
@@ -589,13 +483,9 @@ export default class LocusInfo extends EventsScope {
|
|
|
589
483
|
LoggerProxy.logger.warn(
|
|
590
484
|
'Locus-info:index#isMeetingActive --> Meeting is ending due to inactive or terminating'
|
|
591
485
|
);
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
name: 'client.call.remote-ended',
|
|
596
|
-
options: {
|
|
597
|
-
meetingId: this.meetingId,
|
|
598
|
-
},
|
|
486
|
+
Metrics.postEvent({
|
|
487
|
+
event: eventType.REMOTE_ENDED,
|
|
488
|
+
meetingId: this.meetingId,
|
|
599
489
|
});
|
|
600
490
|
this.emitScoped(
|
|
601
491
|
{
|
|
@@ -610,13 +500,9 @@ export default class LocusInfo extends EventsScope {
|
|
|
610
500
|
);
|
|
611
501
|
} else if (this.fullState && this.fullState.removed) {
|
|
612
502
|
// user has been dropped from a meeting
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
name: 'client.call.remote-ended',
|
|
617
|
-
options: {
|
|
618
|
-
meetingId: this.meetingId,
|
|
619
|
-
},
|
|
503
|
+
Metrics.postEvent({
|
|
504
|
+
event: eventType.REMOTE_ENDED,
|
|
505
|
+
meetingId: this.meetingId,
|
|
620
506
|
});
|
|
621
507
|
this.emitScoped(
|
|
622
508
|
{
|
|
@@ -753,13 +639,13 @@ export default class LocusInfo extends EventsScope {
|
|
|
753
639
|
}
|
|
754
640
|
|
|
755
641
|
/**
|
|
756
|
-
*
|
|
642
|
+
*
|
|
757
643
|
* @param {Object} participants new participants object
|
|
758
|
-
* @param {
|
|
644
|
+
* @param {boolen} deltaParticpantFlag delta event
|
|
759
645
|
* @returns {Array} updatedParticipants
|
|
760
646
|
* @memberof LocusInfo
|
|
761
647
|
*/
|
|
762
|
-
updateParticipants(participants: object
|
|
648
|
+
updateParticipants(participants: object) {
|
|
763
649
|
this.emitScoped(
|
|
764
650
|
{
|
|
765
651
|
file: 'locus-info',
|
|
@@ -772,18 +658,16 @@ export default class LocusInfo extends EventsScope {
|
|
|
772
658
|
selfIdentity: this.parsedLocus.self && this.parsedLocus.self.selfIdentity,
|
|
773
659
|
selfId: this.parsedLocus.self && this.parsedLocus.self.selfId,
|
|
774
660
|
hostId: this.parsedLocus.host && this.parsedLocus.host.hostId,
|
|
775
|
-
isReplace,
|
|
776
661
|
}
|
|
777
662
|
);
|
|
778
663
|
}
|
|
779
664
|
|
|
780
665
|
/**
|
|
781
666
|
* @param {Object} controls
|
|
782
|
-
* @param {Object} self
|
|
783
667
|
* @returns {undefined}
|
|
784
668
|
* @memberof LocusInfo
|
|
785
669
|
*/
|
|
786
|
-
updateControls(controls: object
|
|
670
|
+
updateControls(controls: object) {
|
|
787
671
|
if (controls && !isEqual(this.controls, controls)) {
|
|
788
672
|
this.parsedLocus.controls = ControlsUtils.parse(controls);
|
|
789
673
|
const {
|
|
@@ -793,77 +677,10 @@ export default class LocusInfo extends EventsScope {
|
|
|
793
677
|
hasMeetingContainerChanged,
|
|
794
678
|
hasTranscribeChanged,
|
|
795
679
|
hasEntryExitToneChanged,
|
|
796
|
-
hasBreakoutChanged,
|
|
797
|
-
hasVideoEnabledChanged,
|
|
798
|
-
hasMuteOnEntryChanged,
|
|
799
|
-
hasShareControlChanged,
|
|
800
|
-
hasDisallowUnmuteChanged,
|
|
801
|
-
hasReactionsChanged,
|
|
802
|
-
hasReactionDisplayNamesChanged,
|
|
803
|
-
hasViewTheParticipantListChanged,
|
|
804
|
-
hasRaiseHandChanged,
|
|
805
|
-
hasVideoChanged,
|
|
806
|
-
hasInterpretationChanged,
|
|
807
680
|
},
|
|
808
681
|
current,
|
|
809
682
|
} = ControlsUtils.getControls(this.controls, controls);
|
|
810
683
|
|
|
811
|
-
if (hasMuteOnEntryChanged) {
|
|
812
|
-
this.emitScoped(
|
|
813
|
-
{file: 'locus-info', function: 'updateControls'},
|
|
814
|
-
LOCUSINFO.EVENTS.CONTROLS_MUTE_ON_ENTRY_CHANGED,
|
|
815
|
-
{state: current.muteOnEntry}
|
|
816
|
-
);
|
|
817
|
-
}
|
|
818
|
-
|
|
819
|
-
if (hasShareControlChanged) {
|
|
820
|
-
this.emitScoped(
|
|
821
|
-
{file: 'locus-info', function: 'updateControls'},
|
|
822
|
-
LOCUSINFO.EVENTS.CONTROLS_SHARE_CONTROL_CHANGED,
|
|
823
|
-
{state: current.shareControl}
|
|
824
|
-
);
|
|
825
|
-
}
|
|
826
|
-
|
|
827
|
-
if (hasDisallowUnmuteChanged) {
|
|
828
|
-
this.emitScoped(
|
|
829
|
-
{file: 'locus-info', function: 'updateControls'},
|
|
830
|
-
LOCUSINFO.EVENTS.CONTROLS_DISALLOW_UNMUTE_CHANGED,
|
|
831
|
-
{state: current.disallowUnmute}
|
|
832
|
-
);
|
|
833
|
-
}
|
|
834
|
-
|
|
835
|
-
if (hasReactionsChanged || hasReactionDisplayNamesChanged) {
|
|
836
|
-
this.emitScoped(
|
|
837
|
-
{file: 'locus-info', function: 'updateControls'},
|
|
838
|
-
LOCUSINFO.EVENTS.CONTROLS_REACTIONS_CHANGED,
|
|
839
|
-
{state: current.reactions}
|
|
840
|
-
);
|
|
841
|
-
}
|
|
842
|
-
|
|
843
|
-
if (hasViewTheParticipantListChanged) {
|
|
844
|
-
this.emitScoped(
|
|
845
|
-
{file: 'locus-info', function: 'updateControls'},
|
|
846
|
-
LOCUSINFO.EVENTS.CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED,
|
|
847
|
-
{state: current.viewTheParticipantList}
|
|
848
|
-
);
|
|
849
|
-
}
|
|
850
|
-
|
|
851
|
-
if (hasRaiseHandChanged) {
|
|
852
|
-
this.emitScoped(
|
|
853
|
-
{file: 'locus-info', function: 'updateControls'},
|
|
854
|
-
LOCUSINFO.EVENTS.CONTROLS_RAISE_HAND_CHANGED,
|
|
855
|
-
{state: current.raiseHand}
|
|
856
|
-
);
|
|
857
|
-
}
|
|
858
|
-
|
|
859
|
-
if (hasVideoChanged) {
|
|
860
|
-
this.emitScoped(
|
|
861
|
-
{file: 'locus-info', function: 'updateControls'},
|
|
862
|
-
LOCUSINFO.EVENTS.CONTROLS_VIDEO_CHANGED,
|
|
863
|
-
{state: current.video}
|
|
864
|
-
);
|
|
865
|
-
}
|
|
866
|
-
|
|
867
684
|
if (hasRecordingChanged || hasRecordingPausedChanged) {
|
|
868
685
|
let state = null;
|
|
869
686
|
|
|
@@ -923,43 +740,9 @@ export default class LocusInfo extends EventsScope {
|
|
|
923
740
|
);
|
|
924
741
|
}
|
|
925
742
|
|
|
926
|
-
if (hasBreakoutChanged) {
|
|
927
|
-
const {breakout} = current;
|
|
928
|
-
breakout.breakoutMoveId = SelfUtils.getReplacedBreakoutMoveId(
|
|
929
|
-
self,
|
|
930
|
-
this.webex.internal.device.url
|
|
931
|
-
);
|
|
932
|
-
this.emitScoped(
|
|
933
|
-
{
|
|
934
|
-
file: 'locus-info',
|
|
935
|
-
function: 'updateControls',
|
|
936
|
-
},
|
|
937
|
-
LOCUSINFO.EVENTS.CONTROLS_MEETING_BREAKOUT_UPDATED,
|
|
938
|
-
{
|
|
939
|
-
breakout,
|
|
940
|
-
}
|
|
941
|
-
);
|
|
942
|
-
}
|
|
943
|
-
|
|
944
|
-
if (hasInterpretationChanged) {
|
|
945
|
-
const {interpretation} = current;
|
|
946
|
-
this.emitScoped(
|
|
947
|
-
{
|
|
948
|
-
file: 'locus-info',
|
|
949
|
-
function: 'updateControls',
|
|
950
|
-
},
|
|
951
|
-
LOCUSINFO.EVENTS.CONTROLS_MEETING_INTERPRETATION_UPDATED,
|
|
952
|
-
{
|
|
953
|
-
interpretation,
|
|
954
|
-
}
|
|
955
|
-
);
|
|
956
|
-
}
|
|
957
|
-
|
|
958
743
|
if (hasEntryExitToneChanged) {
|
|
959
744
|
const {entryExitTone} = current;
|
|
960
745
|
|
|
961
|
-
this.updateMeeting({entryExitTone});
|
|
962
|
-
|
|
963
746
|
this.emitScoped(
|
|
964
747
|
{
|
|
965
748
|
file: 'locus-info',
|
|
@@ -970,26 +753,8 @@ export default class LocusInfo extends EventsScope {
|
|
|
970
753
|
entryExitTone,
|
|
971
754
|
}
|
|
972
755
|
);
|
|
973
|
-
}
|
|
974
|
-
|
|
975
|
-
// videoEnabled is handled differently than other controls,
|
|
976
|
-
// to fit with audio mute status logic
|
|
977
|
-
if (hasVideoEnabledChanged) {
|
|
978
|
-
const {videoEnabled} = current;
|
|
979
756
|
|
|
980
|
-
this.updateMeeting({
|
|
981
|
-
|
|
982
|
-
this.emitScoped(
|
|
983
|
-
{
|
|
984
|
-
file: 'locus-info',
|
|
985
|
-
function: 'updateControls',
|
|
986
|
-
},
|
|
987
|
-
LOCUSINFO.EVENTS.SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED,
|
|
988
|
-
{
|
|
989
|
-
// muted: not part of locus.controls
|
|
990
|
-
unmuteAllowed: videoEnabled,
|
|
991
|
-
}
|
|
992
|
-
);
|
|
757
|
+
this.updateMeeting({entryExitTone});
|
|
993
758
|
}
|
|
994
759
|
|
|
995
760
|
this.controls = controls;
|
|
@@ -1130,14 +895,20 @@ export default class LocusInfo extends EventsScope {
|
|
|
1130
895
|
* @memberof LocusInfo
|
|
1131
896
|
*/
|
|
1132
897
|
updateMeetingInfo(info: object, self?: object) {
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
(info && !isEqual(this.info, info)) ||
|
|
1136
|
-
(roles.length && !isEqual(this.roles, roles) && info)
|
|
1137
|
-
) {
|
|
898
|
+
if (info && !isEqual(this.info, info)) {
|
|
899
|
+
const roles = self ? SelfUtils.getRoles(self) : this.parsedLocus.self?.roles || [];
|
|
1138
900
|
const isJoined = SelfUtils.isJoined(self || this.parsedLocus.self);
|
|
1139
901
|
const parsedInfo = InfoUtils.getInfos(this.parsedLocus.info, info, roles, isJoined);
|
|
1140
902
|
|
|
903
|
+
this.emitScoped(
|
|
904
|
+
{
|
|
905
|
+
file: 'locus-info',
|
|
906
|
+
function: 'updateMeetingInfo',
|
|
907
|
+
},
|
|
908
|
+
LOCUSINFO.EVENTS.MEETING_INFO_UPDATED,
|
|
909
|
+
{info: parsedInfo.current, self}
|
|
910
|
+
);
|
|
911
|
+
|
|
1141
912
|
if (parsedInfo.updates.isLocked) {
|
|
1142
913
|
this.emitScoped(
|
|
1143
914
|
{
|
|
@@ -1163,16 +934,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1163
934
|
this.parsedLocus.info = parsedInfo.current;
|
|
1164
935
|
// Parses the info and adds necessary values
|
|
1165
936
|
this.updateMeeting(parsedInfo.current);
|
|
1166
|
-
|
|
1167
|
-
this.emitScoped(
|
|
1168
|
-
{
|
|
1169
|
-
file: 'locus-info',
|
|
1170
|
-
function: 'updateMeetingInfo',
|
|
1171
|
-
},
|
|
1172
|
-
LOCUSINFO.EVENTS.MEETING_INFO_UPDATED
|
|
1173
|
-
);
|
|
1174
937
|
}
|
|
1175
|
-
this.roles = roles;
|
|
1176
938
|
}
|
|
1177
939
|
|
|
1178
940
|
/**
|
|
@@ -1213,8 +975,6 @@ export default class LocusInfo extends EventsScope {
|
|
|
1213
975
|
const parsedMediaShares = MediaSharesUtils.getMediaShares(this.mediaShares, mediaShares);
|
|
1214
976
|
|
|
1215
977
|
this.updateMeeting(parsedMediaShares.current);
|
|
1216
|
-
this.parsedLocus.mediaShares = parsedMediaShares.current;
|
|
1217
|
-
this.mediaShares = mediaShares;
|
|
1218
978
|
this.emitScoped(
|
|
1219
979
|
{
|
|
1220
980
|
file: 'locus-info',
|
|
@@ -1226,6 +986,8 @@ export default class LocusInfo extends EventsScope {
|
|
|
1226
986
|
previous: parsedMediaShares.previous,
|
|
1227
987
|
}
|
|
1228
988
|
);
|
|
989
|
+
this.parsedLocus.mediaShares = parsedMediaShares.current;
|
|
990
|
+
this.mediaShares = mediaShares;
|
|
1229
991
|
}
|
|
1230
992
|
}
|
|
1231
993
|
|
|
@@ -1303,31 +1065,6 @@ export default class LocusInfo extends EventsScope {
|
|
|
1303
1065
|
);
|
|
1304
1066
|
}
|
|
1305
1067
|
|
|
1306
|
-
if (parsedSelves.updates.breakoutsChanged) {
|
|
1307
|
-
this.emitScoped(
|
|
1308
|
-
{
|
|
1309
|
-
file: 'locus-info',
|
|
1310
|
-
function: 'updateSelf',
|
|
1311
|
-
},
|
|
1312
|
-
LOCUSINFO.EVENTS.SELF_MEETING_BREAKOUTS_CHANGED,
|
|
1313
|
-
{breakoutSessions: parsedSelves.current.breakoutSessions}
|
|
1314
|
-
);
|
|
1315
|
-
}
|
|
1316
|
-
|
|
1317
|
-
if (parsedSelves.updates.interpretationChanged) {
|
|
1318
|
-
this.emitScoped(
|
|
1319
|
-
{
|
|
1320
|
-
file: 'locus-info',
|
|
1321
|
-
function: 'updateSelf',
|
|
1322
|
-
},
|
|
1323
|
-
LOCUSINFO.EVENTS.SELF_MEETING_INTERPRETATION_CHANGED,
|
|
1324
|
-
{
|
|
1325
|
-
interpretation: parsedSelves.current.interpretation,
|
|
1326
|
-
selfParticipantId: parsedSelves.current.selfId,
|
|
1327
|
-
}
|
|
1328
|
-
);
|
|
1329
|
-
}
|
|
1330
|
-
|
|
1331
1068
|
if (parsedSelves.updates.isMediaInactiveOrReleased) {
|
|
1332
1069
|
this.emitScoped(
|
|
1333
1070
|
{
|
|
@@ -1349,31 +1086,6 @@ export default class LocusInfo extends EventsScope {
|
|
|
1349
1086
|
self
|
|
1350
1087
|
);
|
|
1351
1088
|
}
|
|
1352
|
-
|
|
1353
|
-
if (parsedSelves.updates.isRolesChanged) {
|
|
1354
|
-
this.emitScoped(
|
|
1355
|
-
{
|
|
1356
|
-
file: 'locus-info',
|
|
1357
|
-
function: 'updateSelf',
|
|
1358
|
-
},
|
|
1359
|
-
LOCUSINFO.EVENTS.SELF_ROLES_CHANGED,
|
|
1360
|
-
{oldRoles: parsedSelves.previous?.roles, newRoles: parsedSelves.current?.roles}
|
|
1361
|
-
);
|
|
1362
|
-
}
|
|
1363
|
-
|
|
1364
|
-
if (parsedSelves.updates.isVideoMutedByOthersChanged) {
|
|
1365
|
-
this.emitScoped(
|
|
1366
|
-
{
|
|
1367
|
-
file: 'locus-info',
|
|
1368
|
-
function: 'updateSelf',
|
|
1369
|
-
},
|
|
1370
|
-
LOCUSINFO.EVENTS.SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED,
|
|
1371
|
-
{
|
|
1372
|
-
muted: parsedSelves.current.remoteVideoMuted,
|
|
1373
|
-
// unmuteAllowed: not part of .self
|
|
1374
|
-
}
|
|
1375
|
-
);
|
|
1376
|
-
}
|
|
1377
1089
|
if (parsedSelves.updates.localAudioUnmuteRequiredByServer) {
|
|
1378
1090
|
this.emitScoped(
|
|
1379
1091
|
{
|
|
@@ -1588,105 +1300,4 @@ export default class LocusInfo extends EventsScope {
|
|
|
1588
1300
|
this.identities = identities;
|
|
1589
1301
|
}
|
|
1590
1302
|
}
|
|
1591
|
-
|
|
1592
|
-
/**
|
|
1593
|
-
* check the locus is main session's one or not, if is main session's, update main session cache
|
|
1594
|
-
* @param {Object} locus
|
|
1595
|
-
* @returns {undefined}
|
|
1596
|
-
* @memberof LocusInfo
|
|
1597
|
-
*/
|
|
1598
|
-
updateLocusCache(locus: any) {
|
|
1599
|
-
const isMainSessionDTO = ControlsUtils.isMainSessionDTO(locus);
|
|
1600
|
-
if (isMainSessionDTO) {
|
|
1601
|
-
this.updateMainSessionLocusCache(locus);
|
|
1602
|
-
}
|
|
1603
|
-
}
|
|
1604
|
-
|
|
1605
|
-
/**
|
|
1606
|
-
* if return from breakout to main session, need to use cached main session DTO since locus won't send the full locus (participants)
|
|
1607
|
-
* if join breakout from main session, main session is not active for the attendee and remove main session locus cache
|
|
1608
|
-
* @param {Object} newLocus
|
|
1609
|
-
* @returns {Object}
|
|
1610
|
-
* @memberof LocusInfo
|
|
1611
|
-
*/
|
|
1612
|
-
getTheLocusToUpdate(newLocus: any) {
|
|
1613
|
-
const switchStatus = ControlsUtils.getSessionSwitchStatus(this.controls, newLocus?.controls);
|
|
1614
|
-
if (switchStatus.isReturnToMain && this.mainSessionLocusCache) {
|
|
1615
|
-
return cloneDeep(this.mainSessionLocusCache);
|
|
1616
|
-
}
|
|
1617
|
-
const isMainSessionDTO =
|
|
1618
|
-
this.mainSessionLocusCache && ControlsUtils.isMainSessionDTO(this.mainSessionLocusCache);
|
|
1619
|
-
|
|
1620
|
-
if (isMainSessionDTO) {
|
|
1621
|
-
const isActive =
|
|
1622
|
-
[LOCUS.STATE.ACTIVE, LOCUS.STATE.INITIALIZING, LOCUS.STATE.TERMINATING].includes(
|
|
1623
|
-
this.fullState?.state
|
|
1624
|
-
) && !this.mainSessionLocusCache?.self?.removed;
|
|
1625
|
-
|
|
1626
|
-
if (!isActive) {
|
|
1627
|
-
this.clearMainSessionLocusCache();
|
|
1628
|
-
}
|
|
1629
|
-
}
|
|
1630
|
-
|
|
1631
|
-
return newLocus;
|
|
1632
|
-
}
|
|
1633
|
-
|
|
1634
|
-
/**
|
|
1635
|
-
* merge participants by participant id
|
|
1636
|
-
* @param {Array} participants
|
|
1637
|
-
* @param {Array} sourceParticipants
|
|
1638
|
-
* @returns {Array} merged participants
|
|
1639
|
-
* @memberof LocusInfo
|
|
1640
|
-
*/
|
|
1641
|
-
// eslint-disable-next-line class-methods-use-this
|
|
1642
|
-
mergeParticipants(participants, sourceParticipants) {
|
|
1643
|
-
if (!sourceParticipants || !sourceParticipants.length) return participants;
|
|
1644
|
-
if (!participants || !participants.length) {
|
|
1645
|
-
return sourceParticipants;
|
|
1646
|
-
}
|
|
1647
|
-
sourceParticipants.forEach((participant) => {
|
|
1648
|
-
const existIndex = participants.findIndex((p) => p.id === participant.id);
|
|
1649
|
-
if (existIndex > -1) {
|
|
1650
|
-
participants.splice(existIndex, 1, participant);
|
|
1651
|
-
} else {
|
|
1652
|
-
participants.push(participant);
|
|
1653
|
-
}
|
|
1654
|
-
});
|
|
1655
|
-
|
|
1656
|
-
return participants;
|
|
1657
|
-
}
|
|
1658
|
-
|
|
1659
|
-
/**
|
|
1660
|
-
* need cache main sessions' participants since locus will not send the full list when cohost/host leave breakout
|
|
1661
|
-
* @param {Object} mainLocus
|
|
1662
|
-
* @returns {undefined}
|
|
1663
|
-
* @memberof LocusInfo
|
|
1664
|
-
*/
|
|
1665
|
-
updateMainSessionLocusCache(mainLocus: any) {
|
|
1666
|
-
if (!mainLocus) {
|
|
1667
|
-
return;
|
|
1668
|
-
}
|
|
1669
|
-
const locusClone = cloneDeep(mainLocus);
|
|
1670
|
-
if (this.mainSessionLocusCache) {
|
|
1671
|
-
// shallow merge and do special merge for participants
|
|
1672
|
-
assignWith(this.mainSessionLocusCache, locusClone, (objValue, srcValue, key) => {
|
|
1673
|
-
if (key === 'participants') {
|
|
1674
|
-
return this.mergeParticipants(objValue, srcValue);
|
|
1675
|
-
}
|
|
1676
|
-
|
|
1677
|
-
return srcValue || objValue;
|
|
1678
|
-
});
|
|
1679
|
-
} else {
|
|
1680
|
-
this.mainSessionLocusCache = locusClone;
|
|
1681
|
-
}
|
|
1682
|
-
}
|
|
1683
|
-
|
|
1684
|
-
/**
|
|
1685
|
-
* clear main session cache
|
|
1686
|
-
* @returns {undefined}
|
|
1687
|
-
* @memberof LocusInfo
|
|
1688
|
-
*/
|
|
1689
|
-
clearMainSessionLocusCache() {
|
|
1690
|
-
this.mainSessionLocusCache = null;
|
|
1691
|
-
}
|
|
1692
1303
|
}
|