@webex/plugin-meetings 3.0.0-beta.31 → 3.0.0-beta.310
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 +46 -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/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 +709 -35
- 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 -11
- package/dist/config.js.map +1 -1
- package/dist/constants.js +233 -29
- 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 +112 -1
- 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 +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 +383 -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 -116
- 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/meeting/in-meeting-actions.js +82 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +3777 -2929
- 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 +230 -124
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +260 -196
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +601 -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 +415 -115
- 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 +72 -6
- 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 +13 -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 +238 -49
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +29 -16
- 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/index.js +225 -59
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +17 -8
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +201 -156
- 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 +62 -32
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +112 -97
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +95 -36
- 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 +117 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/index.js +86 -78
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +11 -10
- 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/edit-lock-error.d.ts +15 -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 +1 -7
- package/dist/types/constants.d.ts +194 -24
- 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/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 +67 -6
- package/dist/types/media/index.d.ts +2 -0
- package/dist/types/media/properties.d.ts +34 -48
- package/dist/types/meeting/in-meeting-actions.d.ts +82 -2
- package/dist/types/meeting/index.d.ts +463 -510
- package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/types/meeting/muteState.d.ts +99 -23
- package/dist/types/meeting/request.d.ts +72 -43
- package/dist/types/meeting/util.d.ts +101 -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 +98 -20
- 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 +12 -4
- package/dist/types/metrics/index.d.ts +4 -119
- package/dist/types/multistream/mediaRequestManager.d.ts +73 -5
- package/dist/types/multistream/receiveSlot.d.ts +13 -11
- 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/index.d.ts +61 -7
- package/dist/types/reachability/request.d.ts +7 -3
- package/dist/types/reconnection-manager/index.d.ts +9 -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 +15 -11
- package/dist/types/roap/turnDiscovery.d.ts +21 -3
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +47 -0
- package/dist/types/statsAnalyzer/index.d.ts +7 -1
- 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 +23 -20
- 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 +42 -12
- package/src/breakouts/breakout.ts +67 -9
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +592 -20
- 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 -10
- package/src/constants.ts +221 -19
- 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 +40 -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 +413 -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 +102 -122
- package/src/media/properties.ts +87 -110
- package/src/meeting/in-meeting-actions.ts +163 -3
- package/src/meeting/index.ts +3132 -2541
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +229 -131
- package/src/meeting/request.ts +177 -121
- package/src/meeting/util.ts +588 -394
- 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 +445 -123
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +80 -11
- 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 +12 -4
- package/src/metrics/index.ts +1 -490
- package/src/multistream/mediaRequestManager.ts +289 -79
- package/src/multistream/receiveSlot.ts +31 -17
- 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/index.ts +228 -37
- package/src/reachability/request.ts +17 -8
- package/src/reconnection-manager/index.ts +83 -56
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +63 -32
- package/src/roap/request.ts +100 -104
- package/src/roap/turnDiscovery.ts +48 -26
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +100 -0
- package/src/statsAnalyzer/index.ts +105 -91
- package/src/statsAnalyzer/mqaUtil.ts +13 -14
- 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/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1395 -69
- 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/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 +1304 -33
- 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 +104 -37
- package/test/unit/spec/media/properties.ts +2 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +81 -3
- package/test/unit/spec/meeting/index.js +5216 -1956
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +408 -208
- package/test/unit/spec/meeting/request.js +483 -49
- package/test/unit/spec/meeting/utils.js +679 -64
- 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 +1011 -205
- package/test/unit/spec/meetings/utils.js +202 -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 +803 -162
- package/test/unit/spec/multistream/receiveSlot.ts +28 -20
- 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/index.ts +549 -9
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reconnection-manager/index.js +85 -9
- 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 +178 -64
- package/test/unit/spec/roap/request.ts +203 -85
- package/test/unit/spec/roap/turnDiscovery.ts +82 -36
- package/test/unit/spec/rtcMetrics/index.ts +73 -0
- package/test/unit/spec/stats-analyzer/index.js +136 -2
- 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 -52
- 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/types/meeting/effectsState.d.ts +0 -42
- package/dist/types/metrics/config.d.ts +0 -178
- package/src/index.js +0 -16
- package/src/meeting/effectsState.ts +0 -211
- package/src/metrics/config.ts +0 -495
- package/test/unit/spec/meeting/effectsState.js +0 -285
|
@@ -139,6 +139,20 @@ export declare class RemoteMediaManager extends EventsScope {
|
|
|
139
139
|
* @returns {LayoutId}
|
|
140
140
|
*/
|
|
141
141
|
getLayoutId(): LayoutId | undefined;
|
|
142
|
+
/**
|
|
143
|
+
* sets the preferLiveVideo
|
|
144
|
+
*/
|
|
145
|
+
setPreferLiveVideo(preferLiveVideo: boolean): void;
|
|
146
|
+
/**
|
|
147
|
+
* Sets CSIs for multiple RemoteMedia instances belonging to RemoteMediaGroup.
|
|
148
|
+
* For each entry in the remoteMediaCsis array:
|
|
149
|
+
* - if csi is specified, the RemoteMedia instance is pinned to that CSI
|
|
150
|
+
* - if csi is undefined, the RemoteMedia instance is unpinned
|
|
151
|
+
*/
|
|
152
|
+
setActiveSpeakerCsis(remoteMediaCsis: {
|
|
153
|
+
remoteMedia: RemoteMedia;
|
|
154
|
+
csi?: number;
|
|
155
|
+
}[]): void;
|
|
142
156
|
/**
|
|
143
157
|
* Creates the audio slots
|
|
144
158
|
*/
|
|
@@ -161,9 +175,39 @@ export declare class RemoteMediaManager extends EventsScope {
|
|
|
161
175
|
*/
|
|
162
176
|
private releaseUnusedVideoSlots;
|
|
163
177
|
/**
|
|
164
|
-
* Allocates receive slots to all video panes
|
|
178
|
+
* Allocates receive slots to all active speaker video panes
|
|
179
|
+
* in the current selected layout.
|
|
180
|
+
*
|
|
181
|
+
* Allocation tries to keep the same order of the slots between the previous
|
|
182
|
+
* layout and the new one. Sorting helps making sure that highest priority slots
|
|
183
|
+
* go in the same order in the new layout.
|
|
184
|
+
*/
|
|
185
|
+
private allocateSlotsToActiveSpeakerPaneGroups;
|
|
186
|
+
/**
|
|
187
|
+
* Allocates receive slots to all receiver selected video panes
|
|
188
|
+
* in the current selected layout
|
|
189
|
+
*/
|
|
190
|
+
private allocateSlotsToReceiverSelectedVideoPaneGroups;
|
|
191
|
+
/**
|
|
192
|
+
* Ensures that we have enough slots for the current layout.
|
|
193
|
+
*/
|
|
194
|
+
private refillRequiredSlotsIfNeeded;
|
|
195
|
+
/**
|
|
196
|
+
* Move all active speaker slots to "unused"
|
|
197
|
+
*/
|
|
198
|
+
private trimActiveSpeakerSlots;
|
|
199
|
+
/**
|
|
200
|
+
* Logs the state of the receive slots
|
|
165
201
|
*/
|
|
166
|
-
private
|
|
202
|
+
private logMainVideoReceiveSlots;
|
|
203
|
+
/** logs main audio slots */
|
|
204
|
+
private logMainAudioReceiveSlots;
|
|
205
|
+
/** logs slides video slots */
|
|
206
|
+
private logSlidesVideoReceiveSlots;
|
|
207
|
+
/** logs slides audio slots */
|
|
208
|
+
private logSlidesAudioReceiveSlots;
|
|
209
|
+
/** Logs all current receive slots */
|
|
210
|
+
logAllReceiveSlots(): void;
|
|
167
211
|
/**
|
|
168
212
|
* Makes sure we have the right number of receive slots created for the current layout
|
|
169
213
|
* and allocates them to the right video panes / pane groups
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { SendSlot, MediaType, LocalStream, MultistreamRoapMediaConnection } from '@webex/internal-media-core';
|
|
2
|
+
export default class SendSlotManager {
|
|
3
|
+
private readonly slots;
|
|
4
|
+
private readonly LoggerProxy;
|
|
5
|
+
constructor(LoggerProxy: any);
|
|
6
|
+
/**
|
|
7
|
+
* This method is used to create a sendSlot for the given mediaType and returns the created sendSlot
|
|
8
|
+
* @param {MultistreamRoapMediaConnection} mediaConnection MultistreamRoapMediaConnection for which a sendSlot needs to be created
|
|
9
|
+
* @param {MediaType} mediaType MediaType for which a sendSlot needs to be created (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
|
|
10
|
+
* @param {boolean} active This is optional boolean to set the active state of the sendSlot. Default is true
|
|
11
|
+
* @returns {SendSlot} slot The created sendSlot
|
|
12
|
+
*/
|
|
13
|
+
createSlot(mediaConnection: MultistreamRoapMediaConnection, mediaType: MediaType, active?: boolean): SendSlot;
|
|
14
|
+
/**
|
|
15
|
+
* This method is used to retrieve the sendSlot for the given mediaType
|
|
16
|
+
* @param {MediaType} mediaType of which the slot needs to be retrieved
|
|
17
|
+
* @returns {SendSlot}
|
|
18
|
+
*/
|
|
19
|
+
getSlot(mediaType: MediaType): SendSlot;
|
|
20
|
+
/**
|
|
21
|
+
* This method publishes the given stream to the sendSlot for the given mediaType
|
|
22
|
+
* @param {MediaType} mediaType MediaType of the sendSlot to which a stream needs to be published (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
|
|
23
|
+
* @param {LocalStream} stream LocalStream to be published
|
|
24
|
+
* @returns {Promise<void>}
|
|
25
|
+
*/
|
|
26
|
+
publishStream(mediaType: MediaType, stream: LocalStream): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* This method unpublishes the stream from the sendSlot of the given mediaType
|
|
29
|
+
* @param {MediaType} mediaType MediaType of the sendSlot from which a stream needs to be unpublished (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
|
|
30
|
+
* @returns {Promise<void>}
|
|
31
|
+
*/
|
|
32
|
+
unpublishStream(mediaType: MediaType): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* This method is used to set the active state of the sendSlot for the given mediaType
|
|
35
|
+
* @param {MediaType} mediaType The MediaType of the sendSlot for which the active state needs to be set (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
|
|
36
|
+
* @param {boolean} active The boolean to set the active state of the sendSlot. Default is true
|
|
37
|
+
* @returns {void}
|
|
38
|
+
*/
|
|
39
|
+
setActive(mediaType: MediaType, active?: boolean): void;
|
|
40
|
+
/**
|
|
41
|
+
* This method is used to set the codec parameters for the sendSlot of the given mediaType
|
|
42
|
+
* @param {MediaType} mediaType MediaType of the sendSlot for which the codec parameters needs to be set (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
|
|
43
|
+
* @param {Object} codecParameters
|
|
44
|
+
* @returns {Promise<void>}
|
|
45
|
+
*/
|
|
46
|
+
setCodecParameters(mediaType: MediaType, codecParameters: {
|
|
47
|
+
[key: string]: string | undefined;
|
|
48
|
+
}): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* This method is used to delete the codec parameters for the sendSlot of the given mediaType
|
|
51
|
+
* @param {MediaType} mediaType MediaType of the sendSlot for which the codec parameters needs to be deleted (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
|
|
52
|
+
* @param {Array<String>} parameters Array of keys of the codec parameters to be deleted
|
|
53
|
+
* @returns {Promise<void>}
|
|
54
|
+
*/
|
|
55
|
+
deleteCodecParameters(mediaType: MediaType, parameters: string[]): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* This method is used to reset the SendSlotsManager by deleting all the sendSlots
|
|
58
|
+
* @returns {undefined}
|
|
59
|
+
*/
|
|
60
|
+
reset(): void;
|
|
61
|
+
}
|
|
@@ -1,6 +1,39 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
3
|
*/
|
|
4
|
+
export type ReachabilityMetrics = {
|
|
5
|
+
reachability_public_udp_success: number;
|
|
6
|
+
reachability_public_udp_failed: number;
|
|
7
|
+
reachability_public_tcp_success: number;
|
|
8
|
+
reachability_public_tcp_failed: number;
|
|
9
|
+
reachability_vmn_udp_success: number;
|
|
10
|
+
reachability_vmn_udp_failed: number;
|
|
11
|
+
reachability_vmn_tcp_success: number;
|
|
12
|
+
reachability_vmn_tcp_failed: number;
|
|
13
|
+
};
|
|
14
|
+
export type TransportResult = {
|
|
15
|
+
reachable?: 'true' | 'false';
|
|
16
|
+
latencyInMilliseconds?: string;
|
|
17
|
+
clientMediaIPs?: string[];
|
|
18
|
+
untested?: 'true';
|
|
19
|
+
};
|
|
20
|
+
type ReachabilityResult = {
|
|
21
|
+
udp: TransportResult;
|
|
22
|
+
tcp: TransportResult;
|
|
23
|
+
xtls: {
|
|
24
|
+
untested: 'true';
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export type ReachabilityResults = Record<string, ReachabilityResult>;
|
|
28
|
+
type InternalReachabilityResults = Record<string, ReachabilityResult & {
|
|
29
|
+
isVideoMesh?: boolean;
|
|
30
|
+
}>;
|
|
31
|
+
export type ICECandidateResult = {
|
|
32
|
+
clusterId: string;
|
|
33
|
+
isVideoMesh: boolean;
|
|
34
|
+
elapsed?: string | null;
|
|
35
|
+
publicIPs?: string[];
|
|
36
|
+
};
|
|
4
37
|
/**
|
|
5
38
|
* @class Reachability
|
|
6
39
|
* @export
|
|
@@ -23,14 +56,27 @@ export default class Reachability {
|
|
|
23
56
|
* @async
|
|
24
57
|
* @memberof Reachability
|
|
25
58
|
*/
|
|
26
|
-
gatherReachability(): Promise<
|
|
59
|
+
gatherReachability(): Promise<InternalReachabilityResults>;
|
|
60
|
+
/**
|
|
61
|
+
* Returns statistics about last reachability results. The returned value is an object
|
|
62
|
+
* with a flat list of properties so that it can be easily sent with metrics
|
|
63
|
+
*
|
|
64
|
+
* @returns {Promise} Promise with metrics values, it never rejects/throws.
|
|
65
|
+
*/
|
|
66
|
+
getReachabilityMetrics(): Promise<ReachabilityMetrics>;
|
|
67
|
+
/**
|
|
68
|
+
* Reachability results as an object in the format that backend expects
|
|
69
|
+
*
|
|
70
|
+
* @returns {any} reachability results that need to be sent to the backend
|
|
71
|
+
*/
|
|
72
|
+
getReachabilityResults(): Promise<ReachabilityResults | undefined>;
|
|
27
73
|
/**
|
|
28
74
|
* fetches reachability data and checks for cluster reachability
|
|
29
75
|
* @returns {boolean}
|
|
30
76
|
* @public
|
|
31
77
|
* @memberof Reachability
|
|
32
78
|
*/
|
|
33
|
-
|
|
79
|
+
isAnyPublicClusterReachable(): Promise<boolean>;
|
|
34
80
|
/**
|
|
35
81
|
* Generate peerConnection config settings
|
|
36
82
|
* @param {object} cluster
|
|
@@ -94,7 +140,7 @@ export default class Reachability {
|
|
|
94
140
|
* speed.
|
|
95
141
|
* @private
|
|
96
142
|
* @param {RTCPeerConnection} peerConnection
|
|
97
|
-
* @param {
|
|
143
|
+
* @param {boolean} isVideoMesh
|
|
98
144
|
* @returns {Promise}
|
|
99
145
|
*/
|
|
100
146
|
private iceGatheringState;
|
|
@@ -107,20 +153,27 @@ export default class Reachability {
|
|
|
107
153
|
private logUnreachableClusters;
|
|
108
154
|
/**
|
|
109
155
|
* Calculates time to establish connection
|
|
110
|
-
* @param {
|
|
156
|
+
* @param {Array<ICECandidateResult>} iceResults iceResults
|
|
111
157
|
* @returns {object} reachabilityMap
|
|
112
|
-
* @
|
|
158
|
+
* @protected
|
|
113
159
|
* @memberof Reachability
|
|
114
160
|
*/
|
|
115
|
-
|
|
161
|
+
protected parseIceResultsToInternalReachabilityResults(iceResults: Array<ICECandidateResult>): InternalReachabilityResults;
|
|
116
162
|
/**
|
|
117
163
|
* fetches reachability data
|
|
118
164
|
* @param {object} clusterList
|
|
119
|
-
* @returns {Promise<
|
|
165
|
+
* @returns {Promise<InternalReachabilityResults>} reachability check results
|
|
120
166
|
* @private
|
|
121
167
|
* @memberof Reachability
|
|
122
168
|
*/
|
|
123
169
|
private performReachabilityCheck;
|
|
170
|
+
/**
|
|
171
|
+
* Adds public IP (client media IPs)
|
|
172
|
+
* @param {RTCPeerConnection} peerConnection
|
|
173
|
+
* @param {string} publicIP
|
|
174
|
+
* @returns {void}
|
|
175
|
+
*/
|
|
176
|
+
protected addPublicIP(peerConnection: RTCPeerConnection, publicIP?: string | null): void;
|
|
124
177
|
/**
|
|
125
178
|
* Records latency and closes the peerConnection
|
|
126
179
|
* @param {RTCPeerConnection} peerConnection
|
|
@@ -138,3 +191,4 @@ export default class Reachability {
|
|
|
138
191
|
*/
|
|
139
192
|
private setup;
|
|
140
193
|
}
|
|
194
|
+
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IP_VERSION } from '../constants';
|
|
1
2
|
export interface ClusterNode {
|
|
2
3
|
isVideoMesh: boolean;
|
|
3
4
|
udp: Array<string>;
|
|
@@ -19,12 +20,15 @@ declare class ReachabilityRequest {
|
|
|
19
20
|
*/
|
|
20
21
|
constructor(webex: object);
|
|
21
22
|
/**
|
|
22
|
-
*
|
|
23
|
+
* Gets the cluster information
|
|
23
24
|
*
|
|
24
|
-
* @param {
|
|
25
|
+
* @param {IP_VERSION} ipVersion information about current ip network we're on
|
|
25
26
|
* @returns {Promise}
|
|
26
27
|
*/
|
|
27
|
-
getClusters: () => Promise<
|
|
28
|
+
getClusters: (ipVersion?: IP_VERSION) => Promise<{
|
|
29
|
+
clusters: ClusterList;
|
|
30
|
+
joinCookie: any;
|
|
31
|
+
}>;
|
|
28
32
|
/**
|
|
29
33
|
* gets remote SDP For Clusters
|
|
30
34
|
* @param {Object} localSDPList localSDPs for the cluster
|
|
@@ -58,6 +58,15 @@ export default class ReconnectionManager {
|
|
|
58
58
|
* @memberof ReconnectionManager
|
|
59
59
|
*/
|
|
60
60
|
cleanUp(): void;
|
|
61
|
+
/**
|
|
62
|
+
* Stop the local share stream.
|
|
63
|
+
*
|
|
64
|
+
* @param {string} reason a {@link SHARE_STOPPED_REASON}
|
|
65
|
+
* @returns {undefined}
|
|
66
|
+
* @private
|
|
67
|
+
* @memberof ReconnectionManager
|
|
68
|
+
*/
|
|
69
|
+
private stopLocalShareStream;
|
|
61
70
|
/**
|
|
62
71
|
* @public
|
|
63
72
|
* @memberof ReconnectionManager
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SELF_POLICY } from '../constants';
|
|
1
2
|
import MeetingRequest from '../meeting/request';
|
|
2
3
|
/**
|
|
3
4
|
* @description Recording manages the recording functionality of the meeting object, there should only be one instantation of recording per meeting
|
|
@@ -20,6 +21,13 @@ export default class RecordingController {
|
|
|
20
21
|
* @memberof RecordingInfo
|
|
21
22
|
*/
|
|
22
23
|
private displayHints;
|
|
24
|
+
/**
|
|
25
|
+
* @instance
|
|
26
|
+
* @type {Object}
|
|
27
|
+
* @private
|
|
28
|
+
* @memberof RecordingInfo
|
|
29
|
+
*/
|
|
30
|
+
private selfUserPolicies;
|
|
23
31
|
/**
|
|
24
32
|
* @instance
|
|
25
33
|
* @type {string}
|
|
@@ -62,7 +70,6 @@ export default class RecordingController {
|
|
|
62
70
|
});
|
|
63
71
|
/**
|
|
64
72
|
* @param {MeetingRequest} request
|
|
65
|
-
* @param {LocusInfo} info
|
|
66
73
|
* @returns {void}
|
|
67
74
|
* @private
|
|
68
75
|
* @memberof RecordingController
|
|
@@ -94,6 +101,13 @@ export default class RecordingController {
|
|
|
94
101
|
* @memberof RecordingController
|
|
95
102
|
*/
|
|
96
103
|
setDisplayHints(hints: Array<string>): void;
|
|
104
|
+
/**
|
|
105
|
+
* @param {Object} selfUserPolicies
|
|
106
|
+
* @returns {void}
|
|
107
|
+
* @public
|
|
108
|
+
* @memberof RecordingController
|
|
109
|
+
*/
|
|
110
|
+
setUserPolicy(selfUserPolicies: Record<SELF_POLICY, boolean>): void;
|
|
97
111
|
/**
|
|
98
112
|
* @param {string} id
|
|
99
113
|
* @returns {void}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { SELF_POLICY } from '../constants';
|
|
1
2
|
import RecordingAction from './enums';
|
|
2
3
|
declare const _default: {
|
|
3
|
-
canUserStart: (displayHints: string[]) => boolean;
|
|
4
|
-
canUserPause: (displayHints: string[]) => boolean;
|
|
5
|
-
canUserResume: (displayHints: string[]) => boolean;
|
|
6
|
-
canUserStop: (displayHints: string[]) => boolean;
|
|
4
|
+
canUserStart: (displayHints: string[], userPolicies: Record<SELF_POLICY, boolean>) => boolean;
|
|
5
|
+
canUserPause: (displayHints: string[], userPolicies: Record<SELF_POLICY, boolean>) => boolean;
|
|
6
|
+
canUserResume: (displayHints: string[], userPolicies: Record<SELF_POLICY, boolean>) => boolean;
|
|
7
|
+
canUserStop: (displayHints: string[], userPolicies: Record<SELF_POLICY, boolean>) => boolean;
|
|
7
8
|
deriveRecordingStates: (action: RecordingAction) => {
|
|
8
9
|
recording: boolean;
|
|
9
10
|
paused: boolean;
|
|
@@ -71,7 +71,8 @@ export default class Roap extends StatelessWebexPlugin {
|
|
|
71
71
|
* @param {Meeting} meeting
|
|
72
72
|
* @param {Boolean} isReconnecting should be set to true if this is a new
|
|
73
73
|
* media connection just after a reconnection
|
|
74
|
+
* @param {Boolean} [isForced]
|
|
74
75
|
* @returns {Promise}
|
|
75
76
|
*/
|
|
76
|
-
doTurnDiscovery(meeting: Meeting, isReconnecting: boolean): any;
|
|
77
|
+
doTurnDiscovery(meeting: Meeting, isReconnecting: boolean, isForced?: boolean): any;
|
|
77
78
|
}
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { StatelessWebexPlugin } from '@webex/webex-core';
|
|
2
|
+
import { IP_VERSION } from '../constants';
|
|
3
|
+
import { LocusMediaRequest } from '../meeting/locusMediaRequest';
|
|
2
4
|
/**
|
|
3
5
|
* @class RoapRequest
|
|
4
6
|
*/
|
|
5
7
|
export default class RoapRequest extends StatelessWebexPlugin {
|
|
6
8
|
/**
|
|
7
|
-
*
|
|
9
|
+
* Returns reachability data.
|
|
8
10
|
* @param {Object} localSdp
|
|
9
|
-
* @returns {
|
|
11
|
+
* @returns {Object}
|
|
10
12
|
*/
|
|
11
|
-
|
|
13
|
+
attachReachabilityData(localSdp: any): Promise<{
|
|
14
|
+
localSdp: any;
|
|
15
|
+
joinCookie: any;
|
|
16
|
+
}>;
|
|
12
17
|
/**
|
|
13
18
|
* Sends a ROAP message
|
|
14
19
|
* @param {Object} options
|
|
@@ -16,20 +21,19 @@ export default class RoapRequest extends StatelessWebexPlugin {
|
|
|
16
21
|
* @param {String} options.locusSelfUrl
|
|
17
22
|
* @param {String} options.mediaId
|
|
18
23
|
* @param {String} options.correlationId
|
|
19
|
-
* @param {Boolean} options.audioMuted
|
|
20
|
-
* @param {Boolean} options.videoMuted
|
|
21
24
|
* @param {String} options.meetingId
|
|
22
|
-
* @param {
|
|
25
|
+
* @param {IP_VERSION} options.ipVersion only required for offers
|
|
23
26
|
* @returns {Promise} returns the response/failure of the request
|
|
24
27
|
*/
|
|
25
28
|
sendRoap(options: {
|
|
26
29
|
roapMessage: any;
|
|
27
30
|
locusSelfUrl: string;
|
|
28
31
|
mediaId: string;
|
|
29
|
-
correlationId: string;
|
|
30
|
-
audioMuted: boolean;
|
|
31
|
-
videoMuted: boolean;
|
|
32
32
|
meetingId: string;
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
ipVersion?: IP_VERSION;
|
|
34
|
+
locusMediaRequest?: LocusMediaRequest;
|
|
35
|
+
}): Promise<{
|
|
36
|
+
mediaConnections: any;
|
|
37
|
+
locus: any;
|
|
38
|
+
}>;
|
|
35
39
|
}
|
|
@@ -49,7 +49,24 @@ export default class TurnDiscovery {
|
|
|
49
49
|
* @param {Meeting} meeting
|
|
50
50
|
* @returns {Promise}
|
|
51
51
|
*/
|
|
52
|
-
sendRoapOK(meeting: Meeting): Promise<
|
|
52
|
+
sendRoapOK(meeting: Meeting): Promise<{
|
|
53
|
+
mediaConnections: any;
|
|
54
|
+
locus: any;
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Gets the reason why reachability is skipped.
|
|
58
|
+
*
|
|
59
|
+
* @param {Meeting} meeting
|
|
60
|
+
* @returns {Promise<string>} Promise with empty string if reachability is not skipped or a reason if it is skipped
|
|
61
|
+
*/
|
|
62
|
+
private getSkipReason;
|
|
63
|
+
/**
|
|
64
|
+
* Checks if TURN discovery is skipped.
|
|
65
|
+
*
|
|
66
|
+
* @param {Meeting} meeting
|
|
67
|
+
* @returns {Boolean} true if TURN discovery is being skipped, false if it is being done
|
|
68
|
+
*/
|
|
69
|
+
isSkipped(meeting: any): Promise<boolean>;
|
|
53
70
|
/**
|
|
54
71
|
* Retrieves TURN server information from the backend by doing
|
|
55
72
|
* a roap message exchange:
|
|
@@ -63,11 +80,12 @@ export default class TurnDiscovery {
|
|
|
63
80
|
* so it works fine no matter if TURN discovery is done or not.
|
|
64
81
|
*
|
|
65
82
|
* @param {Meeting} meeting
|
|
66
|
-
* @param {Boolean} isReconnecting should be set to true if this is a new
|
|
83
|
+
* @param {Boolean} [isReconnecting] should be set to true if this is a new
|
|
67
84
|
* media connection just after a reconnection
|
|
85
|
+
* @param {Boolean} [isForced]
|
|
68
86
|
* @returns {Promise}
|
|
69
87
|
*/
|
|
70
|
-
doTurnDiscovery(meeting: Meeting, isReconnecting?: boolean): Promise<{
|
|
88
|
+
doTurnDiscovery(meeting: Meeting, isReconnecting?: boolean, isForced?: boolean): Promise<{
|
|
71
89
|
turnServerInfo: any;
|
|
72
90
|
turnDiscoverySkippedReason: any;
|
|
73
91
|
}>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rtc Metrics
|
|
3
|
+
*/
|
|
4
|
+
export default class RtcMetrics {
|
|
5
|
+
/**
|
|
6
|
+
* Array of MetricData items to be sent to the metrics service.
|
|
7
|
+
*/
|
|
8
|
+
metricsQueue: any[];
|
|
9
|
+
intervalId: number;
|
|
10
|
+
webex: any;
|
|
11
|
+
meetingId: string;
|
|
12
|
+
correlationId: string;
|
|
13
|
+
/**
|
|
14
|
+
* Initialize the interval.
|
|
15
|
+
*
|
|
16
|
+
* @param {object} webex - The main `webex` object.
|
|
17
|
+
* @param {string} meetingId - The meeting id.
|
|
18
|
+
* @param {string} correlationId - The correlation id.
|
|
19
|
+
*/
|
|
20
|
+
constructor(webex: any, meetingId: any, correlationId: any);
|
|
21
|
+
/**
|
|
22
|
+
* Check to see if the metrics queue has any items.
|
|
23
|
+
*
|
|
24
|
+
* @returns {void}
|
|
25
|
+
*/
|
|
26
|
+
sendMetricsInQueue(): void;
|
|
27
|
+
/**
|
|
28
|
+
* Add metrics items to the metrics queue.
|
|
29
|
+
*
|
|
30
|
+
* @param {object} data - An object with a payload array of metrics items.
|
|
31
|
+
*
|
|
32
|
+
* @returns {void}
|
|
33
|
+
*/
|
|
34
|
+
addMetrics(data: any): void;
|
|
35
|
+
/**
|
|
36
|
+
* Clear the metrics interval.
|
|
37
|
+
*
|
|
38
|
+
* @returns {void}
|
|
39
|
+
*/
|
|
40
|
+
closeMetrics(): void;
|
|
41
|
+
/**
|
|
42
|
+
* Send metrics to the metrics service.
|
|
43
|
+
*
|
|
44
|
+
* @returns {void}
|
|
45
|
+
*/
|
|
46
|
+
private sendMetrics;
|
|
47
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import EventsScope from '../common/events/events-scope';
|
|
3
|
+
import { ReceiveSlot } from '../multistream/receiveSlot';
|
|
3
4
|
export declare const EVENTS: {
|
|
4
5
|
MEDIA_QUALITY: string;
|
|
5
6
|
LOCAL_MEDIA_STARTED: string;
|
|
@@ -7,6 +8,7 @@ export declare const EVENTS: {
|
|
|
7
8
|
REMOTE_MEDIA_STARTED: string;
|
|
8
9
|
REMOTE_MEDIA_STOPPED: string;
|
|
9
10
|
};
|
|
11
|
+
type ReceiveSlotCallback = (csi: number) => ReceiveSlot | undefined;
|
|
10
12
|
/**
|
|
11
13
|
* Stats Analyzer class that will emit events based on detected quality
|
|
12
14
|
*
|
|
@@ -28,15 +30,18 @@ export declare class StatsAnalyzer extends EventsScope {
|
|
|
28
30
|
statsInterval: NodeJS.Timeout;
|
|
29
31
|
statsResults: any;
|
|
30
32
|
statsStarted: any;
|
|
33
|
+
successfulCandidatePair: any;
|
|
34
|
+
receiveSlotCallback: ReceiveSlotCallback;
|
|
31
35
|
/**
|
|
32
36
|
* Creates a new instance of StatsAnalyzer
|
|
33
37
|
* @constructor
|
|
34
38
|
* @public
|
|
35
39
|
* @param {Object} config SDK Configuration Object
|
|
40
|
+
* @param {Function} receiveSlotCallback Callback used to access receive slots.
|
|
36
41
|
* @param {Object} networkQualityMonitor class for assessing network characteristics (jitter, packetLoss, latency)
|
|
37
42
|
* @param {Object} statsResults Default properties for stats
|
|
38
43
|
*/
|
|
39
|
-
constructor(config: any, networkQualityMonitor?: object, statsResults?: object);
|
|
44
|
+
constructor(config: any, receiveSlotCallback?: ReceiveSlotCallback, networkQualityMonitor?: object, statsResults?: object);
|
|
40
45
|
/**
|
|
41
46
|
* Resets cumulative stats arrays.
|
|
42
47
|
*
|
|
@@ -193,3 +198,4 @@ export declare class StatsAnalyzer extends EventsScope {
|
|
|
193
198
|
*/
|
|
194
199
|
compareSentAndReceived(result: any, type: any): void;
|
|
195
200
|
}
|
|
201
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
+
*/
|
|
4
|
+
declare class WebinarCollection {
|
|
5
|
+
webinarInfo: any;
|
|
6
|
+
namespace: string;
|
|
7
|
+
mainIndex: string;
|
|
8
|
+
constructor();
|
|
9
|
+
set(id: any, info: any): void;
|
|
10
|
+
/**
|
|
11
|
+
* @param {String} id
|
|
12
|
+
* @returns {Member}
|
|
13
|
+
*/
|
|
14
|
+
get(id: string): any;
|
|
15
|
+
}
|
|
16
|
+
export default WebinarCollection;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
11
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
12
|
+
var _constants = require("../constants");
|
|
13
|
+
/*!
|
|
14
|
+
* Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
|
|
15
|
+
*/
|
|
16
|
+
var WebinarCollection = /*#__PURE__*/function () {
|
|
17
|
+
function WebinarCollection() {
|
|
18
|
+
(0, _classCallCheck2.default)(this, WebinarCollection);
|
|
19
|
+
(0, _defineProperty2.default)(this, "webinarInfo", void 0);
|
|
20
|
+
(0, _defineProperty2.default)(this, "namespace", _constants.MEETINGS);
|
|
21
|
+
(0, _defineProperty2.default)(this, "mainIndex", 'sessionId');
|
|
22
|
+
this.webinarInfo = {};
|
|
23
|
+
}
|
|
24
|
+
(0, _createClass2.default)(WebinarCollection, [{
|
|
25
|
+
key: "set",
|
|
26
|
+
value: function set(id, info) {
|
|
27
|
+
this.webinarInfo[id] = info;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @param {String} id
|
|
32
|
+
* @returns {Member}
|
|
33
|
+
*/
|
|
34
|
+
}, {
|
|
35
|
+
key: "get",
|
|
36
|
+
value: function get(id) {
|
|
37
|
+
return this.webinarInfo[id];
|
|
38
|
+
}
|
|
39
|
+
}]);
|
|
40
|
+
return WebinarCollection;
|
|
41
|
+
}();
|
|
42
|
+
var _default = WebinarCollection;
|
|
43
|
+
exports.default = _default;
|
|
44
|
+
//# sourceMappingURL=collection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["WebinarCollection","MEETINGS","webinarInfo","id","info"],"sources":["collection.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {MEETINGS} from '../constants';\n\nclass WebinarCollection {\n webinarInfo: any;\n\n namespace = MEETINGS;\n\n mainIndex = 'sessionId';\n\n constructor() {\n this.webinarInfo = {};\n }\n\n set(id, info) {\n this.webinarInfo[id] = info;\n }\n\n /**\n * @param {String} id\n * @returns {Member}\n */\n get(id: string) {\n return this.webinarInfo[id];\n }\n}\n\nexport default WebinarCollection;\n"],"mappings":";;;;;;;;;;;AAIA;AAJA;AACA;AACA;AAFA,IAMMA,iBAAiB;EAOrB,6BAAc;IAAA;IAAA;IAAA,iDAJFC,mBAAQ;IAAA,iDAER,WAAW;IAGrB,IAAI,CAACC,WAAW,GAAG,CAAC,CAAC;EACvB;EAAC;IAAA;IAAA,OAED,aAAIC,EAAE,EAAEC,IAAI,EAAE;MACZ,IAAI,CAACF,WAAW,CAACC,EAAE,CAAC,GAAGC,IAAI;IAC7B;;IAEA;AACF;AACA;AACA;EAHE;IAAA;IAAA,OAIA,aAAID,EAAU,EAAE;MACd,OAAO,IAAI,CAACD,WAAW,CAACC,EAAE,CAAC;IAC7B;EAAC;EAAA;AAAA;AAAA,eAGYH,iBAAiB;AAAA"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _webexCore = require("@webex/webex-core");
|
|
10
|
+
var _constants = require("../constants");
|
|
11
|
+
var _collection = _interopRequireDefault(require("./collection"));
|
|
12
|
+
/*!
|
|
13
|
+
* Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @class Webinar
|
|
18
|
+
*/
|
|
19
|
+
var Webinar = _webexCore.WebexPlugin.extend({
|
|
20
|
+
namespace: _constants.MEETINGS,
|
|
21
|
+
collections: {
|
|
22
|
+
webinar: _collection.default
|
|
23
|
+
},
|
|
24
|
+
props: {
|
|
25
|
+
locusUrl: 'string',
|
|
26
|
+
// appears current webinar's locus url
|
|
27
|
+
webcastUrl: 'string',
|
|
28
|
+
// current webinar's webcast url
|
|
29
|
+
webinarAttendeesSearchingUrl: 'string',
|
|
30
|
+
// current webinarAttendeesSearching url
|
|
31
|
+
canManageWebcast: 'boolean' // appears the ability to manage webcast
|
|
32
|
+
},
|
|
33
|
+
/**
|
|
34
|
+
* Update the current locus url of the webinar
|
|
35
|
+
* @param {string} locusUrl // locus url
|
|
36
|
+
* @returns {void}
|
|
37
|
+
*/
|
|
38
|
+
locusUrlUpdate: function locusUrlUpdate(locusUrl) {
|
|
39
|
+
this.set('locusUrl', locusUrl);
|
|
40
|
+
},
|
|
41
|
+
/**
|
|
42
|
+
* Update the current webcast url of the meeting
|
|
43
|
+
* @param {string} webcastUrl // webcast url
|
|
44
|
+
* @returns {void}
|
|
45
|
+
*/
|
|
46
|
+
webcastUrlUpdate: function webcastUrlUpdate(webcastUrl) {
|
|
47
|
+
this.set('webcastUrl', webcastUrl);
|
|
48
|
+
},
|
|
49
|
+
/**
|
|
50
|
+
* Update the current webinarAttendeesSearching url of the meeting
|
|
51
|
+
* @param {string} webinarAttendeesSearchingUrl // webinarAttendeesSearching url
|
|
52
|
+
* @returns {void}
|
|
53
|
+
*/
|
|
54
|
+
webinarAttendeesSearchingUrlUpdate: function webinarAttendeesSearchingUrlUpdate(webinarAttendeesSearchingUrl) {
|
|
55
|
+
this.set('webinarAttendeesSearchingUrl', webinarAttendeesSearchingUrl);
|
|
56
|
+
},
|
|
57
|
+
/**
|
|
58
|
+
* Update whether self has capability to manage start/stop webcast (only host can manage it)
|
|
59
|
+
* @param {boolean} canManageWebcast
|
|
60
|
+
* @returns {void}
|
|
61
|
+
*/
|
|
62
|
+
updateCanManageWebcast: function updateCanManageWebcast(canManageWebcast) {
|
|
63
|
+
this.set('canManageWebcast', canManageWebcast);
|
|
64
|
+
},
|
|
65
|
+
version: "3.0.0-beta.310"
|
|
66
|
+
});
|
|
67
|
+
var _default = Webinar;
|
|
68
|
+
exports.default = _default;
|
|
69
|
+
//# sourceMappingURL=index.js.map
|