@webex/plugin-meetings 3.0.0-bnr.4 → 3.0.0-stream-classes.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/README.md +46 -8
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +342 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +70 -32
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/events.js +45 -0
  11. package/dist/breakouts/events.js.map +1 -0
  12. package/dist/breakouts/index.js +422 -217
  13. package/dist/breakouts/index.js.map +1 -1
  14. package/dist/breakouts/utils.js +12 -1
  15. package/dist/breakouts/utils.js.map +1 -1
  16. package/dist/common/errors/webex-errors.js +3 -2
  17. package/dist/common/errors/webex-errors.js.map +1 -1
  18. package/dist/common/logs/logger-proxy.js +1 -1
  19. package/dist/common/logs/logger-proxy.js.map +1 -1
  20. package/dist/common/logs/request.d.ts +1 -1
  21. package/dist/common/queue.js +24 -9
  22. package/dist/common/queue.js.map +1 -1
  23. package/dist/config.js +1 -7
  24. package/dist/config.js.map +1 -1
  25. package/dist/constants.js +118 -24
  26. package/dist/constants.js.map +1 -1
  27. package/dist/controls-options-manager/enums.js +2 -0
  28. package/dist/controls-options-manager/enums.js.map +1 -1
  29. package/dist/controls-options-manager/index.js +19 -14
  30. package/dist/controls-options-manager/index.js.map +1 -1
  31. package/dist/controls-options-manager/types.js.map +1 -1
  32. package/dist/controls-options-manager/util.js +80 -11
  33. package/dist/controls-options-manager/util.js.map +1 -1
  34. package/dist/index.js +62 -20
  35. package/dist/index.js.map +1 -1
  36. package/dist/interpretation/collection.js +23 -0
  37. package/dist/interpretation/collection.js.map +1 -0
  38. package/dist/interpretation/index.js +366 -0
  39. package/dist/interpretation/index.js.map +1 -0
  40. package/dist/interpretation/siLanguage.js +25 -0
  41. package/dist/interpretation/siLanguage.js.map +1 -0
  42. package/dist/locus-info/controlsUtils.js +71 -1
  43. package/dist/locus-info/controlsUtils.js.map +1 -1
  44. package/dist/locus-info/index.js +305 -57
  45. package/dist/locus-info/index.js.map +1 -1
  46. package/dist/locus-info/infoUtils.js +7 -1
  47. package/dist/locus-info/infoUtils.js.map +1 -1
  48. package/dist/locus-info/mediaSharesUtils.js +43 -1
  49. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  50. package/dist/locus-info/parser.js +219 -63
  51. package/dist/locus-info/parser.js.map +1 -1
  52. package/dist/locus-info/selfUtils.js +44 -22
  53. package/dist/locus-info/selfUtils.js.map +1 -1
  54. package/dist/media/index.js +57 -104
  55. package/dist/media/index.js.map +1 -1
  56. package/dist/media/properties.js +60 -121
  57. package/dist/media/properties.js.map +1 -1
  58. package/dist/meeting/in-meeting-actions.js +61 -3
  59. package/dist/meeting/in-meeting-actions.js.map +1 -1
  60. package/dist/meeting/index.js +2530 -2534
  61. package/dist/meeting/index.js.map +1 -1
  62. package/dist/meeting/locusMediaRequest.js +292 -0
  63. package/dist/meeting/locusMediaRequest.js.map +1 -0
  64. package/dist/meeting/muteState.js +125 -205
  65. package/dist/meeting/muteState.js.map +1 -1
  66. package/dist/meeting/request.js +150 -150
  67. package/dist/meeting/request.js.map +1 -1
  68. package/dist/meeting/util.js +568 -438
  69. package/dist/meeting/util.js.map +1 -1
  70. package/dist/meeting-info/index.js +48 -7
  71. package/dist/meeting-info/index.js.map +1 -1
  72. package/dist/meeting-info/meeting-info-v2.js +94 -38
  73. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  74. package/dist/meeting-info/utilv2.js +4 -2
  75. package/dist/meeting-info/utilv2.js.map +1 -1
  76. package/dist/meetings/index.d.ts +0 -2
  77. package/dist/meetings/index.js +260 -85
  78. package/dist/meetings/index.js.map +1 -1
  79. package/dist/meetings/meetings.types.js +7 -0
  80. package/dist/meetings/meetings.types.js.map +1 -0
  81. package/dist/meetings/util.js +42 -7
  82. package/dist/meetings/util.js.map +1 -1
  83. package/dist/member/index.d.ts +2 -0
  84. package/dist/member/index.js +26 -0
  85. package/dist/member/index.js.map +1 -1
  86. package/dist/member/member.types.d.ts +11 -0
  87. package/dist/member/member.types.js +18 -0
  88. package/dist/member/member.types.js.map +1 -0
  89. package/dist/member/types.js +11 -1
  90. package/dist/member/types.js.map +1 -1
  91. package/dist/member/util.js +60 -23
  92. package/dist/member/util.js.map +1 -1
  93. package/dist/members/index.js +4 -1
  94. package/dist/members/index.js.map +1 -1
  95. package/dist/members/request.js +75 -45
  96. package/dist/members/request.js.map +1 -1
  97. package/dist/members/util.js +308 -317
  98. package/dist/members/util.js.map +1 -1
  99. package/dist/metrics/config.js +1 -3
  100. package/dist/metrics/config.js.map +1 -1
  101. package/dist/metrics/constants.js +1 -0
  102. package/dist/metrics/constants.js.map +1 -1
  103. package/dist/metrics/index.d.ts +1 -1
  104. package/dist/metrics/index.js +1 -451
  105. package/dist/metrics/index.js.map +1 -1
  106. package/dist/multistream/mediaRequestManager.js +136 -40
  107. package/dist/multistream/mediaRequestManager.js.map +1 -1
  108. package/dist/multistream/receiveSlot.js.map +1 -1
  109. package/dist/multistream/receiveSlotManager.js +4 -4
  110. package/dist/multistream/receiveSlotManager.js.map +1 -1
  111. package/dist/multistream/remoteMedia.js.map +1 -1
  112. package/dist/multistream/remoteMediaGroup.js +60 -3
  113. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  114. package/dist/multistream/remoteMediaManager.js +36 -0
  115. package/dist/multistream/remoteMediaManager.js.map +1 -1
  116. package/dist/multistream/sendSlotManager.js +233 -0
  117. package/dist/multistream/sendSlotManager.js.map +1 -0
  118. package/dist/reachability/index.js +18 -3
  119. package/dist/reachability/index.js.map +1 -1
  120. package/dist/reachability/request.js +5 -3
  121. package/dist/reachability/request.js.map +1 -1
  122. package/dist/reconnection-manager/index.js +181 -153
  123. package/dist/reconnection-manager/index.js.map +1 -1
  124. package/dist/recording-controller/index.js +21 -2
  125. package/dist/recording-controller/index.js.map +1 -1
  126. package/dist/recording-controller/util.js +9 -8
  127. package/dist/recording-controller/util.js.map +1 -1
  128. package/dist/roap/index.js +25 -32
  129. package/dist/roap/index.js.map +1 -1
  130. package/dist/roap/request.js +42 -51
  131. package/dist/roap/request.js.map +1 -1
  132. package/dist/roap/turnDiscovery.js +97 -38
  133. package/dist/roap/turnDiscovery.js.map +1 -1
  134. package/dist/rtcMetrics/constants.js +12 -0
  135. package/dist/rtcMetrics/constants.js.map +1 -0
  136. package/dist/rtcMetrics/index.js +117 -0
  137. package/dist/rtcMetrics/index.js.map +1 -0
  138. package/dist/statsAnalyzer/index.js +0 -1
  139. package/dist/statsAnalyzer/index.js.map +1 -1
  140. package/dist/types/annotation/annotation.types.d.ts +43 -0
  141. package/dist/types/annotation/constants.d.ts +31 -0
  142. package/dist/types/annotation/index.d.ts +124 -0
  143. package/dist/types/breakouts/events.d.ts +2 -0
  144. package/dist/types/breakouts/utils.d.ts +7 -0
  145. package/dist/types/common/errors/webex-errors.d.ts +1 -1
  146. package/dist/types/config.d.ts +0 -6
  147. package/dist/types/constants.d.ts +51 -21
  148. package/dist/types/controls-options-manager/enums.d.ts +2 -0
  149. package/dist/types/controls-options-manager/index.d.ts +1 -1
  150. package/dist/types/controls-options-manager/types.d.ts +7 -1
  151. package/dist/types/index.d.ts +1 -1
  152. package/dist/types/interpretation/collection.d.ts +5 -0
  153. package/dist/types/interpretation/index.d.ts +5 -0
  154. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  155. package/dist/types/locus-info/index.d.ts +39 -1
  156. package/dist/types/media/index.d.ts +2 -0
  157. package/dist/types/media/properties.d.ts +16 -38
  158. package/dist/types/meeting/in-meeting-actions.d.ts +46 -2
  159. package/dist/types/meeting/index.d.ts +179 -379
  160. package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
  161. package/dist/types/meeting/muteState.d.ts +39 -40
  162. package/dist/types/meeting/request.d.ts +25 -26
  163. package/dist/types/meeting/util.d.ts +74 -1
  164. package/dist/types/meeting-info/meeting-info-v2.d.ts +14 -3
  165. package/dist/types/meetings/index.d.ts +49 -1
  166. package/dist/types/meetings/meetings.types.d.ts +4 -0
  167. package/dist/types/member/index.d.ts +2 -0
  168. package/dist/types/members/request.d.ts +56 -11
  169. package/dist/types/members/util.d.ts +209 -1
  170. package/dist/types/metrics/config.d.ts +26 -2
  171. package/dist/types/metrics/constants.d.ts +1 -0
  172. package/dist/types/metrics/index.d.ts +17 -0
  173. package/dist/types/multistream/mediaRequestManager.d.ts +27 -10
  174. package/dist/types/multistream/receiveSlot.d.ts +3 -3
  175. package/dist/types/multistream/remoteMedia.d.ts +2 -2
  176. package/dist/types/multistream/remoteMediaManager.d.ts +14 -0
  177. package/dist/types/roap/request.d.ts +6 -8
  178. package/dist/types/roap/turnDiscovery.d.ts +18 -1
  179. package/package.json +3 -2
  180. package/src/annotation/annotation.types.ts +50 -0
  181. package/src/annotation/constants.ts +36 -0
  182. package/src/annotation/index.ts +328 -0
  183. package/src/breakouts/README.md +3 -2
  184. package/src/breakouts/breakout.ts +62 -27
  185. package/src/breakouts/events.ts +56 -0
  186. package/src/breakouts/index.ts +244 -64
  187. package/src/breakouts/utils.ts +13 -0
  188. package/src/common/errors/webex-errors.ts +6 -2
  189. package/src/common/logs/logger-proxy.ts +1 -1
  190. package/src/common/queue.ts +22 -8
  191. package/src/config.ts +0 -6
  192. package/src/constants.ts +111 -19
  193. package/src/controls-options-manager/enums.ts +2 -0
  194. package/src/controls-options-manager/index.ts +13 -10
  195. package/src/controls-options-manager/types.ts +10 -0
  196. package/src/controls-options-manager/util.ts +82 -11
  197. package/src/index.ts +18 -11
  198. package/src/interpretation/README.md +60 -0
  199. package/src/interpretation/collection.ts +19 -0
  200. package/src/interpretation/index.ts +332 -0
  201. package/src/interpretation/siLanguage.ts +18 -0
  202. package/src/locus-info/controlsUtils.ts +81 -0
  203. package/src/locus-info/index.ts +318 -57
  204. package/src/locus-info/infoUtils.ts +10 -2
  205. package/src/locus-info/mediaSharesUtils.ts +48 -0
  206. package/src/locus-info/parser.ts +224 -39
  207. package/src/locus-info/selfUtils.ts +32 -20
  208. package/src/media/index.ts +94 -108
  209. package/src/media/properties.ts +69 -109
  210. package/src/meeting/in-meeting-actions.ts +120 -4
  211. package/src/meeting/index.ts +1967 -2120
  212. package/src/meeting/locusMediaRequest.ts +314 -0
  213. package/src/meeting/muteState.ts +119 -194
  214. package/src/meeting/request.ts +122 -115
  215. package/src/meeting/util.ts +549 -413
  216. package/src/meeting-info/index.ts +54 -8
  217. package/src/meeting-info/meeting-info-v2.ts +89 -24
  218. package/src/meeting-info/utilv2.ts +6 -2
  219. package/src/meetings/index.ts +247 -87
  220. package/src/meetings/meetings.types.ts +12 -0
  221. package/src/meetings/util.ts +47 -12
  222. package/src/member/index.ts +28 -1
  223. package/src/member/types.ts +14 -0
  224. package/src/member/util.ts +75 -26
  225. package/src/members/index.ts +7 -1
  226. package/src/members/request.ts +61 -21
  227. package/src/members/util.ts +316 -326
  228. package/src/metrics/constants.ts +1 -0
  229. package/src/metrics/index.ts +1 -474
  230. package/src/multistream/mediaRequestManager.ts +183 -67
  231. package/src/multistream/receiveSlot.ts +4 -4
  232. package/src/multistream/receiveSlotManager.ts +4 -4
  233. package/src/multistream/remoteMedia.ts +2 -2
  234. package/src/multistream/remoteMediaGroup.ts +59 -0
  235. package/src/multistream/remoteMediaManager.ts +33 -0
  236. package/src/multistream/sendSlotManager.ts +170 -0
  237. package/src/reachability/index.ts +15 -4
  238. package/src/reachability/request.ts +7 -3
  239. package/src/reconnection-manager/index.ts +36 -29
  240. package/src/recording-controller/index.ts +20 -3
  241. package/src/recording-controller/util.ts +26 -9
  242. package/src/roap/index.ts +25 -30
  243. package/src/roap/request.ts +44 -51
  244. package/src/roap/turnDiscovery.ts +51 -25
  245. package/src/rtcMetrics/constants.ts +3 -0
  246. package/src/rtcMetrics/index.ts +100 -0
  247. package/src/statsAnalyzer/index.ts +0 -1
  248. package/test/integration/spec/converged-space-meetings.js +60 -3
  249. package/test/integration/spec/journey.js +336 -259
  250. package/test/integration/spec/space-meeting.js +76 -3
  251. package/test/unit/spec/annotation/index.ts +418 -0
  252. package/test/unit/spec/breakouts/breakout.ts +85 -26
  253. package/test/unit/spec/breakouts/events.ts +89 -0
  254. package/test/unit/spec/breakouts/index.ts +636 -98
  255. package/test/unit/spec/breakouts/utils.js +19 -1
  256. package/test/unit/spec/common/queue.js +31 -2
  257. package/test/unit/spec/controls-options-manager/index.js +8 -1
  258. package/test/unit/spec/controls-options-manager/util.js +576 -397
  259. package/test/unit/spec/fixture/locus.js +1 -0
  260. package/test/unit/spec/interpretation/collection.ts +15 -0
  261. package/test/unit/spec/interpretation/index.ts +589 -0
  262. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  263. package/test/unit/spec/locus-info/controlsUtils.js +195 -1
  264. package/test/unit/spec/locus-info/index.js +950 -45
  265. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  266. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  267. package/test/unit/spec/locus-info/parser.js +62 -22
  268. package/test/unit/spec/locus-info/selfConstant.js +19 -0
  269. package/test/unit/spec/locus-info/selfUtils.js +131 -26
  270. package/test/unit/spec/media/index.ts +82 -79
  271. package/test/unit/spec/meeting/in-meeting-actions.ts +60 -2
  272. package/test/unit/spec/meeting/index.js +3208 -1734
  273. package/test/unit/spec/meeting/locusMediaRequest.ts +443 -0
  274. package/test/unit/spec/meeting/muteState.js +328 -417
  275. package/test/unit/spec/meeting/request.js +393 -48
  276. package/test/unit/spec/meeting/utils.js +552 -76
  277. package/test/unit/spec/meeting-info/index.js +181 -0
  278. package/test/unit/spec/meeting-info/meetinginfov2.js +258 -20
  279. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  280. package/test/unit/spec/meetings/index.js +631 -145
  281. package/test/unit/spec/meetings/utils.js +164 -9
  282. package/test/unit/spec/member/index.js +44 -14
  283. package/test/unit/spec/member/util.js +296 -155
  284. package/test/unit/spec/members/index.js +23 -3
  285. package/test/unit/spec/members/request.js +167 -35
  286. package/test/unit/spec/metrics/index.js +1 -50
  287. package/test/unit/spec/multistream/mediaRequestManager.ts +366 -8
  288. package/test/unit/spec/multistream/receiveSlot.ts +1 -1
  289. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  290. package/test/unit/spec/multistream/remoteMediaManager.ts +123 -0
  291. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  292. package/test/unit/spec/reachability/index.ts +66 -5
  293. package/test/unit/spec/reachability/request.js +3 -1
  294. package/test/unit/spec/reconnection-manager/index.js +55 -5
  295. package/test/unit/spec/recording-controller/index.js +294 -218
  296. package/test/unit/spec/recording-controller/util.js +223 -96
  297. package/test/unit/spec/roap/index.ts +21 -48
  298. package/test/unit/spec/roap/request.ts +74 -60
  299. package/test/unit/spec/roap/turnDiscovery.ts +30 -6
  300. package/test/unit/spec/rtcMetrics/index.ts +68 -0
  301. package/test/utils/integrationTestUtils.js +46 -0
  302. package/test/utils/testUtils.js +0 -60
  303. package/src/metrics/config.ts +0 -487
