@webex/plugin-meetings 3.8.1 → 3.9.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 (290) hide show
  1. package/README.md +26 -13
  2. package/dist/breakouts/breakout.js +1 -1
  3. package/dist/breakouts/index.js +1 -1
  4. package/dist/constants.js +32 -3
  5. package/dist/constants.js.map +1 -1
  6. package/dist/controls-options-manager/enums.js +1 -0
  7. package/dist/controls-options-manager/enums.js.map +1 -1
  8. package/dist/controls-options-manager/types.js.map +1 -1
  9. package/dist/controls-options-manager/util.js +26 -0
  10. package/dist/controls-options-manager/util.js.map +1 -1
  11. package/dist/interpretation/index.js +1 -1
  12. package/dist/interpretation/siLanguage.js +1 -1
  13. package/dist/locus-info/controlsUtils.js +11 -3
  14. package/dist/locus-info/controlsUtils.js.map +1 -1
  15. package/dist/locus-info/index.js +68 -84
  16. package/dist/locus-info/index.js.map +1 -1
  17. package/dist/media/index.js +2 -2
  18. package/dist/media/index.js.map +1 -1
  19. package/dist/meeting/brbState.js +17 -14
  20. package/dist/meeting/brbState.js.map +1 -1
  21. package/dist/meeting/in-meeting-actions.js +11 -1
  22. package/dist/meeting/in-meeting-actions.js.map +1 -1
  23. package/dist/meeting/index.js +428 -253
  24. package/dist/meeting/index.js.map +1 -1
  25. package/dist/meeting/request.js +19 -0
  26. package/dist/meeting/request.js.map +1 -1
  27. package/dist/meeting/request.type.js.map +1 -1
  28. package/dist/{rtcMetrics/constants.js → meeting/type.js} +1 -5
  29. package/dist/meeting/type.js.map +1 -0
  30. package/dist/meeting/util.js +68 -2
  31. package/dist/meeting/util.js.map +1 -1
  32. package/dist/meetings/index.js +35 -33
  33. package/dist/meetings/index.js.map +1 -1
  34. package/dist/members/index.js +11 -9
  35. package/dist/members/index.js.map +1 -1
  36. package/dist/members/request.js +3 -3
  37. package/dist/members/request.js.map +1 -1
  38. package/dist/members/util.js +18 -6
  39. package/dist/members/util.js.map +1 -1
  40. package/dist/metrics/constants.js +1 -0
  41. package/dist/metrics/constants.js.map +1 -1
  42. package/dist/multistream/mediaRequestManager.js +1 -1
  43. package/dist/multistream/mediaRequestManager.js.map +1 -1
  44. package/dist/multistream/remoteMedia.js +34 -5
  45. package/dist/multistream/remoteMedia.js.map +1 -1
  46. package/dist/multistream/remoteMediaGroup.js +42 -2
  47. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  48. package/dist/multistream/sendSlotManager.js +32 -2
  49. package/dist/multistream/sendSlotManager.js.map +1 -1
  50. package/dist/reachability/index.js +5 -10
  51. package/dist/reachability/index.js.map +1 -1
  52. package/dist/types/constants.d.ts +28 -0
  53. package/dist/types/controls-options-manager/enums.d.ts +2 -1
  54. package/dist/types/controls-options-manager/types.d.ts +4 -1
  55. package/dist/types/locus-info/index.d.ts +0 -9
  56. package/dist/types/meeting/brbState.d.ts +0 -1
  57. package/dist/types/meeting/in-meeting-actions.d.ts +10 -0
  58. package/dist/types/meeting/index.d.ts +47 -19
  59. package/dist/types/meeting/request.d.ts +9 -1
  60. package/dist/types/meeting/request.type.d.ts +74 -0
  61. package/dist/types/meeting/type.d.ts +9 -0
  62. package/dist/types/meeting/util.d.ts +3 -0
  63. package/dist/types/members/index.d.ts +10 -7
  64. package/dist/types/members/request.d.ts +1 -1
  65. package/dist/types/members/util.d.ts +7 -3
  66. package/dist/types/metrics/constants.d.ts +1 -0
  67. package/dist/types/multistream/remoteMedia.d.ts +20 -1
  68. package/dist/types/multistream/remoteMediaGroup.d.ts +11 -0
  69. package/dist/types/multistream/sendSlotManager.d.ts +16 -0
  70. package/dist/types/reachability/index.d.ts +2 -2
  71. package/dist/webinar/index.js +1 -1
  72. package/package.json +24 -25
  73. package/src/constants.ts +32 -2
  74. package/src/controls-options-manager/enums.ts +1 -0
  75. package/src/controls-options-manager/types.ts +6 -1
  76. package/src/controls-options-manager/util.ts +31 -0
  77. package/src/locus-info/controlsUtils.ts +15 -0
  78. package/src/locus-info/index.ts +88 -82
  79. package/src/media/index.ts +2 -2
  80. package/src/meeting/brbState.ts +13 -9
  81. package/src/meeting/in-meeting-actions.ts +21 -0
  82. package/src/meeting/index.ts +254 -71
  83. package/src/meeting/request.ts +16 -0
  84. package/src/meeting/request.type.ts +64 -0
  85. package/src/meeting/type.ts +9 -0
  86. package/src/meeting/util.ts +73 -2
  87. package/src/meetings/index.ts +3 -2
  88. package/src/members/index.ts +13 -10
  89. package/src/members/request.ts +2 -2
  90. package/src/members/util.ts +16 -4
  91. package/src/metrics/constants.ts +1 -0
  92. package/src/multistream/mediaRequestManager.ts +7 -7
  93. package/src/multistream/remoteMedia.ts +34 -4
  94. package/src/multistream/remoteMediaGroup.ts +37 -2
  95. package/src/multistream/sendSlotManager.ts +34 -2
  96. package/src/reachability/index.ts +5 -13
  97. package/test/unit/spec/controls-options-manager/util.js +58 -0
  98. package/test/unit/spec/locus-info/controlsUtils.js +52 -0
  99. package/test/unit/spec/locus-info/index.js +218 -82
  100. package/test/unit/spec/media/index.ts +107 -0
  101. package/test/unit/spec/meeting/brbState.ts +23 -4
  102. package/test/unit/spec/meeting/in-meeting-actions.ts +10 -0
  103. package/test/unit/spec/meeting/index.js +901 -84
  104. package/test/unit/spec/meeting/request.js +71 -0
  105. package/test/unit/spec/meeting/utils.js +122 -1
  106. package/test/unit/spec/meetings/index.js +2 -0
  107. package/test/unit/spec/members/index.js +68 -9
  108. package/test/unit/spec/members/request.js +2 -2
  109. package/test/unit/spec/members/utils.js +27 -7
  110. package/test/unit/spec/multistream/mediaRequestManager.ts +19 -6
  111. package/test/unit/spec/multistream/remoteMedia.ts +66 -2
  112. package/test/unit/spec/multistream/sendSlotManager.ts +59 -0
  113. package/test/unit/spec/reachability/index.ts +2 -6
  114. package/dist/annotation/annotation.types.d.ts +0 -42
  115. package/dist/annotation/constants.d.ts +0 -31
  116. package/dist/annotation/index.d.ts +0 -117
  117. package/dist/breakouts/breakout.d.ts +0 -8
  118. package/dist/breakouts/collection.d.ts +0 -5
  119. package/dist/breakouts/edit-lock-error.d.ts +0 -15
  120. package/dist/breakouts/events.d.ts +0 -8
  121. package/dist/breakouts/index.d.ts +0 -5
  122. package/dist/breakouts/request.d.ts +0 -22
  123. package/dist/breakouts/utils.d.ts +0 -15
  124. package/dist/common/browser-detection.d.ts +0 -9
  125. package/dist/common/collection.d.ts +0 -48
  126. package/dist/common/config.d.ts +0 -2
  127. package/dist/common/errors/captcha-error.d.ts +0 -15
  128. package/dist/common/errors/intent-to-join.d.ts +0 -16
  129. package/dist/common/errors/join-meeting.d.ts +0 -17
  130. package/dist/common/errors/media.d.ts +0 -15
  131. package/dist/common/errors/no-meeting-info.d.ts +0 -14
  132. package/dist/common/errors/parameter.d.ts +0 -15
  133. package/dist/common/errors/password-error.d.ts +0 -15
  134. package/dist/common/errors/permission.d.ts +0 -14
  135. package/dist/common/errors/reclaim-host-role-error.d.ts +0 -60
  136. package/dist/common/errors/reclaim-host-role-error.js +0 -158
  137. package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
  138. package/dist/common/errors/reclaim-host-role-errors.d.ts +0 -60
  139. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  140. package/dist/common/errors/reconnection-in-progress.js +0 -35
  141. package/dist/common/errors/reconnection-in-progress.js.map +0 -1
  142. package/dist/common/errors/reconnection.d.ts +0 -15
  143. package/dist/common/errors/stats.d.ts +0 -15
  144. package/dist/common/errors/webex-errors.d.ts +0 -81
  145. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  146. package/dist/common/events/events-scope.d.ts +0 -17
  147. package/dist/common/events/events.d.ts +0 -12
  148. package/dist/common/events/trigger-proxy.d.ts +0 -2
  149. package/dist/common/events/util.d.ts +0 -2
  150. package/dist/common/logs/logger-config.d.ts +0 -2
  151. package/dist/common/logs/logger-proxy.d.ts +0 -2
  152. package/dist/common/logs/request.d.ts +0 -34
  153. package/dist/common/queue.d.ts +0 -32
  154. package/dist/config.d.ts +0 -73
  155. package/dist/constants.d.ts +0 -952
  156. package/dist/controls-options-manager/constants.d.ts +0 -4
  157. package/dist/controls-options-manager/enums.d.ts +0 -5
  158. package/dist/controls-options-manager/index.d.ts +0 -120
  159. package/dist/controls-options-manager/types.d.ts +0 -43
  160. package/dist/controls-options-manager/util.d.ts +0 -7
  161. package/dist/index.d.ts +0 -4
  162. package/dist/interceptors/index.d.ts +0 -2
  163. package/dist/interceptors/locusRetry.d.ts +0 -27
  164. package/dist/interpretation/collection.d.ts +0 -5
  165. package/dist/interpretation/index.d.ts +0 -5
  166. package/dist/interpretation/siLanguage.d.ts +0 -5
  167. package/dist/locus-info/controlsUtils.d.ts +0 -2
  168. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  169. package/dist/locus-info/fullState.d.ts +0 -2
  170. package/dist/locus-info/hostUtils.d.ts +0 -2
  171. package/dist/locus-info/index.d.ts +0 -269
  172. package/dist/locus-info/infoUtils.d.ts +0 -2
  173. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  174. package/dist/locus-info/parser.d.ts +0 -212
  175. package/dist/locus-info/selfUtils.d.ts +0 -2
  176. package/dist/media/index.d.ts +0 -32
  177. package/dist/media/properties.d.ts +0 -108
  178. package/dist/media/util.d.ts +0 -2
  179. package/dist/mediaQualityMetrics/config.d.ts +0 -233
  180. package/dist/mediaQualityMetrics/config.js +0 -513
  181. package/dist/mediaQualityMetrics/config.js.map +0 -1
  182. package/dist/meeting/effectsState.d.ts +0 -42
  183. package/dist/meeting/effectsState.js +0 -260
  184. package/dist/meeting/effectsState.js.map +0 -1
  185. package/dist/meeting/in-meeting-actions.d.ts +0 -79
  186. package/dist/meeting/index.d.ts +0 -1622
  187. package/dist/meeting/locusMediaRequest.d.ts +0 -74
  188. package/dist/meeting/muteState.d.ts +0 -116
  189. package/dist/meeting/request.d.ts +0 -257
  190. package/dist/meeting/request.type.d.ts +0 -11
  191. package/dist/meeting/state.d.ts +0 -9
  192. package/dist/meeting/util.d.ts +0 -2
  193. package/dist/meeting/voicea-meeting.d.ts +0 -16
  194. package/dist/meeting-info/collection.d.ts +0 -20
  195. package/dist/meeting-info/index.d.ts +0 -57
  196. package/dist/meeting-info/meeting-info-v2.d.ts +0 -93
  197. package/dist/meeting-info/request.d.ts +0 -22
  198. package/dist/meeting-info/util.d.ts +0 -2
  199. package/dist/meeting-info/utilv2.d.ts +0 -2
  200. package/dist/meetings/collection.d.ts +0 -23
  201. package/dist/meetings/index.d.ts +0 -296
  202. package/dist/meetings/meetings.types.d.ts +0 -4
  203. package/dist/meetings/request.d.ts +0 -27
  204. package/dist/meetings/util.d.ts +0 -18
  205. package/dist/member/index.d.ts +0 -148
  206. package/dist/member/member.types.d.ts +0 -11
  207. package/dist/member/member.types.js +0 -18
  208. package/dist/member/member.types.js.map +0 -1
  209. package/dist/member/types.d.ts +0 -32
  210. package/dist/member/util.d.ts +0 -2
  211. package/dist/members/collection.d.ts +0 -24
  212. package/dist/members/index.d.ts +0 -308
  213. package/dist/members/request.d.ts +0 -58
  214. package/dist/members/types.d.ts +0 -25
  215. package/dist/members/util.d.ts +0 -2
  216. package/dist/metrics/config.d.ts +0 -169
  217. package/dist/metrics/config.js +0 -289
  218. package/dist/metrics/config.js.map +0 -1
  219. package/dist/metrics/constants.d.ts +0 -59
  220. package/dist/metrics/index.d.ts +0 -152
  221. package/dist/multistream/mediaRequestManager.d.ts +0 -119
  222. package/dist/multistream/receiveSlot.d.ts +0 -68
  223. package/dist/multistream/receiveSlotManager.d.ts +0 -56
  224. package/dist/multistream/remoteMedia.d.ts +0 -72
  225. package/dist/multistream/remoteMediaGroup.d.ts +0 -49
  226. package/dist/multistream/remoteMediaManager.d.ts +0 -300
  227. package/dist/multistream/sendSlotManager.d.ts +0 -69
  228. package/dist/networkQualityMonitor/index.d.ts +0 -70
  229. package/dist/networkQualityMonitor/index.js +0 -226
  230. package/dist/networkQualityMonitor/index.js.map +0 -1
  231. package/dist/peer-connection-manager/index.d.ts +0 -6
  232. package/dist/peer-connection-manager/index.js +0 -671
  233. package/dist/peer-connection-manager/index.js.map +0 -1
  234. package/dist/peer-connection-manager/util.d.ts +0 -6
  235. package/dist/peer-connection-manager/util.js +0 -110
  236. package/dist/peer-connection-manager/util.js.map +0 -1
  237. package/dist/personal-meeting-room/index.d.ts +0 -47
  238. package/dist/personal-meeting-room/request.d.ts +0 -14
  239. package/dist/personal-meeting-room/util.d.ts +0 -2
  240. package/dist/reachability/clusterReachability.d.ts +0 -109
  241. package/dist/reachability/index.d.ts +0 -139
  242. package/dist/reachability/request.d.ts +0 -35
  243. package/dist/reachability/util.d.ts +0 -8
  244. package/dist/reactions/constants.d.ts +0 -3
  245. package/dist/reactions/reactions.d.ts +0 -4
  246. package/dist/reactions/reactions.type.d.ts +0 -32
  247. package/dist/reconnection-manager/index.d.ts +0 -112
  248. package/dist/recording-controller/enums.d.ts +0 -7
  249. package/dist/recording-controller/index.d.ts +0 -193
  250. package/dist/recording-controller/util.d.ts +0 -13
  251. package/dist/roap/collection.d.ts +0 -10
  252. package/dist/roap/collection.js +0 -63
  253. package/dist/roap/collection.js.map +0 -1
  254. package/dist/roap/handler.d.ts +0 -47
  255. package/dist/roap/handler.js +0 -279
  256. package/dist/roap/handler.js.map +0 -1
  257. package/dist/roap/index.d.ts +0 -116
  258. package/dist/roap/request.d.ts +0 -35
  259. package/dist/roap/state.d.ts +0 -9
  260. package/dist/roap/state.js +0 -127
  261. package/dist/roap/state.js.map +0 -1
  262. package/dist/roap/turnDiscovery.d.ts +0 -81
  263. package/dist/roap/util.d.ts +0 -2
  264. package/dist/roap/util.js +0 -76
  265. package/dist/roap/util.js.map +0 -1
  266. package/dist/rtcMetrics/constants.d.ts +0 -4
  267. package/dist/rtcMetrics/constants.js.map +0 -1
  268. package/dist/rtcMetrics/index.d.ts +0 -61
  269. package/dist/rtcMetrics/index.js +0 -197
  270. package/dist/rtcMetrics/index.js.map +0 -1
  271. package/dist/statsAnalyzer/global.d.ts +0 -118
  272. package/dist/statsAnalyzer/global.js +0 -127
  273. package/dist/statsAnalyzer/global.js.map +0 -1
  274. package/dist/statsAnalyzer/index.d.ts +0 -193
  275. package/dist/statsAnalyzer/index.js +0 -1019
  276. package/dist/statsAnalyzer/index.js.map +0 -1
  277. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -22
  278. package/dist/statsAnalyzer/mqaUtil.js +0 -181
  279. package/dist/statsAnalyzer/mqaUtil.js.map +0 -1
  280. package/dist/transcription/index.d.ts +0 -64
  281. package/dist/types/common/errors/reconnection-in-progress.d.ts +0 -9
  282. package/dist/types/mediaQualityMetrics/config.d.ts +0 -241
  283. package/dist/types/networkQualityMonitor/index.d.ts +0 -70
  284. package/dist/types/rtcMetrics/constants.d.ts +0 -4
  285. package/dist/types/rtcMetrics/index.d.ts +0 -71
  286. package/dist/types/statsAnalyzer/global.d.ts +0 -36
  287. package/dist/types/statsAnalyzer/index.d.ts +0 -217
  288. package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -48
  289. package/dist/webinar/collection.d.ts +0 -16
  290. package/dist/webinar/index.d.ts +0 -5
