@webex/plugin-meetings 3.11.0-webex-services-ready.1 → 3.12.0-mobius-socket.1
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/dist/aiEnableRequest/index.js +184 -0
- package/dist/aiEnableRequest/index.js.map +1 -0
- package/dist/aiEnableRequest/utils.js +36 -0
- package/dist/aiEnableRequest/utils.js.map +1 -0
- package/dist/annotation/index.js +14 -5
- package/dist/annotation/index.js.map +1 -1
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/config.js +7 -2
- package/dist/config.js.map +1 -1
- package/dist/constants.js +28 -6
- package/dist/constants.js.map +1 -1
- package/dist/hashTree/constants.js +3 -1
- package/dist/hashTree/constants.js.map +1 -1
- package/dist/hashTree/hashTree.js +18 -0
- package/dist/hashTree/hashTree.js.map +1 -1
- package/dist/hashTree/hashTreeParser.js +868 -419
- package/dist/hashTree/hashTreeParser.js.map +1 -1
- package/dist/hashTree/types.js +4 -2
- package/dist/hashTree/types.js.map +1 -1
- package/dist/hashTree/utils.js +10 -0
- package/dist/hashTree/utils.js.map +1 -1
- package/dist/index.js +11 -2
- package/dist/index.js.map +1 -1
- package/dist/interceptors/constant.js +12 -0
- package/dist/interceptors/constant.js.map +1 -0
- package/dist/interceptors/dataChannelAuthToken.js +290 -0
- package/dist/interceptors/dataChannelAuthToken.js.map +1 -0
- package/dist/interceptors/index.js +7 -0
- package/dist/interceptors/index.js.map +1 -1
- package/dist/interceptors/utils.js +27 -0
- package/dist/interceptors/utils.js.map +1 -0
- package/dist/interpretation/index.js +2 -2
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.js +5 -3
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +522 -131
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/selfUtils.js +1 -0
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/locus-info/types.js.map +1 -1
- package/dist/media/MediaConnectionAwaiter.js +57 -1
- package/dist/media/MediaConnectionAwaiter.js.map +1 -1
- package/dist/media/properties.js +4 -2
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +7 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +1293 -929
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/request.js +50 -0
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +133 -3
- package/dist/meeting/util.js.map +1 -1
- package/dist/meetings/index.js +117 -48
- package/dist/meetings/index.js.map +1 -1
- package/dist/member/index.js +10 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +10 -0
- package/dist/member/util.js.map +1 -1
- package/dist/metrics/constants.js +6 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +9 -60
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +11 -0
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +116 -2
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +0 -1
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/types/aiEnableRequest/index.d.ts +5 -0
- package/dist/types/aiEnableRequest/utils.d.ts +2 -0
- package/dist/types/config.d.ts +4 -0
- package/dist/types/constants.d.ts +23 -1
- package/dist/types/hashTree/constants.d.ts +1 -0
- package/dist/types/hashTree/hashTree.d.ts +7 -0
- package/dist/types/hashTree/hashTreeParser.d.ts +122 -14
- package/dist/types/hashTree/types.d.ts +3 -0
- package/dist/types/hashTree/utils.d.ts +6 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/interceptors/constant.d.ts +5 -0
- package/dist/types/interceptors/dataChannelAuthToken.d.ts +43 -0
- package/dist/types/interceptors/index.d.ts +2 -1
- package/dist/types/interceptors/utils.d.ts +1 -0
- package/dist/types/locus-info/index.d.ts +60 -8
- package/dist/types/locus-info/types.d.ts +7 -0
- package/dist/types/media/MediaConnectionAwaiter.d.ts +10 -1
- package/dist/types/media/properties.d.ts +2 -1
- package/dist/types/meeting/in-meeting-actions.d.ts +6 -0
- package/dist/types/meeting/index.d.ts +72 -7
- package/dist/types/meeting/request.d.ts +16 -1
- package/dist/types/meeting/request.type.d.ts +5 -0
- package/dist/types/meeting/util.d.ts +31 -0
- package/dist/types/meetings/index.d.ts +4 -2
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/member/util.d.ts +5 -0
- package/dist/types/metrics/constants.d.ts +5 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +0 -23
- package/dist/types/multistream/sendSlotManager.d.ts +23 -1
- package/dist/types/reactions/reactions.type.d.ts +1 -0
- package/dist/types/webinar/utils.d.ts +6 -0
- package/dist/webinar/index.js +438 -163
- package/dist/webinar/index.js.map +1 -1
- package/dist/webinar/utils.js +25 -0
- package/dist/webinar/utils.js.map +1 -0
- package/package.json +24 -23
- package/src/aiEnableRequest/README.md +84 -0
- package/src/aiEnableRequest/index.ts +170 -0
- package/src/aiEnableRequest/utils.ts +25 -0
- package/src/annotation/index.ts +27 -7
- package/src/config.ts +4 -0
- package/src/constants.ts +29 -1
- package/src/hashTree/constants.ts +1 -0
- package/src/hashTree/hashTree.ts +17 -0
- package/src/hashTree/hashTreeParser.ts +761 -260
- package/src/hashTree/types.ts +4 -0
- package/src/hashTree/utils.ts +9 -0
- package/src/index.ts +8 -1
- package/src/interceptors/constant.ts +6 -0
- package/src/interceptors/dataChannelAuthToken.ts +170 -0
- package/src/interceptors/index.ts +2 -1
- package/src/interceptors/utils.ts +16 -0
- package/src/interpretation/index.ts +2 -2
- package/src/locus-info/controlsUtils.ts +11 -0
- package/src/locus-info/index.ts +579 -113
- package/src/locus-info/selfUtils.ts +1 -0
- package/src/locus-info/types.ts +8 -0
- package/src/media/MediaConnectionAwaiter.ts +41 -1
- package/src/media/properties.ts +3 -1
- package/src/meeting/in-meeting-actions.ts +12 -0
- package/src/meeting/index.ts +372 -86
- package/src/meeting/request.ts +42 -0
- package/src/meeting/request.type.ts +6 -0
- package/src/meeting/util.ts +160 -2
- package/src/meetings/index.ts +157 -44
- package/src/member/index.ts +10 -0
- package/src/member/util.ts +12 -0
- package/src/metrics/constants.ts +6 -0
- package/src/multistream/mediaRequestManager.ts +4 -54
- package/src/multistream/remoteMediaManager.ts +13 -0
- package/src/multistream/sendSlotManager.ts +97 -3
- package/src/reactions/reactions.type.ts +1 -0
- package/src/reconnection-manager/index.ts +0 -1
- package/src/webinar/index.ts +265 -6
- package/src/webinar/utils.ts +16 -0
- package/test/unit/spec/aiEnableRequest/index.ts +981 -0
- package/test/unit/spec/aiEnableRequest/utils.ts +130 -0
- package/test/unit/spec/annotation/index.ts +69 -7
- package/test/unit/spec/hashTree/hashTree.ts +66 -0
- package/test/unit/spec/hashTree/hashTreeParser.ts +2321 -175
- package/test/unit/spec/interceptors/dataChannelAuthToken.ts +210 -0
- package/test/unit/spec/interceptors/utils.ts +75 -0
- package/test/unit/spec/locus-info/controlsUtils.js +29 -0
- package/test/unit/spec/locus-info/index.js +1134 -55
- package/test/unit/spec/media/MediaConnectionAwaiter.ts +41 -1
- package/test/unit/spec/media/properties.ts +12 -3
- package/test/unit/spec/meeting/in-meeting-actions.ts +8 -2
- package/test/unit/spec/meeting/index.js +829 -121
- package/test/unit/spec/meeting/request.js +70 -0
- package/test/unit/spec/meeting/utils.js +438 -26
- package/test/unit/spec/meetings/index.js +653 -32
- package/test/unit/spec/member/index.js +28 -4
- package/test/unit/spec/member/util.js +65 -27
- package/test/unit/spec/multistream/mediaRequestManager.ts +2 -85
- package/test/unit/spec/multistream/remoteMediaManager.ts +30 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +135 -36
- package/test/unit/spec/reconnection-manager/index.js +4 -8
- package/test/unit/spec/webinar/index.ts +534 -37
- package/test/unit/spec/webinar/utils.ts +39 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { StatelessWebexPlugin } from '@webex/webex-core';
|
|
3
3
|
import { ClientEvent, ClientEventLeaveReason } from '@webex/internal-plugin-metrics';
|
|
4
|
-
import { ClientEvent as RawClientEvent } from '@webex/event-dictionary-ts';
|
|
4
|
+
import type { ClientEvent as RawClientEvent } from '@webex/event-dictionary-ts';
|
|
5
5
|
import { MediaType, StatsAnalyzer, NetworkQualityMonitor, StatsMonitor } from '@webex/internal-media-core';
|
|
6
|
+
import { DataChannelTokenType } from '@webex/internal-plugin-llm';
|
|
6
7
|
import { LocalStream, LocalCameraStream, LocalDisplayStream, LocalSystemAudioStream, LocalMicrophoneStream } from '@webex/media-helpers';
|
|
7
8
|
import Roap, { type TurnDiscoverySkipReason } from '../roap/index';
|
|
8
9
|
import { type TurnServerInfo } from '../roap/types';
|
|
@@ -23,7 +24,7 @@ import { LocusMediaRequest } from './locusMediaRequest';
|
|
|
23
24
|
import { BrbState } from './brbState';
|
|
24
25
|
import { SetStageOptions } from './request.type';
|
|
25
26
|
import { Invitee } from './type';
|
|
26
|
-
import { DataSet } from '../hashTree/hashTreeParser';
|
|
27
|
+
import { DataSet, HashTreeMessage, Metadata } from '../hashTree/hashTreeParser';
|
|
27
28
|
import { LocusDTO } from '../locus-info/types';
|
|
28
29
|
export type CaptionData = {
|
|
29
30
|
id: string;
|
|
@@ -70,6 +71,7 @@ export type AddMediaOptions = {
|
|
|
70
71
|
remoteMediaManagerConfig?: RemoteMediaManagerConfiguration;
|
|
71
72
|
bundlePolicy?: BundlePolicy;
|
|
72
73
|
allowMediaInLobby?: boolean;
|
|
74
|
+
allowPublishMediaInLobby?: boolean;
|
|
73
75
|
additionalMediaOptions?: AdditionalMediaOptions;
|
|
74
76
|
};
|
|
75
77
|
export type AdditionalMediaOptions = {
|
|
@@ -346,6 +348,16 @@ type FetchMeetingInfoParams = {
|
|
|
346
348
|
* @property {number} networkQualityScore - {1|0} 1 indicates acceptable uplink 0 indicates unacceptable uplink based on threshold
|
|
347
349
|
* @memberof Meeting
|
|
348
350
|
*/
|
|
351
|
+
/**
|
|
352
|
+
* Stores an event so all events can be later retrieved via a console command for debugging.
|
|
353
|
+
* @param {string} type
|
|
354
|
+
* @param {Object} data
|
|
355
|
+
* @returns {void}
|
|
356
|
+
*/
|
|
357
|
+
export declare function storeEventForDebugging(type: string, data: {
|
|
358
|
+
eventType: any;
|
|
359
|
+
stateElementsMessage?: HashTreeMessage;
|
|
360
|
+
}): void;
|
|
349
361
|
/**
|
|
350
362
|
* @description Meeting is the crux of the plugin
|
|
351
363
|
* @export
|
|
@@ -358,6 +370,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
358
370
|
breakouts: any;
|
|
359
371
|
simultaneousInterpretation: any;
|
|
360
372
|
annotation: any;
|
|
373
|
+
aiEnableRequest: any;
|
|
361
374
|
webinar: any;
|
|
362
375
|
conversationUrl: string;
|
|
363
376
|
callStateForMetrics: CallStateForMetrics;
|
|
@@ -405,6 +418,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
405
418
|
keepAliveTimerId: NodeJS.Timeout;
|
|
406
419
|
lastVideoLayoutInfo: any;
|
|
407
420
|
locusInfo: any;
|
|
421
|
+
isUserUnadmitted?: boolean;
|
|
422
|
+
joinedWith?: any;
|
|
423
|
+
selfId?: string;
|
|
424
|
+
roles: any[];
|
|
408
425
|
locusMediaRequest?: LocusMediaRequest;
|
|
409
426
|
mediaProperties: MediaProperties;
|
|
410
427
|
mediaRequestManagers: {
|
|
@@ -438,7 +455,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
438
455
|
endCallInitJoinReq: any;
|
|
439
456
|
endJoinReqResp: any;
|
|
440
457
|
endLocalSDPGenRemoteSDPRecvDelay: any;
|
|
441
|
-
joinedWith: any;
|
|
442
458
|
locusId: any;
|
|
443
459
|
startCallInitJoinReq: any;
|
|
444
460
|
startJoinReqResp: any;
|
|
@@ -453,12 +469,11 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
453
469
|
permissionTokenReceivedLocalTime: number;
|
|
454
470
|
resourceId: any;
|
|
455
471
|
resourceUrl: string;
|
|
456
|
-
selfId: string;
|
|
457
472
|
state: any;
|
|
458
473
|
localAudioStreamMuteStateHandler: () => void;
|
|
459
474
|
localVideoStreamMuteStateHandler: () => void;
|
|
460
475
|
localOutputTrackChangeHandler: () => void;
|
|
461
|
-
|
|
476
|
+
localConstraintsChangeHandler: () => void;
|
|
462
477
|
environment: string;
|
|
463
478
|
namespace: string;
|
|
464
479
|
allowMediaInLobby: boolean;
|
|
@@ -1060,6 +1075,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1060
1075
|
host: object;
|
|
1061
1076
|
selfId: string;
|
|
1062
1077
|
dataSets: DataSet[];
|
|
1078
|
+
metadata: Metadata;
|
|
1063
1079
|
}): void;
|
|
1064
1080
|
/**
|
|
1065
1081
|
* Upload logs for the current meeting
|
|
@@ -1302,6 +1318,11 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1302
1318
|
* @returns{void}
|
|
1303
1319
|
*/
|
|
1304
1320
|
private triggerStopReceivingTranscriptionEvent;
|
|
1321
|
+
/**
|
|
1322
|
+
* Restores LLM subchannel subscriptions after reconnect when captions are active.
|
|
1323
|
+
* @returns {void}
|
|
1324
|
+
*/
|
|
1325
|
+
private restoreLLMSubscriptionsIfNeeded;
|
|
1305
1326
|
/**
|
|
1306
1327
|
* This is a callback for the LLM event that is triggered when it comes online
|
|
1307
1328
|
* This method in turn will trigger an event to the developers that the LLM is connected
|
|
@@ -1335,10 +1356,36 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1335
1356
|
* @returns {void}
|
|
1336
1357
|
*/
|
|
1337
1358
|
private clearLLMHealthCheckTimer;
|
|
1359
|
+
/**
|
|
1360
|
+
* Disconnects and cleans up the default LLM session listeners/timers.
|
|
1361
|
+
* @param {Object} options
|
|
1362
|
+
* @param {boolean} [options.removeOnlineListener=true] removes the one-time online listener
|
|
1363
|
+
* @param {boolean} [options.throwOnError=true] rethrows disconnect errors when true
|
|
1364
|
+
* @returns {Promise<void>}
|
|
1365
|
+
*/
|
|
1366
|
+
private cleanupLLMConneciton;
|
|
1367
|
+
/**
|
|
1368
|
+
* Clears all data channel tokens stored in LLM.
|
|
1369
|
+
* Called during meeting cleanup to ensure stale tokens are not reused.
|
|
1370
|
+
* @returns {void}
|
|
1371
|
+
*/
|
|
1372
|
+
clearDataChannelToken(): void;
|
|
1373
|
+
/**
|
|
1374
|
+
* Saves the data channel tokens from the join response into LLM so that
|
|
1375
|
+
* updateLLMConnection / updatePSDataChannel don't need to fetch them from locusInfo.
|
|
1376
|
+
* @param {Object} join - The parsed join response (from MeetingUtil.parseLocusJoin)
|
|
1377
|
+
* @returns {void}
|
|
1378
|
+
*/
|
|
1379
|
+
saveDataChannelToken(join: any): void;
|
|
1380
|
+
/**
|
|
1381
|
+
* Ensures default-session data channel token exists after lobby admission.
|
|
1382
|
+
* Some lobby users do not receive a token until they are admitted.
|
|
1383
|
+
* @returns {Promise<boolean>} true when a new token is fetched and cached
|
|
1384
|
+
*/
|
|
1385
|
+
private ensureDefaultDatachannelTokenAfterAdmit;
|
|
1338
1386
|
/**
|
|
1339
1387
|
* Connects to low latency mercury and reconnects if the address has changed
|
|
1340
1388
|
* It will also disconnect if called when the meeting has ended
|
|
1341
|
-
* @param {String} datachannelUrl
|
|
1342
1389
|
* @returns {Promise}
|
|
1343
1390
|
*/
|
|
1344
1391
|
updateLLMConnection(): Promise<any>;
|
|
@@ -1909,7 +1956,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1909
1956
|
* @public
|
|
1910
1957
|
* @memberof Meeting
|
|
1911
1958
|
*/
|
|
1912
|
-
clearMeetingData: () => void
|
|
1959
|
+
clearMeetingData: () => Promise<void>;
|
|
1913
1960
|
/**
|
|
1914
1961
|
* starts keepAlives being sent
|
|
1915
1962
|
* @returns {void}
|
|
@@ -2087,5 +2134,23 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
2087
2134
|
* @memberof Meetings
|
|
2088
2135
|
*/
|
|
2089
2136
|
cancelSipCallOut(participantId: string): Promise<any>;
|
|
2137
|
+
/**
|
|
2138
|
+
* Method to get new data
|
|
2139
|
+
* @returns {Promise}
|
|
2140
|
+
*/
|
|
2141
|
+
refreshDataChannelToken(): Promise<{
|
|
2142
|
+
body: {
|
|
2143
|
+
datachannelToken: any;
|
|
2144
|
+
dataChannelTokenType: DataChannelTokenType;
|
|
2145
|
+
};
|
|
2146
|
+
}>;
|
|
2147
|
+
/**
|
|
2148
|
+
* Determines the current data channel token type based on the meeting state.
|
|
2149
|
+
*
|
|
2150
|
+
* variant should be used when connecting to the LLM data channel.
|
|
2151
|
+
*
|
|
2152
|
+
* @returns {DataChannelTokenType} The token type representing the current session mode.
|
|
2153
|
+
*/
|
|
2154
|
+
getDataChannelTokenType(): DataChannelTokenType;
|
|
2090
2155
|
}
|
|
2091
2156
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { StatelessWebexPlugin } from '@webex/webex-core';
|
|
2
|
-
import { SendReactionOptions, BrbOptions, ToggleReactionsOptions, PostMeetingDataConsentOptions, SynchronizeVideoLayout } from './request.type';
|
|
2
|
+
import { SendReactionOptions, BrbOptions, ToggleReactionsOptions, PostMeetingDataConsentOptions, SynchronizeVideoLayout, fetchDataChannelTokenOptions } from './request.type';
|
|
3
3
|
import { AnnotationInfo } from '../annotation/annotation.types';
|
|
4
4
|
import { ClientMediaPreferences } from '../reachability/reachability.types';
|
|
5
5
|
/**
|
|
@@ -364,4 +364,19 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
364
364
|
* @returns {Promise} The API response
|
|
365
365
|
*/
|
|
366
366
|
cancelSipCallOut(participantId: any): Promise<any>;
|
|
367
|
+
/**
|
|
368
|
+
* Sends a request to retrieve the datachannel authorization token for a participant.
|
|
369
|
+
*
|
|
370
|
+
* For regular meeting data channel:
|
|
371
|
+
* GET /locus/api/v1/loci/{uuid:lid}/participant/{uuid:pid}/datachannel/token
|
|
372
|
+
*
|
|
373
|
+
* For practice session data channel:
|
|
374
|
+
* GET /locus/api/v1/loci/{uuid:lid}/participant/{uuid:pid}/practiceSession/datachannel/token
|
|
375
|
+
*
|
|
376
|
+
* @param {string} locusUrl - The locus url.
|
|
377
|
+
* @param {string} requestingParticipantId - The participant UUID.
|
|
378
|
+
* @param {boolean} [isPracticeSession=false] - Whether to get the practice session token.
|
|
379
|
+
* @returns {Promise<{datachannelToken: string}>}
|
|
380
|
+
*/
|
|
381
|
+
fetchDatachannelToken({ locusUrl, requestingParticipantId, isPracticeSession, }: fetchDataChannelTokenOptions): Promise<any>;
|
|
367
382
|
}
|
|
@@ -94,4 +94,9 @@ export type SetStageVideoLayout = {
|
|
|
94
94
|
export type UnsetStageVideoLayout = {
|
|
95
95
|
overrideDefault: false;
|
|
96
96
|
};
|
|
97
|
+
export type fetchDataChannelTokenOptions = {
|
|
98
|
+
locusUrl: string;
|
|
99
|
+
requestingParticipantId: string;
|
|
100
|
+
isPracticeSession: boolean;
|
|
101
|
+
};
|
|
97
102
|
export type SynchronizeVideoLayout = SetStageVideoLayout | UnsetStageVideoLayout;
|
|
@@ -2,6 +2,34 @@ import { LocalCameraStream, LocalMicrophoneStream } from '@webex/media-helpers';
|
|
|
2
2
|
import { SELF_POLICY, IP_VERSION } from '../constants';
|
|
3
3
|
declare const MeetingUtil: {
|
|
4
4
|
parseLocusJoin: (response: any) => any;
|
|
5
|
+
/**
|
|
6
|
+
* Sanitizes a WebSocket URL by extracting only protocol, host, and pathname
|
|
7
|
+
* Returns concatenated protocol + host + pathname for safe logging
|
|
8
|
+
* Note: This is used for logging only; URL matching uses partial matching via _urlsPartiallyMatch
|
|
9
|
+
* @param {string} urlString - The URL to sanitize
|
|
10
|
+
* @returns {string} Sanitized URL or empty string if parsing fails
|
|
11
|
+
*/
|
|
12
|
+
sanitizeWebSocketUrl: (urlString: string) => string;
|
|
13
|
+
/**
|
|
14
|
+
* Checks if two URLs partially match using an endsWith approach
|
|
15
|
+
* Combines host and pathname, then checks if one ends with the other
|
|
16
|
+
* This handles cases where one URL goes through a proxy (e.g., /webproxy/) while the other is direct
|
|
17
|
+
* @param {string} url1 - First URL to compare
|
|
18
|
+
* @param {string} url2 - Second URL to compare
|
|
19
|
+
* @returns {boolean} True if one URL path ends with the other (partial match), false otherwise
|
|
20
|
+
*/
|
|
21
|
+
_urlsPartiallyMatch: (url1: string, url2: string) => boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Gets socket URL information for metrics, including whether the socket URLs match
|
|
24
|
+
* Uses partial matching to handle proxy URLs (e.g., URLs with /webproxy/ prefix)
|
|
25
|
+
* @param {Object} webex - The webex instance
|
|
26
|
+
* @returns {Object} Object with hasMismatchedSocket, mercurySocketUrl, and deviceSocketUrl properties
|
|
27
|
+
*/
|
|
28
|
+
getSocketUrlInfo: (webex: any) => {
|
|
29
|
+
hasMismatchedSocket: boolean;
|
|
30
|
+
mercurySocketUrl: string;
|
|
31
|
+
deviceSocketUrl: string;
|
|
32
|
+
};
|
|
5
33
|
remoteUpdateAudioVideo: (meeting: any, audioMuted?: boolean, videoMuted?: boolean) => any;
|
|
6
34
|
hasOwner: (info: any) => any;
|
|
7
35
|
isOwnerSelf: (owner: any, selfId: any) => boolean;
|
|
@@ -59,6 +87,7 @@ declare const MeetingUtil: {
|
|
|
59
87
|
canUserLowerAllHands: (displayHints: any) => any;
|
|
60
88
|
canUserLowerSomeoneElsesHand: (displayHints: any) => any;
|
|
61
89
|
bothLeaveAndEndMeetingAvailable: (displayHints: any) => any;
|
|
90
|
+
requireHostEndMeetingBeforeLeave: (displayHints: any) => any;
|
|
62
91
|
canManageBreakout: (displayHints: any) => any;
|
|
63
92
|
canStartBreakout: (displayHints: any) => boolean;
|
|
64
93
|
canBroadcastMessageToBreakout: (displayHints: any, policies?: {}) => boolean;
|
|
@@ -115,6 +144,8 @@ declare const MeetingUtil: {
|
|
|
115
144
|
updateLocusFromApiResponse: (meeting: any, response: any) => any;
|
|
116
145
|
generateBuildLocusDeltaRequestOptions: (originalMeeting: any) => (originalOptions: any) => any;
|
|
117
146
|
generateLocusDeltaRequest: (originalMeeting: any) => (originalOptions: any) => any;
|
|
147
|
+
canAttendeeRequestAiAssistantEnabled: (displayHints?: any[], roles?: any[]) => boolean;
|
|
148
|
+
attendeeRequestAiAssistantDeclinedAll: (displayHints?: any[]) => boolean;
|
|
118
149
|
selfSupportsFeature: (feature: SELF_POLICY, userPolicies: Record<SELF_POLICY, boolean>) => boolean;
|
|
119
150
|
parseInterpretationInfo: (meeting: any, meetingInfo: any) => void;
|
|
120
151
|
/**
|
|
@@ -95,6 +95,8 @@ export default class Meetings extends WebexPlugin {
|
|
|
95
95
|
preferredWebexSite: any;
|
|
96
96
|
reachability: Reachability;
|
|
97
97
|
registered: any;
|
|
98
|
+
registrationPromise: Promise<void>;
|
|
99
|
+
unregistrationPromise: Promise<void>;
|
|
98
100
|
request: any;
|
|
99
101
|
geoHintInfo: any;
|
|
100
102
|
meetingInfo: any;
|
|
@@ -150,7 +152,7 @@ export default class Meetings extends WebexPlugin {
|
|
|
150
152
|
*/
|
|
151
153
|
private handleLocusEvent;
|
|
152
154
|
/**
|
|
153
|
-
* handles locus events through mercury that are not roap
|
|
155
|
+
* handles locus events through mercury that are not roap or approval request events
|
|
154
156
|
* @param {Object} envelope
|
|
155
157
|
* @param {Object} envelope.data
|
|
156
158
|
* @param {String} envelope.data.eventType
|
|
@@ -287,7 +289,7 @@ export default class Meetings extends WebexPlugin {
|
|
|
287
289
|
* @public
|
|
288
290
|
* @memberof Meetings
|
|
289
291
|
*/
|
|
290
|
-
unregister():
|
|
292
|
+
unregister(): Promise<void>;
|
|
291
293
|
/**
|
|
292
294
|
* Creates a noise reduction effect
|
|
293
295
|
*
|
|
@@ -5,6 +5,11 @@ declare const MemberUtil: {
|
|
|
5
5
|
* @returns {Boolean}
|
|
6
6
|
*/
|
|
7
7
|
canReclaimHost: (participant: any) => any;
|
|
8
|
+
/**
|
|
9
|
+
* @param {Object} participant - The locus participant object.
|
|
10
|
+
* @returns {Boolean}
|
|
11
|
+
*/
|
|
12
|
+
canApproveAIEnablement: (participant: any) => boolean;
|
|
8
13
|
/**
|
|
9
14
|
* @param {Object} participant - The locus participant object.
|
|
10
15
|
* @returns {[ServerRoleShape]}
|
|
@@ -87,5 +87,10 @@ declare const BEHAVIORAL_METRICS: {
|
|
|
87
87
|
MEDIA_ISSUE_DETECTED: string;
|
|
88
88
|
LOCUS_CLASSIC_VS_HASH_TREE_MISMATCH: string;
|
|
89
89
|
LOCUS_HASH_TREE_UNSUPPORTED_OPERATION: string;
|
|
90
|
+
MEDIA_STILL_NOT_CONNECTED: string;
|
|
91
|
+
DEPRECATED_SET_CODEC_PARAMETERS_USED: string;
|
|
92
|
+
DEPRECATED_DELETE_CODEC_PARAMETERS_USED: string;
|
|
93
|
+
SET_CUSTOM_CODEC_PARAMETERS_USED: string;
|
|
94
|
+
MARK_CUSTOM_CODEC_PARAMETERS_FOR_DELETION_USED: string;
|
|
90
95
|
};
|
|
91
96
|
export { BEHAVIORAL_METRICS as default };
|
|
@@ -50,29 +50,12 @@ export declare class MediaRequestManager {
|
|
|
50
50
|
private degradationPreferences;
|
|
51
51
|
private sourceUpdateListener;
|
|
52
52
|
private debouncedSourceUpdateListener;
|
|
53
|
-
private previousStreamRequests;
|
|
54
53
|
private trimRequestsToNumOfSources;
|
|
55
54
|
private numTotalSources;
|
|
56
55
|
private numLiveSources;
|
|
57
56
|
constructor(sendMediaRequestsCallback: SendMediaRequestsCallback, options: Options);
|
|
58
57
|
setDegradationPreferences(degradationPreferences: DegradationPreferences): void;
|
|
59
58
|
private getDegradedClientRequests;
|
|
60
|
-
/**
|
|
61
|
-
* Returns true if two stream requests are the same, false otherwise.
|
|
62
|
-
*
|
|
63
|
-
* @param {StreamRequest} streamRequestA - Stream request A for comparison.
|
|
64
|
-
* @param {StreamRequest} streamRequestB - Stream request B for comparison.
|
|
65
|
-
* @returns {boolean} - Whether they are equal.
|
|
66
|
-
*/
|
|
67
|
-
isEqual(streamRequestA: StreamRequest, streamRequestB: StreamRequest): boolean;
|
|
68
|
-
/**
|
|
69
|
-
* Compares new stream requests to previous ones and determines
|
|
70
|
-
* if they are the same.
|
|
71
|
-
*
|
|
72
|
-
* @param {StreamRequest[]} newRequests - Array with new requests.
|
|
73
|
-
* @returns {boolean} - True if they are equal, false otherwise.
|
|
74
|
-
*/
|
|
75
|
-
private checkIsNewRequestsEqualToPrev;
|
|
76
59
|
/**
|
|
77
60
|
* Returns the maxPayloadBitsPerSecond per Stream
|
|
78
61
|
*
|
|
@@ -94,12 +77,6 @@ export declare class MediaRequestManager {
|
|
|
94
77
|
* @returns {number} maxMbps
|
|
95
78
|
*/
|
|
96
79
|
private getH264MaxMbps;
|
|
97
|
-
/**
|
|
98
|
-
* Clears the previous stream requests.
|
|
99
|
-
*
|
|
100
|
-
* @returns {void}
|
|
101
|
-
*/
|
|
102
|
-
clearPreviousRequests(): void;
|
|
103
80
|
/** Modifies the passed in clientRequests and makes sure that in total they don't ask
|
|
104
81
|
* for more streams than there are available.
|
|
105
82
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SendSlot, MediaType, LocalStream, MultistreamRoapMediaConnection, NamedMediaGroup, StreamState } from '@webex/internal-media-core';
|
|
1
|
+
import { SendSlot, MediaType, LocalStream, MultistreamRoapMediaConnection, NamedMediaGroup, StreamState, MediaCodecMimeType, CodecParameters } from '@webex/internal-media-core';
|
|
2
2
|
/**
|
|
3
3
|
* This class is used to manage the sendSlots for the given media types.
|
|
4
4
|
*/
|
|
@@ -69,6 +69,8 @@ export default class SendSlotManager {
|
|
|
69
69
|
*/
|
|
70
70
|
setActive(mediaType: MediaType, active?: boolean): void;
|
|
71
71
|
/**
|
|
72
|
+
* @deprecated Use {@link setCustomCodecParameters} instead, which requires specifying the codec MIME type.
|
|
73
|
+
*
|
|
72
74
|
* This method is used to set the codec parameters for the sendSlot of the given mediaType
|
|
73
75
|
* @param {MediaType} mediaType MediaType of the sendSlot for which the codec parameters needs to be set (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
|
|
74
76
|
* @param {Object} codecParameters
|
|
@@ -78,12 +80,32 @@ export default class SendSlotManager {
|
|
|
78
80
|
[key: string]: string | undefined;
|
|
79
81
|
}): Promise<void>;
|
|
80
82
|
/**
|
|
83
|
+
* @deprecated Use {@link markCustomCodecParametersForDeletion} instead, which requires specifying the codec MIME type.
|
|
84
|
+
*
|
|
81
85
|
* This method is used to delete the codec parameters for the sendSlot of the given mediaType
|
|
82
86
|
* @param {MediaType} mediaType MediaType of the sendSlot for which the codec parameters needs to be deleted (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
|
|
83
87
|
* @param {Array<String>} parameters Array of keys of the codec parameters to be deleted
|
|
84
88
|
* @returns {Promise<void>}
|
|
85
89
|
*/
|
|
86
90
|
deleteCodecParameters(mediaType: MediaType, parameters: string[]): Promise<void>;
|
|
91
|
+
/**
|
|
92
|
+
* Sets custom codec parameters for the sendSlot of the given mediaType, scoped to a specific codec MIME type.
|
|
93
|
+
* Delegates to WCME's setCustomCodecParameters API.
|
|
94
|
+
* @param {MediaType} mediaType MediaType of the sendSlot
|
|
95
|
+
* @param {MediaCodecMimeType} codecMimeType The codec MIME type to apply parameters to (e.g. OPUS, H264, AV1)
|
|
96
|
+
* @param {CodecParameters} parameters Key-value pairs of codec parameters to set
|
|
97
|
+
* @returns {Promise<void>}
|
|
98
|
+
*/
|
|
99
|
+
setCustomCodecParameters(mediaType: MediaType, codecMimeType: MediaCodecMimeType, parameters: CodecParameters): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Marks custom codec parameters for deletion on the sendSlot of the given mediaType, scoped to a specific codec MIME type.
|
|
102
|
+
* Delegates to WCME's markCustomCodecParametersForDeletion API.
|
|
103
|
+
* @param {MediaType} mediaType MediaType of the sendSlot
|
|
104
|
+
* @param {MediaCodecMimeType} codecMimeType The codec MIME type whose parameters should be deleted (e.g. OPUS, H264, AV1)
|
|
105
|
+
* @param {string[]} parameters Array of parameter keys to delete
|
|
106
|
+
* @returns {Promise<void>}
|
|
107
|
+
*/
|
|
108
|
+
markCustomCodecParametersForDeletion(mediaType: MediaType, codecMimeType: MediaCodecMimeType, parameters: string[]): Promise<void>;
|
|
87
109
|
/**
|
|
88
110
|
* This method is used to reset the SendSlotsManager by deleting all the sendSlots
|
|
89
111
|
* @returns {undefined}
|