@webex/plugin-meetings 3.8.0-next.8 → 3.8.0-next.81

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 (171) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +70 -6
  3. package/dist/breakouts/index.js.map +1 -1
  4. package/dist/common/errors/webex-errors.js +12 -2
  5. package/dist/common/errors/webex-errors.js.map +1 -1
  6. package/dist/config.js +5 -1
  7. package/dist/config.js.map +1 -1
  8. package/dist/constants.js +20 -123
  9. package/dist/constants.js.map +1 -1
  10. package/dist/controls-options-manager/enums.js +2 -0
  11. package/dist/controls-options-manager/enums.js.map +1 -1
  12. package/dist/controls-options-manager/types.js.map +1 -1
  13. package/dist/controls-options-manager/util.js +52 -0
  14. package/dist/controls-options-manager/util.js.map +1 -1
  15. package/dist/interpretation/index.js +1 -1
  16. package/dist/interpretation/siLanguage.js +1 -1
  17. package/dist/locus-info/controlsUtils.js +28 -10
  18. package/dist/locus-info/controlsUtils.js.map +1 -1
  19. package/dist/locus-info/index.js +62 -12
  20. package/dist/locus-info/index.js.map +1 -1
  21. package/dist/locus-info/selfUtils.js +432 -418
  22. package/dist/locus-info/selfUtils.js.map +1 -1
  23. package/dist/media/index.js +17 -17
  24. package/dist/media/index.js.map +1 -1
  25. package/dist/media/properties.js +94 -6
  26. package/dist/media/properties.js.map +1 -1
  27. package/dist/meeting/brbState.js +6 -0
  28. package/dist/meeting/brbState.js.map +1 -1
  29. package/dist/meeting/in-meeting-actions.js +17 -1
  30. package/dist/meeting/in-meeting-actions.js.map +1 -1
  31. package/dist/meeting/index.js +570 -302
  32. package/dist/meeting/index.js.map +1 -1
  33. package/dist/meeting/locusMediaRequest.js +0 -17
  34. package/dist/meeting/locusMediaRequest.js.map +1 -1
  35. package/dist/meeting/muteState.js +0 -2
  36. package/dist/meeting/muteState.js.map +1 -1
  37. package/dist/meeting/request.js +30 -0
  38. package/dist/meeting/request.js.map +1 -1
  39. package/dist/meeting/request.type.js.map +1 -1
  40. package/dist/meeting/util.js +13 -2
  41. package/dist/meeting/util.js.map +1 -1
  42. package/dist/meeting-info/meeting-info-v2.js +373 -68
  43. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  44. package/dist/meeting-info/utilv2.js +5 -1
  45. package/dist/meeting-info/utilv2.js.map +1 -1
  46. package/dist/meetings/index.js +136 -1
  47. package/dist/meetings/index.js.map +1 -1
  48. package/dist/meetings/util.js +14 -0
  49. package/dist/meetings/util.js.map +1 -1
  50. package/dist/member/index.js +10 -0
  51. package/dist/member/index.js.map +1 -1
  52. package/dist/member/util.js +330 -353
  53. package/dist/member/util.js.map +1 -1
  54. package/dist/members/index.js +42 -0
  55. package/dist/members/index.js.map +1 -1
  56. package/dist/members/request.js +38 -0
  57. package/dist/members/request.js.map +1 -1
  58. package/dist/members/util.js +36 -1
  59. package/dist/members/util.js.map +1 -1
  60. package/dist/metrics/constants.js +9 -0
  61. package/dist/metrics/constants.js.map +1 -1
  62. package/dist/reachability/clusterReachability.js +63 -27
  63. package/dist/reachability/clusterReachability.js.map +1 -1
  64. package/dist/reachability/index.js +112 -47
  65. package/dist/reachability/index.js.map +1 -1
  66. package/dist/reachability/reachability.types.js +14 -0
  67. package/dist/reachability/reachability.types.js.map +1 -1
  68. package/dist/reachability/request.js +19 -3
  69. package/dist/reachability/request.js.map +1 -1
  70. package/dist/reconnection-manager/index.js +2 -2
  71. package/dist/reconnection-manager/index.js.map +1 -1
  72. package/dist/roap/index.js.map +1 -1
  73. package/dist/roap/turnDiscovery.js +45 -27
  74. package/dist/roap/turnDiscovery.js.map +1 -1
  75. package/dist/roap/types.js +17 -0
  76. package/dist/roap/types.js.map +1 -0
  77. package/dist/types/common/errors/webex-errors.d.ts +7 -1
  78. package/dist/types/config.d.ts +3 -0
  79. package/dist/types/constants.d.ts +13 -85
  80. package/dist/types/controls-options-manager/enums.d.ts +3 -1
  81. package/dist/types/controls-options-manager/types.d.ts +7 -1
  82. package/dist/types/locus-info/index.d.ts +3 -3
  83. package/dist/types/locus-info/selfUtils.d.ts +216 -1
  84. package/dist/types/media/properties.d.ts +15 -0
  85. package/dist/types/meeting/in-meeting-actions.d.ts +16 -0
  86. package/dist/types/meeting/index.d.ts +43 -1
  87. package/dist/types/meeting/muteState.d.ts +0 -1
  88. package/dist/types/meeting/request.d.ts +12 -1
  89. package/dist/types/meeting/request.type.d.ts +6 -0
  90. package/dist/types/meeting/util.d.ts +3 -1
  91. package/dist/types/meeting-info/meeting-info-v2.d.ts +82 -1
  92. package/dist/types/meetings/index.d.ts +57 -0
  93. package/dist/types/member/index.d.ts +1 -0
  94. package/dist/types/member/util.d.ts +159 -1
  95. package/dist/types/members/index.d.ts +15 -0
  96. package/dist/types/members/request.d.ts +26 -0
  97. package/dist/types/members/util.d.ts +27 -0
  98. package/dist/types/metrics/constants.d.ts +9 -0
  99. package/dist/types/reachability/clusterReachability.d.ts +15 -7
  100. package/dist/types/reachability/index.d.ts +10 -1
  101. package/dist/types/reachability/reachability.types.d.ts +5 -0
  102. package/dist/types/roap/index.d.ts +3 -2
  103. package/dist/types/roap/turnDiscovery.d.ts +5 -17
  104. package/dist/types/roap/types.d.ts +16 -0
  105. package/dist/webinar/index.js +1 -1
  106. package/package.json +24 -23
  107. package/src/breakouts/index.ts +69 -0
  108. package/src/common/errors/webex-errors.ts +8 -1
  109. package/src/config.ts +3 -0
  110. package/src/constants.ts +20 -90
  111. package/src/controls-options-manager/enums.ts +2 -0
  112. package/src/controls-options-manager/types.ts +11 -1
  113. package/src/controls-options-manager/util.ts +62 -0
  114. package/src/locus-info/controlsUtils.ts +44 -14
  115. package/src/locus-info/index.ts +56 -13
  116. package/src/locus-info/selfUtils.ts +496 -442
  117. package/src/media/index.ts +23 -21
  118. package/src/media/properties.ts +96 -0
  119. package/src/meeting/brbState.ts +7 -0
  120. package/src/meeting/in-meeting-actions.ts +32 -0
  121. package/src/meeting/index.ts +382 -93
  122. package/src/meeting/locusMediaRequest.ts +0 -18
  123. package/src/meeting/muteState.ts +0 -2
  124. package/src/meeting/request.ts +36 -1
  125. package/src/meeting/request.type.ts +7 -0
  126. package/src/meeting/util.ts +11 -2
  127. package/src/meeting-info/meeting-info-v2.ts +254 -8
  128. package/src/meeting-info/utilv2.ts +5 -0
  129. package/src/meetings/index.ts +148 -1
  130. package/src/meetings/util.ts +18 -0
  131. package/src/member/index.ts +13 -2
  132. package/src/member/util.ts +351 -348
  133. package/src/members/index.ts +47 -0
  134. package/src/members/request.ts +44 -0
  135. package/src/members/util.ts +43 -1
  136. package/src/metrics/constants.ts +9 -0
  137. package/src/reachability/clusterReachability.ts +73 -26
  138. package/src/reachability/index.ts +70 -1
  139. package/src/reachability/reachability.types.ts +6 -0
  140. package/src/reachability/request.ts +7 -0
  141. package/src/reconnection-manager/index.ts +2 -2
  142. package/src/roap/index.ts +3 -7
  143. package/src/roap/turnDiscovery.ts +34 -39
  144. package/src/roap/types.ts +23 -0
  145. package/test/unit/spec/breakouts/index.ts +167 -95
  146. package/test/unit/spec/controls-options-manager/util.js +120 -0
  147. package/test/unit/spec/locus-info/controlsUtils.js +103 -9
  148. package/test/unit/spec/locus-info/index.js +167 -73
  149. package/test/unit/spec/locus-info/selfUtils.js +98 -24
  150. package/test/unit/spec/media/index.ts +150 -18
  151. package/test/unit/spec/media/properties.ts +130 -0
  152. package/test/unit/spec/meeting/brbState.ts +19 -0
  153. package/test/unit/spec/meeting/in-meeting-actions.ts +19 -4
  154. package/test/unit/spec/meeting/index.js +557 -35
  155. package/test/unit/spec/meeting/locusMediaRequest.ts +0 -30
  156. package/test/unit/spec/meeting/muteState.js +0 -2
  157. package/test/unit/spec/meeting/request.js +32 -1
  158. package/test/unit/spec/meeting/utils.js +119 -18
  159. package/test/unit/spec/meeting-info/meetinginfov2.js +484 -114
  160. package/test/unit/spec/meeting-info/utilv2.js +19 -0
  161. package/test/unit/spec/meetings/index.js +146 -2
  162. package/test/unit/spec/member/index.js +7 -0
  163. package/test/unit/spec/member/util.js +24 -0
  164. package/test/unit/spec/members/index.js +140 -26
  165. package/test/unit/spec/members/request.js +68 -22
  166. package/test/unit/spec/members/utils.js +75 -0
  167. package/test/unit/spec/reachability/clusterReachability.ts +88 -56
  168. package/test/unit/spec/reachability/index.ts +101 -0
  169. package/test/unit/spec/reachability/request.js +47 -2
  170. package/test/unit/spec/reconnection-manager/index.js +4 -4
  171. package/test/unit/spec/roap/turnDiscovery.ts +110 -28
