@webex/plugin-meetings 3.7.0-next.6 → 3.7.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/dist/annotation/index.js +17 -0
- package/dist/annotation/index.js.map +1 -1
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/common/errors/join-forbidden-error.js +52 -0
- package/dist/common/errors/join-forbidden-error.js.map +1 -0
- package/dist/common/errors/{webinar-registration-error.js → join-webinar-error.js} +12 -12
- package/dist/common/errors/join-webinar-error.js.map +1 -0
- package/dist/common/errors/multistream-not-supported-error.js +53 -0
- package/dist/common/errors/multistream-not-supported-error.js.map +1 -0
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +46 -5
- package/dist/constants.js.map +1 -1
- package/dist/index.js +16 -11
- package/dist/index.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/index.js +14 -3
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/selfUtils.js +35 -17
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/meeting/brbState.js +167 -0
- package/dist/meeting/brbState.js.map +1 -0
- package/dist/meeting/in-meeting-actions.js +2 -0
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +774 -649
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +9 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.js +1 -6
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +30 -0
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +16 -16
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +96 -33
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +1 -1
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/index.js +107 -55
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +2 -0
- package/dist/meetings/meetings.types.js.map +1 -1
- package/dist/meetings/util.js +1 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +9 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js.map +1 -1
- package/dist/member/util.js +39 -28
- package/dist/member/util.js.map +1 -1
- package/dist/metrics/constants.js +3 -2
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/remoteMedia.js +30 -15
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +24 -0
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/reachability/index.js +31 -3
- package/dist/reachability/index.js.map +1 -1
- package/dist/roap/index.js +10 -8
- package/dist/roap/index.js.map +1 -1
- package/dist/types/annotation/index.d.ts +5 -0
- package/dist/types/common/errors/join-forbidden-error.d.ts +15 -0
- package/dist/types/common/errors/{webinar-registration-error.d.ts → join-webinar-error.d.ts} +2 -2
- package/dist/types/common/errors/multistream-not-supported-error.d.ts +17 -0
- package/dist/types/constants.d.ts +38 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/locus-info/index.d.ts +2 -1
- package/dist/types/meeting/brbState.d.ts +54 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +2 -0
- package/dist/types/meeting/index.d.ts +21 -12
- package/dist/types/meeting/locusMediaRequest.d.ts +4 -0
- package/dist/types/meeting/request.d.ts +12 -1
- package/dist/types/meeting/request.type.d.ts +6 -0
- package/dist/types/meeting/util.d.ts +1 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +27 -4
- package/dist/types/meetings/index.d.ts +19 -1
- package/dist/types/meetings/meetings.types.d.ts +8 -0
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/member/types.d.ts +7 -0
- package/dist/types/metrics/constants.d.ts +2 -1
- package/dist/types/multistream/sendSlotManager.d.ts +8 -1
- package/dist/types/reachability/index.d.ts +9 -1
- package/dist/webinar/index.js +354 -3
- package/dist/webinar/index.js.map +1 -1
- package/package.json +23 -22
- package/src/annotation/index.ts +16 -0
- package/src/common/errors/join-forbidden-error.ts +26 -0
- package/src/common/errors/join-webinar-error.ts +24 -0
- package/src/common/errors/multistream-not-supported-error.ts +30 -0
- package/src/config.ts +1 -1
- package/src/constants.ts +43 -3
- package/src/index.ts +5 -3
- package/src/locus-info/index.ts +20 -3
- package/src/locus-info/selfUtils.ts +24 -6
- package/src/meeting/brbState.ts +169 -0
- package/src/meeting/in-meeting-actions.ts +4 -0
- package/src/meeting/index.ts +256 -82
- package/src/meeting/locusMediaRequest.ts +7 -0
- package/src/meeting/muteState.ts +1 -6
- package/src/meeting/request.ts +26 -1
- package/src/meeting/request.type.ts +7 -0
- package/src/meeting/util.ts +8 -10
- package/src/meeting-info/meeting-info-v2.ts +74 -11
- package/src/meeting-info/utilv2.ts +3 -1
- package/src/meetings/index.ts +79 -20
- package/src/meetings/meetings.types.ts +10 -0
- package/src/meetings/util.ts +2 -1
- package/src/member/index.ts +9 -0
- package/src/member/types.ts +8 -0
- package/src/member/util.ts +34 -24
- package/src/metrics/constants.ts +2 -1
- package/src/multistream/remoteMedia.ts +28 -15
- package/src/multistream/sendSlotManager.ts +31 -0
- package/src/reachability/index.ts +29 -1
- package/src/roap/index.ts +10 -8
- package/src/webinar/index.ts +197 -3
- package/test/unit/spec/annotation/index.ts +46 -1
- package/test/unit/spec/locus-info/index.js +292 -60
- package/test/unit/spec/locus-info/selfConstant.js +7 -0
- package/test/unit/spec/locus-info/selfUtils.js +101 -1
- package/test/unit/spec/meeting/brbState.ts +114 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +2 -0
- package/test/unit/spec/meeting/index.js +733 -106
- package/test/unit/spec/meeting/muteState.js +0 -24
- package/test/unit/spec/meeting/utils.js +22 -19
- package/test/unit/spec/meeting-info/meetinginfov2.js +46 -4
- package/test/unit/spec/meeting-info/utilv2.js +17 -0
- package/test/unit/spec/meetings/index.js +159 -18
- package/test/unit/spec/meetings/utils.js +10 -0
- package/test/unit/spec/member/util.js +52 -11
- package/test/unit/spec/multistream/remoteMedia.ts +11 -7
- package/test/unit/spec/reachability/index.ts +120 -10
- package/test/unit/spec/roap/index.ts +47 -0
- package/test/unit/spec/webinar/index.ts +457 -0
- package/dist/common/errors/webinar-registration-error.js.map +0 -1
- package/src/common/errors/webinar-registration-error.ts +0 -27
|
@@ -24,6 +24,7 @@ export declare const ENDED = "ended";
|
|
|
24
24
|
export declare const HECATE = "hecate";
|
|
25
25
|
export declare const HOST = "host";
|
|
26
26
|
export declare const JOIN = "join";
|
|
27
|
+
export declare const JOIN_LINK_MTID = "MTID";
|
|
27
28
|
export declare const LEAVE = "leave";
|
|
28
29
|
export declare const LIVE = "live";
|
|
29
30
|
export declare const LOCAL = "local";
|
|
@@ -75,6 +76,7 @@ export declare const _ON_HOLD_LOBBY_ = "ON_HOLD_LOBBY";
|
|
|
75
76
|
export declare const _MEETING_LINK_ = "MEETING_LINK";
|
|
76
77
|
export declare const _MEETING_UUID_ = "MEETING_UUID";
|
|
77
78
|
export declare const _MEETING_ = "MEETING";
|
|
79
|
+
export declare const _SPACE_SHARE_ = "SPACE_SHARE";
|
|
78
80
|
export declare const _MEETING_CENTER_ = "MEETING_CENTER";
|
|
79
81
|
export declare const _MEETING_ID_ = "MEETING_ID";
|
|
80
82
|
export declare const _NOT_IN_MEETING_ = "NOT_IN_MEETING";
|
|
@@ -136,6 +138,9 @@ export declare const ICE_FAIL_TIMEOUT = 3000;
|
|
|
136
138
|
export declare const RETRY_TIMEOUT = 3000;
|
|
137
139
|
export declare const ICE_AND_DTLS_CONNECTION_TIMEOUT = 20000;
|
|
138
140
|
export declare const ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT = 35000;
|
|
141
|
+
export declare const WEBINAR_ERROR_WEBCAST: number[];
|
|
142
|
+
export declare const WEBINAR_ERROR_REGISTRATIONID: number[];
|
|
143
|
+
export declare const JOIN_BEFORE_HOST = 403003;
|
|
139
144
|
export declare const DIALER_REGEX: {
|
|
140
145
|
SIP_ADDRESS: RegExp;
|
|
141
146
|
PHONE_NUMBER: RegExp;
|
|
@@ -214,6 +219,7 @@ export declare const EVENT_TRIGGERS: {
|
|
|
214
219
|
MEETING_SELF_CANNOT_VIEW_PARTICIPANT_LIST: string;
|
|
215
220
|
MEETING_SELF_IS_SHARING_BLOCKED: string;
|
|
216
221
|
MEETING_SELF_ROLES_CHANGED: string;
|
|
222
|
+
MEETING_SELF_BRB_UPDATE: string;
|
|
217
223
|
MEETING_CONTROLS_LAYOUT_UPDATE: string;
|
|
218
224
|
MEETING_ENTRY_EXIT_TONE_UPDATE: string;
|
|
219
225
|
MEETING_BREAKOUTS_UPDATE: string;
|
|
@@ -236,6 +242,7 @@ export declare const EVENT_TRIGGERS: {
|
|
|
236
242
|
MEETING_RECONNECTION_FAILURE: string;
|
|
237
243
|
MEETING_UNLOCKED: string;
|
|
238
244
|
MEETING_LOCKED: string;
|
|
245
|
+
MEETING_RESOURCE_LINKS_UPDATE: string;
|
|
239
246
|
MEETING_INFO_AVAILABLE: string;
|
|
240
247
|
MEETING_INFO_UPDATED: string;
|
|
241
248
|
MEETING_LOG_UPLOAD_SUCCESS: string;
|
|
@@ -286,6 +293,12 @@ export declare const EVENT_TYPES: {
|
|
|
286
293
|
REMOTE_SHARE_AUDIO: string;
|
|
287
294
|
ERROR: string;
|
|
288
295
|
};
|
|
296
|
+
export declare const HEADERS: {
|
|
297
|
+
CONTENT_TYPE: string;
|
|
298
|
+
CONTENT_TYPE_VALUE: {
|
|
299
|
+
APPLICATION_JSON: string;
|
|
300
|
+
};
|
|
301
|
+
};
|
|
289
302
|
export declare const MEETING_REMOVED_REASON: {
|
|
290
303
|
SELF_REMOVED: string;
|
|
291
304
|
FULLSTATE_REMOVED: string;
|
|
@@ -410,7 +423,17 @@ export declare const ERROR_DICTIONARY: {
|
|
|
410
423
|
MESSAGE: string;
|
|
411
424
|
CODE: number;
|
|
412
425
|
};
|
|
413
|
-
|
|
426
|
+
JoinWebinarError: {
|
|
427
|
+
NAME: string;
|
|
428
|
+
MESSAGE: string;
|
|
429
|
+
CODE: number;
|
|
430
|
+
};
|
|
431
|
+
MULTISTREAM_NOT_SUPPORTED: {
|
|
432
|
+
NAME: string;
|
|
433
|
+
MESSAGE: string;
|
|
434
|
+
CODE: number;
|
|
435
|
+
};
|
|
436
|
+
JoinForbiddenError: {
|
|
414
437
|
NAME: string;
|
|
415
438
|
MESSAGE: string;
|
|
416
439
|
CODE: number;
|
|
@@ -578,6 +601,7 @@ export declare const LOCUSINFO: {
|
|
|
578
601
|
SELF_IS_SHARING_BLOCKED_CHANGE: string;
|
|
579
602
|
SELF_MEETING_BREAKOUTS_CHANGED: string;
|
|
580
603
|
SELF_MEETING_INTERPRETATION_CHANGED: string;
|
|
604
|
+
SELF_MEETING_BRB_CHANGED: string;
|
|
581
605
|
MEDIA_INACTIVITY: string;
|
|
582
606
|
LINKS_SERVICES: string;
|
|
583
607
|
LINKS_RESOURCES: string;
|
|
@@ -786,6 +810,7 @@ export declare const DISPLAY_HINTS: {
|
|
|
786
810
|
DISABLE_ASK_FOR_HELP: string;
|
|
787
811
|
DISABLE_BREAKOUT_PREASSIGNMENTS: string;
|
|
788
812
|
DISABLE_LOBBY_TO_BREAKOUT: string;
|
|
813
|
+
DISABLE_BREAKOUT_START: string;
|
|
789
814
|
DISABLE_VIEW_THE_PARTICIPANT_LIST: string;
|
|
790
815
|
ENABLE_VIEW_THE_PARTICIPANT_LIST: string;
|
|
791
816
|
DISABLE_VIEW_THE_PARTICIPANT_LIST_PANELIST: string;
|
|
@@ -1091,6 +1116,10 @@ export declare const MEETING_INFO_FAILURE_REASON: {
|
|
|
1091
1116
|
WRONG_CAPTCHA: string;
|
|
1092
1117
|
POLICY: string;
|
|
1093
1118
|
WEBINAR_REGISTRATION: string;
|
|
1119
|
+
NEED_JOIN_WITH_WEBCAST: string;
|
|
1120
|
+
WEBINAR_NEED_REGISTRATIONID: string;
|
|
1121
|
+
NOT_REACH_JBH: string;
|
|
1122
|
+
JOIN_FORBIDDEN: string;
|
|
1094
1123
|
OTHER: string;
|
|
1095
1124
|
};
|
|
1096
1125
|
export declare const BNR_STATUS: {
|
|
@@ -1138,3 +1167,11 @@ export declare const DESTINATION_TYPE: {
|
|
|
1138
1167
|
readonly MEETING_UUID: "MEETING_UUID";
|
|
1139
1168
|
};
|
|
1140
1169
|
export type DESTINATION_TYPE = Enum<typeof DESTINATION_TYPE>;
|
|
1170
|
+
export declare const INITIAL_REGISTRATION_STATUS: {
|
|
1171
|
+
fetchWebexSite: boolean;
|
|
1172
|
+
getGeoHint: boolean;
|
|
1173
|
+
startReachability: boolean;
|
|
1174
|
+
deviceRegister: boolean;
|
|
1175
|
+
mercuryConnect: boolean;
|
|
1176
|
+
checkH264Support: boolean;
|
|
1177
|
+
};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -3,18 +3,18 @@ import CaptchaError from './common/errors/captcha-error';
|
|
|
3
3
|
import IntentToJoinError from './common/errors/intent-to-join';
|
|
4
4
|
import PasswordError from './common/errors/password-error';
|
|
5
5
|
import PermissionError from './common/errors/permission';
|
|
6
|
-
import
|
|
6
|
+
import JoinWebinarError from './common/errors/join-webinar-error';
|
|
7
7
|
import { ReclaimHostEmptyWrongKeyError, ReclaimHostIsHostAlreadyError, ReclaimHostNotAllowedError, ReclaimHostNotSupportedError } from './common/errors/reclaim-host-role-errors';
|
|
8
8
|
import Meeting from './meeting';
|
|
9
9
|
import MeetingInfoUtil from './meeting-info/utilv2';
|
|
10
10
|
import JoinMeetingError from './common/errors/join-meeting';
|
|
11
|
-
export {
|
|
11
|
+
export { LocalStream, LocalDisplayStream, LocalSystemAudioStream, LocalStreamEventNames, StreamEventNames, RemoteStreamEventNames, type ServerMuteReason, LocalMicrophoneStreamEventNames, LocalCameraStreamEventNames, LocalMicrophoneStream, LocalCameraStream, createMicrophoneStream, createCameraStream, createCameraAndMicrophoneStreams, createDisplayStream, createDisplayStreamWithAudio, createDisplayMedia, FacingMode, DisplaySurface, PresetCameraConstraints, type VideoContentHint, type StreamState, } from '@webex/media-helpers';
|
|
12
12
|
export default Meetings;
|
|
13
13
|
export * as CONSTANTS from './constants';
|
|
14
14
|
export * as REACTIONS from './reactions/reactions';
|
|
15
15
|
export * as sdkAnnotationTypes from './annotation/annotation.types';
|
|
16
16
|
export * as MeetingInfoV2 from './meeting-info/meeting-info-v2';
|
|
17
17
|
export { type Reaction } from './reactions/reactions.type';
|
|
18
|
-
export { CaptchaError, IntentToJoinError, JoinMeetingError, PasswordError, PermissionError, ReclaimHostIsHostAlreadyError, ReclaimHostNotAllowedError, ReclaimHostNotSupportedError, ReclaimHostEmptyWrongKeyError, Meeting, MeetingInfoUtil,
|
|
18
|
+
export { CaptchaError, IntentToJoinError, JoinMeetingError, PasswordError, PermissionError, ReclaimHostIsHostAlreadyError, ReclaimHostNotAllowedError, ReclaimHostNotSupportedError, ReclaimHostEmptyWrongKeyError, Meeting, MeetingInfoUtil, JoinWebinarError, };
|
|
19
19
|
export { RemoteMedia } from './multistream/remoteMedia';
|
|
20
20
|
export { default as TriggerProxy } from './common/events/trigger-proxy';
|
|
@@ -229,11 +229,12 @@ export default class LocusInfo extends EventsScope {
|
|
|
229
229
|
/**
|
|
230
230
|
* handles when the locus.mediaShares is updated
|
|
231
231
|
* @param {Object} mediaShares the locus.mediaShares property
|
|
232
|
+
* @param {boolean} forceUpdate force to update the mediaShares
|
|
232
233
|
* @returns {undefined}
|
|
233
234
|
* @memberof LocusInfo
|
|
234
235
|
* emits internal event locus_info_update_media_shares
|
|
235
236
|
*/
|
|
236
|
-
updateMediaShares(mediaShares: object): void;
|
|
237
|
+
updateMediaShares(mediaShares: object, forceUpdate?: boolean): void;
|
|
237
238
|
/**
|
|
238
239
|
* @param {String} participantsUrl
|
|
239
240
|
* @returns {undefined}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type Meeting from '.';
|
|
2
|
+
import SendSlotManager from '../multistream/sendSlotManager';
|
|
3
|
+
export declare const createBrbState: (meeting: Meeting, enabled: boolean) => BrbState;
|
|
4
|
+
/** The purpose of this class is to manage the local and remote brb state
|
|
5
|
+
* and make sure that the server state always matches the last requested state by the client.
|
|
6
|
+
*/
|
|
7
|
+
export declare class BrbState {
|
|
8
|
+
state: {
|
|
9
|
+
client: {
|
|
10
|
+
enabled: boolean;
|
|
11
|
+
};
|
|
12
|
+
server: {
|
|
13
|
+
enabled: boolean;
|
|
14
|
+
};
|
|
15
|
+
syncToServerInProgress: boolean;
|
|
16
|
+
};
|
|
17
|
+
meeting: Meeting;
|
|
18
|
+
/**
|
|
19
|
+
* Constructor
|
|
20
|
+
*
|
|
21
|
+
* @param {Meeting} meeting - the meeting object
|
|
22
|
+
* @param {boolean} enabled - whether the client audio/video is enabled at all
|
|
23
|
+
*/
|
|
24
|
+
constructor(meeting: Meeting, enabled: boolean);
|
|
25
|
+
/**
|
|
26
|
+
* Enables/disables brb
|
|
27
|
+
*
|
|
28
|
+
* @param {boolean} enabled
|
|
29
|
+
* @param {SendSlotManager} sendSlotManager
|
|
30
|
+
* @returns {Promise}
|
|
31
|
+
*/
|
|
32
|
+
enable(enabled: boolean, sendSlotManager: SendSlotManager): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Updates the server local and remote brb values so that they match the current client desired state.
|
|
35
|
+
*
|
|
36
|
+
* @param {SendSlotManager} sendSlotManager
|
|
37
|
+
* @returns {Promise}
|
|
38
|
+
*/
|
|
39
|
+
private applyClientStateToServer;
|
|
40
|
+
/**
|
|
41
|
+
* Send the local brb state to the server
|
|
42
|
+
*
|
|
43
|
+
* @param {SendSlotManager} sendSlotManager
|
|
44
|
+
* @returns {Promise}
|
|
45
|
+
*/
|
|
46
|
+
private sendLocalBrbStateToServer;
|
|
47
|
+
/**
|
|
48
|
+
* This method should be called whenever the server brb state is changed
|
|
49
|
+
*
|
|
50
|
+
* @param {Boolean} [enabled] true if user has brb enabled, false otherwise
|
|
51
|
+
* @returns {undefined}
|
|
52
|
+
*/
|
|
53
|
+
handleServerBrbUpdate(enabled?: boolean): void;
|
|
54
|
+
}
|
|
@@ -43,6 +43,7 @@ interface IInMeetingActions {
|
|
|
43
43
|
waitingForOthersToJoin?: boolean;
|
|
44
44
|
canSendReactions?: boolean;
|
|
45
45
|
canManageBreakout?: boolean;
|
|
46
|
+
canStartBreakout?: boolean;
|
|
46
47
|
canBroadcastMessageToBreakout?: boolean;
|
|
47
48
|
canAdmitLobbyToBreakout?: boolean;
|
|
48
49
|
isBreakoutPreassignmentsEnabled?: boolean;
|
|
@@ -137,6 +138,7 @@ export default class InMeetingActions implements IInMeetingActions {
|
|
|
137
138
|
waitingForOthersToJoin: any;
|
|
138
139
|
canSendReactions: any;
|
|
139
140
|
canManageBreakout: any;
|
|
141
|
+
canStartBreakout: any;
|
|
140
142
|
canBroadcastMessageToBreakout: any;
|
|
141
143
|
canAdmitLobbyToBreakout: any;
|
|
142
144
|
isBreakoutPreassignmentsEnabled: any;
|
|
@@ -19,6 +19,7 @@ import InMeetingActions from './in-meeting-actions';
|
|
|
19
19
|
import RecordingController from '../recording-controller';
|
|
20
20
|
import ControlsOptionsManager from '../controls-options-manager';
|
|
21
21
|
import { LocusMediaRequest } from './locusMediaRequest';
|
|
22
|
+
import { BrbState } from './brbState';
|
|
22
23
|
export type CaptionData = {
|
|
23
24
|
id: string;
|
|
24
25
|
isFinal: boolean;
|
|
@@ -449,6 +450,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
449
450
|
turnServerUsed: boolean;
|
|
450
451
|
areVoiceaEventsSetup: boolean;
|
|
451
452
|
isMoveToInProgress: boolean;
|
|
453
|
+
brbState: BrbState;
|
|
452
454
|
voiceaListenerCallbacks: object;
|
|
453
455
|
private addMediaData;
|
|
454
456
|
private sendSlotManager;
|
|
@@ -837,6 +839,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
837
839
|
authorizingLocusUrl: string;
|
|
838
840
|
mainLocusUrl: string;
|
|
839
841
|
}): any;
|
|
842
|
+
/**
|
|
843
|
+
* Manages be right back status updates for the current participant.
|
|
844
|
+
*
|
|
845
|
+
* @param {boolean} enabled - Indicates whether the user enabled brb or not.
|
|
846
|
+
* @returns {Promise<void>} resolves when the brb status is updated or does nothing if not in a multistream meeting.
|
|
847
|
+
* @throws {Error} - Throws an error if the request fails.
|
|
848
|
+
*/
|
|
849
|
+
beRightBack(enabled: boolean): Promise<void>;
|
|
840
850
|
/**
|
|
841
851
|
* Remove the member from the meeting, boot them
|
|
842
852
|
* @param {String} memberId
|
|
@@ -1046,11 +1056,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1046
1056
|
* Close the peer connections and remove them from the class.
|
|
1047
1057
|
* Cleanup any media connection related things.
|
|
1048
1058
|
*
|
|
1059
|
+
* @param {boolean} resetMuteStates whether to also reset the audio/video mute state information
|
|
1049
1060
|
* @returns {Promise}
|
|
1050
1061
|
* @public
|
|
1051
1062
|
* @memberof Meeting
|
|
1052
1063
|
*/
|
|
1053
|
-
closePeerConnections(): Promise<void>;
|
|
1064
|
+
closePeerConnections(resetMuteStates?: boolean): Promise<void>;
|
|
1054
1065
|
/**
|
|
1055
1066
|
* Unsets the peer connections on the class
|
|
1056
1067
|
* warning DO NOT CALL WITHOUT CLOSING PEER CONNECTIONS FIRST
|
|
@@ -1115,7 +1126,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1115
1126
|
* @param {Object} options - options to join with media
|
|
1116
1127
|
* @param {JoinOptions} [options.joinOptions] - see #join()
|
|
1117
1128
|
* @param {AddMediaOptions} [options.mediaOptions] - see #addMedia()
|
|
1118
|
-
* @returns {Promise} -- {join: see join(), media: see addMedia()}
|
|
1129
|
+
* @returns {Promise} -- {join: see join(), media: see addMedia(), multistreamEnabled: flag to indicate if we managed to join in multistream mode}
|
|
1119
1130
|
* @public
|
|
1120
1131
|
* @memberof Meeting
|
|
1121
1132
|
* @example
|
|
@@ -1337,16 +1348,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1337
1348
|
* @returns {void}
|
|
1338
1349
|
*/
|
|
1339
1350
|
private createStatsAnalyzer;
|
|
1340
|
-
/**
|
|
1341
|
-
* Handles device logging
|
|
1342
|
-
*
|
|
1343
|
-
* @private
|
|
1344
|
-
* @static
|
|
1345
|
-
* @param {boolean} isAudioEnabled
|
|
1346
|
-
* @param {boolean} isVideoEnabled
|
|
1347
|
-
* @returns {Promise<void>}
|
|
1348
|
-
*/
|
|
1349
|
-
private static handleDeviceLogging;
|
|
1350
1351
|
/**
|
|
1351
1352
|
* Returns a promise. This promise is created once the local sdp offer has been successfully created and is resolved
|
|
1352
1353
|
* once the remote sdp answer has been received.
|
|
@@ -1412,6 +1413,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1412
1413
|
* @returns {Promise<void>}
|
|
1413
1414
|
*/
|
|
1414
1415
|
private cleanUpOnAddMediaFailure;
|
|
1416
|
+
/**
|
|
1417
|
+
* Cleans up stats analyzer, peer connection and other things before
|
|
1418
|
+
* we can create a new transcoded media connection
|
|
1419
|
+
*
|
|
1420
|
+
* @private
|
|
1421
|
+
* @returns {Promise<void>}
|
|
1422
|
+
*/
|
|
1423
|
+
private downgradeFromMultistreamToTranscoded;
|
|
1415
1424
|
/**
|
|
1416
1425
|
* Sends stats report, closes peer connection and cleans up any media connection
|
|
1417
1426
|
* related things before trying to establish media connection again with turn server
|
|
@@ -73,4 +73,8 @@ export declare class LocusMediaRequest extends WebexPlugin {
|
|
|
73
73
|
send(request: Request): Promise<RequestResult>;
|
|
74
74
|
/** Returns true if a confluence on the server is already created */
|
|
75
75
|
isConfluenceCreated(): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* This method needs to be called when we downgrade from multistream to transcoded connection.
|
|
78
|
+
*/
|
|
79
|
+
downgradeFromMultistreamToTranscoded(): void;
|
|
76
80
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { StatelessWebexPlugin } from '@webex/webex-core';
|
|
2
|
-
import { SendReactionOptions, ToggleReactionsOptions } from './request.type';
|
|
2
|
+
import { SendReactionOptions, BrbOptions, ToggleReactionsOptions } from './request.type';
|
|
3
3
|
import { AnnotationInfo } from '../annotation/annotation.types';
|
|
4
4
|
import { ClientMediaPreferences } from '../reachability/reachability.types';
|
|
5
5
|
/**
|
|
@@ -292,4 +292,15 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
292
292
|
*/
|
|
293
293
|
toggleReactions({ enable, locusUrl, requestingParticipantId }: ToggleReactionsOptions): Promise<any>;
|
|
294
294
|
getLocusStatusByUrl(locusUrl: string): any;
|
|
295
|
+
/**
|
|
296
|
+
* Sends a request to set be right back status.
|
|
297
|
+
*
|
|
298
|
+
* @param {Object} options - The options for brb request.
|
|
299
|
+
* @param {boolean} options.enabled - Whether brb status is enabled.
|
|
300
|
+
* @param {string} options.locusUrl - The URL of the locus.
|
|
301
|
+
* @param {string} options.deviceUrl - The URL of the device.
|
|
302
|
+
* @param {string} options.selfId - The ID of the participant.
|
|
303
|
+
* @returns {Promise}
|
|
304
|
+
*/
|
|
305
|
+
setBrb({ enabled, locusUrl, deviceUrl, selfId }: BrbOptions): Promise<any>;
|
|
295
306
|
}
|
|
@@ -54,6 +54,7 @@ declare const MeetingUtil: {
|
|
|
54
54
|
canUserLowerSomeoneElsesHand: (displayHints: any) => any;
|
|
55
55
|
bothLeaveAndEndMeetingAvailable: (displayHints: any) => any;
|
|
56
56
|
canManageBreakout: (displayHints: any) => any;
|
|
57
|
+
canStartBreakout: (displayHints: any) => boolean;
|
|
57
58
|
canBroadcastMessageToBreakout: (displayHints: any, policies?: {}) => boolean;
|
|
58
59
|
isSuppressBreakoutSupport: (displayHints: any) => any;
|
|
59
60
|
canAdmitLobbyToBreakout: (displayHints: any) => boolean;
|
|
@@ -63,7 +64,6 @@ declare const MeetingUtil: {
|
|
|
63
64
|
unlockMeeting: (actions: any, request: any, locusUrl: any) => any;
|
|
64
65
|
handleAudioLogging: (audioStream?: LocalMicrophoneStream) => void;
|
|
65
66
|
handleVideoLogging: (videoStream?: LocalCameraStream) => void;
|
|
66
|
-
handleDeviceLogging: (devices?: any[]) => void;
|
|
67
67
|
endMeetingForAll: (meeting: any) => any;
|
|
68
68
|
canEnableClosedCaption: (displayHints: any) => any;
|
|
69
69
|
isSaveTranscriptsEnabled: (displayHints: any) => any;
|
|
@@ -65,9 +65,26 @@ export declare class MeetingInfoV2CaptchaError extends Error {
|
|
|
65
65
|
constructor(wbxAppApiErrorCode?: number, captchaInfo?: object, message?: string);
|
|
66
66
|
}
|
|
67
67
|
/**
|
|
68
|
-
* Error preventing join because of a webinar
|
|
68
|
+
* Error preventing join because of a webinar have some error
|
|
69
69
|
*/
|
|
70
|
-
export declare class
|
|
70
|
+
export declare class MeetingInfoV2JoinWebinarError extends Error {
|
|
71
|
+
meetingInfo: any;
|
|
72
|
+
sdkMessage: any;
|
|
73
|
+
wbxAppApiCode: any;
|
|
74
|
+
body: any;
|
|
75
|
+
/**
|
|
76
|
+
*
|
|
77
|
+
* @constructor
|
|
78
|
+
* @param {Number} [wbxAppApiErrorCode]
|
|
79
|
+
* @param {Object} [meetingInfo]
|
|
80
|
+
* @param {String} [message]
|
|
81
|
+
*/
|
|
82
|
+
constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Error preventing join because of a forbidden error
|
|
86
|
+
*/
|
|
87
|
+
export declare class MeetingInfoV2JoinForbiddenError extends Error {
|
|
71
88
|
meetingInfo: any;
|
|
72
89
|
sdkMessage: any;
|
|
73
90
|
wbxAppApiCode: any;
|
|
@@ -107,11 +124,17 @@ export default class MeetingInfoV2 {
|
|
|
107
124
|
*/
|
|
108
125
|
handlePolicyError: (err: any) => void;
|
|
109
126
|
/**
|
|
110
|
-
* Raises a
|
|
127
|
+
* Raises a handleJoinWebinarError for join webinar error codes
|
|
128
|
+
* @param {any} err the error from the request
|
|
129
|
+
* @returns {void}
|
|
130
|
+
*/
|
|
131
|
+
handleJoinWebinarError: (err: any) => void;
|
|
132
|
+
/**
|
|
133
|
+
* Raises a handleForbiddenError for join meeting forbidden error
|
|
111
134
|
* @param {any} err the error from the request
|
|
112
135
|
* @returns {void}
|
|
113
136
|
*/
|
|
114
|
-
|
|
137
|
+
handleForbiddenError: (err: any) => void;
|
|
115
138
|
/**
|
|
116
139
|
* Creates adhoc space meetings for a space by fetching the conversation infomation
|
|
117
140
|
* @param {String} conversationUrl conversationUrl to start adhoc meeting on
|
|
@@ -8,7 +8,7 @@ import 'webrtc-adapter';
|
|
|
8
8
|
import { DESTINATION_TYPE } from '../constants';
|
|
9
9
|
import { CallStateForMetrics } from '../meeting';
|
|
10
10
|
import Reachability from '../reachability';
|
|
11
|
-
import { INoiseReductionEffect, IVirtualBackgroundEffect } from './meetings.types';
|
|
11
|
+
import { INoiseReductionEffect, IVirtualBackgroundEffect, MeetingRegistrationStatus } from './meetings.types';
|
|
12
12
|
/**
|
|
13
13
|
* Meetings Ready Event
|
|
14
14
|
* Emitted when the meetings instance on webex is ready
|
|
@@ -71,6 +71,9 @@ export type BasicMeetingInformation = {
|
|
|
71
71
|
};
|
|
72
72
|
meetingInfo: any;
|
|
73
73
|
sessionCorrelationId: string;
|
|
74
|
+
roles: string[];
|
|
75
|
+
getCurUserType: () => string | null;
|
|
76
|
+
callStateForMetrics: CallStateForMetrics;
|
|
74
77
|
};
|
|
75
78
|
/**
|
|
76
79
|
* Maintain a cache of meetings and sync with services.
|
|
@@ -91,6 +94,7 @@ export default class Meetings extends WebexPlugin {
|
|
|
91
94
|
mediaHelpers: any;
|
|
92
95
|
breakoutLocusForHandleLater: any;
|
|
93
96
|
namespace: string;
|
|
97
|
+
registrationStatus: MeetingRegistrationStatus;
|
|
94
98
|
/**
|
|
95
99
|
* Initializes the Meetings Plugin
|
|
96
100
|
* @constructor
|
|
@@ -175,6 +179,13 @@ export default class Meetings extends WebexPlugin {
|
|
|
175
179
|
* @memberof Meetings
|
|
176
180
|
*/
|
|
177
181
|
private onReady;
|
|
182
|
+
/**
|
|
183
|
+
* API to change log upload interval. Setting the factor to 0 will disable periodic log uploads.
|
|
184
|
+
*
|
|
185
|
+
* @param {number} factor new factor value
|
|
186
|
+
* @returns {void}
|
|
187
|
+
*/
|
|
188
|
+
private _setLogUploadIntervalMultiplicationFactor;
|
|
178
189
|
/**
|
|
179
190
|
* API to toggle unified meetings
|
|
180
191
|
* @param {Boolean} changeState
|
|
@@ -216,6 +227,13 @@ export default class Meetings extends WebexPlugin {
|
|
|
216
227
|
* @returns {undefined}
|
|
217
228
|
*/
|
|
218
229
|
private _toggleIpv6BackendNativeSupport;
|
|
230
|
+
/**
|
|
231
|
+
* Executes a registration step and updates the registration status.
|
|
232
|
+
* @param {Function} step - The registration step to execute.
|
|
233
|
+
* @param {string} stepName - The name of the registration step.
|
|
234
|
+
* @returns {Promise} A promise that resolves when the step is completed.
|
|
235
|
+
*/
|
|
236
|
+
executeRegistrationStep(step: () => Promise<any>, stepName: string): Promise<void>;
|
|
219
237
|
/**
|
|
220
238
|
* Explicitly sets up the meetings plugin by registering
|
|
221
239
|
* the device, connecting to mercury, and listening for locus events.
|
|
@@ -11,3 +11,11 @@ export declare const MEETING_KEY: {
|
|
|
11
11
|
readonly CORRELATION_ID: "correlationId";
|
|
12
12
|
};
|
|
13
13
|
export type MEETING_KEY = Enum<typeof MEETING_KEY>;
|
|
14
|
+
export type MeetingRegistrationStatus = {
|
|
15
|
+
fetchWebexSite: boolean;
|
|
16
|
+
getGeoHint: boolean;
|
|
17
|
+
startReachability: boolean;
|
|
18
|
+
deviceRegister: boolean;
|
|
19
|
+
mercuryConnect: boolean;
|
|
20
|
+
checkH264Support: boolean;
|
|
21
|
+
};
|
|
@@ -67,8 +67,9 @@ declare const BEHAVIORAL_METRICS: {
|
|
|
67
67
|
ROAP_HTTP_RESPONSE_MISSING: string;
|
|
68
68
|
TURN_DISCOVERY_REQUIRES_OK: string;
|
|
69
69
|
REACHABILITY_COMPLETED: string;
|
|
70
|
-
|
|
70
|
+
JOIN_WEBINAR_ERROR: string;
|
|
71
71
|
GUEST_ENTERED_LOBBY: string;
|
|
72
72
|
GUEST_EXITED_LOBBY: string;
|
|
73
|
+
JOIN_FORBIDDEN_ERROR: string;
|
|
73
74
|
};
|
|
74
75
|
export { BEHAVIORAL_METRICS as default };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SendSlot, MediaType, LocalStream, MultistreamRoapMediaConnection, NamedMediaGroup } from '@webex/internal-media-core';
|
|
1
|
+
import { SendSlot, MediaType, LocalStream, MultistreamRoapMediaConnection, NamedMediaGroup, StreamState } from '@webex/internal-media-core';
|
|
2
2
|
export default class SendSlotManager {
|
|
3
3
|
private readonly slots;
|
|
4
4
|
private readonly LoggerProxy;
|
|
@@ -25,6 +25,13 @@ export default class SendSlotManager {
|
|
|
25
25
|
* @returns {void}
|
|
26
26
|
*/
|
|
27
27
|
setNamedMediaGroups(mediaType: MediaType, namedMediaGroups: NamedMediaGroup[]): void;
|
|
28
|
+
/**
|
|
29
|
+
* Sets the source state override for the given media type.
|
|
30
|
+
* @param {MediaType} mediaType - The type of media (must be MediaType.VideoMain to apply source state changes).
|
|
31
|
+
* @param {StreamState | null} state - The state to set or null to clear the override value.
|
|
32
|
+
* @returns {void}
|
|
33
|
+
*/
|
|
34
|
+
setSourceStateOverride(mediaType: MediaType, state: StreamState | null): void;
|
|
28
35
|
/**
|
|
29
36
|
* This method publishes the given stream to the sendSlot for the given mediaType
|
|
30
37
|
* @param {MediaType} mediaType MediaType of the sendSlot to which a stream needs to be published (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
|
|
@@ -99,6 +99,13 @@ export default class Reachability extends EventsScope {
|
|
|
99
99
|
* @memberof Reachability
|
|
100
100
|
*/
|
|
101
101
|
gatherReachabilityFallback(): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* Stops all reachability checks that are in progress
|
|
104
|
+
* @public
|
|
105
|
+
* @memberof Reachability
|
|
106
|
+
* @returns {void}
|
|
107
|
+
*/
|
|
108
|
+
stopReachability(): void;
|
|
102
109
|
/**
|
|
103
110
|
* Returns statistics about last reachability results. The returned value is an object
|
|
104
111
|
* with a flat list of properties so that it can be easily sent with metrics
|
|
@@ -201,9 +208,10 @@ export default class Reachability extends EventsScope {
|
|
|
201
208
|
/**
|
|
202
209
|
* Sends a metric with all the statistics about how long reachability took
|
|
203
210
|
*
|
|
211
|
+
* @param {boolean} aborted true if the reachability checks were aborted
|
|
204
212
|
* @returns {void}
|
|
205
213
|
*/
|
|
206
|
-
protected sendMetric(): Promise<void>;
|
|
214
|
+
protected sendMetric(aborted?: boolean): Promise<void>;
|
|
207
215
|
/**
|
|
208
216
|
* Starts all the timers used for various timeouts
|
|
209
217
|
*
|