@webex/plugin-meetings 3.8.1-web-workers-keepalive.1 → 3.9.0-webinar5k.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/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/constants.js +8 -2
- package/dist/constants.js.map +1 -1
- package/dist/hashTree/constants.js +23 -0
- package/dist/hashTree/constants.js.map +1 -0
- package/dist/hashTree/hashTree.js +516 -0
- package/dist/hashTree/hashTree.js.map +1 -0
- package/dist/hashTree/hashTreeParser.js +521 -0
- package/dist/hashTree/hashTreeParser.js.map +1 -0
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/index.js +301 -59
- package/dist/locus-info/index.js.map +1 -1
- package/dist/meeting/brbState.js +14 -12
- package/dist/meeting/brbState.js.map +1 -1
- package/dist/meeting/index.js +110 -12
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +2 -5
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +19 -0
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +8 -11
- package/dist/meeting/util.js.map +1 -1
- package/dist/meetings/index.js +6 -2
- package/dist/meetings/index.js.map +1 -1
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js.map +1 -1
- package/dist/members/collection.js +13 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +44 -23
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +3 -3
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +18 -6
- package/dist/members/util.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +32 -2
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/types/constants.d.ts +6 -0
- package/dist/types/hashTree/constants.d.ts +8 -0
- package/dist/types/hashTree/hashTree.d.ts +128 -0
- package/dist/types/hashTree/hashTreeParser.d.ts +152 -0
- package/dist/types/locus-info/index.d.ts +93 -3
- package/dist/types/meeting/brbState.d.ts +0 -1
- package/dist/types/meeting/index.d.ts +29 -3
- package/dist/types/meeting/request.d.ts +9 -1
- package/dist/types/meeting/request.type.d.ts +74 -0
- package/dist/types/meeting/util.d.ts +3 -3
- package/dist/types/member/types.d.ts +1 -0
- package/dist/types/members/collection.d.ts +6 -0
- package/dist/types/members/index.d.ts +15 -3
- package/dist/types/members/request.d.ts +1 -1
- package/dist/types/members/util.d.ts +5 -2
- package/dist/types/multistream/sendSlotManager.d.ts +16 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +24 -23
- package/src/constants.ts +7 -0
- package/src/hashTree/constants.ts +12 -0
- package/src/hashTree/hashTree.ts +460 -0
- package/src/hashTree/hashTreeParser.ts +556 -0
- package/src/locus-info/index.ts +393 -58
- package/src/meeting/brbState.ts +9 -7
- package/src/meeting/index.ts +104 -6
- package/src/meeting/muteState.ts +2 -6
- package/src/meeting/request.ts +16 -0
- package/src/meeting/request.type.ts +64 -0
- package/src/meeting/util.ts +17 -20
- package/src/meetings/index.ts +17 -3
- package/src/member/index.ts +1 -0
- package/src/member/types.ts +1 -0
- package/src/members/collection.ts +11 -0
- package/src/members/index.ts +33 -7
- package/src/members/request.ts +2 -2
- package/src/members/util.ts +14 -3
- package/src/multistream/sendSlotManager.ts +34 -2
- package/test/unit/spec/hashTree/hashTree.ts +394 -0
- package/test/unit/spec/hashTree/hashTreeParser.ts +156 -0
- package/test/unit/spec/locus-info/index.js +506 -55
- package/test/unit/spec/meeting/brbState.ts +9 -9
- package/test/unit/spec/meeting/index.js +475 -42
- package/test/unit/spec/meeting/request.js +71 -0
- package/test/unit/spec/members/index.js +33 -10
- package/test/unit/spec/members/request.js +2 -2
- package/test/unit/spec/members/utils.js +27 -7
- package/test/unit/spec/multistream/sendSlotManager.ts +59 -0
- package/test/unit/spec/reachability/index.ts +3 -1
@@ -1,4 +1,59 @@
|
|
1
1
|
import EventsScope from '../common/events/events-scope';
|
2
|
+
import HashTreeParser, { DataSet, HashTreeMessage, HashTreeObject, HtMeta } from '../hashTree/hashTreeParser';
|
3
|
+
export type LocusLLMEvent = {
|
4
|
+
data: {
|
5
|
+
eventType: 'locus.state_message';
|
6
|
+
stateElementsMessage: HashTreeMessage;
|
7
|
+
};
|
8
|
+
};
|
9
|
+
export type LocusDTO = {
|
10
|
+
controls?: any;
|
11
|
+
fullState?: {
|
12
|
+
active: boolean;
|
13
|
+
count: number;
|
14
|
+
lastActive: string;
|
15
|
+
locked: boolean;
|
16
|
+
sessionId: string;
|
17
|
+
seessionIds: string[];
|
18
|
+
startTime: number;
|
19
|
+
state: string;
|
20
|
+
type: string;
|
21
|
+
};
|
22
|
+
host?: {
|
23
|
+
id: string;
|
24
|
+
incomingCallProtocols: any[];
|
25
|
+
isExternal: boolean;
|
26
|
+
name: string;
|
27
|
+
orgId: string;
|
28
|
+
};
|
29
|
+
htMeta?: HtMeta;
|
30
|
+
info?: any;
|
31
|
+
jsSdkMeta?: {
|
32
|
+
removedParticipantIds: string[];
|
33
|
+
};
|
34
|
+
links?: any;
|
35
|
+
mediaShares?: any[];
|
36
|
+
meetings?: any[];
|
37
|
+
participants: any[];
|
38
|
+
replaces?: any[];
|
39
|
+
self?: any;
|
40
|
+
sequence?: {
|
41
|
+
dirtyParticipants: number;
|
42
|
+
entries: number[];
|
43
|
+
rangeEnd: number;
|
44
|
+
rangeStart: number;
|
45
|
+
sequenceHash: number;
|
46
|
+
sessionToken: string;
|
47
|
+
since: string;
|
48
|
+
totalParticipants: number;
|
49
|
+
};
|
50
|
+
syncUrl?: string;
|
51
|
+
url?: string;
|
52
|
+
};
|
53
|
+
export type LocusApiResponseBody = {
|
54
|
+
dataSets?: DataSet[];
|
55
|
+
locus: LocusDTO;
|
56
|
+
};
|
2
57
|
/**
|
3
58
|
* @description LocusInfo extends ChildEmitter to convert locusInfo info a private emitter to parent object
|
4
59
|
* @export
|
@@ -38,6 +93,8 @@ export default class LocusInfo extends EventsScope {
|
|
38
93
|
resources: any;
|
39
94
|
mainSessionLocusCache: any;
|
40
95
|
self: any;
|
96
|
+
hashTreeParser?: HashTreeParser;
|
97
|
+
hashTreeObjectId2ParticipantId: Map<number, string>;
|
41
98
|
/**
|
42
99
|
* Constructor
|
43
100
|
* @param {function} updateMeeting callback to update the meeting object from an object
|
@@ -78,10 +135,41 @@ export default class LocusInfo extends EventsScope {
|
|
78
135
|
init(locus?: any): void;
|
79
136
|
/**
|
80
137
|
* @param {Object} locus
|
138
|
+
* @param {DataSet[]} [dataSets=[]] - Array of data sets
|
81
139
|
* @returns {undefined}
|
82
140
|
* @memberof LocusInfo
|
83
141
|
*/
|
84
|
-
initialSetup(locus: object): void;
|
142
|
+
initialSetup(locus: object, dataSets?: DataSet[]): void;
|
143
|
+
/**
|
144
|
+
*
|
145
|
+
* @param {HashTreeObject} object data set object
|
146
|
+
* @param {any} locus
|
147
|
+
* @returns {void}
|
148
|
+
*/
|
149
|
+
updateHashTreeObjectInLocus(object: HashTreeObject, locus: LocusDTO): LocusDTO;
|
150
|
+
/**
|
151
|
+
* Handles HTTP response from Locus API call when hash tree update.
|
152
|
+
* @param {Meeting} meeting meeting object
|
153
|
+
* @param {LocusApiResponseBody} responseBody body of the http reponse from Locus API call
|
154
|
+
* @returns {void}
|
155
|
+
*/
|
156
|
+
handleLocusAPIResponse(meeting: any, responseBody: LocusApiResponseBody): void;
|
157
|
+
/**
|
158
|
+
* Handles a hash tree message received from Locus.
|
159
|
+
*
|
160
|
+
* @param {Meeting} meeting - The meeting object
|
161
|
+
* @param {HashTreeMessage} message incoming hash tree message
|
162
|
+
* @returns {void}
|
163
|
+
*/
|
164
|
+
private handleHashTreeMessage;
|
165
|
+
/**
|
166
|
+
* Updates our locus info based on the data parsed by the hash tree parser.
|
167
|
+
*
|
168
|
+
* @param {LocusInfoUpdateType} updateType - The type of update received.
|
169
|
+
* @param {Object} [data] - Additional data for the update, if applicable.
|
170
|
+
* @returns {void}
|
171
|
+
*/
|
172
|
+
private updateFromHashTree;
|
85
173
|
/**
|
86
174
|
* @param {Meeting} meeting
|
87
175
|
* @param {Object} data
|
@@ -101,10 +189,11 @@ export default class LocusInfo extends EventsScope {
|
|
101
189
|
* updates the locus with full locus object
|
102
190
|
* @param {object} locus locus object
|
103
191
|
* @param {string} eventType particulat locus event
|
192
|
+
* @param {DataSet[]} dataSets
|
104
193
|
* @returns {object} null
|
105
194
|
* @memberof LocusInfo
|
106
195
|
*/
|
107
|
-
onFullLocus(locus: any, eventType?: string): void;
|
196
|
+
onFullLocus(locus: any, eventType?: string, dataSets?: Array<DataSet>): void;
|
108
197
|
/**
|
109
198
|
* @param {String} eventType
|
110
199
|
* @returns {undefined}
|
@@ -159,11 +248,12 @@ export default class LocusInfo extends EventsScope {
|
|
159
248
|
/**
|
160
249
|
* update meeting's members
|
161
250
|
* @param {Object} participants new participants object
|
251
|
+
* @param {Array} removedParticipantIds list of removed participants
|
162
252
|
* @param {Boolean} isReplace is replace the whole members
|
163
253
|
* @returns {Array} updatedParticipants
|
164
254
|
* @memberof LocusInfo
|
165
255
|
*/
|
166
|
-
updateParticipants(participants: object, isReplace?: boolean): void;
|
256
|
+
updateParticipants(participants: object, removedParticipantIds: string[], isReplace?: boolean): void;
|
167
257
|
/**
|
168
258
|
* @param {Object} controls
|
169
259
|
* @param {Object} self
|
@@ -8,6 +8,7 @@ import Roap, { type TurnDiscoverySkipReason } from '../roap/index';
|
|
8
8
|
import { type TurnServerInfo } from '../roap/types';
|
9
9
|
import { type BundlePolicy } from '../media';
|
10
10
|
import MediaProperties from '../media/properties';
|
11
|
+
import { LocusDTO } from '../locus-info';
|
11
12
|
import ReconnectionManager from '../reconnection-manager';
|
12
13
|
import MeetingRequest from './request';
|
13
14
|
import Members from '../members/index';
|
@@ -21,6 +22,8 @@ import RecordingController from '../recording-controller';
|
|
21
22
|
import ControlsOptionsManager from '../controls-options-manager';
|
22
23
|
import { LocusMediaRequest } from './locusMediaRequest';
|
23
24
|
import { BrbState } from './brbState';
|
25
|
+
import { SetStageOptions } from './request.type';
|
26
|
+
import { DataSet } from '../hashTree/hashTreeParser';
|
24
27
|
export type CaptionData = {
|
25
28
|
id: string;
|
26
29
|
isFinal: boolean;
|
@@ -888,15 +891,17 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
888
891
|
phoneNumber: string;
|
889
892
|
}): any;
|
890
893
|
/**
|
891
|
-
* Cancel an SIP call invitation made during a meeting
|
894
|
+
* Cancel an SIP/phone call invitation made during a meeting
|
892
895
|
* @param {Object} invitee
|
893
896
|
* @param {String} invitee.memberId
|
894
|
-
* @
|
897
|
+
* @param {Boolean} [invitee.isInternalNumber] - When cancel phone invitation, if the number is internal
|
898
|
+
* @returns {Promise} see #members.cancelInviteByMemberId
|
895
899
|
* @public
|
896
900
|
* @memberof Meeting
|
897
901
|
*/
|
898
|
-
|
902
|
+
cancelInviteByMemberId(invitee: {
|
899
903
|
memberId: string;
|
904
|
+
isInternalNumber?: boolean;
|
900
905
|
}): any;
|
901
906
|
/**
|
902
907
|
* Admit the guest(s) to the call once they are waiting.
|
@@ -1037,11 +1042,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
1037
1042
|
* @memberof Meeting
|
1038
1043
|
*/
|
1039
1044
|
setLocus(locus: {
|
1045
|
+
locus: LocusDTO;
|
1040
1046
|
mediaConnections: Array<any>;
|
1041
1047
|
locusUrl: string;
|
1042
1048
|
locusId: string;
|
1043
1049
|
mediaId: string;
|
1044
1050
|
host: object;
|
1051
|
+
dataSets: DataSet[];
|
1045
1052
|
} | any): void;
|
1046
1053
|
/**
|
1047
1054
|
* Upload logs for the current meeting
|
@@ -1259,6 +1266,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
1259
1266
|
startTranscription(options?: {
|
1260
1267
|
spokenLanguage?: string;
|
1261
1268
|
}): Promise<void>;
|
1269
|
+
/** Handles Locus LLM events
|
1270
|
+
*
|
1271
|
+
* @param {LocusLLMEvent} event - The Locus LLM event to process
|
1272
|
+
* @returns {void}
|
1273
|
+
*/
|
1274
|
+
private processLocusLLMEvent;
|
1262
1275
|
/**
|
1263
1276
|
* Callback called when a relay event is received from meeting LLM Connection
|
1264
1277
|
* @param {RelayEvent} e Event object coming from LLM Connection
|
@@ -2000,5 +2013,18 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
2000
2013
|
* @returns {Promise<MediaReachabilityMetrics>}
|
2001
2014
|
*/
|
2002
2015
|
private getMediaReachabilityMetricFields;
|
2016
|
+
/**
|
2017
|
+
* Set the stage for the meeting
|
2018
|
+
*
|
2019
|
+
* @param {SetStageOptions} options Options to use when setting the stage
|
2020
|
+
* @returns {Promise} The locus request
|
2021
|
+
*/
|
2022
|
+
setStage({ activeSpeakerProportion, customBackground, customLogo, customNameLabel, importantParticipants, lockAttendeeViewOnStage, showActiveSpeaker, }?: SetStageOptions): Promise<any>;
|
2023
|
+
/**
|
2024
|
+
* Unset the stage for the meeting
|
2025
|
+
*
|
2026
|
+
* @returns {Promise} The locus request
|
2027
|
+
*/
|
2028
|
+
unsetStage(): Promise<any>;
|
2003
2029
|
}
|
2004
2030
|
export {};
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { StatelessWebexPlugin } from '@webex/webex-core';
|
2
|
-
import { SendReactionOptions, BrbOptions, ToggleReactionsOptions, PostMeetingDataConsentOptions } from './request.type';
|
2
|
+
import { SendReactionOptions, BrbOptions, ToggleReactionsOptions, PostMeetingDataConsentOptions, SynchronizeVideoLayout } from './request.type';
|
3
3
|
import { AnnotationInfo } from '../annotation/annotation.types';
|
4
4
|
import { ClientMediaPreferences } from '../reachability/reachability.types';
|
5
5
|
/**
|
@@ -314,4 +314,12 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
314
314
|
* @returns {Promise}
|
315
315
|
*/
|
316
316
|
setPostMeetingDataConsent({ postMeetingDataConsent, locusUrl, deviceUrl, selfId, }: PostMeetingDataConsentOptions): Promise<any>;
|
317
|
+
/**
|
318
|
+
* Synchronize the stage for a meeting
|
319
|
+
*
|
320
|
+
* @param {LocusUrl} locusUrl The locus URL
|
321
|
+
* @param {SetStageVideoLayout} videoLayout The video layout to synchronize
|
322
|
+
* @returns {Promise} The locus request
|
323
|
+
*/
|
324
|
+
synchronizeStage(locusUrl: string, videoLayout: SynchronizeVideoLayout): Promise<any>;
|
317
325
|
}
|
@@ -21,3 +21,77 @@ export type PostMeetingDataConsentOptions = {
|
|
21
21
|
deviceUrl: string;
|
22
22
|
selfId: string;
|
23
23
|
};
|
24
|
+
export type StageCustomLogoPositions = 'LowerLeft' | 'LowerMiddle' | 'LowerRight' | 'UpperLeft' | 'UpperMiddle' | 'UpperRight';
|
25
|
+
export type StageNameLabelType = 'Primary' | 'PrimaryInverted' | 'Secondary' | 'SecondaryInverted';
|
26
|
+
export type StageCustomBackground = {
|
27
|
+
url: string;
|
28
|
+
[others: string]: unknown;
|
29
|
+
};
|
30
|
+
export type StageCustomLogo = {
|
31
|
+
url: string;
|
32
|
+
position: StageCustomLogoPositions;
|
33
|
+
[others: string]: unknown;
|
34
|
+
};
|
35
|
+
export type StageCustomNameLabel = {
|
36
|
+
accentColor: string;
|
37
|
+
background: {
|
38
|
+
color: string;
|
39
|
+
};
|
40
|
+
border: {
|
41
|
+
color: string;
|
42
|
+
};
|
43
|
+
content: {
|
44
|
+
displayName: {
|
45
|
+
color: string;
|
46
|
+
};
|
47
|
+
subtitle: {
|
48
|
+
color: string;
|
49
|
+
};
|
50
|
+
};
|
51
|
+
decoration: {
|
52
|
+
color: string;
|
53
|
+
};
|
54
|
+
fadeOut?: {
|
55
|
+
delay: number;
|
56
|
+
};
|
57
|
+
type: StageNameLabelType;
|
58
|
+
[others: string]: unknown;
|
59
|
+
};
|
60
|
+
export type SetStageOptions = {
|
61
|
+
activeSpeakerProportion?: number;
|
62
|
+
customBackground?: StageCustomBackground;
|
63
|
+
customLogo?: StageCustomLogo;
|
64
|
+
customNameLabel?: StageCustomNameLabel;
|
65
|
+
importantParticipants?: {
|
66
|
+
mainCsi: number;
|
67
|
+
participantId: string;
|
68
|
+
}[];
|
69
|
+
lockAttendeeViewOnStage?: boolean;
|
70
|
+
showActiveSpeaker?: boolean;
|
71
|
+
};
|
72
|
+
export type SetStageVideoLayout = {
|
73
|
+
overrideDefault: true;
|
74
|
+
lockAttendeeViewOnStageOnly: boolean;
|
75
|
+
stageParameters: {
|
76
|
+
importantParticipants?: {
|
77
|
+
participantId: string;
|
78
|
+
mainCsi: number;
|
79
|
+
order: number;
|
80
|
+
}[];
|
81
|
+
showActiveSpeaker: {
|
82
|
+
show: boolean;
|
83
|
+
order: number;
|
84
|
+
};
|
85
|
+
activeSpeakerProportion: number;
|
86
|
+
stageManagerType: number;
|
87
|
+
};
|
88
|
+
customLayouts?: {
|
89
|
+
background?: StageCustomBackground;
|
90
|
+
logo?: StageCustomLogo;
|
91
|
+
};
|
92
|
+
nameLabelStyle?: StageCustomNameLabel;
|
93
|
+
};
|
94
|
+
export type UnsetStageVideoLayout = {
|
95
|
+
overrideDefault: false;
|
96
|
+
};
|
97
|
+
export type SynchronizeVideoLayout = SetStageVideoLayout | UnsetStageVideoLayout;
|
@@ -92,14 +92,14 @@ declare const MeetingUtil: {
|
|
92
92
|
*/
|
93
93
|
addSequence: (meeting: any, requestBody: any) => void;
|
94
94
|
/**
|
95
|
-
* Updates the locus info for the meeting with the
|
96
|
-
* returned from requests
|
95
|
+
* Updates the locus info for the meeting with the locus
|
96
|
+
* information returned from API requests made to Locus
|
97
97
|
* Returns the original response object
|
98
98
|
* @param {Object} meeting The meeting object
|
99
99
|
* @param {Object} response The response of the http request
|
100
100
|
* @returns {Object}
|
101
101
|
*/
|
102
|
-
|
102
|
+
updateLocusFromApiResponse: (meeting: any, response: any) => any;
|
103
103
|
generateBuildLocusDeltaRequestOptions: (originalMeeting: any) => (originalOptions: any) => any;
|
104
104
|
generateLocusDeltaRequest: (originalMeeting: any) => (originalOptions: any) => any;
|
105
105
|
selfSupportsFeature: (feature: SELF_POLICY, userPolicies: Record<SELF_POLICY, boolean>) => boolean;
|
@@ -22,6 +22,12 @@ export default class MembersCollection {
|
|
22
22
|
* @memberof MembersCollection
|
23
23
|
*/
|
24
24
|
getAll(): Record<string, Member>;
|
25
|
+
/**
|
26
|
+
* Removes a member from the collection
|
27
|
+
* @param {String} id
|
28
|
+
* @returns {void}
|
29
|
+
*/
|
30
|
+
remove(id: string): void;
|
25
31
|
/**
|
26
32
|
* @returns {void}
|
27
33
|
* reset members
|
@@ -84,6 +84,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
84
84
|
locusParticipantsUpdate(payload: {
|
85
85
|
participants: object;
|
86
86
|
isReplace?: boolean;
|
87
|
+
removedParticipantIds?: Array<string>;
|
87
88
|
}): void;
|
88
89
|
/**
|
89
90
|
* Internal update the content id
|
@@ -126,6 +127,12 @@ export default class Members extends StatelessWebexPlugin {
|
|
126
127
|
* @memberof Members
|
127
128
|
*/
|
128
129
|
private handleMembersUpdate;
|
130
|
+
/**
|
131
|
+
* removes members from the collection
|
132
|
+
* @param {Array<string>} removedMembers removed members ids
|
133
|
+
* @returns {void}
|
134
|
+
*/
|
135
|
+
private removeMembers;
|
129
136
|
/**
|
130
137
|
* set members to the member collection from each updated/added lists as passed in
|
131
138
|
* @param {Array} list
|
@@ -226,12 +233,17 @@ export default class Members extends StatelessWebexPlugin {
|
|
226
233
|
*/
|
227
234
|
cancelPhoneInvite(invitee: any): any;
|
228
235
|
/**
|
229
|
-
* Cancels an SIP call to the associated meeting
|
230
|
-
* @param {
|
236
|
+
* Cancels an SIP/phone call to the associated meeting
|
237
|
+
* @param {Object} invitee
|
238
|
+
* @param {String} invitee.memberId - The memberId of the invitee
|
239
|
+
* @param {Boolean} [invitee.isInternalNumber] - When cancel phone invitation, if the number is internal
|
231
240
|
* @returns {Promise}
|
232
241
|
* @memberof Members
|
233
242
|
*/
|
234
|
-
|
243
|
+
cancelInviteByMemberId(invitee: {
|
244
|
+
memberId: string;
|
245
|
+
isInternalNumber?: boolean;
|
246
|
+
}): any;
|
235
247
|
/**
|
236
248
|
* Admits waiting members (invited guests to meeting)
|
237
249
|
* @param {Array} memberIds
|
@@ -136,5 +136,5 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
136
136
|
* @throws {Error} if the options are not valid and complete, must have invitee with memberId AND locusUrl
|
137
137
|
* @memberof MembersRequest
|
138
138
|
*/
|
139
|
-
|
139
|
+
cancelInviteByMemberId(options: any): Promise<any>;
|
140
140
|
}
|
@@ -26,6 +26,7 @@ declare const MembersUtil: {
|
|
26
26
|
*/
|
27
27
|
getAddMemberBody: (options: any) => {
|
28
28
|
invitees: {
|
29
|
+
isInternalNumber?: any;
|
29
30
|
roles?: any;
|
30
31
|
address: any;
|
31
32
|
}[];
|
@@ -55,6 +56,7 @@ declare const MembersUtil: {
|
|
55
56
|
uri: any;
|
56
57
|
body: {
|
57
58
|
invitees: {
|
59
|
+
isInternalNumber?: any;
|
58
60
|
roles?: any;
|
59
61
|
address: any;
|
60
62
|
}[];
|
@@ -228,16 +230,17 @@ declare const MembersUtil: {
|
|
228
230
|
}[];
|
229
231
|
};
|
230
232
|
};
|
231
|
-
|
233
|
+
cancelInviteByMemberIdOptions: (invitee: any, locusUrl: any) => {
|
232
234
|
invitee: any;
|
233
235
|
locusUrl: any;
|
234
236
|
};
|
235
|
-
|
237
|
+
generateCancelInviteByMemberIdRequestParams: (options: any) => {
|
236
238
|
method: string;
|
237
239
|
uri: any;
|
238
240
|
body: {
|
239
241
|
actionType: string;
|
240
242
|
invitees: {
|
243
|
+
isInternalNumber?: any;
|
241
244
|
address: any;
|
242
245
|
}[];
|
243
246
|
};
|
@@ -1,7 +1,17 @@
|
|
1
1
|
import { SendSlot, MediaType, LocalStream, MultistreamRoapMediaConnection, NamedMediaGroup, StreamState } from '@webex/internal-media-core';
|
2
|
+
/**
|
3
|
+
* This class is used to manage the sendSlots for the given media types.
|
4
|
+
*/
|
2
5
|
export default class SendSlotManager {
|
3
6
|
private readonly slots;
|
4
7
|
private readonly LoggerProxy;
|
8
|
+
private readonly sourceStateOverrides;
|
9
|
+
/**
|
10
|
+
* Constructor for SendSlotManager
|
11
|
+
*
|
12
|
+
* @param {any} LoggerProxy is used to log the messages
|
13
|
+
* @constructor
|
14
|
+
*/
|
5
15
|
constructor(LoggerProxy: any);
|
6
16
|
/**
|
7
17
|
* This method is used to create a sendSlot for the given mediaType and returns the created sendSlot
|
@@ -32,6 +42,12 @@ export default class SendSlotManager {
|
|
32
42
|
* @returns {void}
|
33
43
|
*/
|
34
44
|
setSourceStateOverride(mediaType: MediaType, state: StreamState | null): void;
|
45
|
+
/**
|
46
|
+
* Gets the source state override for the given media type.
|
47
|
+
* @param {MediaType} mediaType - The type of media to get the source state override for.
|
48
|
+
* @returns {StreamState | null} - The current source state override or null if not set.
|
49
|
+
*/
|
50
|
+
private getSourceStateOverride;
|
35
51
|
/**
|
36
52
|
* This method publishes the given stream to the sendSlot for the given mediaType
|
37
53
|
* @param {MediaType} mediaType MediaType of the sendSlot to which a stream needs to be published (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
|
package/dist/webinar/index.js
CHANGED
package/package.json
CHANGED
@@ -43,13 +43,13 @@
|
|
43
43
|
"@webex/eslint-config-legacy": "0.0.0",
|
44
44
|
"@webex/jest-config-legacy": "0.0.0",
|
45
45
|
"@webex/legacy-tools": "0.0.0",
|
46
|
-
"@webex/plugin-meetings": "3.
|
47
|
-
"@webex/plugin-rooms": "3.
|
48
|
-
"@webex/test-helper-chai": "3.
|
49
|
-
"@webex/test-helper-mocha": "3.
|
50
|
-
"@webex/test-helper-mock-webex": "3.
|
51
|
-
"@webex/test-helper-retry": "3.
|
52
|
-
"@webex/test-helper-test-users": "3.
|
46
|
+
"@webex/plugin-meetings": "3.9.0-webinar5k.1",
|
47
|
+
"@webex/plugin-rooms": "3.9.0-webinar5k.1",
|
48
|
+
"@webex/test-helper-chai": "3.9.0-webinar5k.1",
|
49
|
+
"@webex/test-helper-mocha": "3.9.0-webinar5k.1",
|
50
|
+
"@webex/test-helper-mock-webex": "3.9.0-webinar5k.1",
|
51
|
+
"@webex/test-helper-retry": "3.9.0-webinar5k.1",
|
52
|
+
"@webex/test-helper-test-users": "3.9.0-webinar5k.1",
|
53
53
|
"chai": "^4.3.4",
|
54
54
|
"chai-as-promised": "^7.1.1",
|
55
55
|
"eslint": "^8.24.0",
|
@@ -61,23 +61,23 @@
|
|
61
61
|
"typescript": "^4.7.4"
|
62
62
|
},
|
63
63
|
"dependencies": {
|
64
|
-
"@webex/common": "3.
|
64
|
+
"@webex/common": "3.9.0-webinar5k.1",
|
65
65
|
"@webex/event-dictionary-ts": "^1.0.1819",
|
66
|
-
"@webex/internal-media-core": "2.18.
|
67
|
-
"@webex/internal-plugin-conversation": "3.
|
68
|
-
"@webex/internal-plugin-device": "3.
|
69
|
-
"@webex/internal-plugin-llm": "3.
|
70
|
-
"@webex/internal-plugin-mercury": "3.
|
71
|
-
"@webex/internal-plugin-metrics": "3.
|
72
|
-
"@webex/internal-plugin-support": "3.
|
73
|
-
"@webex/internal-plugin-user": "3.
|
74
|
-
"@webex/internal-plugin-voicea": "3.
|
75
|
-
"@webex/media-helpers": "3.
|
76
|
-
"@webex/plugin-people": "3.
|
77
|
-
"@webex/plugin-rooms": "3.
|
66
|
+
"@webex/internal-media-core": "2.18.5",
|
67
|
+
"@webex/internal-plugin-conversation": "3.9.0-webinar5k.1",
|
68
|
+
"@webex/internal-plugin-device": "3.9.0-webinar5k.1",
|
69
|
+
"@webex/internal-plugin-llm": "3.9.0-webinar5k.1",
|
70
|
+
"@webex/internal-plugin-mercury": "3.9.0-webinar5k.1",
|
71
|
+
"@webex/internal-plugin-metrics": "3.9.0-webinar5k.1",
|
72
|
+
"@webex/internal-plugin-support": "3.9.0-webinar5k.1",
|
73
|
+
"@webex/internal-plugin-user": "3.9.0-webinar5k.1",
|
74
|
+
"@webex/internal-plugin-voicea": "3.9.0-webinar5k.1",
|
75
|
+
"@webex/media-helpers": "3.9.0-webinar5k.1",
|
76
|
+
"@webex/plugin-people": "3.9.0-webinar5k.1",
|
77
|
+
"@webex/plugin-rooms": "3.9.0-webinar5k.1",
|
78
78
|
"@webex/ts-sdp": "^1.8.1",
|
79
79
|
"@webex/web-capabilities": "^1.6.0",
|
80
|
-
"@webex/webex-core": "3.
|
80
|
+
"@webex/webex-core": "3.9.0-webinar5k.1",
|
81
81
|
"ampersand-collection": "^2.0.2",
|
82
82
|
"bowser": "^2.11.0",
|
83
83
|
"btoa": "^1.2.1",
|
@@ -88,10 +88,11 @@
|
|
88
88
|
"jwt-decode": "3.1.2",
|
89
89
|
"lodash": "^4.17.21",
|
90
90
|
"uuid": "^3.3.2",
|
91
|
-
"webrtc-adapter": "^8.1.2"
|
91
|
+
"webrtc-adapter": "^8.1.2",
|
92
|
+
"xxh3-ts": "^2.0.1"
|
92
93
|
},
|
93
94
|
"//": [
|
94
95
|
"TODO: upgrade jwt-decode when moving to node 18"
|
95
96
|
],
|
96
|
-
"version": "3.
|
97
|
+
"version": "3.9.0-webinar5k.1"
|
97
98
|
}
|
package/src/constants.ts
CHANGED
@@ -217,6 +217,7 @@ export const DIALER_REGEX = {
|
|
217
217
|
PHONE_NUMBER:
|
218
218
|
/^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$/,
|
219
219
|
E164_FORMAT: /^\+[1-9]\d{1,14}$/,
|
220
|
+
INTERNAL_NUMBER: /^\d{1,14}$/,
|
220
221
|
};
|
221
222
|
|
222
223
|
// eslint-disable-next-line max-len
|
@@ -1357,3 +1358,9 @@ export const INITIAL_REGISTRATION_STATUS = {
|
|
1357
1358
|
mercuryConnect: false,
|
1358
1359
|
checkH264Support: false,
|
1359
1360
|
};
|
1361
|
+
|
1362
|
+
export const STAGE_MANAGER_TYPE = {
|
1363
|
+
LOGO: 0b001,
|
1364
|
+
BACKGROUND: 0b010,
|
1365
|
+
NAME_LABEL: 0b100,
|
1366
|
+
};
|
@@ -0,0 +1,12 @@
|
|
1
|
+
// TODO: Consider moving these to the main meetings constants file at some point
|
2
|
+
// Only worth doing so if they are used outside of the hash tree
|
3
|
+
|
4
|
+
export const EMPTY_HASH = '99aa06d3014798d86001c324468d497f';
|
5
|
+
|
6
|
+
export const DataSetNames = {
|
7
|
+
MAIN: 'main', // sent to web client, contains also panelists, over LLM
|
8
|
+
ATTENDEES: 'attendees', // NOT SENT to web client, all the attendees in the locus
|
9
|
+
ATD_ACTIVE: 'atd-active', // only sent to panelists, over LLM; the attendees that have their hands raised or are allowed to unmute themselves
|
10
|
+
ATD_UNMUTED: 'atd-unmuted', // sent to web client, over LLM, not sent to panelists; the attendees that are unmuted
|
11
|
+
SELF: 'self', // sent to web client, over Mercury
|
12
|
+
};
|