@webex/plugin-meetings 3.0.0-beta.26 → 3.0.0-beta.261

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 (361) 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 +114 -14
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/edit-lock-error.js +52 -0
  11. package/dist/breakouts/edit-lock-error.js.map +1 -0
  12. package/dist/breakouts/events.js +45 -0
  13. package/dist/breakouts/events.js.map +1 -0
  14. package/dist/breakouts/index.js +841 -19
  15. package/dist/breakouts/index.js.map +1 -1
  16. package/dist/breakouts/request.js +78 -0
  17. package/dist/breakouts/request.js.map +1 -0
  18. package/dist/breakouts/utils.js +67 -0
  19. package/dist/breakouts/utils.js.map +1 -0
  20. package/dist/common/errors/webex-errors.js +28 -7
  21. package/dist/common/errors/webex-errors.js.map +1 -1
  22. package/dist/common/logs/logger-proxy.js +1 -1
  23. package/dist/common/logs/logger-proxy.js.map +1 -1
  24. package/dist/common/queue.js +24 -9
  25. package/dist/common/queue.js.map +1 -1
  26. package/dist/config.js +5 -10
  27. package/dist/config.js.map +1 -1
  28. package/dist/constants.js +196 -28
  29. package/dist/constants.js.map +1 -1
  30. package/dist/controls-options-manager/enums.js +14 -2
  31. package/dist/controls-options-manager/enums.js.map +1 -1
  32. package/dist/controls-options-manager/index.js +109 -15
  33. package/dist/controls-options-manager/index.js.map +1 -1
  34. package/dist/controls-options-manager/types.js +7 -0
  35. package/dist/controls-options-manager/types.js.map +1 -0
  36. package/dist/controls-options-manager/util.js +309 -18
  37. package/dist/controls-options-manager/util.js.map +1 -1
  38. package/dist/index.js +112 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/interpretation/collection.js +23 -0
  41. package/dist/interpretation/collection.js.map +1 -0
  42. package/dist/interpretation/index.js +366 -0
  43. package/dist/interpretation/index.js.map +1 -0
  44. package/dist/interpretation/siLanguage.js +25 -0
  45. package/dist/interpretation/siLanguage.js.map +1 -0
  46. package/dist/locus-info/controlsUtils.js +91 -2
  47. package/dist/locus-info/controlsUtils.js.map +1 -1
  48. package/dist/locus-info/index.js +381 -62
  49. package/dist/locus-info/index.js.map +1 -1
  50. package/dist/locus-info/infoUtils.js +7 -1
  51. package/dist/locus-info/infoUtils.js.map +1 -1
  52. package/dist/locus-info/mediaSharesUtils.js +43 -1
  53. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  54. package/dist/locus-info/parser.js +224 -63
  55. package/dist/locus-info/parser.js.map +1 -1
  56. package/dist/locus-info/selfUtils.js +89 -14
  57. package/dist/locus-info/selfUtils.js.map +1 -1
  58. package/dist/media/index.js +58 -116
  59. package/dist/media/index.js.map +1 -1
  60. package/dist/media/properties.js +60 -121
  61. package/dist/media/properties.js.map +1 -1
  62. package/dist/meeting/in-meeting-actions.js +82 -2
  63. package/dist/meeting/in-meeting-actions.js.map +1 -1
  64. package/dist/meeting/index.js +3022 -2795
  65. package/dist/meeting/index.js.map +1 -1
  66. package/dist/meeting/locusMediaRequest.js +292 -0
  67. package/dist/meeting/locusMediaRequest.js.map +1 -0
  68. package/dist/meeting/muteState.js +230 -124
  69. package/dist/meeting/muteState.js.map +1 -1
  70. package/dist/meeting/request.js +256 -196
  71. package/dist/meeting/request.js.map +1 -1
  72. package/dist/meeting/util.js +601 -417
  73. package/dist/meeting/util.js.map +1 -1
  74. package/dist/meeting-info/index.js +70 -7
  75. package/dist/meeting-info/index.js.map +1 -1
  76. package/dist/meeting-info/meeting-info-v2.js +189 -51
  77. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  78. package/dist/meeting-info/util.js +1 -1
  79. package/dist/meeting-info/util.js.map +1 -1
  80. package/dist/meeting-info/utilv2.js +36 -36
  81. package/dist/meeting-info/utilv2.js.map +1 -1
  82. package/dist/meetings/collection.js +22 -0
  83. package/dist/meetings/collection.js.map +1 -1
  84. package/dist/meetings/index.js +372 -90
  85. package/dist/meetings/index.js.map +1 -1
  86. package/dist/meetings/meetings.types.js +7 -0
  87. package/dist/meetings/meetings.types.js.map +1 -0
  88. package/dist/meetings/request.js +2 -0
  89. package/dist/meetings/request.js.map +1 -1
  90. package/dist/meetings/util.js +88 -1
  91. package/dist/meetings/util.js.map +1 -1
  92. package/dist/member/index.js +49 -0
  93. package/dist/member/index.js.map +1 -1
  94. package/dist/member/types.js +25 -0
  95. package/dist/member/types.js.map +1 -0
  96. package/dist/member/util.js +121 -25
  97. package/dist/member/util.js.map +1 -1
  98. package/dist/members/collection.js +10 -0
  99. package/dist/members/collection.js.map +1 -1
  100. package/dist/members/index.js +86 -5
  101. package/dist/members/index.js.map +1 -1
  102. package/dist/members/request.js +106 -38
  103. package/dist/members/request.js.map +1 -1
  104. package/dist/members/types.js +15 -0
  105. package/dist/members/types.js.map +1 -0
  106. package/dist/members/util.js +316 -233
  107. package/dist/members/util.js.map +1 -1
  108. package/dist/metrics/constants.js +10 -5
  109. package/dist/metrics/constants.js.map +1 -1
  110. package/dist/metrics/index.js +1 -468
  111. package/dist/metrics/index.js.map +1 -1
  112. package/dist/multistream/mediaRequestManager.js +238 -49
  113. package/dist/multistream/mediaRequestManager.js.map +1 -1
  114. package/dist/multistream/receiveSlot.js +49 -16
  115. package/dist/multistream/receiveSlot.js.map +1 -1
  116. package/dist/multistream/receiveSlotManager.js +52 -34
  117. package/dist/multistream/receiveSlotManager.js.map +1 -1
  118. package/dist/multistream/remoteMedia.js +44 -18
  119. package/dist/multistream/remoteMedia.js.map +1 -1
  120. package/dist/multistream/remoteMediaGroup.js +60 -3
  121. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  122. package/dist/multistream/remoteMediaManager.js +209 -59
  123. package/dist/multistream/remoteMediaManager.js.map +1 -1
  124. package/dist/multistream/sendSlotManager.js +233 -0
  125. package/dist/multistream/sendSlotManager.js.map +1 -0
  126. package/dist/reachability/index.js +161 -57
  127. package/dist/reachability/index.js.map +1 -1
  128. package/dist/reachability/request.js +17 -8
  129. package/dist/reachability/request.js.map +1 -1
  130. package/dist/reconnection-manager/index.js +199 -154
  131. package/dist/reconnection-manager/index.js.map +1 -1
  132. package/dist/recording-controller/index.js +21 -2
  133. package/dist/recording-controller/index.js.map +1 -1
  134. package/dist/recording-controller/util.js +9 -8
  135. package/dist/recording-controller/util.js.map +1 -1
  136. package/dist/roap/index.js +23 -29
  137. package/dist/roap/index.js.map +1 -1
  138. package/dist/roap/request.js +112 -97
  139. package/dist/roap/request.js.map +1 -1
  140. package/dist/roap/turnDiscovery.js +96 -36
  141. package/dist/roap/turnDiscovery.js.map +1 -1
  142. package/dist/rtcMetrics/constants.js +12 -0
  143. package/dist/rtcMetrics/constants.js.map +1 -0
  144. package/dist/rtcMetrics/index.js +117 -0
  145. package/dist/rtcMetrics/index.js.map +1 -0
  146. package/dist/statsAnalyzer/index.js +51 -34
  147. package/dist/statsAnalyzer/index.js.map +1 -1
  148. package/dist/statsAnalyzer/mqaUtil.js +6 -6
  149. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  150. package/dist/types/annotation/annotation.types.d.ts +42 -0
  151. package/dist/types/annotation/constants.d.ts +31 -0
  152. package/dist/types/annotation/index.d.ts +117 -0
  153. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  154. package/dist/types/breakouts/events.d.ts +8 -0
  155. package/dist/types/breakouts/request.d.ts +22 -0
  156. package/dist/types/breakouts/utils.d.ts +15 -0
  157. package/dist/types/common/errors/webex-errors.d.ts +13 -1
  158. package/dist/types/common/queue.d.ts +9 -7
  159. package/dist/types/config.d.ts +1 -6
  160. package/dist/types/constants.d.ts +155 -21
  161. package/dist/types/controls-options-manager/enums.d.ts +11 -1
  162. package/dist/types/controls-options-manager/index.d.ts +17 -1
  163. package/dist/types/controls-options-manager/types.d.ts +43 -0
  164. package/dist/types/controls-options-manager/util.d.ts +1 -7
  165. package/dist/types/index.d.ts +6 -4
  166. package/dist/types/interpretation/collection.d.ts +5 -0
  167. package/dist/types/interpretation/index.d.ts +5 -0
  168. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  169. package/dist/types/locus-info/index.d.ts +57 -4
  170. package/dist/types/locus-info/parser.d.ts +65 -6
  171. package/dist/types/media/index.d.ts +2 -0
  172. package/dist/types/media/properties.d.ts +34 -48
  173. package/dist/types/meeting/in-meeting-actions.d.ts +82 -2
  174. package/dist/types/meeting/index.d.ts +344 -506
  175. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  176. package/dist/types/meeting/muteState.d.ts +99 -23
  177. package/dist/types/meeting/request.d.ts +72 -43
  178. package/dist/types/meeting/util.d.ts +101 -1
  179. package/dist/types/meeting-info/index.d.ts +13 -1
  180. package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
  181. package/dist/types/meetings/collection.d.ts +8 -0
  182. package/dist/types/meetings/index.d.ts +86 -12
  183. package/dist/types/meetings/meetings.types.d.ts +4 -0
  184. package/dist/types/member/index.d.ts +13 -0
  185. package/dist/types/member/types.d.ts +32 -0
  186. package/dist/types/members/collection.d.ts +5 -0
  187. package/dist/types/members/index.d.ts +35 -2
  188. package/dist/types/members/request.d.ts +73 -9
  189. package/dist/types/members/types.d.ts +24 -0
  190. package/dist/types/members/util.d.ts +209 -1
  191. package/dist/types/metrics/constants.d.ts +9 -4
  192. package/dist/types/metrics/index.d.ts +4 -119
  193. package/dist/types/multistream/mediaRequestManager.d.ts +73 -5
  194. package/dist/types/multistream/receiveSlot.d.ts +16 -12
  195. package/dist/types/multistream/receiveSlotManager.d.ts +19 -4
  196. package/dist/types/multistream/remoteMedia.d.ts +8 -29
  197. package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
  198. package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
  199. package/dist/types/multistream/sendSlotManager.d.ts +61 -0
  200. package/dist/types/reachability/index.d.ts +44 -7
  201. package/dist/types/reachability/request.d.ts +7 -3
  202. package/dist/types/reconnection-manager/index.d.ts +9 -0
  203. package/dist/types/recording-controller/index.d.ts +15 -1
  204. package/dist/types/recording-controller/util.d.ts +5 -4
  205. package/dist/types/roap/request.d.ts +15 -11
  206. package/dist/types/roap/turnDiscovery.d.ts +18 -1
  207. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  208. package/dist/types/rtcMetrics/index.d.ts +47 -0
  209. package/dist/types/statsAnalyzer/index.d.ts +6 -1
  210. package/package.json +23 -20
  211. package/src/annotation/annotation.types.ts +50 -0
  212. package/src/annotation/constants.ts +36 -0
  213. package/src/annotation/index.ts +328 -0
  214. package/src/breakouts/README.md +44 -14
  215. package/src/breakouts/breakout.ts +87 -9
  216. package/src/breakouts/edit-lock-error.ts +25 -0
  217. package/src/breakouts/events.ts +56 -0
  218. package/src/breakouts/index.ts +710 -10
  219. package/src/breakouts/request.ts +55 -0
  220. package/src/breakouts/utils.ts +57 -0
  221. package/src/common/errors/webex-errors.ts +27 -2
  222. package/src/common/logs/logger-proxy.ts +1 -1
  223. package/src/common/queue.ts +22 -8
  224. package/src/config.ts +4 -9
  225. package/src/constants.ts +178 -18
  226. package/src/controls-options-manager/enums.ts +12 -0
  227. package/src/controls-options-manager/index.ts +116 -21
  228. package/src/controls-options-manager/types.ts +59 -0
  229. package/src/controls-options-manager/util.ts +294 -14
  230. package/src/index.ts +40 -0
  231. package/src/interpretation/README.md +60 -0
  232. package/src/interpretation/collection.ts +19 -0
  233. package/src/interpretation/index.ts +332 -0
  234. package/src/interpretation/siLanguage.ts +18 -0
  235. package/src/locus-info/controlsUtils.ts +108 -0
  236. package/src/locus-info/index.ts +412 -59
  237. package/src/locus-info/infoUtils.ts +10 -2
  238. package/src/locus-info/mediaSharesUtils.ts +48 -0
  239. package/src/locus-info/parser.ts +231 -39
  240. package/src/locus-info/selfUtils.ts +81 -5
  241. package/src/media/index.ts +100 -122
  242. package/src/media/properties.ts +70 -108
  243. package/src/meeting/in-meeting-actions.ts +163 -3
  244. package/src/meeting/index.ts +2471 -2306
  245. package/src/meeting/locusMediaRequest.ts +313 -0
  246. package/src/meeting/muteState.ts +229 -131
  247. package/src/meeting/request.ts +172 -121
  248. package/src/meeting/util.ts +588 -394
  249. package/src/meeting-info/index.ts +79 -8
  250. package/src/meeting-info/meeting-info-v2.ts +168 -14
  251. package/src/meeting-info/util.ts +1 -1
  252. package/src/meeting-info/utilv2.ts +23 -23
  253. package/src/meetings/collection.ts +20 -0
  254. package/src/meetings/index.ts +414 -108
  255. package/src/meetings/meetings.types.ts +12 -0
  256. package/src/meetings/request.ts +2 -0
  257. package/src/meetings/util.ts +103 -4
  258. package/src/member/index.ts +49 -0
  259. package/src/member/types.ts +38 -0
  260. package/src/member/util.ts +127 -25
  261. package/src/members/collection.ts +8 -0
  262. package/src/members/index.ts +107 -6
  263. package/src/members/request.ts +97 -17
  264. package/src/members/types.ts +28 -0
  265. package/src/members/util.ts +319 -240
  266. package/src/metrics/constants.ts +9 -4
  267. package/src/metrics/index.ts +1 -490
  268. package/src/multistream/mediaRequestManager.ts +289 -79
  269. package/src/multistream/receiveSlot.ts +55 -18
  270. package/src/multistream/receiveSlotManager.ts +46 -24
  271. package/src/multistream/remoteMedia.ts +27 -2
  272. package/src/multistream/remoteMediaGroup.ts +59 -0
  273. package/src/multistream/remoteMediaManager.ts +148 -30
  274. package/src/multistream/sendSlotManager.ts +170 -0
  275. package/src/reachability/index.ts +165 -37
  276. package/src/reachability/request.ts +17 -8
  277. package/src/reconnection-manager/index.ts +81 -54
  278. package/src/recording-controller/index.ts +20 -3
  279. package/src/recording-controller/util.ts +26 -9
  280. package/src/roap/index.ts +23 -30
  281. package/src/roap/request.ts +100 -104
  282. package/src/roap/turnDiscovery.ts +51 -25
  283. package/src/rtcMetrics/constants.ts +3 -0
  284. package/src/rtcMetrics/index.ts +100 -0
  285. package/src/statsAnalyzer/index.ts +73 -35
  286. package/src/statsAnalyzer/mqaUtil.ts +8 -10
  287. package/test/integration/spec/converged-space-meetings.js +233 -0
  288. package/test/integration/spec/journey.js +320 -261
  289. package/test/integration/spec/space-meeting.js +76 -3
  290. package/test/unit/spec/annotation/index.ts +418 -0
  291. package/test/unit/spec/breakouts/breakout.ts +142 -24
  292. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  293. package/test/unit/spec/breakouts/events.ts +89 -0
  294. package/test/unit/spec/breakouts/index.ts +1545 -48
  295. package/test/unit/spec/breakouts/request.ts +104 -0
  296. package/test/unit/spec/breakouts/utils.js +72 -0
  297. package/test/unit/spec/common/queue.js +31 -2
  298. package/test/unit/spec/controls-options-manager/index.js +163 -0
  299. package/test/unit/spec/controls-options-manager/util.js +576 -60
  300. package/test/unit/spec/fixture/locus.js +1 -0
  301. package/test/unit/spec/interpretation/collection.ts +15 -0
  302. package/test/unit/spec/interpretation/index.ts +589 -0
  303. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  304. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  305. package/test/unit/spec/locus-info/index.js +1283 -33
  306. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  307. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  308. package/test/unit/spec/locus-info/parser.js +62 -22
  309. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  310. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  311. package/test/unit/spec/media/index.ts +104 -37
  312. package/test/unit/spec/meeting/in-meeting-actions.ts +81 -3
  313. package/test/unit/spec/meeting/index.js +4095 -1913
  314. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  315. package/test/unit/spec/meeting/muteState.js +408 -208
  316. package/test/unit/spec/meeting/request.js +440 -45
  317. package/test/unit/spec/meeting/utils.js +679 -64
  318. package/test/unit/spec/meeting-info/index.js +293 -0
  319. package/test/unit/spec/meeting-info/meetinginfov2.js +517 -5
  320. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  321. package/test/unit/spec/meetings/collection.js +14 -0
  322. package/test/unit/spec/meetings/index.js +941 -151
  323. package/test/unit/spec/meetings/utils.js +206 -2
  324. package/test/unit/spec/member/index.js +58 -4
  325. package/test/unit/spec/member/util.js +479 -35
  326. package/test/unit/spec/members/index.js +319 -1
  327. package/test/unit/spec/members/request.js +206 -27
  328. package/test/unit/spec/members/utils.js +184 -0
  329. package/test/unit/spec/metrics/index.js +1 -50
  330. package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
  331. package/test/unit/spec/multistream/receiveSlot.ts +72 -13
  332. package/test/unit/spec/multistream/receiveSlotManager.ts +58 -28
  333. package/test/unit/spec/multistream/remoteMedia.ts +30 -0
  334. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  335. package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
  336. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  337. package/test/unit/spec/reachability/index.ts +343 -9
  338. package/test/unit/spec/reachability/request.js +68 -0
  339. package/test/unit/spec/reconnection-manager/index.js +84 -9
  340. package/test/unit/spec/recording-controller/index.js +294 -218
  341. package/test/unit/spec/recording-controller/util.js +223 -96
  342. package/test/unit/spec/roap/index.ts +31 -51
  343. package/test/unit/spec/roap/request.ts +203 -85
  344. package/test/unit/spec/roap/turnDiscovery.ts +48 -13
  345. package/test/unit/spec/rtcMetrics/index.ts +68 -0
  346. package/test/unit/spec/stats-analyzer/index.js +29 -2
  347. package/test/utils/constants.js +9 -0
  348. package/test/utils/integrationTestUtils.js +46 -0
  349. package/test/utils/testUtils.js +0 -45
  350. package/test/utils/webex-config.js +4 -0
  351. package/test/utils/webex-test-users.js +6 -3
  352. package/dist/meeting/effectsState.js +0 -262
  353. package/dist/meeting/effectsState.js.map +0 -1
  354. package/dist/metrics/config.js +0 -299
  355. package/dist/metrics/config.js.map +0 -1
  356. package/dist/types/meeting/effectsState.d.ts +0 -42
  357. package/dist/types/metrics/config.d.ts +0 -178
  358. package/src/index.js +0 -16
  359. package/src/meeting/effectsState.ts +0 -211
  360. package/src/metrics/config.ts +0 -495
  361. package/test/unit/spec/meeting/effectsState.js +0 -285