@@ -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 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';
@@ -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
@@ -533,6 +541,14 @@ export default class Meeting extends StatelessWebexPlugin {
533
541
  * @returns {string | undefined}
534
542
  */
535
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);
536
552
  /**
537
553
  * Set meeting info and trigger `MEETING_INFO_AVAILABLE` event
538
554
  * @param {any} info
@@ -864,6 +880,17 @@ export default class Meeting extends StatelessWebexPlugin {
864
880
  cancelPhoneInvite(invitee: {
865
881
  phoneNumber: string;
866
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;
867
894
  /**
868
895
  * Admit the guest(s) to the call once they are waiting.
869
896
  * If the host/cohost is in a breakout session, the locus url
@@ -1873,6 +1900,15 @@ export default class Meeting extends StatelessWebexPlugin {
1873
1900
  * @memberof Meeting
1874
1901
  */
1875
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>;
1876
1912
  /**
1877
1913
  * Throws if we don't have a media connection created
1878
1914
  *
@@ -1951,5 +1987,11 @@ export default class Meeting extends StatelessWebexPlugin {
1951
1987
  * @returns {Promise<void>}
1952
1988
  */
1953
1989
  checkAndRefreshPermissionToken(threshold: number, reason: string): Promise<void>;
1990
+ /**
1991
+ * Gets the media reachability metrics
1992
+ *
1993
+ * @returns {Promise<MediaReachabilityMetrics>}
1994
+ */
1995
+ private getMediaReachabilityMetricFields;
1954
1996
  }
