@webex/plugin-meetings 3.8.0-next.6 → 3.8.0-next.60
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/common/errors/webex-errors.js +12 -2
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/constants.js +16 -121
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +2 -0
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/types.js.map +1 -1
- package/dist/controls-options-manager/util.js +52 -0
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.js +28 -10
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +20 -1
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/selfUtils.js +405 -418
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +8 -16
- package/dist/media/index.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +13 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +548 -288
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +0 -17
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.js +0 -2
- 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 +13 -2
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +359 -60
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meetings/index.js +91 -1
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/util.js +14 -0
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +10 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +3 -0
- package/dist/member/util.js.map +1 -1
- package/dist/members/index.js +23 -0
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +21 -0
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +15 -0
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +9 -0
- package/dist/metrics/constants.js.map +1 -1
- package/dist/reachability/clusterReachability.js +63 -27
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/index.js +112 -47
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/reachability.types.js +14 -0
- package/dist/reachability/reachability.types.js.map +1 -1
- package/dist/reachability/request.js +19 -3
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +2 -2
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/util.js +5 -5
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/turnDiscovery.js +45 -27
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/roap/types.js +17 -0
- package/dist/roap/types.js.map +1 -0
- package/dist/types/common/errors/webex-errors.d.ts +7 -1
- package/dist/types/config.d.ts +1 -0
- package/dist/types/constants.d.ts +11 -85
- package/dist/types/controls-options-manager/enums.d.ts +3 -1
- package/dist/types/controls-options-manager/types.d.ts +7 -1
- package/dist/types/locus-info/index.d.ts +1 -0
- package/dist/types/locus-info/selfUtils.d.ts +247 -1
- package/dist/types/meeting/in-meeting-actions.d.ts +12 -0
- package/dist/types/meeting/index.d.ts +54 -1
- package/dist/types/meeting/muteState.d.ts +0 -1
- 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 +3 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +80 -0
- package/dist/types/meetings/index.d.ts +38 -0
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/members/index.d.ts +8 -0
- package/dist/types/members/request.d.ts +19 -0
- package/dist/types/members/util.d.ts +13 -0
- package/dist/types/metrics/constants.d.ts +9 -0
- package/dist/types/reachability/clusterReachability.d.ts +15 -7
- package/dist/types/reachability/index.d.ts +10 -1
- package/dist/types/reachability/reachability.types.d.ts +5 -0
- package/dist/types/roap/index.d.ts +3 -2
- package/dist/types/roap/turnDiscovery.d.ts +5 -17
- package/dist/types/roap/types.d.ts +16 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +23 -23
- package/src/common/errors/webex-errors.ts +8 -1
- package/src/config.ts +1 -0
- package/src/constants.ts +18 -90
- package/src/controls-options-manager/enums.ts +2 -0
- package/src/controls-options-manager/types.ts +11 -1
- package/src/controls-options-manager/util.ts +62 -0
- package/src/locus-info/controlsUtils.ts +44 -14
- package/src/locus-info/index.ts +23 -1
- package/src/locus-info/selfUtils.ts +451 -447
- package/src/media/index.ts +11 -21
- package/src/meeting/in-meeting-actions.ts +24 -0
- package/src/meeting/index.ts +364 -92
- package/src/meeting/locusMediaRequest.ts +0 -18
- package/src/meeting/muteState.ts +0 -2
- package/src/meeting/request.ts +36 -1
- package/src/meeting/request.type.ts +7 -0
- package/src/meeting/util.ts +11 -2
- package/src/meeting-info/meeting-info-v2.ts +247 -6
- package/src/meetings/index.ts +107 -1
- package/src/meetings/util.ts +18 -0
- package/src/member/index.ts +11 -0
- package/src/member/util.ts +3 -0
- package/src/members/index.ts +25 -0
- package/src/members/request.ts +26 -0
- package/src/members/util.ts +16 -0
- package/src/metrics/constants.ts +9 -0
- package/src/reachability/clusterReachability.ts +73 -26
- package/src/reachability/index.ts +70 -1
- package/src/reachability/reachability.types.ts +6 -0
- package/src/reachability/request.ts +7 -0
- package/src/reconnection-manager/index.ts +2 -2
- package/src/recording-controller/util.ts +17 -13
- package/src/roap/index.ts +3 -7
- package/src/roap/turnDiscovery.ts +34 -39
- package/src/roap/types.ts +23 -0
- package/test/unit/spec/controls-options-manager/util.js +120 -0
- package/test/unit/spec/locus-info/controlsUtils.js +103 -9
- package/test/unit/spec/locus-info/index.js +28 -0
- package/test/unit/spec/media/index.ts +36 -16
- package/test/unit/spec/meeting/in-meeting-actions.ts +15 -4
- package/test/unit/spec/meeting/index.js +518 -34
- package/test/unit/spec/meeting/locusMediaRequest.ts +0 -30
- package/test/unit/spec/meeting/muteState.js +0 -2
- package/test/unit/spec/meeting/request.js +32 -1
- package/test/unit/spec/meeting/utils.js +119 -18
- package/test/unit/spec/meeting-info/meetinginfov2.js +443 -114
- package/test/unit/spec/meetings/index.js +120 -2
- package/test/unit/spec/member/index.js +7 -0
- package/test/unit/spec/member/util.js +24 -0
- package/test/unit/spec/members/index.js +103 -26
- package/test/unit/spec/members/request.js +45 -22
- package/test/unit/spec/members/utils.js +33 -0
- package/test/unit/spec/reachability/clusterReachability.ts +88 -56
- package/test/unit/spec/reachability/index.ts +101 -0
- package/test/unit/spec/reachability/request.js +47 -2
- package/test/unit/spec/reconnection-manager/index.js +4 -4
- package/test/unit/spec/roap/turnDiscovery.ts +110 -28
@@ -95,6 +95,12 @@ interface IInMeetingActions {
|
|
95
95
|
isPracticeSessionOff?: boolean;
|
96
96
|
canStartPracticeSession?: boolean;
|
97
97
|
canStopPracticeSession?: boolean;
|
98
|
+
requiresPostMeetingDataConsentPrompt?: boolean;
|
99
|
+
canEnableAnnotation?: boolean;
|
100
|
+
canDisableAnnotation?: boolean;
|
101
|
+
canEnableRemoteDesktopControl?: boolean;
|
102
|
+
canDisableRemoteDesktopControl?: boolean;
|
103
|
+
canMoveToLobby?: boolean;
|
98
104
|
}
|
99
105
|
/**
|
100
106
|
* @class InMeetingActions
|
@@ -190,6 +196,12 @@ export default class InMeetingActions implements IInMeetingActions {
|
|
190
196
|
isPracticeSessionOff: any;
|
191
197
|
canStartPracticeSession: any;
|
192
198
|
canStopPracticeSession: any;
|
199
|
+
requiresPostMeetingDataConsentPrompt: any;
|
200
|
+
canEnableAnnotation: any;
|
201
|
+
canDisableAnnotation: any;
|
202
|
+
canEnableRemoteDesktopControl: any;
|
203
|
+
canDisableRemoteDesktopControl: any;
|
204
|
+
canMoveToLobby: any;
|
193
205
|
/**
|
194
206
|
* Returns all meeting action options
|
195
207
|
* @returns {Object}
|
@@ -4,7 +4,8 @@ import { ClientEvent, ClientEventLeaveReason } from '@webex/internal-plugin-metr
|
|
4
4
|
import { ClientEvent as RawClientEvent } from '@webex/event-dictionary-ts';
|
5
5
|
import { MediaType, StatsAnalyzer, NetworkQualityMonitor } from '@webex/internal-media-core';
|
6
6
|
import { LocalStream, LocalCameraStream, LocalDisplayStream, LocalSystemAudioStream, LocalMicrophoneStream } from '@webex/media-helpers';
|
7
|
-
import Roap, { type
|
7
|
+
import Roap, { type TurnDiscoverySkipReason } from '../roap/index';
|
8
|
+
import { type TurnServerInfo } from '../roap/types';
|
8
9
|
import { type BundlePolicy } from '../media';
|
9
10
|
import MediaProperties from '../media/properties';
|
10
11
|
import ReconnectionManager from '../reconnection-manager';
|
@@ -71,6 +72,8 @@ export type CallStateForMetrics = {
|
|
71
72
|
sessionCorrelationId?: string;
|
72
73
|
joinTrigger?: string;
|
73
74
|
loginType?: string;
|
75
|
+
userNameInput?: string;
|
76
|
+
emailInput?: string;
|
74
77
|
};
|
75
78
|
export declare const MEDIA_UPDATE_TYPE: {
|
76
79
|
TRANSCODED_MEDIA_CONNECTION: string;
|
@@ -447,6 +450,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
447
450
|
allowMediaInLobby: boolean;
|
448
451
|
localShareInstanceId: string;
|
449
452
|
remoteShareInstanceId: string;
|
453
|
+
shareCAEventSentStatus: {
|
454
|
+
transmitStart: boolean;
|
455
|
+
transmitStop: boolean;
|
456
|
+
receiveStart: boolean;
|
457
|
+
receiveStop: boolean;
|
458
|
+
};
|
450
459
|
turnDiscoverySkippedReason: TurnDiscoverySkipReason;
|
451
460
|
turnServerUsed: boolean;
|
452
461
|
areVoiceaEventsSetup: boolean;
|
@@ -466,6 +475,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
466
475
|
private rtcMetrics?;
|
467
476
|
private uploadLogsTimer?;
|
468
477
|
private logUploadIntervalIndex;
|
478
|
+
private mediaServerIp;
|
469
479
|
/**
|
470
480
|
* @param {Object} attrs
|
471
481
|
* @param {Object} options
|
@@ -495,6 +505,26 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
495
505
|
* @param {string} correlationId
|
496
506
|
*/
|
497
507
|
set correlationId(correlationId: string);
|
508
|
+
/**
|
509
|
+
* Getter - Returns callStateForMetrics.userNameInput
|
510
|
+
* @returns {string}
|
511
|
+
*/
|
512
|
+
get userNameInput(): string;
|
513
|
+
/**
|
514
|
+
* Setter - sets callStateForMetrics.userNameInput
|
515
|
+
* @param {string} userNameInput
|
516
|
+
*/
|
517
|
+
set userNameInput(userNameInput: string);
|
518
|
+
/**
|
519
|
+
* Getter - Returns callStateForMetrics.emailInput
|
520
|
+
* @returns {string}
|
521
|
+
*/
|
522
|
+
get emailInput(): string;
|
523
|
+
/**
|
524
|
+
* Setter - sets callStateForMetrics.emailInput
|
525
|
+
* @param {string} emailInput
|
526
|
+
*/
|
527
|
+
set emailInput(emailInput: string);
|
498
528
|
/**
|
499
529
|
* Getter - Returns callStateForMetrics.sessionCorrelationId
|
500
530
|
* @returns {string}
|
@@ -511,6 +541,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
511
541
|
* @returns {string | undefined}
|
512
542
|
*/
|
513
543
|
get isoLocalClientMeetingJoinTime(): string | undefined;
|
544
|
+
/**
|
545
|
+
* Setter - sets isoLocalClientMeetingJoinTime
|
546
|
+
* This will be set once on meeting join, and not updated again
|
547
|
+
* this will always produce an ISO string
|
548
|
+
* If the iso string is invalid, it will fallback to the current system time
|
549
|
+
* @param {string | undefined} time
|
550
|
+
*/
|
551
|
+
set isoLocalClientMeetingJoinTime(time: string | undefined);
|
514
552
|
/**
|
515
553
|
* Set meeting info and trigger `MEETING_INFO_AVAILABLE` event
|
516
554
|
* @param {any} info
|
@@ -1851,6 +1889,15 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
1851
1889
|
* @memberof Meeting
|
1852
1890
|
*/
|
1853
1891
|
toggleReactions(enable: boolean): Promise<any>;
|
1892
|
+
/**
|
1893
|
+
* Method to set post meeting data consent.
|
1894
|
+
*
|
1895
|
+
* @param {boolean} accept - whether consent accepted or declined
|
1896
|
+
* @returns {Promise}
|
1897
|
+
* @public
|
1898
|
+
* @memberof Meeting
|
1899
|
+
*/
|
1900
|
+
setPostMeetingDataConsent(accept: boolean): Promise<any>;
|
1854
1901
|
/**
|
1855
1902
|
* Throws if we don't have a media connection created
|
1856
1903
|
*
|
@@ -1929,5 +1976,11 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
1929
1976
|
* @returns {Promise<void>}
|
1930
1977
|
*/
|
1931
1978
|
checkAndRefreshPermissionToken(threshold: number, reason: string): Promise<void>;
|
1979
|
+
/**
|
1980
|
+
* Gets the media reachability metrics
|
1981
|
+
*
|
1982
|
+
* @returns {Promise<MediaReachabilityMetrics>}
|
1983
|
+
*/
|
1984
|
+
private getMediaReachabilityMetricFields;
|
1932
1985
|
}
|
1933
1986
|
export {};
|
@@ -69,7 +69,6 @@ export declare class MuteState {
|
|
69
69
|
* @public
|
70
70
|
* @memberof MuteState
|
71
71
|
* @param {Object} [meeting] the meeting object
|
72
|
-
* @param {Boolean} [mute] true for muting, false for unmuting request
|
73
72
|
* @returns {void}
|
74
73
|
*/
|
75
74
|
handleLocalStreamMuteStateChange(meeting?: any): void;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { StatelessWebexPlugin } from '@webex/webex-core';
|
2
|
-
import { SendReactionOptions, BrbOptions, ToggleReactionsOptions } from './request.type';
|
2
|
+
import { SendReactionOptions, BrbOptions, ToggleReactionsOptions, PostMeetingDataConsentOptions } from './request.type';
|
3
3
|
import { AnnotationInfo } from '../annotation/annotation.types';
|
4
4
|
import { ClientMediaPreferences } from '../reachability/reachability.types';
|
5
5
|
/**
|
@@ -303,4 +303,15 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
303
303
|
* @returns {Promise}
|
304
304
|
*/
|
305
305
|
setBrb({ enabled, locusUrl, deviceUrl, selfId }: BrbOptions): Promise<any>;
|
306
|
+
/**
|
307
|
+
* Sends a request to set post meeting data consent.
|
308
|
+
*
|
309
|
+
* @param {Object} options - The options for post meeting data consent request.
|
310
|
+
* @param {boolean} options.consent - Whether accepted or declined.
|
311
|
+
* @param {string} options.locusUrl - The URL of the locus.
|
312
|
+
* @param {string} options.deviceUrl - The URL of the device.
|
313
|
+
* @param {string} options.selfId - The ID of the participant.
|
314
|
+
* @returns {Promise}
|
315
|
+
*/
|
316
|
+
setPostMeetingDataConsent({ postMeetingDataConsent, locusUrl, deviceUrl, selfId, }: PostMeetingDataConsentOptions): Promise<any>;
|
306
317
|
}
|
@@ -80,8 +80,10 @@ declare const MeetingUtil: {
|
|
80
80
|
waitingForOthersToJoin: (displayHints: any) => any;
|
81
81
|
canSendReactions: (originalValue: any, displayHints: any) => any;
|
82
82
|
canUserRenameSelfAndObserved: (displayHints: any) => any;
|
83
|
+
requiresPostMeetingDataConsentPrompt: (displayHints: any) => any;
|
83
84
|
canUserRenameOthers: (displayHints: any) => any;
|
84
|
-
canShareWhiteBoard: (displayHints: any) =>
|
85
|
+
canShareWhiteBoard: (displayHints: any, policies?: {}) => boolean;
|
86
|
+
canMoveToLobby: (displayHints: any) => any;
|
85
87
|
/**
|
86
88
|
* Adds the current locus sequence information to a request body
|
87
89
|
* @param {Object} meeting The meeting object
|
@@ -99,6 +99,52 @@ export declare class MeetingInfoV2JoinForbiddenError extends Error {
|
|
99
99
|
*/
|
100
100
|
constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string);
|
101
101
|
}
|
102
|
+
/**
|
103
|
+
* Error fetching static link for a conversation when it does not exist
|
104
|
+
*/
|
105
|
+
export declare class MeetingInfoV2StaticLinkDoesNotExistError extends Error {
|
106
|
+
sdkMessage: any;
|
107
|
+
wbxAppApiCode: any;
|
108
|
+
body: any;
|
109
|
+
/**
|
110
|
+
*
|
111
|
+
* @constructor
|
112
|
+
* @param {Number} [wbxAppApiErrorCode]
|
113
|
+
* @param {String} [message]
|
114
|
+
*/
|
115
|
+
constructor(wbxAppApiErrorCode?: number, message?: string);
|
116
|
+
}
|
117
|
+
/**
|
118
|
+
* Error enabling/disabling static meeting link
|
119
|
+
*/
|
120
|
+
export declare class MeetingInfoV2MeetingIsInProgressError extends Error {
|
121
|
+
sdkMessage: any;
|
122
|
+
wbxAppApiCode: any;
|
123
|
+
body: any;
|
124
|
+
/**
|
125
|
+
*
|
126
|
+
* @constructor
|
127
|
+
* @param {Number} [wbxAppApiErrorCode]
|
128
|
+
* @param {String} [message]
|
129
|
+
* @param {Boolean} [enable]
|
130
|
+
*/
|
131
|
+
constructor(wbxAppApiErrorCode?: number, message?: string, enable?: boolean);
|
132
|
+
}
|
133
|
+
/**
|
134
|
+
* Error enabling/disabling static meeting link
|
135
|
+
*/
|
136
|
+
export declare class MeetingInfoV2StaticMeetingLinkAlreadyExists extends Error {
|
137
|
+
sdkMessage: any;
|
138
|
+
wbxAppApiCode: any;
|
139
|
+
body: any;
|
140
|
+
/**
|
141
|
+
*
|
142
|
+
* @constructor
|
143
|
+
* @param {Number} [wbxAppApiErrorCode]
|
144
|
+
* @param {String} [message]
|
145
|
+
*/
|
146
|
+
constructor(wbxAppApiErrorCode?: number, message?: string);
|
147
|
+
}
|
102
148
|
/**
|
103
149
|
* @class MeetingInfo
|
104
150
|
*/
|
@@ -136,6 +182,16 @@ export default class MeetingInfoV2 {
|
|
136
182
|
* @returns {void}
|
137
183
|
*/
|
138
184
|
handleForbiddenError: (err: any) => void;
|
185
|
+
/**
|
186
|
+
* helper function to either create an adhoc space meeting or enable static meeting link
|
187
|
+
* @param {String} conversationUrl conversationUrl to start adhoc meeting on
|
188
|
+
* @param {String} installedOrgID org ID of user's machine
|
189
|
+
* @param {Boolean} enableStaticMeetingLink whether or not to enable static meeting link
|
190
|
+
* @returns {Promise} returns a meeting info object
|
191
|
+
* @public
|
192
|
+
* @memberof MeetingInfo
|
193
|
+
*/
|
194
|
+
createAdhocSpaceMeetingOrEnableStaticMeetingLink(conversationUrl: string, installedOrgID?: string, enableStaticMeetingLink?: boolean): Promise<any>;
|
139
195
|
/**
|
140
196
|
* Creates adhoc space meetings for a space by fetching the conversation infomation
|
141
197
|
* @param {String} conversationUrl conversationUrl to start adhoc meeting on
|
@@ -145,6 +201,30 @@ export default class MeetingInfoV2 {
|
|
145
201
|
* @memberof MeetingInfo
|
146
202
|
*/
|
147
203
|
createAdhocSpaceMeeting(conversationUrl: string, installedOrgID?: string): Promise<any>;
|
204
|
+
/**
|
205
|
+
* Fetches details for static meeting link
|
206
|
+
* @param {String} conversationUrl conversationUrl that's required to find static meeting link if it exists
|
207
|
+
* @returns {Promise} returns a Promise
|
208
|
+
* @public
|
209
|
+
* @memberof MeetingInfo
|
210
|
+
*/
|
211
|
+
fetchStaticMeetingLink(conversationUrl: string): Promise<any>;
|
212
|
+
/**
|
213
|
+
* Enables static meeting link
|
214
|
+
* @param {String} conversationUrl conversationUrl that's required to enable static meeting link
|
215
|
+
* @returns {Promise} returns a Promise
|
216
|
+
* @public
|
217
|
+
* @memberof MeetingInfo
|
218
|
+
*/
|
219
|
+
enableStaticMeetingLink(conversationUrl: string): Promise<any>;
|
220
|
+
/**
|
221
|
+
* Disables static meeting link for given conversation url
|
222
|
+
* @param {String} conversationUrl conversationUrl that's required to disable static meeting link if it exists
|
223
|
+
* @returns {Promise} returns a Promise
|
224
|
+
* @public
|
225
|
+
* @memberof MeetingInfo
|
226
|
+
*/
|
227
|
+
disableStaticMeetingLink(conversationUrl: string): Promise<any>;
|
148
228
|
/**
|
149
229
|
* Fetches meeting info from the server
|
150
230
|
* @param {String} destination one of many different types of destinations to look up info for
|
@@ -227,6 +227,15 @@ export default class Meetings extends WebexPlugin {
|
|
227
227
|
* @returns {undefined}
|
228
228
|
*/
|
229
229
|
private _toggleIpv6BackendNativeSupport;
|
230
|
+
/**
|
231
|
+
* API to toggle usage of audio main DTX, needs to be called before webex.meetings.register()
|
232
|
+
*
|
233
|
+
* @param {Boolean} newValue
|
234
|
+
* @private
|
235
|
+
* @memberof Meetings
|
236
|
+
* @returns {undefined}
|
237
|
+
*/
|
238
|
+
private _toggleDisableAudioMainDtx;
|
230
239
|
/**
|
231
240
|
* Executes a registration step and updates the registration status.
|
232
241
|
* @param {Function} step - The registration step to execute.
|
@@ -348,6 +357,15 @@ export default class Meetings extends WebexPlugin {
|
|
348
357
|
* @memberof Meetings
|
349
358
|
*/
|
350
359
|
private destroy;
|
360
|
+
/**
|
361
|
+
* Fetch static meeting link for given conversation url.
|
362
|
+
*
|
363
|
+
* @param {string} conversationUrl - url for conversation
|
364
|
+
* @returns {Promise}
|
365
|
+
* @public
|
366
|
+
* @memberof Meetings
|
367
|
+
*/
|
368
|
+
fetchStaticMeetingLink(conversationUrl: string): Promise<any>;
|
351
369
|
/**
|
352
370
|
* Create a meeting or return an existing meeting.
|
353
371
|
*
|
@@ -368,6 +386,26 @@ export default class Meetings extends WebexPlugin {
|
|
368
386
|
* @memberof Meetings
|
369
387
|
*/
|
370
388
|
create(destination: string, type?: DESTINATION_TYPE, useRandomDelayForInfo?: boolean, infoExtraParams?: {}, correlationId?: string, failOnMissingMeetingInfo?: boolean, callStateForMetrics?: CallStateForMetrics, meetingInfo?: any, meetingLookupUrl?: any, sessionCorrelationId?: string): any;
|
389
|
+
/**
|
390
|
+
* Enable static meeting links for given conversation url.
|
391
|
+
*
|
392
|
+
*
|
393
|
+
* @param {string} conversationUrl - url for conversation
|
394
|
+
* @returns {Promise}
|
395
|
+
* @public
|
396
|
+
* @memberof Meetings
|
397
|
+
*/
|
398
|
+
enableStaticMeetingLink(conversationUrl: string): Promise<any>;
|
399
|
+
/**
|
400
|
+
* Disable static meeting links for given conversation url.
|
401
|
+
*
|
402
|
+
*
|
403
|
+
* @param {string} conversationUrl - url for conversation
|
404
|
+
* @returns {Promise}
|
405
|
+
* @public
|
406
|
+
* @memberof Meetings
|
407
|
+
*/
|
408
|
+
disableStaticMeetingLink(conversationUrl: string): Promise<any>;
|
371
409
|
/**
|
372
410
|
* Create meeting
|
373
411
|
*
|
@@ -290,6 +290,14 @@ export default class Members extends StatelessWebexPlugin {
|
|
290
290
|
* @memberof Members
|
291
291
|
*/
|
292
292
|
assignRoles(memberId: string, roles: Array<ServerRoleShape>): any;
|
293
|
+
/**
|
294
|
+
* Moves a meeting member into the lobby.
|
295
|
+
* @param {String} memberId -- The ID of the member to move.
|
296
|
+
* @returns {Promise} -- Resolves with the lobby‐move response.
|
297
|
+
* @public
|
298
|
+
* @memberof Members
|
299
|
+
*/
|
300
|
+
moveToLobby(memberId: string): any;
|
293
301
|
/**
|
294
302
|
* Raise or lower the hand of a member in a meeting
|
295
303
|
* @param {String} memberId
|
@@ -53,6 +53,25 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
53
53
|
* @returns {Promise}
|
54
54
|
*/
|
55
55
|
assignRolesMember(options: any): Promise<any>;
|
56
|
+
/**
|
57
|
+
* Sends a request to move a meeting member into the lobby.
|
58
|
+
* *
|
59
|
+
* @param {Object} options - Request options.
|
60
|
+
* @param {string} options.locusUrl - The locus URL for the meeting.
|
61
|
+
* @param {string} options.memberId - The ID of the member to move.
|
62
|
+
* @param {Object} body - The request payload.
|
63
|
+
* @param {Object} body.moveToLobby - Container for move‐to‐lobby data.
|
64
|
+
* @param {string[]} body.moveToLobby.participantIds - Array of participant IDs to move.
|
65
|
+
* @returns {Promise} - Resolves with the locus‐delta response.
|
66
|
+
*/
|
67
|
+
moveToLobbyMember(options: {
|
68
|
+
locusUrl: string;
|
69
|
+
memberId: string;
|
70
|
+
}, body: {
|
71
|
+
moveToLobby: {
|
72
|
+
participantIds: string[];
|
73
|
+
};
|
74
|
+
}): Promise<any>;
|
56
75
|
/**
|
57
76
|
* Sends a request to raise or lower a member's hand
|
58
77
|
* @param {Object} options
|
@@ -124,6 +124,19 @@ declare const MembersUtil: {
|
|
124
124
|
};
|
125
125
|
};
|
126
126
|
};
|
127
|
+
getMoveMemberToLobbyRequestBody: (memberId: string) => {
|
128
|
+
moveToLobby: {
|
129
|
+
participantIds: string[];
|
130
|
+
};
|
131
|
+
};
|
132
|
+
getMoveMemberToLobbyRequestParams: (options: {
|
133
|
+
memberId: string;
|
134
|
+
locusUrl: string;
|
135
|
+
}, body: any) => {
|
136
|
+
method: string;
|
137
|
+
uri: string;
|
138
|
+
body: any;
|
139
|
+
};
|
127
140
|
/**
|
128
141
|
* @param {ServerRoleShape} role
|
129
142
|
* @returns {ServerRoleShape} the role shape to be added to the body
|
@@ -45,10 +45,19 @@ declare const BEHAVIORAL_METRICS: {
|
|
45
45
|
UPLOAD_LOGS_FAILURE: string;
|
46
46
|
UPLOAD_LOGS_SUCCESS: string;
|
47
47
|
RECEIVE_TRANSCRIPTION_FAILURE: string;
|
48
|
+
MEETING_IS_IN_PROGRESS_ERROR: string;
|
49
|
+
STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR: string;
|
48
50
|
FETCH_MEETING_INFO_V1_SUCCESS: string;
|
49
51
|
FETCH_MEETING_INFO_V1_FAILURE: string;
|
52
|
+
ENABLE_STATIC_METTING_LINK_SUCCESS: string;
|
53
|
+
ENABLE_STATIC_METTING_LINK_FAILURE: string;
|
54
|
+
DISABLE_STATIC_MEETING_LINK_SUCCESS: string;
|
55
|
+
DISABLE_STATIC_MEETING_LINK_FAILURE: string;
|
50
56
|
ADHOC_MEETING_SUCCESS: string;
|
51
57
|
ADHOC_MEETING_FAILURE: string;
|
58
|
+
FETCH_STATIC_MEETING_LINK_SUCCESS: string;
|
59
|
+
FETCH_STATIC_MEETING_LINK_FAILURE: string;
|
60
|
+
MEETING_LINK_DOES_NOT_EXIST_ERROR: string;
|
52
61
|
VERIFY_PASSWORD_SUCCESS: string;
|
53
62
|
VERIFY_PASSWORD_ERROR: string;
|
54
63
|
VERIFY_CAPTCHA_ERROR: string;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { ClusterNode } from './request';
|
2
2
|
import EventsScope from '../common/events/events-scope';
|
3
3
|
import { Enum } from '../constants';
|
4
|
-
import { ClusterReachabilityResult } from './reachability.types';
|
4
|
+
import { ClusterReachabilityResult, NatType } from './reachability.types';
|
5
5
|
export type ResultEventData = {
|
6
6
|
protocol: 'udp' | 'tcp' | 'xtls';
|
7
7
|
result: 'reachable' | 'unreachable' | 'untested';
|
@@ -12,9 +12,13 @@ export type ClientMediaIpsUpdatedEventData = {
|
|
12
12
|
protocol: 'udp' | 'tcp' | 'xtls';
|
13
13
|
clientMediaIPs: string[];
|
14
14
|
};
|
15
|
+
export type NatTypeUpdatedEventData = {
|
16
|
+
natType: NatType;
|
17
|
+
};
|
15
18
|
export declare const Events: {
|
16
19
|
readonly resultReady: "resultReady";
|
17
20
|
readonly clientMediaIpsUpdated: "clientMediaIpsUpdated";
|
21
|
+
readonly natTypeUpdated: "natTypeUpdated";
|
18
22
|
};
|
19
23
|
export type Events = Enum<typeof Events>;
|
20
24
|
/**
|
@@ -29,8 +33,10 @@ export declare class ClusterReachability extends EventsScope {
|
|
29
33
|
private pc?;
|
30
34
|
private defer;
|
31
35
|
private startTimestamp;
|
36
|
+
private srflxIceCandidates;
|
32
37
|
readonly isVideoMesh: boolean;
|
33
38
|
readonly name: any;
|
39
|
+
readonly reachedSubnets: Set<string>;
|
34
40
|
/**
|
35
41
|
* Constructor for ClusterReachability
|
36
42
|
* @param {string} name cluster name
|
@@ -89,12 +95,6 @@ export declare class ClusterReachability extends EventsScope {
|
|
89
95
|
* @returns {void}
|
90
96
|
*/
|
91
97
|
private registerIceGatheringStateChangeListener;
|
92
|
-
/**
|
93
|
-
* Checks if we have the results for all the protocols (UDP and TCP)
|
94
|
-
*
|
95
|
-
* @returns {boolean} true if we have all results, false otherwise
|
96
|
-
*/
|
97
|
-
private haveWeGotAllResults;
|
98
98
|
/**
|
99
99
|
* Saves the latency in the result for the given protocol and marks it as reachable,
|
100
100
|
* emits the "resultReady" event if this is the first result for that protocol,
|
@@ -104,9 +104,17 @@ export declare class ClusterReachability extends EventsScope {
|
|
104
104
|
* @param {string} protocol
|
105
105
|
* @param {number} latency
|
106
106
|
* @param {string|null} [publicIp]
|
107
|
+
* @param {string|null} [serverIp]
|
107
108
|
* @returns {void}
|
108
109
|
*/
|
109
110
|
private saveResult;
|
111
|
+
/**
|
112
|
+
* Determines NAT Type.
|
113
|
+
*
|
114
|
+
* @param {RTCIceCandidate} candidate
|
115
|
+
* @returns {void}
|
116
|
+
*/
|
117
|
+
private determineNatType;
|
110
118
|
/**
|
111
119
|
* Registers a listener for the icecandidate event
|
112
120
|
*
|
@@ -4,7 +4,7 @@
|
|
4
4
|
import { Defer } from '@webex/common';
|
5
5
|
import { IP_VERSION } from '../constants';
|
6
6
|
import ReachabilityRequest, { ClusterList } from './request';
|
7
|
-
import { ClusterReachabilityResult, ClientMediaPreferences, ReachabilityMetrics, ReachabilityReportV0, ReachabilityReportV1, ReachabilityResults, ReachabilityResultsForBackend, GetClustersTrigger } from './reachability.types';
|
7
|
+
import { ClusterReachabilityResult, ClientMediaPreferences, ReachabilityMetrics, ReachabilityReportV0, ReachabilityReportV1, ReachabilityResults, ReachabilityResultsForBackend, GetClustersTrigger, NatType } from './reachability.types';
|
8
8
|
import { ClusterReachability } from './clusterReachability';
|
9
9
|
import EventsScope from '../common/events/events-scope';
|
10
10
|
/**
|
@@ -46,6 +46,7 @@ export default class Reachability extends EventsScope {
|
|
46
46
|
};
|
47
47
|
startTime: any;
|
48
48
|
totalDuration: any;
|
49
|
+
natType: NatType;
|
49
50
|
protected lastTrigger?: string;
|
50
51
|
/**
|
51
52
|
* Creates an instance of Reachability.
|
@@ -65,6 +66,14 @@ export default class Reachability extends EventsScope {
|
|
65
66
|
clusters: ClusterList;
|
66
67
|
joinCookie: any;
|
67
68
|
}>;
|
69
|
+
/**
|
70
|
+
* Checks if the given subnet is reachable
|
71
|
+
* @param {string} mediaServerIp - media server ip
|
72
|
+
* @returns {boolean | null} true if reachable, false if not reachable, null if mediaServerIp is not provided
|
73
|
+
* @public
|
74
|
+
* @memberof Reachability
|
75
|
+
*/
|
76
|
+
isSubnetReachable(mediaServerIp?: string): boolean | null;
|
68
77
|
/**
|
69
78
|
* Gets a list of media clusters from the backend and performs reachability checks on all the clusters
|
70
79
|
* @param {string} trigger - explains the reason for starting reachability
|
@@ -4,6 +4,10 @@ export type TransportResult = {
|
|
4
4
|
latencyInMilliseconds?: number;
|
5
5
|
clientMediaIPs?: string[];
|
6
6
|
};
|
7
|
+
export declare enum NatType {
|
8
|
+
Unknown = "unknown",
|
9
|
+
SymmetricNat = "symmetric-nat"
|
10
|
+
}
|
7
11
|
export type ClusterReachabilityResult = {
|
8
12
|
udp: TransportResult;
|
9
13
|
tcp: TransportResult;
|
@@ -22,6 +26,7 @@ export type ReachabilityMetrics = {
|
|
22
26
|
reachability_vmn_tcp_failed: number;
|
23
27
|
reachability_vmn_xtls_success: number;
|
24
28
|
reachability_vmn_xtls_failed: number;
|
29
|
+
natType: NatType;
|
25
30
|
};
|
26
31
|
/**
|
27
32
|
* This is the type that matches what backend expects us to send to them. It is a bit weird, because
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import { StatelessWebexPlugin } from '@webex/webex-core';
|
2
|
-
import TurnDiscovery
|
2
|
+
import TurnDiscovery from './turnDiscovery';
|
3
|
+
import { TurnDiscoveryResult } from './types';
|
3
4
|
import Meeting from '../meeting';
|
4
|
-
export { type TurnDiscoveryResult, type TurnServerInfo, type TurnDiscoverySkipReason
|
5
|
+
export { type TurnDiscoveryResult, type TurnServerInfo, type TurnDiscoverySkipReason } from './types';
|
5
6
|
/**
|
6
7
|
* Roap options
|
7
8
|
* @typedef {Object} RoapOptions
|
@@ -1,21 +1,6 @@
|
|
1
|
-
import { Enum } from '../constants';
|
2
1
|
import RoapRequest from './request';
|
3
2
|
import Meeting from '../meeting';
|
4
|
-
|
5
|
-
readonly missingHttpResponse: "missing http response";
|
6
|
-
readonly reachability: "reachability";
|
7
|
-
readonly alreadyInProgress: "already in progress";
|
8
|
-
};
|
9
|
-
export type TurnDiscoverySkipReason = Enum<typeof TurnDiscoverySkipReason> | string | undefined;
|
10
|
-
export type TurnServerInfo = {
|
11
|
-
url: string;
|
12
|
-
username: string;
|
13
|
-
password: string;
|
14
|
-
};
|
15
|
-
export type TurnDiscoveryResult = {
|
16
|
-
turnServerInfo?: TurnServerInfo;
|
17
|
-
turnDiscoverySkippedReason: TurnDiscoverySkipReason;
|
18
|
-
};
|
3
|
+
import { TurnDiscoverySkipReason, TurnDiscoveryResult } from './types';
|
19
4
|
/**
|
20
5
|
* Handles the process of finding out TURN server information from Linus.
|
21
6
|
* This is achieved by sending a TURN_DISCOVERY_REQUEST.
|
@@ -25,6 +10,10 @@ export default class TurnDiscovery {
|
|
25
10
|
private defer?;
|
26
11
|
private turnInfo;
|
27
12
|
private responseTimer?;
|
13
|
+
/** Resets the turnInfo structure to the defaults
|
14
|
+
* @returns {void}
|
15
|
+
*/
|
16
|
+
private resetTurnInfo;
|
28
17
|
/**
|
29
18
|
* Constructor
|
30
19
|
*
|
@@ -152,4 +141,3 @@ export default class TurnDiscovery {
|
|
152
141
|
*/
|
153
142
|
doTurnDiscovery(meeting: Meeting, isReconnecting?: boolean, isForced?: boolean): Promise<TurnDiscoveryResult>;
|
154
143
|
}
|
155
|
-
export {};
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { Enum } from '../constants';
|
2
|
+
export declare const TurnDiscoverySkipReason: {
|
3
|
+
readonly missingHttpResponse: "missing http response";
|
4
|
+
readonly reachability: "reachability";
|
5
|
+
readonly alreadyInProgress: "already in progress";
|
6
|
+
};
|
7
|
+
export type TurnDiscoverySkipReason = Enum<typeof TurnDiscoverySkipReason> | string | undefined;
|
8
|
+
export type TurnServerInfo = {
|
9
|
+
urls: string[];
|
10
|
+
username: string;
|
11
|
+
password: string;
|
12
|
+
};
|
13
|
+
export type TurnDiscoveryResult = {
|
14
|
+
turnServerInfo?: TurnServerInfo;
|
15
|
+
turnDiscoverySkippedReason: TurnDiscoverySkipReason;
|
16
|
+
};
|
package/dist/webinar/index.js
CHANGED