@@ -4,6 +4,15 @@ import { StatelessWebexPlugin } from '@webex/webex-core';
4
4
  */
5
5
  export default class MembersRequest extends StatelessWebexPlugin {
6
6
  namespace: string;
7
+ locusDeltaRequest: (options: object) => Promise<any>;
8
+ /**
9
+ * Constructor
10
+ * @param {Object} attrs
11
+ * @param {Object} options
12
+ */
13
+ constructor(attrs: {
14
+ meeting: any;
15
+ }, options: object);
7
16
  /**
8
17
  *
9
18
  * @param {Object} options with format of {invitee: string, locusUrl: string}
@@ -11,7 +20,7 @@ export default class MembersRequest extends StatelessWebexPlugin {
11
20
  * @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl
12
21
  * @memberof MembersRequest
13
22
  */
14
- addMembers(options: any): any;
23
+ addMembers(options: any): Promise<any>;
15
24
  /**
16
25
  *
17
26
  * @param {Object} options
@@ -19,9 +28,23 @@ export default class MembersRequest extends StatelessWebexPlugin {
19
28
  * @throws {Error} if the options are not valid and complete, must have memberIds AND locusUrl
20
29
  * @memberof MembersRequest
21
30
  */
22
- admitMember(options: any): any;
23
- removeMember(options: any): any;
24
- muteMember(options: any): any;
31
+ admitMember(options: any): Promise<any>;
32
+ /**
33
+ * Sends a request to remove a member
34
+ * @param {Object} options
35
+ * @param {String} options.locusUrl
36
+ * @param {String} options.memberId ID of member
37
+ * @returns {Promise}
38
+ */
39
+ removeMember(options: any): Promise<any>;
40
+ /**
41
+ * Sends a request to mute a member
42
+ * @param {Object} options
43
+ * @param {String} options.locusUrl
44
+ * @param {String} options.memberId ID of member
45
+ * @returns {Promise}
46
+ */
47
+ muteMember(options: any): Promise<any>;
25
48
  /**
26
49
  * Sends a request to the DTMF endpoint to send tones
27
50
  * @param {Object} options
@@ -29,9 +52,23 @@ export default class MembersRequest extends StatelessWebexPlugin {
29
52
  * @param {String} options.memberId ID of PSTN user
30
53
  * @returns {Promise}
31
54
  */
32
- assignRolesMember(options: any): any;
33
- raiseOrLowerHandMember(options: any): any;
34
- lowerAllHandsMember(options: any): any;
55
+ assignRolesMember(options: any): Promise<any>;
56
+ /**
57
+ * Sends a request to raise or lower a member's hand
58
+ * @param {Object} options
59
+ * @param {String} options.locusUrl
60
+ * @param {String} options.memberId ID of member
61
+ * @returns {Promise}
62
+ */
63
+ raiseOrLowerHandMember(options: any): Promise<any>;
64
+ /**
65
+ * Sends a request to lower all hands
66
+ * @param {Object} options
67
+ * @param {String} options.locusUrl
68
+ * @param {String} options.requestingParticipantId ID of requesting participant
69
+ * @returns {Promise}
70
+ */
71
+ lowerAllHandsMember(options: any): Promise<any>;
35
72
  /**
36
73
  *
37
74
  * @param {Object} options with format of {locusUrl: string, requestingParticipantId: string}
@@ -42,8 +79,16 @@ export default class MembersRequest extends StatelessWebexPlugin {
42
79
  editDisplayNameMember(options: {
43
80
  locusUrl: string;
44
81
  requestingParticipantId: string;
45
- }): any;
46
- transferHostToMember(options: any): any;
82
+ }): Promise<any>;
83
+ /**
84
+ * Sends a request to raise or lower a member's hand
85
+ * @param {Object} options
86
+ * @param {String} options.locusUrl
87
+ * @param {String} options.memberId ID of member
88
+ * @param {String} options.moderator ID of moderator
89
+ * @returns {Promise}
90
+ */
91
+ transferHostToMember(options: any): Promise<any>;
47
92
  /**
48
93
  * Sends a request to the DTMF endpoint to send tones
49
94
  * @param {Object} options
@@ -58,12 +103,12 @@ export default class MembersRequest extends StatelessWebexPlugin {
58
103
  url: string;
59
104
  tones: string;
60
105
  memberId: string;
61
- }): any;
106
+ }): Promise<any>;
62
107
  /**
63
108
  * @param {Object} options with format of {invitee: string, locusUrl: string}
64
109
  * @returns {Promise}
65
110
  * @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl
66
111
  * @memberof MembersRequest
67
112
  */
68
- cancelPhoneInvite(options: any): any;
113
+ cancelPhoneInvite(options: any): Promise<any>;
69
114
  }