@@ -21,6 +21,8 @@ import RecordingController from '../recording-controller';
21
21
  import ControlsOptionsManager from '../controls-options-manager';
22
22
  import { LocusMediaRequest } from './locusMediaRequest';
23
23
  import { BrbState } from './brbState';
24
+ import { SetStageOptions } from './request.type';
25
+ import { Invitee } from './type';
24
26
  export type CaptionData = {
25
27
  id: string;
26
28
  isFinal: boolean;
@@ -66,6 +68,13 @@ export type AddMediaOptions = {
66
68
  remoteMediaManagerConfig?: RemoteMediaManagerConfiguration;
67
69
  bundlePolicy?: BundlePolicy;
68
70
  allowMediaInLobby?: boolean;
71
+ additionalMediaOptions?: AdditionalMediaOptions;
72
+ };
73
+ export type AdditionalMediaOptions = {
74
+ sendVideo?: boolean;
75
+ receiveVideo?: boolean;
76
+ sendAudio?: boolean;
77
+ receiveAudio?: boolean;
69
78
  };
70
79
  export type CallStateForMetrics = {
71
80
  correlationId?: string;
@@ -74,6 +83,7 @@ export type CallStateForMetrics = {
74
83
  loginType?: string;
75
84
  userNameInput?: string;
76
85
  emailInput?: string;
86
+ pstnCorrelationId?: string;
77
87
  };
78
88
  export declare const MEDIA_UPDATE_TYPE: {
79
89
  TRANSCODED_MEDIA_CONNECTION: string;
@@ -479,10 +489,11 @@ export default class Meeting extends StatelessWebexPlugin {
479
489
  /**
480
490
  * @param {Object} attrs
481
491
  * @param {Object} options
492
+ * @param {Function} callback - if provided, it will be called with the newly created meeting object as soon as the meeting.id is set
482
493
  * @constructor
483
494
  * @memberof Meeting
484
495
  */
485
- constructor(attrs: any, options: object);
496
+ constructor(attrs: any, options: object, callback: (meeting: Meeting) => void);
486
497
  /**
487
498
  * returns meeting is joined
488
499
  * @private
@@ -505,6 +516,16 @@ export default class Meeting extends StatelessWebexPlugin {
505
516
  * @param {string} correlationId
506
517
  */
507
518
  set correlationId(correlationId: string);
519
+ /**
520
+ * Getter - Returns callStateForMetrics.pstnCorrelationId
521
+ * @returns {string | undefined}
522
+ */
523
+ get pstnCorrelationId(): string | undefined;
524
+ /**
525
+ * Setter - sets callStateForMetrics.pstnCorrelationId
526
+ * @param {string | undefined} correlationId
527
+ */
528
+ set pstnCorrelationId(correlationId: string | undefined);
508
529
  /**
509
530
  * Getter - Returns callStateForMetrics.userNameInput
510
531
  * @returns {string}
@@ -854,43 +875,37 @@ export default class Meeting extends StatelessWebexPlugin {
854
875
  private updateMeetingObject;
855
876
  /**
856
877
  * Invite a guest to the call that isn't normally part of this call
857
- * @param {Object} invitee
878
+ * @param {Invitee} invitee
858
879
  * @param {String} invitee.emailAddress
859
880
  * @param {String} invitee.email
860
881
  * @param {String} invitee.phoneNumber
861
882
  * @param {Boolean} [alertIfActive]
883
+ * @param {Boolean} [invitee.skipEmailValidation]
884
+ * @param {Boolean} [invitee.isInternalNumber]
862
885
  * @returns {Promise} see #members.addMember
863
886
  * @public
864
887
  * @memberof Meeting
865
888
  */
866
- invite(invitee: {
867
- emailAddress: string;
868
- email: string;
869
- phoneNumber: string;
870
- roles: Array<string>;
871
- }, alertIfActive?: boolean): any;
889
+ invite(invitee: Invitee, alertIfActive?: boolean): any;
872
890
  /**
873
891
  * Cancel an outgoing phone call invitation made during a meeting
874
- * @param {Object} invitee
892
+ * @param {Invitee} invitee
875
893
  * @param {String} invitee.phoneNumber
876
894
  * @returns {Promise} see #members.cancelPhoneInvite
877
895
  * @public
878
896
  * @memberof Meeting
879
897
  */
880
- cancelPhoneInvite(invitee: {
881
- phoneNumber: string;
882
- }): any;
898
+ cancelPhoneInvite(invitee: Invitee): any;
883
899
  /**
884
- * Cancel an SIP call invitation made during a meeting
885
- * @param {Object} invitee
900
+ * Cancel an SIP/phone call invitation made during a meeting
901
+ * @param {Invitee} invitee
886
902
  * @param {String} invitee.memberId
887
- * @returns {Promise} see #members.cancelSIPInvite
903
+ * @param {Boolean} [invitee.isInternalNumber] - When cancel phone invitation, if the number is internal
904
+ * @returns {Promise} see #members.cancelInviteByMemberId
888
905
  * @public
889
906
  * @memberof Meeting
890
907
  */
891
- cancelSIPInvite(invitee: {
892
- memberId: string;
893
- }): any;
908
+ cancelInviteByMemberId(invitee: Invitee): any;
894
909
  /**
895
910
  * Admit the guest(s) to the call once they are waiting.
896
911
  * If the host/cohost is in a breakout session, the locus url
@@ -1337,7 +1352,7 @@ export default class Meeting extends StatelessWebexPlugin {
1337
1352
  * @memberof Meeting
1338
1353
  * @returns {Promise}
1339
1354
  */
1340
- disconnectPhoneAudio(): Promise<[any, any]>;
1355
+ disconnectPhoneAudio(): Promise<void>;
1341
1356
  /**
1342
1357
  * Moves the call to the specified resourceId
1343
1358
  * @param {String} resourceId
@@ -1993,5 +2008,18 @@ export default class Meeting extends StatelessWebexPlugin {
1993
2008
  * @returns {Promise<MediaReachabilityMetrics>}
1994
2009
  */
1995
2010
  private getMediaReachabilityMetricFields;
2011
+ /**
2012
+ * Set the stage for the meeting
2013
+ *
2014
+ * @param {SetStageOptions} options Options to use when setting the stage
2015
+ * @returns {Promise} The locus request
2016
+ */
2017
+ setStage({ activeSpeakerProportion, customBackground, customLogo, customNameLabel, importantParticipants, lockAttendeeViewOnStage, showActiveSpeaker, }?: SetStageOptions): Promise<any>;
2018
+ /**
2019
+ * Unset the stage for the meeting
2020
+ *
2021
+ * @returns {Promise} The locus request
2022
+ */
2023
+ unsetStage(): Promise<any>;
1996
2024
  }
1997
2025
  export {};
@@ -1,5 +1,5 @@
1
1
  import { StatelessWebexPlugin } from '@webex/webex-core';
2
- import { SendReactionOptions, BrbOptions, ToggleReactionsOptions, PostMeetingDataConsentOptions } from './request.type';
2
+ import { SendReactionOptions, BrbOptions, ToggleReactionsOptions, PostMeetingDataConsentOptions, SynchronizeVideoLayout } from './request.type';
3
3
  import { AnnotationInfo } from '../annotation/annotation.types';
4
4
  import { ClientMediaPreferences } from '../reachability/reachability.types';
5
5
  /**
@@ -314,4 +314,12 @@ export default class MeetingRequest extends StatelessWebexPlugin {
314
314
  * @returns {Promise}
315
315
  */
316
316
  setPostMeetingDataConsent({ postMeetingDataConsent, locusUrl, deviceUrl, selfId, }: PostMeetingDataConsentOptions): Promise<any>;
317
+ /**
318
+ * Synchronize the stage for a meeting
319
+ *
320
+ * @param {LocusUrl} locusUrl The locus URL
321
+ * @param {SetStageVideoLayout} videoLayout The video layout to synchronize
322
+ * @returns {Promise} The locus request
323
+ */
324
+ synchronizeStage(locusUrl: string, videoLayout: SynchronizeVideoLayout): Promise<any>;
317
325
  }
@@ -21,3 +21,77 @@ export type PostMeetingDataConsentOptions = {
21
21
  deviceUrl: string;
22
22
  selfId: string;
23
23
  };
24
+ export type StageCustomLogoPositions = 'LowerLeft' | 'LowerMiddle' | 'LowerRight' | 'UpperLeft' | 'UpperMiddle' | 'UpperRight';
25
+ export type StageNameLabelType = 'Primary' | 'PrimaryInverted' | 'Secondary' | 'SecondaryInverted';
26
+ export type StageCustomBackground = {
27
+ url: string;
28
+ [others: string]: unknown;
29
+ };
30
+ export type StageCustomLogo = {
31
+ url: string;
32
+ position: StageCustomLogoPositions;
33
+ [others: string]: unknown;
34
+ };
35
+ export type StageCustomNameLabel = {
36
+ accentColor: string;
37
+ background: {
38
+ color: string;
39
+ };
40
+ border: {
41
+ color: string;
42
+ };
43
+ content: {
44
+ displayName: {
45
+ color: string;
46
+ };
47
+ subtitle: {
48
+ color: string;
49
+ };
50
+ };
51
+ decoration: {
52
+ color: string;
53
+ };
54
+ fadeOut?: {
55
+ delay: number;
56
+ };
57
+ type: StageNameLabelType;
58
+ [others: string]: unknown;
59
+ };
60
+ export type SetStageOptions = {
61
+ activeSpeakerProportion?: number;
62
+ customBackground?: StageCustomBackground;
63
+ customLogo?: StageCustomLogo;
64
+ customNameLabel?: StageCustomNameLabel;
65
+ importantParticipants?: {
66
+ mainCsi: number;
67
+ participantId: string;
68
+ }[];
69
+ lockAttendeeViewOnStage?: boolean;
70
+ showActiveSpeaker?: boolean;
71
+ };
72
+ export type SetStageVideoLayout = {
73
+ overrideDefault: true;
74
+ lockAttendeeViewOnStageOnly: boolean;
75
+ stageParameters: {
76
+ importantParticipants?: {
77
+ participantId: string;
78
+ mainCsi: number;
79
+ order: number;
80
+ }[];
81
+ showActiveSpeaker: {
82
+ show: boolean;
83
+ order: number;
84
+ };
85
+ activeSpeakerProportion: number;
86
+ stageManagerType: number;
87
+ };
88
+ customLayouts?: {
89
+ background?: StageCustomBackground;
90
+ logo?: StageCustomLogo;
91
+ };
92
+ nameLabelStyle?: StageCustomNameLabel;
93
+ };
94
+ export type UnsetStageVideoLayout = {
95
+ overrideDefault: false;
96
+ };
97
+ export type SynchronizeVideoLayout = SetStageVideoLayout | UnsetStageVideoLayout;
@@ -0,0 +1,9 @@
1
+ export type Invitee = {
2
+ memberId: string;
3
+ emailAddress: string;
4
+ email: string;
5
+ phoneNumber: string;
6
+ roles: Array<string>;
7
+ skipEmailValidation?: boolean;
8
+ isInternalNumber?: boolean;
9
+ };
@@ -71,6 +71,9 @@ declare const MeetingUtil: {
71
71
  canStopTranscribing: (displayHints: any) => any;
72
72
  isClosedCaptionActive: (displayHints: any) => any;
73
73
  canStartManualCaption: (displayHints: any) => any;
74
+ isLocalRecordingStarted: (displayHints: any) => any;
75
+ isLocalRecordingStopped: (displayHints: any) => any;
76
+ isLocalRecordingPaused: (displayHints: any) => any;
74
77
  canStopManualCaption: (displayHints: any) => any;
75
78
  isManualCaptionActive: (displayHints: any) => any;
76
79
  isWebexAssistantActive: (displayHints: any) => any;
@@ -4,6 +4,7 @@ import MembersCollection from './collection';
4
4
  import { ReceiveSlotManager } from '../multistream/receiveSlotManager';
5
5
  import { MediaRequestManager } from '../multistream/mediaRequestManager';
6
6
  import { ServerRoleShape } from './types';
7
+ import { Invitee } from '../meeting/type';
7
8
  /**
8
9
  * @class Members
9
10
  */
@@ -212,26 +213,28 @@ export default class Members extends StatelessWebexPlugin {
212
213
  private update;
213
214
  /**
214
215
  * Adds a guest Member to the associated meeting
215
- * @param {String} invitee
216
+ * @param {Invitee} invitee
216
217
  * @param {Boolean} [alertIfActive]
217
218
  * @returns {Promise}
218
219
  * @memberof Members
219
220
  */
220
- addMember(invitee: any, alertIfActive?: boolean): any;
221
+ addMember(invitee: Invitee, alertIfActive?: boolean): any;
221
222
  /**
222
223
  * Cancels an outgoing PSTN call to the associated meeting
223
- * @param {String} invitee
224
+ * @param {Invitee} invitee
224
225
  * @returns {Promise}
225
226
  * @memberof Members
226
227
  */
227
- cancelPhoneInvite(invitee: any): any;
228
+ cancelPhoneInvite(invitee: Invitee): any;
228
229
  /**
229
- * Cancels an SIP call to the associated meeting
230
- * @param {String} invitee
230
+ * Cancels an SIP/phone call to the associated meeting
231
+ * @param {Invitee} invitee
232
+ * @param {String} invitee.memberId - The memberId of the invitee
233
+ * @param {Boolean} [invitee.isInternalNumber] - When cancel phone invitation, if the number is internal
231
234
  * @returns {Promise}
232
235
  * @memberof Members
233
236
  */
234
- cancelSIPInvite(invitee: any): any;
237
+ cancelInviteByMemberId(invitee: Invitee): any;
235
238
  /**
236
239
  * Admits waiting members (invited guests to meeting)
237
240
  * @param {Array} memberIds
@@ -136,5 +136,5 @@ export default class MembersRequest extends StatelessWebexPlugin {
136
136
  * @throws {Error} if the options are not valid and complete, must have invitee with memberId AND locusUrl
137
137
  * @memberof MembersRequest
138
138
  */
139
- cancelSIPInvite(options: any): Promise<any>;
139
+ cancelInviteByMemberId(options: any): Promise<any>;
140
140
  }
@@ -1,4 +1,5 @@
1
1
  import { RoleAssignmentOptions, RoleAssignmentRequest, ServerRoleShape } from './types';
2
+ import { Invitee } from '../meeting/type';
2
3
  declare const MembersUtil: {
3
4
  /**
4
5
  * @param {Object} invitee with emailAddress, email or phoneNumber
@@ -26,6 +27,7 @@ declare const MembersUtil: {
26
27
  */
27
28
  getAddMemberBody: (options: any) => {
28
29
  invitees: {
30
+ isInternalNumber?: any;
29
31
  roles?: any;
30
32
  address: any;
31
33
  }[];
@@ -55,13 +57,14 @@ declare const MembersUtil: {
55
57
  uri: any;
56
58
  body: {
57
59
  invitees: {
60
+ isInternalNumber?: any;
58
61
  roles?: any;
59
62
  address: any;
60
63
  }[];
61
64
  alertIfActive: any;
62
65
  };
63
66
  };
64
- isInvalidInvitee: (invitee: any) => boolean;
67
+ isInvalidInvitee: (invitee: Invitee) => boolean;
65
68
  getRemoveMemberRequestParams: (options: any) => {
66
69
  method: string;
67
70
  uri: string;
@@ -228,16 +231,17 @@ declare const MembersUtil: {
228
231
  }[];
229
232
  };
230
233
  };
231
- cancelSIPInviteOptions: (invitee: any, locusUrl: any) => {
234
+ cancelInviteByMemberIdOptions: (invitee: any, locusUrl: any) => {
232
235
  invitee: any;
233
236
  locusUrl: any;
234
237
  };
235
- generateCancelSIPInviteRequestParams: (options: any) => {
238
+ generateCancelInviteByMemberIdRequestParams: (options: any) => {
236
239
  method: string;
237
240
  uri: any;
238
241
  body: {
239
242
  actionType: string;
240
243
  invitees: {
244
+ isInternalNumber?: any;
241
245
  address: any;
242
246
  }[];
243
247
  };
@@ -69,6 +69,7 @@ declare const BEHAVIORAL_METRICS: {
69
69
  MEETING_INFO_POLICY_ERROR: string;
70
70
  LOCUS_DELTA_SYNC_FAILED: string;
71
71
  LOCUS_DELTA_OUT_OF_ORDER: string;
72
+ LOCUS_SYNC_HANDLING_FAILED: string;
72
73
  PERMISSION_TOKEN_REFRESH: string;
73
74
  PERMISSION_TOKEN_REFRESH_ERROR: string;
74
75
  TURN_DISCOVERY_LATENCY: string;
@@ -7,9 +7,17 @@ export declare const RemoteMediaEvents: {
7
7
  Stopped: string;
8
8
  };
9
9
  export type RemoteVideoResolution = 'thumbnail' | 'very small' | 'small' | 'medium' | 'large' | 'best';
10
+ export declare const MAX_FS_VALUES: {
11
+ '90p': number;
12
+ '180p': number;
13
+ '360p': number;
14
+ '540p': number;
15
+ '720p': number;
16
+ '1080p': number;
17
+ };
10
18
  /**
11
19
  * Converts pane size into h264 maxFs
12
- * @param {PaneSize} paneSize
20
+ * @param {RemoteVideoResolution} paneSize
13
21
  * @returns {number}
14
22
  */
15
23
  export declare function getMaxFs(paneSize: RemoteVideoResolution): number;
@@ -29,6 +37,12 @@ export declare class RemoteMedia extends EventsScope {
29
37
  private readonly options;
30
38
  private mediaRequestId?;
31
39
  readonly id: RemoteMediaId;
40
+ /**
41
+ * The max frame size of the media request, used for logging and media requests.
42
+ * Set by setSizeHint() based on video element dimensions.
43
+ * When > 0, this value takes precedence over options.resolution in sendMediaRequest().
44
+ */
45
+ private maxFrameSize;
32
46
  /**
33
47
  * Constructs RemoteMedia instance
34
48
  *
@@ -45,6 +59,11 @@ export declare class RemoteMedia extends EventsScope {
45
59
  * @note width/height of 0 will be ignored
46
60
  */
47
61
  setSizeHint(width: any, height: any): void;
62
+ /**
63
+ * Get the current effective maxFs value that would be used in media requests
64
+ * @returns {number | undefined} The maxFs value, or undefined if no constraints
65
+ */
66
+ getEffectiveMaxFs(): number | undefined;
48
67
  /**
49
68
  * registers event listeners on the receive slot and forwards all the events
50
69
  */
@@ -45,5 +45,16 @@ export declare class RemoteMediaGroup {
45
45
  * @returns true if remote media is found
46
46
  */
47
47
  includes(remoteMedia: RemoteMedia, filter?: 'all' | 'pinned' | 'unpinned'): boolean;
48
+ /**
49
+ * Calculate the effective maxFs for the active speaker media request based on unpinned RemoteMedia instances
50
+ * @returns {number | undefined} The calculated maxFs value, or undefined if no constraints
51
+ * @private
52
+ */
53
+ private getEffectiveMaxFsForActiveSpeaker;
54
+ /**
55
+ * Get the current effective maxFs that would be used for the active speaker media request
56
+ * @returns {number | undefined} The effective maxFs value
57
+ */
58
+ getEffectiveMaxFs(): number | undefined;
48
59
  }
49
60
  export {};
@@ -1,7 +1,17 @@
1
1
  import { SendSlot, MediaType, LocalStream, MultistreamRoapMediaConnection, NamedMediaGroup, StreamState } from '@webex/internal-media-core';
2
+ /**
3
+ * This class is used to manage the sendSlots for the given media types.
4
+ */
2
5
  export default class SendSlotManager {
3
6
  private readonly slots;
4
7
  private readonly LoggerProxy;
8
+ private readonly sourceStateOverrides;
9
+ /**
10
+ * Constructor for SendSlotManager
11
+ *
12
+ * @param {any} LoggerProxy is used to log the messages
13
+ * @constructor
14
+ */
5
15
  constructor(LoggerProxy: any);
6
16
  /**
7
17
  * This method is used to create a sendSlot for the given mediaType and returns the created sendSlot
@@ -32,6 +42,12 @@ export default class SendSlotManager {
32
42
  * @returns {void}
33
43
  */
34
44
  setSourceStateOverride(mediaType: MediaType, state: StreamState | null): void;
45
+ /**
46
+ * Gets the source state override for the given media type.
47
+ * @param {MediaType} mediaType - The type of media to get the source state override for.
48
+ * @returns {StreamState | null} - The current source state override or null if not set.
49
+ */
50
+ private getSourceStateOverride;
35
51
  /**
36
52
  * This method publishes the given stream to the sendSlot for the given mediaType
37
53
  * @param {MediaType} mediaType MediaType of the sendSlot to which a stream needs to be published (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
@@ -68,12 +68,12 @@ export default class Reachability extends EventsScope {
68
68
  }>;
69
69
  /**
70
70
  * Checks if the given subnet is reachable
71
- * @param {string} mediaServerIp - media server ip
71
+ * @param {string} selectedSubnetFirstOctet - selected subnet first octet, e.g. "10" for "10.X.X.X"
72
72
  * @returns {boolean | null} true if reachable, false if not reachable, null if mediaServerIp is not provided
73
73
  * @public
74
74
  * @memberof Reachability
75
75
  */
76
- isSubnetReachable(mediaServerIp?: string): boolean | null;
76
+ isSubnetReachable(selectedSubnetFirstOctet: string): boolean | null;
77
77
  /**
78
78
  * Gets a list of media clusters from the backend and performs reachability checks on all the clusters
79
79
  * @param {string} trigger - explains the reason for starting reachability
@@ -458,7 +458,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
458
458
  }, _callee7);
459
459
  }))();
460
460
  },
461
- version: "3.8.1"
461
+ version: "3.9.0"
462
462
  });
463
463
  var _default = exports.default = Webinar;
464
464
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@webex/plugin-meetings",
3
3
  "description": "",
4
- "license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
4
+ "license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
5
5
  "contributors": [
6
6
  "Adam Weeks <adweeks@cisco.com> (https://adamweeks.com/)",
7
7
  "Arun Ganeshan <arungane@cisco.com>",
@@ -43,13 +43,12 @@
43
43
  "@webex/eslint-config-legacy": "0.0.0",
44
44
  "@webex/jest-config-legacy": "0.0.0",
45
45
  "@webex/legacy-tools": "0.0.0",
46
- "@webex/plugin-meetings": "3.8.1",
47
- "@webex/plugin-rooms": "3.8.1",
48
- "@webex/test-helper-chai": "3.8.1",
49
- "@webex/test-helper-mocha": "3.8.1",
50
- "@webex/test-helper-mock-webex": "3.8.1",
51
- "@webex/test-helper-retry": "3.8.1",
52
- "@webex/test-helper-test-users": "3.8.1",
46
+ "@webex/plugin-rooms": "3.9.0",
47
+ "@webex/test-helper-chai": "3.9.0",
48
+ "@webex/test-helper-mocha": "3.9.0",
49
+ "@webex/test-helper-mock-webex": "3.9.0",
50
+ "@webex/test-helper-retry": "3.9.0",
51
+ "@webex/test-helper-test-users": "3.9.0",
53
52
  "chai": "^4.3.4",
54
53
  "chai-as-promised": "^7.1.1",
55
54
  "eslint": "^8.24.0",
@@ -61,23 +60,23 @@
61
60
  "typescript": "^4.7.4"
62
61
  },
63
62
  "dependencies": {
64
- "@webex/common": "3.8.1",
65
- "@webex/event-dictionary-ts": "^1.0.1753",
66
- "@webex/internal-media-core": "2.17.1",
67
- "@webex/internal-plugin-conversation": "3.8.1",
68
- "@webex/internal-plugin-device": "3.8.1",
69
- "@webex/internal-plugin-llm": "3.8.1",
70
- "@webex/internal-plugin-mercury": "3.8.1",
71
- "@webex/internal-plugin-metrics": "3.8.1",
72
- "@webex/internal-plugin-support": "3.8.1",
73
- "@webex/internal-plugin-user": "3.8.1",
74
- "@webex/internal-plugin-voicea": "3.8.1",
75
- "@webex/media-helpers": "3.8.1",
76
- "@webex/plugin-people": "3.8.1",
77
- "@webex/plugin-rooms": "3.8.1",
63
+ "@webex/common": "3.9.0",
64
+ "@webex/event-dictionary-ts": "^1.0.1819",
65
+ "@webex/internal-media-core": "2.18.5",
66
+ "@webex/internal-plugin-conversation": "3.9.0",
67
+ "@webex/internal-plugin-device": "3.9.0",
68
+ "@webex/internal-plugin-llm": "3.9.0",
69
+ "@webex/internal-plugin-mercury": "3.9.0",
70
+ "@webex/internal-plugin-metrics": "3.9.0",
71
+ "@webex/internal-plugin-support": "3.9.0",
72
+ "@webex/internal-plugin-user": "3.9.0",
73
+ "@webex/internal-plugin-voicea": "3.9.0",
74
+ "@webex/media-helpers": "3.9.0",
75
+ "@webex/plugin-people": "3.9.0",
76
+ "@webex/plugin-rooms": "3.9.0",
78
77
  "@webex/ts-sdp": "^1.8.1",
79
- "@webex/web-capabilities": "^1.4.0",
80
- "@webex/webex-core": "3.8.1",
78
+ "@webex/web-capabilities": "^1.6.0",
79
+ "@webex/webex-core": "3.9.0",
81
80
  "ampersand-collection": "^2.0.2",
82
81
  "bowser": "^2.11.0",
83
82
  "btoa": "^1.2.1",
@@ -93,5 +92,5 @@
93
92
  "//": [
94
93
  "TODO: upgrade jwt-decode when moving to node 18"
95
94
  ],
96
- "version": "3.8.1"
95
+ "version": "3.9.0"
97
96
  }