@@ -0,0 +1,55 @@
1
+ import {StatelessWebexPlugin} from '@webex/webex-core';
2
+ import LoggerProxy from '../common/logs/logger-proxy';
3
+ import {getBroadcastRoles} from './utils';
4
+ import {HTTP_VERBS} from '../constants';
5
+
6
+ /**
7
+ * @class BreakoutRequest
8
+ */
9
+ export default class BreakoutRequest extends StatelessWebexPlugin {
10
+ /**
11
+ * Broadcast message to all breakout session's participants
12
+ * @param {String} url
13
+ * @param {String} message
14
+ * @param {Object} options
15
+ * @param {string} groupId
16
+ * @param {string} sessionId
17
+ * @returns {Promise}
18
+ */
19
+ broadcast({
20
+ url,
21
+ message,
22
+ options,
23
+ groupId,
24
+ sessionId,
25
+ }: {
26
+ url: string;
27
+ message: string;
28
+ options?: object;
29
+ groupId: string;
30
+ sessionId?: string;
31
+ }) {
32
+ const roles = getBroadcastRoles(options);
33
+ const params = {
34
+ id: groupId,
35
+ recipientRoles: roles.length ? roles : undefined,
36
+ sessions: sessionId ? [{id: sessionId}] : undefined,
37
+ };
38
+
39
+ // @ts-ignore
40
+ return this.request({
41
+ method: HTTP_VERBS.POST,
42
+ uri: `${url}/message`,
43
+ body: {
44
+ message,
45
+ groups: [params],
46
+ },
47
+ }).catch((error) => {
48
+ if (error.body && error.body.errorCode === 201409036 && error.statusCode === 409) {
49
+ LoggerProxy.logger.info(`Breakouts#broadcast --> no joined participants`);
50
+ } else {
51
+ throw error;
52
+ }
53
+ });
54
+ }
55
+ }
@@ -0,0 +1,57 @@
1
+ // eslint-disable-next-line import/prefer-default-export
2
+ import LoggerProxy from '../common/logs/logger-proxy';
3
+ import BreakoutEditLockedError from './edit-lock-error';
4
+ import {BREAKOUTS} from '../constants';
5
+
6
+ export const getBroadcastRoles = (options): string[] => {
7
+ const recipientRoles = [];
8
+ if (!options || (!options.cohosts && !options.presenters)) {
9
+ return recipientRoles;
10
+ }
11
+ if (options.cohosts) {
12
+ recipientRoles.push('COHOST');
13
+ }
14
+ if (options.presenters) {
15
+ recipientRoles.push('PRESENTER');
16
+ }
17
+
18
+ return recipientRoles;
19
+ };
20
+
21
+ /**
22
+ * Deals with all kinds of errors of breakout service
23
+ * @param {object} error // one of the breakout service error
24
+ * @param {string} position // position of the error occur
25
+ * @returns {object}
26
+ */
27
+ export const boServiceErrorHandler = (error: any, position: string): any => {
28
+ const errorCode = error?.body?.errorCode;
29
+ const {EDIT_LOCK_TOKEN_MISMATCH, EDIT_NOT_AUTHORIZED} = BREAKOUTS.ERROR_CODE;
30
+ let throwError;
31
+ switch (errorCode) {
32
+ case EDIT_LOCK_TOKEN_MISMATCH:
33
+ throwError = new BreakoutEditLockedError('Edit lock token mismatch', error);
34
+ break;
35
+ case EDIT_NOT_AUTHORIZED:
36
+ throwError = new BreakoutEditLockedError('Not authorized to interact with edit lock', error);
37
+ break;
38
+ default:
39
+ throwError = error;
40
+ }
41
+ LoggerProxy.logger.info(`${position} --> ${throwError?.message}`);
42
+
43
+ return throwError;
44
+ };
45
+
46
+ /**
47
+ *
48
+ * @param {object} breakout
49
+ * @param {string} newSessionType
50
+ * @returns {boolean}
51
+ */
52
+ export const isSessionTypeChangedFromSessionToMain = (breakout, newSessionType) => {
53
+ return (
54
+ breakout.previous('sessionType') === BREAKOUTS.SESSION_TYPES.BREAKOUT &&
55
+ newSessionType === BREAKOUTS.SESSION_TYPES.MAIN
56
+ );
57
+ };
@@ -72,13 +72,17 @@ WebExMeetingsErrors[UserNotJoinedError.CODE] = UserNotJoinedError;
72
72
  * @classdesc Raised whenever the user has not established media yet.