@@ -1,2 +1,210 @@
1
- declare const MembersUtil: any;
1
+ import { RoleAssignmentOptions, RoleAssignmentRequest, ServerRoleShape } from './types';
2
+ declare const MembersUtil: {
3
+ /**
4
+ * @param {Object} invitee with emailAddress, email or phoneNumber
5
+ * @param {String} locusUrl
6
+ * @param {Boolean} alertIfActive
7
+ * @returns {Object} the format object
8
+ */
9
+ generateAddMemberOptions: (invitee: object, locusUrl: string, alertIfActive: boolean) => {
10
+ invitee: object;
11
+ locusUrl: string;
12
+ alertIfActive: boolean;
13
+ };
14
+ /**
15
+ * @param {Array} memberIds
16
+ * @param {String} locusUrl
17
+ * @returns {Object} the format object
18
+ */
19
+ generateAdmitMemberOptions: (memberIds: Array<any>, locusUrl: string) => {
20
+ locusUrl: string;
21
+ memberIds: any[];
22
+ };
23
+ /**
24
+ * @param {Object} options with {invitee: {emailAddress, email, phoneNumber}, alertIfActive}
25
+ * @returns {Object} with {invitees: [{address}], alertIfActive}
26
+ */
27
+ getAddMemberBody: (options: any) => {
28
+ invitees: {
29
+ address: any;
30
+ }[];
31
+ alertIfActive: any;
32
+ };
33
+ /**
34
+ * @param {Object} options with {memberIds, authorizingLocusUrl}
35
+ * @returns {Object} admit with {memberIds}
36
+ */
37
+ getAdmitMemberRequestBody: (options: any) => any;
38
+ /**
39
+ * @param {Object} format with {memberIds, locusUrl, sessionLocusUrls}
40
+ * @returns {Object} the request parameters (method, uri, body) needed to make a admitMember request
41
+ * if a host/cohost is in a breakout session, the locus url should be the main session locus url
42
+ */
43
+ getAdmitMemberRequestParams: (format: any) => {
44
+ method: string;
45
+ uri: string;
46
+ body: any;
47
+ };
48
+ /**
49
+ * @param {Object} format with {invitee {emailAddress, email, phoneNumber}, locusUrl, alertIfActive}
50
+ * @returns {Object} the request parameters (method, uri, body) needed to make a addMember request
51
+ */
52
+ getAddMemberRequestParams: (format: any) => {
53
+ method: string;
54
+ uri: any;
55
+ body: {
56
+ invitees: {
57
+ address: any;
58
+ }[];
59
+ alertIfActive: any;
60
+ };
61
+ };
62
+ isInvalidInvitee: (invitee: any) => boolean;
63
+ getRemoveMemberRequestParams: (options: any) => {
64
+ method: string;
65
+ uri: string;
66
+ body: {
67
+ reason: any;
68
+ };
69
+ };
70
+ generateTransferHostMemberOptions: (transfer: any, moderator: any, locusUrl: any) => {
71
+ moderator: any;
72
+ locusUrl: any;
73
+ memberId: any;
74
+ };
75
+ generateRemoveMemberOptions: (removal: any, locusUrl: any) => {
76
+ reason: string;
77
+ memberId: any;
78
+ locusUrl: any;
79
+ };
80
+ generateMuteMemberOptions: (memberId: any, status: any, locusUrl: any, isAudio: any) => {
81
+ memberId: any;
82
+ muted: any;
83
+ locusUrl: any;
84
+ isAudio: any;
85
+ };
86
+ generateRaiseHandMemberOptions: (memberId: any, status: any, locusUrl: any) => {
87
+ memberId: any;
88
+ raised: any;
89
+ locusUrl: any;
90
+ };
91
+ /**
92
+ * @param {String} memberId
93
+ * @param {[ServerRoleShape]} roles
94
+ * @param {String} locusUrl
95
+ * @returns {RoleAssignmentOptions}
96
+ */
97
+ generateRoleAssignmentMemberOptions: (memberId: string, roles: Array<ServerRoleShape>, locusUrl: string) => RoleAssignmentOptions;
98
+ generateLowerAllHandsMemberOptions: (requestingParticipantId: any, locusUrl: any) => {
99
+ requestingParticipantId: any;
100
+ locusUrl: any;
101
+ };
102
+ /**
103
+ * @param {String} memberId id of the participant who is receiving request
104
+ * @param {String} requestingParticipantId id of the participant who is sending request (optional)
105
+ * @param {String} alias alias name
106
+ * @param {String} locusUrl url
107
+ * @returns {Object} consists of {memberID: string, requestingParticipantId: string, alias: string, locusUrl: string}
108
+ */
109
+ generateEditDisplayNameMemberOptions: (memberId: any, requestingParticipantId: any, alias: any, locusUrl: any) => {
110
+ memberId: any;
111
+ requestingParticipantId: any;
112
+ alias: any;
113
+ locusUrl: any;
114
+ };
115
+ getMuteMemberRequestParams: (options: any) => {
116
+ method: string;
117
+ uri: string;
118
+ body: {
119
+ [x: string]: {
120
+ muted: any;
121
+ };
122
+ };
123
+ };
124
+ /**
125
+ * @param {RoleAssignmentOptions} options
126
+ * @returns {RoleAssignmentRequest} the request parameters (method, uri, body) needed to make a addMember request
127
+ */
128
+ getRoleAssignmentMemberRequestParams: (options: RoleAssignmentOptions) => RoleAssignmentRequest;
129
+ getRaiseHandMemberRequestParams: (options: any) => {
130
+ method: string;
131
+ uri: string;
132
+ body: {
133
+ hand: {
134
+ raised: any;
135
+ };
136
+ };
137
+ };
138
+ getLowerAllHandsMemberRequestParams: (options: any) => {
139
+ method: string;
140
+ uri: string;
141
+ body: {
142
+ hand: {
143
+ raised: boolean;
144
+ };
145
+ requestingParticipantId: any;
146
+ };
147
+ };
148
+ /**
149
+ * @param {Object} options with format of {locusUrl: string, requestingParticipantId: string}
150
+ * @returns {Object} request parameters (method, uri, body) needed to make a editDisplayName request
151
+ */
152
+ editDisplayNameMemberRequestParams: (options: any) => {
153
+ method: string;
154
+ uri: string;
155
+ body: {
156
+ aliasValue: any;
157
+ requestingParticipantId: any;
158
+ };
159
+ };
160
+ getTransferHostToMemberRequestParams: (options: any) => {
161
+ method: string;
162
+ uri: string;
163
+ body: {
164
+ role: {
165
+ moderator: any;
166
+ };
167
+ };
168
+ };
169
+ genderateSendDTMFOptions: (url: any, tones: any, memberId: any, locusUrl: any) => {
170
+ url: any;
171
+ tones: any;
172
+ memberId: any;
173
+ locusUrl: any;
174
+ };
175
+ generateSendDTMFRequestParams: ({ url, tones, memberId, locusUrl }: {
176
+ url: any;
177
+ tones: any;
178
+ memberId: any;
179
+ locusUrl: any;
180
+ }) => {
181
+ method: string;
182
+ uri: string;
183
+ body: {
184
+ device: {
185
+ url: any;
186
+ };
187
+ memberId: any;
188
+ dtmf: {
189
+ correlationId: any;
190
+ tones: any;
191
+ direction: string;
192
+ };
193
+ };
194
+ };
195
+ cancelPhoneInviteOptions: (invitee: any, locusUrl: any) => {
196
+ invitee: any;
197
+ locusUrl: any;
198
+ };
199
+ generateCancelInviteRequestParams: (options: any) => {
200
+ method: string;
201
+ uri: any;
202
+ body: {
203
+ actionType: string;
204
+ invitees: {
205
+ address: any;
206
+ }[];
207
+ };
208
+ };
209
+ };
2
210
  export default MembersUtil;
