@webex/plugin-meetings 3.0.0-beta.17 → 3.0.0-beta.170
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -1
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +359 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +216 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.js +23 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +1048 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.js +78 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.js +67 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/errors/webex-errors.js +3 -2
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/config.js +6 -8
- package/dist/config.js.map +1 -1
- package/dist/constants.js +194 -28
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +14 -0
- package/dist/controls-options-manager/constants.js.map +1 -0
- package/dist/controls-options-manager/enums.js +27 -0
- package/dist/controls-options-manager/enums.js.map +1 -0
- package/dist/controls-options-manager/index.js +297 -0
- package/dist/controls-options-manager/index.js.map +1 -0
- package/dist/controls-options-manager/types.js +7 -0
- package/dist/controls-options-manager/types.js.map +1 -0
- package/dist/controls-options-manager/util.js +300 -0
- package/dist/controls-options-manager/util.js.map +1 -0
- package/dist/index.js +95 -0
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +214 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +25 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +92 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +350 -41
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +43 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +2 -1
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +97 -14
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +39 -134
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +19 -97
- package/dist/media/properties.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +505 -493
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +76 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2640 -2436
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +291 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +229 -124
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +191 -167
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +477 -466
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +48 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +172 -50
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +20 -5
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +22 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +377 -82
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +16 -12
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +88 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +43 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +15 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +97 -3
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +10 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +94 -11
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +109 -39
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +316 -233
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +3 -5
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -468
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +265 -36
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +52 -19
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +53 -33
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +44 -18
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +60 -3
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +322 -103
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +4 -2
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/reachability/index.js +117 -60
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +12 -5
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/constants.js +13 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.js +2 -2
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.js +18 -18
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +217 -162
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +17 -0
- package/dist/recording-controller/enums.js.map +1 -0
- package/dist/recording-controller/index.js +363 -0
- package/dist/recording-controller/index.js.map +1 -0
- package/dist/recording-controller/util.js +64 -0
- package/dist/recording-controller/util.js.map +1 -0
- package/dist/roap/index.js +21 -29
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +135 -94
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +135 -53
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/global.js +1 -93
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +329 -314
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +103 -54
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +43 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +124 -0
- package/dist/types/breakouts/breakout.d.ts +8 -0
- package/dist/types/breakouts/collection.d.ts +5 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/index.d.ts +5 -0
- package/dist/types/breakouts/request.d.ts +22 -0
- package/dist/types/breakouts/utils.d.ts +15 -0
- package/dist/types/common/browser-detection.d.ts +9 -0
- package/dist/types/common/collection.d.ts +48 -0
- package/dist/types/common/config.d.ts +2 -0
- package/dist/types/common/errors/captcha-error.d.ts +15 -0
- package/dist/types/common/errors/intent-to-join.d.ts +16 -0
- package/dist/types/common/errors/join-meeting.d.ts +17 -0
- package/dist/types/common/errors/media.d.ts +15 -0
- package/dist/types/common/errors/parameter.d.ts +15 -0
- package/dist/types/common/errors/password-error.d.ts +15 -0
- package/dist/types/common/errors/permission.d.ts +14 -0
- package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/types/common/errors/reconnection.d.ts +15 -0
- package/dist/types/common/errors/stats.d.ts +15 -0
- package/dist/types/common/errors/webex-errors.d.ts +69 -0
- package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
- package/dist/types/common/events/events-scope.d.ts +17 -0
- package/dist/types/common/events/events.d.ts +12 -0
- package/dist/types/common/events/trigger-proxy.d.ts +2 -0
- package/dist/types/common/events/util.d.ts +2 -0
- package/dist/types/common/logs/logger-config.d.ts +2 -0
- package/dist/types/common/logs/logger-proxy.d.ts +2 -0
- package/dist/types/common/logs/request.d.ts +34 -0
- package/dist/types/common/queue.d.ts +32 -0
- package/dist/types/config.d.ts +72 -0
- package/dist/types/constants.d.ts +1007 -0
- package/dist/types/controls-options-manager/constants.d.ts +4 -0
- package/dist/types/controls-options-manager/enums.d.ts +15 -0
- package/dist/types/controls-options-manager/index.d.ts +136 -0
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/interpretation/collection.d.ts +5 -0
- package/dist/types/interpretation/index.d.ts +5 -0
- package/dist/types/interpretation/siLanguage.d.ts +5 -0
- package/dist/types/locus-info/controlsUtils.d.ts +2 -0
- package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
- package/dist/types/locus-info/fullState.d.ts +2 -0
- package/dist/types/locus-info/hostUtils.d.ts +2 -0
- package/dist/types/locus-info/index.d.ts +315 -0
- package/dist/types/locus-info/infoUtils.d.ts +2 -0
- package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
- package/dist/types/locus-info/parser.d.ts +212 -0
- package/dist/types/locus-info/selfUtils.d.ts +2 -0
- package/dist/types/media/index.d.ts +34 -0
- package/dist/types/media/properties.d.ts +86 -0
- package/dist/types/media/util.d.ts +2 -0
- package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +149 -0
- package/dist/types/meeting/index.d.ts +1430 -0
- package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
- package/dist/types/meeting/muteState.d.ts +184 -0
- package/dist/types/meeting/request.d.ts +270 -0
- package/dist/types/meeting/request.type.d.ts +11 -0
- package/dist/types/meeting/state.d.ts +9 -0
- package/dist/types/meeting/util.d.ts +77 -0
- package/dist/types/meeting-info/collection.d.ts +20 -0
- package/dist/types/meeting-info/index.d.ts +62 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
- package/dist/types/meeting-info/request.d.ts +22 -0
- package/dist/types/meeting-info/util.d.ts +2 -0
- package/dist/types/meeting-info/utilv2.d.ts +2 -0
- package/dist/types/meetings/collection.d.ts +31 -0
- package/dist/types/meetings/index.d.ts +365 -0
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/meetings/request.d.ts +27 -0
- package/dist/types/meetings/util.d.ts +18 -0
- package/dist/types/member/index.d.ts +158 -0
- package/dist/types/member/types.d.ts +21 -0
- package/dist/types/member/util.d.ts +2 -0
- package/dist/types/members/collection.d.ts +29 -0
- package/dist/types/members/index.d.ts +353 -0
- package/dist/types/members/request.d.ts +114 -0
- package/dist/types/members/types.d.ts +24 -0
- package/dist/types/members/util.d.ts +210 -0
- package/dist/types/metrics/constants.d.ts +55 -0
- package/dist/types/metrics/index.d.ts +45 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
- package/dist/types/multistream/receiveSlot.d.ts +68 -0
- package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/types/multistream/remoteMedia.d.ts +72 -0
- package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
- package/dist/types/networkQualityMonitor/index.d.ts +70 -0
- package/dist/types/personal-meeting-room/index.d.ts +47 -0
- package/dist/types/personal-meeting-room/request.d.ts +14 -0
- package/dist/types/personal-meeting-room/util.d.ts +2 -0
- package/dist/types/reachability/index.d.ts +152 -0
- package/dist/types/reachability/request.d.ts +37 -0
- package/dist/types/reactions/constants.d.ts +3 -0
- package/dist/types/reactions/reactions.d.ts +4 -0
- package/dist/types/reactions/reactions.type.d.ts +52 -0
- package/dist/types/reconnection-manager/index.d.ts +126 -0
- package/dist/types/recording-controller/enums.d.ts +7 -0
- package/dist/types/recording-controller/index.d.ts +208 -0
- package/dist/types/recording-controller/util.d.ts +14 -0
- package/dist/types/roap/index.d.ts +77 -0
- package/dist/types/roap/request.d.ts +36 -0
- package/dist/types/roap/turnDiscovery.d.ts +91 -0
- package/dist/types/statsAnalyzer/global.d.ts +36 -0
- package/dist/types/statsAnalyzer/index.d.ts +200 -0
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
- package/dist/types/transcription/index.d.ts +64 -0
- package/package.json +29 -21
- package/src/annotation/annotation.types.ts +52 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +343 -0
- package/src/breakouts/README.md +220 -0
- package/src/breakouts/breakout.ts +188 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +925 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/errors/webex-errors.ts +6 -2
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/config.ts +5 -7
- package/src/constants.ts +183 -22
- package/src/controls-options-manager/constants.ts +5 -0
- package/src/controls-options-manager/enums.ts +18 -0
- package/src/controls-options-manager/index.ts +278 -0
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +286 -0
- package/src/index.ts +37 -0
- package/src/interpretation/README.md +51 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +182 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +110 -0
- package/src/locus-info/index.ts +374 -38
- package/src/locus-info/mediaSharesUtils.ts +48 -0
- package/src/locus-info/parser.ts +2 -1
- package/src/locus-info/selfUtils.ts +86 -2
- package/src/media/index.ts +70 -142
- package/src/media/properties.ts +41 -104
- package/src/mediaQualityMetrics/config.ts +379 -377
- package/src/meeting/in-meeting-actions.ts +151 -3
- package/src/meeting/index.ts +2029 -2033
- package/src/meeting/locusMediaRequest.ts +309 -0
- package/src/meeting/muteState.ts +228 -132
- package/src/meeting/request.ts +100 -91
- package/src/meeting/request.type.ts +2 -0
- package/src/meeting/util.ts +450 -439
- package/src/meeting-info/index.ts +54 -8
- package/src/meeting-info/meeting-info-v2.ts +150 -14
- package/src/meeting-info/utilv2.ts +13 -3
- package/src/meetings/collection.ts +20 -0
- package/src/meetings/index.ts +396 -89
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +3 -1
- package/src/meetings/util.ts +103 -4
- package/src/member/index.ts +42 -0
- package/src/member/types.ts +24 -0
- package/src/member/util.ts +95 -1
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +108 -6
- package/src/members/request.ts +98 -17
- package/src/members/types.ts +28 -0
- package/src/members/util.ts +319 -240
- package/src/metrics/constants.ts +2 -4
- package/src/metrics/index.ts +1 -490
- package/src/multistream/mediaRequestManager.ts +337 -63
- package/src/multistream/receiveSlot.ts +68 -26
- package/src/multistream/receiveSlotManager.ts +61 -38
- package/src/multistream/remoteMedia.ts +29 -3
- package/src/multistream/remoteMediaGroup.ts +61 -2
- package/src/multistream/remoteMediaManager.ts +260 -66
- package/src/networkQualityMonitor/index.ts +6 -6
- package/src/reachability/index.ts +75 -25
- package/src/reachability/request.ts +10 -5
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +28 -3
- package/src/reconnection-manager/index.ts +80 -49
- package/src/recording-controller/enums.ts +8 -0
- package/src/recording-controller/index.ts +333 -0
- package/src/recording-controller/util.ts +75 -0
- package/src/roap/index.ts +21 -30
- package/src/roap/request.ts +72 -61
- package/src/roap/turnDiscovery.ts +51 -27
- package/src/statsAnalyzer/global.ts +1 -94
- package/src/statsAnalyzer/index.ts +380 -390
- package/src/statsAnalyzer/mqaUtil.ts +106 -99
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +331 -254
- package/test/integration/spec/space-meeting.js +77 -4
- package/test/unit/spec/annotation/index.ts +436 -0
- package/test/unit/spec/breakouts/breakout.ts +237 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1790 -0
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +72 -0
- package/test/unit/spec/controls-options-manager/index.js +287 -0
- package/test/unit/spec/controls-options-manager/util.js +518 -0
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +329 -0
- package/test/unit/spec/interpretation/siLanguage.ts +26 -0
- package/test/unit/spec/locus-info/controlsUtils.js +323 -30
- package/test/unit/spec/locus-info/index.js +792 -4
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
- package/test/unit/spec/locus-info/selfConstant.js +48 -0
- package/test/unit/spec/locus-info/selfUtils.js +275 -0
- package/test/unit/spec/media/index.ts +118 -22
- package/test/unit/spec/media/properties.ts +9 -9
- package/test/unit/spec/meeting/in-meeting-actions.ts +75 -3
- package/test/unit/spec/meeting/index.js +2742 -1441
- package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
- package/test/unit/spec/meeting/muteState.js +370 -208
- package/test/unit/spec/meeting/request.js +354 -42
- package/test/unit/spec/meeting/utils.js +384 -170
- package/test/unit/spec/meeting-info/index.js +181 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +14 -0
- package/test/unit/spec/meetings/index.js +847 -121
- package/test/unit/spec/meetings/utils.js +206 -2
- package/test/unit/spec/member/index.js +31 -0
- package/test/unit/spec/member/util.js +408 -32
- package/test/unit/spec/members/index.js +320 -1
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +184 -0
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +1012 -109
- package/test/unit/spec/multistream/receiveSlot.ts +77 -18
- package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
- package/test/unit/spec/multistream/remoteMedia.ts +32 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +672 -65
- package/test/unit/spec/networkQualityMonitor/index.js +4 -4
- package/test/unit/spec/reachability/index.ts +176 -25
- package/test/unit/spec/reachability/request.js +66 -0
- package/test/unit/spec/reconnection-manager/index.js +95 -13
- package/test/unit/spec/recording-controller/index.js +307 -0
- package/test/unit/spec/recording-controller/util.js +229 -0
- package/test/unit/spec/roap/index.ts +28 -52
- package/test/unit/spec/roap/request.ts +225 -0
- package/test/unit/spec/roap/turnDiscovery.ts +73 -34
- package/test/unit/spec/stats-analyzer/index.js +94 -43
- package/test/utils/constants.js +9 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -45
- package/test/utils/webex-config.js +4 -0
- package/test/utils/webex-test-users.js +7 -3
- package/tsconfig.json +6 -0
- package/dist/media/internal-media-core-wrapper.js +0 -18
- package/dist/media/internal-media-core-wrapper.js.map +0 -1
- package/dist/meeting/effectsState.js +0 -262
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -299
- package/dist/metrics/config.js.map +0 -1
- package/dist/multistream/multistreamMedia.js +0 -106
- package/dist/multistream/multistreamMedia.js.map +0 -1
- package/src/index.js +0 -15
- package/src/media/internal-media-core-wrapper.ts +0 -9
- package/src/meeting/effectsState.ts +0 -211
- package/src/metrics/config.ts +0 -495
- package/src/multistream/multistreamMedia.ts +0 -93
- package/test/unit/spec/meeting/effectsState.js +0 -281
package/dist/roap/index.js
CHANGED
|
@@ -110,11 +110,8 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
110
110
|
roapMessage: roapMessage,
|
|
111
111
|
locusSelfUrl: meeting.selfUrl,
|
|
112
112
|
mediaId: options.mediaId,
|
|
113
|
-
correlationId: options.correlationId,
|
|
114
|
-
audioMuted: meeting.isAudioMuted(),
|
|
115
|
-
videoMuted: meeting.isVideoMuted(),
|
|
116
113
|
meetingId: meeting.id,
|
|
117
|
-
|
|
114
|
+
locusMediaRequest: meeting.locusMediaRequest
|
|
118
115
|
}).then(function () {
|
|
119
116
|
_loggerProxy.default.logger.log("Roap:index#sendRoapOK --> ROAP OK sent with seq ".concat(options.seq));
|
|
120
117
|
});
|
|
@@ -144,11 +141,8 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
144
141
|
roapMessage: roapMessage,
|
|
145
142
|
locusSelfUrl: meeting.selfUrl,
|
|
146
143
|
mediaId: options.mediaId,
|
|
147
|
-
correlationId: options.correlationId,
|
|
148
|
-
audioMuted: meeting.isAudioMuted(),
|
|
149
|
-
videoMuted: meeting.isVideoMuted(),
|
|
150
144
|
meetingId: meeting.id,
|
|
151
|
-
|
|
145
|
+
locusMediaRequest: meeting.locusMediaRequest
|
|
152
146
|
});
|
|
153
147
|
}
|
|
154
148
|
|
|
@@ -173,11 +167,8 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
173
167
|
roapMessage: roapMessage,
|
|
174
168
|
locusSelfUrl: meeting.selfUrl,
|
|
175
169
|
mediaId: options.mediaId,
|
|
176
|
-
correlationId: options.correlationId,
|
|
177
|
-
audioMuted: meeting.isAudioMuted(),
|
|
178
|
-
videoMuted: meeting.isVideoMuted(),
|
|
179
170
|
meetingId: meeting.id,
|
|
180
|
-
|
|
171
|
+
locusMediaRequest: meeting.locusMediaRequest
|
|
181
172
|
}).then(function () {
|
|
182
173
|
_loggerProxy.default.logger.log("Roap:index#sendRoapError --> ROAP ERROR sent with seq ".concat(options.seq));
|
|
183
174
|
});
|
|
@@ -192,6 +183,7 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
192
183
|
}, {
|
|
193
184
|
key: "sendRoapMediaRequest",
|
|
194
185
|
value: function sendRoapMediaRequest(options) {
|
|
186
|
+
var _this3 = this;
|
|
195
187
|
var meeting = options.meeting,
|
|
196
188
|
seq = options.seq,
|
|
197
189
|
sdp = options.sdp,
|
|
@@ -208,23 +200,23 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
208
200
|
// When reconnecting, it's important that the first roap message being sent out has empty media id.
|
|
209
201
|
// Normally this is the roap offer, but when TURN discovery is enabled,
|
|
210
202
|
// then this is the TURN discovery request message
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
mediaConnections
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
203
|
+
return this.turnDiscovery.isSkipped(meeting).then(function (isTurnDiscoverySkipped) {
|
|
204
|
+
var sendEmptyMediaId = reconnect && isTurnDiscoverySkipped;
|
|
205
|
+
return _this3.roapRequest.sendRoap({
|
|
206
|
+
roapMessage: roapMessage,
|
|
207
|
+
locusSelfUrl: meeting.selfUrl,
|
|
208
|
+
mediaId: sendEmptyMediaId ? '' : meeting.mediaId,
|
|
209
|
+
meetingId: meeting.id,
|
|
210
|
+
preferTranscoding: !meeting.isMultistream,
|
|
211
|
+
locusMediaRequest: meeting.locusMediaRequest
|
|
212
|
+
}).then(function (_ref) {
|
|
213
|
+
var locus = _ref.locus,
|
|
214
|
+
mediaConnections = _ref.mediaConnections;
|
|
215
|
+
if (mediaConnections) {
|
|
216
|
+
meeting.updateMediaConnections(mediaConnections);
|
|
217
|
+
}
|
|
218
|
+
return locus;
|
|
219
|
+
});
|
|
228
220
|
});
|
|
229
221
|
}
|
|
230
222
|
|
package/dist/roap/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Roap","attrs","options","roapRequest","RoapRequest","turnDiscovery","TurnDiscovery","resolve","then","meeting","webex","meetings","meetingCollection","getByKey","correlationId","roapMessage","messageType","ROAP","ROAP_TYPES","OK","version","ROAP_VERSION","seq","LoggerProxy","logger","log","sendRoap","locusSelfUrl","selfUrl","mediaId","audioMuted","isAudioMuted","videoMuted","isVideoMuted","meetingId","id","preferTranscoding","isMultistream","ANSWER","sdps","sdp","ERROR","errorType","reconnect","tieBreaker","OFFER","sendEmptyMediaId","config","experimental","enableTurnDiscovery","locus","mediaConnections","updateMediaConnections","isReconnecting","doTurnDiscovery","StatelessWebexPlugin"],"sources":["index.ts"],"sourcesContent":["// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport {ROAP} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport RoapRequest from './request';\nimport TurnDiscovery from './turnDiscovery';\nimport Meeting from '../meeting';\n\n/**\n * Roap options\n * @typedef {Object} RoapOptions\n * @property {String} sdp\n * @property {Meeting} meeting\n * @property {Number} seq\n * @property {Number} tieBreaker\n * @property {Boolean} reconnect\n */\n\n/**\n * @typedef {Object} SeqOptions\n * @property {String} correlationId\n * @property {String} mediaId\n * @property {Number} seq\n */\n\n/**\n * @class Roap\n * @export\n * @private\n */\nexport default class Roap extends StatelessWebexPlugin {\n attrs: any;\n lastRoapOffer: any;\n options: any;\n roapHandler: any;\n roapRequest: any;\n turnDiscovery: any;\n\n /**\n *\n * @param {Object} attrs\n * @param {Object} options\n */\n constructor(attrs: any, options: any) {\n super({}, options);\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof Roap\n */\n this.attrs = attrs;\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof Roap\n */\n this.options = options;\n /**\n * The Roap Request Server Proxy Object\n * @instance\n * @type {RoapRequest}\n * @private\n * @memberof Roap\n */\n // @ts-ignore\n this.roapRequest = new RoapRequest({}, options);\n\n this.turnDiscovery = new TurnDiscovery(this.roapRequest);\n }\n\n /**\n *\n * @param {SeqOptions} options\n * @returns {null}\n * @memberof Roap\n */\n public sendRoapOK(options: any) {\n return Promise.resolve().then(() => {\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey(\n 'correlationId',\n options.correlationId\n );\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.OK,\n version: ROAP.ROAP_VERSION,\n seq: options.seq,\n };\n\n LoggerProxy.logger.log(`Roap:index#sendRoapOK --> ROAP OK sending with seq ${options.seq}`);\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n correlationId: options.correlationId,\n audioMuted: meeting.isAudioMuted(),\n videoMuted: meeting.isVideoMuted(),\n meetingId: meeting.id,\n preferTranscoding: !meeting.isMultistream,\n })\n .then(() => {\n LoggerProxy.logger.log(`Roap:index#sendRoapOK --> ROAP OK sent with seq ${options.seq}`);\n });\n });\n }\n\n /**\n * Sends a ROAP answer...\n * @param {SeqOptions} options\n * @param {Boolean} options.audioMuted\n * @param {Boolean} options.videoMuted\n * @returns {Promise}\n * @memberof Roap\n */\n public sendRoapAnswer(options: any) {\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey(\n 'correlationId',\n options.correlationId\n );\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.ANSWER,\n sdps: [options.sdp],\n version: ROAP.ROAP_VERSION,\n seq: options.seq,\n };\n\n return this.roapRequest.sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n correlationId: options.correlationId,\n audioMuted: meeting.isAudioMuted(),\n videoMuted: meeting.isVideoMuted(),\n meetingId: meeting.id,\n preferTranscoding: !meeting.isMultistream,\n });\n }\n\n /**\n * Sends a ROAP error...\n * @param {Object} options\n * @returns {Promise}\n * @memberof Roap\n */\n sendRoapError(options) {\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey(\n 'correlationId',\n options.correlationId\n );\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.ERROR,\n version: ROAP.ROAP_VERSION,\n errorType: options.errorType,\n seq: options.seq,\n };\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n correlationId: options.correlationId,\n audioMuted: meeting.isAudioMuted(),\n videoMuted: meeting.isVideoMuted(),\n meetingId: meeting.id,\n preferTranscoding: !meeting.isMultistream,\n })\n .then(() => {\n LoggerProxy.logger.log(\n `Roap:index#sendRoapError --> ROAP ERROR sent with seq ${options.seq}`\n );\n });\n }\n\n /**\n * sends a roap media request\n * @param {RoapOptions} options\n * @returns {Promise}\n * @memberof Roap\n */\n sendRoapMediaRequest(options: any) {\n const {meeting, seq, sdp, reconnect, tieBreaker} = options;\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.OFFER,\n sdps: [sdp],\n version: ROAP.ROAP_VERSION,\n seq,\n tieBreaker,\n };\n\n // When reconnecting, it's important that the first roap message being sent out has empty media id.\n // Normally this is the roap offer, but when TURN discovery is enabled,\n // then this is the TURN discovery request message\n const sendEmptyMediaId = reconnect && !meeting.config.experimental.enableTurnDiscovery;\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n correlationId: meeting.correlationId,\n locusSelfUrl: meeting.selfUrl,\n mediaId: sendEmptyMediaId ? '' : meeting.mediaId,\n audioMuted: meeting.isAudioMuted(),\n videoMuted: meeting.isVideoMuted(),\n meetingId: meeting.id,\n preferTranscoding: !meeting.isMultistream,\n })\n .then(({locus, mediaConnections}) => {\n if (mediaConnections) {\n meeting.updateMediaConnections(mediaConnections);\n }\n\n return locus;\n });\n }\n\n /**\n * Performs a TURN server discovery procedure, which involves exchanging\n * some roap messages with the server. This exchange has to be done before\n * any other roap messages are sent\n *\n * @param {Meeting} meeting\n * @param {Boolean} isReconnecting should be set to true if this is a new\n * media connection just after a reconnection\n * @returns {Promise}\n */\n doTurnDiscovery(meeting: Meeting, isReconnecting: boolean) {\n return this.turnDiscovery.doTurnDiscovery(meeting, isReconnecting);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AACA;AAEA;AACA;AAEA;AACA;AAA4C;AAAA;AAG5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAJA,IAKqBA,IAAI;EAAA;EAAA;EAQvB;AACF;AACA;AACA;AACA;EACE,cAAYC,KAAU,EAAEC,OAAY,EAAE;IAAA;IAAA;IACpC,0BAAM,CAAC,CAAC,EAAEA,OAAO;IACjB;AACJ;AACA;AACA;AACA;AACA;IALI;IAAA;IAAA;IAAA;IAAA;IAAA;IAMA,MAAKD,KAAK,GAAGA,KAAK;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,MAAKC,OAAO,GAAGA,OAAO;IACtB;AACJ;AACA;AACA;AACA;AACA;AACA;IACI;IACA,MAAKC,WAAW,GAAG,IAAIC,gBAAW,CAAC,CAAC,CAAC,EAAEF,OAAO,CAAC;IAE/C,MAAKG,aAAa,GAAG,IAAIC,sBAAa,CAAC,MAAKH,WAAW,CAAC;IAAC;EAC3D;;EAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAA;IAAA,OAMA,oBAAkBD,OAAY,EAAE;MAAA;MAC9B,OAAO,iBAAQK,OAAO,EAAE,CAACC,IAAI,CAAC,YAAM;QAClC;QACA,IAAMC,OAAO,GAAG,MAAI,CAACC,KAAK,CAACC,QAAQ,CAACC,iBAAiB,CAACC,QAAQ,CAC5D,eAAe,EACfX,OAAO,CAACY,aAAa,CACtB;QACD,IAAMC,WAAW,GAAG;UAClBC,WAAW,EAAEC,eAAI,CAACC,UAAU,CAACC,EAAE;UAC/BC,OAAO,EAAEH,eAAI,CAACI,YAAY;UAC1BC,GAAG,EAAEpB,OAAO,CAACoB;QACf,CAAC;QAEDC,oBAAW,CAACC,MAAM,CAACC,GAAG,8DAAuDvB,OAAO,CAACoB,GAAG,EAAG;QAE3F,OAAO,MAAI,CAACnB,WAAW,CACpBuB,QAAQ,CAAC;UACRX,WAAW,EAAXA,WAAW;UACXY,YAAY,EAAElB,OAAO,CAACmB,OAAO;UAC7BC,OAAO,EAAE3B,OAAO,CAAC2B,OAAO;UACxBf,aAAa,EAAEZ,OAAO,CAACY,aAAa;UACpCgB,UAAU,EAAErB,OAAO,CAACsB,YAAY,EAAE;UAClCC,UAAU,EAAEvB,OAAO,CAACwB,YAAY,EAAE;UAClCC,SAAS,EAAEzB,OAAO,CAAC0B,EAAE;UACrBC,iBAAiB,EAAE,CAAC3B,OAAO,CAAC4B;QAC9B,CAAC,CAAC,CACD7B,IAAI,CAAC,YAAM;UACVe,oBAAW,CAACC,MAAM,CAACC,GAAG,2DAAoDvB,OAAO,CAACoB,GAAG,EAAG;QAC1F,CAAC,CAAC;MACN,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA;IAAA,OAQA,wBAAsBpB,OAAY,EAAE;MAClC;MACA,IAAMO,OAAO,GAAG,IAAI,CAACC,KAAK,CAACC,QAAQ,CAACC,iBAAiB,CAACC,QAAQ,CAC5D,eAAe,EACfX,OAAO,CAACY,aAAa,CACtB;MACD,IAAMC,WAAW,GAAG;QAClBC,WAAW,EAAEC,eAAI,CAACC,UAAU,CAACoB,MAAM;QACnCC,IAAI,EAAE,CAACrC,OAAO,CAACsC,GAAG,CAAC;QACnBpB,OAAO,EAAEH,eAAI,CAACI,YAAY;QAC1BC,GAAG,EAAEpB,OAAO,CAACoB;MACf,CAAC;MAED,OAAO,IAAI,CAACnB,WAAW,CAACuB,QAAQ,CAAC;QAC/BX,WAAW,EAAXA,WAAW;QACXY,YAAY,EAAElB,OAAO,CAACmB,OAAO;QAC7BC,OAAO,EAAE3B,OAAO,CAAC2B,OAAO;QACxBf,aAAa,EAAEZ,OAAO,CAACY,aAAa;QACpCgB,UAAU,EAAErB,OAAO,CAACsB,YAAY,EAAE;QAClCC,UAAU,EAAEvB,OAAO,CAACwB,YAAY,EAAE;QAClCC,SAAS,EAAEzB,OAAO,CAAC0B,EAAE;QACrBC,iBAAiB,EAAE,CAAC3B,OAAO,CAAC4B;MAC9B,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAA;IAAA,OAMA,uBAAcnC,OAAO,EAAE;MACrB;MACA,IAAMO,OAAO,GAAG,IAAI,CAACC,KAAK,CAACC,QAAQ,CAACC,iBAAiB,CAACC,QAAQ,CAC5D,eAAe,EACfX,OAAO,CAACY,aAAa,CACtB;MACD,IAAMC,WAAW,GAAG;QAClBC,WAAW,EAAEC,eAAI,CAACC,UAAU,CAACuB,KAAK;QAClCrB,OAAO,EAAEH,eAAI,CAACI,YAAY;QAC1BqB,SAAS,EAAExC,OAAO,CAACwC,SAAS;QAC5BpB,GAAG,EAAEpB,OAAO,CAACoB;MACf,CAAC;MAED,OAAO,IAAI,CAACnB,WAAW,CACpBuB,QAAQ,CAAC;QACRX,WAAW,EAAXA,WAAW;QACXY,YAAY,EAAElB,OAAO,CAACmB,OAAO;QAC7BC,OAAO,EAAE3B,OAAO,CAAC2B,OAAO;QACxBf,aAAa,EAAEZ,OAAO,CAACY,aAAa;QACpCgB,UAAU,EAAErB,OAAO,CAACsB,YAAY,EAAE;QAClCC,UAAU,EAAEvB,OAAO,CAACwB,YAAY,EAAE;QAClCC,SAAS,EAAEzB,OAAO,CAAC0B,EAAE;QACrBC,iBAAiB,EAAE,CAAC3B,OAAO,CAAC4B;MAC9B,CAAC,CAAC,CACD7B,IAAI,CAAC,YAAM;QACVe,oBAAW,CAACC,MAAM,CAACC,GAAG,iEACqCvB,OAAO,CAACoB,GAAG,EACrE;MACH,CAAC,CAAC;IACN;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAA;IAAA,OAMA,8BAAqBpB,OAAY,EAAE;MACjC,IAAOO,OAAO,GAAqCP,OAAO,CAAnDO,OAAO;QAAEa,GAAG,GAAgCpB,OAAO,CAA1CoB,GAAG;QAAEkB,GAAG,GAA2BtC,OAAO,CAArCsC,GAAG;QAAEG,SAAS,GAAgBzC,OAAO,CAAhCyC,SAAS;QAAEC,UAAU,GAAI1C,OAAO,CAArB0C,UAAU;MAC/C,IAAM7B,WAAW,GAAG;QAClBC,WAAW,EAAEC,eAAI,CAACC,UAAU,CAAC2B,KAAK;QAClCN,IAAI,EAAE,CAACC,GAAG,CAAC;QACXpB,OAAO,EAAEH,eAAI,CAACI,YAAY;QAC1BC,GAAG,EAAHA,GAAG;QACHsB,UAAU,EAAVA;MACF,CAAC;;MAED;MACA;MACA;MACA,IAAME,gBAAgB,GAAGH,SAAS,IAAI,CAAClC,OAAO,CAACsC,MAAM,CAACC,YAAY,CAACC,mBAAmB;MAEtF,OAAO,IAAI,CAAC9C,WAAW,CACpBuB,QAAQ,CAAC;QACRX,WAAW,EAAXA,WAAW;QACXD,aAAa,EAAEL,OAAO,CAACK,aAAa;QACpCa,YAAY,EAAElB,OAAO,CAACmB,OAAO;QAC7BC,OAAO,EAAEiB,gBAAgB,GAAG,EAAE,GAAGrC,OAAO,CAACoB,OAAO;QAChDC,UAAU,EAAErB,OAAO,CAACsB,YAAY,EAAE;QAClCC,UAAU,EAAEvB,OAAO,CAACwB,YAAY,EAAE;QAClCC,SAAS,EAAEzB,OAAO,CAAC0B,EAAE;QACrBC,iBAAiB,EAAE,CAAC3B,OAAO,CAAC4B;MAC9B,CAAC,CAAC,CACD7B,IAAI,CAAC,gBAA+B;QAAA,IAA7B0C,KAAK,QAALA,KAAK;UAAEC,gBAAgB,QAAhBA,gBAAgB;QAC7B,IAAIA,gBAAgB,EAAE;UACpB1C,OAAO,CAAC2C,sBAAsB,CAACD,gBAAgB,CAAC;QAClD;QAEA,OAAOD,KAAK;MACd,CAAC,CAAC;IACN;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EATE;IAAA;IAAA,OAUA,yBAAgBzC,OAAgB,EAAE4C,cAAuB,EAAE;MACzD,OAAO,IAAI,CAAChD,aAAa,CAACiD,eAAe,CAAC7C,OAAO,EAAE4C,cAAc,CAAC;IACpE;EAAC;EAAA;AAAA,EA3M+BE,+BAAoB;AAAA"}
|
|
1
|
+
{"version":3,"names":["Roap","attrs","options","roapRequest","RoapRequest","turnDiscovery","TurnDiscovery","resolve","then","meeting","webex","meetings","meetingCollection","getByKey","correlationId","roapMessage","messageType","ROAP","ROAP_TYPES","OK","version","ROAP_VERSION","seq","LoggerProxy","logger","log","sendRoap","locusSelfUrl","selfUrl","mediaId","meetingId","id","locusMediaRequest","ANSWER","sdps","sdp","ERROR","errorType","reconnect","tieBreaker","OFFER","isSkipped","isTurnDiscoverySkipped","sendEmptyMediaId","preferTranscoding","isMultistream","locus","mediaConnections","updateMediaConnections","isReconnecting","doTurnDiscovery","StatelessWebexPlugin"],"sources":["index.ts"],"sourcesContent":["// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport {ROAP} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport RoapRequest from './request';\nimport TurnDiscovery from './turnDiscovery';\nimport Meeting from '../meeting';\n\n/**\n * Roap options\n * @typedef {Object} RoapOptions\n * @property {String} sdp\n * @property {Meeting} meeting\n * @property {Number} seq\n * @property {Number} tieBreaker\n * @property {Boolean} reconnect\n */\n\n/**\n * @typedef {Object} SeqOptions\n * @property {String} correlationId\n * @property {String} mediaId\n * @property {Number} seq\n */\n\n/**\n * @class Roap\n * @export\n * @private\n */\nexport default class Roap extends StatelessWebexPlugin {\n attrs: any;\n lastRoapOffer: any;\n options: any;\n roapHandler: any;\n roapRequest: any;\n turnDiscovery: any;\n\n /**\n *\n * @param {Object} attrs\n * @param {Object} options\n */\n constructor(attrs: any, options: any) {\n super({}, options);\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof Roap\n */\n this.attrs = attrs;\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof Roap\n */\n this.options = options;\n /**\n * The Roap Request Server Proxy Object\n * @instance\n * @type {RoapRequest}\n * @private\n * @memberof Roap\n */\n // @ts-ignore\n this.roapRequest = new RoapRequest({}, options);\n\n this.turnDiscovery = new TurnDiscovery(this.roapRequest);\n }\n\n /**\n *\n * @param {SeqOptions} options\n * @returns {null}\n * @memberof Roap\n */\n public sendRoapOK(options: any) {\n return Promise.resolve().then(() => {\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey(\n 'correlationId',\n options.correlationId\n );\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.OK,\n version: ROAP.ROAP_VERSION,\n seq: options.seq,\n };\n\n LoggerProxy.logger.log(`Roap:index#sendRoapOK --> ROAP OK sending with seq ${options.seq}`);\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n meetingId: meeting.id,\n locusMediaRequest: meeting.locusMediaRequest,\n })\n .then(() => {\n LoggerProxy.logger.log(`Roap:index#sendRoapOK --> ROAP OK sent with seq ${options.seq}`);\n });\n });\n }\n\n /**\n * Sends a ROAP answer...\n * @param {SeqOptions} options\n * @param {Boolean} options.audioMuted\n * @param {Boolean} options.videoMuted\n * @returns {Promise}\n * @memberof Roap\n */\n public sendRoapAnswer(options: any) {\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey(\n 'correlationId',\n options.correlationId\n );\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.ANSWER,\n sdps: [options.sdp],\n version: ROAP.ROAP_VERSION,\n seq: options.seq,\n };\n\n return this.roapRequest.sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n meetingId: meeting.id,\n locusMediaRequest: meeting.locusMediaRequest,\n });\n }\n\n /**\n * Sends a ROAP error...\n * @param {Object} options\n * @returns {Promise}\n * @memberof Roap\n */\n sendRoapError(options) {\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey(\n 'correlationId',\n options.correlationId\n );\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.ERROR,\n version: ROAP.ROAP_VERSION,\n errorType: options.errorType,\n seq: options.seq,\n };\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n meetingId: meeting.id,\n locusMediaRequest: meeting.locusMediaRequest,\n })\n .then(() => {\n LoggerProxy.logger.log(\n `Roap:index#sendRoapError --> ROAP ERROR sent with seq ${options.seq}`\n );\n });\n }\n\n /**\n * sends a roap media request\n * @param {RoapOptions} options\n * @returns {Promise}\n * @memberof Roap\n */\n sendRoapMediaRequest(options: any) {\n const {meeting, seq, sdp, reconnect, tieBreaker} = options;\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.OFFER,\n sdps: [sdp],\n version: ROAP.ROAP_VERSION,\n seq,\n tieBreaker,\n };\n\n // When reconnecting, it's important that the first roap message being sent out has empty media id.\n // Normally this is the roap offer, but when TURN discovery is enabled,\n // then this is the TURN discovery request message\n return this.turnDiscovery.isSkipped(meeting).then((isTurnDiscoverySkipped) => {\n const sendEmptyMediaId = reconnect && isTurnDiscoverySkipped;\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: sendEmptyMediaId ? '' : meeting.mediaId,\n meetingId: meeting.id,\n preferTranscoding: !meeting.isMultistream,\n locusMediaRequest: meeting.locusMediaRequest,\n })\n .then(({locus, mediaConnections}) => {\n if (mediaConnections) {\n meeting.updateMediaConnections(mediaConnections);\n }\n\n return locus;\n });\n });\n }\n\n /**\n * Performs a TURN server discovery procedure, which involves exchanging\n * some roap messages with the server. This exchange has to be done before\n * any other roap messages are sent\n *\n * @param {Meeting} meeting\n * @param {Boolean} isReconnecting should be set to true if this is a new\n * media connection just after a reconnection\n * @returns {Promise}\n */\n doTurnDiscovery(meeting: Meeting, isReconnecting: boolean) {\n return this.turnDiscovery.doTurnDiscovery(meeting, isReconnecting);\n }\n}\n"],"mappings":"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"}
|
package/dist/roap/request.js
CHANGED
|
@@ -12,9 +12,12 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
12
12
|
value: true
|
|
13
13
|
});
|
|
14
14
|
exports.default = void 0;
|
|
15
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
15
16
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
17
|
+
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
16
18
|
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
17
19
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
20
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
18
21
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
19
22
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
20
23
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
@@ -23,8 +26,6 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
|
|
|
23
26
|
var _webexCore = require("@webex/webex-core");
|
|
24
27
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
25
28
|
var _constants = require("../constants");
|
|
26
|
-
var _metrics = _interopRequireDefault(require("../metrics"));
|
|
27
|
-
var _config = require("../metrics/config");
|
|
28
29
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
29
30
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
30
31
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
@@ -40,31 +41,62 @@ var RoapRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
40
41
|
return _super.apply(this, arguments);
|
|
41
42
|
}
|
|
42
43
|
(0, _createClass2.default)(RoapRequest, [{
|
|
43
|
-
key: "
|
|
44
|
+
key: "attachReachabilityData",
|
|
44
45
|
value:
|
|
45
46
|
/**
|
|
46
|
-
*
|
|
47
|
-
* @param {Object}
|
|
48
|
-
* @returns {
|
|
47
|
+
* Returns reachability data.
|
|
48
|
+
* @param {Object} localSdp
|
|
49
|
+
* @returns {Object}
|
|
49
50
|
*/
|
|
51
|
+
function () {
|
|
52
|
+
var _attachReachabilityData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(localSdp) {
|
|
53
|
+
var joinCookie, reachabilityData, reachabilityResult, joinCookieRaw;
|
|
54
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
55
|
+
while (1) switch (_context.prev = _context.next) {
|
|
56
|
+
case 0:
|
|
57
|
+
_context.next = 2;
|
|
58
|
+
return this.webex.boundedStorage.get(_constants.REACHABILITY.namespace, _constants.REACHABILITY.localStorageResult).catch(function () {});
|
|
59
|
+
case 2:
|
|
60
|
+
reachabilityData = _context.sent;
|
|
61
|
+
if (reachabilityData) {
|
|
62
|
+
try {
|
|
63
|
+
reachabilityResult = JSON.parse(reachabilityData);
|
|
64
|
+
/* istanbul ignore else */
|
|
65
|
+
if (reachabilityResult && (0, _keys.default)(reachabilityResult).length) {
|
|
66
|
+
localSdp.reachability = reachabilityResult;
|
|
67
|
+
}
|
|
68
|
+
} catch (e) {
|
|
69
|
+
_loggerProxy.default.logger.error("Roap:request#attachReachabilityData --> Error in parsing reachability data: ".concat(e));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
50
72
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
73
|
+
// @ts-ignore
|
|
74
|
+
_context.next = 6;
|
|
75
|
+
return this.webex.boundedStorage.get(_constants.REACHABILITY.namespace, _constants.REACHABILITY.localStorageJoinCookie).catch(function () {});
|
|
76
|
+
case 6:
|
|
77
|
+
joinCookieRaw = _context.sent;
|
|
78
|
+
if (joinCookieRaw) {
|
|
79
|
+
try {
|
|
80
|
+
joinCookie = JSON.parse(joinCookieRaw);
|
|
81
|
+
} catch (e) {
|
|
82
|
+
_loggerProxy.default.logger.error("MeetingRequest#constructor --> Error in parsing join cookie data: ".concat(e));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return _context.abrupt("return", {
|
|
86
|
+
localSdp: localSdp,
|
|
87
|
+
joinCookie: joinCookie
|
|
88
|
+
});
|
|
89
|
+
case 9:
|
|
90
|
+
case "end":
|
|
91
|
+
return _context.stop();
|
|
60
92
|
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
|
|
93
|
+
}, _callee, this);
|
|
94
|
+
}));
|
|
95
|
+
function attachReachabilityData(_x) {
|
|
96
|
+
return _attachReachabilityData.apply(this, arguments);
|
|
64
97
|
}
|
|
65
|
-
return
|
|
66
|
-
}
|
|
67
|
-
|
|
98
|
+
return attachReachabilityData;
|
|
99
|
+
}()
|
|
68
100
|
/**
|
|
69
101
|
* Sends a ROAP message
|
|
70
102
|
* @param {Object} options
|
|
@@ -72,86 +104,95 @@ var RoapRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
72
104
|
* @param {String} options.locusSelfUrl
|
|
73
105
|
* @param {String} options.mediaId
|
|
74
106
|
* @param {String} options.correlationId
|
|
75
|
-
* @param {Boolean} options.audioMuted
|
|
76
|
-
* @param {Boolean} options.videoMuted
|
|
77
107
|
* @param {String} options.meetingId
|
|
78
108
|
* @returns {Promise} returns the response/failure of the request
|
|
79
109
|
*/
|
|
80
110
|
}, {
|
|
81
111
|
key: "sendRoap",
|
|
82
|
-
value: function
|
|
83
|
-
var
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
112
|
+
value: function () {
|
|
113
|
+
var _sendRoap = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(options) {
|
|
114
|
+
var _this = this;
|
|
115
|
+
var roapMessage, locusSelfUrl, mediaId, meetingId, locusMediaRequest, _yield$this$attachRea, localSdpWithReachabilityData, joinCookie;
|
|
116
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
117
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
118
|
+
case 0:
|
|
119
|
+
roapMessage = options.roapMessage, locusSelfUrl = options.locusSelfUrl, mediaId = options.mediaId, meetingId = options.meetingId, locusMediaRequest = options.locusMediaRequest;
|
|
120
|
+
if (!mediaId) {
|
|
121
|
+
_loggerProxy.default.logger.info('Roap:request#sendRoap --> sending empty mediaID');
|
|
122
|
+
}
|
|
123
|
+
if (locusMediaRequest) {
|
|
124
|
+
_context2.next = 5;
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
_loggerProxy.default.logger.warn('Roap:request#sendRoap --> locusMediaRequest unavailable, not sending roap');
|
|
128
|
+
return _context2.abrupt("return", _promise.default.reject(new Error('sendRoap called when locusMediaRequest is undefined')));
|
|
129
|
+
case 5:
|
|
130
|
+
_context2.next = 7;
|
|
131
|
+
return this.attachReachabilityData({
|
|
132
|
+
roapMessage: roapMessage
|
|
133
|
+
});
|
|
134
|
+
case 7:
|
|
135
|
+
_yield$this$attachRea = _context2.sent;
|
|
136
|
+
localSdpWithReachabilityData = _yield$this$attachRea.localSdp;
|
|
137
|
+
joinCookie = _yield$this$attachRea.joinCookie;
|
|
138
|
+
_loggerProxy.default.logger.info("Roap:request#sendRoap --> ".concat(locusSelfUrl, " \n ").concat(roapMessage.messageType, " \n seq:").concat(roapMessage.seq));
|
|
100
139
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
140
|
+
// @ts-ignore
|
|
141
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
142
|
+
name: 'client.locus.media.request',
|
|
143
|
+
options: {
|
|
144
|
+
meetingId: meetingId
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
return _context2.abrupt("return", locusMediaRequest.send({
|
|
148
|
+
type: 'RoapMessage',
|
|
149
|
+
selfUrl: locusSelfUrl,
|
|
150
|
+
joinCookie: joinCookie,
|
|
151
|
+
mediaId: mediaId,
|
|
152
|
+
roapMessage: roapMessage,
|
|
153
|
+
reachability: localSdpWithReachabilityData.reachability
|
|
154
|
+
}).then(function (res) {
|
|
155
|
+
// @ts-ignore
|
|
156
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
|
157
|
+
name: 'client.locus.media.response',
|
|
158
|
+
options: {
|
|
159
|
+
meetingId: meetingId
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
// always it will be the first mediaConnection Object
|
|
163
|
+
var mediaConnections = res.body.mediaConnections && res.body.mediaConnections.length > 0 && res.body.mediaConnections[0];
|
|
164
|
+
_loggerProxy.default.logger.debug("Roap:request#sendRoap --> response:".concat((0, _stringify.default)(mediaConnections, null, 2), "'\n StatusCode:'").concat(res.statusCode));
|
|
165
|
+
var locus = res.body.locus;
|
|
166
|
+
locus.roapSeq = options.roapMessage.seq;
|
|
167
|
+
return _objectSpread({
|
|
168
|
+
locus: locus
|
|
169
|
+
}, mediaConnections && {
|
|
170
|
+
mediaConnections: res.body.mediaConnections
|
|
171
|
+
});
|
|
172
|
+
}).catch(function (err) {
|
|
173
|
+
// @ts-ignore
|
|
174
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
|
175
|
+
name: 'client.locus.media.response',
|
|
176
|
+
options: {
|
|
177
|
+
meetingId: meetingId,
|
|
178
|
+
rawError: err
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
_loggerProxy.default.logger.error("Roap:request#sendRoap --> Error:".concat((0, _stringify.default)(err, null, 2)));
|
|
182
|
+
_loggerProxy.default.logger.error("Roap:request#sendRoapRequest --> errorBody:".concat((0, _stringify.default)(roapMessage, null, 2), " + '\\n mediaId:'").concat(options.mediaId));
|
|
183
|
+
throw err;
|
|
184
|
+
}));
|
|
185
|
+
case 13:
|
|
186
|
+
case "end":
|
|
187
|
+
return _context2.stop();
|
|
124
188
|
}
|
|
125
|
-
}
|
|
126
|
-
})
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
// always it will be the first mediaConnection Object
|
|
133
|
-
var mediaConnections = res.body.mediaConnections && res.body.mediaConnections.length > 0 && res.body.mediaConnections[0];
|
|
134
|
-
_loggerProxy.default.logger.info("Roap:request#sendRoap --> response:".concat((0, _stringify.default)(mediaConnections, null, 2), "'\n StatusCode:'").concat(res.statusCode));
|
|
135
|
-
var locus = res.body.locus;
|
|
136
|
-
locus.roapSeq = options.roapMessage.seq;
|
|
137
|
-
return _objectSpread({
|
|
138
|
-
locus: locus
|
|
139
|
-
}, mediaConnections && {
|
|
140
|
-
mediaConnections: res.body.mediaConnections
|
|
141
|
-
});
|
|
142
|
-
}).catch(function (err) {
|
|
143
|
-
_metrics.default.postEvent({
|
|
144
|
-
event: _config.eventType.MEDIA_RESPONSE,
|
|
145
|
-
meetingId: meetingId,
|
|
146
|
-
data: {
|
|
147
|
-
error: _metrics.default.parseLocusError(err, true)
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
_loggerProxy.default.logger.error("Roap:request#sendRoap --> Error:".concat((0, _stringify.default)(err, null, 2)));
|
|
151
|
-
_loggerProxy.default.logger.error("Roap:request#sendRoapRequest --> errorBody:".concat((0, _stringify.default)(roapMessage, null, 2), " + '\\n mediaId:'").concat(options.mediaId));
|
|
152
|
-
throw err;
|
|
153
|
-
});
|
|
154
|
-
}
|
|
189
|
+
}, _callee2, this);
|
|
190
|
+
}));
|
|
191
|
+
function sendRoap(_x2) {
|
|
192
|
+
return _sendRoap.apply(this, arguments);
|
|
193
|
+
}
|
|
194
|
+
return sendRoap;
|
|
195
|
+
}()
|
|
155
196
|
}]);
|
|
156
197
|
return RoapRequest;
|
|
157
198
|
}(_webexCore.StatelessWebexPlugin);
|
package/dist/roap/request.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RoapRequest","localSdp","
|
|
1
|
+
{"version":3,"names":["RoapRequest","localSdp","webex","boundedStorage","get","REACHABILITY","namespace","localStorageResult","catch","reachabilityData","reachabilityResult","JSON","parse","length","reachability","e","LoggerProxy","logger","error","localStorageJoinCookie","joinCookieRaw","joinCookie","options","roapMessage","locusSelfUrl","mediaId","meetingId","locusMediaRequest","info","warn","reject","Error","attachReachabilityData","localSdpWithReachabilityData","messageType","seq","internal","newMetrics","submitClientEvent","name","send","type","selfUrl","then","res","mediaConnections","body","debug","statusCode","locus","roapSeq","err","rawError","StatelessWebexPlugin"],"sources":["request.ts"],"sourcesContent":["// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {REACHABILITY} from '../constants';\nimport {LocusMediaRequest} from '../meeting/locusMediaRequest';\n\n/**\n * @class RoapRequest\n */\nexport default class RoapRequest extends StatelessWebexPlugin {\n /**\n * Returns reachability data.\n * @param {Object} localSdp\n * @returns {Object}\n */\n async attachReachabilityData(localSdp) {\n let joinCookie;\n\n // @ts-ignore\n const reachabilityData = await this.webex.boundedStorage\n .get(REACHABILITY.namespace, REACHABILITY.localStorageResult)\n .catch(() => {});\n\n if (reachabilityData) {\n try {\n const reachabilityResult = JSON.parse(reachabilityData);\n\n /* istanbul ignore else */\n if (reachabilityResult && Object.keys(reachabilityResult).length) {\n localSdp.reachability = reachabilityResult;\n }\n } catch (e) {\n LoggerProxy.logger.error(\n `Roap:request#attachReachabilityData --> Error in parsing reachability data: ${e}`\n );\n }\n }\n\n // @ts-ignore\n const joinCookieRaw = await this.webex.boundedStorage\n .get(REACHABILITY.namespace, REACHABILITY.localStorageJoinCookie)\n .catch(() => {});\n\n if (joinCookieRaw) {\n try {\n joinCookie = JSON.parse(joinCookieRaw);\n } catch (e) {\n LoggerProxy.logger.error(\n `MeetingRequest#constructor --> Error in parsing join cookie data: ${e}`\n );\n }\n }\n\n return {localSdp, joinCookie};\n }\n\n /**\n * Sends a ROAP message\n * @param {Object} options\n * @param {Object} options.roapMessage\n * @param {String} options.locusSelfUrl\n * @param {String} options.mediaId\n * @param {String} options.correlationId\n * @param {String} options.meetingId\n * @returns {Promise} returns the response/failure of the request\n */\n async sendRoap(options: {\n roapMessage: any;\n locusSelfUrl: string;\n mediaId: string;\n meetingId: string;\n locusMediaRequest?: LocusMediaRequest;\n }) {\n const {roapMessage, locusSelfUrl, mediaId, meetingId, locusMediaRequest} = options;\n\n if (!mediaId) {\n LoggerProxy.logger.info('Roap:request#sendRoap --> sending empty mediaID');\n }\n\n if (!locusMediaRequest) {\n LoggerProxy.logger.warn(\n 'Roap:request#sendRoap --> locusMediaRequest unavailable, not sending roap'\n );\n\n return Promise.reject(new Error('sendRoap called when locusMediaRequest is undefined'));\n }\n const {localSdp: localSdpWithReachabilityData, joinCookie} = await this.attachReachabilityData({\n roapMessage,\n });\n\n LoggerProxy.logger.info(\n `Roap:request#sendRoap --> ${locusSelfUrl} \\n ${roapMessage.messageType} \\n seq:${roapMessage.seq}`\n );\n\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.request',\n options: {\n meetingId,\n },\n });\n\n return locusMediaRequest\n .send({\n type: 'RoapMessage',\n selfUrl: locusSelfUrl,\n joinCookie,\n mediaId,\n roapMessage,\n reachability: localSdpWithReachabilityData.reachability,\n })\n .then((res) => {\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.response',\n options: {\n meetingId,\n },\n });\n // always it will be the first mediaConnection Object\n const mediaConnections =\n res.body.mediaConnections &&\n res.body.mediaConnections.length > 0 &&\n res.body.mediaConnections[0];\n\n LoggerProxy.logger.debug(\n `Roap:request#sendRoap --> response:${JSON.stringify(\n mediaConnections,\n null,\n 2\n )}'\\n StatusCode:'${res.statusCode}`\n );\n const {locus} = res.body;\n\n locus.roapSeq = options.roapMessage.seq;\n\n return {\n locus,\n ...(mediaConnections && {mediaConnections: res.body.mediaConnections}),\n };\n })\n .catch((err) => {\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.response',\n options: {\n meetingId,\n rawError: err,\n },\n });\n LoggerProxy.logger.error(`Roap:request#sendRoap --> Error:${JSON.stringify(err, null, 2)}`);\n LoggerProxy.logger.error(\n `Roap:request#sendRoapRequest --> errorBody:${JSON.stringify(\n roapMessage,\n null,\n 2\n )} + '\\\\n mediaId:'${options.mediaId}`\n );\n throw err;\n });\n }\n}\n"],"mappings":"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"}
|