73
73
  * @extends WebexMeetingsError
74
74
  * @property {number} code - 30103
75
- * @property {string} message - 'User has not established media yet'
75
+ * @property {string} message - error message
76
76
  */
77
77
  class NoMediaEstablishedYetError extends WebexMeetingsError {
78
78
  static CODE = 30103;
79
79
 
80
+ // eslint-disable-next-line require-jsdoc
80
81
  constructor() {
81
- super(NoMediaEstablishedYetError.CODE, 'User has not established media yet');
82
+ super(
83
+ NoMediaEstablishedYetError.CODE,
84
+ 'Webrtc media connection is missing, call addMedia() first'
85
+ );
82
86
  }
83
87
  }
84
88
 
@@ -103,6 +107,27 @@ class UserInLobbyError extends WebexMeetingsError {
103
107
  export {UserInLobbyError};
104
108
  WebExMeetingsErrors[UserInLobbyError.CODE] = UserInLobbyError;
105
109
 
110
+ /**
111
+ * @class SpaceIDDeprecatedError
112
+ * @classdesc Raised whenever the user passes Space ID as destination for create meeting.
113
+ * @extends WebexMeetingsError
114
+ * @property {number} code - 30105
115
+ * @property {string} message - Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-to-Unified-Space-Meetings) to migrate to use the meeting ID or SIP address.'
116
+ */
117
+ class SpaceIDDeprecatedError extends WebexMeetingsError {
118
+ static CODE = 30105;
119
+
120
+ constructor() {
121
+ super(
122
+ SpaceIDDeprecatedError.CODE,
123
+ 'Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-to-Unified-Space-Meetings) to migrate to use the meeting ID or SIP address.'
124
+ );
125
+ }
126
+ }
127
+
128
+ export {SpaceIDDeprecatedError};
129
+ WebExMeetingsErrors[SpaceIDDeprecatedError.CODE] = SpaceIDDeprecatedError;
130
+
106
131
  /**
107
132
  * @class IceGatheringFailed
108
133
  * @classdesc Raised whenever ice gathering fails.
@@ -1,4 +1,4 @@
1
- /* eslint-disable no-unused-vars */
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
2
  import LoggerConfig from './logger-config';
3
3
 
4
4
  const LoggerProxy: any = {
@@ -1,13 +1,18 @@
1
1
  /**
2
- * Simple queue
2
+ * Simple queue in which the elements are always sorted
3
3
  */
4
- export default class SimpleQueue {
5
- queue: any[];
4
+ export default class SortedQueue<ItemType> {
5
+ queue: ItemType[];
6
+ // returns -1 if left < right, 0 if left === right, +1 if left > right
7
+ compareFunc: (left: ItemType, right: ItemType) => number;
8
+
6
9
  /**
7
- * @constructs SimpleQueue
10
+ * @constructs SortedQueue
11
+ * @param {Function} compareFunc comparison function used for sorting the elements of the queue
8
12
  */
9
- constructor() {
13
+ constructor(compareFunc: (left: ItemType, right: ItemType) => number) {
10
14
  this.queue = [];
15
+ this.compareFunc = compareFunc;
11
16
  }
12
17
 
13
18
  /**
@@ -23,8 +28,17 @@ export default class SimpleQueue {
23
28
  * @param {object} item
24
29
  * @returns {undefined}
25
30
  */
26
- enqueue(item: object) {
27
- this.queue.push(item);
31
+ enqueue(item: ItemType) {
32
+ // Find the index of the first item in the queue that's greater or equal to the new item.
33
+ // That's where we want to insert the new item.
34
+ const idx = this.queue.findIndex((existingItem) => {
35
+ return this.compareFunc(existingItem, item) >= 0;
36
+ });
37
+ if (idx >= 0) {
38
+ this.queue.splice(idx, 0, item);
39
+ } else {
40
+ this.queue.push(item);
41
+ }
28
42
  }
29
43
 
30
44
  /**
@@ -32,7 +46,7 @@ export default class SimpleQueue {
32
46
  * Returns null if the queue is empty.
33
47
  * @returns {(object|null)} Queue item or null.
34
48
  */
35
- dequeue() {
49
+ dequeue(): ItemType {
36
50
  if (this.queue.length === 0) {
37
51
  return null;
38
52
  }
package/src/config.ts CHANGED
@@ -10,13 +10,7 @@ export default {
10
10
  meetings: {
11
11
  deviceType: deviceType.WEB,
12
12
  mediaSettings: {
13
- sendAudio: true,
14
- sendVideo: true,
15
- receiveAudio: true,
16
- receiveVideo: true,
17
13
  pstn: false,
18
- sendShare: false,
19
- receiveShare: false,
20
14
  },
21
15
  reconnection: {
22
16
  enabled: false,
@@ -89,14 +83,15 @@ export default {
89
83
  receiveTranscription: false,
90
84
  enableExtmap: false,
91
85
  enableAutomaticLLM: false,
86
+ installedOrgID: undefined,
92
87
  experimental: {
93
88
  enableMediaNegotiatedEvent: false,
94
- enableUnifiedMeetings: false,
95
- enableAdhocMeetings: false,
89
+ enableUnifiedMeetings: true,
90
+ enableAdhocMeetings: true,
96
91
  enableTurnDiscovery: true,
97
92
  },
98
93
  degradationPreferences: {
99
- maxMacroblocksLimit: 32400,
94
+ maxMacroblocksLimit: 8192,
100
95
  },
101
96
  },
102
97
  };
package/src/constants.ts CHANGED
@@ -4,13 +4,14 @@ import {hydraTypes} from '@webex/common';
4
4
  // *********** LOWERCASE / CAMELCASE STRINGS ************
5
5
 
6
6
  export const AUDIO = 'audio';
7
- export const AUDIO_INPUT = 'audioinput';
8
7
  export const AUDIO_STATUS = 'audioStatus';
9
8
  export const ALERT = 'alert';
9
+ export const ALIAS = 'alias';
10
10
  export const ANSWER = 'answer';
11
11
 
12
12
  export const CALL = 'call';
13
13
  export const CORRELATION_ID = 'correlationId';
14
+ export const MEETINGNUMBER = 'meetingNumber';
14
15
  export const CONVERSATION_URL = 'conversationUrl';
15
16
  export const CALENDAR = 'calendar';
16
17
  export const CALENDAR_EVENTS_API = 'calendarEvents';
@@ -65,7 +66,6 @@ export const SHARE = 'share';
65
66
  export const TYPE = 'type';
66
67
 
67
68
  export const VIDEO = 'video';
68
- export const VIDEO_INPUT = 'videoinput';
69
69
  export const VIDEO_STATUS = 'videoStatus';
70
70
 
71
71
  // *********** UPPERCASE ONLY STRINGS ************
@@ -93,6 +93,7 @@ export const _JOINED_ = 'JOINED';
93
93
 
94
94
  export const _LOCUS_ID_ = 'LOCUS_ID';
95
95
  export const _LEFT_ = 'LEFT';
96
+ export const _MOVED_ = 'MOVED';
96
97
 
97
98
  export const _MEETING_LINK_ = 'MEETING_LINK';
98
99
  export const _MEETING_UUID_ = 'MEETING_UUID';
@@ -189,7 +190,7 @@ export const ICE_FAIL_TIMEOUT = 3000;
189
190
 
190
191
  export const RETRY_TIMEOUT = 3000;
191
192
 
192
- export const PC_BAIL_TIMEOUT = 8000;
193
+ export const PC_BAIL_TIMEOUT = 15000;
193
194
 
194
195
  // ******************** REGEX **********************
195
196
  // Please alphabetize
@@ -280,6 +281,7 @@ export const EVENT_TRIGGERS = {
280
281
  MEETING_STOPPED_SHARING_LOCAL: 'meeting:stoppedSharingLocal',
281
282
  MEETING_STARTED_SHARING_REMOTE: 'meeting:startedSharingRemote',
282
283
  MEETING_STOPPED_SHARING_REMOTE: 'meeting:stoppedSharingRemote',
284
+ MEETING_UPDATE_ANNOTATION_INFO: 'meeting:updateAnnotationInfo',
283
285
  MEETING_STARTED_SHARING_WHITEBOARD: 'meeting:startedSharingWhiteboard',
284
286
  MEETING_STOPPED_SHARING_WHITEBOARD: 'meeting:stoppedSharingWhiteboard',
285
287
  MEETING_MEDIA_LOCAL_STARTED: 'meeting:media:local:start',
@@ -297,18 +299,29 @@ export const EVENT_TRIGGERS = {
297
299
  MEETING_RINGING_STOP: 'meeting:ringingStop',
298
300
  MEETING_SELF_LOBBY_WAITING: 'meeting:self:lobbyWaiting',
299
301
  MEETING_SELF_GUEST_ADMITTED: 'meeting:self:guestAdmitted',
302
+ MEETING_SELF_VIDEO_MUTED_BY_OTHERS: 'meeting:self:videoMutedByOthers',
303
+ MEETING_SELF_VIDEO_UNMUTED_BY_OTHERS: 'meeting:self:videoUnmutedByOthers',
300
304
  MEETING_SELF_MUTED_BY_OTHERS: 'meeting:self:mutedByOthers',
301
305
  MEETING_SELF_UNMUTED_BY_OTHERS: 'meeting:self:unmutedByOthers',
302
306
  MEETING_SELF_REQUESTED_TO_UNMUTE: 'meeting:self:requestedToUnmute',
303
307
  MEETING_SELF_PHONE_AUDIO_UPDATE: 'meeting:self:phoneAudioUpdate',
304
308
  MEETING_SELF_CANNOT_VIEW_PARTICIPANT_LIST: 'meeting:self:cannotViewParticipantList',
305
309
  MEETING_SELF_IS_SHARING_BLOCKED: 'meeting:self:isSharingBlocked',
310
+ MEETING_SELF_ROLES_CHANGED: 'meeting:self:rolesChanged',
306
311
  MEETING_CONTROLS_LAYOUT_UPDATE: 'meeting:layout:update',
307
312
  MEETING_ENTRY_EXIT_TONE_UPDATE: 'meeting:entryExitTone:update',
308
313
  MEETING_BREAKOUTS_UPDATE: 'meeting:breakouts:update',
309
314
  MEETING_BREAKOUTS_CLOSING: 'meeting:breakouts:closing',
310
315
  MEETING_BREAKOUTS_MESSAGE: 'meeting:breakouts:message',
316
+ MEETING_BREAKOUTS_ASK_RETURN_TO_MAIN: 'meeting:breakouts:askReturnToMain',
317
+ MEETING_BREAKOUTS_LEAVE: 'meeting:breakouts:leave',
318
+ MEETING_BREAKOUTS_ASK_FOR_HELP: 'meeting:breakouts:askForHelp',
319
+ MEETING_BREAKOUTS_PRE_ASSIGNMENTS_UPDATE: 'meeting:breakouts:preAssignmentsUpdate',
320
+ MEETING_INTERPRETATION_UPDATE: 'meeting:interpretation:update',
321
+ MEETING_INTERPRETATION_SUPPORT_LANGUAGES_UPDATE: 'meeting:interpretation:supportLanguagesUpdate',
322
+ MEETING_INTERPRETATION_HANDOFF_REQUESTS_ARRIVED: 'meeting:interpretation:handoffRequestsArrived',
311
323
  MEMBERS_UPDATE: 'members:update',
324
+ MEMBERS_CLEAR: 'members:clear',
312
325
  MEMBERS_CONTENT_UPDATE: 'members:content:update',
313
326
  MEMBERS_HOST_UPDATE: 'members:host:update',
314
327
  MEMBERS_SELF_UPDATE: 'members:self:update',
@@ -337,17 +350,28 @@ export const EVENT_TRIGGERS = {
337
350
  REMOTE_MEDIA_AUDIO_CREATED: 'media:remoteAudio:created',
338
351
  REMOTE_MEDIA_SCREEN_SHARE_AUDIO_CREATED: 'media:remoteScreenShareAudio:created',
339
352
  REMOTE_MEDIA_VIDEO_LAYOUT_CHANGED: 'media:remoteVideo:layoutChanged',
353
+ // Controls
354
+ MEETING_CONTROLS_MUTE_ON_ENTRY_UPDATED: 'meeting:controls:mute-on-entry:updated',
355
+ MEETING_CONTROLS_SHARE_CONTROL_UPDATED: 'meeting:controls:share-control:updated',
356
+ MEETING_CONTROLS_DISALLOW_UNMUTE_UPDATED: 'meeting:controls:disallow-unmute:updated',
357
+ MEETING_CONTROLS_REACTIONS_UPDATED: 'meeting:controls:reactions:updated',
358
+ MEETING_CONTROLS_VIEW_THE_PARTICIPANTS_LIST_UPDATED:
359
+ 'meeting:controls:view-the-participants-list:updated',
360
+ MEETING_CONTROLS_RAISE_HAND_UPDATED: 'meeting:controls:raise-hand:updated',
361
+ MEETING_CONTROLS_VIDEO_UPDATED: 'meeting:controls:video:updated',
362
+ // Locus URL changed
363
+ MEETING_LOCUS_URL_UPDATE: 'meeting:locus:locusUrl:update',
364
+ MEETING_STREAM_PUBLISH_STATE_CHANGED: 'meeting:streamPublishStateChanged',
340
365
  };
341
366
 
342
367
  export const EVENT_TYPES = {
343
368
  SELF: 'self',
344
369
  OTHER: 'other',
345
- LOCAL: 'local',
346
370
  REMOTE: 'remote',
347
371
  REMOTE_AUDIO: 'remoteAudio',
348
372
  REMOTE_VIDEO: 'remoteVideo',
349
373
  REMOTE_SHARE: 'remoteShare',
350
- LOCAL_SHARE: 'localShare',
374
+ REMOTE_SHARE_AUDIO: 'remoteShareAudio',
351
375
  ERROR: 'error',
352
376
  };
353
377
 
@@ -360,9 +384,11 @@ export const MEETING_REMOVED_REASON = {
360
384
  FULLSTATE_REMOVED: 'FULLSTATE_REMOVED', // meeting got dropped ? not sure
361
385
  MEETING_INACTIVE_TERMINATING: 'MEETING_INACTIVE_TERMINATING', // Meeting got ended or everyone left the meeting
362
386
  CLIENT_LEAVE_REQUEST: 'CLIENT_LEAVE_REQUEST', // You triggered leave meeting
387
+ CLIENT_LEAVE_REQUEST_TAB_CLOSED: 'CLIENT_LEAVE_REQUEST_TAB_CLOSED', // You triggered leave meeting, such as closing the browser tab directly
363
388
  USER_ENDED_SHARE_STREAMS: 'USER_ENDED_SHARE_STREAMS', // user triggered stop share
364
389
  NO_MEETINGS_TO_SYNC: 'NO_MEETINGS_TO_SYNC', // After the syncMeeting no meeting exists
365
390
  MEETING_CONNECTION_FAILED: 'MEETING_CONNECTION_FAILED', // meeting failed to connect due to ice failures or firewall issue
391
+ LOCUS_DTO_SYNC_FAILED: 'LOCUS_DTO_SYNC_FAILED', // failed to get any Locus DTO for that meeting
366
392
  };
367
393
 
368
394
  // One one one calls ends for the following reasons
@@ -377,6 +403,8 @@ export const CALL_REMOVED_REASON = {
377
403
  export const SHARE_STOPPED_REASON = {
378
404
  SELF_STOPPED: 'SELF_STOPPED',
379
405
  MEETING_REJOIN: 'MEETING_REJOIN',
406
+ MEDIA_RECONNECTION: 'MEDIA_RECONNECTION',
407
+ TRACK_ENDED: 'TRACK_ENDED',
380
408
  };
381
409
 
382
410
  export const EVENTS = {
@@ -452,6 +480,11 @@ export const ERROR_DICTIONARY = {
452
480
  MESSAGE: 'Captcha is required.',
453
481
  CODE: 8,
454
482
  },
483
+ BREAKOUT_EDIT: {
484
+ NAME: 'BreakoutEditLockedError',
485
+ MESSAGE: 'Edit lock token mismatch',
486
+ CODE: 9,
487
+ },
455
488
  };
456
489
 
457
490
  export const FLOOR_ACTION = {
@@ -473,6 +506,7 @@ export const HTTP_VERBS = {
473
506
  POST: 'POST',
474
507
  GET: 'GET',
475
508
  PATCH: 'PATCH',
509
+ DELETE: 'DELETE',
476
510
  };
477
511
 
478
512
  // https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/iceGatheringState
@@ -518,17 +552,28 @@ export const LOCUS = {
518
552
  SYNCDEBUG: 'sync_debug',
519
553
  };
520
554
 
555
+ export const ANNOTATION = {
556
+ ANNOTATION_ON_SHARE_SUPPORTED: 'ANNOTATION_ON_SHARE_SUPPORTED',
557
+ };
521
558
  export const BREAKOUTS = {
522
559
  STATUS: {
523
560
  CLOSING: 'CLOSING',
561
+ CLOSED: 'CLOSED',
562
+ PENDING: 'PENDING',
563
+ OPEN: 'OPEN',
524
564
  },
525
565
  EVENTS: {
526
566
  BREAKOUTS_CLOSING: 'BREAKOUTS_CLOSING',
527
567
  MESSAGE: 'MESSAGE',
528
568
  MEMBERS_UPDATE: 'MEMBERS_UPDATE',
569
+ ASK_RETURN_TO_MAIN: 'ASK_RETURN_TO_MAIN',
570
+ LEAVE_BREAKOUT: 'LEAVE_BREAKOUT',
571
+ ASK_FOR_HELP: 'ASK_FOR_HELP',
572
+ PRE_ASSIGNMENTS_UPDATE: 'PRE_ASSIGNMENTS_UPDATE',
529
573
  },
530
574
  SESSION_TYPES: {
531
575
  MAIN: 'MAIN',
576
+ BREAKOUT: 'BREAKOUT',
532
577
  },
533
578
  SESSION_STATES: {
534
579
  ACTIVE: 'active',
@@ -538,6 +583,35 @@ export const BREAKOUTS = {
538
583
  REQUESTED: 'requested',
539
584
  },
540
585
  BREAKOUTS_SUPPORTED: 'BREAKOUTS_SUPPORTED',
586
+ ACTION: {
587
+ START: 'START',
588
+ CLOSE: 'CLOSE',
589
+ DELETE: 'DELETE',
590
+ },
591
+ ERROR_CODE: {
592
+ EDIT_LOCK_TOKEN_MISMATCH: 201409024,
593
+ EDIT_NOT_AUTHORIZED: 201403007,
594
+ },
595
+ EDIT_LOCK_STATUS: {
596
+ LOCKED: 'LOCKED',
597
+ NOT_LOCKED: 'NOT_LOCKED',
598
+ UNKNOWN: 'UNKNOWN',
599
+ },
600
+ DEFAULT_TTL: 30,
601
+ };
602
+
603
+ export const INTERPRETATION = {
604
+ EVENTS: {
605
+ SUPPORT_LANGUAGES_UPDATE: 'SUPPORT_LANGUAGES_UPDATE',
606
+ HANDOFF_REQUESTS_ARRIVED: 'HANDOFF_REQUESTS_ARRIVED',
607
+ },
608
+ ACTION_TYPE: {
609
+ OFFERED: 'OFFERED',
610
+ ACCEPTED: 'ACCEPTED',
611
+ REQUESTED: 'REQUESTED',
612
+ DECLINED: 'DECLINED',
613
+ },
614
+ RESOURCE_TYPE: 'SiHandover',
541
615
  };
542
616
 
543
617
  export const LOCUSINFO = {
@@ -547,13 +621,24 @@ export const LOCUSINFO = {
547
621
  CONTROLS_MEETING_TRANSCRIBE_UPDATED: 'CONTROLS_MEETING_TRANSCRIBE_UPDATED',
548
622
  CONTROLS_MEETING_BREAKOUT_UPDATED: 'CONTROLS_MEETING_BREAKOUT_UPDATED',
549
623
  CONTROLS_MEETING_CONTAINER_UPDATED: 'CONTROLS_MEETING_CONTAINER_UPDATED',
624
+ CONTROLS_MEETING_INTERPRETATION_UPDATED: 'CONTROLS_MEETING_INTERPRETATION_UPDATED',
550
625
  CONTROLS_ENTRY_EXIT_TONE_UPDATED: 'CONTROLS_ENTRY_EXIT_TONE_UPDATED',
626
+ CONTROLS_JOIN_BREAKOUT_FROM_MAIN: 'CONTROLS_JOIN_BREAKOUT_FROM_MAIN',
627
+ CONTROLS_MUTE_ON_ENTRY_CHANGED: 'CONTROLS_MUTE_ON_ENTRY_CHANGED',
628
+ CONTROLS_SHARE_CONTROL_CHANGED: 'CONTROLS_SHARE_CONTROL_CHANGED',
629
+ CONTROLS_DISALLOW_UNMUTE_CHANGED: 'CONTROLS_DISALLOW_UNMUTE_CHANGED',
630
+ CONTROLS_REACTIONS_CHANGED: 'CONTROLS_REACTIONS_CHANGED',
631
+ CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED: 'CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED',
632
+ CONTROLS_RAISE_HAND_CHANGED: 'CONTROLS_RAISE_HAND_CHANGED',
633
+ CONTROLS_VIDEO_CHANGED: 'CONTROLS_VIDEO_CHANGED',
551
634
  SELF_UNADMITTED_GUEST: 'SELF_UNADMITTED_GUEST',
552
635
  SELF_ADMITTED_GUEST: 'SELF_ADMITTED_GUEST',
636
+ SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED: 'SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED',
553
637
  SELF_REMOTE_MUTE_STATUS_UPDATED: 'SELF_REMOTE_MUTE_STATUS_UPDATED',
554
638
  LOCAL_UNMUTE_REQUESTED: 'LOCAL_UNMUTE_REQUESTED',
555
639
  LOCAL_UNMUTE_REQUIRED: 'LOCAL_UNMUTE_REQUIRED',
556
640
  SELF_MODERATOR_CHANGED: 'SELF_MODERATOR_CHANGED',
641
+ SELF_ROLES_CHANGED: 'SELF_ROLES_CHANGED',
557
642
  MEETING_UPDATE: 'MEETING_UPDATE',
558
643
  MEDIA_STATUS_CHANGE: 'MEDIA_STATUS_CHANGE',
559
644
  FULL_STATE_TYPE_UPDATE: 'FULL_STATE_TYPE_UPDATE',
@@ -568,6 +653,7 @@ export const LOCUSINFO = {
568
653
  SELF_CANNOT_VIEW_PARTICIPANT_LIST_CHANGE: 'SELF_CANNOT_VIEW_PARTICIPANT_LIST_CHANGE',
569
654
  SELF_IS_SHARING_BLOCKED_CHANGE: 'SELF_IS_SHARING_BLOCKED_CHANGE',
570
655
  SELF_MEETING_BREAKOUTS_CHANGED: 'SELF_MEETING_BREAKOUTS_CHANGED',
656
+ SELF_MEETING_INTERPRETATION_CHANGED: 'SELF_MEETING_INTERPRETATION_CHANGED',
571
657
  MEDIA_INACTIVITY: 'MEDIA_INACTIVITY',
572
658
  LINKS_SERVICES: 'LINKS_SERVICES',
573
659
  },
@@ -732,6 +818,28 @@ export const MEETING_END_REASON = {
732
818
  MEDIA_RELEASED: 'MEDIA_RELEASED',
733
819
  };
734
820
 
821
+ export enum SELF_POLICY {
822
+ ENFORCE_VIRTUAL_BACKGROUND = 'enforceVirtualBackground',
823
+ SUPPORT_LOCAL_RECORD = 'supportLocalRecord',
824
+ SUPPORT_NETWORK_BASED_RECORD = 'supportNetworkBasedRecord',
825
+ SUPPORT_REALTIME_CLOSE_CAPTION = 'supportRealtimeCloseCaption',
826
+ SUPPORT_CHAT = 'supportChat',
827
+ SUPPORT_DESKTOP_SHARE_REMOTE = 'supportDesktopShareRemote',
828
+ SUPPORT_DESKTOP_SHARE = 'supportDesktopShare',
829
+ SUPPORT_WHITEBOARD = 'supportWhiteboard',
830
+ SUPPORT_FILE_TRANSFER = 'supportFileTransfer',
831
+ SUPPORT_APP_SHARE = 'supportAppShare',
832
+ SUPPORT_CAMERA_SHARE = 'supportCameraShare',
833
+ SUPPORT_FILE_SHARE = 'supportFileShare',
834
+ SUPPORT_ANNOTATION = 'supportAnnotation',
835
+ SUPPORT_BROADCAST_MESSAGE = 'supportBroadcastMessage',
836
+ SUPPORT_VIDEO = 'supportVideo',
837
+ SUPPORT_HQV = 'supportHQV',
838
+ SUPPORT_HDV = 'supportHDV',
839
+ SUPPORT_PARTICIPANT_LIST = 'supportParticipantList',
840
+ SUPPORT_VOIP = 'supportVoIP',
841
+ }
842
+
735
843
  export const DISPLAY_HINTS = {
736
844
  ADD_GUEST: 'ADD_GUEST',
737
845
  ROSTER_WAITING_TO_JOIN: 'ROSTER_WAITING_TO_JOIN',
@@ -755,21 +863,64 @@ export const DISPLAY_HINTS = {
755
863
  DISPLAY_NON_ENGLISH_ASR: 'DISPLAY_NON_ENGLISH_ASR',
756
864
  TRANSCRIPTION_CONTROL_START: 'TRANSCRIPTION_CONTROL_START',
757
865
  TRANSCRIPTION_CONTROL_STOP: 'TRANSCRIPTION_CONTROL_STOP',
866
+ SAVE_TRANSCRIPTS_ENABLED: 'SAVE_TRANSCRIPTS_ENABLED',
758
867
  WEBEX_ASSISTANT_STATUS_ACTIVE: 'WEBEX_ASSISTANT_STATUS_ACTIVE',
759
868
  WAITING_FOR_OTHERS: 'WAITING_FOR_OTHERS',
760
869
  ENABLE_REACTIONS: 'ENABLE_REACTIONS',
761
870
  DISABLE_REACTIONS: 'DISABLE_REACTIONS',
762
871
  REACTIONS_ACTIVE: 'REACTIONS_ACTIVE',
763
872
  REACTIONS_INACTIVE: 'REACTIONS_INACTIVE',
873
+ SHARE_CONTROL: 'SHARE_CONTROL',
764
874
  ENABLE_MUTE_ON_ENTRY: 'ENABLE_MUTE_ON_ENTRY',
875
+ ENABLE_SHOW_DISPLAY_NAME: 'ENABLE_SHOW_DISPLAY_NAME',
876
+ DISABLE_SHOW_DISPLAY_NAME: 'DISABLE_SHOW_DISPLAY_NAME',
765
877
  DISABLE_MUTE_ON_ENTRY: 'DISABLE_MUTE_ON_ENTRY',
766
878
  ENABLE_HARD_MUTE: 'ENABLE_HARD_MUTE',
767
879
  DISABLE_HARD_MUTE: 'DISABLE_HARD_MUTE',
880
+ MUTE_ALL: 'MUTE_ALL',
881
+ UNMUTE_ALL: 'UNMUTE_ALL',
882
+ PRESENTER_CONTROL: 'PRESENTER_CONTROL',
883
+ CAN_RENAME_SELF_AND_OBSERVED: 'CAN_RENAME_SELF_AND_OBSERVED',
884
+ CAN_RENAME_OTHERS: 'CAN_RENAME_OTHERS',
885
+
886
+ // breakout session
887
+ BREAKOUT_MANAGEMENT: 'BREAKOUT_MANAGEMENT',
888
+ BROADCAST_MESSAGE_TO_BREAKOUT: 'BROADCAST_MESSAGE_TO_BREAKOUT',
889
+ UCF_SUPPRESS_BREAKOUTS_SUPPORT: 'UCF_SUPPRESS_BREAKOUTS_SUPPORT',
890
+ DISABLE_ASK_FOR_HELP: 'DISABLE_ASK_FOR_HELP',
891
+ DISABLE_BREAKOUT_PREASSIGNMENTS: 'DISABLE_BREAKOUT_PREASSIGNMENTS',
892
+ DISABLE_LOBBY_TO_BREAKOUT: 'DISABLE_LOBBY_TO_BREAKOUT',
893
+
894
+ // participants list
895
+ DISABLE_VIEW_THE_PARTICIPANT_LIST: 'DISABLE_VIEW_THE_PARTICIPANT_LIST',
896
+ ENABLE_VIEW_THE_PARTICIPANT_LIST: 'ENABLE_VIEW_THE_PARTICIPANT_LIST',
897
+
898
+ // raise hand
899
+ DISABLE_RAISE_HAND: 'DISABLE_RAISE_HAND',
900
+ ENABLE_RAISE_HAND: 'ENABLE_RAISE_HAND',
901
+
902
+ // video
903
+ DISABLE_VIDEO: 'DISABLE_VIDEO',
904
+ ENABLE_VIDEO: 'ENABLE_VIDEO',
905
+
906
+ // Sharing
907
+ SHARE_FILE: 'SHARE_FILE',
908
+ SHARE_APPLICATION: 'SHARE_APPLICATION',
909
+ SHARE_CAMERA: 'SHARE_CAMERA',
910
+ SHARE_DESKTOP: 'SHARE_DESKTOP',
911
+ SHARE_CONTENT: 'SHARE_CONTENT',
912
+ SHARE_WHITEBOARD: 'SHARE_WHITEBOARD',
913
+
914
+ // Voip (audio/video)
915
+ VOIP_IS_ENABLED: 'VOIP_IS_ENABLED',
768
916
  };
769
917
 
918
+ export const INTERSTITIAL_DISPLAY_HINTS = [DISPLAY_HINTS.VOIP_IS_ENABLED];
919
+
770
920
  export const SELF_ROLES = {
771
921
  COHOST: 'COHOST',
772
922
  MODERATOR: 'MODERATOR',
923
+ ATTENDEE: 'ATTENDEE',
773
924
  };
774
925
 
775
926
  export const MEETING_STATE = {
@@ -854,7 +1005,8 @@ export const RESOURCE = {
854
1005
  };
855
1006
 
856
1007
  export const REACHABILITY = {
857
- localStorage: 'reachability.result',
1008
+ localStorageResult: 'reachability.result',
1009
+ localStorageJoinCookie: 'reachability.joinCookie',
858
1010
  namespace: 'Reachability',
859
1011
  };
860
1012
 
@@ -1035,16 +1187,6 @@ export const AVAILABLE_RESOLUTIONS = {
1035
1187
  },
1036
1188
  };
1037
1189
 
1038
- export const VIDEO_RESOLUTIONS = {
1039
- [QUALITY_LEVELS.LOW]: AVAILABLE_RESOLUTIONS['480p'],
1040
- [QUALITY_LEVELS.MEDIUM]: AVAILABLE_RESOLUTIONS['720p'],
1041
- [QUALITY_LEVELS.HIGH]: AVAILABLE_RESOLUTIONS['1080p'],
1042
- [QUALITY_LEVELS['360p']]: AVAILABLE_RESOLUTIONS['360p'],
1043
- [QUALITY_LEVELS['480p']]: AVAILABLE_RESOLUTIONS['480p'],
1044
- [QUALITY_LEVELS['720p']]: AVAILABLE_RESOLUTIONS['720p'],
1045
- [QUALITY_LEVELS['1080p']]: AVAILABLE_RESOLUTIONS['1080p'],
1046
- };
1047
-
1048
1190
  /*
1049
1191
  * mqa Interval for sending stats metrics
1050
1192
  */
@@ -1057,8 +1199,6 @@ export const MEDIA_DEVICES = {
1057
1199
  CAMERA: 'camera',
1058
1200
  };
1059
1201
 
1060
- export const METRICS_JOIN_TIMES_MAX_DURATION = 1200000;
1061
-
1062
1202
  export const PSTN_STATUS = {
1063
1203
  JOINED: 'JOINED', // we have provisioned a pstn device, which can be used to connect
1064
1204
  CONNECTED: 'CONNECTED', // user is connected to audio with pstn device
@@ -1079,6 +1219,7 @@ export const MEETING_INFO_FAILURE_REASON = {
1079
1219
  NONE: 'NONE', // meeting info was retrieved succesfully
1080
1220
  WRONG_PASSWORD: 'WRONG_PASSWORD', // meeting requires password and no password or wrong one was provided
1081
1221
  WRONG_CAPTCHA: 'WRONG_CAPTCHA', // wbxappapi requires a captcha code or a wrong captcha code was provided
1222
+ POLICY: 'POLICY', // meeting info request violates some meeting policy
1082
1223
  OTHER: 'OTHER', // any other error (network, etc)
1083
1224
  };
1084
1225
 
@@ -1093,3 +1234,22 @@ export const EMBEDDED_APP_TYPES = {
1093
1234
  SLIDO: 'SLIDO',
1094
1235
  OTHER: 'OTHER',
1095
1236
  };
1237
+
1238
+ export const DEFAULT_MEETING_INFO_REQUEST_BODY = {
1239
+ supportHostKey: true,
1240
+ supportCountryList: true,
1241
+ };
1242
+
1243
+ /** the values for IP_VERSION are fixed and defined in Orpheus API */
1244
+ export const IP_VERSION = {
1245
+ unknown: 0,
1246
+ only_ipv4: 4, // we know we have ipv4, we don't know or we don't have ipv6
1247
+ only_ipv6: 6, // we know we have ipv6, we don't know or we don't have ipv4
1248
+ ipv4_and_ipv6: 1,
1249
+ } as const;
1250
+
1251
+ export type IP_VERSION = (typeof IP_VERSION)[keyof typeof IP_VERSION];
1252
+
1253
+ // constant for if the permissionToken is about to expire in the next 30 seconds, refresh it
1254
+ export const MEETING_PERMISSION_TOKEN_REFRESH_THRESHOLD_IN_SEC = 30;
1255
+ export const MEETING_PERMISSION_TOKEN_REFRESH_REASON = 'ttl-join';
@@ -1,6 +1,18 @@
1
1
  enum Setting {
2
2
  disallowUnmute = 'DisallowUnmute',
3
3
  muteOnEntry = 'MuteOnEntry',
4
+ muted = 'Muted',
4
5
  }
5
6
 
7
+ enum Control {
8
+ audio = 'audio',
9
+ raiseHand = 'raiseHand',
10
+ reactions = 'reactions',
11
+ shareControl = 'shareControl',
12
+ video = 'video',
13
+ viewTheParticipantList = 'viewTheParticipantList',
14
+ }
15
+
16
+ export {Control, Setting};
17
+
6
18
  export default Setting;