@@ -8,6 +8,8 @@ export declare const eventType: {
8
8
  REMOTE_SDP_RECEIVED: string;
9
9
  LOCUS_JOIN_REQUEST: string;
10
10
  LOCUS_JOIN_RESPONSE: string;
11
+ MEETING_INFO_REQUEST: string;
12
+ MEETING_INFO_RESPONSE: string;
11
13
  ALERT_DISPLAYED: string;
12
14
  ICE_START: string;
13
15
  ICE_END: string;
@@ -43,8 +45,9 @@ export declare const eventType: {
43
45
  PSTN_AUDIO_ATTEMPT_START: string;
44
46
  PSTN_AUDIO_ATTEMPT_FINISH: string;
45
47
  PSTN_AUDIO_ATTEMPT_SKIP: string;
46
- MOVE_TO_BREAKOUT: string;
47
- JOIN_BREAKOUT_RESPONSE: string;
48
+ BREAKOUT_MOVE_REQUEST: string;
49
+ BREAKOUT_MOVE_RESPONSE: string;
50
+ BREAKOUT_JOIN_RESPONSE: string;
48
51
  };
49
52
  export declare const error: {
50
53
  name: {
@@ -108,8 +111,29 @@ export declare const error: {
108
111
  4030: string[];
109
112
  5000: string[];
110
113
  5001: string[];
114
+ 4100: string[];
111
115
  };
112
116
  };
117
+ export declare const WebexAPIServiceErrorCodes: {
118
+ 58400: number;
119
+ 99002: number;
120
+ 99009: number;
121
+ 403040: number;
122
+ 403041: number;
123
+ 403038: number;
124
+ 403036: number;
125
+ 403043: number;
126
+ 403048: number;
127
+ 403049: number;
128
+ 403100: number;
129
+ 403101: number;
130
+ 403102: number;
131
+ 403103: number;
132
+ 403104: number;
133
+ 404001: number;
134
+ 404006: number;
135
+ 429005: number;
136
+ };
113
137
  export declare const trigger: {
114
138
  USER_INTERACTION: string;
115
139
  MERCURY_EVENT: string;
@@ -7,6 +7,7 @@ declare const BEHAVIORAL_METRICS: {
7
7
  JOIN_FAILURE: string;
8
8
  ADD_MEDIA_SUCCESS: string;
9
9
  ADD_MEDIA_FAILURE: string;
10
+ ROAP_MERCURY_EVENT_RECEIVED: string;
10
11
  CONNECTION_SUCCESS: string;
11
12
  CONNECTION_FAILURE: string;
12
13
  MEETING_LEAVE_FAILURE: string;
@@ -124,6 +124,23 @@ declare class Metrics {
124
124
  * errorCode: number, errorData: *, fatal: boolean, name: string}}
125
125
  */
126
126
  parseLocusError(err: any, showToUser: boolean): any;
127
+ /**
128
+ * Pareses webex api error.
129
+ *
130
+ * @param {object} err
131
+ * @param {boolean} showToUser
132
+ * @returns {object | null}
133
+ */
134
+ parseWebexApiError(err: any, showToUser: boolean): any;
135
+ /**
136
+ * Generates Error for the CA event
137
+ *
138
+ * @param {integer} errorCode
139
+ * @param {boolean} shownToUser
140
+ * @param {string} name
141
+ * @param {any} err
142
+ * @returns {any}
143
+ */
127
144
  generateErrorPayload(errorCode: any, shownToUser: any, name: any, err: any): any;
128
145
  /**
129
146
  * Returns a formated string of the user agent.
@@ -1,4 +1,4 @@
1
- import { MediaRequest as WcmeMediaRequest } from '@webex/internal-media-core';
1
+ import { StreamRequest } from '@webex/internal-media-core';
2
2
  import { ReceiveSlot } from './receiveSlot';
3
3
  export interface ActiveSpeakerPolicyInfo {
4
4
  policy: 'active-speaker';
@@ -26,16 +26,20 @@ export interface MediaRequest {
26
26
  receiveSlots: Array<ReceiveSlot>;
27
27
  codecInfo?: CodecInfo;
28
28
  preferredMaxFs?: number;
29
+ handleMaxFs?: ({ maxFs }: {
30
+ maxFs: number;
31
+ }) => void;
29
32
  }
30
33
  export type MediaRequestId = string;
31
34
  type DegradationPreferences = {
32
35
  maxMacroblocksLimit: number;
33
36
  };
34
- type SendMediaRequestsCallback = (mediaRequests: WcmeMediaRequest[]) => void;
37
+ type SendMediaRequestsCallback = (streamRequests: StreamRequest[]) => void;
35
38
  type Kind = 'audio' | 'video';
36
39
  type Options = {
37
40
  degradationPreferences: DegradationPreferences;
38
41
  kind: Kind;
42
+ trimRequestsToNumOfSources: boolean;
39
43
  };
40
44
  export declare class MediaRequestManager {
41
45
  private sendMediaRequestsCallback;
@@ -45,23 +49,26 @@ export declare class MediaRequestManager {
45
49
  private degradationPreferences;
46
50
  private sourceUpdateListener;
47
51
  private debouncedSourceUpdateListener;
48
- private previousWCMEMediaRequests;
52
+ private previousStreamRequests;
53
+ private trimRequestsToNumOfSources;
54
+ private numTotalSources;
55
+ private numLiveSources;
49
56
  constructor(sendMediaRequestsCallback: SendMediaRequestsCallback, options: Options);
50
57
  setDegradationPreferences(degradationPreferences: DegradationPreferences): void;
51
58
  private getDegradedClientRequests;
52
59
  /**
53
- * Returns true if two media requests are the same, false otherwise.
60
+ * Returns true if two stream requests are the same, false otherwise.
54
61
  *
55
- * @param {WcmeMediaRequest} mediaRequestA - Media request A for comparison.
56
- * @param {WcmeMediaRequest} mediaRequestB - Media request B for comparison.
62
+ * @param {StreamRequest} streamRequestA - Stream request A for comparison.
63
+ * @param {StreamRequest} streamRequestB - Stream request B for comparison.
57
64
  * @returns {boolean} - Whether they are equal.
58
65
  */
59
- isEqual(mediaRequestA: WcmeMediaRequest, mediaRequestB: WcmeMediaRequest): boolean;
66
+ isEqual(streamRequestA: StreamRequest, streamRequestB: StreamRequest): boolean;
60
67
  /**
61
- * Compares new media requests to previous ones and determines
68
+ * Compares new stream requests to previous ones and determines
62
69
  * if they are the same.
63
70
  *
64
- * @param {WcmeMediaRequest[]} newRequests - Array with new requests.
71
+ * @param {StreamRequest[]} newRequests - Array with new requests.
65
72
  * @returns {boolean} - True if they are equal, false otherwise.
66
73
  */
67
74
  private checkIsNewRequestsEqualToPrev;
@@ -87,15 +94,25 @@ export declare class MediaRequestManager {
87
94
  */
88
95
  private getH264MaxMbps;
89
96
  /**
90
- * Clears the previous media requests.
97
+ * Clears the previous stream requests.
91
98
  *
92
99
  * @returns {void}
93
100
  */
94
101
  clearPreviousRequests(): void;
102
+ /** Modifies the passed in clientRequests and makes sure that in total they don't ask
103
+ * for more streams than there are available.
104
+ *
105
+ * @param {Object} clientRequests
106
+ * @returns {void}
107
+ */
108
+ private trimRequests;
109
+ private getPreferLiveVideo;
110
+ private cloneClientRequests;
95
111
  private sendRequests;
96
112
  addRequest(mediaRequest: MediaRequest, commit?: boolean): MediaRequestId;
97
113
  cancelRequest(requestId: MediaRequestId, commit?: boolean): void;
98
114
  commit(): void;
99
115
  reset(): void;
116
+ setNumCurrentSources(numTotalSources: number, numLiveSources: number): void;
100
117
  }
101
118
  export {};
@@ -1,10 +1,10 @@
1
- import { MediaType, ReceiveSlot as WcmeReceiveSlot, SourceState } from '@webex/internal-media-core';
1
+ import { MediaType, ReceiveSlot as WcmeReceiveSlot, StreamState } from '@webex/internal-media-core';
2
2
  import EventsScope from '../common/events/events-scope';
3
3
  export declare const ReceiveSlotEvents: {
4
4
  SourceUpdate: string;
5
5
  MaxFsUpdate: string;
6
6
  };
7
- export type { SourceState } from '@webex/internal-media-core';
7
+ export type { StreamState } from '@webex/internal-media-core';
8
8
  export type CSI = number;
9
9
  export type MemberId = string;
10
10
  export type ReceiveSlotId = string;
@@ -44,7 +44,7 @@ export declare class ReceiveSlot extends EventsScope {
44
44
  /**
45
45
  * Getter for sourceState
46
46
  */
47
- get sourceState(): SourceState;
47
+ get sourceState(): StreamState;
48
48
  /**
49
49
  * registers event handlers with the underlying ReceiveSlot
50
50
  */
@@ -1,4 +1,4 @@
1
- import { MediaType, SourceState } from '@webex/internal-media-core';
1
+ import { MediaType, StreamState } from '@webex/internal-media-core';
2
2
  import EventsScope from '../common/events/events-scope';
3
3
  import { MediaRequestManager } from './mediaRequestManager';
4
4
  import { ReceiveSlot } from './receiveSlot';
@@ -63,7 +63,7 @@ export declare class RemoteMedia extends EventsScope {
63
63
  /**
64
64
  * Getter for source state
65
65
  */
66
- get sourceState(): SourceState;
66
+ get sourceState(): StreamState;
67
67
  /**
68
68
  * Getter for remote media stream
69
69
  */
@@ -139,6 +139,20 @@ export declare class RemoteMediaManager extends EventsScope {
139
139
  * @returns {LayoutId}
140
140
  */
141
141
  getLayoutId(): LayoutId | undefined;
142
+ /**
143
+ * sets the preferLiveVideo
144
+ */
145
+ setPreferLiveVideo(preferLiveVideo: boolean): void;
146
+ /**
147
+ * Sets CSIs for multiple RemoteMedia instances belonging to RemoteMediaGroup.
148
+ * For each entry in the remoteMediaCsis array:
149
+ * - if csi is specified, the RemoteMedia instance is pinned to that CSI
150
+ * - if csi is undefined, the RemoteMedia instance is unpinned
151
+ */
152
+ setActiveSpeakerCsis(remoteMediaCsis: {
153
+ remoteMedia: RemoteMedia;
154
+ csi?: number;
155
+ }[]): void;
142
156
  /**
143
157
  * Creates the audio slots
144
158
  */
@@ -1,4 +1,5 @@
1
1
  import { StatelessWebexPlugin } from '@webex/webex-core';
2
+ import { LocusMediaRequest } from '../meeting/locusMediaRequest';
2
3
  /**
3
4
  * @class RoapRequest
4
5
  */
@@ -19,20 +20,17 @@ export default class RoapRequest extends StatelessWebexPlugin {
19
20
  * @param {String} options.locusSelfUrl
20
21
  * @param {String} options.mediaId
21
22
  * @param {String} options.correlationId
22
- * @param {Boolean} options.audioMuted
23
- * @param {Boolean} options.videoMuted
24
23
  * @param {String} options.meetingId
25
- * @param {Boolean} options.preferTranscoding
26
24
  * @returns {Promise} returns the response/failure of the request
27
25
  */
28
26
  sendRoap(options: {
29
27
  roapMessage: any;
30
28
  locusSelfUrl: string;
31
29
  mediaId: string;
32
- correlationId: string;
33
- audioMuted: boolean;
34
- videoMuted: boolean;
35
30
  meetingId: string;
36
- preferTranscoding?: boolean;
37
- }): Promise<any>;
31
+ locusMediaRequest?: LocusMediaRequest;
32
+ }): Promise<{
33
+ mediaConnections: any;
34
+ locus: any;
35
+ }>;
38
36
  }
@@ -49,7 +49,24 @@ export default class TurnDiscovery {
49
49
  * @param {Meeting} meeting
50
50
  * @returns {Promise}
51
51
  */
52
- sendRoapOK(meeting: Meeting): Promise<any>;
52
+ sendRoapOK(meeting: Meeting): Promise<{
53
+ mediaConnections: any;
54
+ locus: any;
55
+ }>;
56
+ /**
57
+ * Gets the reason why reachability is skipped.
58
+ *
59
+ * @param {Meeting} meeting
60
+ * @returns {Promise<string>} Promise with empty string if reachability is not skipped or a reason if it is skipped
61
+ */
62
+ private getSkipReason;
63
+ /**
64
+ * Checks if TURN discovery is skipped.
65
+ *
66
+ * @param {Meeting} meeting
67
+ * @returns {Boolean} true if TURN discovery is being skipped, false if it is being done
68
+ */
69
+ isSkipped(meeting: any): Promise<boolean>;
53
70
  /**
54
71
  * Retrieves TURN server information from the backend by doing
55
72
  * a roap message exchange:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/plugin-meetings",
3
- "version": "3.0.0-bnr.4",
3
+ "version": "3.0.0-stream-classes.01",
4
4
  "description": "",
5
5
  "license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
6
6
  "contributors": [
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "dependencies": {
49
49
  "@webex/common": "workspace:^",
50
- "@webex/internal-media-core": "1.36.0",
50
+ "@webex/internal-media-core": "2.0.3",
51
51
  "@webex/internal-plugin-conversation": "workspace:^",
52
52
  "@webex/internal-plugin-device": "workspace:^",
53
53
  "@webex/internal-plugin-llm": "workspace:^",
@@ -66,6 +66,7 @@
66
66
  "global": "^4.4.0",
67
67
  "ip-anonymize": "^0.1.0",
68
68
  "javascript-state-machine": "^3.1.0",
69
+ "jsonwebtoken": "^8.5.1",
69
70
  "lodash": "^4.17.21",
70
71
  "sdp-transform": "^2.12.0",
71
72
  "uuid": "^3.3.2",
@@ -0,0 +1,50 @@
1
+ import {ANNOTATION_POLICY} from './constants';
2
+
3
+ /**
4
+ * Type for an StrokeData Object
5
+ */
6
+ type StrokeData = {
7
+ deviceId: string;
8
+ toUserId: string;
9
+ requesterId: string;
10
+ content: string;
11
+ shareInstanceId: string;
12
+ encryptionKeyUrl: string;
13
+ version: string;
14
+ };
15
+
16
+ type RequestData = {
17
+ toUserId: string;
18
+ toDeviceUrl: string;
19
+ shareInstanceId: string;
20
+ };
21
+
22
+ type CommandRequestBody = {
23
+ actionType: string;
24
+ resourceType: string;
25
+ shareInstanceId: string;
26
+ receivers?: any[];
27
+ };
28
+ /**
29
+ * Type for an annotation Object include annotation version and privilege
30
+ */
31
+ type AnnotationInfo = {
32
+ version: string;
33
+ policy: ANNOTATION_POLICY;
34
+ };
35
+
36
+ interface IAnnotationChannel {
37
+ // === below is for presenter
38
+ acceptRequest: (approval) => undefined | Promise<void>;
39
+ declineRequest: (approval) => undefined | Promise<void>;
40
+ closeAnnotation: (requestData: RequestData) => undefined | Promise<void>;
41
+ // === below is for attendee
42
+ approveAnnotation: (requestData: RequestData) => undefined | Promise<void>;
43
+ cancelApproveAnnotation: (requestData: RequestData, approval) => undefined | Promise<void>;
44
+ sendStrokeData: (strokeData: StrokeData) => void;
45
+ // =====
46
+ approvalUrlUpdate: (approvalUrl: string) => void;
47
+ locusUrlUpdate: (locusUrl: string) => void;
48
+ }
49
+
50
+ export type {StrokeData, RequestData, CommandRequestBody, IAnnotationChannel, AnnotationInfo};