@webex/plugin-meetings 2.59.8 → 2.60.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (528) 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 +41 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +357 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +215 -0
  9. package/dist/breakouts/breakout.js.map +1 -0
  10. package/dist/breakouts/collection.js +22 -0
  11. package/dist/breakouts/collection.js.map +1 -0
  12. package/dist/breakouts/edit-lock-error.js +51 -0
  13. package/dist/breakouts/edit-lock-error.js.map +1 -0
  14. package/dist/breakouts/events.js +44 -0
  15. package/dist/breakouts/events.js.map +1 -0
  16. package/dist/breakouts/index.js +1047 -0
  17. package/dist/breakouts/index.js.map +1 -0
  18. package/dist/breakouts/request.js +77 -0
  19. package/dist/breakouts/request.js.map +1 -0
  20. package/dist/breakouts/utils.js +64 -0
  21. package/dist/breakouts/utils.js.map +1 -0
  22. package/dist/common/browser-detection.js +2 -3
  23. package/dist/common/browser-detection.js.map +1 -1
  24. package/dist/common/collection.js +3 -4
  25. package/dist/common/collection.js.map +1 -1
  26. package/dist/common/config.js +1 -2
  27. package/dist/common/config.js.map +1 -1
  28. package/dist/common/errors/captcha-error.js +1 -2
  29. package/dist/common/errors/captcha-error.js.map +1 -1
  30. package/dist/common/errors/intent-to-join.js +1 -2
  31. package/dist/common/errors/intent-to-join.js.map +1 -1
  32. package/dist/common/errors/join-meeting.js +1 -2
  33. package/dist/common/errors/join-meeting.js.map +1 -1
  34. package/dist/common/errors/media.js +1 -2
  35. package/dist/common/errors/media.js.map +1 -1
  36. package/dist/common/errors/no-meeting-info.js +50 -0
  37. package/dist/common/errors/no-meeting-info.js.map +1 -0
  38. package/dist/common/errors/parameter.js +3 -4
  39. package/dist/common/errors/parameter.js.map +1 -1
  40. package/dist/common/errors/password-error.js +1 -2
  41. package/dist/common/errors/password-error.js.map +1 -1
  42. package/dist/common/errors/permission.js +1 -2
  43. package/dist/common/errors/permission.js.map +1 -1
  44. package/dist/common/errors/reclaim-host-role-errors.js +154 -0
  45. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  46. package/dist/common/errors/reconnection-in-progress.js +1 -2
  47. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  48. package/dist/common/errors/reconnection.js +1 -2
  49. package/dist/common/errors/reconnection.js.map +1 -1
  50. package/dist/common/errors/stats.js +1 -2
  51. package/dist/common/errors/stats.js.map +1 -1
  52. package/dist/common/errors/webex-errors.js +48 -28
  53. package/dist/common/errors/webex-errors.js.map +1 -1
  54. package/dist/common/errors/webex-meetings-error.js +1 -2
  55. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  56. package/dist/common/events/events-scope.js +1 -2
  57. package/dist/common/events/events-scope.js.map +1 -1
  58. package/dist/common/events/events.js +1 -2
  59. package/dist/common/events/events.js.map +1 -1
  60. package/dist/common/events/trigger-proxy.js +1 -2
  61. package/dist/common/events/trigger-proxy.js.map +1 -1
  62. package/dist/common/events/util.js +1 -2
  63. package/dist/common/events/util.js.map +1 -1
  64. package/dist/common/logs/logger-config.js +1 -2
  65. package/dist/common/logs/logger-config.js.map +1 -1
  66. package/dist/common/logs/logger-proxy.js +2 -3
  67. package/dist/common/logs/logger-proxy.js.map +1 -1
  68. package/dist/common/logs/request.js +8 -5
  69. package/dist/common/logs/request.js.map +1 -1
  70. package/dist/common/queue.js +22 -9
  71. package/dist/common/queue.js.map +1 -1
  72. package/dist/config.js +8 -11
  73. package/dist/config.js.map +1 -1
  74. package/dist/constants.js +437 -435
  75. package/dist/constants.js.map +1 -1
  76. package/dist/controls-options-manager/constants.js +3 -6
  77. package/dist/controls-options-manager/constants.js.map +1 -1
  78. package/dist/controls-options-manager/enums.js +14 -6
  79. package/dist/controls-options-manager/enums.js.map +1 -1
  80. package/dist/controls-options-manager/index.js +127 -38
  81. package/dist/controls-options-manager/index.js.map +1 -1
  82. package/dist/controls-options-manager/types.js +7 -0
  83. package/dist/controls-options-manager/types.js.map +1 -0
  84. package/dist/controls-options-manager/util.js +309 -19
  85. package/dist/controls-options-manager/util.js.map +1 -1
  86. package/dist/index.js +116 -4
  87. package/dist/index.js.map +1 -1
  88. package/dist/interpretation/collection.js +22 -0
  89. package/dist/interpretation/collection.js.map +1 -0
  90. package/dist/interpretation/index.js +365 -0
  91. package/dist/interpretation/index.js.map +1 -0
  92. package/dist/interpretation/siLanguage.js +24 -0
  93. package/dist/interpretation/siLanguage.js.map +1 -0
  94. package/dist/locus-info/controlsUtils.js +100 -11
  95. package/dist/locus-info/controlsUtils.js.map +1 -1
  96. package/dist/locus-info/embeddedAppsUtils.js +3 -4
  97. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  98. package/dist/locus-info/fullState.js +1 -2
  99. package/dist/locus-info/fullState.js.map +1 -1
  100. package/dist/locus-info/hostUtils.js +1 -2
  101. package/dist/locus-info/hostUtils.js.map +1 -1
  102. package/dist/locus-info/index.js +425 -84
  103. package/dist/locus-info/index.js.map +1 -1
  104. package/dist/locus-info/infoUtils.js +13 -5
  105. package/dist/locus-info/infoUtils.js.map +1 -1
  106. package/dist/locus-info/mediaSharesUtils.js +58 -3
  107. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  108. package/dist/locus-info/parser.js +253 -80
  109. package/dist/locus-info/parser.js.map +1 -1
  110. package/dist/locus-info/selfUtils.js +97 -13
  111. package/dist/locus-info/selfUtils.js.map +1 -1
  112. package/dist/media/index.js +106 -319
  113. package/dist/media/index.js.map +1 -1
  114. package/dist/media/properties.js +96 -153
  115. package/dist/media/properties.js.map +1 -1
  116. package/dist/media/util.js +1 -22
  117. package/dist/media/util.js.map +1 -1
  118. package/dist/mediaQualityMetrics/config.js +498 -493
  119. package/dist/mediaQualityMetrics/config.js.map +1 -1
  120. package/dist/meeting/in-meeting-actions.js +90 -3
  121. package/dist/meeting/in-meeting-actions.js.map +1 -1
  122. package/dist/meeting/index.js +4578 -2973
  123. package/dist/meeting/index.js.map +1 -1
  124. package/dist/meeting/locusMediaRequest.js +291 -0
  125. package/dist/meeting/locusMediaRequest.js.map +1 -0
  126. package/dist/meeting/muteState.js +224 -133
  127. package/dist/meeting/muteState.js.map +1 -1
  128. package/dist/meeting/request.js +297 -199
  129. package/dist/meeting/request.js.map +1 -1
  130. package/dist/meeting/request.type.js +7 -0
  131. package/dist/meeting/request.type.js.map +1 -0
  132. package/dist/meeting/state.js +1 -2
  133. package/dist/meeting/state.js.map +1 -1
  134. package/dist/meeting/util.js +605 -435
  135. package/dist/meeting/util.js.map +1 -1
  136. package/dist/meeting-info/collection.js +3 -4
  137. package/dist/meeting-info/collection.js.map +1 -1
  138. package/dist/meeting-info/index.js +74 -7
  139. package/dist/meeting-info/index.js.map +1 -1
  140. package/dist/meeting-info/meeting-info-v2.js +197 -63
  141. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  142. package/dist/meeting-info/request.js +1 -2
  143. package/dist/meeting-info/request.js.map +1 -1
  144. package/dist/meeting-info/util.js +2 -3
  145. package/dist/meeting-info/util.js.map +1 -1
  146. package/dist/meeting-info/utilv2.js +25 -12
  147. package/dist/meeting-info/utilv2.js.map +1 -1
  148. package/dist/meetings/collection.js +25 -4
  149. package/dist/meetings/collection.js.map +1 -1
  150. package/dist/meetings/index.js +464 -123
  151. package/dist/meetings/index.js.map +1 -1
  152. package/dist/meetings/meetings.types.js +7 -0
  153. package/dist/meetings/meetings.types.js.map +1 -0
  154. package/dist/meetings/request.js +4 -3
  155. package/dist/meetings/request.js.map +1 -1
  156. package/dist/meetings/util.js +107 -6
  157. package/dist/meetings/util.js.map +1 -1
  158. package/dist/member/index.js +54 -2
  159. package/dist/member/index.js.map +1 -1
  160. package/dist/member/member.types.js +3 -4
  161. package/dist/member/member.types.js.map +1 -1
  162. package/dist/member/types.js +23 -0
  163. package/dist/member/types.js.map +1 -0
  164. package/dist/member/util.js +131 -29
  165. package/dist/member/util.js.map +1 -1
  166. package/dist/members/collection.js +11 -2
  167. package/dist/members/collection.js.map +1 -1
  168. package/dist/members/index.js +174 -10
  169. package/dist/members/index.js.map +1 -1
  170. package/dist/members/request.js +108 -41
  171. package/dist/members/request.js.map +1 -1
  172. package/dist/members/types.js +14 -0
  173. package/dist/members/types.js.map +1 -0
  174. package/dist/members/util.js +327 -234
  175. package/dist/members/util.js.map +1 -1
  176. package/dist/metrics/constants.js +14 -9
  177. package/dist/metrics/constants.js.map +1 -1
  178. package/dist/metrics/index.js +4 -452
  179. package/dist/metrics/index.js.map +1 -1
  180. package/dist/multistream/mediaRequestManager.js +344 -0
  181. package/dist/multistream/mediaRequestManager.js.map +1 -0
  182. package/dist/multistream/receiveSlot.js +200 -0
  183. package/dist/multistream/receiveSlot.js.map +1 -0
  184. package/dist/multistream/receiveSlotManager.js +174 -0
  185. package/dist/multistream/receiveSlotManager.js.map +1 -0
  186. package/dist/multistream/remoteMedia.js +268 -0
  187. package/dist/multistream/remoteMedia.js.map +1 -0
  188. package/dist/multistream/remoteMediaGroup.js +267 -0
  189. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  190. package/dist/multistream/remoteMediaManager.js +1211 -0
  191. package/dist/multistream/remoteMediaManager.js.map +1 -0
  192. package/dist/multistream/sendSlotManager.js +236 -0
  193. package/dist/multistream/sendSlotManager.js.map +1 -0
  194. package/dist/networkQualityMonitor/index.js +5 -4
  195. package/dist/networkQualityMonitor/index.js.map +1 -1
  196. package/dist/personal-meeting-room/index.js +2 -3
  197. package/dist/personal-meeting-room/index.js.map +1 -1
  198. package/dist/personal-meeting-room/request.js +2 -3
  199. package/dist/personal-meeting-room/request.js.map +1 -1
  200. package/dist/personal-meeting-room/util.js +1 -2
  201. package/dist/personal-meeting-room/util.js.map +1 -1
  202. package/dist/reachability/index.js +265 -72
  203. package/dist/reachability/index.js.map +1 -1
  204. package/dist/reachability/request.js +18 -10
  205. package/dist/reachability/request.js.map +1 -1
  206. package/dist/reactions/constants.js +12 -0
  207. package/dist/reactions/constants.js.map +1 -0
  208. package/dist/reactions/reactions.js +4 -6
  209. package/dist/reactions/reactions.js.map +1 -1
  210. package/dist/reactions/reactions.type.js +21 -23
  211. package/dist/reactions/reactions.type.js.map +1 -1
  212. package/dist/reconnection-manager/index.js +272 -220
  213. package/dist/reconnection-manager/index.js.map +1 -1
  214. package/dist/recording-controller/enums.js +4 -5
  215. package/dist/recording-controller/enums.js.map +1 -1
  216. package/dist/recording-controller/index.js +57 -46
  217. package/dist/recording-controller/index.js.map +1 -1
  218. package/dist/recording-controller/util.js +10 -10
  219. package/dist/recording-controller/util.js.map +1 -1
  220. package/dist/roap/index.js +101 -235
  221. package/dist/roap/index.js.map +1 -1
  222. package/dist/roap/request.js +126 -180
  223. package/dist/roap/request.js.map +1 -1
  224. package/dist/roap/turnDiscovery.js +115 -105
  225. package/dist/roap/turnDiscovery.js.map +1 -1
  226. package/dist/rtcMetrics/constants.js +11 -0
  227. package/dist/rtcMetrics/constants.js.map +1 -0
  228. package/dist/rtcMetrics/index.js +115 -0
  229. package/dist/rtcMetrics/index.js.map +1 -0
  230. package/dist/statsAnalyzer/global.js +2 -85
  231. package/dist/statsAnalyzer/global.js.map +1 -1
  232. package/dist/statsAnalyzer/index.js +384 -426
  233. package/dist/statsAnalyzer/index.js.map +1 -1
  234. package/dist/statsAnalyzer/mqaUtil.js +114 -80
  235. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  236. package/dist/transcription/index.js +1 -2
  237. package/dist/transcription/index.js.map +1 -1
  238. package/dist/webinar/collection.js +43 -0
  239. package/dist/webinar/collection.js.map +1 -0
  240. package/dist/webinar/index.js +68 -0
  241. package/dist/webinar/index.js.map +1 -0
  242. package/package.json +34 -24
  243. package/src/annotation/annotation.types.ts +50 -0
  244. package/src/annotation/constants.ts +36 -0
  245. package/src/annotation/index.ts +328 -0
  246. package/src/breakouts/README.md +220 -0
  247. package/src/breakouts/breakout.ts +188 -0
  248. package/src/breakouts/collection.ts +19 -0
  249. package/src/breakouts/edit-lock-error.ts +25 -0
  250. package/src/breakouts/events.ts +56 -0
  251. package/src/breakouts/index.ts +925 -0
  252. package/src/breakouts/request.ts +55 -0
  253. package/src/breakouts/utils.ts +57 -0
  254. package/src/common/errors/no-meeting-info.ts +24 -0
  255. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  256. package/src/common/errors/webex-errors.ts +36 -12
  257. package/src/common/logs/logger-proxy.ts +1 -1
  258. package/src/common/logs/request.ts +5 -1
  259. package/src/common/queue.ts +22 -8
  260. package/src/config.ts +5 -7
  261. package/src/constants.ts +263 -91
  262. package/src/controls-options-manager/enums.ts +11 -1
  263. package/src/controls-options-manager/index.ts +116 -21
  264. package/src/controls-options-manager/types.ts +59 -0
  265. package/src/controls-options-manager/util.ts +294 -14
  266. package/src/index.ts +40 -0
  267. package/src/interpretation/README.md +60 -0
  268. package/src/interpretation/collection.ts +19 -0
  269. package/src/interpretation/index.ts +332 -0
  270. package/src/interpretation/siLanguage.ts +18 -0
  271. package/src/locus-info/controlsUtils.ts +110 -0
  272. package/src/locus-info/index.ts +449 -61
  273. package/src/locus-info/infoUtils.ts +14 -2
  274. package/src/locus-info/mediaSharesUtils.ts +64 -0
  275. package/src/locus-info/parser.ts +258 -47
  276. package/src/locus-info/selfUtils.ts +85 -2
  277. package/src/media/index.ts +153 -370
  278. package/src/media/properties.ts +106 -136
  279. package/src/media/util.ts +0 -21
  280. package/src/mediaQualityMetrics/config.ts +379 -377
  281. package/src/meeting/in-meeting-actions.ts +168 -0
  282. package/src/meeting/index.ts +3800 -2491
  283. package/src/meeting/locusMediaRequest.ts +313 -0
  284. package/src/meeting/muteState.ts +224 -138
  285. package/src/meeting/request.ts +207 -127
  286. package/src/meeting/request.type.ts +13 -0
  287. package/src/meeting/util.ts +590 -423
  288. package/src/meeting-info/index.ts +81 -8
  289. package/src/meeting-info/meeting-info-v2.ts +159 -13
  290. package/src/meeting-info/util.ts +1 -1
  291. package/src/meeting-info/utilv2.ts +22 -9
  292. package/src/meetings/collection.ts +20 -0
  293. package/src/meetings/index.ts +466 -124
  294. package/src/meetings/meetings.types.ts +12 -0
  295. package/src/meetings/request.ts +2 -0
  296. package/src/meetings/util.ts +116 -5
  297. package/src/member/index.ts +52 -1
  298. package/src/member/types.ts +38 -0
  299. package/src/member/util.ts +139 -28
  300. package/src/members/collection.ts +8 -0
  301. package/src/members/index.ts +196 -7
  302. package/src/members/request.ts +97 -17
  303. package/src/members/types.ts +29 -0
  304. package/src/members/util.ts +333 -240
  305. package/src/metrics/constants.ts +12 -6
  306. package/src/metrics/index.ts +1 -471
  307. package/src/multistream/mediaRequestManager.ts +440 -0
  308. package/src/multistream/receiveSlot.ts +184 -0
  309. package/src/multistream/receiveSlotManager.ts +166 -0
  310. package/src/multistream/remoteMedia.ts +254 -0
  311. package/src/multistream/remoteMediaGroup.ts +284 -0
  312. package/src/multistream/remoteMediaManager.ts +1145 -0
  313. package/src/multistream/sendSlotManager.ts +170 -0
  314. package/src/networkQualityMonitor/index.ts +6 -6
  315. package/src/reachability/index.ts +238 -45
  316. package/src/reachability/request.ts +17 -8
  317. package/src/reactions/constants.ts +4 -0
  318. package/src/reactions/reactions.ts +4 -4
  319. package/src/reactions/reactions.type.ts +30 -4
  320. package/src/reconnection-manager/index.ts +124 -107
  321. package/src/recording-controller/index.ts +20 -3
  322. package/src/recording-controller/util.ts +26 -9
  323. package/src/roap/index.ts +98 -241
  324. package/src/roap/request.ts +74 -148
  325. package/src/roap/turnDiscovery.ts +62 -56
  326. package/src/rtcMetrics/constants.ts +3 -0
  327. package/src/rtcMetrics/index.ts +100 -0
  328. package/src/statsAnalyzer/global.ts +1 -84
  329. package/src/statsAnalyzer/index.ts +442 -523
  330. package/src/statsAnalyzer/mqaUtil.ts +105 -103
  331. package/src/webinar/collection.ts +31 -0
  332. package/src/webinar/index.ts +62 -0
  333. package/test/integration/spec/converged-space-meetings.js +233 -0
  334. package/test/integration/spec/journey.js +320 -264
  335. package/test/integration/spec/space-meeting.js +77 -4
  336. package/test/unit/spec/annotation/index.ts +418 -0
  337. package/test/unit/spec/breakouts/breakout.ts +237 -0
  338. package/test/unit/spec/breakouts/collection.ts +15 -0
  339. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  340. package/test/unit/spec/breakouts/events.ts +89 -0
  341. package/test/unit/spec/breakouts/index.ts +1790 -0
  342. package/test/unit/spec/breakouts/request.ts +104 -0
  343. package/test/unit/spec/breakouts/utils.js +72 -0
  344. package/test/unit/spec/common/queue.js +31 -2
  345. package/test/unit/spec/controls-options-manager/index.js +163 -0
  346. package/test/unit/spec/controls-options-manager/util.js +576 -60
  347. package/test/unit/spec/fixture/locus.js +1 -0
  348. package/test/unit/spec/interpretation/collection.ts +15 -0
  349. package/test/unit/spec/interpretation/index.ts +589 -0
  350. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  351. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  352. package/test/unit/spec/locus-info/index.js +1390 -16
  353. package/test/unit/spec/locus-info/infoUtils.js +54 -16
  354. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  355. package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
  356. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  357. package/test/unit/spec/locus-info/parser.js +116 -35
  358. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  359. package/test/unit/spec/media/index.ts +274 -0
  360. package/test/unit/spec/media/properties.ts +75 -84
  361. package/test/unit/spec/meeting/in-meeting-actions.ts +82 -0
  362. package/test/unit/spec/meeting/index.js +7395 -3171
  363. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  364. package/test/unit/spec/meeting/muteState.js +407 -212
  365. package/test/unit/spec/meeting/request.js +512 -42
  366. package/test/unit/spec/meeting/utils.js +741 -24
  367. package/test/unit/spec/meeting-info/index.js +300 -0
  368. package/test/unit/spec/meeting-info/meetinginfov2.js +500 -6
  369. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  370. package/test/unit/spec/meetings/collection.js +14 -0
  371. package/test/unit/spec/meetings/index.js +1012 -209
  372. package/test/unit/spec/meetings/utils.js +202 -2
  373. package/test/unit/spec/member/index.js +38 -8
  374. package/test/unit/spec/member/util.js +528 -27
  375. package/test/unit/spec/members/index.js +597 -3
  376. package/test/unit/spec/members/request.js +206 -27
  377. package/test/unit/spec/members/utils.js +210 -0
  378. package/test/unit/spec/metrics/index.js +1 -50
  379. package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
  380. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  381. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  382. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  383. package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
  384. package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
  385. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  386. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  387. package/test/unit/spec/reachability/index.ts +598 -24
  388. package/test/unit/spec/reachability/request.js +68 -0
  389. package/test/unit/spec/reconnection-manager/index.js +130 -22
  390. package/test/unit/spec/recording-controller/index.js +293 -218
  391. package/test/unit/spec/recording-controller/util.js +223 -96
  392. package/test/unit/spec/roap/index.ts +200 -76
  393. package/test/unit/spec/roap/request.ts +232 -0
  394. package/test/unit/spec/roap/turnDiscovery.ts +86 -48
  395. package/test/unit/spec/rtcMetrics/index.ts +73 -0
  396. package/test/unit/spec/stats-analyzer/index.js +181 -177
  397. package/test/unit/spec/webinar/collection.ts +13 -0
  398. package/test/unit/spec/webinar/index.ts +60 -0
  399. package/test/utils/constants.js +9 -0
  400. package/test/utils/integrationTestUtils.js +46 -0
  401. package/test/utils/testUtils.js +0 -45
  402. package/test/utils/webex-config.js +4 -0
  403. package/test/utils/webex-test-users.js +7 -3
  404. package/dist/common/browser-detection.d.ts +0 -9
  405. package/dist/common/collection.d.ts +0 -48
  406. package/dist/common/config.d.ts +0 -2
  407. package/dist/common/errors/captcha-error.d.ts +0 -15
  408. package/dist/common/errors/intent-to-join.d.ts +0 -16
  409. package/dist/common/errors/join-meeting.d.ts +0 -17
  410. package/dist/common/errors/media.d.ts +0 -15
  411. package/dist/common/errors/parameter.d.ts +0 -15
  412. package/dist/common/errors/password-error.d.ts +0 -15
  413. package/dist/common/errors/permission.d.ts +0 -14
  414. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  415. package/dist/common/errors/reconnection.d.ts +0 -15
  416. package/dist/common/errors/stats.d.ts +0 -15
  417. package/dist/common/errors/webex-errors.d.ts +0 -81
  418. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  419. package/dist/common/events/events-scope.d.ts +0 -17
  420. package/dist/common/events/events.d.ts +0 -12
  421. package/dist/common/events/trigger-proxy.d.ts +0 -2
  422. package/dist/common/events/util.d.ts +0 -2
  423. package/dist/common/logs/logger-config.d.ts +0 -2
  424. package/dist/common/logs/logger-proxy.d.ts +0 -2
  425. package/dist/common/logs/request.d.ts +0 -34
  426. package/dist/common/queue.d.ts +0 -32
  427. package/dist/config.d.ts +0 -73
  428. package/dist/constants.d.ts +0 -926
  429. package/dist/controls-options-manager/constants.d.ts +0 -4
  430. package/dist/controls-options-manager/enums.d.ts +0 -5
  431. package/dist/controls-options-manager/index.d.ts +0 -120
  432. package/dist/controls-options-manager/util.d.ts +0 -7
  433. package/dist/index.d.ts +0 -4
  434. package/dist/locus-info/controlsUtils.d.ts +0 -2
  435. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  436. package/dist/locus-info/fullState.d.ts +0 -2
  437. package/dist/locus-info/hostUtils.d.ts +0 -2
  438. package/dist/locus-info/index.d.ts +0 -269
  439. package/dist/locus-info/infoUtils.d.ts +0 -2
  440. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  441. package/dist/locus-info/parser.d.ts +0 -212
  442. package/dist/locus-info/selfUtils.d.ts +0 -2
  443. package/dist/media/index.d.ts +0 -32
  444. package/dist/media/properties.d.ts +0 -108
  445. package/dist/media/util.d.ts +0 -2
  446. package/dist/mediaQualityMetrics/config.d.ts +0 -233
  447. package/dist/meeting/effectsState.d.ts +0 -42
  448. package/dist/meeting/effectsState.js +0 -260
  449. package/dist/meeting/effectsState.js.map +0 -1
  450. package/dist/meeting/in-meeting-actions.d.ts +0 -79
  451. package/dist/meeting/index.d.ts +0 -1622
  452. package/dist/meeting/muteState.d.ts +0 -116
  453. package/dist/meeting/request.d.ts +0 -255
  454. package/dist/meeting/state.d.ts +0 -9
  455. package/dist/meeting/util.d.ts +0 -2
  456. package/dist/meeting-info/collection.d.ts +0 -20
  457. package/dist/meeting-info/index.d.ts +0 -57
  458. package/dist/meeting-info/meeting-info-v2.d.ts +0 -93
  459. package/dist/meeting-info/request.d.ts +0 -22
  460. package/dist/meeting-info/util.d.ts +0 -2
  461. package/dist/meeting-info/utilv2.d.ts +0 -2
  462. package/dist/meetings/collection.d.ts +0 -23
  463. package/dist/meetings/index.d.ts +0 -296
  464. package/dist/meetings/request.d.ts +0 -27
  465. package/dist/meetings/util.d.ts +0 -18
  466. package/dist/member/index.d.ts +0 -147
  467. package/dist/member/member.types.d.ts +0 -11
  468. package/dist/member/util.d.ts +0 -2
  469. package/dist/members/collection.d.ts +0 -24
  470. package/dist/members/index.d.ts +0 -298
  471. package/dist/members/request.d.ts +0 -50
  472. package/dist/members/util.d.ts +0 -2
  473. package/dist/metrics/config.d.ts +0 -169
  474. package/dist/metrics/config.js +0 -289
  475. package/dist/metrics/config.js.map +0 -1
  476. package/dist/metrics/constants.d.ts +0 -59
  477. package/dist/metrics/index.d.ts +0 -152
  478. package/dist/networkQualityMonitor/index.d.ts +0 -70
  479. package/dist/peer-connection-manager/index.d.ts +0 -6
  480. package/dist/peer-connection-manager/index.js +0 -671
  481. package/dist/peer-connection-manager/index.js.map +0 -1
  482. package/dist/peer-connection-manager/util.d.ts +0 -6
  483. package/dist/peer-connection-manager/util.js +0 -110
  484. package/dist/peer-connection-manager/util.js.map +0 -1
  485. package/dist/personal-meeting-room/index.d.ts +0 -47
  486. package/dist/personal-meeting-room/request.d.ts +0 -14
  487. package/dist/personal-meeting-room/util.d.ts +0 -2
  488. package/dist/reachability/index.d.ts +0 -139
  489. package/dist/reachability/request.d.ts +0 -35
  490. package/dist/reactions/reactions.d.ts +0 -4
  491. package/dist/reactions/reactions.type.d.ts +0 -32
  492. package/dist/reconnection-manager/index.d.ts +0 -112
  493. package/dist/recording-controller/enums.d.ts +0 -7
  494. package/dist/recording-controller/index.d.ts +0 -193
  495. package/dist/recording-controller/util.d.ts +0 -13
  496. package/dist/roap/collection.d.ts +0 -10
  497. package/dist/roap/collection.js +0 -63
  498. package/dist/roap/collection.js.map +0 -1
  499. package/dist/roap/handler.d.ts +0 -47
  500. package/dist/roap/handler.js +0 -279
  501. package/dist/roap/handler.js.map +0 -1
  502. package/dist/roap/index.d.ts +0 -116
  503. package/dist/roap/request.d.ts +0 -35
  504. package/dist/roap/state.d.ts +0 -9
  505. package/dist/roap/state.js +0 -127
  506. package/dist/roap/state.js.map +0 -1
  507. package/dist/roap/turnDiscovery.d.ts +0 -81
  508. package/dist/roap/util.d.ts +0 -2
  509. package/dist/roap/util.js +0 -76
  510. package/dist/roap/util.js.map +0 -1
  511. package/dist/statsAnalyzer/global.d.ts +0 -118
  512. package/dist/statsAnalyzer/index.d.ts +0 -193
  513. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -22
  514. package/dist/transcription/index.d.ts +0 -64
  515. package/src/index.js +0 -15
  516. package/src/meeting/effectsState.ts +0 -209
  517. package/src/metrics/config.ts +0 -485
  518. package/src/peer-connection-manager/index.ts +0 -847
  519. package/src/peer-connection-manager/util.ts +0 -119
  520. package/src/roap/collection.ts +0 -62
  521. package/src/roap/handler.ts +0 -294
  522. package/src/roap/state.ts +0 -156
  523. package/src/roap/util.ts +0 -100
  524. package/test/unit/spec/meeting/effectsState.js +0 -281
  525. package/test/unit/spec/peerconnection-manager/index.js +0 -218
  526. package/test/unit/spec/peerconnection-manager/utils.js +0 -49
  527. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
  528. package/test/unit/spec/roap/util.js +0 -30