1955
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
  }
@@ -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
@@ -158,6 +238,7 @@ export default class MeetingInfoV2 {
158
238
  * @param {Object} extraParams
159
239
  * @param {Object} options
160
240
  * @param {String} registrationId
241
+ * @param {String} fullSiteUrl
161
242
  * @returns {Promise} returns a meeting info object
162
243
  * @public
163
244
  * @memberof MeetingInfo
@@ -168,5 +249,5 @@ export default class MeetingInfoV2 {
168
249
  }, installedOrgID?: any, locusId?: any, extraParams?: object, options?: {
169
250
  meetingId?: string;
170
251
  sendCAevents?: boolean;
171
- }, registrationId?: string): Promise<any>;
252
+ }, registrationId?: string, fullSiteUrl?: string): Promise<any>;
172
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.
@@ -348,6 +376,15 @@ export default class Meetings extends WebexPlugin {
348
376
  * @memberof Meetings
349
377
  */
350
378
  private destroy;
379
+ /**
380
+ * Fetch static meeting link for given conversation url.
381
+ *
382
+ * @param {string} conversationUrl - url for conversation
383
+ * @returns {Promise}
384
+ * @public
385
+ * @memberof Meetings
386
+ */
387
+ fetchStaticMeetingLink(conversationUrl: string): Promise<any>;
351
388
  /**
352
389
  * Create a meeting or return an existing meeting.
353
390
  *
@@ -368,6 +405,26 @@ export default class Meetings extends WebexPlugin {
368
405
  * @memberof Meetings
369
406
  */
370
407
  create(destination: string, type?: DESTINATION_TYPE, useRandomDelayForInfo?: boolean, infoExtraParams?: {}, correlationId?: string, failOnMissingMeetingInfo?: boolean, callStateForMetrics?: CallStateForMetrics, meetingInfo?: any, meetingLookupUrl?: any, sessionCorrelationId?: string): any;
408
+ /**
409
+ * Enable static meeting links for given conversation url.
410
+ *
411
+ *
412
+ * @param {string} conversationUrl - url for conversation
413
+ * @returns {Promise}
414
+ * @public
415
+ * @memberof Meetings
416
+ */
417
+ enableStaticMeetingLink(conversationUrl: string): Promise<any>;
418
+ /**
419
+ * Disable static meeting links for given conversation url.
420
+ *
421
+ *
422
+ * @param {string} conversationUrl - url for conversation
423
+ * @returns {Promise}
424
+ * @public
425
+ * @memberof Meetings
426
+ */
427
+ disableStaticMeetingLink(conversationUrl: string): Promise<any>;
371
428
  /**
372
429
  * Create meeting
373
430
  *
@@ -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;
@@ -1,2 +1,160 @@
1
- declare const MemberUtil: any;
1
+ import { IExternalRoles, ParticipantWithRoles, ServerRoles, ServerRoleShape, IMediaStatus, ParticipantWithBrb } from './types';
2
+ declare const MemberUtil: {
3
+ /**
4
+ * @param {Object} participant - The locus participant object.
5
+ * @returns {Boolean}
6
+ */
7
+ canReclaimHost: (participant: any) => any;
8
+ /**
9
+ * @param {Object} participant - The locus participant object.
10
+ * @returns {[ServerRoleShape]}
11
+ */
12
+ getControlsRoles: (participant: ParticipantWithRoles) => Array<ServerRoleShape>;
13
+ /**
14
+ * Checks if the participant has the brb status enabled.
15
+ *
16
+ * @param {ParticipantWithBrb} participant - The locus participant object.
17
+ * @returns {boolean} - True if the participant has brb enabled, false otherwise.
18
+ */
19
+ isBrb: (participant: ParticipantWithBrb) => boolean;
20
+ /**
21
+ * @param {Object} participant - The locus participant object.
22
+ * @param {ServerRoles} controlRole the search role
23
+ * @returns {Boolean}
24
+ */
25
+ hasRole: (participant: any, controlRole: ServerRoles) => boolean;
26
+ /**
27
+ * @param {Object} participant - The locus participant object.
28
+ * @returns {Boolean}
29
+ */
30
+ hasCohost: (participant: ParticipantWithRoles) => boolean;
31
+ /**
32
+ * @param {Object} participant - The locus participant object.
33
+ * @returns {Boolean}
34
+ */
35
+ hasModerator: (participant: ParticipantWithRoles) => boolean;
36
+ /**
37
+ * @param {Object} participant - The locus participant object.
38
+ * @returns {Boolean}
39
+ */
40
+ hasPresenter: (participant: ParticipantWithRoles) => boolean;
41
+ /**
42
+ * @param {Object} participant - The locus participant object.
43
+ * @returns {IExternalRoles}
44
+ */
45
+ extractControlRoles: (participant: ParticipantWithRoles) => IExternalRoles;
46
+ /**
47
+ * @param {Object} participant - The locus participant object.
48
+ * @returns {Boolean}
49
+ */
50
+ isUser: (participant: any) => boolean;
51
+ isModerator: (participant: any) => any;
52
+ /**
53
+ * @param {Object} participant - The locus participant object.
54
+ * @returns {Boolean}
55
+ */
56
+ isGuest: (participant: any) => any;
57
+ /**
58
+ * @param {Object} participant - The locus participant object.
59
+ * @returns {Boolean}
60
+ */
61
+ isDevice: (participant: any) => boolean;
62
+ isModeratorAssignmentProhibited: (participant: any) => any;
63
+ isPresenterAssignmentProhibited: (participant: any) => any;
64
+ /**
65
+ * checks to see if the participant id is the same as the passed id
66
+ * there are multiple ids that can be used
67
+ * @param {Object} participant - The locus participant object.
68
+ * @param {String} id
69
+ * @returns {Boolean}
70
+ */
71
+ isSame: (participant: any, id: string) => boolean;
72
+ /**
73
+ * checks to see if the participant id is the same as the passed id for associated devices
74
+ * there are multiple ids that can be used
75
+ * @param {Object} participant - The locus participant object.
76
+ * @param {String} id
77
+ * @returns {Boolean}
78
+ */
79
+ isAssociatedSame: (participant: any, id: string) => any;
80
+ /**
81
+ * @param {Object} participant - The locus participant object.
82
+ * @param {Boolean} isGuest
83
+ * @param {String} status
84
+ * @returns {Boolean}
85
+ */
86
+ isNotAdmitted: (participant: any, isGuest: boolean, status: string) => boolean;
87
+ /**
88
+ * @param {Object} participant - The locus participant object.
89
+ * @returns {Boolean}
90
+ */
91
+ isAudioMuted: (participant: any) => any;
92
+ /**
93
+ * @param {Object} participant - The locus participant object.
94
+ * @returns {Boolean}
95
+ */
96
+ isVideoMuted: (participant: any) => boolean;
97
+ /**
98
+ * @param {Object} participant - The locus participant object.
99
+ * @returns {Boolean}
100
+ */
101
+ isHandRaised: (participant: any) => any;
102
+ /**
103
+ * @param {Object} participant - The locus participant object.
104
+ * @returns {Boolean}
105
+ */
106
+ isBreakoutsSupported: (participant: any) => boolean;
107
+ /**
108
+ * @param {Object} participant - The locus participant object.
109
+ * @returns {Boolean}
110
+ */
111
+ isInterpretationSupported: (participant: any) => boolean;
112
+ /**
113
+ * @param {Object} participant - The locus participant object.
114
+ * @returns {Boolean}
115
+ */
116
+ isLiveAnnotationSupported: (participant: any) => boolean;
117
+ /**
118
+ * utility method for audio/video muted status
119
+ * @param {any} participant
120
+ * @param {String} statusAccessor
121
+ * @param {String} controlsAccessor
122
+ * @returns {Boolean | undefined}
123
+ */
124
+ isMuted: (participant: any, statusAccessor: string, controlsAccessor: string) => any;
125
+ /**
126
+ * utility method for getting the recording member for later comparison
127
+ * @param {Object} controls
128
+ * @returns {String|null}
129
+ */
130
+ getRecordingMember: (controls: any) => any;
131
+ /**
132
+ * @param {Object} participant - The locus participant object.
133
+ * @returns {Boolean}
134
+ */
135
+ isRecording: (participant: any) => any;
136
+ isRemovable: (isSelf: any, isGuest: any, isInMeeting: any, type: any) => boolean;
137
+ isMutable: (isSelf: any, isDevice: any, isInMeeting: any, isMuted: any, type: any) => boolean;
138
+ /**
139
+ * @param {Object} participant - The locus participant object.
140
+ * @returns {String}
141
+ */
142
+ extractStatus: (participant: any) => "IN_LOBBY" | "IN_MEETING" | "NOT_IN_MEETING";
143
+ /**
144
+ * @param {Object} participant - The locus participant object.
145
+ * @returns {String}
146
+ */
147
+ extractId: (participant: any) => any;
148
+ /**
149
+ * extracts the media status from nested participant object
150
+ * @param {Object} participant - The locus participant object.
151
+ * @returns {Object}
152
+ */
153
+ extractMediaStatus: (participant: any) => IMediaStatus;
154
+ /**
155
+ * @param {Object} participant - The locus participant object.
156
+ * @returns {String}
157
+ */
158
+ extractName: (participant: any) => any;
159
+ };
2
160
  export default MemberUtil;
