@webex/plugin-meetings 3.8.0-web-workers-keepalive.1 → 3.8.1-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +70 -6
- package/dist/breakouts/index.js.map +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 +4 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +22 -123
- 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 +30 -10
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +83 -12
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/selfUtils.js +432 -418
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +17 -17
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +94 -6
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/brbState.js +9 -2
- package/dist/meeting/brbState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +17 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +568 -328
- 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 +4 -4
- 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 +9 -1
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +19 -13
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +5 -1
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/index.js +76 -0
- 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 +45 -9
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +3 -0
- package/dist/member/types.js.map +1 -1
- package/dist/member/util.js +335 -356
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +137 -29
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +38 -0
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +36 -1
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +1 -0
- package/dist/metrics/constants.js.map +1 -1
- package/dist/reachability/clusterReachability.js +23 -31
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/index.js +42 -2
- package/dist/reachability/index.js.map +1 -1
- package/dist/reconnection-manager/index.js +2 -2
- package/dist/reconnection-manager/index.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 +2 -0
- package/dist/types/constants.d.ts +15 -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 +3 -3
- package/dist/types/locus-info/selfUtils.d.ts +216 -1
- package/dist/types/media/properties.d.ts +15 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +16 -0
- package/dist/types/meeting/index.d.ts +35 -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 +2 -1
- package/dist/types/meetings/index.d.ts +28 -0
- package/dist/types/member/index.d.ts +20 -6
- package/dist/types/member/types.d.ts +73 -14
- package/dist/types/member/util.d.ts +156 -1
- package/dist/types/members/collection.d.ts +6 -5
- package/dist/types/members/index.d.ts +32 -43
- package/dist/types/members/request.d.ts +26 -0
- package/dist/types/members/util.d.ts +27 -0
- package/dist/types/metrics/constants.d.ts +1 -0
- package/dist/types/reachability/clusterReachability.d.ts +2 -6
- package/dist/types/reachability/index.d.ts +8 -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 +24 -23
- package/src/breakouts/index.ts +69 -0
- package/src/common/errors/webex-errors.ts +8 -1
- package/src/config.ts +2 -0
- package/src/constants.ts +23 -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 +48 -12
- package/src/locus-info/index.ts +88 -13
- package/src/locus-info/selfUtils.ts +496 -442
- package/src/media/index.ts +23 -21
- package/src/media/properties.ts +96 -0
- package/src/meeting/brbState.ts +11 -2
- package/src/meeting/in-meeting-actions.ts +32 -0
- package/src/meeting/index.ts +356 -87
- package/src/meeting/locusMediaRequest.ts +0 -18
- package/src/meeting/muteState.ts +4 -4
- package/src/meeting/request.ts +36 -1
- package/src/meeting/request.type.ts +7 -0
- package/src/meeting/util.ts +9 -1
- package/src/meeting-info/meeting-info-v2.ts +7 -2
- package/src/meeting-info/utilv2.ts +5 -0
- package/src/meetings/index.ts +76 -0
- package/src/meetings/util.ts +18 -0
- package/src/member/index.ts +57 -22
- package/src/member/types.ts +82 -16
- package/src/member/util.ts +357 -353
- package/src/members/collection.ts +4 -3
- package/src/members/index.ts +137 -18
- package/src/members/request.ts +44 -0
- package/src/members/util.ts +43 -1
- package/src/metrics/constants.ts +1 -0
- package/src/reachability/clusterReachability.ts +26 -25
- package/src/reachability/index.ts +55 -1
- package/src/reconnection-manager/index.ts +2 -2
- 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/breakouts/index.ts +167 -95
- package/test/unit/spec/controls-options-manager/util.js +120 -0
- package/test/unit/spec/locus-info/controlsUtils.js +131 -9
- package/test/unit/spec/locus-info/index.js +195 -73
- package/test/unit/spec/locus-info/selfUtils.js +98 -24
- package/test/unit/spec/media/index.ts +150 -18
- package/test/unit/spec/media/properties.ts +130 -0
- package/test/unit/spec/meeting/brbState.ts +40 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +19 -4
- package/test/unit/spec/meeting/index.js +553 -36
- package/test/unit/spec/meeting/locusMediaRequest.ts +0 -30
- package/test/unit/spec/meeting/muteState.js +73 -2
- package/test/unit/spec/meeting/request.js +32 -1
- package/test/unit/spec/meeting/utils.js +79 -33
- package/test/unit/spec/meeting-info/meetinginfov2.js +41 -0
- package/test/unit/spec/meeting-info/utilv2.js +19 -0
- package/test/unit/spec/meetings/index.js +68 -1
- package/test/unit/spec/members/index.js +304 -78
- package/test/unit/spec/members/request.js +68 -22
- package/test/unit/spec/members/utils.js +75 -0
- package/test/unit/spec/reachability/clusterReachability.ts +41 -55
- package/test/unit/spec/reachability/index.ts +89 -0
- package/test/unit/spec/reconnection-manager/index.js +4 -4
- package/test/unit/spec/roap/turnDiscovery.ts +110 -28
@@ -10,7 +10,9 @@ declare enum Control {
|
|
10
10
|
reactions = "reactions",
|
11
11
|
shareControl = "shareControl",
|
12
12
|
video = "video",
|
13
|
-
viewTheParticipantList = "viewTheParticipantList"
|
13
|
+
viewTheParticipantList = "viewTheParticipantList",
|
14
|
+
annotation = "annotation",
|
15
|
+
rdc = "rdc"
|
14
16
|
}
|
15
17
|
export { Control, Setting };
|
16
18
|
export default Setting;
|
@@ -32,7 +32,13 @@ export interface ViewTheParticipantListProperties {
|
|
32
32
|
panelistEnabled?: boolean;
|
33
33
|
attendeeCount?: boolean;
|
34
34
|
}
|
35
|
-
export
|
35
|
+
export interface AnnotationProperties {
|
36
|
+
enabled?: boolean;
|
37
|
+
}
|
38
|
+
export interface RemoteDesktopControlProperties {
|
39
|
+
enabled?: boolean;
|
40
|
+
}
|
41
|
+
export type Properties = AudioProperties | RaiseHandProperties | ReactionsProperties | ShareControlProperties | VideoProperties | ViewTheParticipantListProperties | AnnotationProperties | RemoteDesktopControlProperties;
|
36
42
|
export interface ControlConfig<Props = Properties> {
|
37
43
|
/**
|
38
44
|
* The scope of the control within this object.
|
@@ -37,6 +37,7 @@ export default class LocusInfo extends EventsScope {
|
|
37
37
|
services: any;
|
38
38
|
resources: any;
|
39
39
|
mainSessionLocusCache: any;
|
40
|
+
self: any;
|
40
41
|
/**
|
41
42
|
* Constructor
|
42
43
|
* @param {function} updateMeeting callback to update the meeting object from an object
|
@@ -249,13 +250,12 @@ export default class LocusInfo extends EventsScope {
|
|
249
250
|
updateReplace(replace: object): void;
|
250
251
|
/**
|
251
252
|
* handles when the locus.self is updated
|
252
|
-
* @param {Object} self the locus.
|
253
|
-
* @param {Array} participants the locus.participants property
|
253
|
+
* @param {Object} self the new locus.self
|
254
254
|
* @returns {undefined}
|
255
255
|
* @memberof LocusInfo
|
256
256
|
* emits internal events self_admitted_guest, self_unadmitted_guest, locus_info_update_self
|
257
257
|
*/
|
258
|
-
updateSelf(self: any
|
258
|
+
updateSelf(self: any): void;
|
259
259
|
/**
|
260
260
|
* handles when the locus.url is updated
|
261
261
|
* @param {String} url
|
@@ -1,2 +1,217 @@
|
|
1
|
-
declare const SelfUtils:
|
1
|
+
declare const SelfUtils: {
|
2
|
+
/**
|
3
|
+
* parses the relevant values for self: muted, guest, moderator, mediaStatus, state, joinedWith, pstnDevices, creator, id
|
4
|
+
* @param {Object} self
|
5
|
+
* @param {String} deviceId
|
6
|
+
* @param {Array} participants
|
7
|
+
* @returns {undefined}
|
8
|
+
*/
|
9
|
+
parse: (self: any, deviceId: string, participants: Array<any>) => {
|
10
|
+
remoteVideoMuted: any;
|
11
|
+
remoteMuted: any;
|
12
|
+
unmuteAllowed: boolean;
|
13
|
+
localAudioUnmuteRequested: boolean;
|
14
|
+
localAudioUnmuteRequestedTimeStamp: number;
|
15
|
+
localAudioUnmuteRequired: boolean;
|
16
|
+
lastModified: any;
|
17
|
+
modifiedBy: any;
|
18
|
+
guest: any;
|
19
|
+
moderator: any;
|
20
|
+
mediaStatus: {
|
21
|
+
audio: any;
|
22
|
+
video: any;
|
23
|
+
slides: any;
|
24
|
+
};
|
25
|
+
state: any;
|
26
|
+
joinedWith: any;
|
27
|
+
pairedWith: any;
|
28
|
+
pstnDevices: any;
|
29
|
+
currentMediaStatus: {
|
30
|
+
audio: any;
|
31
|
+
video: any;
|
32
|
+
share: any;
|
33
|
+
};
|
34
|
+
creator: any;
|
35
|
+
selfId: any;
|
36
|
+
selfIdentity: any;
|
37
|
+
selfUrl: any;
|
38
|
+
removed: any;
|
39
|
+
roles: any;
|
40
|
+
isUserUnadmitted: boolean;
|
41
|
+
layout: any;
|
42
|
+
canNotViewTheParticipantList: boolean;
|
43
|
+
isSharingBlocked: boolean;
|
44
|
+
breakoutSessions: any;
|
45
|
+
breakout: any;
|
46
|
+
interpretation: any;
|
47
|
+
brb: any;
|
48
|
+
};
|
49
|
+
getBreakoutSessions: (self: any) => any;
|
50
|
+
getBreakout: (self: any) => any;
|
51
|
+
getInterpretation: (self: any) => any;
|
52
|
+
getBrb: (self: any) => any;
|
53
|
+
getLayout: (self: any) => any;
|
54
|
+
getRoles: (self: any) => any;
|
55
|
+
canNotViewTheParticipantList: (self: any) => boolean;
|
56
|
+
isSharingBlocked: (self: any) => boolean;
|
57
|
+
getSelves: (oldParsedSelf: any, newSelf: any, deviceId: any, participants: Array<any>) => {
|
58
|
+
previous: any;
|
59
|
+
current: {
|
60
|
+
remoteVideoMuted: any;
|
61
|
+
remoteMuted: any;
|
62
|
+
unmuteAllowed: boolean;
|
63
|
+
localAudioUnmuteRequested: boolean;
|
64
|
+
localAudioUnmuteRequestedTimeStamp: number;
|
65
|
+
localAudioUnmuteRequired: boolean;
|
66
|
+
lastModified: any;
|
67
|
+
modifiedBy: any;
|
68
|
+
guest: any;
|
69
|
+
moderator: any;
|
70
|
+
mediaStatus: {
|
71
|
+
audio: any;
|
72
|
+
video: any;
|
73
|
+
slides: any;
|
74
|
+
};
|
75
|
+
state: any;
|
76
|
+
joinedWith: any;
|
77
|
+
pairedWith: any;
|
78
|
+
pstnDevices: any;
|
79
|
+
currentMediaStatus: {
|
80
|
+
audio: any;
|
81
|
+
video: any;
|
82
|
+
share: any;
|
83
|
+
};
|
84
|
+
creator: any;
|
85
|
+
selfId: any;
|
86
|
+
selfIdentity: any;
|
87
|
+
selfUrl: any;
|
88
|
+
removed: any;
|
89
|
+
roles: any;
|
90
|
+
isUserUnadmitted: boolean;
|
91
|
+
layout: any;
|
92
|
+
canNotViewTheParticipantList: boolean;
|
93
|
+
isSharingBlocked: boolean;
|
94
|
+
breakoutSessions: any;
|
95
|
+
breakout: any;
|
96
|
+
interpretation: any;
|
97
|
+
brb: any;
|
98
|
+
};
|
99
|
+
updates: any;
|
100
|
+
};
|
101
|
+
/**
|
102
|
+
* Checks if user has joined the meeting
|
103
|
+
* @param {Object} self
|
104
|
+
* @returns {boolean} isJoined
|
105
|
+
*/
|
106
|
+
isJoined: (self: any) => boolean;
|
107
|
+
/**
|
108
|
+
* Validate if the Meeting Layout Controls Layout has changed.
|
109
|
+
*
|
110
|
+
* @param {Self} previous - Previous self state
|
111
|
+
* @param {Self} current - Current self state [per event]
|
112
|
+
* @returns {boolean} - If the Meeting Layout Controls Layout has changed.
|
113
|
+
*/
|
114
|
+
layoutChanged: (previous: any, current: any) => boolean;
|
115
|
+
breakoutsChanged: (previous: any, current: any) => boolean;
|
116
|
+
interpretationChanged: (previous: any, current: any) => boolean;
|
117
|
+
brbChanged: (previous: any, current: any) => boolean;
|
118
|
+
isMediaInactive: (previous: any, current: any) => boolean;
|
119
|
+
getLastModified: (self: any) => any;
|
120
|
+
getModifiedBy: (self: any) => any;
|
121
|
+
/**
|
122
|
+
* get the id from the self object
|
123
|
+
* @param {Object} self
|
124
|
+
* @returns {String}
|
125
|
+
*/
|
126
|
+
getSelfIdentity: (self: any) => any;
|
127
|
+
/**
|
128
|
+
* get the "remote video mute" property from the self object
|
129
|
+
* @param {Object} self
|
130
|
+
* @returns {Boolean}
|
131
|
+
*/
|
132
|
+
getRemoteVideoMuted: (self: any) => any;
|
133
|
+
/**
|
134
|
+
* get the "remote mute" property from the self object
|
135
|
+
* @param {Object} self
|
136
|
+
* @returns {Boolean}
|
137
|
+
*/
|
138
|
+
getRemoteMuted: (self: any) => any;
|
139
|
+
getLocalAudioUnmuteRequested: (self: any) => boolean;
|
140
|
+
getLocalAudioUnmuteRequestedTimeStamp: (self: any) => number;
|
141
|
+
getUnmuteAllowed: (self: any) => boolean;
|
142
|
+
getLocalAudioUnmuteRequired: (self: any) => boolean;
|
143
|
+
getStatus: (status: any) => {
|
144
|
+
audio: any;
|
145
|
+
video: any;
|
146
|
+
slides: any;
|
147
|
+
};
|
148
|
+
/**
|
149
|
+
* @param {Object} oldSelf
|
150
|
+
* @param {Object} changedSelf
|
151
|
+
* @returns {Boolean}
|
152
|
+
*/
|
153
|
+
wasMediaInactiveOrReleased: (oldSelf: any, changedSelf: any) => boolean;
|
154
|
+
/**
|
155
|
+
* @param {String | undefined} state meeting state
|
156
|
+
* @param {any} joinedWith device that user has joined with
|
157
|
+
* @param {any} pairedWith device that user is paired with
|
158
|
+
* @returns {Boolean | undefined} true if user is in lobby, false if not, undefined if it cannot be determined
|
159
|
+
*/
|
160
|
+
isLocusUserUnadmitted: (state?: string, joinedWith?: any, pairedWith?: any) => boolean;
|
161
|
+
/**
|
162
|
+
* @param {String | undefined} state meeting state
|
163
|
+
* @param {any} joinedWith device that user has joined with
|
164
|
+
* @param {any} pairedWith device that user is paired with
|
165
|
+
* @returns {Boolean}
|
166
|
+
*/
|
167
|
+
isLocusUserAdmitted: (state?: string, joinedWith?: any, pairedWith?: any) => boolean;
|
168
|
+
/**
|
169
|
+
* @param {Object} oldSelf
|
170
|
+
* @param {Object} changedSelf
|
171
|
+
* @returns {Boolean} true if user has just been placed in the lobby
|
172
|
+
* @throws {Error} when self is undefined
|
173
|
+
*/
|
174
|
+
hasUserEnteredLobby: (oldSelf: any, changedSelf: any) => boolean;
|
175
|
+
moderatorChanged: (oldSelf: any, changedSelf: any) => boolean;
|
176
|
+
/**
|
177
|
+
* determine whether the roles of self is changed or not
|
178
|
+
* @param {Object} oldSelf
|
179
|
+
* @param {Object} changedSelf
|
180
|
+
* @returns {Boolean}
|
181
|
+
*/
|
182
|
+
isRolesChanged: (oldSelf: any, changedSelf: any) => boolean;
|
183
|
+
/**
|
184
|
+
* @param {Object} oldSelf
|
185
|
+
* @param {Object} changedSelf
|
186
|
+
* @returns {Boolean}
|
187
|
+
* @throws {Error} if changed self was undefined
|
188
|
+
*/
|
189
|
+
isDeviceObserving: (oldSelf: any, changedSelf: any) => boolean;
|
190
|
+
/**
|
191
|
+
* @param {Object} oldSelf
|
192
|
+
* @param {Object} changedSelf
|
193
|
+
* @returns {Boolean} true if the user has just been admitted from lobby into the meeting
|
194
|
+
* @throws {Error} if changed self was undefined
|
195
|
+
*/
|
196
|
+
hasUserBeenAdmitted: (oldSelf: any, changedSelf: any) => boolean;
|
197
|
+
videoMutedByOthersChanged: (oldSelf: any, changedSelf: any) => boolean;
|
198
|
+
mutedByOthersChanged: (oldSelf: any, changedSelf: any) => boolean;
|
199
|
+
localAudioUnmuteRequestedByServer: (oldSelf: any, changedSelf: any) => boolean;
|
200
|
+
localAudioUnmuteRequiredByServer: (oldSelf: any, changedSelf: any) => boolean;
|
201
|
+
/**
|
202
|
+
* extract the sipUrl from the partner
|
203
|
+
* @param {Object} partner
|
204
|
+
* @param {Object} info
|
205
|
+
* @returns {Object}
|
206
|
+
*/
|
207
|
+
getSipUrl: (partner: any, type: any, sipUri: any) => {
|
208
|
+
sipUri: any;
|
209
|
+
};
|
210
|
+
getMediaStatus: (mediaSessions?: any[]) => {
|
211
|
+
audio: any;
|
212
|
+
video: any;
|
213
|
+
share: any;
|
214
|
+
};
|
215
|
+
getReplacedBreakoutMoveId: (self: any, deviceId: string) => any;
|
216
|
+
};
|
2
217
|
export default SelfUtils;
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { LocalCameraStream, LocalMicrophoneStream, LocalDisplayStream, LocalSystemAudioStream, RemoteStream } from '@webex/media-helpers';
|
2
|
+
import { ClientEvent } from '@webex/internal-plugin-metrics';
|
2
3
|
export type MediaDirection = {
|
3
4
|
sendAudio: boolean;
|
4
5
|
sendVideo: boolean;
|
@@ -7,6 +8,7 @@ export type MediaDirection = {
|
|
7
8
|
receiveVideo: boolean;
|
8
9
|
receiveShare: boolean;
|
9
10
|
};
|
11
|
+
export type IPVersion = ClientEvent['payload']['ipVersion'];
|
10
12
|
/**
|
11
13
|
* @class MediaProperties
|
12
14
|
*/
|
@@ -94,6 +96,18 @@ export default class MediaProperties {
|
|
94
96
|
* @returns {Object}
|
95
97
|
*/
|
96
98
|
private getTransportInfo;
|
99
|
+
/**
|
100
|
+
* Checks if the given IP address is IPv6
|
101
|
+
* @param {string} ip address to check
|
102
|
+
* @returns {boolean} true if the address is IPv6, false otherwise
|
103
|
+
*/
|
104
|
+
private isIPv6;
|
105
|
+
/** Finds out if we connected using IPv4 or IPv6
|
106
|
+
* @param {RTCPeerConnection} webrtcMediaConnection
|
107
|
+
* @param {Array<any>} allStatsReports array of RTC stats reports
|
108
|
+
* @returns {string} IPVersion
|
109
|
+
*/
|
110
|
+
private getConnectionIpVersion;
|
97
111
|
/**
|
98
112
|
* Returns the type of a connection that has been established
|
99
113
|
* It should be 'UDP' | 'TCP' | 'TURN-TLS' | 'TURN-TCP' | 'TURN-UDP' | 'unknown'
|
@@ -111,6 +125,7 @@ export default class MediaProperties {
|
|
111
125
|
*/
|
112
126
|
getCurrentConnectionInfo(): Promise<{
|
113
127
|
connectionType: string;
|
128
|
+
ipVersion?: IPVersion;
|
114
129
|
selectedCandidatePairChanges: number;
|
115
130
|
numTransports: number;
|
116
131
|
}>;
|
@@ -77,6 +77,8 @@ interface IInMeetingActions {
|
|
77
77
|
canShareDesktop?: boolean;
|
78
78
|
canShareContent?: boolean;
|
79
79
|
canTransferFile?: boolean;
|
80
|
+
canRealtimeCloseCaption?: boolean;
|
81
|
+
canRealtimeCloseCaptionManual?: boolean;
|
80
82
|
canChat?: boolean;
|
81
83
|
canDoVideo?: boolean;
|
82
84
|
canAnnotate?: boolean;
|
@@ -95,6 +97,12 @@ interface IInMeetingActions {
|
|
95
97
|
isPracticeSessionOff?: boolean;
|
96
98
|
canStartPracticeSession?: boolean;
|
97
99
|
canStopPracticeSession?: boolean;
|
100
|
+
requiresPostMeetingDataConsentPrompt?: boolean;
|
101
|
+
canEnableAnnotation?: boolean;
|
102
|
+
canDisableAnnotation?: boolean;
|
103
|
+
canEnableRemoteDesktopControl?: boolean;
|
104
|
+
canDisableRemoteDesktopControl?: boolean;
|
105
|
+
canMoveToLobby?: boolean;
|
98
106
|
}
|
99
107
|
/**
|
100
108
|
* @class InMeetingActions
|
@@ -172,6 +180,8 @@ export default class InMeetingActions implements IInMeetingActions {
|
|
172
180
|
canShareDesktop: any;
|
173
181
|
canShareContent: any;
|
174
182
|
canTransferFile: any;
|
183
|
+
canRealtimeCloseCaption: any;
|
184
|
+
canRealtimeCloseCaptionManual: any;
|
175
185
|
canChat: any;
|
176
186
|
canDoVideo: any;
|
177
187
|
canAnnotate: any;
|
@@ -190,6 +200,12 @@ export default class InMeetingActions implements IInMeetingActions {
|
|
190
200
|
isPracticeSessionOff: any;
|
191
201
|
canStartPracticeSession: any;
|
192
202
|
canStopPracticeSession: any;
|
203
|
+
requiresPostMeetingDataConsentPrompt: any;
|
204
|
+
canEnableAnnotation: any;
|
205
|
+
canDisableAnnotation: any;
|
206
|
+
canEnableRemoteDesktopControl: any;
|
207
|
+
canDisableRemoteDesktopControl: any;
|
208
|
+
canMoveToLobby: any;
|
193
209
|
/**
|
194
210
|
* Returns all meeting action options
|
195
211
|
* @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';
|
@@ -449,6 +450,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
449
450
|
allowMediaInLobby: boolean;
|
450
451
|
localShareInstanceId: string;
|
451
452
|
remoteShareInstanceId: string;
|
453
|
+
shareCAEventSentStatus: {
|
454
|
+
transmitStart: boolean;
|
455
|
+
transmitStop: boolean;
|
456
|
+
receiveStart: boolean;
|
457
|
+
receiveStop: boolean;
|
458
|
+
};
|
452
459
|
turnDiscoverySkippedReason: TurnDiscoverySkipReason;
|
453
460
|
turnServerUsed: boolean;
|
454
461
|
areVoiceaEventsSetup: boolean;
|
@@ -468,6 +475,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
468
475
|
private rtcMetrics?;
|
469
476
|
private uploadLogsTimer?;
|
470
477
|
private logUploadIntervalIndex;
|
478
|
+
private mediaServerIp;
|
471
479
|
/**
|
472
480
|
* @param {Object} attrs
|
473
481
|
* @param {Object} options
|
@@ -872,6 +880,17 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
872
880
|
cancelPhoneInvite(invitee: {
|
873
881
|
phoneNumber: string;
|
874
882
|
}): any;
|
883
|
+
/**
|
884
|
+
* Cancel an SIP call invitation made during a meeting
|
885
|
+
* @param {Object} invitee
|
886
|
+
* @param {String} invitee.memberId
|
887
|
+
* @returns {Promise} see #members.cancelSIPInvite
|
888
|
+
* @public
|
889
|
+
* @memberof Meeting
|
890
|
+
*/
|
891
|
+
cancelSIPInvite(invitee: {
|
892
|
+
memberId: string;
|
893
|
+
}): any;
|
875
894
|
/**
|
876
895
|
* Admit the guest(s) to the call once they are waiting.
|
877
896
|
* If the host/cohost is in a breakout session, the locus url
|
@@ -1881,6 +1900,15 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
1881
1900
|
* @memberof Meeting
|
1882
1901
|
*/
|
1883
1902
|
toggleReactions(enable: boolean): Promise<any>;
|
1903
|
+
/**
|
1904
|
+
* Method to set post meeting data consent.
|
1905
|
+
*
|
1906
|
+
* @param {boolean} accept - whether consent accepted or declined
|
1907
|
+
* @returns {Promise}
|
1908
|
+
* @public
|
1909
|
+
* @memberof Meeting
|
1910
|
+
*/
|
1911
|
+
setPostMeetingDataConsent(accept: boolean): Promise<any>;
|
1884
1912
|
/**
|
1885
1913
|
* Throws if we don't have a media connection created
|
1886
1914
|
*
|
@@ -1959,5 +1987,11 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
1959
1987
|
* @returns {Promise<void>}
|
1960
1988
|
*/
|
1961
1989
|
checkAndRefreshPermissionToken(threshold: number, reason: string): Promise<void>;
|
1990
|
+
/**
|
1991
|
+
* Gets the media reachability metrics
|
1992
|
+
*
|
1993
|
+
* @returns {Promise<MediaReachabilityMetrics>}
|
1994
|
+
*/
|
1995
|
+
private getMediaReachabilityMetricFields;
|
1962
1996
|
}
|
1963
1997
|
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
|
@@ -238,6 +238,7 @@ export default class MeetingInfoV2 {
|
|
238
238
|
* @param {Object} extraParams
|
239
239
|
* @param {Object} options
|
240
240
|
* @param {String} registrationId
|
241
|
+
* @param {String} fullSiteUrl
|
241
242
|
* @returns {Promise} returns a meeting info object
|
242
243
|
* @public
|
243
244
|
* @memberof MeetingInfo
|
@@ -248,5 +249,5 @@ export default class MeetingInfoV2 {
|
|
248
249
|
}, installedOrgID?: any, locusId?: any, extraParams?: object, options?: {
|
249
250
|
meetingId?: string;
|
250
251
|
sendCAevents?: boolean;
|
251
|
-
}, registrationId?: string): Promise<any>;
|
252
|
+
}, registrationId?: string, fullSiteUrl?: string): Promise<any>;
|
252
253
|
}
|
@@ -227,6 +227,34 @@ 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;
|
239
|
+
/**
|
240
|
+
* API to toggle usage of audio twcc support
|
241
|
+
*
|
242
|
+
* @param {Boolean} newValue
|
243
|
+
* @private
|
244
|
+
* @memberof Meetings
|
245
|
+
* @returns {undefined}
|
246
|
+
*/
|
247
|
+
private _toggleEnableAudioTwccForMultistream;
|
248
|
+
/**
|
249
|
+
* API to toggle stopping ICE Candidates Gathering after first relay candidate,
|
250
|
+
* needs to be called before webex.meetings.joinWithMedia()
|
251
|
+
*
|
252
|
+
* @param {Boolean} newValue
|
253
|
+
* @private
|
254
|
+
* @memberof Meetings
|
255
|
+
* @returns {undefined}
|
256
|
+
*/
|
257
|
+
private _toggleStopIceGatheringAfterFirstRelayCandidate;
|
230
258
|
/**
|
231
259
|
* Executes a registration step and updates the registration status.
|
232
260
|
* @param {Function} step - The registration step to execute.
|
@@ -1,11 +1,13 @@
|
|
1
|
-
import { IExternalRoles, IMediaStatus } from './types';
|
1
|
+
import { IExternalRoles, IMediaStatus, Participant, ParticipantUrl } from './types';
|
2
|
+
export type MemberId = string;
|
2
3
|
/**
|
3
4
|
* @class Member
|
4
5
|
*/
|
5
6
|
export default class Member {
|
6
|
-
associatedUser:
|
7
|
+
associatedUser: MemberId | null;
|
8
|
+
associatedUsers: Set<MemberId>;
|
7
9
|
canReclaimHost: boolean;
|
8
|
-
id:
|
10
|
+
id: MemberId;
|
9
11
|
isAudioMuted: any;
|
10
12
|
isContentSharing: any;
|
11
13
|
isDevice: any;
|
@@ -22,6 +24,7 @@ export default class Member {
|
|
22
24
|
isRecording: any;
|
23
25
|
isRemovable: any;
|
24
26
|
isSelf: any;
|
27
|
+
isPairedWithSelf: boolean;
|
25
28
|
isBrb: boolean;
|
26
29
|
isUser: any;
|
27
30
|
isVideoMuted: any;
|
@@ -35,6 +38,10 @@ export default class Member {
|
|
35
38
|
supportLiveAnnotation: boolean;
|
36
39
|
type: any;
|
37
40
|
namespace: string;
|
41
|
+
pairedWith: {
|
42
|
+
participantUrl?: ParticipantUrl;
|
43
|
+
memberId?: MemberId;
|
44
|
+
};
|
38
45
|
/**
|
39
46
|
* @param {Object} participant - the locus participant
|
40
47
|
* @param {Object} [options] - constructor params
|
@@ -45,7 +52,7 @@ export default class Member {
|
|
45
52
|
* @returns {Member}
|
46
53
|
* @memberof Member
|
47
54
|
*/
|
48
|
-
constructor(participant:
|
55
|
+
constructor(participant: Participant, options?: {
|
49
56
|
selfId: string;
|
50
57
|
hostId: string;
|
51
58
|
contentSharingId: string;
|
@@ -59,6 +66,13 @@ export default class Member {
|
|
59
66
|
* @memberof Member
|
60
67
|
*/
|
61
68
|
private processParticipant;
|
69
|
+
/**
|
70
|
+
* Checks if the participant is paired with another device
|
71
|
+
*
|
72
|
+
* @param {any} participant the locus participant object
|
73
|
+
* @returns {void}
|
74
|
+
*/
|
75
|
+
processPairedDevice(participant: Participant): void;
|
62
76
|
/**
|
63
77
|
* Use the members options and participant values to set on the member
|
64
78
|
* @param {Object} participant the locus participant object
|
@@ -115,7 +129,7 @@ export default class Member {
|
|
115
129
|
* @public
|
116
130
|
* @memberof Member
|
117
131
|
*/
|
118
|
-
processIsContentSharing(participant:
|
132
|
+
processIsContentSharing(participant: Participant, sharingId: string): void;
|
119
133
|
/**
|
120
134
|
* Determine if this member is recording
|
121
135
|
* @param {Object} participant
|
@@ -124,7 +138,7 @@ export default class Member {
|
|
124
138
|
* @public
|
125
139
|
* @memberof Member
|
126
140
|
*/
|
127
|
-
processIsRecording(participant:
|
141
|
+
processIsRecording(participant: Participant, recordingId: string): void;
|
128
142
|
/**
|
129
143
|
* determine if this member is the self
|
130
144
|
* @param {Object} participant
|