@webex/plugin-meetings 3.0.0-beta.38 → 3.0.0-beta.380
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 +58 -8
- 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 +342 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +94 -15
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +671 -81
- package/dist/breakouts/index.js.map +1 -1
- package/dist/breakouts/utils.js +45 -1
- package/dist/breakouts/utils.js.map +1 -1
- package/dist/common/errors/no-meeting-info.js +51 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/reclaim-host-role-errors.js +158 -0
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/webex-errors.js +48 -7
- 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/common/logs/request.js +5 -1
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +24 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +5 -10
- package/dist/config.js.map +1 -1
- package/dist/constants.js +237 -33
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +14 -2
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.js +109 -15
- package/dist/controls-options-manager/index.js.map +1 -1
- 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 +309 -18
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.js +117 -2
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.js +15 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/locusRetry.js +93 -0
- package/dist/interceptors/locusRetry.js.map +1 -0
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +366 -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 +91 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +386 -62
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +7 -1
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +57 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +249 -72
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +89 -14
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +61 -101
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +73 -124
- package/dist/media/properties.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +135 -330
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +86 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +4050 -2836
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +292 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +224 -136
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +177 -152
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +672 -417
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +73 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +192 -51
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/util.js +1 -1
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +36 -36
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +39 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +503 -119
- 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 +2 -0
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +73 -7
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +58 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +25 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +132 -25
- 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 +102 -6
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +106 -38
- 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 +326 -232
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +18 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -446
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +228 -28
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +29 -1
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +39 -36
- 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 +209 -59
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +233 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/reachability/clusterReachability.js +356 -0
- package/dist/reachability/clusterReachability.js.map +1 -0
- package/dist/reachability/index.js +263 -390
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +6 -4
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- package/dist/reconnection-manager/index.js +264 -201
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/index.js +21 -2
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +9 -8
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js +51 -28
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +48 -64
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +220 -70
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +12 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +179 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/index.js +357 -295
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +296 -156
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +42 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +117 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/utils.d.ts +14 -0
- package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/types/common/errors/webex-errors.d.ts +25 -1
- package/dist/types/common/logs/request.d.ts +2 -0
- package/dist/types/common/queue.d.ts +9 -7
- package/dist/types/config.d.ts +2 -7
- package/dist/types/constants.d.ts +201 -31
- package/dist/types/controls-options-manager/enums.d.ts +11 -1
- package/dist/types/controls-options-manager/index.d.ts +17 -1
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -7
- package/dist/types/index.d.ts +6 -4
- package/dist/types/interceptors/index.d.ts +2 -0
- package/dist/types/interceptors/locusRetry.d.ts +27 -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/index.d.ts +57 -4
- package/dist/types/locus-info/parser.d.ts +66 -6
- package/dist/types/media/index.d.ts +2 -0
- package/dist/types/media/properties.d.ts +34 -49
- package/dist/types/mediaQualityMetrics/config.d.ts +99 -223
- package/dist/types/meeting/in-meeting-actions.d.ts +86 -2
- package/dist/types/meeting/index.d.ts +559 -496
- package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/types/meeting/muteState.d.ts +93 -25
- package/dist/types/meeting/request.d.ts +64 -43
- package/dist/types/meeting/util.d.ts +117 -1
- package/dist/types/meeting-info/index.d.ts +13 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
- package/dist/types/meetings/collection.d.ts +17 -0
- package/dist/types/meetings/index.d.ts +113 -21
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/member/index.d.ts +14 -0
- package/dist/types/member/types.d.ts +32 -0
- package/dist/types/members/collection.d.ts +5 -0
- package/dist/types/members/index.d.ts +35 -2
- package/dist/types/members/request.d.ts +73 -9
- package/dist/types/members/types.d.ts +25 -0
- package/dist/types/members/util.d.ts +214 -1
- package/dist/types/metrics/constants.d.ts +17 -0
- package/dist/types/metrics/index.d.ts +4 -111
- package/dist/types/multistream/mediaRequestManager.d.ts +72 -3
- package/dist/types/multistream/receiveSlot.d.ts +13 -3
- package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
- package/dist/types/multistream/remoteMedia.d.ts +8 -29
- package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
- package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
- package/dist/types/multistream/sendSlotManager.d.ts +61 -0
- package/dist/types/reachability/clusterReachability.d.ts +109 -0
- package/dist/types/reachability/index.d.ts +60 -95
- package/dist/types/reachability/request.d.ts +3 -1
- package/dist/types/reachability/util.d.ts +8 -0
- package/dist/types/reconnection-manager/index.d.ts +19 -0
- package/dist/types/recording-controller/index.d.ts +15 -1
- package/dist/types/recording-controller/util.d.ts +5 -4
- package/dist/types/roap/index.d.ts +2 -1
- package/dist/types/roap/request.d.ts +9 -8
- package/dist/types/roap/turnDiscovery.d.ts +39 -5
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +61 -0
- package/dist/types/statsAnalyzer/index.d.ts +34 -12
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +28 -4
- package/dist/types/webinar/collection.d.ts +16 -0
- package/dist/types/webinar/index.d.ts +5 -0
- package/dist/webinar/collection.js +44 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.js +69 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +22 -19
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +35 -11
- package/src/breakouts/breakout.ts +67 -9
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +558 -59
- package/src/breakouts/utils.ts +42 -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 +44 -2
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/logs/request.ts +5 -1
- package/src/common/queue.ts +22 -8
- package/src/config.ts +4 -9
- package/src/constants.ts +225 -21
- package/src/controls-options-manager/enums.ts +12 -0
- package/src/controls-options-manager/index.ts +116 -21
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +294 -14
- package/src/index.ts +44 -0
- package/src/interceptors/index.ts +3 -0
- package/src/interceptors/locusRetry.ts +67 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +108 -0
- package/src/locus-info/index.ts +417 -59
- package/src/locus-info/infoUtils.ts +10 -2
- package/src/locus-info/mediaSharesUtils.ts +64 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +81 -5
- package/src/media/index.ts +97 -107
- package/src/media/properties.ts +88 -117
- package/src/mediaQualityMetrics/config.ts +103 -238
- package/src/meeting/in-meeting-actions.ts +171 -3
- package/src/meeting/index.ts +3371 -2435
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +223 -136
- package/src/meeting/request.ts +155 -120
- package/src/meeting/util.ts +685 -395
- package/src/meeting-info/index.ts +81 -8
- package/src/meeting-info/meeting-info-v2.ts +170 -14
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +23 -23
- package/src/meetings/collection.ts +33 -0
- package/src/meetings/index.ts +529 -127
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +81 -12
- package/src/member/index.ts +58 -0
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +141 -25
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +134 -8
- package/src/members/request.ts +97 -17
- package/src/members/types.ts +29 -0
- package/src/members/util.ts +333 -240
- package/src/metrics/constants.ts +17 -0
- package/src/metrics/index.ts +1 -469
- package/src/multistream/mediaRequestManager.ts +278 -52
- package/src/multistream/receiveSlot.ts +31 -4
- package/src/multistream/receiveSlotManager.ts +34 -24
- package/src/multistream/remoteMedia.ts +27 -2
- package/src/multistream/remoteMediaGroup.ts +59 -0
- package/src/multistream/remoteMediaManager.ts +148 -30
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/reachability/clusterReachability.ts +320 -0
- package/src/reachability/index.ts +229 -346
- package/src/reachability/request.ts +8 -4
- package/src/reachability/util.ts +24 -0
- package/src/reconnection-manager/index.ts +127 -96
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +52 -23
- package/src/roap/request.ts +48 -67
- package/src/roap/turnDiscovery.ts +147 -49
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +166 -0
- package/src/statsAnalyzer/index.ts +457 -416
- package/src/statsAnalyzer/mqaUtil.ts +317 -170
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +60 -3
- package/test/integration/spec/journey.js +320 -261
- package/test/integration/spec/space-meeting.js +76 -3
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +118 -28
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1349 -114
- package/test/unit/spec/breakouts/utils.js +52 -1
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +163 -0
- package/test/unit/spec/controls-options-manager/util.js +576 -60
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interceptors/locusRetry.ts +131 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +316 -43
- package/test/unit/spec/locus-info/index.js +1363 -37
- package/test/unit/spec/locus-info/infoUtils.js +37 -15
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
- package/test/unit/spec/locus-info/parser.js +116 -35
- package/test/unit/spec/locus-info/selfConstant.js +27 -4
- package/test/unit/spec/locus-info/selfUtils.js +208 -17
- package/test/unit/spec/media/index.ts +118 -37
- package/test/unit/spec/media/properties.ts +2 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +85 -3
- package/test/unit/spec/meeting/index.js +6792 -2176
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +402 -212
- package/test/unit/spec/meeting/request.js +473 -54
- package/test/unit/spec/meeting/utils.js +773 -67
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +526 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +26 -0
- package/test/unit/spec/meetings/index.js +1415 -213
- package/test/unit/spec/meetings/utils.js +229 -2
- package/test/unit/spec/member/index.js +61 -6
- package/test/unit/spec/member/util.js +510 -34
- package/test/unit/spec/members/index.js +432 -1
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +210 -0
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +799 -112
- package/test/unit/spec/multistream/receiveSlot.ts +28 -1
- package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
- package/test/unit/spec/multistream/remoteMedia.ts +30 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/reachability/clusterReachability.ts +279 -0
- package/test/unit/spec/reachability/index.ts +551 -14
- package/test/unit/spec/reachability/request.js +3 -1
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +143 -11
- package/test/unit/spec/recording-controller/index.js +294 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +180 -83
- package/test/unit/spec/roap/request.ts +100 -62
- package/test/unit/spec/roap/turnDiscovery.ts +388 -96
- package/test/unit/spec/rtcMetrics/index.ts +122 -0
- package/test/unit/spec/stats-analyzer/index.js +1252 -12
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -57
- package/test/utils/webex-test-users.js +12 -4
- package/dist/metrics/config.js +0 -289
- package/dist/metrics/config.js.map +0 -1
- package/dist/types/metrics/config.d.ts +0 -169
- package/src/index.js +0 -16
- package/src/metrics/config.ts +0 -485
package/dist/meetings/index.js
CHANGED
|
@@ -1,17 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs2/helpers/typeof");
|
|
3
4
|
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
|
5
|
+
var _Object$keys2 = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
6
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
7
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
8
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
9
|
+
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
4
10
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
11
|
+
var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
|
|
5
12
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
13
|
_Object$defineProperty(exports, "__esModule", {
|
|
7
14
|
value: true
|
|
8
15
|
});
|
|
9
16
|
exports.default = void 0;
|
|
10
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
11
17
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
12
18
|
var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
|
|
13
19
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
14
20
|
var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
|
|
21
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
22
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/toConsumableArray"));
|
|
15
23
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
16
24
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
|
|
17
25
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
@@ -22,13 +30,14 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
|
|
|
22
30
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
23
31
|
require("@webex/internal-plugin-mercury");
|
|
24
32
|
require("@webex/internal-plugin-conversation");
|
|
33
|
+
require("@webex/internal-plugin-metrics");
|
|
25
34
|
var _webexCore = require("@webex/webex-core");
|
|
26
35
|
var _internalMediaCore = require("@webex/internal-media-core");
|
|
36
|
+
var mediaHelpersModule = _interopRequireWildcard(require("@webex/media-helpers"));
|
|
27
37
|
require("webrtc-adapter");
|
|
28
38
|
var _metrics = _interopRequireDefault(require("../metrics"));
|
|
29
|
-
var _config = require("../metrics/config");
|
|
30
39
|
var _loggerConfig = _interopRequireDefault(require("../common/logs/logger-config"));
|
|
31
|
-
var
|
|
40
|
+
var _config = _interopRequireDefault(require("../common/config"));
|
|
32
41
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
33
42
|
var _request = _interopRequireDefault(require("../common/logs/request"));
|
|
34
43
|
var _triggerProxy = _interopRequireDefault(require("../common/events/trigger-proxy"));
|
|
@@ -46,6 +55,13 @@ var _passwordError = _interopRequireDefault(require("../common/errors/password-e
|
|
|
46
55
|
var _captchaError = _interopRequireDefault(require("../common/errors/captcha-error"));
|
|
47
56
|
var _collection = _interopRequireDefault(require("./collection"));
|
|
48
57
|
var _util2 = _interopRequireDefault(require("./util"));
|
|
58
|
+
var _permission = _interopRequireDefault(require("../common/errors/permission"));
|
|
59
|
+
var _webexErrors = require("../common/errors/webex-errors");
|
|
60
|
+
var _noMeetingInfo = _interopRequireDefault(require("../common/errors/no-meeting-info"));
|
|
61
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
62
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
63
|
+
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; }
|
|
64
|
+
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; }
|
|
49
65
|
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); }; }
|
|
50
66
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
51
67
|
var mediaLogger;
|
|
@@ -157,13 +173,14 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
157
173
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
158
174
|
|
|
159
175
|
/**
|
|
160
|
-
* The
|
|
176
|
+
* The webrtc-core media helpers. This is a temporary solution required for the SDK sample app
|
|
177
|
+
* to be able to call media helper functions.
|
|
178
|
+
*
|
|
161
179
|
* @instance
|
|
162
180
|
* @type {Object}
|
|
163
181
|
* @private
|
|
164
182
|
* @memberof Meetings
|
|
165
183
|
*/
|
|
166
|
-
// @ts-ignore
|
|
167
184
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "loggerRequest", void 0);
|
|
168
185
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "media", void 0);
|
|
169
186
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingCollection", void 0);
|
|
@@ -174,7 +191,61 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
174
191
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "request", void 0);
|
|
175
192
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "geoHintInfo", void 0);
|
|
176
193
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingInfo", void 0);
|
|
194
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mediaHelpers", void 0);
|
|
195
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "breakoutLocusForHandleLater", void 0);
|
|
177
196
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "namespace", _constants.MEETINGS);
|
|
197
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "createNoiseReductionEffect", /*#__PURE__*/function () {
|
|
198
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(options) {
|
|
199
|
+
var authToken;
|
|
200
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
201
|
+
while (1) switch (_context.prev = _context.next) {
|
|
202
|
+
case 0:
|
|
203
|
+
// @ts-ignore
|
|
204
|
+
authToken = _this.webex.credentials.supertoken.access_token;
|
|
205
|
+
return _context.abrupt("return", new mediaHelpersModule.NoiseReductionEffect(_objectSpread({
|
|
206
|
+
authToken: authToken
|
|
207
|
+
}, options)));
|
|
208
|
+
case 2:
|
|
209
|
+
case "end":
|
|
210
|
+
return _context.stop();
|
|
211
|
+
}
|
|
212
|
+
}, _callee);
|
|
213
|
+
}));
|
|
214
|
+
return function (_x) {
|
|
215
|
+
return _ref.apply(this, arguments);
|
|
216
|
+
};
|
|
217
|
+
}());
|
|
218
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "createVirtualBackgroundEffect", /*#__PURE__*/function () {
|
|
219
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(options) {
|
|
220
|
+
var authToken;
|
|
221
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
222
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
223
|
+
case 0:
|
|
224
|
+
// @ts-ignore
|
|
225
|
+
authToken = _this.webex.credentials.supertoken.access_token;
|
|
226
|
+
return _context2.abrupt("return", new mediaHelpersModule.VirtualBackgroundEffect(_objectSpread({
|
|
227
|
+
authToken: authToken
|
|
228
|
+
}, options)));
|
|
229
|
+
case 2:
|
|
230
|
+
case "end":
|
|
231
|
+
return _context2.stop();
|
|
232
|
+
}
|
|
233
|
+
}, _callee2);
|
|
234
|
+
}));
|
|
235
|
+
return function (_x2) {
|
|
236
|
+
return _ref2.apply(this, arguments);
|
|
237
|
+
};
|
|
238
|
+
}());
|
|
239
|
+
_this.mediaHelpers = mediaHelpersModule;
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* The Meetings request to interact with server
|
|
243
|
+
* @instance
|
|
244
|
+
* @type {Object}
|
|
245
|
+
* @private
|
|
246
|
+
* @memberof Meetings
|
|
247
|
+
*/
|
|
248
|
+
// @ts-ignore
|
|
178
249
|
_this.request = new _request2.default({}, {
|
|
179
250
|
parent: _this.webex
|
|
180
251
|
});
|
|
@@ -198,15 +269,17 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
198
269
|
* @memberof Meetings
|
|
199
270
|
*/
|
|
200
271
|
_this.personalMeetingRoom = null;
|
|
272
|
+
|
|
201
273
|
/**
|
|
202
|
-
* The Reachability object to interact with server
|
|
274
|
+
* The Reachability object to interact with server
|
|
203
275
|
* starts as null
|
|
204
276
|
* @instance
|
|
205
277
|
* @type {Object}
|
|
206
278
|
* @private
|
|
207
279
|
* @memberof Meetings
|
|
208
280
|
*/
|
|
209
|
-
|
|
281
|
+
// @ts-ignore
|
|
282
|
+
_this.reachability = new _reachability.default(_this.webex);
|
|
210
283
|
|
|
211
284
|
/**
|
|
212
285
|
* If the meetings plugin has been registered and listening via {@link Meetings#register}
|
|
@@ -235,50 +308,152 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
235
308
|
* @memberof Meetings
|
|
236
309
|
*/
|
|
237
310
|
_this.media = {
|
|
238
|
-
getUserMedia: _media.default.getUserMedia
|
|
239
|
-
getSupportedDevice: _media.default.getSupportedDevice
|
|
311
|
+
getUserMedia: _media.default.getUserMedia
|
|
240
312
|
};
|
|
241
313
|
_this.onReady();
|
|
242
314
|
return _this;
|
|
243
315
|
}
|
|
244
316
|
|
|
245
317
|
/**
|
|
246
|
-
*
|
|
247
|
-
* @param {Object}
|
|
248
|
-
* @param {
|
|
249
|
-
* @
|
|
250
|
-
* @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
|
|
251
|
-
* @param {String} data.eventType
|
|
252
|
-
* @returns {undefined}
|
|
318
|
+
* check whether you need to handle this main session's locus data or not
|
|
319
|
+
* @param {Object} meeting current meeting data
|
|
320
|
+
* @param {Object} newLocus new locus data
|
|
321
|
+
* @returns {boolean}
|
|
253
322
|
* @private
|
|
254
323
|
* @memberof Meetings
|
|
255
324
|
*/
|
|
256
325
|
(0, _createClass2.default)(Meetings, [{
|
|
257
|
-
key: "
|
|
258
|
-
value: function
|
|
259
|
-
var
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
var
|
|
264
|
-
|
|
326
|
+
key: "isNeedHandleMainLocus",
|
|
327
|
+
value: function isNeedHandleMainLocus(meeting, newLocus) {
|
|
328
|
+
var _newLocus$controls, _newLocus$controls$br, _newLocus$self, _newLocus$self2, _newLocus$self3, _breakoutLocus$joined, _newLocus$self4;
|
|
329
|
+
var breakoutUrl = (_newLocus$controls = newLocus.controls) === null || _newLocus$controls === void 0 ? void 0 : (_newLocus$controls$br = _newLocus$controls.breakout) === null || _newLocus$controls$br === void 0 ? void 0 : _newLocus$controls$br.url;
|
|
330
|
+
var breakoutLocus = this.meetingCollection.getActiveBreakoutLocus(breakoutUrl);
|
|
331
|
+
var isSelfJoined = (newLocus === null || newLocus === void 0 ? void 0 : (_newLocus$self = newLocus.self) === null || _newLocus$self === void 0 ? void 0 : _newLocus$self.state) === _constants._JOINED_;
|
|
332
|
+
var isSelfMoved = (newLocus === null || newLocus === void 0 ? void 0 : (_newLocus$self2 = newLocus.self) === null || _newLocus$self2 === void 0 ? void 0 : _newLocus$self2.state) === _constants._LEFT_ && (newLocus === null || newLocus === void 0 ? void 0 : (_newLocus$self3 = newLocus.self) === null || _newLocus$self3 === void 0 ? void 0 : _newLocus$self3.reason) === _constants._MOVED_;
|
|
333
|
+
// @ts-ignore
|
|
334
|
+
var deviceFromNewLocus = _util2.default.getThisDevice(newLocus, this.webex.internal.device.url);
|
|
335
|
+
var isResourceMovedOnThisDevice = (deviceFromNewLocus === null || deviceFromNewLocus === void 0 ? void 0 : deviceFromNewLocus.state) === _constants._LEFT_ && (deviceFromNewLocus === null || deviceFromNewLocus === void 0 ? void 0 : deviceFromNewLocus.reason) === _constants._MOVED_;
|
|
336
|
+
var isNewLocusJoinThisDevice = _util2.default.joinedOnThisDevice(meeting, newLocus,
|
|
337
|
+
// @ts-ignore
|
|
338
|
+
this.webex.internal.device.url);
|
|
339
|
+
var isBreakoutLocusJoinThisDevice = (breakoutLocus === null || breakoutLocus === void 0 ? void 0 : (_breakoutLocus$joined = breakoutLocus.joinedWith) === null || _breakoutLocus$joined === void 0 ? void 0 : _breakoutLocus$joined.correlationId) && breakoutLocus.joinedWith.correlationId === (meeting === null || meeting === void 0 ? void 0 : meeting.correlationId);
|
|
340
|
+
if (isSelfJoined && isNewLocusJoinThisDevice) {
|
|
341
|
+
_loggerProxy.default.logger.log('Meetings:index#isNeedHandleMainLocus --> self this device shown as JOINED in the main session');
|
|
342
|
+
if (breakoutLocus !== null && breakoutLocus !== void 0 && breakoutLocus.joinedWith && deviceFromNewLocus) {
|
|
343
|
+
var _breakoutLocus$joined2, _deviceFromNewLocus$r;
|
|
344
|
+
var breakoutReplaceAt = ((_breakoutLocus$joined2 = breakoutLocus.joinedWith.replaces) === null || _breakoutLocus$joined2 === void 0 ? void 0 : _breakoutLocus$joined2.length) > 0 ? breakoutLocus.joinedWith.replaces[0].replaceAt : '';
|
|
345
|
+
var newLocusReplaceAt = ((_deviceFromNewLocus$r = deviceFromNewLocus.replaces) === null || _deviceFromNewLocus$r === void 0 ? void 0 : _deviceFromNewLocus$r.length) > 0 ? deviceFromNewLocus.replaces[0].replaceAt : '';
|
|
346
|
+
if (breakoutReplaceAt && newLocusReplaceAt && breakoutReplaceAt > newLocusReplaceAt) {
|
|
347
|
+
_loggerProxy.default.logger.log("Meetings:index#isNeedHandleMainLocus --> this is expired main joined status locus_dto replacedAt ".concat(newLocusReplaceAt, " bo replacedAt ").concat(breakoutReplaceAt));
|
|
348
|
+
return false;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
return true;
|
|
352
|
+
}
|
|
353
|
+
if (isBreakoutLocusJoinThisDevice) {
|
|
354
|
+
_loggerProxy.default.logger.log("Meetings:index#isNeedHandleMainLocus --> there is active breakout session and joined on this device, and don't need to handle main session: ".concat(breakoutUrl));
|
|
355
|
+
return false;
|
|
356
|
+
}
|
|
357
|
+
if (isSelfMoved && (newLocus !== null && newLocus !== void 0 && (_newLocus$self4 = newLocus.self) !== null && _newLocus$self4 !== void 0 && _newLocus$self4.removed || isResourceMovedOnThisDevice)) {
|
|
358
|
+
_loggerProxy.default.logger.log('Meetings:index#isNeedHandleMainLocus --> self moved main locus with self removed status or with device resource moved, not need to handle');
|
|
359
|
+
return false;
|
|
360
|
+
}
|
|
361
|
+
if (isSelfJoined && isResourceMovedOnThisDevice) {
|
|
362
|
+
_loggerProxy.default.logger.log('Meetings:index#isNeedHandleMainLocus --> self device left&moved in main locus with self joined status, not need to handle');
|
|
363
|
+
return false;
|
|
364
|
+
}
|
|
365
|
+
_loggerProxy.default.logger.log('Meetings:index#isNeedHandleMainLocus --> this is a normal main session locusDTO update case');
|
|
366
|
+
return true;
|
|
367
|
+
}
|
|
265
368
|
|
|
369
|
+
/**
|
|
370
|
+
* check whether you need to handle this locus data or not
|
|
371
|
+
* @param {Object} meeting old locus data
|
|
372
|
+
* @param {Object} newLocus new locus data
|
|
373
|
+
* @returns {boolean}
|
|
374
|
+
* @private
|
|
375
|
+
* @memberof Meetings
|
|
376
|
+
*/
|
|
377
|
+
}, {
|
|
378
|
+
key: "isNeedHandleLocusDTO",
|
|
379
|
+
value: function isNeedHandleLocusDTO(meeting, newLocus) {
|
|
380
|
+
if (newLocus) {
|
|
381
|
+
var _newLocus$self5, _newLocus$self6;
|
|
382
|
+
var isNewLocusAsBreakout = _util2.default.isBreakoutLocusDTO(newLocus);
|
|
383
|
+
var isSelfMoved = (newLocus === null || newLocus === void 0 ? void 0 : (_newLocus$self5 = newLocus.self) === null || _newLocus$self5 === void 0 ? void 0 : _newLocus$self5.state) === _constants._LEFT_ && (newLocus === null || newLocus === void 0 ? void 0 : (_newLocus$self6 = newLocus.self) === null || _newLocus$self6 === void 0 ? void 0 : _newLocus$self6.reason) === _constants._MOVED_;
|
|
384
|
+
if (!meeting) {
|
|
385
|
+
if (isNewLocusAsBreakout) {
|
|
386
|
+
var _newLocus$fullState, _newLocus$self7;
|
|
387
|
+
_loggerProxy.default.logger.log("Meetings:index#isNeedHandleLocusDTO --> the first breakout session locusDTO active status: ".concat((_newLocus$fullState = newLocus.fullState) === null || _newLocus$fullState === void 0 ? void 0 : _newLocus$fullState.active));
|
|
388
|
+
return ((_newLocus$self7 = newLocus.self) === null || _newLocus$self7 === void 0 ? void 0 : _newLocus$self7.state) === _constants._JOINED_;
|
|
389
|
+
}
|
|
390
|
+
return this.isNeedHandleMainLocus(meeting, newLocus);
|
|
391
|
+
}
|
|
392
|
+
if (!isNewLocusAsBreakout) {
|
|
393
|
+
return this.isNeedHandleMainLocus(meeting, newLocus);
|
|
394
|
+
}
|
|
395
|
+
return !isSelfMoved;
|
|
396
|
+
}
|
|
397
|
+
return true;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
/**
|
|
401
|
+
* get corresponding meeting object by locus data
|
|
402
|
+
* @param {Object} data a locus event
|
|
403
|
+
* @param {String} data.locusUrl
|
|
404
|
+
* @param {Object} data.locus
|
|
405
|
+
* @returns {Object}
|
|
406
|
+
* @private
|
|
407
|
+
* @memberof Meetings
|
|
408
|
+
*/
|
|
409
|
+
}, {
|
|
410
|
+
key: "getCorrespondingMeetingByLocus",
|
|
411
|
+
value: function getCorrespondingMeetingByLocus(data) {
|
|
412
|
+
var _data$locus$info, _data$locus, _data$locus$info2;
|
|
266
413
|
// getting meeting by correlationId. This will happen for the new event
|
|
267
414
|
// Either the locus
|
|
268
415
|
// TODO : Add check for the callBack Address
|
|
269
|
-
|
|
416
|
+
return this.meetingCollection.getByKey(_constants.LOCUS_URL, data.locusUrl) ||
|
|
270
417
|
// @ts-ignore
|
|
271
418
|
this.meetingCollection.getByKey(_constants.CORRELATION_ID,
|
|
272
419
|
// @ts-ignore
|
|
273
|
-
_util2.default.checkForCorrelationId(this.webex.internal.device.url, data.locus)) || this.meetingCollection.getByKey(_constants.SIP_URI, data.locus.self && data.locus.self.callbackInfo && data.locus.self.callbackInfo.callbackAddress) || ((_data$locus$info = data.locus.info) !== null && _data$locus$info !== void 0 && _data$locus$info.isUnifiedSpaceMeeting ? undefined : this.meetingCollection.getByKey(_constants.CONVERSATION_URL, data.locus.conversationUrl));
|
|
420
|
+
_util2.default.checkForCorrelationId(this.webex.internal.device.url, data.locus)) || this.meetingCollection.getByKey(_constants.SIP_URI, data.locus.self && data.locus.self.callbackInfo && data.locus.self.callbackInfo.callbackAddress) || ((_data$locus$info = data.locus.info) !== null && _data$locus$info !== void 0 && _data$locus$info.isUnifiedSpaceMeeting ? undefined : this.meetingCollection.getByKey(_constants.CONVERSATION_URL, data.locus.conversationUrl)) || this.meetingCollection.getByKey(_constants.MEETINGNUMBER, (_data$locus = data.locus) === null || _data$locus === void 0 ? void 0 : (_data$locus$info2 = _data$locus.info) === null || _data$locus$info2 === void 0 ? void 0 : _data$locus$info2.webExMeetingId);
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
/**
|
|
424
|
+
* handle locus events and takes meeting actions with them as they come in
|
|
425
|
+
* @param {Object} data a locus event
|
|
426
|
+
* @param {String} data.locusUrl
|
|
427
|
+
* @param {Object} data.locus
|
|
428
|
+
* @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
|
|
429
|
+
* @param {String} data.eventType
|
|
430
|
+
* @returns {undefined}
|
|
431
|
+
* @private
|
|
432
|
+
* @memberof Meetings
|
|
433
|
+
*/
|
|
434
|
+
}, {
|
|
435
|
+
key: "handleLocusEvent",
|
|
436
|
+
value: function handleLocusEvent(data) {
|
|
437
|
+
var _data$locus2,
|
|
438
|
+
_data$locus2$replaces,
|
|
439
|
+
_this2 = this;
|
|
440
|
+
var useRandomDelayForInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
441
|
+
var meeting = this.getCorrespondingMeetingByLocus(data);
|
|
274
442
|
|
|
275
443
|
// Special case when locus has got replaced, This only happend once if a replace locus exists
|
|
276
444
|
// https://sqbu-github.cisco.com/WebExSquared/locus/wiki/Locus-changing-mid-call
|
|
277
445
|
|
|
278
|
-
if (!meeting && ((_data$
|
|
446
|
+
if (!meeting && ((_data$locus2 = data.locus) === null || _data$locus2 === void 0 ? void 0 : (_data$locus2$replaces = _data$locus2.replaces) === null || _data$locus2$replaces === void 0 ? void 0 : _data$locus2$replaces.length) > 0) {
|
|
279
447
|
// Always the last element in the replace is the active one
|
|
280
448
|
meeting = this.meetingCollection.getByKey(_constants.LOCUS_URL, data.locus.replaces[data.locus.replaces.length - 1].locusUrl);
|
|
281
449
|
}
|
|
450
|
+
if (meeting && !_util2.default.isBreakoutLocusDTO(data.locus)) {
|
|
451
|
+
meeting.locusInfo.updateMainSessionLocusCache(data.locus);
|
|
452
|
+
}
|
|
453
|
+
if (!this.isNeedHandleLocusDTO(meeting, data.locus)) {
|
|
454
|
+
_loggerProxy.default.logger.log("Meetings:index#handleLocusEvent --> doesn't need to process locus event");
|
|
455
|
+
return;
|
|
456
|
+
}
|
|
282
457
|
if (!meeting) {
|
|
283
458
|
// TODO: create meeting when we get a meeting object
|
|
284
459
|
// const checkForEnded = (locus) => {
|
|
@@ -318,6 +493,7 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
318
493
|
|
|
319
494
|
// It's a new meeting so initialize the locus data
|
|
320
495
|
meeting.locusInfo.initialSetup(data.locus);
|
|
496
|
+
_this2.checkHandleBreakoutLocus(data.locus);
|
|
321
497
|
}).catch(function (e) {
|
|
322
498
|
_loggerProxy.default.logger.error(e);
|
|
323
499
|
}).finally(function () {
|
|
@@ -325,11 +501,14 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
325
501
|
// because the other user left so before sending 'added' event make sure it exists in the collection
|
|
326
502
|
|
|
327
503
|
if (_this2.getMeetingByType(_constants._ID_, meeting.id)) {
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
trigger:
|
|
504
|
+
// @ts-ignore
|
|
505
|
+
_this2.webex.internal.newMetrics.submitClientEvent({
|
|
506
|
+
name: 'client.call.remote-started',
|
|
507
|
+
payload: {
|
|
508
|
+
trigger: 'mercury-event'
|
|
509
|
+
},
|
|
510
|
+
options: {
|
|
511
|
+
meetingId: meeting.id
|
|
333
512
|
}
|
|
334
513
|
});
|
|
335
514
|
_triggerProxy.default.trigger(_this2, {
|
|
@@ -405,7 +584,9 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
405
584
|
|
|
406
585
|
// @ts-ignore
|
|
407
586
|
this.webex.internal.mercury.on(_constants.ONLINE, function () {
|
|
408
|
-
_this3.syncMeetings(
|
|
587
|
+
_this3.syncMeetings({
|
|
588
|
+
keepOnlyLocusMeetings: false
|
|
589
|
+
});
|
|
409
590
|
});
|
|
410
591
|
|
|
411
592
|
// @ts-ignore
|
|
@@ -443,7 +624,7 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
443
624
|
// @ts-ignore
|
|
444
625
|
this.webex.once(_constants.READY, function () {
|
|
445
626
|
// @ts-ignore
|
|
446
|
-
|
|
627
|
+
_config.default.set(_this4.config);
|
|
447
628
|
// @ts-ignore
|
|
448
629
|
_loggerConfig.default.set(_this4.config.logging);
|
|
449
630
|
// @ts-ignore
|
|
@@ -480,7 +661,7 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
480
661
|
disableNotifications: true
|
|
481
662
|
});
|
|
482
663
|
// @ts-ignore
|
|
483
|
-
_metrics.default.initialSetup(_this4.
|
|
664
|
+
_metrics.default.initialSetup(_this4.webex);
|
|
484
665
|
});
|
|
485
666
|
}
|
|
486
667
|
|
|
@@ -508,40 +689,43 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
508
689
|
}
|
|
509
690
|
|
|
510
691
|
/**
|
|
511
|
-
* API to
|
|
512
|
-
* @param {Boolean}
|
|
692
|
+
* API to toggle starting adhoc meeting
|
|
693
|
+
* @param {Boolean} changeState
|
|
513
694
|
* @private
|
|
514
695
|
* @memberof Meetings
|
|
515
696
|
* @returns {undefined}
|
|
516
697
|
*/
|
|
517
698
|
}, {
|
|
518
|
-
key: "
|
|
519
|
-
value: function
|
|
520
|
-
|
|
699
|
+
key: "_toggleAdhocMeetings",
|
|
700
|
+
value: function _toggleAdhocMeetings(changeState) {
|
|
701
|
+
var _this$config2, _this$config2$experim;
|
|
702
|
+
if (typeof changeState !== 'boolean') {
|
|
521
703
|
return;
|
|
522
704
|
}
|
|
523
705
|
// @ts-ignore
|
|
524
|
-
this.config.experimental.
|
|
706
|
+
if (((_this$config2 = this.config) === null || _this$config2 === void 0 ? void 0 : (_this$config2$experim = _this$config2.experimental) === null || _this$config2$experim === void 0 ? void 0 : _this$config2$experim.enableAdhocMeetings) !== changeState) {
|
|
707
|
+
// @ts-ignore
|
|
708
|
+
this.config.experimental.enableAdhocMeetings = changeState;
|
|
709
|
+
}
|
|
525
710
|
}
|
|
526
711
|
|
|
527
712
|
/**
|
|
528
|
-
* API to toggle
|
|
529
|
-
* @param {Boolean}
|
|
713
|
+
* API to toggle TCP reachability, needs to be called before webex.meetings.register()
|
|
714
|
+
* @param {Boolean} newValue
|
|
530
715
|
* @private
|
|
531
716
|
* @memberof Meetings
|
|
532
717
|
* @returns {undefined}
|
|
533
718
|
*/
|
|
534
719
|
}, {
|
|
535
|
-
key: "
|
|
536
|
-
value: function
|
|
537
|
-
|
|
538
|
-
if (typeof changeState !== 'boolean') {
|
|
720
|
+
key: "_toggleTcpReachability",
|
|
721
|
+
value: function _toggleTcpReachability(newValue) {
|
|
722
|
+
if (typeof newValue !== 'boolean') {
|
|
539
723
|
return;
|
|
540
724
|
}
|
|
541
725
|
// @ts-ignore
|
|
542
|
-
if (
|
|
726
|
+
if (this.config.experimental.enableTcpReachability !== newValue) {
|
|
543
727
|
// @ts-ignore
|
|
544
|
-
this.config.experimental.
|
|
728
|
+
this.config.experimental.enableTcpReachability = newValue;
|
|
545
729
|
}
|
|
546
730
|
}
|
|
547
731
|
|
|
@@ -557,15 +741,28 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
557
741
|
key: "register",
|
|
558
742
|
value: function register() {
|
|
559
743
|
var _this5 = this;
|
|
744
|
+
_metrics.default.sendBehavioralMetric(_constants2.default.MEETINGS_REGISTRATION_STEP, {
|
|
745
|
+
step: '[sdk] begin registration'
|
|
746
|
+
});
|
|
747
|
+
|
|
560
748
|
// @ts-ignore
|
|
561
749
|
if (!this.webex.canAuthorize) {
|
|
562
750
|
_loggerProxy.default.logger.error('Meetings:index#register --> ERROR, Unable to register, SDK cannot authorize');
|
|
751
|
+
_metrics.default.sendBehavioralMetric(_constants2.default.MEETINGS_REGISTRATION_STEP, {
|
|
752
|
+
step: '[sdk] cannot authorize'
|
|
753
|
+
});
|
|
563
754
|
return _promise.default.reject(new Error('SDK cannot authorize'));
|
|
564
755
|
}
|
|
565
756
|
if (this.registered) {
|
|
566
757
|
_loggerProxy.default.logger.info('Meetings:index#register --> INFO, Meetings plugin already registered');
|
|
758
|
+
_metrics.default.sendBehavioralMetric(_constants2.default.MEETINGS_REGISTRATION_STEP, {
|
|
759
|
+
step: '[sdk] already registered'
|
|
760
|
+
});
|
|
567
761
|
return _promise.default.resolve();
|
|
568
762
|
}
|
|
763
|
+
_metrics.default.sendBehavioralMetric(_constants2.default.MEETINGS_REGISTRATION_STEP, {
|
|
764
|
+
step: '[sdk] begin Promise.all()'
|
|
765
|
+
});
|
|
569
766
|
return _promise.default.all([this.fetchUserPreferredWebexSite(), this.getGeoHint(), this.startReachability().catch(function (error) {
|
|
570
767
|
_loggerProxy.default.logger.error("Meetings:index#register --> GDM error, ".concat(error.message));
|
|
571
768
|
}),
|
|
@@ -580,11 +777,17 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
580
777
|
.then(function () {
|
|
581
778
|
return _this5.webex.internal.mercury.connect();
|
|
582
779
|
}), _util2.default.checkH264Support.call(this)]).then(function () {
|
|
780
|
+
_metrics.default.sendBehavioralMetric(_constants2.default.MEETINGS_REGISTRATION_STEP, {
|
|
781
|
+
step: '[sdk] end Promise.all()'
|
|
782
|
+
});
|
|
583
783
|
_this5.listenForEvents();
|
|
584
784
|
_triggerProxy.default.trigger(_this5, {
|
|
585
785
|
file: 'meetings',
|
|
586
786
|
function: 'register'
|
|
587
787
|
}, _constants.EVENT_TRIGGERS.MEETINGS_REGISTERED);
|
|
788
|
+
_metrics.default.sendBehavioralMetric(_constants2.default.MEETINGS_REGISTRATION_STEP, {
|
|
789
|
+
step: '[sdk] registration complete, triggered MEETINGS_REGISTERED event'
|
|
790
|
+
});
|
|
588
791
|
_this5.registered = true;
|
|
589
792
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETINGS_REGISTRATION_SUCCESS);
|
|
590
793
|
}).catch(function (error) {
|
|
@@ -630,6 +833,17 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
630
833
|
);
|
|
631
834
|
}
|
|
632
835
|
|
|
836
|
+
/**
|
|
837
|
+
* Creates a noise reduction effect
|
|
838
|
+
*
|
|
839
|
+
* @param {INoiseReductionEffect} options optional custom effect options
|
|
840
|
+
* @returns {Promise<effect>} noise reduction effect.
|
|
841
|
+
* @public
|
|
842
|
+
* @memberof Meetings
|
|
843
|
+
*/
|
|
844
|
+
}, {
|
|
845
|
+
key: "uploadLogs",
|
|
846
|
+
value:
|
|
633
847
|
/**
|
|
634
848
|
* Uploads logs to the webex services for tracking
|
|
635
849
|
* @param {Object} [options={}]
|
|
@@ -642,14 +856,13 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
642
856
|
* @param {String} [options.orgId] org id
|
|
643
857
|
* @returns {String} feedback ID logs were submitted under
|
|
644
858
|
*/
|
|
645
|
-
|
|
646
|
-
key: "uploadLogs",
|
|
647
|
-
value: function uploadLogs() {
|
|
859
|
+
function uploadLogs() {
|
|
648
860
|
var _this7 = this;
|
|
649
861
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
650
862
|
_loggerProxy.default.logger.info('Meetings:index#uploadLogs --> uploading logs');
|
|
651
863
|
return this.loggerRequest.uploadLogs(options).then(function (uploadResult) {
|
|
652
864
|
_loggerProxy.default.logger.info('Meetings:index#uploadLogs --> Upload logs for meeting completed.', uploadResult);
|
|
865
|
+
_metrics.default.sendBehavioralMetric(_constants2.default.UPLOAD_LOGS_SUCCESS, options);
|
|
653
866
|
_triggerProxy.default.trigger(_this7, {
|
|
654
867
|
file: 'meetings',
|
|
655
868
|
function: 'uploadLogs'
|
|
@@ -667,29 +880,14 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
667
880
|
meetingId: options.meetingId,
|
|
668
881
|
reason: uploadError
|
|
669
882
|
});
|
|
670
|
-
_metrics.default.sendBehavioralMetric(_constants2.default.UPLOAD_LOGS_FAILURE, {
|
|
671
|
-
// @ts-ignore - seems like typo
|
|
672
|
-
meetingId: options.meetingsId,
|
|
883
|
+
_metrics.default.sendBehavioralMetric(_constants2.default.UPLOAD_LOGS_FAILURE, _objectSpread(_objectSpread({}, options), {}, {
|
|
673
884
|
reason: uploadError.message,
|
|
674
885
|
stack: uploadError.stack,
|
|
675
886
|
code: uploadError.code
|
|
676
|
-
});
|
|
887
|
+
}));
|
|
677
888
|
});
|
|
678
889
|
}
|
|
679
890
|
|
|
680
|
-
/**
|
|
681
|
-
* initializes the reachability instance for Meetings
|
|
682
|
-
* @returns {undefined}
|
|
683
|
-
* @public
|
|
684
|
-
* @memberof Meetings
|
|
685
|
-
*/
|
|
686
|
-
}, {
|
|
687
|
-
key: "setReachability",
|
|
688
|
-
value: function setReachability() {
|
|
689
|
-
// @ts-ignore
|
|
690
|
-
this.reachability = new _reachability.default(this.webex);
|
|
691
|
-
}
|
|
692
|
-
|
|
693
891
|
/**
|
|
694
892
|
* gets the reachability instance for Meetings
|
|
695
893
|
* @returns {Reachability}
|
|
@@ -711,9 +909,6 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
711
909
|
}, {
|
|
712
910
|
key: "startReachability",
|
|
713
911
|
value: function startReachability() {
|
|
714
|
-
if (!this.reachability) {
|
|
715
|
-
this.setReachability();
|
|
716
|
-
}
|
|
717
912
|
return this.getReachability().gatherReachability();
|
|
718
913
|
}
|
|
719
914
|
|
|
@@ -747,6 +942,23 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
747
942
|
if (res) {
|
|
748
943
|
_this9.preferredWebexSite = _util2.default.parseDefaultSiteFromMeetingPreferences(res);
|
|
749
944
|
}
|
|
945
|
+
|
|
946
|
+
// fall back to getting the preferred site from the user information
|
|
947
|
+
if (!_this9.preferredWebexSite) {
|
|
948
|
+
// @ts-ignore
|
|
949
|
+
return _this9.webex.internal.user.get().then(function (user) {
|
|
950
|
+
var _user$userPreferences, _user$userPreferences2;
|
|
951
|
+
var preferredWebexSite = user === null || user === void 0 ? void 0 : (_user$userPreferences = user.userPreferences) === null || _user$userPreferences === void 0 ? void 0 : (_user$userPreferences2 = _user$userPreferences.userPreferencesItems) === null || _user$userPreferences2 === void 0 ? void 0 : _user$userPreferences2.preferredWebExSite;
|
|
952
|
+
if (preferredWebexSite) {
|
|
953
|
+
_this9.preferredWebexSite = preferredWebexSite;
|
|
954
|
+
} else {
|
|
955
|
+
throw new Error('site not found');
|
|
956
|
+
}
|
|
957
|
+
}).catch(function () {
|
|
958
|
+
_loggerProxy.default.logger.error('Failed to fetch preferred site from user - no site will be set');
|
|
959
|
+
});
|
|
960
|
+
}
|
|
961
|
+
return _promise.default.resolve();
|
|
750
962
|
});
|
|
751
963
|
}
|
|
752
964
|
|
|
@@ -785,10 +997,19 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
785
997
|
}
|
|
786
998
|
|
|
787
999
|
/**
|
|
788
|
-
* Create a meeting.
|
|
789
|
-
*
|
|
1000
|
+
* Create a meeting or return an existing meeting.
|
|
1001
|
+
*
|
|
1002
|
+
* When meeting info passed it should be complete, e.g.: fetched after password or captcha provided
|
|
1003
|
+
*
|
|
1004
|
+
* @param {string} destination - sipURL, phonenumber, or locus object}
|
|
790
1005
|
* @param {string} [type] - the optional specified type, such as locusId
|
|
791
1006
|
* @param {Boolean} useRandomDelayForInfo - whether a random delay should be added to fetching meeting info
|
|
1007
|
+
* @param {Object} infoExtraParams extra parameters to be provided when fetching meeting info
|
|
1008
|
+
* @param {string} correlationId - the optional specified correlationId (callStateForMetrics.correlationId can be provided instead)
|
|
1009
|
+
* @param {Boolean} failOnMissingMeetingInfo - whether to throw an error if meeting info fails to fetch (for calls that are not 1:1 or content share)
|
|
1010
|
+
* @param {CallStateForMetrics} callStateForMetrics - information about call state for metrics
|
|
1011
|
+
* @param {Object} [meetingInfo] - Pre-fetched complete meeting info
|
|
1012
|
+
* @param {String} [meetingLookupUrl] - meeting info prefetch url
|
|
792
1013
|
* @returns {Promise<Meeting>} A new Meeting.
|
|
793
1014
|
* @public
|
|
794
1015
|
* @memberof Meetings
|
|
@@ -799,16 +1020,30 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
799
1020
|
var _this10 = this;
|
|
800
1021
|
var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
801
1022
|
var useRandomDelayForInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
1023
|
+
var infoExtraParams = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
1024
|
+
var correlationId = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;
|
|
1025
|
+
var failOnMissingMeetingInfo = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
|
|
1026
|
+
var callStateForMetrics = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : undefined;
|
|
1027
|
+
var meetingInfo = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : undefined;
|
|
1028
|
+
var meetingLookupUrl = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : undefined;
|
|
802
1029
|
// TODO: type should be from a dictionary
|
|
803
1030
|
|
|
804
1031
|
// Validate meeting information based on the provided destination and
|
|
805
1032
|
// type. This must be performed prior to determining if the meeting is
|
|
806
1033
|
// found in the collection, as we mutate the destination for hydra person
|
|
807
1034
|
// id values.
|
|
1035
|
+
if (correlationId) {
|
|
1036
|
+
callStateForMetrics = _objectSpread(_objectSpread({}, callStateForMetrics || {}), {}, {
|
|
1037
|
+
correlationId: correlationId
|
|
1038
|
+
});
|
|
1039
|
+
}
|
|
808
1040
|
return this.meetingInfo.fetchInfoOptions(destination, type)
|
|
809
1041
|
// Catch a failure to fetch info options.
|
|
810
1042
|
.catch(function (error) {
|
|
811
|
-
_loggerProxy.default.logger.
|
|
1043
|
+
_loggerProxy.default.logger.error("Meetings:index#create --> ERROR, unable to determine info options: ".concat(error.message));
|
|
1044
|
+
if (error instanceof _webexErrors.SpaceIDDeprecatedError) {
|
|
1045
|
+
throw new _webexErrors.SpaceIDDeprecatedError();
|
|
1046
|
+
}
|
|
812
1047
|
}).then(function () {
|
|
813
1048
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
814
1049
|
// Normalize the destination.
|
|
@@ -837,20 +1072,22 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
837
1072
|
// Validate if a meeting was found.
|
|
838
1073
|
if (!meeting) {
|
|
839
1074
|
// Create a meeting based on the normalized destination and type.
|
|
840
|
-
return _this10.createMeeting(targetDest, type, useRandomDelayForInfo).then(function (createdMeeting) {
|
|
1075
|
+
return _this10.createMeeting(targetDest, type, useRandomDelayForInfo, infoExtraParams, callStateForMetrics, failOnMissingMeetingInfo, meetingInfo, meetingLookupUrl).then(function (createdMeeting) {
|
|
841
1076
|
// If the meeting was successfully created.
|
|
842
1077
|
if (createdMeeting && createdMeeting.on) {
|
|
843
1078
|
// Create a destruction event for the meeting.
|
|
844
1079
|
createdMeeting.on(_constants.EVENTS.DESTROY_MEETING, function (payload) {
|
|
845
1080
|
// @ts-ignore
|
|
846
1081
|
if (_this10.config.autoUploadLogs) {
|
|
847
|
-
var _createdMeeting$locus, _createdMeeting$locus2, _createdMeeting$locus3, _createdMeeting$locus4;
|
|
1082
|
+
var _createdMeeting$locus, _createdMeeting$locus2, _createdMeeting$locus3, _createdMeeting$locus4, _createdMeeting$locus5, _createdMeeting$locus6;
|
|
848
1083
|
_this10.uploadLogs({
|
|
849
1084
|
callStart: (_createdMeeting$locus = createdMeeting.locusInfo) === null || _createdMeeting$locus === void 0 ? void 0 : (_createdMeeting$locus2 = _createdMeeting$locus.fullState) === null || _createdMeeting$locus2 === void 0 ? void 0 : _createdMeeting$locus2.lastActive,
|
|
1085
|
+
locussessionid: (_createdMeeting$locus3 = createdMeeting.locusInfo) === null || _createdMeeting$locus3 === void 0 ? void 0 : (_createdMeeting$locus4 = _createdMeeting$locus3.fullState) === null || _createdMeeting$locus4 === void 0 ? void 0 : _createdMeeting$locus4.sessionId,
|
|
850
1086
|
correlationId: createdMeeting.correlationId,
|
|
851
1087
|
feedbackId: createdMeeting.correlationId,
|
|
852
1088
|
locusId: createdMeeting.locusId,
|
|
853
|
-
meetingId: (_createdMeeting$
|
|
1089
|
+
meetingId: (_createdMeeting$locus5 = createdMeeting.locusInfo) === null || _createdMeeting$locus5 === void 0 ? void 0 : (_createdMeeting$locus6 = _createdMeeting$locus5.info) === null || _createdMeeting$locus6 === void 0 ? void 0 : _createdMeeting$locus6.webExMeetingId,
|
|
1090
|
+
autoupload: true
|
|
854
1091
|
}).then(function () {
|
|
855
1092
|
return _this10.destroy(createdMeeting, payload.reason);
|
|
856
1093
|
});
|
|
@@ -861,13 +1098,15 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
861
1098
|
createdMeeting.on(_constants.EVENTS.REQUEST_UPLOAD_LOGS, function (meetingInstance) {
|
|
862
1099
|
// @ts-ignore
|
|
863
1100
|
if (_this10.config.autoUploadLogs) {
|
|
864
|
-
var _meetingInstance$locu, _meetingInstance$locu2, _meetingInstance$locu3, _meetingInstance$locu4;
|
|
1101
|
+
var _meetingInstance$locu, _meetingInstance$locu2, _meetingInstance$locu3, _meetingInstance$locu4, _meetingInstance$locu5, _meetingInstance$locu6;
|
|
865
1102
|
_this10.uploadLogs({
|
|
866
1103
|
callStart: meetingInstance === null || meetingInstance === void 0 ? void 0 : (_meetingInstance$locu = meetingInstance.locusInfo) === null || _meetingInstance$locu === void 0 ? void 0 : (_meetingInstance$locu2 = _meetingInstance$locu.fullState) === null || _meetingInstance$locu2 === void 0 ? void 0 : _meetingInstance$locu2.lastActive,
|
|
1104
|
+
locussessionid: meetingInstance === null || meetingInstance === void 0 ? void 0 : (_meetingInstance$locu3 = meetingInstance.locusInfo) === null || _meetingInstance$locu3 === void 0 ? void 0 : (_meetingInstance$locu4 = _meetingInstance$locu3.fullState) === null || _meetingInstance$locu4 === void 0 ? void 0 : _meetingInstance$locu4.sessionId,
|
|
867
1105
|
correlationId: meetingInstance.correlationId,
|
|
868
1106
|
feedbackId: meetingInstance.correlationId,
|
|
869
1107
|
locusId: meetingInstance.locusId,
|
|
870
|
-
meetingId: (_meetingInstance$
|
|
1108
|
+
meetingId: (_meetingInstance$locu5 = meetingInstance.locusInfo) === null || _meetingInstance$locu5 === void 0 ? void 0 : (_meetingInstance$locu6 = _meetingInstance$locu5.info) === null || _meetingInstance$locu6 === void 0 ? void 0 : _meetingInstance$locu6.webExMeetingId,
|
|
1109
|
+
autoupload: true
|
|
871
1110
|
});
|
|
872
1111
|
}
|
|
873
1112
|
});
|
|
@@ -879,6 +1118,7 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
879
1118
|
return _promise.default.resolve(createdMeeting);
|
|
880
1119
|
});
|
|
881
1120
|
}
|
|
1121
|
+
meeting.setCallStateForMetrics(callStateForMetrics);
|
|
882
1122
|
|
|
883
1123
|
// Return the existing meeting.
|
|
884
1124
|
return _promise.default.resolve(meeting);
|
|
@@ -886,9 +1126,18 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
886
1126
|
}
|
|
887
1127
|
|
|
888
1128
|
/**
|
|
1129
|
+
* Create meeting
|
|
1130
|
+
*
|
|
1131
|
+
* When meeting info passed it should be complete, e.g.: fetched after password or captcha provided
|
|
1132
|
+
*
|
|
889
1133
|
* @param {String} destination see create()
|
|
890
1134
|
* @param {String} type see create()
|
|
891
1135
|
* @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
|
|
1136
|
+
* @param {Object} infoExtraParams extra parameters to be provided when fetching meeting info
|
|
1137
|
+
* @param {CallStateForMetrics} callStateForMetrics - information about call state for metrics
|
|
1138
|
+
* @param {Boolean} failOnMissingMeetingInfo - whether to throw an error if meeting info fails to fetch (for calls that are not 1:1 or content share)
|
|
1139
|
+
* @param {Object} [meetingInfo] - Pre-fetched complete meeting info
|
|
1140
|
+
* @param {String} [meetingLookupUrl] - meeting info prefetch url
|
|
892
1141
|
* @returns {Promise} a new meeting instance complete with meeting info and destination
|
|
893
1142
|
* @private
|
|
894
1143
|
* @memberof Meetings
|
|
@@ -896,9 +1145,14 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
896
1145
|
}, {
|
|
897
1146
|
key: "createMeeting",
|
|
898
1147
|
value: function () {
|
|
899
|
-
var _createMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
1148
|
+
var _createMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(destination) {
|
|
900
1149
|
var type,
|
|
901
1150
|
useRandomDelayForInfo,
|
|
1151
|
+
infoExtraParams,
|
|
1152
|
+
callStateForMetrics,
|
|
1153
|
+
failOnMissingMeetingInfo,
|
|
1154
|
+
meetingInfo,
|
|
1155
|
+
meetingLookupUrl,
|
|
902
1156
|
meeting,
|
|
903
1157
|
_destination$fullStat,
|
|
904
1158
|
waitingTime,
|
|
@@ -909,13 +1163,19 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
909
1163
|
maxWaitingTime,
|
|
910
1164
|
isMeetingActive,
|
|
911
1165
|
enableUnifiedMeetings,
|
|
1166
|
+
meetingInfoOptions,
|
|
912
1167
|
meetingAddedType,
|
|
913
|
-
|
|
914
|
-
return _regenerator.default.wrap(function
|
|
915
|
-
while (1) switch (
|
|
1168
|
+
_args3 = arguments;
|
|
1169
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
1170
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
916
1171
|
case 0:
|
|
917
|
-
type =
|
|
918
|
-
useRandomDelayForInfo =
|
|
1172
|
+
type = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : null;
|
|
1173
|
+
useRandomDelayForInfo = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : false;
|
|
1174
|
+
infoExtraParams = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : {};
|
|
1175
|
+
callStateForMetrics = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : undefined;
|
|
1176
|
+
failOnMissingMeetingInfo = _args3.length > 5 && _args3[5] !== undefined ? _args3[5] : false;
|
|
1177
|
+
meetingInfo = _args3.length > 6 && _args3[6] !== undefined ? _args3[6] : undefined;
|
|
1178
|
+
meetingLookupUrl = _args3.length > 7 && _args3[7] !== undefined ? _args3[7] : undefined;
|
|
919
1179
|
meeting = new _meeting.default({
|
|
920
1180
|
// @ts-ignore
|
|
921
1181
|
userId: this.webex.internal.device.userId,
|
|
@@ -927,13 +1187,14 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
927
1187
|
// pass the locus object if present
|
|
928
1188
|
meetingInfoProvider: this.meetingInfo,
|
|
929
1189
|
destination: destination,
|
|
930
|
-
destinationType: type
|
|
1190
|
+
destinationType: type,
|
|
1191
|
+
callStateForMetrics: callStateForMetrics
|
|
931
1192
|
}, {
|
|
932
1193
|
// @ts-ignore
|
|
933
1194
|
parent: this.webex
|
|
934
1195
|
});
|
|
935
1196
|
this.meetingCollection.set(meeting);
|
|
936
|
-
|
|
1197
|
+
_context3.prev = 9;
|
|
937
1198
|
// if no participant has joined the scheduled meeting (meaning meeting is not active) and we get a locusEvent,
|
|
938
1199
|
// it means the meeting will start in 5-6 min. In that case, we want to fetchMeetingInfo
|
|
939
1200
|
// between 5 and 2 min (random between 3 minutes) before the meeting starts
|
|
@@ -949,33 +1210,57 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
949
1210
|
}
|
|
950
1211
|
isMeetingActive = !!((_destination$fullStat = destination.fullState) !== null && _destination$fullStat !== void 0 && _destination$fullStat.active); // @ts-ignore
|
|
951
1212
|
enableUnifiedMeetings = this.config.experimental.enableUnifiedMeetings;
|
|
1213
|
+
meetingInfoOptions = {
|
|
1214
|
+
extraParams: infoExtraParams,
|
|
1215
|
+
sendCAevents: !!(callStateForMetrics !== null && callStateForMetrics !== void 0 && callStateForMetrics.correlationId) // if client sends correlation id as argument of public create(), then it means that this meeting creation is part of a pre-join intent from user
|
|
1216
|
+
};
|
|
1217
|
+
if (!meetingInfo) {
|
|
1218
|
+
_context3.next = 19;
|
|
1219
|
+
break;
|
|
1220
|
+
}
|
|
1221
|
+
meeting.injectMeetingInfo(meetingInfo, meetingInfoOptions, meetingLookupUrl);
|
|
1222
|
+
_context3.next = 26;
|
|
1223
|
+
break;
|
|
1224
|
+
case 19:
|
|
952
1225
|
if (!(enableUnifiedMeetings && !isMeetingActive && useRandomDelayForInfo && waitingTime > 0)) {
|
|
953
|
-
|
|
1226
|
+
_context3.next = 24;
|
|
954
1227
|
break;
|
|
955
1228
|
}
|
|
956
1229
|
meeting.fetchMeetingInfoTimeoutId = setTimeout(function () {
|
|
957
|
-
return meeting.fetchMeetingInfo(
|
|
1230
|
+
return meeting.fetchMeetingInfo(meetingInfoOptions);
|
|
958
1231
|
}, waitingTime);
|
|
959
1232
|
meeting.parseMeetingInfo(undefined, destination);
|
|
960
|
-
|
|
1233
|
+
_context3.next = 26;
|
|
961
1234
|
break;
|
|
962
|
-
case
|
|
963
|
-
|
|
964
|
-
return meeting.fetchMeetingInfo(
|
|
965
|
-
case
|
|
966
|
-
|
|
1235
|
+
case 24:
|
|
1236
|
+
_context3.next = 26;
|
|
1237
|
+
return meeting.fetchMeetingInfo(meetingInfoOptions);
|
|
1238
|
+
case 26:
|
|
1239
|
+
_context3.next = 38;
|
|
967
1240
|
break;
|
|
968
|
-
case
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
if (!(
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
_loggerProxy.default.logger.info('Meetings:index#createMeeting --> Info assuming this destination is a 1:1 or wireless share');
|
|
1241
|
+
case 28:
|
|
1242
|
+
_context3.prev = 28;
|
|
1243
|
+
_context3.t0 = _context3["catch"](9);
|
|
1244
|
+
if (!(!(_context3.t0 instanceof _captchaError.default) && !(_context3.t0 instanceof _passwordError.default) && !(_context3.t0 instanceof _permission.default))) {
|
|
1245
|
+
_context3.next = 37;
|
|
1246
|
+
break;
|
|
975
1247
|
}
|
|
976
|
-
_loggerProxy.default.logger.
|
|
977
|
-
|
|
978
|
-
|
|
1248
|
+
_loggerProxy.default.logger.info("Meetings:index#createMeeting --> Info Unable to fetch meeting info for ".concat(destination, "."));
|
|
1249
|
+
if (!failOnMissingMeetingInfo) {
|
|
1250
|
+
_context3.next = 36;
|
|
1251
|
+
break;
|
|
1252
|
+
}
|
|
1253
|
+
_loggerProxy.default.logger.info("Meetings:index#createMeeting --> Destroying meeting due to missing meeting info.");
|
|
1254
|
+
// @ts-ignore
|
|
1255
|
+
this.destroy(meeting, _constants.MEETING_REMOVED_REASON.MISSING_MEETING_INFO);
|
|
1256
|
+
throw new _noMeetingInfo.default();
|
|
1257
|
+
case 36:
|
|
1258
|
+
// if there is no meeting info and no error should be thrown then we assume its a 1:1 call or wireless share
|
|
1259
|
+
_loggerProxy.default.logger.info('Meetings:index#createMeeting --> Info assuming this destination is a 1:1 or wireless share');
|
|
1260
|
+
case 37:
|
|
1261
|
+
_loggerProxy.default.logger.debug("Meetings:index#createMeeting --> Debug ".concat(_context3.t0, " fetching /meetingInfo for creation."));
|
|
1262
|
+
case 38:
|
|
1263
|
+
_context3.prev = 38;
|
|
979
1264
|
// For type LOCUS_ID we need to parse the locus object to get the information
|
|
980
1265
|
// about the caller and callee
|
|
981
1266
|
// Meeting Added event will be created in `handleLocusEvent`
|
|
@@ -995,16 +1280,16 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
995
1280
|
type: meetingAddedType
|
|
996
1281
|
});
|
|
997
1282
|
}
|
|
998
|
-
return
|
|
999
|
-
case
|
|
1000
|
-
return
|
|
1001
|
-
case
|
|
1283
|
+
return _context3.finish(38);
|
|
1284
|
+
case 41:
|
|
1285
|
+
return _context3.abrupt("return", meeting);
|
|
1286
|
+
case 42:
|
|
1002
1287
|
case "end":
|
|
1003
|
-
return
|
|
1288
|
+
return _context3.stop();
|
|
1004
1289
|
}
|
|
1005
|
-
},
|
|
1290
|
+
}, _callee3, this, [[9, 28, 38, 41]]);
|
|
1006
1291
|
}));
|
|
1007
|
-
function createMeeting(
|
|
1292
|
+
function createMeeting(_x3) {
|
|
1008
1293
|
return _createMeeting.apply(this, arguments);
|
|
1009
1294
|
}
|
|
1010
1295
|
return createMeeting;
|
|
@@ -1042,8 +1327,9 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1042
1327
|
}
|
|
1043
1328
|
|
|
1044
1329
|
/**
|
|
1045
|
-
*
|
|
1046
|
-
* @
|
|
1330
|
+
* Syncs all the meetings from server. Does nothing and returns immediately if unverified guest.
|
|
1331
|
+
* @param {boolean} keepOnlyLocusMeetings - whether the sync should keep only locus meetings or any other meeting in meetingCollection
|
|
1332
|
+
* @returns {Promise<void>}
|
|
1047
1333
|
* @public
|
|
1048
1334
|
* @memberof Meetings
|
|
1049
1335
|
*/
|
|
@@ -1051,10 +1337,19 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1051
1337
|
key: "syncMeetings",
|
|
1052
1338
|
value: function syncMeetings() {
|
|
1053
1339
|
var _this11 = this;
|
|
1340
|
+
var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1341
|
+
_ref3$keepOnlyLocusMe = _ref3.keepOnlyLocusMeetings,
|
|
1342
|
+
keepOnlyLocusMeetings = _ref3$keepOnlyLocusMe === void 0 ? true : _ref3$keepOnlyLocusMe;
|
|
1343
|
+
// @ts-ignore
|
|
1344
|
+
if (this.webex.credentials.isUnverifiedGuest) {
|
|
1345
|
+
_loggerProxy.default.logger.info('Meetings:index#syncMeetings --> skipping meeting sync as unverified guest');
|
|
1346
|
+
return _promise.default.resolve();
|
|
1347
|
+
}
|
|
1054
1348
|
return this.request.getActiveMeetings().then(function (locusArray) {
|
|
1055
1349
|
var activeLocusUrl = [];
|
|
1056
1350
|
if (locusArray !== null && locusArray !== void 0 && locusArray.loci && locusArray.loci.length > 0) {
|
|
1057
|
-
locusArray.loci
|
|
1351
|
+
var lociToUpdate = _this11.sortLocusArrayToUpdate(locusArray.loci);
|
|
1352
|
+
lociToUpdate.forEach(function (locus) {
|
|
1058
1353
|
activeLocusUrl.push(locus.url);
|
|
1059
1354
|
_this11.handleLocusEvent({
|
|
1060
1355
|
locus: locus,
|
|
@@ -1064,19 +1359,95 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1064
1359
|
}
|
|
1065
1360
|
var meetingsCollection = _this11.meetingCollection.getAll();
|
|
1066
1361
|
if ((0, _keys.default)(meetingsCollection).length > 0) {
|
|
1067
|
-
//
|
|
1068
|
-
//
|
|
1362
|
+
// Sometimes the mercury events are lost after mercury reconnect
|
|
1363
|
+
// Remove any Locus meetings that are not returned by Locus
|
|
1364
|
+
// (they had a locusUrl previously but are no longer active) in the sync
|
|
1069
1365
|
for (var _i = 0, _Object$values = (0, _values.default)(meetingsCollection); _i < _Object$values.length; _i++) {
|
|
1070
1366
|
var meeting = _Object$values[_i];
|
|
1071
1367
|
// @ts-ignore
|
|
1072
|
-
|
|
1368
|
+
var locusUrl = meeting.locusUrl;
|
|
1369
|
+
if ((keepOnlyLocusMeetings || locusUrl) && !activeLocusUrl.includes(locusUrl)) {
|
|
1073
1370
|
// destroy function also uploads logs
|
|
1074
1371
|
// @ts-ignore
|
|
1075
1372
|
_this11.destroy(meeting, _constants.MEETING_REMOVED_REASON.NO_MEETINGS_TO_SYNC);
|
|
1076
1373
|
}
|
|
1077
1374
|
}
|
|
1078
1375
|
}
|
|
1376
|
+
}).catch(function (error) {
|
|
1377
|
+
_loggerProxy.default.logger.error("Meetings:index#syncMeetings --> failed to sync meetings, ".concat(error));
|
|
1378
|
+
throw new Error(error);
|
|
1379
|
+
});
|
|
1380
|
+
}
|
|
1381
|
+
|
|
1382
|
+
/**
|
|
1383
|
+
* sort out locus array for initial creating
|
|
1384
|
+
* @param {Array} loci original locus array
|
|
1385
|
+
* @returns {undefined}
|
|
1386
|
+
* @public
|
|
1387
|
+
* @memberof Meetings
|
|
1388
|
+
*/
|
|
1389
|
+
}, {
|
|
1390
|
+
key: "sortLocusArrayToUpdate",
|
|
1391
|
+
value: function sortLocusArrayToUpdate(loci) {
|
|
1392
|
+
var _this12 = this;
|
|
1393
|
+
var mainLoci = loci.filter(function (locus) {
|
|
1394
|
+
return !_util2.default.isBreakoutLocusDTO(locus);
|
|
1395
|
+
});
|
|
1396
|
+
var breakoutLoci = loci.filter(function (locus) {
|
|
1397
|
+
return _util2.default.isValidBreakoutLocus(locus);
|
|
1398
|
+
});
|
|
1399
|
+
this.breakoutLocusForHandleLater = [];
|
|
1400
|
+
var lociToUpdate = (0, _toConsumableArray2.default)(mainLoci);
|
|
1401
|
+
breakoutLoci.forEach(function (breakoutLocus) {
|
|
1402
|
+
var associateMainLocus = mainLoci.find(function (mainLocus) {
|
|
1403
|
+
var _mainLocus$controls, _mainLocus$controls$b, _breakoutLocus$contro, _breakoutLocus$contro2;
|
|
1404
|
+
return ((_mainLocus$controls = mainLocus.controls) === null || _mainLocus$controls === void 0 ? void 0 : (_mainLocus$controls$b = _mainLocus$controls.breakout) === null || _mainLocus$controls$b === void 0 ? void 0 : _mainLocus$controls$b.url) === ((_breakoutLocus$contro = breakoutLocus.controls) === null || _breakoutLocus$contro === void 0 ? void 0 : (_breakoutLocus$contro2 = _breakoutLocus$contro.breakout) === null || _breakoutLocus$contro2 === void 0 ? void 0 : _breakoutLocus$contro2.url);
|
|
1405
|
+
});
|
|
1406
|
+
var existCorrespondingMeeting = _this12.getCorrespondingMeetingByLocus({
|
|
1407
|
+
locus: breakoutLocus,
|
|
1408
|
+
locusUrl: breakoutLocus.url
|
|
1409
|
+
});
|
|
1410
|
+
if (associateMainLocus && !existCorrespondingMeeting) {
|
|
1411
|
+
// if exists both main session and breakout session locus of the same non-exist meeting, handle main locus first,
|
|
1412
|
+
// after meeting create with main locus, then handle the associate breakout locus.
|
|
1413
|
+
// if only handle breakout locus, will miss some date
|
|
1414
|
+
_this12.breakoutLocusForHandleLater.push(breakoutLocus);
|
|
1415
|
+
} else {
|
|
1416
|
+
lociToUpdate.push(breakoutLocus);
|
|
1417
|
+
}
|
|
1079
1418
|
});
|
|
1419
|
+
return lociToUpdate;
|
|
1420
|
+
}
|
|
1421
|
+
|
|
1422
|
+
/**
|
|
1423
|
+
* check breakout locus which waiting for main locus's meeting to be created, then handle the breakout locus
|
|
1424
|
+
* @param {Object} newCreatedLocus the locus which just create meeting object of it
|
|
1425
|
+
* @returns {undefined}
|
|
1426
|
+
* @public
|
|
1427
|
+
* @memberof Meetings
|
|
1428
|
+
*/
|
|
1429
|
+
}, {
|
|
1430
|
+
key: "checkHandleBreakoutLocus",
|
|
1431
|
+
value: function checkHandleBreakoutLocus(newCreatedLocus) {
|
|
1432
|
+
if (!newCreatedLocus || !this.breakoutLocusForHandleLater || !this.breakoutLocusForHandleLater.length) {
|
|
1433
|
+
return;
|
|
1434
|
+
}
|
|
1435
|
+
if (_util2.default.isBreakoutLocusDTO(newCreatedLocus)) {
|
|
1436
|
+
return;
|
|
1437
|
+
}
|
|
1438
|
+
var existIndex = this.breakoutLocusForHandleLater.findIndex(function (breakoutLocus) {
|
|
1439
|
+
var _breakoutLocus$contro3, _breakoutLocus$contro4, _newCreatedLocus$cont, _newCreatedLocus$cont2;
|
|
1440
|
+
return ((_breakoutLocus$contro3 = breakoutLocus.controls) === null || _breakoutLocus$contro3 === void 0 ? void 0 : (_breakoutLocus$contro4 = _breakoutLocus$contro3.breakout) === null || _breakoutLocus$contro4 === void 0 ? void 0 : _breakoutLocus$contro4.url) === ((_newCreatedLocus$cont = newCreatedLocus.controls) === null || _newCreatedLocus$cont === void 0 ? void 0 : (_newCreatedLocus$cont2 = _newCreatedLocus$cont.breakout) === null || _newCreatedLocus$cont2 === void 0 ? void 0 : _newCreatedLocus$cont2.url);
|
|
1441
|
+
});
|
|
1442
|
+
if (existIndex < 0) {
|
|
1443
|
+
return;
|
|
1444
|
+
}
|
|
1445
|
+
var associateBreakoutLocus = this.breakoutLocusForHandleLater[existIndex];
|
|
1446
|
+
this.handleLocusEvent({
|
|
1447
|
+
locus: associateBreakoutLocus,
|
|
1448
|
+
locusUrl: associateBreakoutLocus.url
|
|
1449
|
+
});
|
|
1450
|
+
this.breakoutLocusForHandleLater.splice(existIndex, 1);
|
|
1080
1451
|
}
|
|
1081
1452
|
|
|
1082
1453
|
/**
|
|
@@ -1104,6 +1475,19 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1104
1475
|
value: function getLogger() {
|
|
1105
1476
|
return _loggerProxy.default.get();
|
|
1106
1477
|
}
|
|
1478
|
+
|
|
1479
|
+
/**
|
|
1480
|
+
* Returns the first meeting it finds that has the webrtc media connection created.
|
|
1481
|
+
* Useful for debugging in the console.
|
|
1482
|
+
*
|
|
1483
|
+
* @private
|
|
1484
|
+
* @returns {Meeting} Meeting object that has a webrtc media connection, else undefined
|
|
1485
|
+
*/
|
|
1486
|
+
}, {
|
|
1487
|
+
key: "getActiveWebrtcMeeting",
|
|
1488
|
+
value: function getActiveWebrtcMeeting() {
|
|
1489
|
+
return this.meetingCollection.getActiveWebrtcMeeting();
|
|
1490
|
+
}
|
|
1107
1491
|
}]);
|
|
1108
1492
|
return Meetings;
|
|
1109
1493
|
}(_webexCore.WebexPlugin);
|