@@ -251,6 +251,13 @@ export default class Members extends StatelessWebexPlugin {
251
251
  * @memberof Members
252
252
  */
253
253
  cancelPhoneInvite(invitee: any): any;
254
+ /**
255
+ * Cancels an SIP call to the associated meeting
256
+ * @param {String} invitee
257
+ * @returns {Promise}
258
+ * @memberof Members
259
+ */
260
+ cancelSIPInvite(invitee: any): any;
254
261
  /**
255
262
  * Admits waiting members (invited guests to meeting)
256
263
  * @param {Array} memberIds
@@ -290,6 +297,14 @@ export default class Members extends StatelessWebexPlugin {
290
297
  * @memberof Members
291
298
  */
292
299
  assignRoles(memberId: string, roles: Array<ServerRoleShape>): any;
300
+ /**
301
+ * Moves a meeting member into the lobby.
302
+ * @param {String} memberId -- The ID of the member to move.
303
+ * @returns {Promise} -- Resolves with the lobby‐move response.
304
+ * @public
305
+ * @memberof Members
306
+ */
307
+ moveToLobby(memberId: string): any;
293
308
  /**
294
309
  * Raise or lower the hand of a member in a meeting
295
310
  * @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
@@ -111,4 +130,11 @@ export default class MembersRequest extends StatelessWebexPlugin {
111
130
  * @memberof MembersRequest
112
131
  */
113
132
  cancelPhoneInvite(options: any): Promise<any>;
133
+ /**
134
+ * @param {Object} options with format of {invitee: object, locusUrl: string}
135
+ * @returns {Promise}
136
+ * @throws {Error} if the options are not valid and complete, must have invitee with memberId AND locusUrl
137
+ * @memberof MembersRequest
138
+ */
139
+ cancelSIPInvite(options: any): Promise<any>;
114
140
  }