@webex/plugin-meetings 3.0.0-beta.29 → 3.0.0-beta.290

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 (373) 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 +94 -15
  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 +709 -35
  15. package/dist/breakouts/index.js.map +1 -1
  16. package/dist/breakouts/utils.js +45 -1
  17. package/dist/breakouts/utils.js.map +1 -1
  18. package/dist/common/errors/no-meeting-info.js +51 -0
  19. package/dist/common/errors/no-meeting-info.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/logs/request.js +5 -1
  25. package/dist/common/logs/request.js.map +1 -1
  26. package/dist/common/queue.js +24 -9
  27. package/dist/common/queue.js.map +1 -1
  28. package/dist/config.js +5 -10
  29. package/dist/config.js.map +1 -1
  30. package/dist/constants.js +206 -29
  31. package/dist/constants.js.map +1 -1
  32. package/dist/controls-options-manager/enums.js +14 -2
  33. package/dist/controls-options-manager/enums.js.map +1 -1
  34. package/dist/controls-options-manager/index.js +109 -15
  35. package/dist/controls-options-manager/index.js.map +1 -1
  36. package/dist/controls-options-manager/types.js +7 -0
  37. package/dist/controls-options-manager/types.js.map +1 -0
  38. package/dist/controls-options-manager/util.js +309 -18
  39. package/dist/controls-options-manager/util.js.map +1 -1
  40. package/dist/index.js +112 -1
  41. package/dist/index.js.map +1 -1
  42. package/dist/interpretation/collection.js +23 -0
  43. package/dist/interpretation/collection.js.map +1 -0
  44. package/dist/interpretation/index.js +366 -0
  45. package/dist/interpretation/index.js.map +1 -0
  46. package/dist/interpretation/siLanguage.js +25 -0
  47. package/dist/interpretation/siLanguage.js.map +1 -0
  48. package/dist/locus-info/controlsUtils.js +91 -2
  49. package/dist/locus-info/controlsUtils.js.map +1 -1
  50. package/dist/locus-info/index.js +383 -62
  51. package/dist/locus-info/index.js.map +1 -1
  52. package/dist/locus-info/infoUtils.js +7 -1
  53. package/dist/locus-info/infoUtils.js.map +1 -1
  54. package/dist/locus-info/mediaSharesUtils.js +57 -1
  55. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  56. package/dist/locus-info/parser.js +249 -72
  57. package/dist/locus-info/parser.js.map +1 -1
  58. package/dist/locus-info/selfUtils.js +89 -14
  59. package/dist/locus-info/selfUtils.js.map +1 -1
  60. package/dist/media/index.js +61 -116
  61. package/dist/media/index.js.map +1 -1
  62. package/dist/media/properties.js +73 -124
  63. package/dist/media/properties.js.map +1 -1
  64. package/dist/meeting/in-meeting-actions.js +82 -2
  65. package/dist/meeting/in-meeting-actions.js.map +1 -1
  66. package/dist/meeting/index.js +3576 -2946
  67. package/dist/meeting/index.js.map +1 -1
  68. package/dist/meeting/locusMediaRequest.js +292 -0
  69. package/dist/meeting/locusMediaRequest.js.map +1 -0
  70. package/dist/meeting/muteState.js +230 -124
  71. package/dist/meeting/muteState.js.map +1 -1
  72. package/dist/meeting/request.js +256 -196
  73. package/dist/meeting/request.js.map +1 -1
  74. package/dist/meeting/util.js +601 -417
  75. package/dist/meeting/util.js.map +1 -1
  76. package/dist/meeting-info/index.js +73 -7
  77. package/dist/meeting-info/index.js.map +1 -1
  78. package/dist/meeting-info/meeting-info-v2.js +192 -51
  79. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  80. package/dist/meeting-info/util.js +1 -1
  81. package/dist/meeting-info/util.js.map +1 -1
  82. package/dist/meeting-info/utilv2.js +36 -36
  83. package/dist/meeting-info/utilv2.js.map +1 -1
  84. package/dist/meetings/collection.js +22 -0
  85. package/dist/meetings/collection.js.map +1 -1
  86. package/dist/meetings/index.js +402 -98
  87. package/dist/meetings/index.js.map +1 -1
  88. package/dist/meetings/meetings.types.js +7 -0
  89. package/dist/meetings/meetings.types.js.map +1 -0
  90. package/dist/meetings/request.js +2 -0
  91. package/dist/meetings/request.js.map +1 -1
  92. package/dist/meetings/util.js +71 -1
  93. package/dist/meetings/util.js.map +1 -1
  94. package/dist/member/index.js +58 -0
  95. package/dist/member/index.js.map +1 -1
  96. package/dist/member/types.js +25 -0
  97. package/dist/member/types.js.map +1 -0
  98. package/dist/member/util.js +132 -25
  99. package/dist/member/util.js.map +1 -1
  100. package/dist/members/collection.js +10 -0
  101. package/dist/members/collection.js.map +1 -1
  102. package/dist/members/index.js +86 -6
  103. package/dist/members/index.js.map +1 -1
  104. package/dist/members/request.js +106 -38
  105. package/dist/members/request.js.map +1 -1
  106. package/dist/members/types.js +15 -0
  107. package/dist/members/types.js.map +1 -0
  108. package/dist/members/util.js +326 -232
  109. package/dist/members/util.js.map +1 -1
  110. package/dist/metrics/constants.js +12 -5
  111. package/dist/metrics/constants.js.map +1 -1
  112. package/dist/metrics/index.js +1 -468
  113. package/dist/metrics/index.js.map +1 -1
  114. package/dist/multistream/mediaRequestManager.js +238 -49
  115. package/dist/multistream/mediaRequestManager.js.map +1 -1
  116. package/dist/multistream/receiveSlot.js +40 -16
  117. package/dist/multistream/receiveSlot.js.map +1 -1
  118. package/dist/multistream/receiveSlotManager.js +39 -36
  119. package/dist/multistream/receiveSlotManager.js.map +1 -1
  120. package/dist/multistream/remoteMedia.js +44 -18
  121. package/dist/multistream/remoteMedia.js.map +1 -1
  122. package/dist/multistream/remoteMediaGroup.js +60 -3
  123. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  124. package/dist/multistream/remoteMediaManager.js +209 -59
  125. package/dist/multistream/remoteMediaManager.js.map +1 -1
  126. package/dist/multistream/sendSlotManager.js +233 -0
  127. package/dist/multistream/sendSlotManager.js.map +1 -0
  128. package/dist/reachability/index.js +225 -59
  129. package/dist/reachability/index.js.map +1 -1
  130. package/dist/reachability/request.js +17 -8
  131. package/dist/reachability/request.js.map +1 -1
  132. package/dist/reconnection-manager/index.js +199 -154
  133. package/dist/reconnection-manager/index.js.map +1 -1
  134. package/dist/recording-controller/index.js +21 -2
  135. package/dist/recording-controller/index.js.map +1 -1
  136. package/dist/recording-controller/util.js +9 -8
  137. package/dist/recording-controller/util.js.map +1 -1
  138. package/dist/roap/index.js +23 -29
  139. package/dist/roap/index.js.map +1 -1
  140. package/dist/roap/request.js +112 -97
  141. package/dist/roap/request.js.map +1 -1
  142. package/dist/roap/turnDiscovery.js +96 -36
  143. package/dist/roap/turnDiscovery.js.map +1 -1
  144. package/dist/rtcMetrics/constants.js +12 -0
  145. package/dist/rtcMetrics/constants.js.map +1 -0
  146. package/dist/rtcMetrics/index.js +117 -0
  147. package/dist/rtcMetrics/index.js.map +1 -0
  148. package/dist/statsAnalyzer/index.js +84 -73
  149. package/dist/statsAnalyzer/index.js.map +1 -1
  150. package/dist/statsAnalyzer/mqaUtil.js +11 -10
  151. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  152. package/dist/types/annotation/annotation.types.d.ts +42 -0
  153. package/dist/types/annotation/constants.d.ts +31 -0
  154. package/dist/types/annotation/index.d.ts +117 -0
  155. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  156. package/dist/types/breakouts/events.d.ts +8 -0
  157. package/dist/types/breakouts/utils.d.ts +14 -0
  158. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  159. package/dist/types/common/errors/webex-errors.d.ts +13 -1
  160. package/dist/types/common/logs/request.d.ts +2 -0
  161. package/dist/types/common/queue.d.ts +9 -7
  162. package/dist/types/config.d.ts +1 -6
  163. package/dist/types/constants.d.ts +162 -21
  164. package/dist/types/controls-options-manager/enums.d.ts +11 -1
  165. package/dist/types/controls-options-manager/index.d.ts +17 -1
  166. package/dist/types/controls-options-manager/types.d.ts +43 -0
  167. package/dist/types/controls-options-manager/util.d.ts +1 -7
  168. package/dist/types/index.d.ts +6 -4
  169. package/dist/types/interpretation/collection.d.ts +5 -0
  170. package/dist/types/interpretation/index.d.ts +5 -0
  171. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  172. package/dist/types/locus-info/index.d.ts +57 -4
  173. package/dist/types/locus-info/parser.d.ts +67 -6
  174. package/dist/types/media/index.d.ts +2 -0
  175. package/dist/types/media/properties.d.ts +34 -48
  176. package/dist/types/meeting/in-meeting-actions.d.ts +82 -2
  177. package/dist/types/meeting/index.d.ts +413 -508
  178. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  179. package/dist/types/meeting/muteState.d.ts +99 -23
  180. package/dist/types/meeting/request.d.ts +72 -43
  181. package/dist/types/meeting/util.d.ts +101 -1
  182. package/dist/types/meeting-info/index.d.ts +13 -1
  183. package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
  184. package/dist/types/meetings/collection.d.ts +8 -0
  185. package/dist/types/meetings/index.d.ts +90 -12
  186. package/dist/types/meetings/meetings.types.d.ts +4 -0
  187. package/dist/types/member/index.d.ts +14 -0
  188. package/dist/types/member/types.d.ts +32 -0
  189. package/dist/types/members/collection.d.ts +5 -0
  190. package/dist/types/members/index.d.ts +35 -2
  191. package/dist/types/members/request.d.ts +73 -9
  192. package/dist/types/members/types.d.ts +25 -0
  193. package/dist/types/members/util.d.ts +214 -1
  194. package/dist/types/metrics/constants.d.ts +11 -4
  195. package/dist/types/metrics/index.d.ts +4 -119
  196. package/dist/types/multistream/mediaRequestManager.d.ts +73 -5
  197. package/dist/types/multistream/receiveSlot.d.ts +13 -11
  198. package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
  199. package/dist/types/multistream/remoteMedia.d.ts +8 -29
  200. package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
  201. package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
  202. package/dist/types/multistream/sendSlotManager.d.ts +61 -0
  203. package/dist/types/reachability/index.d.ts +61 -7
  204. package/dist/types/reachability/request.d.ts +7 -3
  205. package/dist/types/reconnection-manager/index.d.ts +9 -0
  206. package/dist/types/recording-controller/index.d.ts +15 -1
  207. package/dist/types/recording-controller/util.d.ts +5 -4
  208. package/dist/types/roap/request.d.ts +15 -11
  209. package/dist/types/roap/turnDiscovery.d.ts +18 -1
  210. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  211. package/dist/types/rtcMetrics/index.d.ts +47 -0
  212. package/dist/types/statsAnalyzer/index.d.ts +7 -1
  213. package/dist/types/webinar/collection.d.ts +16 -0
  214. package/dist/types/webinar/index.d.ts +5 -0
  215. package/dist/webinar/collection.js +44 -0
  216. package/dist/webinar/collection.js.map +1 -0
  217. package/dist/webinar/index.js +69 -0
  218. package/dist/webinar/index.js.map +1 -0
  219. package/package.json +23 -20
  220. package/src/annotation/annotation.types.ts +50 -0
  221. package/src/annotation/constants.ts +36 -0
  222. package/src/annotation/index.ts +328 -0
  223. package/src/breakouts/README.md +42 -12
  224. package/src/breakouts/breakout.ts +67 -9
  225. package/src/breakouts/edit-lock-error.ts +25 -0
  226. package/src/breakouts/events.ts +56 -0
  227. package/src/breakouts/index.ts +592 -20
  228. package/src/breakouts/utils.ts +42 -0
  229. package/src/common/errors/no-meeting-info.ts +24 -0
  230. package/src/common/errors/webex-errors.ts +27 -2
  231. package/src/common/logs/logger-proxy.ts +1 -1
  232. package/src/common/logs/request.ts +5 -1
  233. package/src/common/queue.ts +22 -8
  234. package/src/config.ts +4 -9
  235. package/src/constants.ts +185 -18
  236. package/src/controls-options-manager/enums.ts +12 -0
  237. package/src/controls-options-manager/index.ts +116 -21
  238. package/src/controls-options-manager/types.ts +59 -0
  239. package/src/controls-options-manager/util.ts +294 -14
  240. package/src/index.ts +40 -0
  241. package/src/interpretation/README.md +60 -0
  242. package/src/interpretation/collection.ts +19 -0
  243. package/src/interpretation/index.ts +332 -0
  244. package/src/interpretation/siLanguage.ts +18 -0
  245. package/src/locus-info/controlsUtils.ts +108 -0
  246. package/src/locus-info/index.ts +413 -59
  247. package/src/locus-info/infoUtils.ts +10 -2
  248. package/src/locus-info/mediaSharesUtils.ts +64 -0
  249. package/src/locus-info/parser.ts +258 -47
  250. package/src/locus-info/selfUtils.ts +81 -5
  251. package/src/media/index.ts +102 -122
  252. package/src/media/properties.ts +87 -110
  253. package/src/meeting/in-meeting-actions.ts +163 -3
  254. package/src/meeting/index.ts +2858 -2462
  255. package/src/meeting/locusMediaRequest.ts +313 -0
  256. package/src/meeting/muteState.ts +229 -131
  257. package/src/meeting/request.ts +172 -121
  258. package/src/meeting/util.ts +588 -394
  259. package/src/meeting-info/index.ts +81 -8
  260. package/src/meeting-info/meeting-info-v2.ts +170 -14
  261. package/src/meeting-info/util.ts +1 -1
  262. package/src/meeting-info/utilv2.ts +23 -23
  263. package/src/meetings/collection.ts +20 -0
  264. package/src/meetings/index.ts +434 -108
  265. package/src/meetings/meetings.types.ts +12 -0
  266. package/src/meetings/request.ts +2 -0
  267. package/src/meetings/util.ts +79 -4
  268. package/src/member/index.ts +58 -0
  269. package/src/member/types.ts +38 -0
  270. package/src/member/util.ts +141 -25
  271. package/src/members/collection.ts +8 -0
  272. package/src/members/index.ts +106 -7
  273. package/src/members/request.ts +97 -17
  274. package/src/members/types.ts +29 -0
  275. package/src/members/util.ts +333 -240
  276. package/src/metrics/constants.ts +11 -4
  277. package/src/metrics/index.ts +1 -490
  278. package/src/multistream/mediaRequestManager.ts +289 -79
  279. package/src/multistream/receiveSlot.ts +47 -17
  280. package/src/multistream/receiveSlotManager.ts +34 -24
  281. package/src/multistream/remoteMedia.ts +27 -2
  282. package/src/multistream/remoteMediaGroup.ts +59 -0
  283. package/src/multistream/remoteMediaManager.ts +148 -30
  284. package/src/multistream/sendSlotManager.ts +170 -0
  285. package/src/reachability/index.ts +228 -37
  286. package/src/reachability/request.ts +17 -8
  287. package/src/reconnection-manager/index.ts +81 -54
  288. package/src/recording-controller/index.ts +20 -3
  289. package/src/recording-controller/util.ts +26 -9
  290. package/src/roap/index.ts +23 -30
  291. package/src/roap/request.ts +100 -104
  292. package/src/roap/turnDiscovery.ts +51 -25
  293. package/src/rtcMetrics/constants.ts +3 -0
  294. package/src/rtcMetrics/index.ts +100 -0
  295. package/src/statsAnalyzer/index.ts +103 -87
  296. package/src/statsAnalyzer/mqaUtil.ts +13 -14
  297. package/src/webinar/collection.ts +31 -0
  298. package/src/webinar/index.ts +62 -0
  299. package/test/integration/spec/converged-space-meetings.js +60 -3
  300. package/test/integration/spec/journey.js +320 -261
  301. package/test/integration/spec/space-meeting.js +76 -3
  302. package/test/unit/spec/annotation/index.ts +418 -0
  303. package/test/unit/spec/breakouts/breakout.ts +118 -28
  304. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  305. package/test/unit/spec/breakouts/events.ts +89 -0
  306. package/test/unit/spec/breakouts/index.ts +1395 -69
  307. package/test/unit/spec/breakouts/utils.js +52 -1
  308. package/test/unit/spec/common/queue.js +31 -2
  309. package/test/unit/spec/controls-options-manager/index.js +163 -0
  310. package/test/unit/spec/controls-options-manager/util.js +576 -60
  311. package/test/unit/spec/fixture/locus.js +1 -0
  312. package/test/unit/spec/interpretation/collection.ts +15 -0
  313. package/test/unit/spec/interpretation/index.ts +589 -0
  314. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  315. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  316. package/test/unit/spec/locus-info/index.js +1304 -33
  317. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  318. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  319. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  320. package/test/unit/spec/locus-info/parser.js +116 -35
  321. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  322. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  323. package/test/unit/spec/media/index.ts +104 -37
  324. package/test/unit/spec/media/properties.ts +2 -2
  325. package/test/unit/spec/meeting/in-meeting-actions.ts +81 -3
  326. package/test/unit/spec/meeting/index.js +4721 -1930
  327. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  328. package/test/unit/spec/meeting/muteState.js +408 -208
  329. package/test/unit/spec/meeting/request.js +440 -45
  330. package/test/unit/spec/meeting/utils.js +679 -64
  331. package/test/unit/spec/meeting-info/index.js +295 -0
  332. package/test/unit/spec/meeting-info/meetinginfov2.js +521 -5
  333. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  334. package/test/unit/spec/meetings/collection.js +14 -0
  335. package/test/unit/spec/meetings/index.js +1011 -177
  336. package/test/unit/spec/meetings/utils.js +206 -2
  337. package/test/unit/spec/member/index.js +61 -6
  338. package/test/unit/spec/member/util.js +510 -34
  339. package/test/unit/spec/members/index.js +319 -1
  340. package/test/unit/spec/members/request.js +206 -27
  341. package/test/unit/spec/members/utils.js +210 -0
  342. package/test/unit/spec/metrics/index.js +1 -50
  343. package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
  344. package/test/unit/spec/multistream/receiveSlot.ts +43 -20
  345. package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
  346. package/test/unit/spec/multistream/remoteMedia.ts +30 -0
  347. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  348. package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
  349. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  350. package/test/unit/spec/reachability/index.ts +549 -9
  351. package/test/unit/spec/reachability/request.js +68 -0
  352. package/test/unit/spec/reconnection-manager/index.js +84 -9
  353. package/test/unit/spec/recording-controller/index.js +294 -218
  354. package/test/unit/spec/recording-controller/util.js +223 -96
  355. package/test/unit/spec/roap/index.ts +31 -51
  356. package/test/unit/spec/roap/request.ts +203 -85
  357. package/test/unit/spec/roap/turnDiscovery.ts +48 -13
  358. package/test/unit/spec/rtcMetrics/index.ts +73 -0
  359. package/test/unit/spec/stats-analyzer/index.js +112 -2
  360. package/test/unit/spec/webinar/collection.ts +13 -0
  361. package/test/unit/spec/webinar/index.ts +60 -0
  362. package/test/utils/integrationTestUtils.js +46 -0
  363. package/test/utils/testUtils.js +0 -52
  364. package/dist/meeting/effectsState.js +0 -262
  365. package/dist/meeting/effectsState.js.map +0 -1
  366. package/dist/metrics/config.js +0 -299
  367. package/dist/metrics/config.js.map +0 -1
  368. package/dist/types/meeting/effectsState.d.ts +0 -42
  369. package/dist/types/metrics/config.d.ts +0 -178
  370. package/src/index.js +0 -16
  371. package/src/meeting/effectsState.ts +0 -211
  372. package/src/metrics/config.ts +0 -495
  373. package/test/unit/spec/meeting/effectsState.js +0 -285
