@webex/plugin-meetings 3.1.0 → 3.2.0

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.
Files changed (205) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/common/errors/reconnection-not-started.js +46 -0
  4. package/dist/common/errors/reconnection-not-started.js.map +1 -0
  5. package/dist/constants.js +16 -5
  6. package/dist/constants.js.map +1 -1
  7. package/dist/index.js +80 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/interpretation/index.js +1 -1
  10. package/dist/interpretation/siLanguage.js +1 -1
  11. package/dist/locus-info/controlsUtils.js +7 -1
  12. package/dist/locus-info/controlsUtils.js.map +1 -1
  13. package/dist/locus-info/index.js +10 -0
  14. package/dist/locus-info/index.js.map +1 -1
  15. package/dist/media/properties.js +102 -57
  16. package/dist/media/properties.js.map +1 -1
  17. package/dist/mediaQualityMetrics/config.js +10 -10
  18. package/dist/mediaQualityMetrics/config.js.map +1 -1
  19. package/dist/meeting/in-meeting-actions.js +6 -0
  20. package/dist/meeting/in-meeting-actions.js.map +1 -1
  21. package/dist/meeting/index.js +564 -475
  22. package/dist/meeting/index.js.map +1 -1
  23. package/dist/meeting/locusMediaRequest.js +27 -0
  24. package/dist/meeting/locusMediaRequest.js.map +1 -1
  25. package/dist/meeting/util.js +9 -16
  26. package/dist/meeting/util.js.map +1 -1
  27. package/dist/meeting/voicea-meeting.js +37 -49
  28. package/dist/meeting/voicea-meeting.js.map +1 -1
  29. package/dist/meeting-info/util.js +304 -267
  30. package/dist/meeting-info/util.js.map +1 -1
  31. package/dist/meeting-info/utilv2.js +334 -298
  32. package/dist/meeting-info/utilv2.js.map +1 -1
  33. package/dist/meetings/index.js +12 -28
  34. package/dist/meetings/index.js.map +1 -1
  35. package/dist/reachability/index.js +88 -9
  36. package/dist/reachability/index.js.map +1 -1
  37. package/dist/reconnection-manager/index.js +138 -109
  38. package/dist/reconnection-manager/index.js.map +1 -1
  39. package/dist/roap/request.js +3 -27
  40. package/dist/roap/request.js.map +1 -1
  41. package/dist/statsAnalyzer/index.js +8 -2
  42. package/dist/statsAnalyzer/index.js.map +1 -1
  43. package/dist/statsAnalyzer/mqaUtil.js +17 -0
  44. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  45. package/dist/types/annotation/annotation.types.d.ts +42 -0
  46. package/dist/types/annotation/constants.d.ts +31 -0
  47. package/dist/types/annotation/index.d.ts +117 -0
  48. package/dist/types/breakouts/breakout.d.ts +8 -0
  49. package/dist/types/breakouts/collection.d.ts +5 -0
  50. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  51. package/dist/types/breakouts/events.d.ts +8 -0
  52. package/dist/types/breakouts/index.d.ts +5 -0
  53. package/dist/types/breakouts/request.d.ts +22 -0
  54. package/dist/types/breakouts/utils.d.ts +15 -0
  55. package/dist/types/common/browser-detection.d.ts +9 -0
  56. package/dist/types/common/collection.d.ts +48 -0
  57. package/dist/types/common/config.d.ts +2 -0
  58. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  59. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  60. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  61. package/dist/types/common/errors/media.d.ts +15 -0
  62. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  63. package/dist/types/common/errors/parameter.d.ts +15 -0
  64. package/dist/types/common/errors/password-error.d.ts +15 -0
  65. package/dist/types/common/errors/permission.d.ts +14 -0
  66. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  67. package/dist/types/common/errors/reconnection-not-started.d.ts +13 -0
  68. package/dist/types/common/errors/reconnection.d.ts +15 -0
  69. package/dist/types/common/errors/stats.d.ts +15 -0
  70. package/dist/types/common/errors/webex-errors.d.ts +93 -0
  71. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  72. package/dist/types/common/events/events-scope.d.ts +17 -0
  73. package/dist/types/common/events/events.d.ts +12 -0
  74. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  75. package/dist/types/common/events/util.d.ts +2 -0
  76. package/dist/types/common/logs/logger-config.d.ts +2 -0
  77. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  78. package/dist/types/common/logs/request.d.ts +36 -0
  79. package/dist/types/common/queue.d.ts +34 -0
  80. package/dist/types/config.d.ts +73 -0
  81. package/dist/types/constants.d.ts +1098 -0
  82. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  83. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  84. package/dist/types/controls-options-manager/index.d.ts +136 -0
  85. package/dist/types/controls-options-manager/types.d.ts +43 -0
  86. package/dist/types/controls-options-manager/util.d.ts +1 -0
  87. package/dist/types/index.d.ts +19 -0
  88. package/dist/types/interceptors/index.d.ts +2 -0
  89. package/dist/types/interceptors/locusRetry.d.ts +27 -0
  90. package/dist/types/interpretation/collection.d.ts +5 -0
  91. package/dist/types/interpretation/index.d.ts +5 -0
  92. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  93. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  94. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  95. package/dist/types/locus-info/fullState.d.ts +2 -0
  96. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  97. package/dist/types/locus-info/index.d.ts +322 -0
  98. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  99. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  100. package/dist/types/locus-info/parser.d.ts +272 -0
  101. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  102. package/dist/types/media/MediaConnectionAwaiter.d.ts +61 -0
  103. package/dist/types/media/index.d.ts +34 -0
  104. package/dist/types/media/properties.d.ts +117 -0
  105. package/dist/types/media/util.d.ts +2 -0
  106. package/dist/types/mediaQualityMetrics/config.d.ts +247 -0
  107. package/dist/types/meeting/in-meeting-actions.d.ts +173 -0
  108. package/dist/types/meeting/index.d.ts +1832 -0
  109. package/dist/types/meeting/locusMediaRequest.d.ts +75 -0
  110. package/dist/types/meeting/muteState.d.ts +178 -0
  111. package/dist/types/meeting/request.d.ts +295 -0
  112. package/dist/types/meeting/request.type.d.ts +11 -0
  113. package/dist/types/meeting/state.d.ts +9 -0
  114. package/dist/types/meeting/util.d.ts +122 -0
  115. package/dist/types/meeting/voicea-meeting.d.ts +17 -0
  116. package/dist/types/meeting-info/collection.d.ts +20 -0
  117. package/dist/types/meeting-info/index.d.ts +69 -0
  118. package/dist/types/meeting-info/meeting-info-v2.d.ts +123 -0
  119. package/dist/types/meeting-info/request.d.ts +22 -0
  120. package/dist/types/meeting-info/util.d.ts +49 -0
  121. package/dist/types/meeting-info/utilv2.d.ts +65 -0
  122. package/dist/types/meetings/collection.d.ts +40 -0
  123. package/dist/types/meetings/index.d.ts +383 -0
  124. package/dist/types/meetings/meetings.types.d.ts +4 -0
  125. package/dist/types/meetings/request.d.ts +27 -0
  126. package/dist/types/meetings/util.d.ts +18 -0
  127. package/dist/types/member/index.d.ts +160 -0
  128. package/dist/types/member/types.d.ts +32 -0
  129. package/dist/types/member/util.d.ts +2 -0
  130. package/dist/types/members/collection.d.ts +29 -0
  131. package/dist/types/members/index.d.ts +353 -0
  132. package/dist/types/members/request.d.ts +114 -0
  133. package/dist/types/members/types.d.ts +25 -0
  134. package/dist/types/members/util.d.ts +215 -0
  135. package/dist/types/metrics/constants.d.ts +70 -0
  136. package/dist/types/metrics/index.d.ts +45 -0
  137. package/dist/types/multistream/mediaRequestManager.d.ts +119 -0
  138. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  139. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  140. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  141. package/dist/types/multistream/remoteMediaGroup.d.ts +49 -0
  142. package/dist/types/multistream/remoteMediaManager.d.ts +300 -0
  143. package/dist/types/multistream/sendSlotManager.d.ts +69 -0
  144. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  145. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  146. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  147. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  148. package/dist/types/reachability/clusterReachability.d.ts +110 -0
  149. package/dist/types/reachability/index.d.ts +120 -0
  150. package/dist/types/reachability/request.d.ts +39 -0
  151. package/dist/types/reachability/util.d.ts +15 -0
  152. package/dist/types/reactions/constants.d.ts +3 -0
  153. package/dist/types/reactions/reactions.d.ts +4 -0
  154. package/dist/types/reactions/reactions.type.d.ts +52 -0
  155. package/dist/types/reconnection-manager/index.d.ts +126 -0
  156. package/dist/types/recording-controller/enums.d.ts +7 -0
  157. package/dist/types/recording-controller/index.d.ts +207 -0
  158. package/dist/types/recording-controller/util.d.ts +14 -0
  159. package/dist/types/roap/index.d.ts +86 -0
  160. package/dist/types/roap/request.d.ts +39 -0
  161. package/dist/types/roap/turnDiscovery.d.ts +155 -0
  162. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  163. package/dist/types/rtcMetrics/index.d.ts +61 -0
  164. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  165. package/dist/types/statsAnalyzer/index.d.ts +217 -0
  166. package/dist/types/statsAnalyzer/mqaUtil.d.ts +48 -0
  167. package/dist/types/transcription/index.d.ts +64 -0
  168. package/dist/types/webinar/collection.d.ts +16 -0
  169. package/dist/types/webinar/index.d.ts +5 -0
  170. package/dist/webinar/index.js +1 -1
  171. package/package.json +22 -22
  172. package/src/common/errors/reconnection-not-started.ts +25 -0
  173. package/src/constants.ts +14 -5
  174. package/src/index.ts +30 -0
  175. package/src/locus-info/controlsUtils.ts +11 -0
  176. package/src/locus-info/index.ts +16 -0
  177. package/src/media/properties.ts +67 -15
  178. package/src/mediaQualityMetrics/config.ts +13 -7
  179. package/src/meeting/in-meeting-actions.ts +12 -0
  180. package/src/meeting/index.ts +144 -107
  181. package/src/meeting/locusMediaRequest.ts +31 -0
  182. package/src/meeting/util.ts +9 -16
  183. package/src/meeting/voicea-meeting.ts +44 -46
  184. package/src/meeting-info/util.ts +241 -233
  185. package/src/meeting-info/utilv2.ts +250 -244
  186. package/src/meetings/index.ts +15 -27
  187. package/src/reachability/index.ts +60 -0
  188. package/src/reconnection-manager/index.ts +128 -105
  189. package/src/roap/request.ts +1 -24
  190. package/src/statsAnalyzer/index.ts +10 -3
  191. package/src/statsAnalyzer/mqaUtil.ts +23 -0
  192. package/test/unit/spec/locus-info/controlsUtils.js +20 -0
  193. package/test/unit/spec/locus-info/index.js +21 -0
  194. package/test/unit/spec/media/properties.ts +145 -140
  195. package/test/unit/spec/meeting/in-meeting-actions.ts +6 -0
  196. package/test/unit/spec/meeting/index.js +271 -105
  197. package/test/unit/spec/meeting/locusMediaRequest.ts +49 -0
  198. package/test/unit/spec/meeting/utils.js +3 -10
  199. package/test/unit/spec/meeting/voicea-meeting.ts +5 -14
  200. package/test/unit/spec/meetings/index.js +59 -17
  201. package/test/unit/spec/reachability/index.ts +266 -0
  202. package/test/unit/spec/reconnection-manager/index.js +127 -39
  203. package/test/unit/spec/roap/request.ts +0 -37
  204. package/test/unit/spec/stats-analyzer/index.js +100 -8
  205. package/src/common/errors/reconnection-in-progress.ts +0 -8
