@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.
Files changed (156) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/common/errors/webex-errors.js +12 -2
  4. package/dist/common/errors/webex-errors.js.map +1 -1
  5. package/dist/config.js +1 -0
  6. package/dist/config.js.map +1 -1
  7. package/dist/constants.js +16 -121
  8. package/dist/constants.js.map +1 -1
  9. package/dist/controls-options-manager/enums.js +2 -0
  10. package/dist/controls-options-manager/enums.js.map +1 -1
  11. package/dist/controls-options-manager/types.js.map +1 -1
  12. package/dist/controls-options-manager/util.js +52 -0
  13. package/dist/controls-options-manager/util.js.map +1 -1
  14. package/dist/interpretation/index.js +1 -1
  15. package/dist/interpretation/siLanguage.js +1 -1
  16. package/dist/locus-info/controlsUtils.js +28 -10
  17. package/dist/locus-info/controlsUtils.js.map +1 -1
  18. package/dist/locus-info/index.js +20 -1
  19. package/dist/locus-info/index.js.map +1 -1
  20. package/dist/locus-info/selfUtils.js +405 -418
  21. package/dist/locus-info/selfUtils.js.map +1 -1
  22. package/dist/media/index.js +8 -16
  23. package/dist/media/index.js.map +1 -1
  24. package/dist/meeting/in-meeting-actions.js +13 -1
  25. package/dist/meeting/in-meeting-actions.js.map +1 -1
  26. package/dist/meeting/index.js +548 -288
  27. package/dist/meeting/index.js.map +1 -1
  28. package/dist/meeting/locusMediaRequest.js +0 -17
  29. package/dist/meeting/locusMediaRequest.js.map +1 -1
  30. package/dist/meeting/muteState.js +0 -2
  31. package/dist/meeting/muteState.js.map +1 -1
  32. package/dist/meeting/request.js +30 -0
  33. package/dist/meeting/request.js.map +1 -1
  34. package/dist/meeting/request.type.js.map +1 -1
  35. package/dist/meeting/util.js +13 -2
  36. package/dist/meeting/util.js.map +1 -1
  37. package/dist/meeting-info/meeting-info-v2.js +359 -60
  38. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  39. package/dist/meetings/index.js +91 -1
  40. package/dist/meetings/index.js.map +1 -1
  41. package/dist/meetings/util.js +14 -0
  42. package/dist/meetings/util.js.map +1 -1
  43. package/dist/member/index.js +10 -0
  44. package/dist/member/index.js.map +1 -1
  45. package/dist/member/util.js +3 -0
  46. package/dist/member/util.js.map +1 -1
  47. package/dist/members/index.js +23 -0
  48. package/dist/members/index.js.map +1 -1
  49. package/dist/members/request.js +21 -0
  50. package/dist/members/request.js.map +1 -1
  51. package/dist/members/util.js +15 -0
  52. package/dist/members/util.js.map +1 -1
  53. package/dist/metrics/constants.js +9 -0
  54. package/dist/metrics/constants.js.map +1 -1
  55. package/dist/reachability/clusterReachability.js +63 -27
  56. package/dist/reachability/clusterReachability.js.map +1 -1
  57. package/dist/reachability/index.js +112 -47
  58. package/dist/reachability/index.js.map +1 -1
  59. package/dist/reachability/reachability.types.js +14 -0
  60. package/dist/reachability/reachability.types.js.map +1 -1
  61. package/dist/reachability/request.js +19 -3
  62. package/dist/reachability/request.js.map +1 -1
  63. package/dist/reconnection-manager/index.js +2 -2
  64. package/dist/reconnection-manager/index.js.map +1 -1
  65. package/dist/recording-controller/util.js +5 -5
  66. package/dist/recording-controller/util.js.map +1 -1
  67. package/dist/roap/index.js.map +1 -1
  68. package/dist/roap/turnDiscovery.js +45 -27
  69. package/dist/roap/turnDiscovery.js.map +1 -1
  70. package/dist/roap/types.js +17 -0
  71. package/dist/roap/types.js.map +1 -0
  72. package/dist/types/common/errors/webex-errors.d.ts +7 -1
  73. package/dist/types/config.d.ts +1 -0
  74. package/dist/types/constants.d.ts +11 -85
  75. package/dist/types/controls-options-manager/enums.d.ts +3 -1
  76. package/dist/types/controls-options-manager/types.d.ts +7 -1
  77. package/dist/types/locus-info/index.d.ts +1 -0
  78. package/dist/types/locus-info/selfUtils.d.ts +247 -1
  79. package/dist/types/meeting/in-meeting-actions.d.ts +12 -0
  80. package/dist/types/meeting/index.d.ts +54 -1
  81. package/dist/types/meeting/muteState.d.ts +0 -1
  82. package/dist/types/meeting/request.d.ts +12 -1
  83. package/dist/types/meeting/request.type.d.ts +6 -0
  84. package/dist/types/meeting/util.d.ts +3 -1
  85. package/dist/types/meeting-info/meeting-info-v2.d.ts +80 -0
  86. package/dist/types/meetings/index.d.ts +38 -0
  87. package/dist/types/member/index.d.ts +1 -0
  88. package/dist/types/members/index.d.ts +8 -0
  89. package/dist/types/members/request.d.ts +19 -0
  90. package/dist/types/members/util.d.ts +13 -0
  91. package/dist/types/metrics/constants.d.ts +9 -0
  92. package/dist/types/reachability/clusterReachability.d.ts +15 -7
  93. package/dist/types/reachability/index.d.ts +10 -1
  94. package/dist/types/reachability/reachability.types.d.ts +5 -0
  95. package/dist/types/roap/index.d.ts +3 -2
  96. package/dist/types/roap/turnDiscovery.d.ts +5 -17
  97. package/dist/types/roap/types.d.ts +16 -0
  98. package/dist/webinar/index.js +1 -1
  99. package/package.json +23 -23
  100. package/src/common/errors/webex-errors.ts +8 -1
  101. package/src/config.ts +1 -0
  102. package/src/constants.ts +18 -90
  103. package/src/controls-options-manager/enums.ts +2 -0
  104. package/src/controls-options-manager/types.ts +11 -1
  105. package/src/controls-options-manager/util.ts +62 -0
  106. package/src/locus-info/controlsUtils.ts +44 -14
  107. package/src/locus-info/index.ts +23 -1
  108. package/src/locus-info/selfUtils.ts +451 -447
  109. package/src/media/index.ts +11 -21
  110. package/src/meeting/in-meeting-actions.ts +24 -0
  111. package/src/meeting/index.ts +364 -92
  112. package/src/meeting/locusMediaRequest.ts +0 -18
  113. package/src/meeting/muteState.ts +0 -2
  114. package/src/meeting/request.ts +36 -1
  115. package/src/meeting/request.type.ts +7 -0
  116. package/src/meeting/util.ts +11 -2
  117. package/src/meeting-info/meeting-info-v2.ts +247 -6
  118. package/src/meetings/index.ts +107 -1
  119. package/src/meetings/util.ts +18 -0
  120. package/src/member/index.ts +11 -0
  121. package/src/member/util.ts +3 -0
  122. package/src/members/index.ts +25 -0
  123. package/src/members/request.ts +26 -0
  124. package/src/members/util.ts +16 -0
  125. package/src/metrics/constants.ts +9 -0
  126. package/src/reachability/clusterReachability.ts +73 -26
  127. package/src/reachability/index.ts +70 -1
  128. package/src/reachability/reachability.types.ts +6 -0
  129. package/src/reachability/request.ts +7 -0
  130. package/src/reconnection-manager/index.ts +2 -2
  131. package/src/recording-controller/util.ts +17 -13
  132. package/src/roap/index.ts +3 -7
  133. package/src/roap/turnDiscovery.ts +34 -39
  134. package/src/roap/types.ts +23 -0
  135. package/test/unit/spec/controls-options-manager/util.js +120 -0
  136. package/test/unit/spec/locus-info/controlsUtils.js +103 -9
  137. package/test/unit/spec/locus-info/index.js +28 -0
  138. package/test/unit/spec/media/index.ts +36 -16
  139. package/test/unit/spec/meeting/in-meeting-actions.ts +15 -4
  140. package/test/unit/spec/meeting/index.js +518 -34
  141. package/test/unit/spec/meeting/locusMediaRequest.ts +0 -30
  142. package/test/unit/spec/meeting/muteState.js +0 -2
  143. package/test/unit/spec/meeting/request.js +32 -1
  144. package/test/unit/spec/meeting/utils.js +119 -18
  145. package/test/unit/spec/meeting-info/meetinginfov2.js +443 -114
  146. package/test/unit/spec/meetings/index.js +120 -2
  147. package/test/unit/spec/member/index.js +7 -0
  148. package/test/unit/spec/member/util.js +24 -0
  149. package/test/unit/spec/members/index.js +103 -26
  150. package/test/unit/spec/members/request.js +45 -22
  151. package/test/unit/spec/members/utils.js +33 -0
  152. package/test/unit/spec/reachability/clusterReachability.ts +88 -56
  153. package/test/unit/spec/reachability/index.ts +101 -0
  154. package/test/unit/spec/reachability/request.js +47 -2
  155. package/test/unit/spec/reconnection-manager/index.js +4 -4
  156. 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 TurnServerInfo, type TurnDiscoverySkipReason } from '../roap/index';
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
  }
@@ -15,3 +15,9 @@ export type BrbOptions = {
15
15
  deviceUrl: string;
16
16
  selfId: string;
17
17
  };
18
+ export type PostMeetingDataConsentOptions = {
19
+ postMeetingDataConsent: boolean;
20
+ locusUrl: string;
21
+ deviceUrl: string;
22
+ selfId: string;
23
+ };
@@ -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) => 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
  *
@@ -16,6 +16,7 @@ export default class Member {
16
16
  isInMeeting: any;
17
17
  isModerator: any;
18
18
  isModeratorAssignmentProhibited: any;
19
+ isPresenterAssignmentProhibited: any;
19
20
  isMutable: any;
20
21
  isNotAdmitted: any;
21
22
  isRecording: any;
@@ -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, { TurnDiscoveryResult } from './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, } from './turnDiscovery';
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
- declare const TurnDiscoverySkipReason: {
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
+ };
@@ -458,7 +458,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
458
458
  }, _callee7);
459
459
  }))();
460
460
  },
461
- version: "3.8.0-next.6"
461
+ version: "3.8.0-next.60"
462
462
  });
463
463
  var _default = exports.default = Webinar;
464
464
  //# sourceMappingURL=index.js.map