@webex/plugin-meetings 3.0.0-stream-classes.5 → 3.0.0
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 -0
- package/README.md +12 -0
- package/babel.config.js +3 -0
- package/dist/annotation/constants.js +12 -20
- package/dist/annotation/constants.js.map +1 -1
- package/dist/annotation/index.js +25 -10
- package/dist/annotation/index.js.map +1 -1
- package/dist/breakouts/breakout.js +2 -3
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/collection.js +1 -2
- package/dist/breakouts/collection.js.map +1 -1
- package/dist/breakouts/edit-lock-error.js +1 -2
- package/dist/breakouts/edit-lock-error.js.map +1 -1
- package/dist/breakouts/events.js +1 -2
- package/dist/breakouts/events.js.map +1 -1
- package/dist/breakouts/index.js +13 -14
- package/dist/breakouts/index.js.map +1 -1
- package/dist/breakouts/request.js +1 -2
- package/dist/breakouts/request.js.map +1 -1
- package/dist/breakouts/utils.js +3 -6
- package/dist/breakouts/utils.js.map +1 -1
- package/dist/common/browser-detection.js +2 -3
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +3 -4
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +1 -2
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +1 -2
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +1 -2
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +1 -2
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +1 -2
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/common/errors/no-meeting-info.js +50 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/parameter.js +3 -4
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +1 -2
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +1 -2
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/common/errors/reclaim-host-role-errors.js +154 -0
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/reconnection-in-progress.js +1 -2
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +1 -2
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +1 -2
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/{types/common → common}/errors/webex-errors.d.ts +13 -1
- package/dist/common/errors/webex-errors.js +35 -16
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +1 -2
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +1 -2
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +1 -2
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +1 -2
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +1 -2
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +1 -2
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -2
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/{types/common → common}/logs/request.d.ts +3 -1
- package/dist/common/logs/request.js +8 -5
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +2 -4
- package/dist/common/queue.js.map +1 -1
- package/dist/{types/config.d.ts → config.d.ts} +1 -1
- package/dist/config.js +3 -3
- package/dist/config.js.map +1 -1
- package/dist/{types/constants.d.ts → constants.d.ts} +71 -15
- package/dist/constants.js +252 -371
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +3 -6
- package/dist/controls-options-manager/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +7 -10
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.js +27 -32
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/util.js +1 -2
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.js +8 -5
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.d.ts +2 -0
- package/dist/interceptors/index.js +15 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/locusRetry.d.ts +27 -0
- package/dist/interceptors/locusRetry.js +94 -0
- package/dist/interceptors/locusRetry.js.map +1 -0
- package/dist/interpretation/collection.js +1 -2
- package/dist/interpretation/collection.js.map +1 -1
- package/dist/interpretation/index.js +2 -3
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/siLanguage.js +2 -3
- package/dist/interpretation/siLanguage.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +12 -13
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -4
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +1 -2
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +1 -2
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/{types/locus-info → locus-info}/index.d.ts +1 -1
- package/dist/locus-info/index.js +38 -37
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +3 -4
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +16 -3
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/{types/locus-info → locus-info}/parser.d.ts +3 -2
- package/dist/locus-info/parser.js +43 -31
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +7 -6
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +15 -10
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +16 -7
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +1 -2
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.d.ts +241 -0
- package/dist/mediaQualityMetrics/config.js +135 -339
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/{types/meeting → meeting}/in-meeting-actions.d.ts +4 -0
- package/dist/meeting/in-meeting-actions.js +18 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/{types/meeting → meeting}/index.d.ts +318 -45
- package/dist/meeting/index.js +2620 -1405
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +4 -5
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.js +2 -4
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/{types/meeting → meeting}/request.d.ts +2 -0
- package/dist/meeting/request.js +46 -31
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/state.js +1 -2
- package/dist/meeting/state.js.map +1 -1
- package/dist/{types/meeting → meeting}/util.d.ts +17 -0
- package/dist/meeting/util.js +83 -10
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting/voicea-meeting.d.ts +16 -0
- package/dist/meeting/voicea-meeting.js +169 -0
- package/dist/meeting/voicea-meeting.js.map +1 -0
- package/dist/meeting-info/collection.js +3 -4
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/{types/meeting-info → meeting-info}/index.d.ts +7 -0
- package/dist/meeting-info/index.js +53 -27
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/{types/meeting-info → meeting-info}/meeting-info-v2.d.ts +1 -0
- package/dist/meeting-info/meeting-info-v2.js +52 -33
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -2
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +8 -8
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +12 -9
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/{types/meetings → meetings}/collection.d.ts +9 -0
- package/dist/meetings/collection.js +21 -5
- package/dist/meetings/collection.js.map +1 -1
- package/dist/{types/meetings → meetings}/index.d.ts +45 -16
- package/dist/meetings/index.js +166 -74
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +2 -3
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +3 -10
- package/dist/meetings/util.js.map +1 -1
- package/dist/{types/member → member}/index.d.ts +1 -0
- package/dist/member/index.js +10 -3
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.d.ts +11 -0
- package/dist/member/member.types.js +17 -0
- package/dist/member/member.types.js.map +1 -0
- package/dist/member/types.js +6 -8
- package/dist/member/types.js.map +1 -1
- package/dist/member/util.js +12 -2
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +1 -2
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +25 -8
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +2 -3
- package/dist/members/request.js.map +1 -1
- package/dist/{types/members → members}/types.d.ts +1 -0
- package/dist/members/types.js +3 -4
- package/dist/members/types.js.map +1 -1
- package/dist/{types/members → members}/util.d.ts +6 -1
- package/dist/members/util.js +18 -8
- package/dist/members/util.js.map +1 -1
- package/dist/{types/metrics → metrics}/constants.d.ts +12 -0
- package/dist/metrics/constants.js +14 -3
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +3 -2
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +9 -11
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +3 -5
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +7 -9
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +3 -5
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +7 -6
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +28 -27
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +9 -6
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +1 -2
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +2 -3
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -3
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +1 -2
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/clusterReachability.d.ts +109 -0
- package/dist/reachability/clusterReachability.js +357 -0
- package/dist/reachability/clusterReachability.js.map +1 -0
- package/dist/reachability/index.d.ts +105 -0
- package/dist/reachability/index.js +279 -436
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +14 -11
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.d.ts +8 -0
- package/dist/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- package/dist/reactions/constants.js +1 -2
- package/dist/reactions/constants.js.map +1 -1
- package/dist/reactions/reactions.js +2 -4
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.js +6 -8
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/{types/reconnection-manager → reconnection-manager}/index.d.ts +10 -0
- package/dist/reconnection-manager/index.js +129 -106
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +4 -5
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.js +43 -51
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +1 -2
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/{types/roap → roap}/index.d.ts +2 -1
- package/dist/roap/index.js +59 -28
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +14 -22
- package/dist/roap/request.js.map +1 -1
- package/dist/{types/roap → roap}/turnDiscovery.d.ts +21 -4
- package/dist/roap/turnDiscovery.js +182 -89
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +1 -2
- package/dist/rtcMetrics/constants.js.map +1 -1
- package/dist/{types/rtcMetrics → rtcMetrics}/index.d.ts +15 -1
- package/dist/rtcMetrics/index.js +72 -12
- package/dist/rtcMetrics/index.js.map +1 -1
- package/dist/statsAnalyzer/global.js +1 -2
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/{types/statsAnalyzer → statsAnalyzer}/index.d.ts +28 -11
- package/dist/statsAnalyzer/index.js +371 -318
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +48 -0
- package/dist/statsAnalyzer/mqaUtil.js +295 -162
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +1 -2
- package/dist/transcription/index.js.map +1 -1
- package/dist/webinar/collection.d.ts +16 -0
- package/dist/webinar/collection.js +43 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.d.ts +5 -0
- package/dist/webinar/index.js +68 -0
- package/dist/webinar/index.js.map +1 -0
- package/jest.config.js +3 -0
- package/package.json +44 -24
- package/process +1 -0
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/reclaim-host-role-errors.ts +134 -0
- package/src/common/errors/webex-errors.ts +19 -2
- package/src/common/logs/request.ts +5 -1
- package/src/config.ts +3 -5
- package/src/constants.ts +77 -8
- package/src/index.ts +4 -0
- package/src/interceptors/index.ts +3 -0
- package/src/interceptors/locusRetry.ts +67 -0
- package/src/locus-info/index.ts +19 -14
- package/src/locus-info/mediaSharesUtils.ts +16 -0
- package/src/locus-info/parser.ts +40 -21
- package/src/media/index.ts +8 -6
- package/src/media/properties.ts +17 -2
- package/src/mediaQualityMetrics/config.ts +103 -238
- package/src/meeting/in-meeting-actions.ts +8 -0
- package/src/meeting/index.ts +1664 -642
- package/src/meeting/request.ts +18 -0
- package/src/meeting/util.ts +102 -1
- package/src/meeting/voicea-meeting.ts +122 -0
- package/src/meeting-info/index.ts +47 -20
- package/src/meeting-info/meeting-info-v2.ts +32 -16
- package/src/meeting-info/util.ts +12 -9
- package/src/meeting-info/utilv2.ts +25 -15
- package/src/meetings/collection.ts +13 -0
- package/src/meetings/index.ts +112 -31
- package/src/meetings/util.ts +2 -8
- package/src/member/index.ts +9 -1
- package/src/member/member.types.ts +13 -0
- package/src/member/util.ts +14 -0
- package/src/members/index.ts +29 -2
- package/src/members/types.ts +1 -0
- package/src/members/util.ts +15 -1
- package/src/metrics/constants.ts +12 -0
- package/src/reachability/clusterReachability.ts +320 -0
- package/src/reachability/index.ts +221 -382
- package/src/reachability/request.ts +1 -1
- package/src/reachability/util.ts +24 -0
- package/src/reconnection-manager/index.ts +87 -83
- package/src/roap/index.ts +60 -24
- package/src/roap/request.ts +4 -17
- package/src/roap/turnDiscovery.ts +112 -39
- package/src/rtcMetrics/index.ts +71 -5
- package/src/statsAnalyzer/index.ts +430 -427
- package/src/statsAnalyzer/mqaUtil.ts +317 -168
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/journey.js +12 -12
- package/test/integration/spec/space-meeting.js +1 -1
- package/test/unit/spec/breakouts/breakout.ts +2 -1
- package/test/unit/spec/breakouts/index.ts +7 -4
- package/test/unit/spec/interceptors/locusRetry.ts +131 -0
- package/test/unit/spec/locus-info/index.js +88 -12
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +10 -0
- package/test/unit/spec/locus-info/parser.js +54 -13
- package/test/unit/spec/locus-info/selfUtils.js +1 -1
- package/test/unit/spec/media/index.ts +25 -4
- package/test/unit/spec/media/properties.ts +2 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +4 -0
- package/test/unit/spec/meeting/index.js +4388 -1382
- package/test/unit/spec/meeting/request.js +63 -12
- package/test/unit/spec/meeting/utils.js +145 -10
- package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
- package/test/unit/spec/meeting-info/index.js +180 -61
- package/test/unit/spec/meeting-info/meetinginfov2.js +216 -68
- package/test/unit/spec/meetings/collection.js +12 -0
- package/test/unit/spec/meetings/index.js +674 -193
- package/test/unit/spec/meetings/utils.js +35 -12
- package/test/unit/spec/member/index.js +8 -7
- package/test/unit/spec/member/util.js +32 -0
- package/test/unit/spec/members/index.js +130 -17
- package/test/unit/spec/members/utils.js +26 -0
- package/test/unit/spec/metrics/index.js +1 -2
- package/test/unit/spec/multistream/mediaRequestManager.ts +1 -0
- package/test/unit/spec/reachability/clusterReachability.ts +279 -0
- package/test/unit/spec/reachability/index.ts +505 -135
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +74 -17
- package/test/unit/spec/recording-controller/index.js +0 -1
- package/test/unit/spec/roap/index.ts +181 -61
- package/test/unit/spec/roap/request.ts +27 -3
- package/test/unit/spec/roap/turnDiscovery.ts +363 -102
- package/test/unit/spec/rtcMetrics/index.ts +57 -3
- package/test/unit/spec/stats-analyzer/index.js +1225 -12
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/webex-test-users.js +12 -4
- package/dist/types/mediaQualityMetrics/config.d.ts +0 -365
- package/dist/types/reachability/index.d.ts +0 -152
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -24
- /package/dist/{types/annotation → annotation}/annotation.types.d.ts +0 -0
- /package/dist/{types/annotation → annotation}/constants.d.ts +0 -0
- /package/dist/{types/annotation → annotation}/index.d.ts +0 -0
- /package/dist/{types/breakouts → breakouts}/breakout.d.ts +0 -0
- /package/dist/{types/breakouts → breakouts}/collection.d.ts +0 -0
- /package/dist/{types/breakouts → breakouts}/edit-lock-error.d.ts +0 -0
- /package/dist/{types/breakouts → breakouts}/events.d.ts +0 -0
- /package/dist/{types/breakouts → breakouts}/index.d.ts +0 -0
- /package/dist/{types/breakouts → breakouts}/request.d.ts +0 -0
- /package/dist/{types/breakouts → breakouts}/utils.d.ts +0 -0
- /package/dist/{types/common → common}/browser-detection.d.ts +0 -0
- /package/dist/{types/common → common}/collection.d.ts +0 -0
- /package/dist/{types/common → common}/config.d.ts +0 -0
- /package/dist/{types/common → common}/errors/captcha-error.d.ts +0 -0
- /package/dist/{types/common → common}/errors/intent-to-join.d.ts +0 -0
- /package/dist/{types/common → common}/errors/join-meeting.d.ts +0 -0
- /package/dist/{types/common → common}/errors/media.d.ts +0 -0
- /package/dist/{types/common → common}/errors/parameter.d.ts +0 -0
- /package/dist/{types/common → common}/errors/password-error.d.ts +0 -0
- /package/dist/{types/common → common}/errors/permission.d.ts +0 -0
- /package/dist/{types/common → common}/errors/reconnection-in-progress.d.ts +0 -0
- /package/dist/{types/common → common}/errors/reconnection.d.ts +0 -0
- /package/dist/{types/common → common}/errors/stats.d.ts +0 -0
- /package/dist/{types/common → common}/errors/webex-meetings-error.d.ts +0 -0
- /package/dist/{types/common → common}/events/events-scope.d.ts +0 -0
- /package/dist/{types/common → common}/events/events.d.ts +0 -0
- /package/dist/{types/common → common}/events/trigger-proxy.d.ts +0 -0
- /package/dist/{types/common → common}/events/util.d.ts +0 -0
- /package/dist/{types/common → common}/logs/logger-config.d.ts +0 -0
- /package/dist/{types/common → common}/logs/logger-proxy.d.ts +0 -0
- /package/dist/{types/common → common}/queue.d.ts +0 -0
- /package/dist/{types/controls-options-manager → controls-options-manager}/constants.d.ts +0 -0
- /package/dist/{types/controls-options-manager → controls-options-manager}/enums.d.ts +0 -0
- /package/dist/{types/controls-options-manager → controls-options-manager}/index.d.ts +0 -0
- /package/dist/{types/controls-options-manager → controls-options-manager}/types.d.ts +0 -0
- /package/dist/{types/controls-options-manager → controls-options-manager}/util.d.ts +0 -0
- /package/dist/{types/index.d.ts → index.d.ts} +0 -0
- /package/dist/{types/interpretation → interpretation}/collection.d.ts +0 -0
- /package/dist/{types/interpretation → interpretation}/index.d.ts +0 -0
- /package/dist/{types/interpretation → interpretation}/siLanguage.d.ts +0 -0
- /package/dist/{types/locus-info → locus-info}/controlsUtils.d.ts +0 -0
- /package/dist/{types/locus-info → locus-info}/embeddedAppsUtils.d.ts +0 -0
- /package/dist/{types/locus-info → locus-info}/fullState.d.ts +0 -0
- /package/dist/{types/locus-info → locus-info}/hostUtils.d.ts +0 -0
- /package/dist/{types/locus-info → locus-info}/infoUtils.d.ts +0 -0
- /package/dist/{types/locus-info → locus-info}/mediaSharesUtils.d.ts +0 -0
- /package/dist/{types/locus-info → locus-info}/selfUtils.d.ts +0 -0
- /package/dist/{types/media → media}/index.d.ts +0 -0
- /package/dist/{types/media → media}/properties.d.ts +0 -0
- /package/dist/{types/media → media}/util.d.ts +0 -0
- /package/dist/{types/meeting → meeting}/locusMediaRequest.d.ts +0 -0
- /package/dist/{types/meeting → meeting}/muteState.d.ts +0 -0
- /package/dist/{types/meeting → meeting}/request.type.d.ts +0 -0
- /package/dist/{types/meeting → meeting}/state.d.ts +0 -0
- /package/dist/{types/meeting-info → meeting-info}/collection.d.ts +0 -0
- /package/dist/{types/meeting-info → meeting-info}/request.d.ts +0 -0
- /package/dist/{types/meeting-info → meeting-info}/util.d.ts +0 -0
- /package/dist/{types/meeting-info → meeting-info}/utilv2.d.ts +0 -0
- /package/dist/{types/meetings → meetings}/meetings.types.d.ts +0 -0
- /package/dist/{types/meetings → meetings}/request.d.ts +0 -0
- /package/dist/{types/meetings → meetings}/util.d.ts +0 -0
- /package/dist/{types/member → member}/types.d.ts +0 -0
- /package/dist/{types/member → member}/util.d.ts +0 -0
- /package/dist/{types/members → members}/collection.d.ts +0 -0
- /package/dist/{types/members → members}/index.d.ts +0 -0
- /package/dist/{types/members → members}/request.d.ts +0 -0
- /package/dist/{types/metrics → metrics}/index.d.ts +0 -0
- /package/dist/{types/multistream → multistream}/mediaRequestManager.d.ts +0 -0
- /package/dist/{types/multistream → multistream}/receiveSlot.d.ts +0 -0
- /package/dist/{types/multistream → multistream}/receiveSlotManager.d.ts +0 -0
- /package/dist/{types/multistream → multistream}/remoteMedia.d.ts +0 -0
- /package/dist/{types/multistream → multistream}/remoteMediaGroup.d.ts +0 -0
- /package/dist/{types/multistream → multistream}/remoteMediaManager.d.ts +0 -0
- /package/dist/{types/multistream → multistream}/sendSlotManager.d.ts +0 -0
- /package/dist/{types/networkQualityMonitor → networkQualityMonitor}/index.d.ts +0 -0
- /package/dist/{types/personal-meeting-room → personal-meeting-room}/index.d.ts +0 -0
- /package/dist/{types/personal-meeting-room → personal-meeting-room}/request.d.ts +0 -0
- /package/dist/{types/personal-meeting-room → personal-meeting-room}/util.d.ts +0 -0
- /package/dist/{types/reachability → reachability}/request.d.ts +0 -0
- /package/dist/{types/reactions → reactions}/constants.d.ts +0 -0
- /package/dist/{types/reactions → reactions}/reactions.d.ts +0 -0
- /package/dist/{types/reactions → reactions}/reactions.type.d.ts +0 -0
- /package/dist/{types/recording-controller → recording-controller}/enums.d.ts +0 -0
- /package/dist/{types/recording-controller → recording-controller}/index.d.ts +0 -0
- /package/dist/{types/recording-controller → recording-controller}/util.d.ts +0 -0
- /package/dist/{types/roap → roap}/request.d.ts +0 -0
- /package/dist/{types/rtcMetrics → rtcMetrics}/constants.d.ts +0 -0
- /package/dist/{types/statsAnalyzer → statsAnalyzer}/global.d.ts +0 -0
- /package/dist/{types/transcription → transcription}/index.d.ts +0 -0
- /package/test/unit/spec/locus-info/{selfConstant.js → lib/selfConstant.js} +0 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import * as MEETINGCONSTANTS from '../../constants';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Extended Error object for reclaim host role empty or wrong key
|
|
5
|
+
*/
|
|
6
|
+
export class ReclaimHostEmptyWrongKeyError extends Error {
|
|
7
|
+
sdkMessage: string;
|
|
8
|
+
error: null;
|
|
9
|
+
code: number;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @constructor
|
|
14
|
+
* @param {String} [message]
|
|
15
|
+
* @param {Object} [error]
|
|
16
|
+
*/
|
|
17
|
+
constructor(
|
|
18
|
+
message: string = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_EMPTY_OR_WRONG_KEY
|
|
19
|
+
.MESSAGE,
|
|
20
|
+
error: any = null
|
|
21
|
+
) {
|
|
22
|
+
super(message);
|
|
23
|
+
|
|
24
|
+
if (Error.captureStackTrace) {
|
|
25
|
+
Error.captureStackTrace(this, ReclaimHostEmptyWrongKeyError);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
this.name = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_EMPTY_OR_WRONG_KEY.NAME;
|
|
29
|
+
this.sdkMessage =
|
|
30
|
+
message || MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_EMPTY_OR_WRONG_KEY.MESSAGE;
|
|
31
|
+
this.error = error;
|
|
32
|
+
|
|
33
|
+
this.code = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_EMPTY_OR_WRONG_KEY.CODE;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Extended Error object for reclaim host role not supported
|
|
39
|
+
*/
|
|
40
|
+
export class ReclaimHostNotSupportedError extends Error {
|
|
41
|
+
sdkMessage: string;
|
|
42
|
+
error: null;
|
|
43
|
+
code: number;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
*
|
|
47
|
+
* @constructor
|
|
48
|
+
* @param {String} [message]
|
|
49
|
+
* @param {Object} [error]
|
|
50
|
+
*/
|
|
51
|
+
constructor(
|
|
52
|
+
message: string = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_SUPPORTED.MESSAGE,
|
|
53
|
+
error: any = null
|
|
54
|
+
) {
|
|
55
|
+
super(message);
|
|
56
|
+
|
|
57
|
+
if (Error.captureStackTrace) {
|
|
58
|
+
Error.captureStackTrace(this, ReclaimHostNotSupportedError);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
this.name = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_SUPPORTED.NAME;
|
|
62
|
+
this.sdkMessage =
|
|
63
|
+
message || MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_SUPPORTED.MESSAGE;
|
|
64
|
+
this.error = error;
|
|
65
|
+
|
|
66
|
+
this.code = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_SUPPORTED.CODE;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Extended Error object for reclaim host role not allowed for other participants
|
|
72
|
+
*/
|
|
73
|
+
export class ReclaimHostNotAllowedError extends Error {
|
|
74
|
+
sdkMessage: string;
|
|
75
|
+
error: null;
|
|
76
|
+
code: number;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
*
|
|
80
|
+
* @constructor
|
|
81
|
+
* @param {String} [message]
|
|
82
|
+
* @param {Object} [error]
|
|
83
|
+
*/
|
|
84
|
+
constructor(
|
|
85
|
+
message: string = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_ALLOWED.MESSAGE,
|
|
86
|
+
error: any = null
|
|
87
|
+
) {
|
|
88
|
+
super(message);
|
|
89
|
+
|
|
90
|
+
if (Error.captureStackTrace) {
|
|
91
|
+
Error.captureStackTrace(this, ReclaimHostNotAllowedError);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
this.name = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_ALLOWED.NAME;
|
|
95
|
+
this.sdkMessage =
|
|
96
|
+
message || MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_ALLOWED.MESSAGE;
|
|
97
|
+
this.error = error;
|
|
98
|
+
|
|
99
|
+
this.code = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_ALLOWED.CODE;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Extended Error object for reclaim host role when user is host already
|
|
105
|
+
*/
|
|
106
|
+
export class ReclaimHostIsHostAlreadyError extends Error {
|
|
107
|
+
sdkMessage: string;
|
|
108
|
+
error: null;
|
|
109
|
+
code: number;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
*
|
|
113
|
+
* @constructor
|
|
114
|
+
* @param {String} [message]
|
|
115
|
+
* @param {Object} [error]
|
|
116
|
+
*/
|
|
117
|
+
constructor(
|
|
118
|
+
message: string = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_IS_ALREADY_HOST.MESSAGE,
|
|
119
|
+
error: any = null
|
|
120
|
+
) {
|
|
121
|
+
super(message);
|
|
122
|
+
|
|
123
|
+
if (Error.captureStackTrace) {
|
|
124
|
+
Error.captureStackTrace(this, ReclaimHostIsHostAlreadyError);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
this.name = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_IS_ALREADY_HOST.NAME;
|
|
128
|
+
this.sdkMessage =
|
|
129
|
+
message || MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_IS_ALREADY_HOST.MESSAGE;
|
|
130
|
+
this.error = error;
|
|
131
|
+
|
|
132
|
+
this.code = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_IS_ALREADY_HOST.CODE;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
@@ -112,7 +112,7 @@ WebExMeetingsErrors[UserInLobbyError.CODE] = UserInLobbyError;
|
|
|
112
112
|
* @classdesc Raised whenever the user passes Space ID as destination for create meeting.
|
|
113
113
|
* @extends WebexMeetingsError
|
|
114
114
|
* @property {number} code - 30105
|
|
115
|
-
* @property {string} message - Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-
|
|
115
|
+
* @property {string} message - Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-to-Unified-Space-Meetings) to migrate to use the meeting ID or SIP address.'
|
|
116
116
|
*/
|
|
117
117
|
class SpaceIDDeprecatedError extends WebexMeetingsError {
|
|
118
118
|
static CODE = 30105;
|
|
@@ -120,7 +120,7 @@ class SpaceIDDeprecatedError extends WebexMeetingsError {
|
|
|
120
120
|
constructor() {
|
|
121
121
|
super(
|
|
122
122
|
SpaceIDDeprecatedError.CODE,
|
|
123
|
-
'Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-
|
|
123
|
+
'Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-to-Unified-Space-Meetings) to migrate to use the meeting ID or SIP address.'
|
|
124
124
|
);
|
|
125
125
|
}
|
|
126
126
|
}
|
|
@@ -145,3 +145,20 @@ class IceGatheringFailed extends WebexMeetingsError {
|
|
|
145
145
|
|
|
146
146
|
export {IceGatheringFailed};
|
|
147
147
|
WebExMeetingsErrors[IceGatheringFailed.CODE] = IceGatheringFailed;
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* @class AddMediaFailed
|
|
151
|
+
* @classdesc Raised whenever we fail to successfully add media to a meeting
|
|
152
|
+
* @extends WebexMeetingsError
|
|
153
|
+
* @property {number} code - 30203
|
|
154
|
+
* @property {string} message - 'Failed to add media'
|
|
155
|
+
*/
|
|
156
|
+
class AddMediaFailed extends WebexMeetingsError {
|
|
157
|
+
static CODE = 30203;
|
|
158
|
+
|
|
159
|
+
constructor() {
|
|
160
|
+
super(AddMediaFailed.CODE, 'Failed to add media');
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
export {AddMediaFailed};
|
|
164
|
+
WebExMeetingsErrors[AddMediaFailed.CODE] = AddMediaFailed;
|
|
@@ -32,6 +32,8 @@ export default class LogsRequest {
|
|
|
32
32
|
*/
|
|
33
33
|
async uploadLogs(
|
|
34
34
|
options: {
|
|
35
|
+
autoupload?: boolean;
|
|
36
|
+
locussessionid?: string;
|
|
35
37
|
feedbackId?: string;
|
|
36
38
|
locusId?: string;
|
|
37
39
|
correlationId?: string;
|
|
@@ -40,7 +42,7 @@ export default class LogsRequest {
|
|
|
40
42
|
} = {}
|
|
41
43
|
) {
|
|
42
44
|
const id = options.feedbackId || uuid.v4();
|
|
43
|
-
const {locusId, correlationId, meetingId, callStart} = options;
|
|
45
|
+
const {locusId, correlationId, meetingId, callStart, locussessionid, autoupload} = options;
|
|
44
46
|
|
|
45
47
|
LoggerProxy.logger.info(
|
|
46
48
|
`Logs:request#uploadLogs --> uploading user logs for feedbackId: ${id}`
|
|
@@ -48,6 +50,8 @@ export default class LogsRequest {
|
|
|
48
50
|
|
|
49
51
|
try {
|
|
50
52
|
await this.webex.internal.support.submitLogs({
|
|
53
|
+
autoupload,
|
|
54
|
+
locussessionid,
|
|
51
55
|
feedbackId: id,
|
|
52
56
|
locusId,
|
|
53
57
|
correlationId,
|
package/src/config.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
deviceType,
|
|
4
|
-
} from '@webex/common';
|
|
1
|
+
// @ts-ignore
|
|
2
|
+
import {deviceType} from '@webex/common';
|
|
5
3
|
|
|
6
4
|
export default {
|
|
7
5
|
// TODO: this needs to be defaulted
|
|
@@ -88,7 +86,7 @@ export default {
|
|
|
88
86
|
enableMediaNegotiatedEvent: false,
|
|
89
87
|
enableUnifiedMeetings: true,
|
|
90
88
|
enableAdhocMeetings: true,
|
|
91
|
-
|
|
89
|
+
enableTcpReachability: false,
|
|
92
90
|
},
|
|
93
91
|
degradationPreferences: {
|
|
94
92
|
maxMacroblocksLimit: 8192,
|
package/src/constants.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// @ts-ignore
|
|
2
2
|
import {hydraTypes} from '@webex/common';
|
|
3
3
|
|
|
4
|
+
type Enum<T extends Record<string, unknown>> = T[keyof T];
|
|
5
|
+
|
|
4
6
|
// *********** LOWERCASE / CAMELCASE STRINGS ************
|
|
5
7
|
|
|
6
8
|
export const AUDIO = 'audio';
|
|
@@ -46,6 +48,8 @@ export const MEETINGINFO = 'meetingInfo';
|
|
|
46
48
|
export const MEET = 'meet';
|
|
47
49
|
export const MEET_M = 'm';
|
|
48
50
|
export const MEDIA = 'media';
|
|
51
|
+
export const MEET_CO = 'co';
|
|
52
|
+
export const MEET_CISCO = 'cisco';
|
|
49
53
|
|
|
50
54
|
export const OFFLINE = 'offline';
|
|
51
55
|
export const ONLINE = 'online';
|
|
@@ -68,6 +72,8 @@ export const TYPE = 'type';
|
|
|
68
72
|
export const VIDEO = 'video';
|
|
69
73
|
export const VIDEO_STATUS = 'videoStatus';
|
|
70
74
|
|
|
75
|
+
export const LANGUAGE_ENGLISH = 'en';
|
|
76
|
+
|
|
71
77
|
// *********** UPPERCASE ONLY STRINGS ************
|
|
72
78
|
// Please alphabetize
|
|
73
79
|
export const _ANSWER_ = 'ANSWER';
|
|
@@ -190,7 +196,8 @@ export const ICE_FAIL_TIMEOUT = 3000;
|
|
|
190
196
|
|
|
191
197
|
export const RETRY_TIMEOUT = 3000;
|
|
192
198
|
|
|
193
|
-
export const
|
|
199
|
+
export const ICE_AND_DTLS_CONNECTION_TIMEOUT = 10000;
|
|
200
|
+
export const ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT = 35000;
|
|
194
201
|
|
|
195
202
|
// ******************** REGEX **********************
|
|
196
203
|
// Please alphabetize
|
|
@@ -236,6 +243,13 @@ export const CALENDAR_EVENTS = {
|
|
|
236
243
|
DELETE: 'event:calendar.meeting.delete',
|
|
237
244
|
};
|
|
238
245
|
|
|
246
|
+
export const ASSIGN_ROLES_ERROR_CODES = {
|
|
247
|
+
ReclaimHostNotSupportedErrorCode: 2400127,
|
|
248
|
+
ReclaimHostNotAllowedErrorCode: 2403135,
|
|
249
|
+
ReclaimHostEmptyWrongKeyErrorCode: 2403136,
|
|
250
|
+
ReclaimHostIsHostAlreadyErrorCode: 2409150,
|
|
251
|
+
};
|
|
252
|
+
|
|
239
253
|
export const DEFAULT_GET_STATS_FILTER = {
|
|
240
254
|
types: [
|
|
241
255
|
'track',
|
|
@@ -288,8 +302,6 @@ export const EVENT_TRIGGERS = {
|
|
|
288
302
|
MEETING_MEDIA_REMOTE_STARTED: 'meeting:media:remote:start',
|
|
289
303
|
MEETING_STARTED_RECORDING: 'meeting:recording:started',
|
|
290
304
|
MEETING_STOPPED_RECORDING: 'meeting:recording:stopped',
|
|
291
|
-
MEETING_STARTED_RECEIVING_TRANSCRIPTION: 'meeting:receiveTranscription:started',
|
|
292
|
-
MEETING_STOPPED_RECEIVING_TRANSCRIPTION: 'meeting:receiveTranscription:stopped',
|
|
293
305
|
MEETING_RECEIVE_REACTIONS: 'meeting:receiveReactions',
|
|
294
306
|
MEETING_PAUSED_RECORDING: 'meeting:recording:paused',
|
|
295
307
|
MEETING_RESUMED_RECORDING: 'meeting:recording:resumed',
|
|
@@ -331,6 +343,7 @@ export const EVENT_TRIGGERS = {
|
|
|
331
343
|
MEETING_UNLOCKED: 'meeting:unlocked',
|
|
332
344
|
MEETING_LOCKED: 'meeting:locked',
|
|
333
345
|
MEETING_INFO_AVAILABLE: 'meeting:meetingInfoAvailable',
|
|
346
|
+
MEETING_INFO_UPDATED: 'meeting:meetingInfoUpdated',
|
|
334
347
|
MEETING_LOG_UPLOAD_SUCCESS: 'meeting:logUpload:success',
|
|
335
348
|
MEETING_LOG_UPLOAD_FAILURE: 'meeting:logUpload:failure',
|
|
336
349
|
MEETING_ACTIONS_UPDATE: 'meeting:actionsUpdate',
|
|
@@ -362,6 +375,12 @@ export const EVENT_TRIGGERS = {
|
|
|
362
375
|
// Locus URL changed
|
|
363
376
|
MEETING_LOCUS_URL_UPDATE: 'meeting:locus:locusUrl:update',
|
|
364
377
|
MEETING_STREAM_PUBLISH_STATE_CHANGED: 'meeting:streamPublishStateChanged',
|
|
378
|
+
|
|
379
|
+
MEETING_TRANSCRIPTION_CONNECTED: 'meeting:transcription:connected',
|
|
380
|
+
MEETING_STARTED_RECEIVING_TRANSCRIPTION: 'meeting:receiveTranscription:started',
|
|
381
|
+
MEETING_STOPPED_RECEIVING_TRANSCRIPTION: 'meeting:receiveTranscription:stopped',
|
|
382
|
+
|
|
383
|
+
MEETING_CAPTION_RECEIVED: 'meeting:caption-received',
|
|
365
384
|
};
|
|
366
385
|
|
|
367
386
|
export const EVENT_TYPES = {
|
|
@@ -389,6 +408,7 @@ export const MEETING_REMOVED_REASON = {
|
|
|
389
408
|
NO_MEETINGS_TO_SYNC: 'NO_MEETINGS_TO_SYNC', // After the syncMeeting no meeting exists
|
|
390
409
|
MEETING_CONNECTION_FAILED: 'MEETING_CONNECTION_FAILED', // meeting failed to connect due to ice failures or firewall issue
|
|
391
410
|
LOCUS_DTO_SYNC_FAILED: 'LOCUS_DTO_SYNC_FAILED', // failed to get any Locus DTO for that meeting
|
|
411
|
+
MISSING_MEETING_INFO: 'MISSING_MEETING_INFO', // meeting info failed to be fetched
|
|
392
412
|
};
|
|
393
413
|
|
|
394
414
|
// One one one calls ends for the following reasons
|
|
@@ -485,6 +505,35 @@ export const ERROR_DICTIONARY = {
|
|
|
485
505
|
MESSAGE: 'Edit lock token mismatch',
|
|
486
506
|
CODE: 9,
|
|
487
507
|
},
|
|
508
|
+
NO_MEETING_INFO: {
|
|
509
|
+
NAME: 'NoMeetingInfo',
|
|
510
|
+
MESSAGE: 'No meeting info found for the meeting',
|
|
511
|
+
CODE: 10,
|
|
512
|
+
},
|
|
513
|
+
RECLAIM_HOST_ROLE_NOT_SUPPORTED: {
|
|
514
|
+
NAME: 'ReclaimHostRoleNotSupported',
|
|
515
|
+
MESSAGE:
|
|
516
|
+
'Non converged meetings, PSTN or SIP users in converged meetings are not supported currently.',
|
|
517
|
+
CODE: 11,
|
|
518
|
+
},
|
|
519
|
+
RECLAIM_HOST_ROLE_NOT_ALLOWED: {
|
|
520
|
+
NAME: 'ReclaimHostRoleNotAllowed',
|
|
521
|
+
MESSAGE:
|
|
522
|
+
'Reclaim Host Role Not Allowed For Other Participants. Participants cannot claim host role in PMR meeting, space instant meeting or escalated instant meeting. However, the original host still can reclaim host role when it manually makes another participant to be the host.',
|
|
523
|
+
CODE: 12,
|
|
524
|
+
},
|
|
525
|
+
RECLAIM_HOST_ROLE_EMPTY_OR_WRONG_KEY: {
|
|
526
|
+
NAME: 'ReclaimHostRoleEmptyOrWrongKey',
|
|
527
|
+
MESSAGE:
|
|
528
|
+
'Host Key Not Specified Or Matched. The original host can reclaim the host role without entering the host key. However, any other person who claims the host role must enter the host key to get it.',
|
|
529
|
+
CODE: 13,
|
|
530
|
+
},
|
|
531
|
+
RECLAIM_HOST_ROLE_IS_ALREADY_HOST: {
|
|
532
|
+
NAME: 'ReclaimHostRoleIsAlreadyHost',
|
|
533
|
+
MESSAGE:
|
|
534
|
+
'Participant Having Host Role Already. Participant who sends request to reclaim host role has already a host role.',
|
|
535
|
+
CODE: 14,
|
|
536
|
+
},
|
|
488
537
|
};
|
|
489
538
|
|
|
490
539
|
export const FLOOR_ACTION = {
|
|
@@ -540,6 +589,8 @@ export const LOCUS = {
|
|
|
540
589
|
INACTIVE: 'INACTIVE',
|
|
541
590
|
ENDED: 'ENDED',
|
|
542
591
|
INITIALIZING: 'INITIALIZING',
|
|
592
|
+
ACTIVE: 'ACTIVE',
|
|
593
|
+
TERMINATING: 'TERMINATING',
|
|
543
594
|
},
|
|
544
595
|
SEQUENCE: {
|
|
545
596
|
UN_DEF: 'undef',
|
|
@@ -623,7 +674,6 @@ export const LOCUSINFO = {
|
|
|
623
674
|
CONTROLS_MEETING_CONTAINER_UPDATED: 'CONTROLS_MEETING_CONTAINER_UPDATED',
|
|
624
675
|
CONTROLS_MEETING_INTERPRETATION_UPDATED: 'CONTROLS_MEETING_INTERPRETATION_UPDATED',
|
|
625
676
|
CONTROLS_ENTRY_EXIT_TONE_UPDATED: 'CONTROLS_ENTRY_EXIT_TONE_UPDATED',
|
|
626
|
-
CONTROLS_JOIN_BREAKOUT_FROM_MAIN: 'CONTROLS_JOIN_BREAKOUT_FROM_MAIN',
|
|
627
677
|
CONTROLS_MUTE_ON_ENTRY_CHANGED: 'CONTROLS_MUTE_ON_ENTRY_CHANGED',
|
|
628
678
|
CONTROLS_SHARE_CONTROL_CHANGED: 'CONTROLS_SHARE_CONTROL_CHANGED',
|
|
629
679
|
CONTROLS_DISALLOW_UNMUTE_CHANGED: 'CONTROLS_DISALLOW_UNMUTE_CHANGED',
|
|
@@ -921,6 +971,7 @@ export const SELF_ROLES = {
|
|
|
921
971
|
COHOST: 'COHOST',
|
|
922
972
|
MODERATOR: 'MODERATOR',
|
|
923
973
|
ATTENDEE: 'ATTENDEE',
|
|
974
|
+
PRESENTER: 'PRESENTER',
|
|
924
975
|
};
|
|
925
976
|
|
|
926
977
|
export const MEETING_STATE = {
|
|
@@ -996,7 +1047,9 @@ export const RECONNECTION = {
|
|
|
996
1047
|
DEFAULT_TRY_COUNT: 0,
|
|
997
1048
|
DEFAULT_STATUS: '',
|
|
998
1049
|
},
|
|
999
|
-
};
|
|
1050
|
+
} as const;
|
|
1051
|
+
|
|
1052
|
+
export type RECONNECTION_STATE = Enum<typeof RECONNECTION.STATE>;
|
|
1000
1053
|
|
|
1001
1054
|
export const RESOURCE = {
|
|
1002
1055
|
CLUSTERS: 'clusters',
|
|
@@ -1032,7 +1085,9 @@ export const NETWORK_STATUS = {
|
|
|
1032
1085
|
DISCONNECTED: 'DISCONNECTED',
|
|
1033
1086
|
RECONNECTING: 'RECONNECTING',
|
|
1034
1087
|
CONNECTED: 'CONNECTED',
|
|
1035
|
-
};
|
|
1088
|
+
} as const;
|
|
1089
|
+
|
|
1090
|
+
export type NETWORK_STATUS = Enum<typeof NETWORK_STATUS>;
|
|
1036
1091
|
|
|
1037
1092
|
export const NETWORK_TYPE = {
|
|
1038
1093
|
VPN: 'vpn',
|
|
@@ -1191,7 +1246,7 @@ export const AVAILABLE_RESOLUTIONS = {
|
|
|
1191
1246
|
* mqa Interval for sending stats metrics
|
|
1192
1247
|
*/
|
|
1193
1248
|
|
|
1194
|
-
export const
|
|
1249
|
+
export const MQA_INTERVAL = 60000; // mqa analyzer interval its fixed to 60000
|
|
1195
1250
|
|
|
1196
1251
|
export const MEDIA_DEVICES = {
|
|
1197
1252
|
MICROPHONE: 'microphone',
|
|
@@ -1248,4 +1303,18 @@ export const IP_VERSION = {
|
|
|
1248
1303
|
ipv4_and_ipv6: 1,
|
|
1249
1304
|
} as const;
|
|
1250
1305
|
|
|
1251
|
-
export
|
|
1306
|
+
export const LOCAL_SHARE_ERRORS = {
|
|
1307
|
+
DEVICE_NOT_JOINED: 'Floor requested but device not yet joined',
|
|
1308
|
+
UNDEFINED: 'undefined PUT',
|
|
1309
|
+
NO_MEDIA_FOR_DEVICE: 'No media session found for device',
|
|
1310
|
+
NO_CONFLUENCE_ID: 'Failed to request floor: 404 (null) could not find confluence id',
|
|
1311
|
+
CONTENT_SHARING_DISABLED: 'Content share policies are disabled',
|
|
1312
|
+
LOCUS_PARTICIPANT_DNE: 'does not exist in Locus',
|
|
1313
|
+
CONTENT_REQUEST_WHILE_PENDING_WHITEBOARD:
|
|
1314
|
+
'Content share request is not allowed while whiteboard floor request is pending',
|
|
1315
|
+
};
|
|
1316
|
+
export type IP_VERSION = Enum<typeof IP_VERSION>;
|
|
1317
|
+
|
|
1318
|
+
// constant for if the permissionToken is about to expire in the next 30 seconds, refresh it
|
|
1319
|
+
export const MEETING_PERMISSION_TOKEN_REFRESH_THRESHOLD_IN_SEC = 30;
|
|
1320
|
+
export const MEETING_PERMISSION_TOKEN_REFRESH_REASON = 'ttl-join';
|
package/src/index.ts
CHANGED
|
@@ -3,9 +3,13 @@ import {registerPlugin} from '@webex/webex-core';
|
|
|
3
3
|
|
|
4
4
|
import Meetings from './meetings';
|
|
5
5
|
import config from './config';
|
|
6
|
+
import {LocusRetryStatusInterceptor} from './interceptors';
|
|
6
7
|
|
|
7
8
|
registerPlugin('meetings', Meetings, {
|
|
8
9
|
config,
|
|
10
|
+
interceptors: {
|
|
11
|
+
LocusRetryStatusInterceptor: LocusRetryStatusInterceptor.create,
|
|
12
|
+
},
|
|
9
13
|
});
|
|
10
14
|
|
|
11
15
|
export {
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import {Interceptor} from '@webex/http-core';
|
|
6
|
+
|
|
7
|
+
const rateLimitExpiryTime = new WeakMap();
|
|
8
|
+
/**
|
|
9
|
+
* @class
|
|
10
|
+
*/
|
|
11
|
+
export default class LocusRetryStatusInterceptor extends Interceptor {
|
|
12
|
+
/**
|
|
13
|
+
* @returns {LocusRetryStatusInterceptor}
|
|
14
|
+
*/
|
|
15
|
+
static create() {
|
|
16
|
+
// @ts-ignore
|
|
17
|
+
return new LocusRetryStatusInterceptor({webex: this});
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Handle response errors
|
|
22
|
+
* @param {Object} options
|
|
23
|
+
* @param {WebexHttpError} reason
|
|
24
|
+
* @returns {Promise<WebexHttpError>}
|
|
25
|
+
*/
|
|
26
|
+
onResponseError(options, reason) {
|
|
27
|
+
if ((reason.statusCode === 503 || reason.statusCode === 429) && options.uri.includes('locus')) {
|
|
28
|
+
const hasRetriedLocusRequest = rateLimitExpiryTime.get(this);
|
|
29
|
+
const retryAfterTime = options.headers['retry-after'] || 2000;
|
|
30
|
+
|
|
31
|
+
if (hasRetriedLocusRequest) {
|
|
32
|
+
rateLimitExpiryTime.set(this, false);
|
|
33
|
+
|
|
34
|
+
return Promise.reject(options);
|
|
35
|
+
}
|
|
36
|
+
rateLimitExpiryTime.set(this, true);
|
|
37
|
+
|
|
38
|
+
return this.handleRetryRequestLocusServiceError(options, retryAfterTime);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return Promise.reject(reason);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Handle retries for locus service unavailable errors
|
|
46
|
+
* @param {Object} options associated with the request
|
|
47
|
+
* @param {number} retryAfterTime retry after time in milliseconds
|
|
48
|
+
* @returns {Promise}
|
|
49
|
+
*/
|
|
50
|
+
handleRetryRequestLocusServiceError(options, retryAfterTime) {
|
|
51
|
+
return new Promise((resolve, reject) => {
|
|
52
|
+
const timeout = setTimeout(() => {
|
|
53
|
+
clearTimeout(timeout);
|
|
54
|
+
|
|
55
|
+
// @ts-ignore
|
|
56
|
+
this.webex
|
|
57
|
+
.request({
|
|
58
|
+
method: options.method,
|
|
59
|
+
uri: options.uri,
|
|
60
|
+
body: options.body,
|
|
61
|
+
})
|
|
62
|
+
.then(resolve)
|
|
63
|
+
.catch(reject);
|
|
64
|
+
}, retryAfterTime);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
package/src/locus-info/index.ts
CHANGED
|
@@ -169,7 +169,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
169
169
|
* @returns {undefined}
|
|
170
170
|
*/
|
|
171
171
|
applyLocusDeltaData(action: string, locus: any, meeting: any) {
|
|
172
|
-
const {DESYNC, USE_CURRENT, USE_INCOMING, WAIT} = LocusDeltaParser.loci;
|
|
172
|
+
const {DESYNC, USE_CURRENT, USE_INCOMING, WAIT, LOCUS_URL_CHANGED} = LocusDeltaParser.loci;
|
|
173
173
|
|
|
174
174
|
switch (action) {
|
|
175
175
|
case USE_INCOMING:
|
|
@@ -180,6 +180,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
180
180
|
// do nothing
|
|
181
181
|
break;
|
|
182
182
|
case DESYNC:
|
|
183
|
+
case LOCUS_URL_CHANGED:
|
|
183
184
|
this.doLocusSync(meeting);
|
|
184
185
|
break;
|
|
185
186
|
default:
|
|
@@ -1168,7 +1169,10 @@ export default class LocusInfo extends EventsScope {
|
|
|
1168
1169
|
file: 'locus-info',
|
|
1169
1170
|
function: 'updateMeetingInfo',
|
|
1170
1171
|
},
|
|
1171
|
-
LOCUSINFO.EVENTS.MEETING_INFO_UPDATED
|
|
1172
|
+
LOCUSINFO.EVENTS.MEETING_INFO_UPDATED,
|
|
1173
|
+
{
|
|
1174
|
+
isInitializing: !self, // if self is undefined, then the update is caused by locus init
|
|
1175
|
+
}
|
|
1172
1176
|
);
|
|
1173
1177
|
}
|
|
1174
1178
|
this.roles = roles;
|
|
@@ -1603,7 +1607,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1603
1607
|
|
|
1604
1608
|
/**
|
|
1605
1609
|
* if return from breakout to main session, need to use cached main session DTO since locus won't send the full locus (participants)
|
|
1606
|
-
* if join breakout from main session,
|
|
1610
|
+
* if join breakout from main session, main session is not active for the attendee and remove main session locus cache
|
|
1607
1611
|
* @param {Object} newLocus
|
|
1608
1612
|
* @returns {Object}
|
|
1609
1613
|
* @memberof LocusInfo
|
|
@@ -1613,17 +1617,18 @@ export default class LocusInfo extends EventsScope {
|
|
|
1613
1617
|
if (switchStatus.isReturnToMain && this.mainSessionLocusCache) {
|
|
1614
1618
|
return cloneDeep(this.mainSessionLocusCache);
|
|
1615
1619
|
}
|
|
1616
|
-
|
|
1617
|
-
this.
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1620
|
+
const isMainSessionDTO =
|
|
1621
|
+
this.mainSessionLocusCache && ControlsUtils.isMainSessionDTO(this.mainSessionLocusCache);
|
|
1622
|
+
|
|
1623
|
+
if (isMainSessionDTO) {
|
|
1624
|
+
const isActive =
|
|
1625
|
+
[LOCUS.STATE.ACTIVE, LOCUS.STATE.INITIALIZING, LOCUS.STATE.TERMINATING].includes(
|
|
1626
|
+
this.fullState?.state
|
|
1627
|
+
) && !this.mainSessionLocusCache?.self?.removed;
|
|
1628
|
+
|
|
1629
|
+
if (!isActive) {
|
|
1630
|
+
this.clearMainSessionLocusCache();
|
|
1631
|
+
}
|
|
1627
1632
|
}
|
|
1628
1633
|
|
|
1629
1634
|
return newLocus;
|
|
@@ -16,6 +16,7 @@ MediaSharesUtils.parse = (mediaShares: object) => {
|
|
|
16
16
|
annotation: MediaSharesUtils.getContentAnnotation(mediaShares),
|
|
17
17
|
url: MediaSharesUtils.getContentUrl(mediaShares),
|
|
18
18
|
shareInstanceId: MediaSharesUtils.getShareInstanceId(mediaShares),
|
|
19
|
+
deviceUrlSharing: MediaSharesUtils.getContentBeneficiaryDeviceUrl(mediaShares),
|
|
19
20
|
},
|
|
20
21
|
whiteboard: {
|
|
21
22
|
beneficiaryId: MediaSharesUtils.getWhiteboardBeneficiaryId(mediaShares),
|
|
@@ -188,6 +189,21 @@ MediaSharesUtils.getShareInstanceId = (mediaShares: object) => {
|
|
|
188
189
|
return extractContent.floor.shareInstanceId;
|
|
189
190
|
};
|
|
190
191
|
|
|
192
|
+
/**
|
|
193
|
+
* get deviceUrl that is requesting the floor for media shares (content)
|
|
194
|
+
* @param {Object} mediaShares
|
|
195
|
+
* @returns {Object}
|
|
196
|
+
*/
|
|
197
|
+
MediaSharesUtils.getContentBeneficiaryDeviceUrl = (mediaShares: object) => {
|
|
198
|
+
const contentFloor = MediaSharesUtils.extractContentFloor(mediaShares);
|
|
199
|
+
|
|
200
|
+
if (!contentFloor || !contentFloor.beneficiary || !contentFloor.beneficiary.deviceUrl) {
|
|
201
|
+
return null;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
return contentFloor.beneficiary.deviceUrl;
|
|
205
|
+
};
|
|
206
|
+
|
|
191
207
|
/**
|
|
192
208
|
* get who is sharing from media shares (whiteboard)
|
|
193
209
|
* @param {Object} mediaShares
|