@webex/plugin-meetings 3.0.0-beta.3 → 3.0.0-beta.30

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 (493) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/breakouts/breakout.js +137 -0
  4. package/dist/breakouts/breakout.js.map +1 -0
  5. package/dist/breakouts/collection.js +23 -0
  6. package/dist/breakouts/collection.js.map +1 -0
  7. package/dist/breakouts/index.js +374 -0
  8. package/dist/breakouts/index.js.map +1 -0
  9. package/dist/breakouts/request.js +78 -0
  10. package/dist/breakouts/request.js.map +1 -0
  11. package/dist/breakouts/utils.js +23 -0
  12. package/dist/breakouts/utils.js.map +1 -0
  13. package/dist/common/browser-detection.js +1 -20
  14. package/dist/common/browser-detection.js.map +1 -1
  15. package/dist/common/collection.js +5 -20
  16. package/dist/common/collection.js.map +1 -1
  17. package/dist/common/config.js +0 -7
  18. package/dist/common/config.js.map +1 -1
  19. package/dist/common/errors/captcha-error.js +10 -24
  20. package/dist/common/errors/captcha-error.js.map +1 -1
  21. package/dist/common/errors/intent-to-join.js +11 -24
  22. package/dist/common/errors/intent-to-join.js.map +1 -1
  23. package/dist/common/errors/join-meeting.js +12 -25
  24. package/dist/common/errors/join-meeting.js.map +1 -1
  25. package/dist/common/errors/media.js +10 -24
  26. package/dist/common/errors/media.js.map +1 -1
  27. package/dist/common/errors/parameter.js +5 -33
  28. package/dist/common/errors/parameter.js.map +1 -1
  29. package/dist/common/errors/password-error.js +10 -24
  30. package/dist/common/errors/password-error.js.map +1 -1
  31. package/dist/common/errors/permission.js +9 -23
  32. package/dist/common/errors/permission.js.map +1 -1
  33. package/dist/common/errors/reconnection-in-progress.js +0 -17
  34. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  35. package/dist/common/errors/reconnection.js +10 -24
  36. package/dist/common/errors/reconnection.js.map +1 -1
  37. package/dist/common/errors/stats.js +10 -24
  38. package/dist/common/errors/stats.js.map +1 -1
  39. package/dist/common/errors/webex-errors.js +6 -41
  40. package/dist/common/errors/webex-errors.js.map +1 -1
  41. package/dist/common/errors/webex-meetings-error.js +5 -25
  42. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  43. package/dist/common/events/events-scope.js +0 -22
  44. package/dist/common/events/events-scope.js.map +1 -1
  45. package/dist/common/events/events.js +0 -23
  46. package/dist/common/events/events.js.map +1 -1
  47. package/dist/common/events/trigger-proxy.js +0 -12
  48. package/dist/common/events/trigger-proxy.js.map +1 -1
  49. package/dist/common/events/util.js +0 -15
  50. package/dist/common/events/util.js.map +1 -1
  51. package/dist/common/logs/logger-config.js +0 -4
  52. package/dist/common/logs/logger-config.js.map +1 -1
  53. package/dist/common/logs/logger-proxy.js +1 -8
  54. package/dist/common/logs/logger-proxy.js.map +1 -1
  55. package/dist/common/logs/request.js +37 -60
  56. package/dist/common/logs/request.js.map +1 -1
  57. package/dist/common/queue.js +4 -14
  58. package/dist/common/queue.js.map +1 -1
  59. package/dist/config.js +6 -6
  60. package/dist/config.js.map +1 -1
  61. package/dist/constants.js +92 -49
  62. package/dist/constants.js.map +1 -1
  63. package/dist/controls-options-manager/constants.js +14 -0
  64. package/dist/controls-options-manager/constants.js.map +1 -0
  65. package/dist/controls-options-manager/enums.js +15 -0
  66. package/dist/controls-options-manager/enums.js.map +1 -0
  67. package/dist/controls-options-manager/index.js +203 -0
  68. package/dist/controls-options-manager/index.js.map +1 -0
  69. package/dist/controls-options-manager/util.js +28 -0
  70. package/dist/controls-options-manager/util.js.map +1 -0
  71. package/dist/index.js +4 -18
  72. package/dist/index.js.map +1 -1
  73. package/dist/locus-info/controlsUtils.js +12 -29
  74. package/dist/locus-info/controlsUtils.js.map +1 -1
  75. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  76. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  77. package/dist/locus-info/fullState.js +0 -15
  78. package/dist/locus-info/fullState.js.map +1 -1
  79. package/dist/locus-info/hostUtils.js +4 -12
  80. package/dist/locus-info/hostUtils.js.map +1 -1
  81. package/dist/locus-info/index.js +186 -192
  82. package/dist/locus-info/index.js.map +1 -1
  83. package/dist/locus-info/infoUtils.js +3 -37
  84. package/dist/locus-info/infoUtils.js.map +1 -1
  85. package/dist/locus-info/mediaSharesUtils.js +12 -38
  86. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  87. package/dist/locus-info/parser.js +92 -118
  88. package/dist/locus-info/parser.js.map +1 -1
  89. package/dist/locus-info/selfUtils.js +34 -91
  90. package/dist/locus-info/selfUtils.js.map +1 -1
  91. package/dist/media/index.js +64 -137
  92. package/dist/media/index.js.map +1 -1
  93. package/dist/media/properties.js +80 -114
  94. package/dist/media/properties.js.map +1 -1
  95. package/dist/media/util.js +2 -9
  96. package/dist/media/util.js.map +1 -1
  97. package/dist/mediaQualityMetrics/config.js +505 -495
  98. package/dist/mediaQualityMetrics/config.js.map +1 -1
  99. package/dist/meeting/effectsState.js +125 -190
  100. package/dist/meeting/effectsState.js.map +1 -1
  101. package/dist/meeting/in-meeting-actions.js +13 -14
  102. package/dist/meeting/in-meeting-actions.js.map +1 -1
  103. package/dist/meeting/index.js +2142 -2101
  104. package/dist/meeting/index.js.map +1 -1
  105. package/dist/meeting/muteState.js +39 -80
  106. package/dist/meeting/muteState.js.map +1 -1
  107. package/dist/meeting/request.js +224 -230
  108. package/dist/meeting/request.js.map +1 -1
  109. package/dist/meeting/request.type.js +7 -0
  110. package/dist/meeting/request.type.js.map +1 -0
  111. package/dist/meeting/state.js +21 -31
  112. package/dist/meeting/state.js.map +1 -1
  113. package/dist/meeting/util.js +43 -215
  114. package/dist/meeting/util.js.map +1 -1
  115. package/dist/meeting-info/collection.js +6 -25
  116. package/dist/meeting-info/collection.js.map +1 -1
  117. package/dist/meeting-info/index.js +14 -32
  118. package/dist/meeting-info/index.js.map +1 -1
  119. package/dist/meeting-info/meeting-info-v2.js +193 -268
  120. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  121. package/dist/meeting-info/request.js +3 -15
  122. package/dist/meeting-info/request.js.map +1 -1
  123. package/dist/meeting-info/util.js +98 -183
  124. package/dist/meeting-info/util.js.map +1 -1
  125. package/dist/meeting-info/utilv2.js +137 -228
  126. package/dist/meeting-info/utilv2.js.map +1 -1
  127. package/dist/meetings/collection.js +5 -20
  128. package/dist/meetings/collection.js.map +1 -1
  129. package/dist/meetings/index.js +490 -560
  130. package/dist/meetings/index.js.map +1 -1
  131. package/dist/meetings/request.js +24 -41
  132. package/dist/meetings/request.js.map +1 -1
  133. package/dist/meetings/util.js +116 -155
  134. package/dist/meetings/util.js.map +1 -1
  135. package/dist/member/index.js +78 -86
  136. package/dist/member/index.js.map +1 -1
  137. package/dist/member/util.js +31 -68
  138. package/dist/member/util.js.map +1 -1
  139. package/dist/members/collection.js +3 -12
  140. package/dist/members/collection.js.map +1 -1
  141. package/dist/members/index.js +94 -200
  142. package/dist/members/index.js.map +1 -1
  143. package/dist/members/request.js +16 -39
  144. package/dist/members/request.js.map +1 -1
  145. package/dist/members/util.js +9 -38
  146. package/dist/members/util.js.map +1 -1
  147. package/dist/metrics/config.js +0 -2
  148. package/dist/metrics/config.js.map +1 -1
  149. package/dist/metrics/constants.js +1 -2
  150. package/dist/metrics/constants.js.map +1 -1
  151. package/dist/metrics/index.js +55 -135
  152. package/dist/metrics/index.js.map +1 -1
  153. package/dist/multistream/mediaRequestManager.js +57 -33
  154. package/dist/multistream/mediaRequestManager.js.map +1 -1
  155. package/dist/multistream/receiveSlot.js +30 -50
  156. package/dist/multistream/receiveSlot.js.map +1 -1
  157. package/dist/multistream/receiveSlotManager.js +60 -82
  158. package/dist/multistream/receiveSlotManager.js.map +1 -1
  159. package/dist/multistream/remoteMedia.js +18 -58
  160. package/dist/multistream/remoteMedia.js.map +1 -1
  161. package/dist/multistream/remoteMediaGroup.js +6 -40
  162. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  163. package/dist/multistream/remoteMediaManager.js +360 -413
  164. package/dist/multistream/remoteMediaManager.js.map +1 -1
  165. package/dist/networkQualityMonitor/index.js +40 -59
  166. package/dist/networkQualityMonitor/index.js.map +1 -1
  167. package/dist/personal-meeting-room/index.js +21 -45
  168. package/dist/personal-meeting-room/index.js.map +1 -1
  169. package/dist/personal-meeting-room/request.js +1 -31
  170. package/dist/personal-meeting-room/request.js.map +1 -1
  171. package/dist/personal-meeting-room/util.js +0 -13
  172. package/dist/personal-meeting-room/util.js.map +1 -1
  173. package/dist/reachability/index.js +138 -182
  174. package/dist/reachability/index.js.map +1 -1
  175. package/dist/reachability/request.js +3 -18
  176. package/dist/reachability/request.js.map +1 -1
  177. package/dist/reactions/constants.js +13 -0
  178. package/dist/reactions/constants.js.map +1 -0
  179. package/dist/reactions/reactions.js +109 -0
  180. package/dist/reactions/reactions.js.map +1 -0
  181. package/dist/reactions/reactions.type.js +36 -0
  182. package/dist/reactions/reactions.type.js.map +1 -0
  183. package/dist/reconnection-manager/index.js +322 -455
  184. package/dist/reconnection-manager/index.js.map +1 -1
  185. package/dist/recording-controller/enums.js +17 -0
  186. package/dist/recording-controller/enums.js.map +1 -0
  187. package/dist/recording-controller/index.js +343 -0
  188. package/dist/recording-controller/index.js.map +1 -0
  189. package/dist/recording-controller/util.js +63 -0
  190. package/dist/recording-controller/util.js.map +1 -0
  191. package/dist/roap/index.js +39 -64
  192. package/dist/roap/index.js.map +1 -1
  193. package/dist/roap/request.js +94 -113
  194. package/dist/roap/request.js.map +1 -1
  195. package/dist/roap/turnDiscovery.js +85 -94
  196. package/dist/roap/turnDiscovery.js.map +1 -1
  197. package/dist/statsAnalyzer/global.js +1 -95
  198. package/dist/statsAnalyzer/global.js.map +1 -1
  199. package/dist/statsAnalyzer/index.js +357 -449
  200. package/dist/statsAnalyzer/index.js.map +1 -1
  201. package/dist/statsAnalyzer/mqaUtil.js +137 -81
  202. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  203. package/dist/transcription/index.js +22 -47
  204. package/dist/transcription/index.js.map +1 -1
  205. package/dist/types/breakouts/breakout.d.ts +8 -0
  206. package/dist/types/breakouts/collection.d.ts +5 -0
  207. package/dist/types/breakouts/index.d.ts +5 -0
  208. package/dist/types/breakouts/request.d.ts +22 -0
  209. package/dist/types/breakouts/utils.d.ts +1 -0
  210. package/dist/types/common/browser-detection.d.ts +9 -0
  211. package/dist/types/common/collection.d.ts +48 -0
  212. package/dist/types/common/config.d.ts +2 -0
  213. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  214. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  215. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  216. package/dist/types/common/errors/media.d.ts +15 -0
  217. package/dist/types/common/errors/parameter.d.ts +15 -0
  218. package/dist/types/common/errors/password-error.d.ts +15 -0
  219. package/dist/types/common/errors/permission.d.ts +14 -0
  220. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  221. package/dist/types/common/errors/reconnection.d.ts +15 -0
  222. package/dist/types/common/errors/stats.d.ts +15 -0
  223. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  224. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  225. package/dist/types/common/events/events-scope.d.ts +17 -0
  226. package/dist/types/common/events/events.d.ts +12 -0
  227. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  228. package/dist/types/common/events/util.d.ts +2 -0
  229. package/dist/types/common/logs/logger-config.d.ts +2 -0
  230. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  231. package/dist/types/common/logs/request.d.ts +34 -0
  232. package/dist/types/common/queue.d.ts +32 -0
  233. package/dist/types/config.d.ts +77 -0
  234. package/dist/types/constants.d.ts +899 -0
  235. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  236. package/dist/types/controls-options-manager/enums.d.ts +5 -0
  237. package/dist/types/controls-options-manager/index.d.ts +120 -0
  238. package/dist/types/controls-options-manager/util.d.ts +7 -0
  239. package/dist/types/index.d.ts +5 -0
  240. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  241. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  242. package/dist/types/locus-info/fullState.d.ts +2 -0
  243. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  244. package/dist/types/locus-info/index.d.ts +269 -0
  245. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  246. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  247. package/dist/types/locus-info/parser.d.ts +212 -0
  248. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  249. package/dist/types/media/index.d.ts +32 -0
  250. package/dist/types/media/properties.d.ts +107 -0
  251. package/dist/types/media/util.d.ts +2 -0
  252. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  253. package/dist/types/meeting/effectsState.d.ts +42 -0
  254. package/dist/types/meeting/in-meeting-actions.d.ts +83 -0
  255. package/dist/types/meeting/index.d.ts +1724 -0
  256. package/dist/types/meeting/muteState.d.ts +108 -0
  257. package/dist/types/meeting/request.d.ts +261 -0
  258. package/dist/types/meeting/request.type.d.ts +11 -0
  259. package/dist/types/meeting/state.d.ts +9 -0
  260. package/dist/types/meeting/util.d.ts +2 -0
  261. package/dist/types/meeting-info/collection.d.ts +20 -0
  262. package/dist/types/meeting-info/index.d.ts +57 -0
  263. package/dist/types/meeting-info/meeting-info-v2.d.ts +93 -0
  264. package/dist/types/meeting-info/request.d.ts +22 -0
  265. package/dist/types/meeting-info/util.d.ts +2 -0
  266. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  267. package/dist/types/meetings/collection.d.ts +23 -0
  268. package/dist/types/meetings/index.d.ts +297 -0
  269. package/dist/types/meetings/request.d.ts +27 -0
  270. package/dist/types/meetings/util.d.ts +18 -0
  271. package/dist/types/member/index.d.ts +146 -0
  272. package/dist/types/member/util.d.ts +2 -0
  273. package/dist/types/members/collection.d.ts +24 -0
  274. package/dist/types/members/index.d.ts +320 -0
  275. package/dist/types/members/request.d.ts +50 -0
  276. package/dist/types/members/util.d.ts +2 -0
  277. package/dist/types/metrics/config.d.ts +178 -0
  278. package/dist/types/metrics/constants.d.ts +57 -0
  279. package/dist/types/metrics/index.d.ts +160 -0
  280. package/dist/types/multistream/mediaRequestManager.d.ts +50 -0
  281. package/dist/types/multistream/receiveSlot.d.ts +66 -0
  282. package/dist/types/multistream/receiveSlotManager.d.ts +46 -0
  283. package/dist/types/multistream/remoteMedia.d.ts +93 -0
  284. package/dist/types/multistream/remoteMediaGroup.d.ts +56 -0
  285. package/dist/types/multistream/remoteMediaManager.d.ts +241 -0
  286. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  287. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  288. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  289. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  290. package/dist/types/reachability/index.d.ts +140 -0
  291. package/dist/types/reachability/request.d.ts +35 -0
  292. package/dist/types/reactions/constants.d.ts +3 -0
  293. package/dist/types/reactions/reactions.d.ts +4 -0
  294. package/dist/types/reactions/reactions.type.d.ts +52 -0
  295. package/dist/types/reconnection-manager/index.d.ts +117 -0
  296. package/dist/types/recording-controller/enums.d.ts +7 -0
  297. package/dist/types/recording-controller/index.d.ts +193 -0
  298. package/dist/types/recording-controller/util.d.ts +13 -0
  299. package/dist/types/roap/index.d.ts +77 -0
  300. package/dist/types/roap/request.d.ts +35 -0
  301. package/dist/types/roap/turnDiscovery.d.ts +74 -0
  302. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  303. package/dist/types/statsAnalyzer/index.d.ts +195 -0
  304. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  305. package/dist/types/transcription/index.d.ts +64 -0
  306. package/internal-README.md +7 -6
  307. package/package.json +25 -20
  308. package/src/breakouts/README.md +190 -0
  309. package/src/breakouts/breakout.ts +130 -0
  310. package/src/breakouts/collection.ts +19 -0
  311. package/src/breakouts/index.ts +353 -0
  312. package/src/breakouts/request.ts +55 -0
  313. package/src/breakouts/utils.ts +15 -0
  314. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  315. package/src/common/collection.ts +9 -7
  316. package/src/common/{config.js → config.ts} +1 -1
  317. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  318. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  319. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  320. package/src/common/errors/{media.js → media.ts} +11 -7
  321. package/src/common/errors/parameter.ts +11 -7
  322. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  323. package/src/common/errors/{permission.js → permission.ts} +10 -6
  324. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  325. package/src/common/errors/{stats.js → stats.ts} +11 -7
  326. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -7
  327. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  328. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  329. package/src/common/events/{events.js → events.ts} +5 -1
  330. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  331. package/src/common/events/{util.js → util.ts} +2 -3
  332. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  333. package/src/common/logs/logger-proxy.ts +44 -0
  334. package/src/common/logs/{request.js → request.ts} +22 -9
  335. package/src/common/queue.ts +1 -2
  336. package/src/{config.js → config.ts} +17 -12
  337. package/src/constants.ts +44 -4
  338. package/src/controls-options-manager/constants.ts +5 -0
  339. package/src/controls-options-manager/enums.ts +6 -0
  340. package/src/controls-options-manager/index.ts +183 -0
  341. package/src/controls-options-manager/util.ts +20 -0
  342. package/src/index.js +2 -1
  343. package/src/locus-info/controlsUtils.ts +114 -0
  344. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  345. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  346. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  347. package/src/locus-info/{index.js → index.ts} +150 -66
  348. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  349. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  350. package/src/locus-info/{parser.js → parser.ts} +67 -79
  351. package/src/locus-info/{selfUtils.js → selfUtils.ts} +123 -68
  352. package/src/media/{index.js → index.ts} +176 -157
  353. package/src/media/{properties.js → properties.ts} +48 -31
  354. package/src/media/{util.js → util.ts} +2 -2
  355. package/src/mediaQualityMetrics/config.ts +384 -0
  356. package/src/meeting/{effectsState.js → effectsState.ts} +47 -41
  357. package/src/meeting/in-meeting-actions.ts +31 -3
  358. package/src/meeting/{index.js → index.ts} +2479 -1466
  359. package/src/meeting/{muteState.js → muteState.ts} +80 -45
  360. package/src/meeting/{request.js → request.ts} +292 -142
  361. package/src/meeting/request.type.ts +13 -0
  362. package/src/meeting/{state.js → state.ts} +50 -35
  363. package/src/meeting/{util.js → util.ts} +112 -115
  364. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  365. package/src/meeting-info/{index.js → index.ts} +42 -36
  366. package/src/meeting-info/meeting-info-v2.ts +273 -0
  367. package/src/meeting-info/{request.js → request.ts} +14 -4
  368. package/src/meeting-info/{util.js → util.ts} +60 -51
  369. package/src/meeting-info/{utilv2.js → utilv2.ts} +65 -58
  370. package/src/meetings/{collection.js → collection.ts} +6 -3
  371. package/src/meetings/index.ts +1159 -0
  372. package/src/meetings/{request.js → request.ts} +32 -25
  373. package/src/meetings/{util.js → util.ts} +58 -32
  374. package/src/member/{index.js → index.ts} +102 -56
  375. package/src/member/{util.js → util.ts} +52 -25
  376. package/src/members/{collection.js → collection.ts} +2 -2
  377. package/src/members/{index.js → index.ts} +221 -142
  378. package/src/members/{request.js → request.ts} +60 -16
  379. package/src/members/{util.js → util.ts} +50 -48
  380. package/src/metrics/{config.js → config.ts} +254 -83
  381. package/src/metrics/{constants.js → constants.ts} +0 -2
  382. package/src/metrics/{index.js → index.ts} +106 -74
  383. package/src/multistream/mediaRequestManager.ts +79 -15
  384. package/src/multistream/receiveSlot.ts +42 -13
  385. package/src/multistream/receiveSlotManager.ts +35 -21
  386. package/src/multistream/remoteMedia.ts +15 -5
  387. package/src/multistream/remoteMediaGroup.ts +4 -3
  388. package/src/multistream/remoteMediaManager.ts +152 -36
  389. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  390. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  391. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  392. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  393. package/src/reachability/{index.js → index.ts} +99 -83
  394. package/src/reachability/request.ts +39 -33
  395. package/src/reactions/constants.ts +4 -0
  396. package/src/reactions/reactions.ts +104 -0
  397. package/src/reactions/reactions.type.ts +62 -0
  398. package/src/reconnection-manager/{index.js → index.ts} +195 -102
  399. package/src/recording-controller/enums.ts +8 -0
  400. package/src/recording-controller/index.ts +315 -0
  401. package/src/recording-controller/util.ts +58 -0
  402. package/src/roap/{index.js → index.ts} +73 -56
  403. package/src/roap/request.ts +157 -0
  404. package/src/roap/turnDiscovery.ts +77 -37
  405. package/src/statsAnalyzer/global.ts +37 -0
  406. package/src/statsAnalyzer/index.ts +1234 -0
  407. package/src/statsAnalyzer/mqaUtil.ts +293 -0
  408. package/src/transcription/{index.js → index.ts} +46 -39
  409. package/test/integration/spec/converged-space-meetings.js +176 -0
  410. package/test/integration/spec/journey.js +664 -463
  411. package/test/integration/spec/space-meeting.js +320 -206
  412. package/test/integration/spec/transcription.js +7 -8
  413. package/test/unit/spec/breakouts/breakout.ts +147 -0
  414. package/test/unit/spec/breakouts/collection.ts +15 -0
  415. package/test/unit/spec/breakouts/index.ts +464 -0
  416. package/test/unit/spec/breakouts/request.ts +104 -0
  417. package/test/unit/spec/breakouts/utils.js +21 -0
  418. package/test/unit/spec/common/browser-detection.js +9 -28
  419. package/test/unit/spec/controls-options-manager/index.js +124 -0
  420. package/test/unit/spec/controls-options-manager/util.js +66 -0
  421. package/test/unit/spec/fixture/locus.js +92 -90
  422. package/test/unit/spec/locus-info/controlsUtils.js +25 -5
  423. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  424. package/test/unit/spec/locus-info/index.js +104 -2
  425. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  426. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  427. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  428. package/test/unit/spec/locus-info/parser.js +3 -9
  429. package/test/unit/spec/locus-info/selfConstant.js +97 -103
  430. package/test/unit/spec/locus-info/selfUtils.js +105 -12
  431. package/test/unit/spec/media/index.ts +31 -47
  432. package/test/unit/spec/media/properties.ts +9 -9
  433. package/test/unit/spec/meeting/effectsState.js +39 -45
  434. package/test/unit/spec/meeting/in-meeting-actions.ts +13 -2
  435. package/test/unit/spec/meeting/index.js +2214 -746
  436. package/test/unit/spec/meeting/muteState.js +43 -34
  437. package/test/unit/spec/meeting/request.js +115 -44
  438. package/test/unit/spec/meeting/utils.js +104 -171
  439. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  440. package/test/unit/spec/meeting-info/request.js +7 -9
  441. package/test/unit/spec/meeting-info/util.js +11 -12
  442. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  443. package/test/unit/spec/meetings/collection.js +1 -1
  444. package/test/unit/spec/meetings/index.js +439 -257
  445. package/test/unit/spec/meetings/utils.js +14 -12
  446. package/test/unit/spec/member/index.js +0 -1
  447. package/test/unit/spec/member/util.js +31 -7
  448. package/test/unit/spec/members/index.js +104 -54
  449. package/test/unit/spec/members/request.js +29 -20
  450. package/test/unit/spec/members/utils.js +8 -5
  451. package/test/unit/spec/metrics/index.js +16 -21
  452. package/test/unit/spec/multistream/mediaRequestManager.ts +312 -50
  453. package/test/unit/spec/multistream/receiveSlot.ts +57 -6
  454. package/test/unit/spec/multistream/receiveSlotManager.ts +41 -13
  455. package/test/unit/spec/multistream/remoteMedia.ts +10 -2
  456. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  457. package/test/unit/spec/multistream/remoteMediaManager.ts +412 -65
  458. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  459. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  460. package/test/unit/spec/reachability/index.ts +58 -26
  461. package/test/unit/spec/reconnection-manager/index.js +102 -9
  462. package/test/unit/spec/recording-controller/index.js +231 -0
  463. package/test/unit/spec/recording-controller/util.js +102 -0
  464. package/test/unit/spec/roap/index.ts +2 -1
  465. package/test/unit/spec/roap/request.ts +114 -0
  466. package/test/unit/spec/roap/turnDiscovery.ts +64 -45
  467. package/test/unit/spec/stats-analyzer/index.js +86 -57
  468. package/test/utils/cmr.js +44 -42
  469. package/test/utils/constants.js +9 -0
  470. package/test/utils/testUtils.js +96 -80
  471. package/test/utils/webex-config.js +22 -18
  472. package/test/utils/webex-test-users.js +57 -50
  473. package/tsconfig.json +6 -0
  474. package/dist/media/internal-media-core-wrapper.js +0 -22
  475. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  476. package/dist/multistream/multistreamMedia.js +0 -116
  477. package/dist/multistream/multistreamMedia.js.map +0 -1
  478. package/dist/peer-connection-manager/util.js +0 -124
  479. package/dist/peer-connection-manager/util.js.map +0 -1
  480. package/src/common/logs/logger-proxy.js +0 -33
  481. package/src/locus-info/controlsUtils.js +0 -102
  482. package/src/media/internal-media-core-wrapper.ts +0 -9
  483. package/src/mediaQualityMetrics/config.js +0 -382
  484. package/src/meeting-info/meeting-info-v2.js +0 -255
  485. package/src/meetings/index.js +0 -1015
  486. package/src/multistream/multistreamMedia.ts +0 -92
  487. package/src/peer-connection-manager/util.ts +0 -117
  488. package/src/roap/request.js +0 -127
  489. package/src/statsAnalyzer/global.js +0 -133
  490. package/src/statsAnalyzer/index.js +0 -1006
  491. package/src/statsAnalyzer/mqaUtil.js +0 -173
  492. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  493. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -1,382 +0,0 @@
