@webex/plugin-meetings 3.8.1-next.4 → 3.8.1-next.41
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 +26 -13
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/constants.js +24 -2
- package/dist/constants.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/index.js +38 -84
- package/dist/locus-info/index.js.map +1 -1
- package/dist/media/index.js +2 -2
- package/dist/media/index.js.map +1 -1
- package/dist/meeting/brbState.js +14 -12
- package/dist/meeting/brbState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +6 -0
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +213 -77
- package/dist/meeting/index.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/type.js +7 -0
- package/dist/meeting/type.js.map +1 -0
- package/dist/meeting/util.js +11 -0
- package/dist/meeting/util.js.map +1 -1
- package/dist/meetings/index.js +35 -33
- package/dist/meetings/index.js.map +1 -1
- package/dist/members/index.js +11 -9
- 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/mediaRequestManager.js +1 -1
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +34 -5
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +42 -2
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +32 -2
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/reachability/index.js +5 -10
- package/dist/reachability/index.js.map +1 -1
- package/dist/types/constants.d.ts +22 -0
- package/dist/types/locus-info/index.d.ts +0 -9
- package/dist/types/meeting/brbState.d.ts +0 -1
- package/dist/types/meeting/in-meeting-actions.d.ts +6 -0
- package/dist/types/meeting/index.d.ts +35 -18
- package/dist/types/meeting/request.d.ts +9 -1
- package/dist/types/meeting/request.type.d.ts +74 -0
- package/dist/types/meeting/type.d.ts +9 -0
- package/dist/types/meeting/util.d.ts +3 -0
- package/dist/types/members/index.d.ts +10 -7
- package/dist/types/members/request.d.ts +1 -1
- package/dist/types/members/util.d.ts +7 -3
- package/dist/types/multistream/remoteMedia.d.ts +20 -1
- package/dist/types/multistream/remoteMediaGroup.d.ts +11 -0
- package/dist/types/multistream/sendSlotManager.d.ts +16 -0
- package/dist/types/reachability/index.d.ts +2 -2
- package/dist/webinar/index.js +1 -1
- package/package.json +24 -25
- package/src/constants.ts +23 -2
- package/src/locus-info/index.ts +47 -82
- package/src/media/index.ts +2 -2
- package/src/meeting/brbState.ts +9 -7
- package/src/meeting/in-meeting-actions.ts +13 -0
- package/src/meeting/index.ts +168 -42
- package/src/meeting/request.ts +16 -0
- package/src/meeting/request.type.ts +64 -0
- package/src/meeting/type.ts +9 -0
- package/src/meeting/util.ts +13 -0
- package/src/meetings/index.ts +3 -2
- package/src/members/index.ts +13 -10
- package/src/members/request.ts +2 -2
- package/src/members/util.ts +16 -4
- package/src/multistream/mediaRequestManager.ts +7 -7
- package/src/multistream/remoteMedia.ts +34 -4
- package/src/multistream/remoteMediaGroup.ts +37 -2
- package/src/multistream/sendSlotManager.ts +34 -2
- package/src/reachability/index.ts +5 -13
- package/test/unit/spec/locus-info/index.js +177 -83
- package/test/unit/spec/media/index.ts +107 -0
- package/test/unit/spec/meeting/brbState.ts +9 -9
- package/test/unit/spec/meeting/in-meeting-actions.ts +6 -0
- package/test/unit/spec/meeting/index.js +694 -60
- package/test/unit/spec/meeting/request.js +71 -0
- package/test/unit/spec/meeting/utils.js +21 -0
- package/test/unit/spec/meetings/index.js +2 -0
- package/test/unit/spec/members/index.js +68 -9
- package/test/unit/spec/members/request.js +2 -2
- package/test/unit/spec/members/utils.js +27 -7
- package/test/unit/spec/multistream/mediaRequestManager.ts +19 -6
- package/test/unit/spec/multistream/remoteMedia.ts +66 -2
- package/test/unit/spec/multistream/sendSlotManager.ts +59 -0
- package/test/unit/spec/reachability/index.ts +2 -6
@@ -145,6 +145,7 @@ export declare const DIALER_REGEX: {
|
|
145
145
|
SIP_ADDRESS: RegExp;
|
146
146
|
PHONE_NUMBER: RegExp;
|
147
147
|
E164_FORMAT: RegExp;
|
148
|
+
INTERNAL_NUMBER: RegExp;
|
148
149
|
};
|
149
150
|
export declare const IPV4_REGEX: RegExp;
|
150
151
|
export declare const VALID_EMAIL_ADDRESS: RegExp;
|
@@ -778,6 +779,9 @@ export declare const DISPLAY_HINTS: {
|
|
778
779
|
PREMISE_RECORDING_CONTROL_PAUSE: string;
|
779
780
|
PREMISE_RECORDING_CONTROL_STOP: string;
|
780
781
|
PREMISE_RECORDING_CONTROL_RESUME: string;
|
782
|
+
LOCAL_RECORDING_STATUS_STARTED: string;
|
783
|
+
LOCAL_RECORDING_STATUS_STOPPED: string;
|
784
|
+
LOCAL_RECORDING_STATUS_PAUSED: string;
|
781
785
|
LOCK_CONTROL_UNLOCK: string;
|
782
786
|
LOCK_CONTROL_LOCK: string;
|
783
787
|
LOCK_STATUS_LOCKED: string;
|
@@ -972,6 +976,7 @@ export declare const QUALITY_LEVELS: {
|
|
972
976
|
HIGH: string;
|
973
977
|
'360p': string;
|
974
978
|
'480p': string;
|
979
|
+
'540p': string;
|
975
980
|
'720p': string;
|
976
981
|
'1080p': string;
|
977
982
|
};
|
@@ -1000,6 +1005,18 @@ export declare const AVAILABLE_RESOLUTIONS: {
|
|
1000
1005
|
};
|
1001
1006
|
};
|
1002
1007
|
};
|
1008
|
+
'540p': {
|
1009
|
+
video: {
|
1010
|
+
width: {
|
1011
|
+
max: number;
|
1012
|
+
ideal: number;
|
1013
|
+
};
|
1014
|
+
height: {
|
1015
|
+
max: number;
|
1016
|
+
ideal: number;
|
1017
|
+
};
|
1018
|
+
};
|
1019
|
+
};
|
1003
1020
|
'720p': {
|
1004
1021
|
video: {
|
1005
1022
|
width: {
|
@@ -1117,3 +1134,8 @@ export declare const INITIAL_REGISTRATION_STATUS: {
|
|
1117
1134
|
mercuryConnect: boolean;
|
1118
1135
|
checkH264Support: boolean;
|
1119
1136
|
};
|
1137
|
+
export declare const STAGE_MANAGER_TYPE: {
|
1138
|
+
LOGO: number;
|
1139
|
+
BACKGROUND: number;
|
1140
|
+
NAME_LABEL: number;
|
1141
|
+
};
|
@@ -16,7 +16,6 @@ export default class LocusInfo extends EventsScope {
|
|
16
16
|
aclUrl: any;
|
17
17
|
baseSequence: any;
|
18
18
|
created: any;
|
19
|
-
deltaParticipants: any;
|
20
19
|
identities: any;
|
21
20
|
membership: any;
|
22
21
|
participants: any;
|
@@ -148,14 +147,6 @@ export default class LocusInfo extends EventsScope {
|
|
148
147
|
* @memberof LocusInfo
|
149
148
|
*/
|
150
149
|
compareSelfAndHost(): void;
|
151
|
-
/**
|
152
|
-
* Update the deltaParticipants property of this object based on a list of
|
153
|
-
* provided participants.
|
154
|
-
*
|
155
|
-
* @param {Array} [participants] - The participants to update against.
|
156
|
-
* @returns {void}
|
157
|
-
*/
|
158
|
-
updateParticipantDeltas(participants?: Array<any>): void;
|
159
150
|
/**
|
160
151
|
* update meeting's members
|
161
152
|
* @param {Object} participants new participants object
|
@@ -34,6 +34,9 @@ interface IInMeetingActions {
|
|
34
34
|
isClosedCaptionActive?: boolean;
|
35
35
|
canStartManualCaption?: boolean;
|
36
36
|
canStopManualCaption?: boolean;
|
37
|
+
isLocalRecordingStarted?: boolean;
|
38
|
+
isLocalRecordingStopped?: boolean;
|
39
|
+
isLocalRecordingPaused?: boolean;
|
37
40
|
isManualCaptionActive?: boolean;
|
38
41
|
isSaveTranscriptsEnabled?: boolean;
|
39
42
|
isWebexAssistantActive?: boolean;
|
@@ -139,6 +142,9 @@ export default class InMeetingActions implements IInMeetingActions {
|
|
139
142
|
isClosedCaptionActive: any;
|
140
143
|
canStartManualCaption: any;
|
141
144
|
canStopManualCaption: any;
|
145
|
+
isLocalRecordingStopped: any;
|
146
|
+
isLocalRecordingStarted: any;
|
147
|
+
isLocalRecordingPaused: any;
|
142
148
|
isManualCaptionActive: any;
|
143
149
|
isSaveTranscriptsEnabled: any;
|
144
150
|
isWebexAssistantActive: any;
|
@@ -21,6 +21,8 @@ import RecordingController from '../recording-controller';
|
|
21
21
|
import ControlsOptionsManager from '../controls-options-manager';
|
22
22
|
import { LocusMediaRequest } from './locusMediaRequest';
|
23
23
|
import { BrbState } from './brbState';
|
24
|
+
import { SetStageOptions } from './request.type';
|
25
|
+
import { Invitee } from './type';
|
24
26
|
export type CaptionData = {
|
25
27
|
id: string;
|
26
28
|
isFinal: boolean;
|
@@ -66,6 +68,13 @@ export type AddMediaOptions = {
|
|
66
68
|
remoteMediaManagerConfig?: RemoteMediaManagerConfiguration;
|
67
69
|
bundlePolicy?: BundlePolicy;
|
68
70
|
allowMediaInLobby?: boolean;
|
71
|
+
additionalMediaOptions?: AdditionalMediaOptions;
|
72
|
+
};
|
73
|
+
export type AdditionalMediaOptions = {
|
74
|
+
sendVideo?: boolean;
|
75
|
+
receiveVideo?: boolean;
|
76
|
+
sendAudio?: boolean;
|
77
|
+
receiveAudio?: boolean;
|
69
78
|
};
|
70
79
|
export type CallStateForMetrics = {
|
71
80
|
correlationId?: string;
|
@@ -479,10 +488,11 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
479
488
|
/**
|
480
489
|
* @param {Object} attrs
|
481
490
|
* @param {Object} options
|
491
|
+
* @param {Function} callback - if provided, it will be called with the newly created meeting object as soon as the meeting.id is set
|
482
492
|
* @constructor
|
483
493
|
* @memberof Meeting
|
484
494
|
*/
|
485
|
-
constructor(attrs: any, options: object);
|
495
|
+
constructor(attrs: any, options: object, callback: (meeting: Meeting) => void);
|
486
496
|
/**
|
487
497
|
* returns meeting is joined
|
488
498
|
* @private
|
@@ -854,43 +864,37 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
854
864
|
private updateMeetingObject;
|
855
865
|
/**
|
856
866
|
* Invite a guest to the call that isn't normally part of this call
|
857
|
-
* @param {
|
867
|
+
* @param {Invitee} invitee
|
858
868
|
* @param {String} invitee.emailAddress
|
859
869
|
* @param {String} invitee.email
|
860
870
|
* @param {String} invitee.phoneNumber
|
861
871
|
* @param {Boolean} [alertIfActive]
|
872
|
+
* @param {Boolean} [invitee.skipEmailValidation]
|
873
|
+
* @param {Boolean} [invitee.isInternalNumber]
|
862
874
|
* @returns {Promise} see #members.addMember
|
863
875
|
* @public
|
864
876
|
* @memberof Meeting
|
865
877
|
*/
|
866
|
-
invite(invitee:
|
867
|
-
emailAddress: string;
|
868
|
-
email: string;
|
869
|
-
phoneNumber: string;
|
870
|
-
roles: Array<string>;
|
871
|
-
}, alertIfActive?: boolean): any;
|
878
|
+
invite(invitee: Invitee, alertIfActive?: boolean): any;
|
872
879
|
/**
|
873
880
|
* Cancel an outgoing phone call invitation made during a meeting
|
874
|
-
* @param {
|
881
|
+
* @param {Invitee} invitee
|
875
882
|
* @param {String} invitee.phoneNumber
|
876
883
|
* @returns {Promise} see #members.cancelPhoneInvite
|
877
884
|
* @public
|
878
885
|
* @memberof Meeting
|
879
886
|
*/
|
880
|
-
cancelPhoneInvite(invitee:
|
881
|
-
phoneNumber: string;
|
882
|
-
}): any;
|
887
|
+
cancelPhoneInvite(invitee: Invitee): any;
|
883
888
|
/**
|
884
|
-
* Cancel an SIP call invitation made during a meeting
|
885
|
-
* @param {
|
889
|
+
* Cancel an SIP/phone call invitation made during a meeting
|
890
|
+
* @param {Invitee} invitee
|
886
891
|
* @param {String} invitee.memberId
|
887
|
-
* @
|
892
|
+
* @param {Boolean} [invitee.isInternalNumber] - When cancel phone invitation, if the number is internal
|
893
|
+
* @returns {Promise} see #members.cancelInviteByMemberId
|
888
894
|
* @public
|
889
895
|
* @memberof Meeting
|
890
896
|
*/
|
891
|
-
|
892
|
-
memberId: string;
|
893
|
-
}): any;
|
897
|
+
cancelInviteByMemberId(invitee: Invitee): any;
|
894
898
|
/**
|
895
899
|
* Admit the guest(s) to the call once they are waiting.
|
896
900
|
* If the host/cohost is in a breakout session, the locus url
|
@@ -1993,5 +1997,18 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
1993
1997
|
* @returns {Promise<MediaReachabilityMetrics>}
|
1994
1998
|
*/
|
1995
1999
|
private getMediaReachabilityMetricFields;
|
2000
|
+
/**
|
2001
|
+
* Set the stage for the meeting
|
2002
|
+
*
|
2003
|
+
* @param {SetStageOptions} options Options to use when setting the stage
|
2004
|
+
* @returns {Promise} The locus request
|
2005
|
+
*/
|
2006
|
+
setStage({ activeSpeakerProportion, customBackground, customLogo, customNameLabel, importantParticipants, lockAttendeeViewOnStage, showActiveSpeaker, }?: SetStageOptions): Promise<any>;
|
2007
|
+
/**
|
2008
|
+
* Unset the stage for the meeting
|
2009
|
+
*
|
2010
|
+
* @returns {Promise} The locus request
|
2011
|
+
*/
|
2012
|
+
unsetStage(): Promise<any>;
|
1996
2013
|
}
|
1997
2014
|
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;
|
@@ -71,6 +71,9 @@ declare const MeetingUtil: {
|
|
71
71
|
canStopTranscribing: (displayHints: any) => any;
|
72
72
|
isClosedCaptionActive: (displayHints: any) => any;
|
73
73
|
canStartManualCaption: (displayHints: any) => any;
|
74
|
+
isLocalRecordingStarted: (displayHints: any) => any;
|
75
|
+
isLocalRecordingStopped: (displayHints: any) => any;
|
76
|
+
isLocalRecordingPaused: (displayHints: any) => any;
|
74
77
|
canStopManualCaption: (displayHints: any) => any;
|
75
78
|
isManualCaptionActive: (displayHints: any) => any;
|
76
79
|
isWebexAssistantActive: (displayHints: any) => any;
|
@@ -4,6 +4,7 @@ import MembersCollection from './collection';
|
|
4
4
|
import { ReceiveSlotManager } from '../multistream/receiveSlotManager';
|
5
5
|
import { MediaRequestManager } from '../multistream/mediaRequestManager';
|
6
6
|
import { ServerRoleShape } from './types';
|
7
|
+
import { Invitee } from '../meeting/type';
|
7
8
|
/**
|
8
9
|
* @class Members
|
9
10
|
*/
|
@@ -212,26 +213,28 @@ export default class Members extends StatelessWebexPlugin {
|
|
212
213
|
private update;
|
213
214
|
/**
|
214
215
|
* Adds a guest Member to the associated meeting
|
215
|
-
* @param {
|
216
|
+
* @param {Invitee} invitee
|
216
217
|
* @param {Boolean} [alertIfActive]
|
217
218
|
* @returns {Promise}
|
218
219
|
* @memberof Members
|
219
220
|
*/
|
220
|
-
addMember(invitee:
|
221
|
+
addMember(invitee: Invitee, alertIfActive?: boolean): any;
|
221
222
|
/**
|
222
223
|
* Cancels an outgoing PSTN call to the associated meeting
|
223
|
-
* @param {
|
224
|
+
* @param {Invitee} invitee
|
224
225
|
* @returns {Promise}
|
225
226
|
* @memberof Members
|
226
227
|
*/
|
227
|
-
cancelPhoneInvite(invitee:
|
228
|
+
cancelPhoneInvite(invitee: Invitee): any;
|
228
229
|
/**
|
229
|
-
* Cancels an SIP call to the associated meeting
|
230
|
-
* @param {
|
230
|
+
* Cancels an SIP/phone call to the associated meeting
|
231
|
+
* @param {Invitee} invitee
|
232
|
+
* @param {String} invitee.memberId - The memberId of the invitee
|
233
|
+
* @param {Boolean} [invitee.isInternalNumber] - When cancel phone invitation, if the number is internal
|
231
234
|
* @returns {Promise}
|
232
235
|
* @memberof Members
|
233
236
|
*/
|
234
|
-
|
237
|
+
cancelInviteByMemberId(invitee: Invitee): any;
|
235
238
|
/**
|
236
239
|
* Admits waiting members (invited guests to meeting)
|
237
240
|
* @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
|
}
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { RoleAssignmentOptions, RoleAssignmentRequest, ServerRoleShape } from './types';
|
2
|
+
import { Invitee } from '../meeting/type';
|
2
3
|
declare const MembersUtil: {
|
3
4
|
/**
|
4
5
|
* @param {Object} invitee with emailAddress, email or phoneNumber
|
@@ -26,6 +27,7 @@ declare const MembersUtil: {
|
|
26
27
|
*/
|
27
28
|
getAddMemberBody: (options: any) => {
|
28
29
|
invitees: {
|
30
|
+
isInternalNumber?: any;
|
29
31
|
roles?: any;
|
30
32
|
address: any;
|
31
33
|
}[];
|
@@ -55,13 +57,14 @@ declare const MembersUtil: {
|
|
55
57
|
uri: any;
|
56
58
|
body: {
|
57
59
|
invitees: {
|
60
|
+
isInternalNumber?: any;
|
58
61
|
roles?: any;
|
59
62
|
address: any;
|
60
63
|
}[];
|
61
64
|
alertIfActive: any;
|
62
65
|
};
|
63
66
|
};
|
64
|
-
isInvalidInvitee: (invitee:
|
67
|
+
isInvalidInvitee: (invitee: Invitee) => boolean;
|
65
68
|
getRemoveMemberRequestParams: (options: any) => {
|
66
69
|
method: string;
|
67
70
|
uri: string;
|
@@ -228,16 +231,17 @@ declare const MembersUtil: {
|
|
228
231
|
}[];
|
229
232
|
};
|
230
233
|
};
|
231
|
-
|
234
|
+
cancelInviteByMemberIdOptions: (invitee: any, locusUrl: any) => {
|
232
235
|
invitee: any;
|
233
236
|
locusUrl: any;
|
234
237
|
};
|
235
|
-
|
238
|
+
generateCancelInviteByMemberIdRequestParams: (options: any) => {
|
236
239
|
method: string;
|
237
240
|
uri: any;
|
238
241
|
body: {
|
239
242
|
actionType: string;
|
240
243
|
invitees: {
|
244
|
+
isInternalNumber?: any;
|
241
245
|
address: any;
|
242
246
|
}[];
|
243
247
|
};
|
@@ -7,9 +7,17 @@ export declare const RemoteMediaEvents: {
|
|
7
7
|
Stopped: string;
|
8
8
|
};
|
9
9
|
export type RemoteVideoResolution = 'thumbnail' | 'very small' | 'small' | 'medium' | 'large' | 'best';
|
10
|
+
export declare const MAX_FS_VALUES: {
|
11
|
+
'90p': number;
|
12
|
+
'180p': number;
|
13
|
+
'360p': number;
|
14
|
+
'540p': number;
|
15
|
+
'720p': number;
|
16
|
+
'1080p': number;
|
17
|
+
};
|
10
18
|
/**
|
11
19
|
* Converts pane size into h264 maxFs
|
12
|
-
* @param {
|
20
|
+
* @param {RemoteVideoResolution} paneSize
|
13
21
|
* @returns {number}
|
14
22
|
*/
|
15
23
|
export declare function getMaxFs(paneSize: RemoteVideoResolution): number;
|
@@ -29,6 +37,12 @@ export declare class RemoteMedia extends EventsScope {
|
|
29
37
|
private readonly options;
|
30
38
|
private mediaRequestId?;
|
31
39
|
readonly id: RemoteMediaId;
|
40
|
+
/**
|
41
|
+
* The max frame size of the media request, used for logging and media requests.
|
42
|
+
* Set by setSizeHint() based on video element dimensions.
|
43
|
+
* When > 0, this value takes precedence over options.resolution in sendMediaRequest().
|
44
|
+
*/
|
45
|
+
private maxFrameSize;
|
32
46
|
/**
|
33
47
|
* Constructs RemoteMedia instance
|
34
48
|
*
|
@@ -45,6 +59,11 @@ export declare class RemoteMedia extends EventsScope {
|
|
45
59
|
* @note width/height of 0 will be ignored
|
46
60
|
*/
|
47
61
|
setSizeHint(width: any, height: any): void;
|
62
|
+
/**
|
63
|
+
* Get the current effective maxFs value that would be used in media requests
|
64
|
+
* @returns {number | undefined} The maxFs value, or undefined if no constraints
|
65
|
+
*/
|
66
|
+
getEffectiveMaxFs(): number | undefined;
|
48
67
|
/**
|
49
68
|
* registers event listeners on the receive slot and forwards all the events
|
50
69
|
*/
|
@@ -45,5 +45,16 @@ export declare class RemoteMediaGroup {
|
|
45
45
|
* @returns true if remote media is found
|
46
46
|
*/
|
47
47
|
includes(remoteMedia: RemoteMedia, filter?: 'all' | 'pinned' | 'unpinned'): boolean;
|
48
|
+
/**
|
49
|
+
* Calculate the effective maxFs for the active speaker media request based on unpinned RemoteMedia instances
|
50
|
+
* @returns {number | undefined} The calculated maxFs value, or undefined if no constraints
|
51
|
+
* @private
|
52
|
+
*/
|
53
|
+
private getEffectiveMaxFsForActiveSpeaker;
|
54
|
+
/**
|
55
|
+
* Get the current effective maxFs that would be used for the active speaker media request
|
56
|
+
* @returns {number | undefined} The effective maxFs value
|
57
|
+
*/
|
58
|
+
getEffectiveMaxFs(): number | undefined;
|
48
59
|
}
|
49
60
|
export {};
|
@@ -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)
|
@@ -68,12 +68,12 @@ export default class Reachability extends EventsScope {
|
|
68
68
|
}>;
|
69
69
|
/**
|
70
70
|
* Checks if the given subnet is reachable
|
71
|
-
* @param {string}
|
71
|
+
* @param {string} selectedSubnetFirstOctet - selected subnet first octet, e.g. "10" for "10.X.X.X"
|
72
72
|
* @returns {boolean | null} true if reachable, false if not reachable, null if mediaServerIp is not provided
|
73
73
|
* @public
|
74
74
|
* @memberof Reachability
|
75
75
|
*/
|
76
|
-
isSubnetReachable(
|
76
|
+
isSubnetReachable(selectedSubnetFirstOctet: string): boolean | null;
|
77
77
|
/**
|
78
78
|
* Gets a list of media clusters from the backend and performs reachability checks on all the clusters
|
79
79
|
* @param {string} trigger - explains the reason for starting reachability
|
package/dist/webinar/index.js
CHANGED
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@webex/plugin-meetings",
|
3
3
|
"description": "",
|
4
|
-
"license": "Cisco
|
4
|
+
"license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
|
5
5
|
"contributors": [
|
6
6
|
"Adam Weeks <adweeks@cisco.com> (https://adamweeks.com/)",
|
7
7
|
"Arun Ganeshan <arungane@cisco.com>",
|
@@ -43,13 +43,12 @@
|
|
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-
|
47
|
-
"@webex/
|
48
|
-
"@webex/test-helper-
|
49
|
-
"@webex/test-helper-
|
50
|
-
"@webex/test-helper-
|
51
|
-
"@webex/test-helper-
|
52
|
-
"@webex/test-helper-test-users": "3.8.1-next.1",
|
46
|
+
"@webex/plugin-rooms": "3.8.1-next.13",
|
47
|
+
"@webex/test-helper-chai": "3.8.1-next.11",
|
48
|
+
"@webex/test-helper-mocha": "3.8.1-next.11",
|
49
|
+
"@webex/test-helper-mock-webex": "3.8.1-next.11",
|
50
|
+
"@webex/test-helper-retry": "3.8.1-next.11",
|
51
|
+
"@webex/test-helper-test-users": "3.8.1-next.11",
|
53
52
|
"chai": "^4.3.4",
|
54
53
|
"chai-as-promised": "^7.1.1",
|
55
54
|
"eslint": "^8.24.0",
|
@@ -61,23 +60,23 @@
|
|
61
60
|
"typescript": "^4.7.4"
|
62
61
|
},
|
63
62
|
"dependencies": {
|
64
|
-
"@webex/common": "3.8.1-next.
|
65
|
-
"@webex/event-dictionary-ts": "^1.0.
|
66
|
-
"@webex/internal-media-core": "2.18.
|
67
|
-
"@webex/internal-plugin-conversation": "3.8.1-next.
|
68
|
-
"@webex/internal-plugin-device": "3.8.1-next.
|
69
|
-
"@webex/internal-plugin-llm": "3.8.1-next.
|
70
|
-
"@webex/internal-plugin-mercury": "3.8.1-next.
|
71
|
-
"@webex/internal-plugin-metrics": "3.8.1-next.
|
72
|
-
"@webex/internal-plugin-support": "3.8.1-next.
|
73
|
-
"@webex/internal-plugin-user": "3.8.1-next.
|
74
|
-
"@webex/internal-plugin-voicea": "3.8.1-next.
|
75
|
-
"@webex/media-helpers": "3.8.1-next.
|
76
|
-
"@webex/plugin-people": "3.8.1-next.
|
77
|
-
"@webex/plugin-rooms": "3.8.
|
63
|
+
"@webex/common": "3.8.1-next.11",
|
64
|
+
"@webex/event-dictionary-ts": "^1.0.1819",
|
65
|
+
"@webex/internal-media-core": "2.18.5",
|
66
|
+
"@webex/internal-plugin-conversation": "3.8.1-next.16",
|
67
|
+
"@webex/internal-plugin-device": "3.8.1-next.14",
|
68
|
+
"@webex/internal-plugin-llm": "3.8.1-next.15",
|
69
|
+
"@webex/internal-plugin-mercury": "3.8.1-next.14",
|
70
|
+
"@webex/internal-plugin-metrics": "3.8.1-next.14",
|
71
|
+
"@webex/internal-plugin-support": "3.8.1-next.16",
|
72
|
+
"@webex/internal-plugin-user": "3.8.1-next.14",
|
73
|
+
"@webex/internal-plugin-voicea": "3.8.1-next.41",
|
74
|
+
"@webex/media-helpers": "3.8.1-next.16",
|
75
|
+
"@webex/plugin-people": "3.8.1-next.14",
|
76
|
+
"@webex/plugin-rooms": "3.8.1-next.13",
|
78
77
|
"@webex/ts-sdp": "^1.8.1",
|
79
|
-
"@webex/web-capabilities": "^1.
|
80
|
-
"@webex/webex-core": "3.8.1-next.
|
78
|
+
"@webex/web-capabilities": "^1.6.0",
|
79
|
+
"@webex/webex-core": "3.8.1-next.14",
|
81
80
|
"ampersand-collection": "^2.0.2",
|
82
81
|
"bowser": "^2.11.0",
|
83
82
|
"btoa": "^1.2.1",
|
@@ -93,5 +92,5 @@
|
|
93
92
|
"//": [
|
94
93
|
"TODO: upgrade jwt-decode when moving to node 18"
|
95
94
|
],
|
96
|
-
"version": "3.8.1-next.
|
95
|
+
"version": "3.8.1-next.41"
|
97
96
|
}
|