@@ -70,10 +70,41 @@ export default class MeetingInfo {
70
70
  * @private
71
71
  * @memberof MeetingInfo
72
72
  */
73
- private requestFetchInfo(options: object) {
73
+ private requestFetchInfo(options: any) {
74
+ const {meetingId, sendCAevents} = options;
75
+ if (meetingId && sendCAevents) {
76
+ this.webex.internal.newMetrics.submitInternalEvent({
77
+ name: 'internal.client.meetinginfo.request',
78
+ });
79
+ this.webex.internal.newMetrics.submitClientEvent({
80
+ name: 'client.meetinginfo.request',
81
+ options: {
82
+ meetingId,
83
+ },
84
+ });
85
+ }
86
+
74
87
  return this.meetingInfoRequest
75
88
  .fetchMeetingInfo(options)
76
89
  .then((info) => {
90
+ if (meetingId && sendCAevents) {
91
+ this.webex.internal.newMetrics.submitInternalEvent({
92
+ name: 'internal.client.meetinginfo.response',
93
+ });
94
+ this.webex.internal.newMetrics.submitClientEvent({
95
+ name: 'client.meetinginfo.response',
96
+ payload: {
97
+ identifiers: {
98
+ meetingLookupUrl: info?.url,
99
+ },
100
+ },
101
+ options: {
102
+ meetingId,
103
+ webexConferenceIdStr: info?.body?.confIdStr || info?.body?.confID,
104
+ globalMeetingId: info?.body?.meetingId,
105
+ },
106
+ });
107
+ }
77
108
  if (info && info.body) {
78
109
  this.setMeetingInfo(info.body.sipMeetingUri || info.body.meetingLink, info.body);
79
110
  }
@@ -84,6 +115,23 @@ export default class MeetingInfo {
84
115
  LoggerProxy.logger.error(
85
116
  `Meeting-info:index#requestFetchInfo --> ${error} fetch meetingInfo`
86
117
  );
118
+ if (meetingId && sendCAevents) {
119
+ this.webex.internal.newMetrics.submitInternalEvent({
120
+ name: 'internal.client.meetinginfo.response',
121
+ });
122
+ this.webex.internal.newMetrics.submitClientEvent({
123
+ name: 'client.meetinginfo.response',
124
+ payload: {
125
+ identifiers: {
126
+ meetingLookupUrl: error?.url,
127
+ },
128
+ },
129
+ options: {
130
+ meetingId,
131
+ rawError: error,
132
+ },
133
+ });
134
+ }
87
135
 
88
136
  return Promise.reject(error);
89
137
  });
@@ -105,29 +153,54 @@ export default class MeetingInfo {
105
153
  });
106
154
  }
107
155
 
156
+ // eslint-disable-next-line valid-jsdoc
108
157
  /**
109
158
  * Fetches meeting info from the server
110
159
  * @param {String} destination one of many different types of destinations to look up info for
111
160
  * @param {String} [type] to match up with the destination value
161
+ * @param {String} [password] meeting password
162
+ * @param {Object} [captchaInfo] captcha code and id
163
+ * @param {String} [installedOrgID]
164
+ * @param {String} [locusId]
165
+ * @param {Object} [extraParams]
166
+ * @param {Boolean} [options] meeting Id and whether Call Analyzer events should be sent
112
167
  * @returns {Promise} returns a meeting info object
113
168
  * @public
114
169
  * @memberof MeetingInfo
115
170
  */
116
- public fetchMeetingInfo(destination: string, type: string = null) {
171
+ public fetchMeetingInfo(
172
+ destination: string,
173
+ type: string = null,
174
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
175
+ password: string = null,
176
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
177
+ captchaInfo: {
178
+ code: string;
179
+ id: string;
180
+ } = null,
181
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
182
+ installedOrgID = null,
183
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
184
+ locusId = null,
185
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
186
+ extraParams: object = {},
187
+ options: {meetingId?: string; sendCAevents?: boolean} = {}
188
+ ) {
117
189
  if (type === _PERSONAL_ROOM_ && !destination) {
118
190
  destination = this.webex.internal.device.userId;
119
191
  }
120
192
 
121
193
  return this.fetchInfoOptions(MeetingInfoUtil.extractDestination(destination, type), type).then(
122
- (options) =>
194
+ (infoOptions) =>
123
195
  // fetch meeting info
124
- this.requestFetchInfo(options).catch((error) => {
196
+ this.requestFetchInfo({...infoOptions, ...options}).catch((error) => {
125
197
  // if it failed the first time as meeting link
126
- if (options.type === _MEETING_LINK_) {
198
+ if (infoOptions.type === _MEETING_LINK_) {
127
199
  // convert the meeting link to sip URI and retry
128
- return this.requestFetchInfo(
129
- this.fetchInfoOptions(MeetingInfoUtil.convertLinkToSip(destination), _SIP_URI_)
130
- );
200
+ return this.requestFetchInfo({
201
+ ...this.fetchInfoOptions(MeetingInfoUtil.convertLinkToSip(destination), _SIP_URI_),
202
+ ...options,
203
+ });
131
204
  }
132
205
 
133
206
  return Promise.reject(error);
@@ -1,4 +1,10 @@
1
- import {HTTP_VERBS, _CONVERSATION_URL_, WBXAPPAPI_SERVICE} from '../constants';
1
+ import lodash from 'lodash';
2
+ import {
3
+ HTTP_VERBS,
4
+ _CONVERSATION_URL_,
5
+ WBXAPPAPI_SERVICE,
6
+ DEFAULT_MEETING_INFO_REQUEST_BODY,
7
+ } from '../constants';
2
8
  import Metrics from '../metrics';
3
9
  import BEHAVIORAL_METRICS from '../metrics/constants';
4
10
 
@@ -11,7 +17,7 @@ const CAPTCHA_ERROR_DEFAULT_MESSAGE =
11
17
  const ADHOC_MEETING_DEFAULT_ERROR =
12
18
  'Failed starting the adhoc meeting, Please contact support team ';
13
19
  const CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];
14
-
20
+ const POLICY_ERROR_CODES = [403049, 403104, 403103, 403048, 403102, 403101];
15
21
  /**
16
22
  * Error to indicate that wbxappapi requires a password
17
23
  */
@@ -63,6 +69,30 @@ export class MeetingInfoV2AdhocMeetingError extends Error {
63
69
  }
64
70
  }
65
71
 
72
+ /**
73
+ * Error preventing join because of a meeting policy
74
+ */
75
+ export class MeetingInfoV2PolicyError extends Error {
76
+ meetingInfo: object;
77
+ sdkMessage: string;
78
+ wbxAppApiCode: number;
79
+ /**
80
+ *
81
+ * @constructor
82
+ * @param {Number} [wbxAppApiErrorCode]
83
+ * @param {Object} [meetingInfo]
84
+ * @param {String} [message]
85
+ */
86
+ constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string) {
87
+ super(`${message}, code=${wbxAppApiErrorCode}`);
88
+ this.name = 'MeetingInfoV2AdhocMeetingError';
89
+ this.sdkMessage = message;
90
+ this.stack = new Error().stack;
91
+ this.wbxAppApiCode = wbxAppApiErrorCode;
92
+ this.meetingInfo = meetingInfo;
93
+ }
94
+ }
95
+
66
96
  /**
67
97
  * Error to indicate that preferred webex site not present to start adhoc meeting
68
98
  */
@@ -124,14 +154,38 @@ export default class MeetingInfoV2 {
124
154
  });
125
155
  }
126
156
 
157
+ /**
158
+ * Raises a MeetingInfoV2PolicyError for policy error codes
159
+ * @param {any} err the error from the request
160
+ * @returns {void}
161
+ */
162
+ handlePolicyError = (err) => {
163
+ if (!err.body) {
164
+ return;
165
+ }
166
+
167
+ if (POLICY_ERROR_CODES.includes(err.body?.code)) {
168
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_INFO_POLICY_ERROR, {
169
+ code: err.body?.code,
170
+ });
171
+
172
+ throw new MeetingInfoV2PolicyError(
173
+ err.body?.code,
174
+ err.body?.data?.meetingInfo,
175
+ err.body?.message
176
+ );
177
+ }
178
+ };
179
+
127
180
  /**
128
181
  * Creates adhoc space meetings for a space by fetching the conversation infomation
129
182
  * @param {String} conversationUrl conversationUrl to start adhoc meeting on
183
+ * @param {String} installedOrgID org ID of user's machine
130
184
  * @returns {Promise} returns a meeting info object
131
185
  * @public
132
186
  * @memberof MeetingInfo
133
187
  */
134
- async createAdhocSpaceMeeting(conversationUrl: string) {
188
+ async createAdhocSpaceMeeting(conversationUrl: string, installedOrgID?: string) {
135
189
  if (!this.webex.meetings.preferredWebexSite) {
136
190
  throw Error('No preferred webex site found');
137
191
  }
@@ -159,21 +213,27 @@ export default class MeetingInfoV2 {
159
213
  keyUrl: conversation.encryptionKeyUrl,
160
214
  kroUrl: conversation.kmsResourceObjectUrl,
161
215
  invitees: getInvitees(conversation.participants?.items),
216
+ installedOrgID,
162
217
  };
163
218
 
164
219
  const uri = this.webex.meetings.preferredWebexSite
165
220
  ? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant`
166
221
  : '';
167
222
 
168
- Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);
169
-
170
223
  return this.webex.request({
171
224
  method: HTTP_VERBS.POST,
172
225
  uri,
173
226
  body,
174
227
  });
175
228
  })
229
+ .then((requestResult) => {
230
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);
231
+
232
+ return requestResult;
233
+ })
176
234
  .catch((err) => {
235
+ this.handlePolicyError(err);
236
+
177
237
  Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_FAILURE, {
178
238
  reason: err.message,
179
239
  stack: err.stack,
@@ -190,6 +250,10 @@ export default class MeetingInfoV2 {
190
250
  * @param {Object} captchaInfo
191
251
  * @param {String} captchaInfo.code
192
252
  * @param {String} captchaInfo.id
253
+ * @param {String} installedOrgID org ID of user's machine
254
+ * @param {String} locusId
255
+ * @param {Object} extraParams
256
+ * @param {Object} options
193
257
  * @returns {Promise} returns a meeting info object
194
258
  * @public
195
259
  * @memberof MeetingInfo
@@ -201,8 +265,14 @@ export default class MeetingInfoV2 {
201
265
  captchaInfo: {
202
266
  code: string;
203
267
  id: string;
204
- } = null
268
+ } = null,
269
+ installedOrgID = null,
270
+ locusId = null,
271
+ extraParams: object = {},
272
+ options: {meetingId?: string; sendCAevents?: boolean} = {}
205
273
  ) {
274
+ const {meetingId, sendCAevents} = options;
275
+
206
276
  const destinationType = await MeetingInfoUtil.getDestinationType({
207
277
  destination,
208
278
  type,
@@ -214,12 +284,35 @@ export default class MeetingInfoV2 {
214
284
  this.webex.config.meetings.experimental.enableAdhocMeetings &&
215
285
  this.webex.meetings.preferredWebexSite
216
286
  ) {
217
- return this.createAdhocSpaceMeeting(destinationType.destination);
287
+ return this.createAdhocSpaceMeeting(destinationType.destination, installedOrgID);
218
288
  }
219
289
 
220
- const body = await MeetingInfoUtil.getRequestBody({...destinationType, password, captchaInfo});
290
+ const body = await MeetingInfoUtil.getRequestBody({
291
+ ...destinationType,
292
+ password,
293
+ captchaInfo,
294
+ installedOrgID,
295
+ locusId,
296
+ extraParams,
297
+ });
298
+
299
+ // If the body only contains the default properties, we don't have enough to
300
+ // fetch the meeting info so don't bother trying.
301
+ if (
302
+ !lodash.difference(Object.keys(body), Object.keys(DEFAULT_MEETING_INFO_REQUEST_BODY)).length
303
+ ) {
304
+ const err = new Error('Not enough information to fetch meeting info');
305
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {
306
+ reason: err.message,
307
+ destinationType: destinationType?.type,
308
+ webExMeetingId: destinationType?.info?.webExMeetingId,
309
+ sipUri: destinationType?.info?.sipUri,
310
+ });
221
311
 
222
- const options: any = {
312
+ throw err;
313
+ }
314
+
315
+ const requestOptions: any = {
223
316
  method: HTTP_VERBS.POST,
224
317
  body,
225
318
  };
@@ -227,21 +320,74 @@ export default class MeetingInfoV2 {
227
320
  const directURI = await MeetingInfoUtil.getDirectMeetingInfoURI(destinationType);
228
321
 
229
322
  if (directURI) {
230
- options.uri = directURI;
323
+ requestOptions.uri = directURI;
231
324
  } else {
232
- options.service = WBXAPPAPI_SERVICE;
233
- options.resource = 'meetingInfo';
325
+ requestOptions.service = WBXAPPAPI_SERVICE;
326
+ requestOptions.resource = 'meetingInfo';
327
+ }
328
+
329
+ if (meetingId && sendCAevents) {
330
+ this.webex.internal.newMetrics.submitInternalEvent({
331
+ name: 'internal.client.meetinginfo.request',
332
+ });
333
+
334
+ this.webex.internal.newMetrics.submitClientEvent({
335
+ name: 'client.meetinginfo.request',
336
+ options: {
337
+ meetingId,
338
+ },
339
+ });
234
340
  }
235
341
 
236
342
  return this.webex
237
- .request(options)
343
+ .request(requestOptions)
238
344
  .then((response) => {
345
+ if (meetingId && sendCAevents) {
346
+ this.webex.internal.newMetrics.submitInternalEvent({
347
+ name: 'internal.client.meetinginfo.response',
348
+ });
349
+
350
+ this.webex.internal.newMetrics.submitClientEvent({
351
+ name: 'client.meetinginfo.response',
352
+ payload: {
353
+ identifiers: {
354
+ meetingLookupUrl: response?.url,
355
+ },
356
+ },
357
+ options: {
358
+ meetingId,
359
+ webexConferenceIdStr: response?.body?.confIdStr || response?.body?.confID,
360
+ globalMeetingId: response?.body?.meetingId,
361
+ },
362
+ });
363
+ }
239
364
  Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS);
240
365
 
241
366
  return response;
242
367
  })
243
368
  .catch((err) => {
369
+ if (meetingId && sendCAevents) {
370
+ this.webex.internal.newMetrics.submitInternalEvent({
371
+ name: 'internal.client.meetinginfo.response',
372
+ });
373
+
374
+ this.webex.internal.newMetrics.submitClientEvent({
375
+ name: 'client.meetinginfo.response',
376
+ payload: {
377
+ identifiers: {
378
+ meetingLookupUrl: err?.url,
379
+ },
380
+ },
381
+ options: {
382
+ meetingId,
383
+ rawError: err,
384
+ },
385
+ });
386
+ }
387
+
244
388
  if (err?.statusCode === 403) {
389
+ this.handlePolicyError(err);
390
+
245
391
  Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR, {
246
392
  reason: err.message,
247
393
  stack: err.stack,
@@ -236,7 +236,7 @@ MeetingInfoUtil.generateOptions = async (from) => {
236
236
  }
237
237
  } else {
238
238
  throw new ParameterError(
239
- 'MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url.'
239
+ 'MeetingInfo is fetched with the meeting link, SIP URI, phone number, Hydra people ID, or a conversation URL.'
240
240
  );
241
241
  }
242
242
 
@@ -19,14 +19,20 @@ import {
19
19
  JOIN,
20
20
  MEET,
21
21
  MEET_M,
22
+ MEET_CISCO,
23
+ MEET_CO,
22
24
  HTTPS_PROTOCOL,
23
25
  UUID_REG,
24
26
  VALID_EMAIL_ADDRESS,
27
+ DEFAULT_MEETING_INFO_REQUEST_BODY,
25
28
  } from '../constants';
26
29
  import ParameterError from '../common/errors/parameter';
27
30
  import LoggerProxy from '../common/logs/logger-proxy';
31
+ import {SpaceIDDeprecatedError} from '../common/errors/webex-errors';
28
32
 
29
33
  const MeetingInfoUtil: any = {};
34
+ const meetingInfoError =
35
+ 'MeetingInfo is fetched with the meeting link, SIP URI, phone number, Hydra people ID, or a conversation URL.';
30
36
 
31
37
  MeetingInfoUtil.getParsedUrl = (link) => {
32
38
  try {
@@ -62,6 +68,8 @@ MeetingInfoUtil.isMeetingLink = (value: string) => {
62
68
  parsedUrl.pathname &&
63
69
  (parsedUrl.pathname.includes(`/${MEET}`) ||
64
70
  parsedUrl.pathname.includes(`/${MEET_M}`) ||
71
+ parsedUrl.pathname.includes(`/${MEET_CISCO}`) ||
72
+ parsedUrl.pathname.includes(`/${MEET_CO}`) ||
65
73
  parsedUrl.pathname.includes(`/${JOIN}`));
66
74
 
67
75
  return hostNameBool && pathNameBool;
@@ -215,12 +223,8 @@ MeetingInfoUtil.getDestinationType = async (from) => {
215
223
  throw e;
216
224
  }
217
225
  } else {
218
- LoggerProxy.logger.warn(
219
- "Meeting-info:util#getDestinationType --> ('MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url."
220
- );
221
- throw new ParameterError(
222
- 'MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url.'
223
- );
226
+ LoggerProxy.logger.warn(`Meeting-info:util#getDestinationType --> ${meetingInfoError}`);
227
+ throw new ParameterError(`${meetingInfoError}`);
224
228
  }
225
229
 
226
230
  return Promise.resolve(options);
@@ -230,14 +234,15 @@ MeetingInfoUtil.getDestinationType = async (from) => {
230
234
  * Helper function to build up a correct locus url depending on the value passed
231
235
  * @param {Object} options type and value to fetch meeting info
232
236
  * @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]
237
+ * @param {String} options.installedOrgID org ID of user's machine
233
238
  * @param {Object} options.destination ?? value.value
234
239
  * @returns {Object} returns an object with {resource, method}
235
240
  */
236
241
  MeetingInfoUtil.getRequestBody = (options: {type: string; destination: object} | any) => {
237
- const {type, destination, password, captchaInfo} = options;
242
+ const {type, destination, password, captchaInfo, installedOrgID, locusId, extraParams} = options;
238
243
  const body: any = {
239
- supportHostKey: true,
240
- supportCountryList: true,
244
+ ...DEFAULT_MEETING_INFO_REQUEST_BODY,
245
+ ...extraParams,
241
246
  };
242
247
 
243
248
  switch (type) {
@@ -281,6 +286,14 @@ MeetingInfoUtil.getRequestBody = (options: {type: string; destination: object} |
281
286
  body.captchaVerifyCode = captchaInfo.code;
282
287
  }
283
288
 
289
+ if (installedOrgID) {
290
+ body.installedOrgID = installedOrgID;
291
+ }
292
+
293
+ if (locusId) {
294
+ body.locusId = locusId;
295
+ }
296
+
284
297
  return body;
285
298
  };
286
299
 
@@ -40,4 +40,24 @@ export default class MeetingCollection extends Collection {
40
40
 
41
41
  return null;
42
42
  }
43
+
44
+ /**
45
+ * get a specific meeting searching for key
46
+ * @param {String} breakoutUrl
47
+ * @returns {Meeting} if found, else returns null
48
+ * @public
49
+ * @memberof MeetingCollection
50
+ */
51
+ public getActiveBreakoutLocus(breakoutUrl: string) {
52
+ if (breakoutUrl) {
53
+ // @ts-ignore
54
+ return find(
55
+ // @ts-ignore
56
+ this.meetings,
57
+ (meeting) => meeting.breakouts?.url === breakoutUrl && meeting.breakouts?.isActiveBreakout
58
+ );
59
+ }
60
+
61
+ return null;
62
+ }
43
63
  }