1
-
2
- export default {
3
- intervals: [
4
- {
5
- audioReceive: [
6
- {
7
- common: {
8
- common: {
9
- direction: 'inactive',
10
- isMain: true,
11
- mariFecEnabled: false,
12
- mariQosEnabled: false,
13
- multistreamEnabled: false
14
- },
15
- dtlsBitrate: 0,
16
- dtlsPackets: 0,
17
- fecBitrate: 0,
18
- fecPackets: 0,
19
- maxBitrate: 0,
20
- mediaHopByHopLost: 0,
21
- rtcpBitrate: 0,
22
- rtcpPackets: 0,
23
- rtpBitrate: 0,
24
- rtpHopByHopLost: 0,
25
- rtpPackets: 0,
26
- rtpRecovered: 0,
27
- rtxBitrate: 0,
28
- rtxPackets: 0,
29
- srtcpUnprotectErrors: 0,
30
- srtpUnprotectErrors: 0,
31
- stunBitrate: 0,
32
- stunPackets: 0,
33
- transportType: 'UDP'
34
- },
35
- streams: [
36
- {
37
- common: {
38
- codec: 'opus',
39
- concealedFrames: 0,
40
- csi: [],
41
- maxConcealRunLength: 0,
42
- optimalBitrate: 0,
43
- optimalFrameRate: 0,
44
- receivedBitrate: 0,
45
- receivedFrameRate: 0,
46
- renderedFrameRate: 0,
47
- requestedBitrate: 0,
48
- requestedFrameRate: 0,
49
- rtpEndToEndLost: 0,
50
- maxRtpJitter: 0,
51
- meanRtpJitter: 0,
52
- rtpPackets: 0,
53
- ssci: 0
54
- }
55
- }
56
- ]
57
- }
58
- ],
59
- audioTransmit: [
60
- {
61
- common: {
62
- availableBitrate: 0,
63
- common: {
64
- direction: 'inactive',
65
- isMain: true,
66
- mariFecEnabled: false,
67
- mariQosEnabled: false,
68
- multistreamEnabled: false
69
- },
70
- dtlsBitrate: 0,
71
- dtlsPackets: 0,
72
- fecBitrate: 0,
73
- fecPackets: 0,
74
- maxBitrate: 0,
75
- queueDelay: 0,
76
- remoteJitter: 0,
77
- remoteLossRate: 0,
78
- remoteReceiveRate: 0,
79
- roundTripTime: 0,
80
- rtcpBitrate: 0,
81
- rtcpPackets: 0,
82
- rtpBitrate: 0,
83
- rtpPackets: 0,
84
- rtxBitrate: 0,
85
- rtxPackets: 0,
86
- stunBitrate: 0,
87
- stunPackets: 0,
88
- transportType: 'UDP'
89
- },
90
- streams: [
91
- {
92
- common: {
93
- codec: 'opus',
94
- requestedBitrate: 0,
95
- requestedFrames: 0,
96
- rtpPackets: 0,
97
- ssci: 0,
98
- transmittedBitrate: 0,
99
- transmittedFrameRate: 0
100
- }
101
- }
102
- ]
103
- }
104
- ],
105
- intervalMetadata: {
106
- peerReflexiveIP: '0.0.0.0',
107
- peripherals: [],
108
- processAverageCPU: 0,
109
- processMaximumCPU: 0,
110
- systemAverageCPU: 0,
111
- systemMaximumCPU: 0
112
- },
113
- intervalNumber: 0,
114
- videoReceive: [
115
- {
116
- common: {
117
- common: {
118
- direction: 'inactive',
119
- isMain: true, // Not avaliable
120
- mariFecEnabled: true, // Not avaliable
121
- mariQosEnabled: true, // Not avaliable
122
- multistreamEnabled: true// Not avaliable
123
- },
124
- dtlsBitrate: 0, // Not avaliable
125
- dtlsPackets: 0, // Not avaliable
126
- fecBitrate: 0, // Not avaliable
127
- fecPackets: 0, // Not avaliable
128
- maxBitrate: 0,
129
- mediaHopByHopLost: 0,
130
- rtcpBitrate: 0, // Not avaliable
131
- rtcpPackets: 0, // Not avaliable
132
- rtpBitrate: 0,
133
- rtpHopByHopLost: 0,
134
- rtpPackets: 0,
135
- rtpRecovered: 0, // Not avaliable
136
- rtxBitrate: 0, // Not avaliable
137
- rtxPackets: 0, // Not avaliable
138
- srtcpUnprotectErrors: 0, // Not avaliable
139
- srtpUnprotectErrors: 0, // Not avaliable
140
- stunBitrate: 0, // Not avaliable
141
- stunPackets: 0, // Not avaliable
142
- transportType: 'UDP'
143
- },
144
- streams: [
145
- {
146
- common: {
147
- codec: 'H264',
148
- concealedFrames: 0, // Not avaliable
149
- csi: [], // Not avaliable
150
- maxConcealRunLength: 0, // Not avaliable
151
- optimalBitrate: 0,
152
- optimalFrameRate: 0,
153
- receivedBitrate: 0,
154
- receivedFrameRate: 0,
155
- renderedFrameRate: 0, // Not avaliable
156
- requestedBitrate: 0,
157
- requestedFrameRate: 0,
158
- rtpEndToEndLost: 0,
159
- rtpJitter: 0,
160
- rtpPackets: 0,
161
- ssci: 0// Not avaliable
162
- },
163
- h264CodecProfile: 'BP',
164
- isActiveSpeaker: true,
165
- optimalFrameSize: 0, // Not avaliable
166
- receivedFrameSize: 0,
167
- receivedHeight: 0,
168
- receivedKeyFrames: 0,
169
- receivedKeyFramesForRequest: 0,
170
- receivedKeyFramesSourceChange: 0,
171
- receivedKeyFramesUnknown: 0,
172
- receivedWidth: 0,
173
- requestedFrameSize: 0,
174
- requestedKeyFrames: 0
175
- }
176
- ]
177
- },
178
- {
179
- common: {
180
- common: {
181
- direction: 'inactive',
182
- isMain: false, // Not avaliable
183
- mariFecEnabled: true, // Not avaliable
184
- mariQosEnabled: true, // Not avaliable
185
- multistreamEnabled: true// Not avaliable
186
- },
187
- dtlsBitrate: 0, // Not avaliable
188
- dtlsPackets: 0, // Not avaliable
189
- fecBitrate: 0, // Not avaliable
190
- fecPackets: 0, // Not avaliable
191
- maxBitrate: 0,
192
- mediaHopByHopLost: 0,
193
- rtcpBitrate: 0, // Not avaliable
194
- rtcpPackets: 0, // Not avaliable
195
- rtpBitrate: 0,
196
- rtpHopByHopLost: 0,
197
- rtpPackets: 0,
198
- rtpRecovered: 0, // Not avaliable
199
- rtxBitrate: 0, // Not avaliable
200
- rtxPackets: 0, // Not avaliable
201
- srtcpUnprotectErrors: 0, // Not avaliable
202
- srtpUnprotectErrors: 0, // Not avaliable
203
- stunBitrate: 0, // Not avaliable
204
- stunPackets: 0, // Not avaliable
205
- transportType: 'UDP'
206
- },
207
- streams: [
208
- {
209
- common: {
210
- codec: 'H264',
211
- concealedFrames: 0, // Not avaliable
212
- csi: [], // Not avaliable
213
- maxConcealRunLength: 0, // Not avaliable
214
- optimalBitrate: 0,
215
- optimalFrameRate: 0,
216
- receivedBitrate: 0,
217
- receivedFrameRate: 0,
218
- renderedFrameRate: 0, // Not avaliable
219
- requestedBitrate: 0,
220
- requestedFrameRate: 0,
221
- rtpEndToEndLost: 0,
222
- rtpJitter: 0,
223
- rtpPackets: 0,
224
- ssci: 0// Not avaliable
225
- },
226
- h264CodecProfile: 'BP',
227
- isActiveSpeaker: true,
228
- optimalFrameSize: 0, // Not avaliable
229
- receivedFrameSize: 0,
230
- receivedHeight: 0,
231
- receivedKeyFrames: 0,
232
- receivedKeyFramesForRequest: 0,
233
- receivedKeyFramesSourceChange: 0,
234
- receivedKeyFramesUnknown: 0,
235
- receivedWidth: 0,
236
- requestedFrameSize: 0,
237
- requestedKeyFrames: 0
238
- }
239
- ]
240
- }
241
- ],
242
- videoTransmit: [
243
- {
244
- common: {
245
- availableBitrate: 0, // Not avaliable currently hardcoded
246
- common: {
247
- direction: 'inactive',
248
- isMain: true,
249
- mariFecEnabled: false, // Not avaliable
250
- mariQosEnabled: false, // Not avaliable
251
- multistreamEnabled: false// Not avaliable
252
- },
253
- dtlsBitrate: 0, // Not avaliable
254
- dtlsPackets: 0, // Not avaliable
255
- fecBitrate: 0, // Not avaliable
256
- fecPackets: 0, // TODO: check inbound-rtp// Not avaliable
257
- maxBitrate: 0, // Currently hardcoded
258
- queueDelay: 0, // outboundRtp.totalPacketSentDelay // TODO: check if totalInterFrameDelay/ packetSentDelay/ jitterBufferDalay
259
- remoteJitter: 0, // remoteInboundRtp.jitter
260
- remoteLossRate: 0, // comparedResults.lossRate
261
- remoteReceiveRate: 0, // compareResults.packetsLost
262
- roundTripTime: 0, // compareResults.roundTripTime
263
- rtcpBitrate: 0, // Dont have access to it
264
- rtcpPackets: 0, // Dont have access to rtcp
265
- rtpBitrate: 0, // Dont have access
266
- rtpPackets: 0, // outboundRtp.packetsSent
267
- rtxBitrate: 0, // Dont have access to it
268
- rtxPackets: 0, // Dont have access to it
269
- stunBitrate: 0, // Dont have access to it
270
- stunPackets: 0, // Dont have access to it
271
- transportType: 'UDP' // TODO: need to calculate
272
- },
273
- streams: [
274
- {
275
- common: {
276
- codec: 'H264',
277
- duplicateSsci: 0, // Not Avaliable
278
- requestedBitrate: 0, // TODO: from remote SDP
279
- requestedFrames: 0, // TODO: from remote SDP
280
- rtpPackets: 0, // same as rtp packets
281
- ssci: 0,
282
- transmittedBitrate: 0, // TODO: get in the candidate pair
283
- transmittedFrameRate: 0 // TODO: from track info
284
- },
285
- h264CodecProfile: 'BP', // TODO: from localSDP
286
- isAvatar: false, // Not Avaliable
287
- isHardwareEncoded: false, // Not Avaliable
288
- localConfigurationChanges: 2, // Not Avaliable
289
- maxFrameQp: 0, // Not Avaliable
290
- maxNoiseLevel: 0, // Not Avaliable
291
- minRegionQp: 0, // Not Avaliable
292
- remoteConfigurationChanges: 0, // Not Avaliable
293
- requestedFrameSize: 0, // TODO: from remote SDP
294
- requestedKeyFrames: 0, // outbound Fir request
295
- transmittedFrameSize: 0, // Not Avaliable
296
- transmittedHeight: 0,
297
- transmittedKeyFrames: 0, // Key frames encoded
298
- transmittedKeyFramesClient: 0, // Not Avaliable
299
- transmittedKeyFramesConfigurationChange: 0, // Not Avaliable
300
- transmittedKeyFramesFeedback: 0, // Not Avaliable
301
- transmittedKeyFramesLocalDrop: 0, // Not Avaliable
302
- transmittedKeyFramesOtherLayer: 0, // Not Avaliable
303
- transmittedKeyFramesPeriodic: 0, // Not Avaliable
304
- transmittedKeyFramesSceneChange: 0, // Not Avaliable
305
- transmittedKeyFramesStartup: 0, // Not Avaliable
306
- transmittedKeyFramesUnknown: 0, // Not Avaliable
307
- transmittedWidth: 0
308
- }
309
- ]
310
- },
311
- { // sceen sharing
312
- common: {
313
- availableBitrate: 0, // Not avaliable currently hardcoded
314
- common: {
315
- direction: 'inactive',
316
- isMain: false,
317
- mariFecEnabled: false, // Not avaliable
318
- mariQosEnabled: false, // Not avaliable
319
- multistreamEnabled: false// Not avaliable
320
- },
321
- dtlsBitrate: 0, // Not avaliable
322
- dtlsPackets: 0, // Not avaliable
323
- fecBitrate: 0, // Not avaliable
324
- fecPackets: 0, // TODO: check inbound-rtp// Not avaliable
325
- maxBitrate: 0, // Currently hardcoded
326
- queueDelay: 0, // outboundRtp.totalPacketSentDelay // TODO: check if totalInterFrameDelay/ packetSentDelay/ jitterBufferDalay
327
- remoteJitter: 0, // remoteInboundRtp.jitter
328
- remoteLossRate: 0, // comparedResults.lossRate
329
- remoteReceiveRate: 0, // compareResults.packetsLost
330
- roundTripTime: 0, // compareResults.roundTripTime
331
- rtcpBitrate: 0, // Dont have access to it
332
- rtcpPackets: 0, // Dont have access to rtcp
333
- rtpBitrate: 0, // Dont have access
334
- rtpPackets: 0, // outboundRtp.packetsSent
335
- rtxBitrate: 0, // Dont have access to it
336
- rtxPackets: 0, // Dont have access to it
337
- stunBitrate: 0, // Dont have access to it
338
- stunPackets: 0, // Dont have access to it
339
- transportType: 'UDP' // TODO: need to calculate
340
- },
341
- streams: [
342
- {
343
- common: {
344
- codec: 'H264',
345
- duplicateSsci: 0, // Not Avaliable
346
- requestedBitrate: 0, // TODO: from remote SDP
347
- requestedFrames: 0, // TODO: from remote SDP
348
- rtpPackets: 0, // same as rtp packets
349
- ssci: 0,
350
- transmittedBitrate: 0, // TODO: get in the candidate pair
351
- transmittedFrameRate: 0 // TODO: from track info
352
- },
353
- h264CodecProfile: 'BP', // TODO: from localSDP
354
- isAvatar: false, // Not Avaliable
355
- isHardwareEncoded: false, // Not Avaliable
356
- localConfigurationChanges: 2, // Not Avaliable
357
- maxFrameQp: 0, // Not Avaliable
358
- maxNoiseLevel: 0, // Not Avaliable
359
- minRegionQp: 0, // Not Avaliable
360
- remoteConfigurationChanges: 0, // Not Avaliable
361
- requestedFrameSize: 0, // TODO: from remote SDP
362
- requestedKeyFrames: 0, // outbound Fir request
363
- transmittedFrameSize: 0, // Not Avaliable
364
- transmittedHeight: 0,
365
- transmittedKeyFrames: 0, // Key frames encoded
366
- transmittedKeyFramesClient: 0, // Not Avaliable
367
- transmittedKeyFramesConfigurationChange: 0, // Not Avaliable
368
- transmittedKeyFramesFeedback: 0, // Not Avaliable
369
- transmittedKeyFramesLocalDrop: 0, // Not Avaliable
370
- transmittedKeyFramesOtherLayer: 0, // Not Avaliable
371
- transmittedKeyFramesPeriodic: 0, // Not Avaliable
372
- transmittedKeyFramesSceneChange: 0, // Not Avaliable
373
- transmittedKeyFramesStartup: 0, // Not Avaliable
374
- transmittedKeyFramesUnknown: 0, // Not Avaliable
375
- transmittedWidth: 0
376
- }
377
- ]
378
- }
379
- ]
380
- }
381
- ]
382
- };
@@ -1,255 +0,0 @@
1
-
2
- import {HTTP_VERBS, _CONVERSATION_URL_, WBXAPPAPI_SERVICE} from '../constants';
3
- import Metrics from '../metrics';
4
- import BEHAVIORAL_METRICS from '../metrics/constants';
5
-
6
- import MeetingInfoUtil from './utilv2';
7
-
8
- const PASSWORD_ERROR_DEFAULT_MESSAGE = 'Password required. Call fetchMeetingInfo() with password argument';
9
- const CAPTCHA_ERROR_DEFAULT_MESSAGE = 'Captcha required. Call fetchMeetingInfo() with captchaInfo argument';
10
- const ADHOC_MEETING_DEFAULT_ERROR = 'Failed starting the adhoc meeting, Please contact support team ';
11
- const CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];
12
-
13
- /**
14
- * Error to indicate that wbxappapi requires a password
15
- */
16
- export class MeetingInfoV2PasswordError extends Error {
17
- /**
18
- *
19
- * @constructor
20
- * @param {Number} [wbxAppApiErrorCode]
21
- * @param {Object} [meetingInfo]
22
- * @param {String} [message]
23
- */
24
- constructor(wbxAppApiErrorCode, meetingInfo, message = PASSWORD_ERROR_DEFAULT_MESSAGE) {
25
- super(`${message}, code=${wbxAppApiErrorCode}`);
26
- this.name = 'MeetingInfoV2PasswordError';
27
- this.sdkMessage = message;
28
- this.stack = (new Error()).stack;
29
- this.wbxAppApiCode = wbxAppApiErrorCode;
30
- this.meetingInfo = meetingInfo;
31
- }
32
- }
33
-
34
- /**
35
- * Error generating a adhoc space meeting
36
- */
37
- export class MeetingInfoV2AdhocMeetingError extends Error {
38
- /**
39
- *
40
- * @constructor
41
- * @param {Number} [wbxAppApiErrorCode]
42
- * @param {String} [message]
43
- */
44
- constructor(wbxAppApiErrorCode, message = ADHOC_MEETING_DEFAULT_ERROR) {
45
- super(`${message}, code=${wbxAppApiErrorCode}`);
46
- this.name = 'MeetingInfoV2AdhocMeetingError';
47
- this.sdkMessage = message;
48
- this.stack = (new Error()).stack;
49
- this.wbxAppApiCode = wbxAppApiErrorCode;
50
- }
51
- }
52
-
53
-
54
- /**
55
- * Error to indicate that preferred webex site not present to start adhoc meeting
56
- */
57
- export class MeetingInfoV2CaptchaError extends Error {
58
- /**
59
- *
60
- * @constructor
61
- * @param {Number} [wbxAppApiErrorCode]
62
- * @param {Object} [captchaInfo]
63
- * @param {String} [message]
64
- */
65
- constructor(wbxAppApiErrorCode, captchaInfo, message = CAPTCHA_ERROR_DEFAULT_MESSAGE) {
66
- super(`${message}, code=${wbxAppApiErrorCode}`);
67
- this.name = 'MeetingInfoV2PasswordError';
68
- this.sdkMessage = message;
69
- this.stack = (new Error()).stack;
70
- this.wbxAppApiCode = wbxAppApiErrorCode;
71
- this.isPasswordRequired = CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES.includes(wbxAppApiErrorCode);
72
- this.captchaInfo = captchaInfo;
73
- }
74
- }
75
-
76
- /**
77
- * @class MeetingInfo
78
- */
79
- export default class MeetingInfoV2 {
80
- /**
81
- *
82
- * @param {WebexSDK} webex
83
- */
84
- constructor(webex) {
85
- this.webex = webex;
86
- }
87
-
88
- /**
89
- * converts hydra id into conversation url and persons Id
90
- * @param {String} destination one of many different types of destinations to look up info for
91
- * @param {String} [type] to match up with the destination value
92
- * @returns {Promise} destination and type
93
- * @public
94
- * @memberof MeetingInfo
95
- */
96
- fetchInfoOptions(destination, type = null) {
97
- return MeetingInfoUtil.getDestinationType({
98
- destination,
99
- type,
100
- webex: this.webex
101
- });
102
- }
103
-
104
- /**
105
- * Creates adhoc space meetings for a space by fetching the conversation infomation
106
- * @param {String} conversationUrl conversationUrl to start adhoc meeting on
107
- * @returns {Promise} returns a meeting info object
108
- * @public
109
- * @memberof MeetingInfo
110
- */
111
- async createAdhocSpaceMeeting(conversationUrl) {
112
- if (!this.webex.meetings.preferredWebexSite) {
113
- throw Error('No preferred webex site found');
114
- }
115
- const getInvitees = (particpants = []) => {
116
- const invitees = [];
117
-
118
- if (particpants) {
119
- particpants.forEach((participant) => {
120
- invitees.push({
121
- email: participant.emailAddress,
122
- ciUserUuid: participant.entryUUID
123
- });
124
- });
125
- }
126
-
127
- return invitees;
128
- };
129
-
130
- return this.webex.internal.conversation.get(
131
- {url: conversationUrl},
132
- {includeParticipants: true, disableTransform: true}
133
- )
134
- .then((conversation) => {
135
- const body = {
136
- title: conversation.displayName,
137
- spaceUrl: conversation.url,
138
- keyUrl: conversation.encryptionKeyUrl,
139
- kroUrl: conversation.kmsResourceObjectUrl,
140
- invitees: getInvitees(conversation.participants?.items)
141
- };
142
-
143
- const uri = this.webex.meetings.preferredWebexSite ?
144
- `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant` : '';
145
-
146
- Metrics.sendBehavioralMetric(
147
- BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS
148
- );
149
-
150
- return this.webex.request({
151
- method: HTTP_VERBS.POST,
152
- uri,
153
- body
154
- });
155
- })
156
- .catch((err) => {
157
- Metrics.sendBehavioralMetric(
158
- BEHAVIORAL_METRICS.ADHOC_MEETING_FAILURE,
159
- {
160
- reason: err.message,
161
- stack: err.stack
162
- }
163
- );
164
- throw new MeetingInfoV2AdhocMeetingError(err.body?.code, err.body?.message);
165
- });
166
- }
167
-
168
- /**
169
- * Fetches meeting info from the server
170
- * @param {String} destination one of many different types of destinations to look up info for
171
- * @param {String} [type] to match up with the destination value
172
- * @param {String} password
173
- * @param {Object} captchaInfo
174
- * @param {String} captchaInfo.code
175
- * @param {String} captchaInfo.id
176
- * @returns {Promise} returns a meeting info object
177
- * @public
178
- * @memberof MeetingInfo
179
- */
180
- async fetchMeetingInfo(destination, type = null, password = null, captchaInfo = null) {
181
- const destinationType = await MeetingInfoUtil.getDestinationType({
182
- destination,
183
- type,
184
- webex: this.webex
185
- });
186
-
187
- if (destinationType.type === _CONVERSATION_URL_ && this.webex.config.meetings.experimental.enableAdhocMeetings && this.webex.meetings.preferredWebexSite) {
188
- return this.createAdhocSpaceMeeting(destinationType.destination);
189
- }
190
-
191
- const body = await MeetingInfoUtil.getRequestBody({...destinationType, password, captchaInfo});
192
-
193
- const options = {
194
- method: HTTP_VERBS.POST,
195
- body
196
- };
197
-
198
- const directURI = await MeetingInfoUtil.getDirectMeetingInfoURI(destinationType);
199
-
200
- if (directURI) {
201
- options.uri = directURI;
202
- }
203
- else {
204
- options.service = WBXAPPAPI_SERVICE;
205
- options.resource = 'meetingInfo';
206
- }
207
-
208
- return this.webex.request(options)
209
- .then((response) => {
210
- Metrics.sendBehavioralMetric(
211
- BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS
212
- );
213
-
214
- return response;
215
- })
216
- .catch((err) => {
217
- if (err?.statusCode === 403) {
218
- Metrics.sendBehavioralMetric(
219
- BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR,
220
- {
221
- reason: err.message,
222
- stack: err.stack
223
- }
224
- );
225
-
226
- throw new MeetingInfoV2PasswordError(err.body?.code, err.body?.data?.meetingInfo);
227
- }
228
- if (err?.statusCode === 423) {
229
- Metrics.sendBehavioralMetric(
230
- BEHAVIORAL_METRICS.VERIFY_CAPTCHA_ERROR,
231
- {
232
- reason: err.message,
233
- stack: err.stack
234
- }
235
- );
236
-
237
- throw new MeetingInfoV2CaptchaError(err.body?.code, {
238
- captchaId: err.body.captchaID,
239
- verificationImageURL: err.body.verificationImageURL,
240
- verificationAudioURL: err.body.verificationAudioURL,
241
- refreshURL: err.body.refreshURL
242
- });
243
- }
244
-
245
- Metrics.sendBehavioralMetric(
246
- BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE,
247
- {
248
- reason: err.message,
249
- stack: err.stack
250
- }
251
- );
252
- throw err;
253
- });
254
- }
255
- }