@@ -0,0 +1,383 @@
1
+ import '@webex/internal-plugin-mercury';
2
+ import '@webex/internal-plugin-conversation';
3
+ import '@webex/internal-plugin-metrics';
4
+ import { WebexPlugin } from '@webex/webex-core';
5
+ import * as mediaHelpersModule from '@webex/media-helpers';
6
+ import 'webrtc-adapter';
7
+ import { CallStateForMetrics } from '../meeting';
8
+ import Reachability from '../reachability';
9
+ import { INoiseReductionEffect, IVirtualBackgroundEffect } from './meetings.types';
10
+ /**
11
+ * Meetings Ready Event
12
+ * Emitted when the meetings instance on webex is ready
13
+ * @event meetings:ready
14
+ * @instance
15
+ * @memberof Meetings
16
+ */
17
+ /**
18
+ * Meetings Network Disconnected Event
19
+ * Emitted when the meetings instance is disconnected from
20
+ * the internal mercury server
21
+ * @event network:disconnected
22
+ * @instance
23
+ * @memberof Meetings
24
+ */
25
+ /**
26
+ * Meetings Registered Event
27
+ * Emitted when the meetings instance has been registered and listening
28
+ * @event meetings:registered
29
+ * @instance
30
+ * @memberof Meetings
31
+ */
32
+ /**
33
+ * Meeting Removed Event
34
+ * Emitted when a meeting was removed from the cache of meetings
35
+ * @event meeting:removed
36
+ * @instance
37
+ * @type {Object}
38
+ * @property {String} meetingId the removed meeting
39
+ * @property {Object} response the server response
40
+ * @property {String} type what type of meeting it was
41
+ * @memberof Meetings
42
+ */
43
+ /**
44
+ * Meeting Added Event
45
+ * Emitted when a meeting was added to the cache of meetings
46
+ * @event meeting:added
47
+ * @instance
48
+ * @type {Object}
49
+ * @property {String} meetingId the added meeting
50
+ * @property {String} type what type of meeting it was
51
+ * @memberof Meetings
52
+ */
53
+ /**
54
+ * Maintain a cache of meetings and sync with services.
55
+ * @class
56
+ */
57
+ export default class Meetings extends WebexPlugin {
58
+ loggerRequest: any;
59
+ media: any;
60
+ meetingCollection: any;
61
+ personalMeetingRoom: any;
62
+ preferredWebexSite: any;
63
+ reachability: Reachability;
64
+ registered: any;
65
+ request: any;
66
+ geoHintInfo: any;
67
+ meetingInfo: any;
68
+ mediaHelpers: any;
69
+ breakoutLocusForHandleLater: any;
70
+ namespace: string;
71
+ /**
72
+ * Initializes the Meetings Plugin
73
+ * @constructor
74
+ * @public
75
+ * @memberof Meetings
76
+ */
77
+ constructor(...args: any[]);
78
+ /**
79
+ * check whether you need to handle this main session's locus data or not
80
+ * @param {Object} meeting current meeting data
81
+ * @param {Object} newLocus new locus data
82
+ * @returns {boolean}
83
+ * @private
84
+ * @memberof Meetings
85
+ */
86
+ private isNeedHandleMainLocus;
87
+ /**
88
+ * check whether you need to handle this locus data or not
89
+ * @param {Object} meeting old locus data
90
+ * @param {Object} newLocus new locus data
91
+ * @returns {boolean}
92
+ * @private
93
+ * @memberof Meetings
94
+ */
95
+ private isNeedHandleLocusDTO;
96
+ /**
97
+ * get corresponding meeting object by locus data
98
+ * @param {Object} data a locus event
99
+ * @param {String} data.locusUrl
100
+ * @param {Object} data.locus
101
+ * @returns {Object}
102
+ * @private
103
+ * @memberof Meetings
104
+ */
105
+ getCorrespondingMeetingByLocus(data: any): any;
106
+ /**
107
+ * handle locus events and takes meeting actions with them as they come in
108
+ * @param {Object} data a locus event
109
+ * @param {String} data.locusUrl
110
+ * @param {Object} data.locus
111
+ * @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
112
+ * @param {String} data.eventType
113
+ * @returns {undefined}
114
+ * @private
115
+ * @memberof Meetings
116
+ */
117
+ private handleLocusEvent;
118
+ /**
119
+ * handles locus events through mercury that are not roap
120
+ * @param {Object} envelope
121
+ * @param {Object} envelope.data
122
+ * @param {String} envelope.data.eventType
123
+ * @returns {undefined}
124
+ * @private
125
+ * @memberof Meetings
126
+ */
127
+ private handleLocusMercury;
128
+ /**
129
+ * handles mecury offline event
130
+ * @returns {undefined}
131
+ * @private
132
+ * @memberof Meetings
133
+ */
134
+ private handleMercuryOffline;
135
+ /**
136
+ * registers for locus and roap mercury events
137
+ * @returns {undefined}
138
+ * @private
139
+ * @memberof Meetings
140
+ */
141
+ private listenForEvents;
142
+ /**
143
+ * stops listening for locus and roap mercury events
144
+ * @returns {undefined}
145
+ * @private
146
+ * @memberof Meetings
147
+ */
148
+ private stopListeningForEvents;
149
+ /**
150
+ * @returns {undefined}
151
+ * @private
152
+ * @memberof Meetings
153
+ */
154
+ private onReady;
155
+ /**
156
+ * API to toggle unified meetings
157
+ * @param {Boolean} changeState
158
+ * @private
159
+ * @memberof Meetings
160
+ * @returns {undefined}
161
+ */
162
+ private _toggleUnifiedMeetings;
163
+ /**
164
+ * API to toggle starting adhoc meeting
165
+ * @param {Boolean} changeState
166
+ * @private
167
+ * @memberof Meetings
168
+ * @returns {undefined}
169
+ */
170
+ private _toggleAdhocMeetings;
171
+ /**
172
+ * API to toggle TCP reachability, needs to be called before webex.meetings.register()
173
+ * @param {Boolean} newValue
174
+ * @private
175
+ * @memberof Meetings
176
+ * @returns {undefined}
177
+ */
178
+ private _toggleTcpReachability;
179
+ /**
180
+ * API to toggle TLS reachability, needs to be called before webex.meetings.register()
181
+ * @param {Boolean} newValue
182
+ * @private
183
+ * @memberof Meetings
184
+ * @returns {undefined}
185
+ */
186
+ private _toggleTlsReachability;
187
+ /**
188
+ * Explicitly sets up the meetings plugin by registering
189
+ * the device, connecting to mercury, and listening for locus events.
190
+ *
191
+ * @returns {Promise}
192
+ * @public
193
+ * @memberof Meetings
194
+ */
195
+ register(): Promise<void>;
196
+ /**
197
+ * Explicitly tears down the meetings plugin by deregistering
198
+ * the device, disconnecting from mercury, and stops listening to locus events
199
+ *
200
+ * @returns {Promise}
201
+ * @public
202
+ * @memberof Meetings
203
+ */
204
+ unregister(): any;
205
+ /**
206
+ * Creates a noise reduction effect
207
+ *
208
+ * @param {INoiseReductionEffect} options optional custom effect options
209
+ * @returns {Promise<effect>} noise reduction effect.
210
+ * @public
211
+ * @memberof Meetings
212
+ */
213
+ createNoiseReductionEffect: (options?: INoiseReductionEffect) => Promise<mediaHelpersModule.NoiseReductionEffect>;
214
+ /**
215
+ * Creates a virtual background effect
216
+ *
217
+ * @param {IVirtualBackgroundEffect} options optional custom effect options
218
+ * @returns {Promise<effect>} virtual background effect.
219
+ * @public
220
+ * @memberof Meetings
221
+ */
222
+ createVirtualBackgroundEffect: (options?: IVirtualBackgroundEffect) => Promise<mediaHelpersModule.VirtualBackgroundEffect>;
223
+ /**
224
+ * Uploads logs to the webex services for tracking
225
+ * @param {Object} [options={}]
226
+ * @param {String} [options.callStart] Call Start Time
227
+ * @param {String} [options.feedbackId] ID used for tracking
228
+ * @param {String} [options.locusId]
229
+ * @param {String} [options.correlationId]
230
+ * @param {String} [options.meetingId] webex meeting ID
231
+ * @param {String} [options.userId] userId
232
+ * @param {String} [options.orgId] org id
233
+ * @returns {String} feedback ID logs were submitted under
234
+ */
235
+ uploadLogs(options?: {
236
+ autoupload?: boolean;
237
+ callStart?: string;
238
+ feedbackId?: string;
239
+ locussessionid?: string;
240
+ locusId?: string;
241
+ correlationId?: string;
242
+ meetingId?: string;
243
+ userId?: string;
244
+ orgId?: string;
245
+ }): any;
246
+ /**
247
+ * gets the reachability instance for Meetings
248
+ * @returns {Reachability}
249
+ * @public
250
+ * @memberof Meetings
251
+ */
252
+ getReachability(): Reachability;
253
+ /**
254
+ * initializes and starts gathering reachability for Meetings
255
+ * @returns {Promise}
256
+ * @public
257
+ * @memberof Meetings
258
+ */
259
+ startReachability(): Promise<import("../reachability").ReachabilityResults>;
260
+ /**
261
+ * Get geoHint for info for meetings
262
+ * @returns {Promise}
263
+ * @private
264
+ * @memberof Meetings
265
+ */
266
+ getGeoHint(): any;
267
+ /**
268
+ * Fetch user preferred webex site information
269
+ * This also has other infomation about the user
270
+ * @returns {Promise}
271
+ * @private
272
+ * @memberof Meetings
273
+ */
274
+ fetchUserPreferredWebexSite(): any;
275
+ /**
276
+ * gets the personal meeting room instance, for saved PMR values for this user
277
+ * @returns {PersonalMeetingRoom}
278
+ * @public
279
+ * @memberof Meetings
280
+ */
281
+ getPersonalMeetingRoom(): any;
282
+ /**
283
+ * @param {Meeting} meeting
284
+ * @param {Object} reason
285
+ * @param {String} type
286
+ * @returns {Undefined}
287
+ * @private
288
+ * @memberof Meetings
289
+ */
290
+ private destroy;
291
+ /**
292
+ * Create a meeting or return an existing meeting.
293
+ *
294
+ * When meeting info passed it should be complete, e.g.: fetched after password or captcha provided
295
+ *
296
+ * @param {string} destination - sipURL, phonenumber, or locus object}
297
+ * @param {string} [type] - the optional specified type, such as locusId
298
+ * @param {Boolean} useRandomDelayForInfo - whether a random delay should be added to fetching meeting info
299
+ * @param {Object} infoExtraParams extra parameters to be provided when fetching meeting info
300
+ * @param {string} correlationId - the optional specified correlationId (callStateForMetrics.correlationId can be provided instead)
301
+ * @param {Boolean} failOnMissingMeetingInfo - whether to throw an error if meeting info fails to fetch (for calls that are not 1:1 or content share)
302
+ * @param {CallStateForMetrics} callStateForMetrics - information about call state for metrics
303
+ * @param {Object} [meetingInfo] - Pre-fetched complete meeting info
304
+ * @param {String} [meetingLookupUrl] - meeting info prefetch url
305
+ * @returns {Promise<Meeting>} A new Meeting.
306
+ * @public
307
+ * @memberof Meetings
308
+ */
309
+ create(destination: string, type?: string, useRandomDelayForInfo?: boolean, infoExtraParams?: {}, correlationId?: string, failOnMissingMeetingInfo?: boolean, callStateForMetrics?: CallStateForMetrics, meetingInfo?: any, meetingLookupUrl?: any): any;
310
+ /**
311
+ * Create meeting
312
+ *
313
+ * When meeting info passed it should be complete, e.g.: fetched after password or captcha provided
314
+ *
315
+ * @param {String} destination see create()
316
+ * @param {String} type see create()
317
+ * @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
318
+ * @param {Object} infoExtraParams extra parameters to be provided when fetching meeting info
319
+ * @param {CallStateForMetrics} callStateForMetrics - information about call state for metrics
320
+ * @param {Boolean} failOnMissingMeetingInfo - whether to throw an error if meeting info fails to fetch (for calls that are not 1:1 or content share)
321
+ * @param {Object} [meetingInfo] - Pre-fetched complete meeting info
322
+ * @param {String} [meetingLookupUrl] - meeting info prefetch url
323
+ * @returns {Promise} a new meeting instance complete with meeting info and destination
324
+ * @private
325
+ * @memberof Meetings
326
+ */
327
+ private createMeeting;
328
+ /**
329
+ * get a specifc meeting given it's type matched to the value, i.e., locus url
330
+ * @param {String} type
331
+ * @param {Object} value
332
+ * @returns {Meeting}
333
+ * @public
334
+ * @memberof Meetings
335
+ */
336
+ getMeetingByType(type: string, value: object): any;
337
+ /**
338
+ * Get all meetings.
339
+ * @returns {Object} All currently active meetings.
340
+ * @public
341
+ * @memberof Meetings
342
+ */
343
+ getAllMeetings(): any;
344
+ /**
345
+ * Syncs all the meetings from server. Does nothing and returns immediately if unverified guest.
346
+ * @param {boolean} keepOnlyLocusMeetings - whether the sync should keep only locus meetings or any other meeting in meetingCollection
347
+ * @returns {Promise<void>}
348
+ * @public
349
+ * @memberof Meetings
350
+ */
351
+ syncMeetings({ keepOnlyLocusMeetings }?: {
352
+ keepOnlyLocusMeetings?: boolean;
353
+ }): Promise<void>;
354
+ /**
355
+ * sort out locus array for initial creating
356
+ * @param {Array} loci original locus array
357
+ * @returns {undefined}
358
+ * @public
359
+ * @memberof Meetings
360
+ */
361
+ sortLocusArrayToUpdate(loci: any[]): any[];
362
+ /**
363
+ * check breakout locus which waiting for main locus's meeting to be created, then handle the breakout locus
364
+ * @param {Object} newCreatedLocus the locus which just create meeting object of it
365
+ * @returns {undefined}
366
+ * @public
367
+ * @memberof Meetings
368
+ */
369
+ checkHandleBreakoutLocus(newCreatedLocus: any): void;
370
+ /**
371
+ * Get the logger instance for plugin-meetings
372
+ * @returns {Logger}
373
+ */
374
+ getLogger(): any;
375
+ /**
376
+ * Returns the first meeting it finds that has the webrtc media connection created.
377
+ * Useful for debugging in the console.
378
+ *
379
+ * @private
380
+ * @returns {Meeting} Meeting object that has a webrtc media connection, else undefined
381
+ */
382
+ getActiveWebrtcMeeting(): any;
383
+ }
@@ -0,0 +1,4 @@
1
+ import type { NoiseReductionEffectOptions, VirtualBackgroundEffectOptions } from '@webex/media-helpers';
2
+ type INoiseReductionEffect = Omit<NoiseReductionEffectOptions, 'authToken' | 'workletProcessorUrl' | 'legacyProcessorUrl'>;
3
+ type IVirtualBackgroundEffect = Omit<VirtualBackgroundEffectOptions, 'authToken'>;
4
+ export type { INoiseReductionEffect, IVirtualBackgroundEffect };
@@ -0,0 +1,27 @@
1
+ import { StatelessWebexPlugin } from '@webex/webex-core';
2
+ /**
3
+ * @class MeetingRequest
4
+ */
5
+ export default class MeetingRequest extends StatelessWebexPlugin {
6
+ /**
7
+ * get all the active meetings for the user
8
+ * @returns {Array} return locus array
9
+ */
10
+ getActiveMeetings(): any;
11
+ /**
12
+ * fetch geoHit for the user
13
+ * @returns {Promise<object>} geoHintInfo
14
+ */
15
+ fetchGeoHint(): any;
16
+ /**
17
+ * get user meeting preference information
18
+ * @returns {Promise<object>} getMeetingPreferences
19
+ */
20
+ getMeetingPreferences(): any;
21
+ /**
22
+ * Fetches indivdual locus rather then getting all at once
23
+ * @param {object} responseBody determine the locus and fetch them if a remoteUrl is given
24
+ * @returns {Promise} returns locusObject array
25
+ */
26
+ determineRedirections(responseBody: any): Promise<any>;
27
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Meetings Media Codec Missing Event
3
+ * Emitted when H.264 codec is not
4
+ * found in the browser.
5
+ * @event media:codec:missing
6
+ * @instance
7
+ * @memberof MeetingsUtil
8
+ */
9
+ /**
10
+ * Meetings Media Codec Loaded Event
11
+ * Emitted when H.264 codec has been
12
+ * loaded in the browser.
13
+ * @event media:codec:loaded
14
+ * @instance
15
+ * @memberof MeetingsUtil
16
+ */
17
+ declare const MeetingsUtil: any;
18
+ export default MeetingsUtil;
@@ -0,0 +1,160 @@
1
+ import { IExternalRoles, IMediaStatus } from './types';
2
+ /**
3
+ * @class Member
4
+ */
5
+ export default class Member {
6
+ associatedUser: any;
7
+ canReclaimHost: boolean;
8
+ id: any;
9
+ isAudioMuted: any;
10
+ isContentSharing: any;
11
+ isDevice: any;
12
+ isGuest: any;
13
+ isHandRaised: any;
14
+ isHost: any;
15
+ isInLobby: any;
16
+ isInMeeting: any;
17
+ isModerator: any;
18
+ isModeratorAssignmentProhibited: any;
19
+ isMutable: any;
20
+ isNotAdmitted: any;
21
+ isRecording: any;
22
+ isRemovable: any;
23
+ isSelf: any;
24
+ isUser: any;
25
+ isVideoMuted: any;
26
+ roles: IExternalRoles;
27
+ mediaStatus: IMediaStatus;
28
+ name: any;
29
+ participant: any;
30
+ status: any;
31
+ supportsBreakouts: boolean;
32
+ supportsInterpretation: boolean;
33
+ supportLiveAnnotation: boolean;
34
+ type: any;
35
+ namespace: string;
36
+ /**
37
+ * @param {Object} participant - the locus participant
38
+ * @param {Object} [options] - constructor params
39
+ * @param {String} options.selfId
40
+ * @param {String} options.hostId
41
+ * @param {String} options.contentSharingId
42
+ * @param {String} options.type
43
+ * @returns {Member}
44
+ * @memberof Member
45
+ */
46
+ constructor(participant: object, options?: {
47
+ selfId: string;
48
+ hostId: string;
49
+ contentSharingId: string;
50
+ type: string;
51
+ } | any);
52
+ /**
53
+ * set all the participant values extracted directly from locus participant
54
+ * @param {Object} participant the locus participant object
55
+ * @returns {undefined}
56
+ * @private
57
+ * @memberof Member
58
+ */
59
+ private processParticipant;
60
+ /**
61
+ * Use the members options and participant values to set on the member
62
+ * @param {Object} participant the locus participant object
63
+ * @param {Object} options the passed in options, what was set on members
64
+ * @returns {undefined}
65
+ * @private
66
+ * @memberof Member
67
+ */
68
+ private processParticipantOptions;
69
+ /**
70
+ * processes what already exists on the member to determine other info about the member
71
+ * @returns {undefined}
72
+ * @private
73
+ * @memberof Member
74
+ */
75
+ private processMember;
76
+ /**
77
+ * set the status on member object
78
+ * @param {Object} participant the locus participant object
79
+ * @returns {undefined}
80
+ * @private
81
+ * @memberof Member
82
+ */
83
+ private processStatus;
84
+ /**
85
+ * set the isContentSharing on member
86
+ * @param {Boolean} flag
87
+ * @returns {undefined}
88
+ * @public
89
+ * @memberof Member
90
+ */
91
+ setIsContentSharing(flag: boolean): void;
92
+ /**
93
+ * set the isHost on member
94
+ * @param {Boolean} flag
95
+ * @returns {undefined}
96
+ * @public
97
+ * @memberof Member
98
+ */
99
+ setIsHost(flag: boolean): void;
100
+ /**
101
+ * set the isSelf on member
102
+ * @param {Boolean} flag
103
+ * @returns {undefined}
104
+ * @public
105
+ * @memberof Member
106
+ */
107
+ setIsSelf(flag: boolean): void;
108
+ /**
109
+ * determine if this member is content sharing
110
+ * @param {Object} participant
111
+ * @param {String} sharingId
112
+ * @returns {undefined}
113
+ * @public
114
+ * @memberof Member
115
+ */
116
+ processIsContentSharing(participant: object, sharingId: string): void;
117
+ /**
118
+ * Determine if this member is recording
119
+ * @param {Object} participant
120
+ * @param {String} recordingId
121
+ * @returns {undefined}
122
+ * @public
123
+ * @memberof Member
124
+ */
125
+ processIsRecording(participant: object, recordingId: string): void;
126
+ /**
127
+ * determine if this member is the self
128
+ * @param {Object} participant
129
+ * @param {String} selfId
130
+ * @returns {undefined}
131
+ * @private
132
+ * @memberof Member
133
+ */
134
+ private processIsSelf;
135
+ /**
136
+ * determine if this member is the host
137
+ * @param {Object} participant
138
+ * @param {String} hostId
139
+ * @returns {undefined}
140
+ * @private
141
+ * @memberof Member
142
+ */
143
+ private processIsHost;
144
+ /**
145
+ * process the roles that have been applied to this member
146
+ * @param {Object} participant
147
+ * @returns {undefined}
148
+ * @private
149
+ * @memberof Member
150
+ */
151
+ private processRoles;
152
+ /**
153
+ * set the type for the member, could be MEETING or CALL
154
+ * @param {String} type
155
+ * @returns {undefined}
156
+ * @private
157
+ * @memberof Member
158
+ */
159
+ private processType;
160
+ }
@@ -0,0 +1,32 @@
1
+ export interface IExternalRoles {
2
+ cohost: boolean;
3
+ moderator: boolean;
4
+ presenter: boolean;
5
+ }
6
+ export declare enum ServerRoles {
7
+ Cohost = "COHOST",
8
+ Moderator = "MODERATOR",
9
+ Presenter = "PRESENTER"
10
+ }
11
+ export type ServerRoleShape = {
12
+ type: ServerRoles;
13
+ hasRole: boolean;
14
+ };
15
+ export type ParticipantWithRoles = {
16
+ controls: {
17
+ role: {
18
+ roles: Array<ServerRoleShape>;
19
+ };
20
+ };
21
+ };
22
+ export declare enum MediaStatus {
23
+ RECVONLY = "RECVONLY",
24
+ SENDONLY = "SENDONLY",
25
+ SENDRECV = "SENDRECV",
26
+ INACTIVE = "INACTIVE",
27
+ UNKNOWN = "UNKNOWN"
28
+ }
29
+ export interface IMediaStatus {
30
+ audio: MediaStatus;
31
+ video: MediaStatus;
32
+ }
@@ -0,0 +1,2 @@
1
+ declare const MemberUtil: any;
2
+ export default MemberUtil;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @class MembersCollection
3
+ */
4
+ export default class MembersCollection {
5
+ members: any;
6
+ namespace: string;
7
+ /**
8
+ * @param {Object} locus
9
+ * @memberof Members
10
+ */
11
+ constructor();
12
+ set(id: any, member: any): void;
13
+ setAll(members: any): void;
14
+ /**
15
+ * @param {String} id
16
+ * @returns {Member}
17
+ */
18
+ get(id: string): any;
19
+ /**
20
+ * @returns {Object} returns an object map of Member instances
21
+ * @memberof MembersCollection
22
+ */
23
+ getAll(): any;
24
+ /**
25
+ * @returns {void}
26
+ * reset members
27
+ */
28
+ reset(): void;
29
+ }