@@ -1,4 +1,8 @@
1
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
+
2
6
  export const getBroadcastRoles = (options): string[] => {
3
7
  const recipientRoles = [];
4
8
  if (!options || (!options.cohosts && !options.presenters)) {
@@ -13,3 +17,41 @@ export const getBroadcastRoles = (options): string[] => {
13
17
 
14
18
  return recipientRoles;
15
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
+ };
@@ -0,0 +1,24 @@
1
+ import {ERROR_DICTIONARY} from '../../constants';
2
+
3
+ /**
4
+ * Extended Error object for general parameter errors
5
+ */
6
+ export default class NoMeetingInfoError extends Error {
7
+ code: any;
8
+ error: any;
9
+ sdkMessage: any;
10
+
11
+ /**
12
+ * @constructor
13
+ * @param {String} [message]
14
+ * @param {Object} [error]
15
+ */
16
+ constructor(message: string = ERROR_DICTIONARY.NO_MEETING_INFO.MESSAGE, error: any = null) {
17
+ super(message);
18
+ this.name = ERROR_DICTIONARY.NO_MEETING_INFO.NAME;
19
+ this.sdkMessage = ERROR_DICTIONARY.NO_MEETING_INFO.MESSAGE;
20
+ this.error = error;
21
+ this.stack = error ? error.stack : new Error().stack;
22
+ this.code = ERROR_DICTIONARY.NO_MEETING_INFO.CODE;
23
+ }
24
+ }
@@ -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 = {
@@ -32,6 +32,8 @@ export default class LogsRequest {
32
32
  */
33
33
  async uploadLogs(
34
34
  options: {
35
+ autoupload?: boolean;
36
+ locussessionid?: string;
35
37
  feedbackId?: string;
36
38
  locusId?: string;
37
39
  correlationId?: string;
@@ -40,7 +42,7 @@ export default class LogsRequest {
40
42
  } = {}
41
43
  ) {
42
44
  const id = options.feedbackId || uuid.v4();
43
- const {locusId, correlationId, meetingId, callStart} = options;
45
+ const {locusId, correlationId, meetingId, callStart, locussessionid, autoupload} = options;
44
46
 
45
47
  LoggerProxy.logger.info(
46
48
  `Logs:request#uploadLogs --> uploading user logs for feedbackId: ${id}`
@@ -48,6 +50,8 @@ export default class LogsRequest {
48
50
 
49
51
  try {
50
52
  await this.webex.internal.support.submitLogs({
53
+ autoupload,
54
+ locussessionid,
51
55
  feedbackId: id,
52
56
  locusId,
53
57
  correlationId,
@@ -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,8 @@ 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 ICE_AND_DTLS_CONNECTION_TIMEOUT = 10000;
194
+ export const ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT = 10000;
193
195
 
194
196
  // ******************** REGEX **********************
195
197
  // Please alphabetize
@@ -280,6 +282,7 @@ export const EVENT_TRIGGERS = {
280
282
  MEETING_STOPPED_SHARING_LOCAL: 'meeting:stoppedSharingLocal',
281
283
  MEETING_STARTED_SHARING_REMOTE: 'meeting:startedSharingRemote',
282
284
  MEETING_STOPPED_SHARING_REMOTE: 'meeting:stoppedSharingRemote',
285
+ MEETING_UPDATE_ANNOTATION_INFO: 'meeting:updateAnnotationInfo',
283
286
  MEETING_STARTED_SHARING_WHITEBOARD: 'meeting:startedSharingWhiteboard',
284
287
  MEETING_STOPPED_SHARING_WHITEBOARD: 'meeting:stoppedSharingWhiteboard',
285
288
  MEETING_MEDIA_LOCAL_STARTED: 'meeting:media:local:start',
@@ -297,18 +300,29 @@ export const EVENT_TRIGGERS = {
297
300
  MEETING_RINGING_STOP: 'meeting:ringingStop',
298
301
  MEETING_SELF_LOBBY_WAITING: 'meeting:self:lobbyWaiting',
299
302
  MEETING_SELF_GUEST_ADMITTED: 'meeting:self:guestAdmitted',
303
+ MEETING_SELF_VIDEO_MUTED_BY_OTHERS: 'meeting:self:videoMutedByOthers',
304
+ MEETING_SELF_VIDEO_UNMUTED_BY_OTHERS: 'meeting:self:videoUnmutedByOthers',
300
305
  MEETING_SELF_MUTED_BY_OTHERS: 'meeting:self:mutedByOthers',
301
306
  MEETING_SELF_UNMUTED_BY_OTHERS: 'meeting:self:unmutedByOthers',
302
307
  MEETING_SELF_REQUESTED_TO_UNMUTE: 'meeting:self:requestedToUnmute',
303
308
  MEETING_SELF_PHONE_AUDIO_UPDATE: 'meeting:self:phoneAudioUpdate',
304
309
  MEETING_SELF_CANNOT_VIEW_PARTICIPANT_LIST: 'meeting:self:cannotViewParticipantList',
305
310
  MEETING_SELF_IS_SHARING_BLOCKED: 'meeting:self:isSharingBlocked',
311
+ MEETING_SELF_ROLES_CHANGED: 'meeting:self:rolesChanged',
306
312
  MEETING_CONTROLS_LAYOUT_UPDATE: 'meeting:layout:update',
307
313
  MEETING_ENTRY_EXIT_TONE_UPDATE: 'meeting:entryExitTone:update',
308
314
  MEETING_BREAKOUTS_UPDATE: 'meeting:breakouts:update',
309
315
  MEETING_BREAKOUTS_CLOSING: 'meeting:breakouts:closing',
310
316
  MEETING_BREAKOUTS_MESSAGE: 'meeting:breakouts:message',
317
+ MEETING_BREAKOUTS_ASK_RETURN_TO_MAIN: 'meeting:breakouts:askReturnToMain',
318
+ MEETING_BREAKOUTS_LEAVE: 'meeting:breakouts:leave',
319
+ MEETING_BREAKOUTS_ASK_FOR_HELP: 'meeting:breakouts:askForHelp',
320
+ MEETING_BREAKOUTS_PRE_ASSIGNMENTS_UPDATE: 'meeting:breakouts:preAssignmentsUpdate',
321
+ MEETING_INTERPRETATION_UPDATE: 'meeting:interpretation:update',
322
+ MEETING_INTERPRETATION_SUPPORT_LANGUAGES_UPDATE: 'meeting:interpretation:supportLanguagesUpdate',
323
+ MEETING_INTERPRETATION_HANDOFF_REQUESTS_ARRIVED: 'meeting:interpretation:handoffRequestsArrived',
311
324
  MEMBERS_UPDATE: 'members:update',
325
+ MEMBERS_CLEAR: 'members:clear',
312
326
  MEMBERS_CONTENT_UPDATE: 'members:content:update',
313
327
  MEMBERS_HOST_UPDATE: 'members:host:update',
314
328
  MEMBERS_SELF_UPDATE: 'members:self:update',
@@ -337,17 +351,28 @@ export const EVENT_TRIGGERS = {
337
351
  REMOTE_MEDIA_AUDIO_CREATED: 'media:remoteAudio:created',
338
352
  REMOTE_MEDIA_SCREEN_SHARE_AUDIO_CREATED: 'media:remoteScreenShareAudio:created',
339
353
  REMOTE_MEDIA_VIDEO_LAYOUT_CHANGED: 'media:remoteVideo:layoutChanged',
354
+ // Controls
355
+ MEETING_CONTROLS_MUTE_ON_ENTRY_UPDATED: 'meeting:controls:mute-on-entry:updated',
356
+ MEETING_CONTROLS_SHARE_CONTROL_UPDATED: 'meeting:controls:share-control:updated',
357
+ MEETING_CONTROLS_DISALLOW_UNMUTE_UPDATED: 'meeting:controls:disallow-unmute:updated',
358
+ MEETING_CONTROLS_REACTIONS_UPDATED: 'meeting:controls:reactions:updated',
359
+ MEETING_CONTROLS_VIEW_THE_PARTICIPANTS_LIST_UPDATED:
360
+ 'meeting:controls:view-the-participants-list:updated',
361
+ MEETING_CONTROLS_RAISE_HAND_UPDATED: 'meeting:controls:raise-hand:updated',
362
+ MEETING_CONTROLS_VIDEO_UPDATED: 'meeting:controls:video:updated',
363
+ // Locus URL changed
364
+ MEETING_LOCUS_URL_UPDATE: 'meeting:locus:locusUrl:update',
365
+ MEETING_STREAM_PUBLISH_STATE_CHANGED: 'meeting:streamPublishStateChanged',
340
366
  };
341
367
 
342
368
  export const EVENT_TYPES = {
343
369
  SELF: 'self',
344
370
  OTHER: 'other',
345
- LOCAL: 'local',
346
371
  REMOTE: 'remote',
347
372
  REMOTE_AUDIO: 'remoteAudio',
348
373
  REMOTE_VIDEO: 'remoteVideo',
349
374
  REMOTE_SHARE: 'remoteShare',
350
- LOCAL_SHARE: 'localShare',
375
+ REMOTE_SHARE_AUDIO: 'remoteShareAudio',
351
376
  ERROR: 'error',
352
377
  };
353
378
 
@@ -360,9 +385,12 @@ export const MEETING_REMOVED_REASON = {
360
385
  FULLSTATE_REMOVED: 'FULLSTATE_REMOVED', // meeting got dropped ? not sure
361
386
  MEETING_INACTIVE_TERMINATING: 'MEETING_INACTIVE_TERMINATING', // Meeting got ended or everyone left the meeting
362
387
  CLIENT_LEAVE_REQUEST: 'CLIENT_LEAVE_REQUEST', // You triggered leave meeting
388
+ CLIENT_LEAVE_REQUEST_TAB_CLOSED: 'CLIENT_LEAVE_REQUEST_TAB_CLOSED', // You triggered leave meeting, such as closing the browser tab directly
363
389
  USER_ENDED_SHARE_STREAMS: 'USER_ENDED_SHARE_STREAMS', // user triggered stop share
364
390
  NO_MEETINGS_TO_SYNC: 'NO_MEETINGS_TO_SYNC', // After the syncMeeting no meeting exists
365
391
  MEETING_CONNECTION_FAILED: 'MEETING_CONNECTION_FAILED', // meeting failed to connect due to ice failures or firewall issue
392
+ LOCUS_DTO_SYNC_FAILED: 'LOCUS_DTO_SYNC_FAILED', // failed to get any Locus DTO for that meeting
393
+ MISSING_MEETING_INFO: 'MISSING_MEETING_INFO', // meeting info failed to be fetched
366
394
  };
367
395
 
368
396
  // One one one calls ends for the following reasons
@@ -377,6 +405,8 @@ export const CALL_REMOVED_REASON = {
377
405
  export const SHARE_STOPPED_REASON = {
378
406
  SELF_STOPPED: 'SELF_STOPPED',
379
407
  MEETING_REJOIN: 'MEETING_REJOIN',
408
+ MEDIA_RECONNECTION: 'MEDIA_RECONNECTION',
409
+ TRACK_ENDED: 'TRACK_ENDED',
380
410
  };
381
411
 
382
412
  export const EVENTS = {
@@ -452,6 +482,16 @@ export const ERROR_DICTIONARY = {
452
482
  MESSAGE: 'Captcha is required.',
453
483
  CODE: 8,
454
484
  },
485
+ BREAKOUT_EDIT: {
486
+ NAME: 'BreakoutEditLockedError',
487
+ MESSAGE: 'Edit lock token mismatch',
488
+ CODE: 9,
489
+ },
490
+ NO_MEETING_INFO: {
491
+ NAME: 'NoMeetingInfo',
492
+ MESSAGE: 'No meeting info found for the meeting',
493
+ CODE: 10,
494
+ },
455
495
  };
456
496
 
457
497
  export const FLOOR_ACTION = {
@@ -473,6 +513,7 @@ export const HTTP_VERBS = {
473
513
  POST: 'POST',
474
514
  GET: 'GET',
475
515
  PATCH: 'PATCH',
516
+ DELETE: 'DELETE',
476
517
  };
477
518
 
478
519
  // https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/iceGatheringState
@@ -518,17 +559,28 @@ export const LOCUS = {
518
559
  SYNCDEBUG: 'sync_debug',
519
560
  };
520
561
 
562
+ export const ANNOTATION = {
563
+ ANNOTATION_ON_SHARE_SUPPORTED: 'ANNOTATION_ON_SHARE_SUPPORTED',
564
+ };
521
565
  export const BREAKOUTS = {
522
566
  STATUS: {
523
567
  CLOSING: 'CLOSING',
568
+ CLOSED: 'CLOSED',
569
+ PENDING: 'PENDING',
570
+ OPEN: 'OPEN',
524
571
  },
525
572
  EVENTS: {
526
573
  BREAKOUTS_CLOSING: 'BREAKOUTS_CLOSING',
527
574
  MESSAGE: 'MESSAGE',
528
575
  MEMBERS_UPDATE: 'MEMBERS_UPDATE',
576
+ ASK_RETURN_TO_MAIN: 'ASK_RETURN_TO_MAIN',
577
+ LEAVE_BREAKOUT: 'LEAVE_BREAKOUT',
578
+ ASK_FOR_HELP: 'ASK_FOR_HELP',
579
+ PRE_ASSIGNMENTS_UPDATE: 'PRE_ASSIGNMENTS_UPDATE',
529
580
  },
530
581
  SESSION_TYPES: {
531
582
  MAIN: 'MAIN',
583
+ BREAKOUT: 'BREAKOUT',
532
584
  },
533
585
  SESSION_STATES: {
534
586
  ACTIVE: 'active',
@@ -538,6 +590,35 @@ export const BREAKOUTS = {
538
590
  REQUESTED: 'requested',
539
591
  },
540
592
  BREAKOUTS_SUPPORTED: 'BREAKOUTS_SUPPORTED',
593
+ ACTION: {
594
+ START: 'START',
595
+ CLOSE: 'CLOSE',
596
+ DELETE: 'DELETE',
597
+ },
598
+ ERROR_CODE: {
599
+ EDIT_LOCK_TOKEN_MISMATCH: 201409024,
600
+ EDIT_NOT_AUTHORIZED: 201403007,
601
+ },
602
+ EDIT_LOCK_STATUS: {
603
+ LOCKED: 'LOCKED',
604
+ NOT_LOCKED: 'NOT_LOCKED',
605
+ UNKNOWN: 'UNKNOWN',
606
+ },
607
+ DEFAULT_TTL: 30,
608
+ };
609
+
610
+ export const INTERPRETATION = {
611
+ EVENTS: {
612
+ SUPPORT_LANGUAGES_UPDATE: 'SUPPORT_LANGUAGES_UPDATE',
613
+ HANDOFF_REQUESTS_ARRIVED: 'HANDOFF_REQUESTS_ARRIVED',
614
+ },
615
+ ACTION_TYPE: {
616
+ OFFERED: 'OFFERED',
617
+ ACCEPTED: 'ACCEPTED',
618
+ REQUESTED: 'REQUESTED',
619
+ DECLINED: 'DECLINED',
620
+ },
621
+ RESOURCE_TYPE: 'SiHandover',
541
622
  };
542
623
 
543
624
  export const LOCUSINFO = {
@@ -547,13 +628,24 @@ export const LOCUSINFO = {
547
628
  CONTROLS_MEETING_TRANSCRIBE_UPDATED: 'CONTROLS_MEETING_TRANSCRIBE_UPDATED',
548
629
  CONTROLS_MEETING_BREAKOUT_UPDATED: 'CONTROLS_MEETING_BREAKOUT_UPDATED',
549
630
  CONTROLS_MEETING_CONTAINER_UPDATED: 'CONTROLS_MEETING_CONTAINER_UPDATED',
631
+ CONTROLS_MEETING_INTERPRETATION_UPDATED: 'CONTROLS_MEETING_INTERPRETATION_UPDATED',
550
632
  CONTROLS_ENTRY_EXIT_TONE_UPDATED: 'CONTROLS_ENTRY_EXIT_TONE_UPDATED',
633
+ CONTROLS_JOIN_BREAKOUT_FROM_MAIN: 'CONTROLS_JOIN_BREAKOUT_FROM_MAIN',
634
+ CONTROLS_MUTE_ON_ENTRY_CHANGED: 'CONTROLS_MUTE_ON_ENTRY_CHANGED',
635
+ CONTROLS_SHARE_CONTROL_CHANGED: 'CONTROLS_SHARE_CONTROL_CHANGED',
636
+ CONTROLS_DISALLOW_UNMUTE_CHANGED: 'CONTROLS_DISALLOW_UNMUTE_CHANGED',
637
+ CONTROLS_REACTIONS_CHANGED: 'CONTROLS_REACTIONS_CHANGED',
638
+ CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED: 'CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED',
639
+ CONTROLS_RAISE_HAND_CHANGED: 'CONTROLS_RAISE_HAND_CHANGED',
640
+ CONTROLS_VIDEO_CHANGED: 'CONTROLS_VIDEO_CHANGED',
551
641
  SELF_UNADMITTED_GUEST: 'SELF_UNADMITTED_GUEST',
552
642
  SELF_ADMITTED_GUEST: 'SELF_ADMITTED_GUEST',
643
+ SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED: 'SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED',
553
644
  SELF_REMOTE_MUTE_STATUS_UPDATED: 'SELF_REMOTE_MUTE_STATUS_UPDATED',
554
645
  LOCAL_UNMUTE_REQUESTED: 'LOCAL_UNMUTE_REQUESTED',
555
646
  LOCAL_UNMUTE_REQUIRED: 'LOCAL_UNMUTE_REQUIRED',
556
647
  SELF_MODERATOR_CHANGED: 'SELF_MODERATOR_CHANGED',
648
+ SELF_ROLES_CHANGED: 'SELF_ROLES_CHANGED',
557
649
  MEETING_UPDATE: 'MEETING_UPDATE',
558
650
  MEDIA_STATUS_CHANGE: 'MEDIA_STATUS_CHANGE',
559
651
  FULL_STATE_TYPE_UPDATE: 'FULL_STATE_TYPE_UPDATE',
@@ -568,6 +660,7 @@ export const LOCUSINFO = {
568
660
  SELF_CANNOT_VIEW_PARTICIPANT_LIST_CHANGE: 'SELF_CANNOT_VIEW_PARTICIPANT_LIST_CHANGE',
569
661
  SELF_IS_SHARING_BLOCKED_CHANGE: 'SELF_IS_SHARING_BLOCKED_CHANGE',
570
662
  SELF_MEETING_BREAKOUTS_CHANGED: 'SELF_MEETING_BREAKOUTS_CHANGED',
663
+ SELF_MEETING_INTERPRETATION_CHANGED: 'SELF_MEETING_INTERPRETATION_CHANGED',
571
664
  MEDIA_INACTIVITY: 'MEDIA_INACTIVITY',
572
665
  LINKS_SERVICES: 'LINKS_SERVICES',
573
666
  },
@@ -732,6 +825,28 @@ export const MEETING_END_REASON = {
732
825
  MEDIA_RELEASED: 'MEDIA_RELEASED',
733
826
  };
734
827
 
828
+ export enum SELF_POLICY {
829
+ ENFORCE_VIRTUAL_BACKGROUND = 'enforceVirtualBackground',
830
+ SUPPORT_LOCAL_RECORD = 'supportLocalRecord',
831
+ SUPPORT_NETWORK_BASED_RECORD = 'supportNetworkBasedRecord',
832
+ SUPPORT_REALTIME_CLOSE_CAPTION = 'supportRealtimeCloseCaption',
833
+ SUPPORT_CHAT = 'supportChat',
834
+ SUPPORT_DESKTOP_SHARE_REMOTE = 'supportDesktopShareRemote',
835
+ SUPPORT_DESKTOP_SHARE = 'supportDesktopShare',
836
+ SUPPORT_WHITEBOARD = 'supportWhiteboard',
837
+ SUPPORT_FILE_TRANSFER = 'supportFileTransfer',
838
+ SUPPORT_APP_SHARE = 'supportAppShare',
839
+ SUPPORT_CAMERA_SHARE = 'supportCameraShare',
840
+ SUPPORT_FILE_SHARE = 'supportFileShare',
841
+ SUPPORT_ANNOTATION = 'supportAnnotation',
842
+ SUPPORT_BROADCAST_MESSAGE = 'supportBroadcastMessage',
843
+ SUPPORT_VIDEO = 'supportVideo',
844
+ SUPPORT_HQV = 'supportHQV',
845
+ SUPPORT_HDV = 'supportHDV',
846
+ SUPPORT_PARTICIPANT_LIST = 'supportParticipantList',
847
+ SUPPORT_VOIP = 'supportVoIP',
848
+ }
849
+
735
850
  export const DISPLAY_HINTS = {
736
851
  ADD_GUEST: 'ADD_GUEST',
737
852
  ROSTER_WAITING_TO_JOIN: 'ROSTER_WAITING_TO_JOIN',
@@ -755,21 +870,64 @@ export const DISPLAY_HINTS = {
755
870
  DISPLAY_NON_ENGLISH_ASR: 'DISPLAY_NON_ENGLISH_ASR',
756
871
  TRANSCRIPTION_CONTROL_START: 'TRANSCRIPTION_CONTROL_START',
757
872
  TRANSCRIPTION_CONTROL_STOP: 'TRANSCRIPTION_CONTROL_STOP',
873
+ SAVE_TRANSCRIPTS_ENABLED: 'SAVE_TRANSCRIPTS_ENABLED',
758
874
  WEBEX_ASSISTANT_STATUS_ACTIVE: 'WEBEX_ASSISTANT_STATUS_ACTIVE',
759
875
  WAITING_FOR_OTHERS: 'WAITING_FOR_OTHERS',
760
876
  ENABLE_REACTIONS: 'ENABLE_REACTIONS',
761
877
  DISABLE_REACTIONS: 'DISABLE_REACTIONS',
762
878
  REACTIONS_ACTIVE: 'REACTIONS_ACTIVE',
763
879
  REACTIONS_INACTIVE: 'REACTIONS_INACTIVE',
880
+ SHARE_CONTROL: 'SHARE_CONTROL',
764
881
  ENABLE_MUTE_ON_ENTRY: 'ENABLE_MUTE_ON_ENTRY',
882
+ ENABLE_SHOW_DISPLAY_NAME: 'ENABLE_SHOW_DISPLAY_NAME',
883
+ DISABLE_SHOW_DISPLAY_NAME: 'DISABLE_SHOW_DISPLAY_NAME',
765
884
  DISABLE_MUTE_ON_ENTRY: 'DISABLE_MUTE_ON_ENTRY',
766
885
  ENABLE_HARD_MUTE: 'ENABLE_HARD_MUTE',
767
886
  DISABLE_HARD_MUTE: 'DISABLE_HARD_MUTE',
887
+ MUTE_ALL: 'MUTE_ALL',
888
+ UNMUTE_ALL: 'UNMUTE_ALL',
889
+ PRESENTER_CONTROL: 'PRESENTER_CONTROL',
890
+ CAN_RENAME_SELF_AND_OBSERVED: 'CAN_RENAME_SELF_AND_OBSERVED',
891
+ CAN_RENAME_OTHERS: 'CAN_RENAME_OTHERS',
892
+
893
+ // breakout session
894
+ BREAKOUT_MANAGEMENT: 'BREAKOUT_MANAGEMENT',
895
+ BROADCAST_MESSAGE_TO_BREAKOUT: 'BROADCAST_MESSAGE_TO_BREAKOUT',
896
+ UCF_SUPPRESS_BREAKOUTS_SUPPORT: 'UCF_SUPPRESS_BREAKOUTS_SUPPORT',
897
+ DISABLE_ASK_FOR_HELP: 'DISABLE_ASK_FOR_HELP',
898
+ DISABLE_BREAKOUT_PREASSIGNMENTS: 'DISABLE_BREAKOUT_PREASSIGNMENTS',
899
+ DISABLE_LOBBY_TO_BREAKOUT: 'DISABLE_LOBBY_TO_BREAKOUT',
900
+
901
+ // participants list
902
+ DISABLE_VIEW_THE_PARTICIPANT_LIST: 'DISABLE_VIEW_THE_PARTICIPANT_LIST',
903
+ ENABLE_VIEW_THE_PARTICIPANT_LIST: 'ENABLE_VIEW_THE_PARTICIPANT_LIST',
904
+
905
+ // raise hand
906
+ DISABLE_RAISE_HAND: 'DISABLE_RAISE_HAND',
907
+ ENABLE_RAISE_HAND: 'ENABLE_RAISE_HAND',
908
+
909
+ // video
910
+ DISABLE_VIDEO: 'DISABLE_VIDEO',
911
+ ENABLE_VIDEO: 'ENABLE_VIDEO',
912
+
913
+ // Sharing
914
+ SHARE_FILE: 'SHARE_FILE',
915
+ SHARE_APPLICATION: 'SHARE_APPLICATION',
916
+ SHARE_CAMERA: 'SHARE_CAMERA',
917
+ SHARE_DESKTOP: 'SHARE_DESKTOP',
918
+ SHARE_CONTENT: 'SHARE_CONTENT',
919
+ SHARE_WHITEBOARD: 'SHARE_WHITEBOARD',
920
+
921
+ // Voip (audio/video)
922
+ VOIP_IS_ENABLED: 'VOIP_IS_ENABLED',
768
923
  };
769
924
 
925
+ export const INTERSTITIAL_DISPLAY_HINTS = [DISPLAY_HINTS.VOIP_IS_ENABLED];
926
+
770
927
  export const SELF_ROLES = {
771
928
  COHOST: 'COHOST',
772
929
  MODERATOR: 'MODERATOR',
930
+ ATTENDEE: 'ATTENDEE',
773
931
  };
774
932
 
775
933
  export const MEETING_STATE = {
@@ -854,7 +1012,8 @@ export const RESOURCE = {
854
1012
  };
855
1013
 
856
1014
  export const REACHABILITY = {
857
- localStorage: 'reachability.result',
1015
+ localStorageResult: 'reachability.result',
1016
+ localStorageJoinCookie: 'reachability.joinCookie',
858
1017
  namespace: 'Reachability',
859
1018
  };
860
1019
 
@@ -1035,16 +1194,6 @@ export const AVAILABLE_RESOLUTIONS = {
1035
1194
  },
1036
1195
  };
1037
1196
 
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
1197
  /*
1049
1198
  * mqa Interval for sending stats metrics
1050
1199
  */
@@ -1057,8 +1206,6 @@ export const MEDIA_DEVICES = {
1057
1206
  CAMERA: 'camera',
1058
1207
  };
1059
1208
 
1060
- export const METRICS_JOIN_TIMES_MAX_DURATION = 1200000;
1061
-
1062
1209
  export const PSTN_STATUS = {
1063
1210
  JOINED: 'JOINED', // we have provisioned a pstn device, which can be used to connect
1064
1211
  CONNECTED: 'CONNECTED', // user is connected to audio with pstn device
@@ -1079,6 +1226,7 @@ export const MEETING_INFO_FAILURE_REASON = {
1079
1226
  NONE: 'NONE', // meeting info was retrieved succesfully
1080
1227
  WRONG_PASSWORD: 'WRONG_PASSWORD', // meeting requires password and no password or wrong one was provided
1081
1228
  WRONG_CAPTCHA: 'WRONG_CAPTCHA', // wbxappapi requires a captcha code or a wrong captcha code was provided
1229
+ POLICY: 'POLICY', // meeting info request violates some meeting policy
1082
1230
  OTHER: 'OTHER', // any other error (network, etc)
1083
1231
  };
1084
1232
 
@@ -1093,3 +1241,22 @@ export const EMBEDDED_APP_TYPES = {
1093
1241
  SLIDO: 'SLIDO',
1094
1242
  OTHER: 'OTHER',
1095
1243
  };
1244
+
1245
+ export const DEFAULT_MEETING_INFO_REQUEST_BODY = {
1246
+ supportHostKey: true,
1247
+ supportCountryList: true,
1248
+ };
1249
+
1250
+ /** the values for IP_VERSION are fixed and defined in Orpheus API */
1251
+ export const IP_VERSION = {
1252
+ unknown: 0,
1253
+ only_ipv4: 4, // we know we have ipv4, we don't know or we don't have ipv6
1254
+ only_ipv6: 6, // we know we have ipv6, we don't know or we don't have ipv4
1255
+ ipv4_and_ipv6: 1,
1256
+ } as const;
1257
+
1258
+ export type IP_VERSION = (typeof IP_VERSION)[keyof typeof IP_VERSION];
1259
+
1260
+ // constant for if the permissionToken is about to expire in the next 30 seconds, refresh it
1261
+ export const MEETING_PERMISSION_TOKEN_REFRESH_THRESHOLD_IN_SEC = 30;
1262
+ 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;