@webex/plugin-meetings 3.12.0-next.6 → 3.12.0-next.61
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/AGENTS.md +9 -0
- package/dist/aiEnableRequest/index.js +15 -2
- package/dist/aiEnableRequest/index.js.map +1 -1
- package/dist/breakouts/breakout.js +8 -3
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/index.js +26 -2
- package/dist/breakouts/index.js.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/constants.js +6 -3
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +11 -1
- package/dist/controls-options-manager/constants.js.map +1 -1
- package/dist/controls-options-manager/index.js +38 -24
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/util.js +91 -0
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/hashTree/constants.js +10 -1
- package/dist/hashTree/constants.js.map +1 -1
- package/dist/hashTree/hashTreeParser.js +716 -370
- package/dist/hashTree/hashTreeParser.js.map +1 -1
- package/dist/hashTree/utils.js +22 -0
- package/dist/hashTree/utils.js.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/interceptors/locusRetry.js +23 -8
- package/dist/interceptors/locusRetry.js.map +1 -1
- package/dist/interpretation/index.js +10 -1
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.js +4 -1
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +289 -87
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/types.js +19 -0
- package/dist/locus-info/types.js.map +1 -1
- package/dist/media/index.js +3 -1
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +1 -0
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +3 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +907 -535
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/util.js +19 -2
- package/dist/meeting/util.js.map +1 -1
- package/dist/meetings/index.js +231 -78
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +6 -1
- package/dist/meetings/meetings.types.js.map +1 -1
- package/dist/meetings/request.js +39 -0
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +79 -5
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +10 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js.map +1 -1
- package/dist/member/util.js +3 -0
- package/dist/member/util.js.map +1 -1
- package/dist/metrics/constants.js +4 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/codec/constants.js +63 -0
- package/dist/multistream/codec/constants.js.map +1 -0
- package/dist/multistream/mediaRequestManager.js +62 -15
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +9 -0
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/recording-controller/index.js +1 -3
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/types/config.d.ts +2 -0
- package/dist/types/constants.d.ts +2 -0
- package/dist/types/controls-options-manager/constants.d.ts +6 -1
- package/dist/types/controls-options-manager/index.d.ts +10 -0
- package/dist/types/hashTree/constants.d.ts +1 -0
- package/dist/types/hashTree/hashTreeParser.d.ts +92 -16
- package/dist/types/hashTree/utils.d.ts +11 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/interceptors/locusRetry.d.ts +4 -4
- package/dist/types/locus-info/index.d.ts +46 -6
- package/dist/types/locus-info/types.d.ts +21 -1
- package/dist/types/media/properties.d.ts +1 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +2 -0
- package/dist/types/meeting/index.d.ts +87 -3
- package/dist/types/meeting/util.d.ts +8 -0
- package/dist/types/meetings/index.d.ts +30 -2
- package/dist/types/meetings/meetings.types.d.ts +15 -0
- package/dist/types/meetings/request.d.ts +14 -0
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/member/types.d.ts +1 -0
- package/dist/types/member/util.d.ts +1 -0
- package/dist/types/metrics/constants.d.ts +3 -0
- package/dist/types/multistream/codec/constants.d.ts +7 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +22 -5
- package/dist/types/reactions/reactions.type.d.ts +3 -0
- package/dist/webinar/index.js +361 -235
- package/dist/webinar/index.js.map +1 -1
- package/package.json +22 -22
- package/src/aiEnableRequest/index.ts +16 -0
- package/src/breakouts/breakout.ts +3 -1
- package/src/breakouts/index.ts +31 -0
- package/src/config.ts +2 -0
- package/src/constants.ts +5 -1
- package/src/controls-options-manager/constants.ts +14 -1
- package/src/controls-options-manager/index.ts +47 -24
- package/src/controls-options-manager/util.ts +81 -1
- package/src/hashTree/constants.ts +9 -0
- package/src/hashTree/hashTreeParser.ts +429 -183
- package/src/hashTree/utils.ts +17 -0
- package/src/index.ts +5 -0
- package/src/interceptors/locusRetry.ts +25 -4
- package/src/interpretation/index.ts +25 -8
- package/src/locus-info/controlsUtils.ts +3 -1
- package/src/locus-info/index.ts +291 -97
- package/src/locus-info/types.ts +25 -1
- package/src/media/index.ts +3 -0
- package/src/media/properties.ts +1 -0
- package/src/meeting/in-meeting-actions.ts +4 -0
- package/src/meeting/index.ts +388 -33
- package/src/meeting/util.ts +20 -2
- package/src/meetings/index.ts +134 -44
- package/src/meetings/meetings.types.ts +19 -0
- package/src/meetings/request.ts +43 -0
- package/src/meetings/util.ts +97 -1
- package/src/member/index.ts +10 -0
- package/src/member/types.ts +1 -0
- package/src/member/util.ts +3 -0
- package/src/metrics/constants.ts +3 -0
- package/src/multistream/codec/constants.ts +58 -0
- package/src/multistream/mediaRequestManager.ts +119 -28
- package/src/multistream/receiveSlot.ts +18 -0
- package/src/reactions/reactions.type.ts +3 -0
- package/src/recording-controller/index.ts +1 -2
- package/src/webinar/index.ts +162 -21
- package/test/unit/spec/aiEnableRequest/index.ts +86 -0
- package/test/unit/spec/breakouts/breakout.ts +9 -3
- package/test/unit/spec/breakouts/index.ts +49 -0
- package/test/unit/spec/controls-options-manager/index.js +140 -29
- package/test/unit/spec/controls-options-manager/util.js +165 -0
- package/test/unit/spec/hashTree/hashTreeParser.ts +1508 -149
- package/test/unit/spec/hashTree/utils.ts +88 -1
- package/test/unit/spec/interceptors/locusRetry.ts +205 -4
- package/test/unit/spec/interpretation/index.ts +26 -4
- package/test/unit/spec/locus-info/controlsUtils.js +172 -57
- package/test/unit/spec/locus-info/index.js +475 -81
- package/test/unit/spec/media/index.ts +31 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +2 -0
- package/test/unit/spec/meeting/index.js +1131 -49
- package/test/unit/spec/meeting/muteState.js +3 -0
- package/test/unit/spec/meeting/utils.js +33 -0
- package/test/unit/spec/meetings/index.js +360 -10
- package/test/unit/spec/meetings/request.js +141 -0
- package/test/unit/spec/meetings/utils.js +189 -0
- package/test/unit/spec/member/index.js +7 -0
- package/test/unit/spec/member/util.js +24 -0
- package/test/unit/spec/multistream/mediaRequestManager.ts +501 -37
- package/test/unit/spec/recording-controller/index.js +9 -8
- package/test/unit/spec/webinar/index.ts +141 -16
|
@@ -16,7 +16,7 @@ import { DESTINATION_TYPE, NETWORK_STATUS } from '../constants';
|
|
|
16
16
|
import { ReceiveSlotManager } from '../multistream/receiveSlotManager';
|
|
17
17
|
import { MediaRequestManager } from '../multistream/mediaRequestManager';
|
|
18
18
|
import { Configuration as RemoteMediaManagerConfiguration, RemoteMediaManager } from '../multistream/remoteMediaManager';
|
|
19
|
-
import {
|
|
19
|
+
import { SkinToneType } from '../reactions/reactions.type';
|
|
20
20
|
import InMeetingActions from './in-meeting-actions';
|
|
21
21
|
import RecordingController from '../recording-controller';
|
|
22
22
|
import ControlsOptionsManager from '../controls-options-manager';
|
|
@@ -374,7 +374,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
374
374
|
webinar: any;
|
|
375
375
|
conversationUrl: string;
|
|
376
376
|
callStateForMetrics: CallStateForMetrics;
|
|
377
|
-
destination: string;
|
|
377
|
+
destination: string | LocusDTO;
|
|
378
378
|
destinationType: DESTINATION_TYPE;
|
|
379
379
|
deviceUrl: string;
|
|
380
380
|
hostId: string;
|
|
@@ -412,6 +412,8 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
412
412
|
floorGrantPending: boolean;
|
|
413
413
|
hasJoinedOnce: boolean;
|
|
414
414
|
hasWebsocketConnected: boolean;
|
|
415
|
+
private mercuryOnlineHandler?;
|
|
416
|
+
private mercuryOfflineHandler?;
|
|
415
417
|
inMeetingActions: InMeetingActions;
|
|
416
418
|
isLocalShareLive: boolean;
|
|
417
419
|
isRoapInProgress: boolean;
|
|
@@ -514,6 +516,15 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
514
516
|
* @memberof Meeting
|
|
515
517
|
*/
|
|
516
518
|
constructor(attrs: any, options: object, callback: (meeting: Meeting) => void);
|
|
519
|
+
/**
|
|
520
|
+
* Get the ingress payload type for a given media type and codec mime type
|
|
521
|
+
* @param {MediaType} mediaType - The media type
|
|
522
|
+
* @param {MediaCodecMimeType} codecMimeType - The codec mime type
|
|
523
|
+
* @returns {number | undefined} - The ingress payload type
|
|
524
|
+
* @private
|
|
525
|
+
* @memberof Meeting
|
|
526
|
+
*/
|
|
527
|
+
private getIngressPayloadTypeCallback;
|
|
517
528
|
/**
|
|
518
529
|
* returns meeting is joined
|
|
519
530
|
* @private
|
|
@@ -1051,6 +1062,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1051
1062
|
* @memberof Meeting
|
|
1052
1063
|
*/
|
|
1053
1064
|
setSipUri(sipUri: string): void;
|
|
1065
|
+
/**
|
|
1066
|
+
* After initial locus setup, refreshes destination with synced locus data and optionally
|
|
1067
|
+
* performs deferred meeting info fetch when initial locus was incomplete.
|
|
1068
|
+
* @param {LocusDTO} locus
|
|
1069
|
+
* @returns {void}
|
|
1070
|
+
*/
|
|
1071
|
+
finalizeMeetingAfterInitialLocusSetup(locus: LocusDTO): Promise<void>;
|
|
1054
1072
|
/**
|
|
1055
1073
|
* Set the locus info the class instance. Should be called with the parsed locus
|
|
1056
1074
|
* we got in the join response.
|
|
@@ -1163,6 +1181,22 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1163
1181
|
* @memberof Meeting
|
|
1164
1182
|
*/
|
|
1165
1183
|
setMercuryListener(): void;
|
|
1184
|
+
/**
|
|
1185
|
+
* Removes this meeting's Mercury ONLINE/OFFLINE event listeners registered
|
|
1186
|
+
* by setMercuryListener(). Must be called before Locus /leave to avoid
|
|
1187
|
+
* unnecessary syncs/metrics triggered by events received while leaving
|
|
1188
|
+
* (per Locus team recommendation).
|
|
1189
|
+
*
|
|
1190
|
+
* Mercury is a process-wide singleton shared with other plugins, so we
|
|
1191
|
+
* pass the bound handler refs to .off() to avoid clearing every listener
|
|
1192
|
+
* for ONLINE/OFFLINE on the shared emitter.
|
|
1193
|
+
*
|
|
1194
|
+
* Idempotent: subsequent calls are no-ops because the handler refs are
|
|
1195
|
+
* cleared after detaching.
|
|
1196
|
+
* @private
|
|
1197
|
+
* @returns {void}
|
|
1198
|
+
*/
|
|
1199
|
+
private stopListeningForMercuryEvents;
|
|
1166
1200
|
/**
|
|
1167
1201
|
* Close the peer connections and remove them from the class.
|
|
1168
1202
|
* Cleanup any media connection related things.
|
|
@@ -1299,6 +1333,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1299
1333
|
* @returns {void}
|
|
1300
1334
|
*/
|
|
1301
1335
|
private processLocusLLMEvent;
|
|
1336
|
+
/**
|
|
1337
|
+
* Verifies the relay event was delivered for the active LLM session binding.
|
|
1338
|
+
* @param {RelayEvent} event Event object coming from LLM Connection
|
|
1339
|
+
* @returns {boolean}
|
|
1340
|
+
*/
|
|
1341
|
+
private isRelayEventRouteValid;
|
|
1302
1342
|
/**
|
|
1303
1343
|
* Callback called when a relay event is received from meeting LLM Connection
|
|
1304
1344
|
* @param {RelayEvent} e Event object coming from LLM Connection
|
|
@@ -1318,6 +1358,11 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1318
1358
|
* @returns{void}
|
|
1319
1359
|
*/
|
|
1320
1360
|
private triggerStopReceivingTranscriptionEvent;
|
|
1361
|
+
/**
|
|
1362
|
+
* Restores LLM subchannel subscriptions after reconnect when captions are active.
|
|
1363
|
+
* @returns {void}
|
|
1364
|
+
*/
|
|
1365
|
+
private restoreLLMSubscriptionsIfNeeded;
|
|
1321
1366
|
/**
|
|
1322
1367
|
* This is a callback for the LLM event that is triggered when it comes online
|
|
1323
1368
|
* This method in turn will trigger an event to the developers that the LLM is connected
|
|
@@ -1351,8 +1396,41 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1351
1396
|
* @returns {void}
|
|
1352
1397
|
*/
|
|
1353
1398
|
private clearLLMHealthCheckTimer;
|
|
1399
|
+
/**
|
|
1400
|
+
* Removes LLM event listeners and clears the health check timer.
|
|
1401
|
+
* Must be called before Locus /leave to avoid unnecessary syncs triggered
|
|
1402
|
+
* by events received while leaving (per Locus team recommendation).
|
|
1403
|
+
* Idempotent: safe to call multiple times; .off() is a no-op when no
|
|
1404
|
+
* matching listener is registered.
|
|
1405
|
+
* @private
|
|
1406
|
+
* @returns {void}
|
|
1407
|
+
*/
|
|
1408
|
+
private stopListeningForLLMEvents;
|
|
1409
|
+
/**
|
|
1410
|
+
* Stops listening on every event bus (LLM, Mercury, voicea/transcription,
|
|
1411
|
+
* annotation) that could otherwise deliver events to this meeting while
|
|
1412
|
+
* Locus is processing /leave or /end. Per the Locus team recommendation,
|
|
1413
|
+
* this must run before the Locus request is dispatched to avoid
|
|
1414
|
+
* unnecessary syncs triggered by in-flight events.
|
|
1415
|
+
*
|
|
1416
|
+
* Voicea (transcription) subscribes to llm 'event:relay.event' internally,
|
|
1417
|
+
* and the annotation plugin subscribes to both mercury and llm, so both
|
|
1418
|
+
* must be torn down alongside the direct LLM/Mercury listeners.
|
|
1419
|
+
*
|
|
1420
|
+
* Idempotent: safe to call multiple times; .off() is a no-op when no
|
|
1421
|
+
* matching listener is registered, and stopTranscription is guarded.
|
|
1422
|
+
* @private
|
|
1423
|
+
* @returns {void}
|
|
1424
|
+
*/
|
|
1425
|
+
private stopListeningForMeetingEvents;
|
|
1354
1426
|
/**
|
|
1355
1427
|
* Disconnects and cleans up the default LLM session listeners/timers.
|
|
1428
|
+
*
|
|
1429
|
+
* Ownership-aware: only calls `disconnectLLM` when this meeting is the
|
|
1430
|
+
* current owner of the default LLM session (or when no owner is recorded).
|
|
1431
|
+
* Event listeners belonging to this meeting instance are always detached
|
|
1432
|
+
* so they do not receive another meeting's relay events.
|
|
1433
|
+
*
|
|
1356
1434
|
* @param {Object} options
|
|
1357
1435
|
* @param {boolean} [options.removeOnlineListener=true] removes the one-time online listener
|
|
1358
1436
|
* @param {boolean} [options.throwOnError=true] rethrows disconnect errors when true
|
|
@@ -1372,6 +1450,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1372
1450
|
* @returns {void}
|
|
1373
1451
|
*/
|
|
1374
1452
|
saveDataChannelToken(join: any): void;
|
|
1453
|
+
/**
|
|
1454
|
+
* Ensures default-session data channel token exists after lobby admission.
|
|
1455
|
+
* Some lobby users do not receive a token until they are admitted.
|
|
1456
|
+
* @returns {Promise<boolean>} true when a new token is fetched and cached
|
|
1457
|
+
*/
|
|
1458
|
+
private ensureDefaultDatachannelTokenAfterAdmit;
|
|
1375
1459
|
/**
|
|
1376
1460
|
* Connects to low latency mercury and reconnects if the address has changed
|
|
1377
1461
|
* It will also disconnect if called when the meeting has ended
|
|
@@ -1969,7 +2053,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1969
2053
|
* @public
|
|
1970
2054
|
* @memberof Meeting
|
|
1971
2055
|
*/
|
|
1972
|
-
sendReaction(reactionType:
|
|
2056
|
+
sendReaction(reactionType: string, skinToneType?: SkinToneType): any;
|
|
1973
2057
|
/**
|
|
1974
2058
|
* Extend the current meeting duration.
|
|
1975
2059
|
*
|
|
@@ -133,6 +133,13 @@ declare const MeetingUtil: {
|
|
|
133
133
|
* @returns {void}
|
|
134
134
|
*/
|
|
135
135
|
addSequence: (meeting: any, requestBody: any) => void;
|
|
136
|
+
/**
|
|
137
|
+
* Checks if Locus API response contains a Locus DTO
|
|
138
|
+
*
|
|
139
|
+
* @param {any} response http response from Locus API call
|
|
140
|
+
* @returns {boolean} true if response contains a Locus DTO
|
|
141
|
+
*/
|
|
142
|
+
isLocusDtoInAPIResponse(response: any): any;
|
|
136
143
|
/**
|
|
137
144
|
* Updates the locus info for the meeting with the locus
|
|
138
145
|
* information returned from API requests made to Locus
|
|
@@ -146,6 +153,7 @@ declare const MeetingUtil: {
|
|
|
146
153
|
generateLocusDeltaRequest: (originalMeeting: any) => (originalOptions: any) => any;
|
|
147
154
|
canAttendeeRequestAiAssistantEnabled: (displayHints?: any[], roles?: any[]) => boolean;
|
|
148
155
|
attendeeRequestAiAssistantDeclinedAll: (displayHints?: any[]) => boolean;
|
|
156
|
+
isAnonymizeDisplayNamesEnabled: (displayHints: any) => any;
|
|
149
157
|
selfSupportsFeature: (feature: SELF_POLICY, userPolicies: Record<SELF_POLICY, boolean>) => boolean;
|
|
150
158
|
parseInterpretationInfo: (meeting: any, meetingInfo: any) => void;
|
|
151
159
|
/**
|
|
@@ -8,7 +8,7 @@ import 'webrtc-adapter';
|
|
|
8
8
|
import { LOCUSEVENT, DESTINATION_TYPE } from '../constants';
|
|
9
9
|
import { CallStateForMetrics } from '../meeting';
|
|
10
10
|
import Reachability from '../reachability';
|
|
11
|
-
import { INoiseReductionEffect, IVirtualBackgroundEffect, MeetingRegistrationStatus } from './meetings.types';
|
|
11
|
+
import { FetchSitePreferencesMeViaSiteOptions, INoiseReductionEffect, IVirtualBackgroundEffect, MeetingRegistrationStatus, SitePreferencesResponse } from './meetings.types';
|
|
12
12
|
import { HashTreeMessage } from '../hashTree/hashTreeParser';
|
|
13
13
|
export type LocusEvent = {
|
|
14
14
|
eventType: LOCUSEVENT;
|
|
@@ -254,6 +254,16 @@ export default class Meetings extends WebexPlugin {
|
|
|
254
254
|
* @returns {undefined}
|
|
255
255
|
*/
|
|
256
256
|
private _toggleEnableAudioTwccForMultistream;
|
|
257
|
+
/**
|
|
258
|
+
* API to toggle AV1 codec support for video slides in multistream,
|
|
259
|
+
* needs to be called before webex.meetings.joinWithMedia()
|
|
260
|
+
*
|
|
261
|
+
* @param {Boolean} newValue
|
|
262
|
+
* @private
|
|
263
|
+
* @memberof Meetings
|
|
264
|
+
* @returns {undefined}
|
|
265
|
+
*/
|
|
266
|
+
private _toggleEnableAv1SlidesSupport;
|
|
257
267
|
/**
|
|
258
268
|
* API to toggle stopping ICE Candidates Gathering after first relay candidate,
|
|
259
269
|
* needs to be called before webex.meetings.joinWithMedia()
|
|
@@ -368,6 +378,23 @@ export default class Meetings extends WebexPlugin {
|
|
|
368
378
|
* @memberof Meetings
|
|
369
379
|
*/
|
|
370
380
|
getPersonalMeetingRoom(): any;
|
|
381
|
+
/**
|
|
382
|
+
* Fetches site preferences for the provided Webex site, or the preferred Webex site.
|
|
383
|
+
* This is used to determine capabilities of the site, such as whether scheduling a webinar is supported.
|
|
384
|
+
*
|
|
385
|
+
* @param {object} [options]
|
|
386
|
+
* @param {string} [options.siteUrl] - Webex site URL. Defaults to preferredWebexSite, for example "cisco.webex.com".
|
|
387
|
+
* @param {string} [options.siteName] - Site name query override. Defaults to the site name derived from siteUrl, for example "cisco" for "cisco.webex.com".
|
|
388
|
+
* @param {SitePreferenceSelectOption[]} [options.selectOptions] - Preference sections to fetch. Defaults to 'scheduling'.
|
|
389
|
+
* @returns {Promise<SitePreferencesResponse>} site preferences response body
|
|
390
|
+
* @throws {ParameterError}
|
|
391
|
+
* @public
|
|
392
|
+
* @memberof Meetings
|
|
393
|
+
* @example
|
|
394
|
+
* const preferences = await webex.meetings.fetchSitePreferencesMeViaSite();
|
|
395
|
+
* const supportScheduleWebinar = preferences?.scheduling?.supportScheduleWebinar;
|
|
396
|
+
*/
|
|
397
|
+
fetchSitePreferencesMeViaSite(options?: FetchSitePreferencesMeViaSiteOptions): Promise<SitePreferencesResponse>;
|
|
371
398
|
/**
|
|
372
399
|
* Returns basic information about a meeting that exists or
|
|
373
400
|
* used to exist in the MeetingCollection
|
|
@@ -477,8 +504,9 @@ export default class Meetings extends WebexPlugin {
|
|
|
477
504
|
* @public
|
|
478
505
|
* @memberof Meetings
|
|
479
506
|
*/
|
|
480
|
-
syncMeetings({ keepOnlyLocusMeetings }?: {
|
|
507
|
+
syncMeetings({ keepOnlyLocusMeetings, skipHashTreeSync, }?: {
|
|
481
508
|
keepOnlyLocusMeetings?: boolean;
|
|
509
|
+
skipHashTreeSync?: boolean;
|
|
482
510
|
}): Promise<void>;
|
|
483
511
|
/**
|
|
484
512
|
* sort out locus array for initial creating
|
|
@@ -19,3 +19,18 @@ export type MeetingRegistrationStatus = {
|
|
|
19
19
|
mercuryConnect: boolean;
|
|
20
20
|
checkH264Support: boolean;
|
|
21
21
|
};
|
|
22
|
+
export declare enum SitePreferenceSelectOption {
|
|
23
|
+
SCHEDULING = "scheduling"
|
|
24
|
+
}
|
|
25
|
+
export type FetchSitePreferencesMeViaSiteOptions = {
|
|
26
|
+
siteUrl?: string;
|
|
27
|
+
siteName?: string;
|
|
28
|
+
selectOptions?: SitePreferenceSelectOption[];
|
|
29
|
+
};
|
|
30
|
+
export declare const DEFAULT_SITE_PREFERENCE_SELECT_OPTIONS: SitePreferenceSelectOption[];
|
|
31
|
+
export type SitePreferencesResponse = {
|
|
32
|
+
scheduling?: {
|
|
33
|
+
supportScheduleWebinar?: boolean;
|
|
34
|
+
webinarWebLink?: string;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { StatelessWebexPlugin } from '@webex/webex-core';
|
|
2
|
+
import { type FetchSitePreferencesMeViaSiteOptions, type SitePreferencesResponse } from './meetings.types';
|
|
2
3
|
/**
|
|
3
4
|
* @class MeetingRequest
|
|
4
5
|
*/
|
|
@@ -18,6 +19,19 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
18
19
|
* @returns {Promise<object>} getMeetingPreferences
|
|
19
20
|
*/
|
|
20
21
|
getMeetingPreferences(): any;
|
|
22
|
+
/**
|
|
23
|
+
* Fetches site preferences from a given site given a select option and a siteUrl with an optional siteName. If siteName is not provided, it will be derived from the siteUrl. If siteUrl is not provided, it will throw an error. If selectOptions is not provided, it will default to scheduling.
|
|
24
|
+
*
|
|
25
|
+
* @param {object} [options]
|
|
26
|
+
* @param {string} [options.siteUrl] - Webex site URL, for example "cisco.webex.com".
|
|
27
|
+
* @param {string} [options.siteName] - Site name query override. Defaults to the site name derived from options.siteUrl, e.g., "cisco".
|
|
28
|
+
* @param {SitePreferenceSelectOption[]} [options.selectOptions] - Preference sections to fetch. Defaults to 'scheduling'.
|
|
29
|
+
* @returns {Promise<SitePreferencesResponse>} site preferences response body
|
|
30
|
+
* @throws {ParameterError}
|
|
31
|
+
* @public
|
|
32
|
+
* @memberof MeetingRequest
|
|
33
|
+
*/
|
|
34
|
+
fetchSitePreferencesMeViaSite(options?: FetchSitePreferencesMeViaSiteOptions): Promise<SitePreferencesResponse>;
|
|
21
35
|
/**
|
|
22
36
|
* Fetches indivdual locus rather then getting all at once
|
|
23
37
|
* @param {object} responseBody determine the locus and fetch them if a remoteUrl is given
|
|
@@ -66,6 +66,7 @@ declare const MemberUtil: {
|
|
|
66
66
|
isDevice: (participant: Participant) => boolean;
|
|
67
67
|
isModeratorAssignmentProhibited: (participant: Participant) => boolean;
|
|
68
68
|
isPresenterAssignmentProhibited: (participant: Participant) => boolean;
|
|
69
|
+
isAttendeeAssignmentProhibited: (participant: Participant) => boolean;
|
|
69
70
|
/**
|
|
70
71
|
* checks to see if the participant id is the same as the passed id
|
|
71
72
|
* there are multiple ids that can be used
|
|
@@ -92,5 +92,8 @@ declare const BEHAVIORAL_METRICS: {
|
|
|
92
92
|
DEPRECATED_DELETE_CODEC_PARAMETERS_USED: string;
|
|
93
93
|
SET_CUSTOM_CODEC_PARAMETERS_USED: string;
|
|
94
94
|
MARK_CUSTOM_CODEC_PARAMETERS_FOR_DELETION_USED: string;
|
|
95
|
+
HASH_TREE_SYNC_FAILURE: string;
|
|
96
|
+
HASH_TREE_HEARTBEAT_WATCHDOG_EXPIRED: string;
|
|
97
|
+
HASH_TREE_EMPTY_LOCUS_STATE_ELEMENTS: string;
|
|
95
98
|
};
|
|
96
99
|
export { BEHAVIORAL_METRICS as default };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AV1EncodingParams, SupportedResolution } from '@webex/internal-media-core';
|
|
2
|
+
export declare const AV1_CODEC_PARAMETERS: Record<SupportedResolution, AV1EncodingParams>;
|
|
3
|
+
export declare const H264_CODEC_PARAMETERS: {
|
|
4
|
+
maxFs: number;
|
|
5
|
+
maxFps: number;
|
|
6
|
+
maxMbps: number;
|
|
7
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StreamRequest, NamedMediaGroup } from '@webex/internal-media-core';
|
|
1
|
+
import { StreamRequest, NamedMediaGroup, MediaType, MediaCodecMimeType } from '@webex/internal-media-core';
|
|
2
2
|
import { ReceiveSlot } from './receiveSlot';
|
|
3
3
|
export interface ActiveSpeakerPolicyInfo {
|
|
4
4
|
policy: 'active-speaker';
|
|
@@ -36,14 +36,22 @@ type DegradationPreferences = {
|
|
|
36
36
|
maxMacroblocksLimit: number;
|
|
37
37
|
};
|
|
38
38
|
type SendMediaRequestsCallback = (streamRequests: StreamRequest[]) => void;
|
|
39
|
-
type
|
|
40
|
-
type
|
|
39
|
+
type GetIngressPayloadTypeCallback = (mediaType: MediaType, codecMimeType: MediaCodecMimeType) => number | undefined;
|
|
40
|
+
type AudioMediaRequestManagerOptions = {
|
|
41
41
|
degradationPreferences: DegradationPreferences;
|
|
42
|
-
kind:
|
|
42
|
+
kind: 'audio';
|
|
43
43
|
trimRequestsToNumOfSources: boolean;
|
|
44
44
|
};
|
|
45
|
+
type VideoMediaRequestManagerOptions = {
|
|
46
|
+
degradationPreferences: DegradationPreferences;
|
|
47
|
+
kind: 'video';
|
|
48
|
+
trimRequestsToNumOfSources: boolean;
|
|
49
|
+
enableAv1?: boolean;
|
|
50
|
+
};
|
|
51
|
+
type Options = AudioMediaRequestManagerOptions | VideoMediaRequestManagerOptions;
|
|
45
52
|
export declare class MediaRequestManager {
|
|
46
53
|
private sendMediaRequestsCallback;
|
|
54
|
+
private getIngressPayloadTypeCallback;
|
|
47
55
|
private kind;
|
|
48
56
|
private counter;
|
|
49
57
|
private clientRequests;
|
|
@@ -51,9 +59,10 @@ export declare class MediaRequestManager {
|
|
|
51
59
|
private sourceUpdateListener;
|
|
52
60
|
private debouncedSourceUpdateListener;
|
|
53
61
|
private trimRequestsToNumOfSources;
|
|
62
|
+
private enableAv1;
|
|
54
63
|
private numTotalSources;
|
|
55
64
|
private numLiveSources;
|
|
56
|
-
constructor(sendMediaRequestsCallback: SendMediaRequestsCallback, options: Options);
|
|
65
|
+
constructor(sendMediaRequestsCallback: SendMediaRequestsCallback, getIngressPayloadTypeCallback: GetIngressPayloadTypeCallback, options: Options);
|
|
57
66
|
setDegradationPreferences(degradationPreferences: DegradationPreferences): void;
|
|
58
67
|
private getDegradedClientRequests;
|
|
59
68
|
/**
|
|
@@ -77,6 +86,14 @@ export declare class MediaRequestManager {
|
|
|
77
86
|
* @returns {number} maxMbps
|
|
78
87
|
*/
|
|
79
88
|
private getH264MaxMbps;
|
|
89
|
+
/**
|
|
90
|
+
* Returns the AV1 encoding parameters for a media request
|
|
91
|
+
* @param mediaRequest - The media request to get the AV1 encoding parameters for
|
|
92
|
+
* @returns {AV1EncodingParams} The AV1 encoding parameters
|
|
93
|
+
*/
|
|
94
|
+
private getAv1EncodingParams;
|
|
95
|
+
private buildH264CodecInfo;
|
|
96
|
+
private buildAv1CodecInfo;
|
|
80
97
|
/** Modifies the passed in clientRequests and makes sure that in total they don't ask
|
|
81
98
|
* for more streams than there are available.
|
|
82
99
|
*
|