@webex/plugin-meetings 3.0.0-beta.4 → 3.0.0-beta.400

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 (629) hide show
  1. package/README.md +58 -8
  2. package/UPGRADING.md +9 -9
  3. package/browsers.js +19 -24
  4. package/dist/annotation/annotation.types.js +7 -0
  5. package/dist/annotation/annotation.types.js.map +1 -0
  6. package/dist/annotation/constants.js +49 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.js +342 -0
  9. package/dist/annotation/index.js.map +1 -0
  10. package/dist/breakouts/breakout.js +216 -0
  11. package/dist/breakouts/breakout.js.map +1 -0
  12. package/dist/breakouts/collection.js +23 -0
  13. package/dist/breakouts/collection.js.map +1 -0
  14. package/dist/breakouts/edit-lock-error.js +52 -0
  15. package/dist/breakouts/edit-lock-error.js.map +1 -0
  16. package/dist/breakouts/events.js +45 -0
  17. package/dist/breakouts/events.js.map +1 -0
  18. package/dist/breakouts/index.js +1048 -0
  19. package/dist/breakouts/index.js.map +1 -0
  20. package/dist/breakouts/request.js +78 -0
  21. package/dist/breakouts/request.js.map +1 -0
  22. package/dist/breakouts/utils.js +67 -0
  23. package/dist/breakouts/utils.js.map +1 -0
  24. package/dist/common/browser-detection.js +1 -20
  25. package/dist/common/browser-detection.js.map +1 -1
  26. package/dist/common/collection.js +5 -20
  27. package/dist/common/collection.js.map +1 -1
  28. package/dist/common/config.js +0 -7
  29. package/dist/common/config.js.map +1 -1
  30. package/dist/common/errors/captcha-error.js +10 -24
  31. package/dist/common/errors/captcha-error.js.map +1 -1
  32. package/dist/common/errors/intent-to-join.js +11 -24
  33. package/dist/common/errors/intent-to-join.js.map +1 -1
  34. package/dist/common/errors/join-meeting.js +12 -25
  35. package/dist/common/errors/join-meeting.js.map +1 -1
  36. package/dist/common/errors/media.js +10 -24
  37. package/dist/common/errors/media.js.map +1 -1
  38. package/dist/common/errors/no-meeting-info.js +51 -0
  39. package/dist/common/errors/no-meeting-info.js.map +1 -0
  40. package/dist/common/errors/parameter.js +5 -33
  41. package/dist/common/errors/parameter.js.map +1 -1
  42. package/dist/common/errors/password-error.js +10 -24
  43. package/dist/common/errors/password-error.js.map +1 -1
  44. package/dist/common/errors/permission.js +9 -23
  45. package/dist/common/errors/permission.js.map +1 -1
  46. package/dist/common/errors/reclaim-host-role-errors.js +158 -0
  47. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  48. package/dist/common/errors/reconnection-in-progress.js +0 -17
  49. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  50. package/dist/common/errors/reconnection.js +10 -24
  51. package/dist/common/errors/reconnection.js.map +1 -1
  52. package/dist/common/errors/stats.js +10 -24
  53. package/dist/common/errors/stats.js.map +1 -1
  54. package/dist/common/errors/webex-errors.js +54 -48
  55. package/dist/common/errors/webex-errors.js.map +1 -1
  56. package/dist/common/errors/webex-meetings-error.js +5 -25
  57. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  58. package/dist/common/events/events-scope.js +0 -22
  59. package/dist/common/events/events-scope.js.map +1 -1
  60. package/dist/common/events/events.js +0 -23
  61. package/dist/common/events/events.js.map +1 -1
  62. package/dist/common/events/trigger-proxy.js +0 -12
  63. package/dist/common/events/trigger-proxy.js.map +1 -1
  64. package/dist/common/events/util.js +0 -15
  65. package/dist/common/events/util.js.map +1 -1
  66. package/dist/common/logs/logger-config.js +0 -4
  67. package/dist/common/logs/logger-config.js.map +1 -1
  68. package/dist/common/logs/logger-proxy.js +1 -8
  69. package/dist/common/logs/logger-proxy.js.map +1 -1
  70. package/dist/common/logs/request.js +41 -60
  71. package/dist/common/logs/request.js.map +1 -1
  72. package/dist/common/queue.js +28 -23
  73. package/dist/common/queue.js.map +1 -1
  74. package/dist/config.js +11 -15
  75. package/dist/config.js.map +1 -1
  76. package/dist/constants.js +347 -74
  77. package/dist/constants.js.map +1 -1
  78. package/dist/controls-options-manager/constants.js +14 -0
  79. package/dist/controls-options-manager/constants.js.map +1 -0
  80. package/dist/controls-options-manager/enums.js +27 -0
  81. package/dist/controls-options-manager/enums.js.map +1 -0
  82. package/dist/controls-options-manager/index.js +297 -0
  83. package/dist/controls-options-manager/index.js.map +1 -0
  84. package/dist/controls-options-manager/types.js +7 -0
  85. package/dist/controls-options-manager/types.js.map +1 -0
  86. package/dist/controls-options-manager/util.js +319 -0
  87. package/dist/controls-options-manager/util.js.map +1 -0
  88. package/dist/index.js +125 -18
  89. package/dist/index.js.map +1 -1
  90. package/dist/interceptors/index.js +15 -0
  91. package/dist/interceptors/index.js.map +1 -0
  92. package/dist/interceptors/locusRetry.js +93 -0
  93. package/dist/interceptors/locusRetry.js.map +1 -0
  94. package/dist/interpretation/collection.js +23 -0
  95. package/dist/interpretation/collection.js.map +1 -0
  96. package/dist/interpretation/index.js +380 -0
  97. package/dist/interpretation/index.js.map +1 -0
  98. package/dist/interpretation/siLanguage.js +25 -0
  99. package/dist/interpretation/siLanguage.js.map +1 -0
  100. package/dist/locus-info/controlsUtils.js +101 -29
  101. package/dist/locus-info/controlsUtils.js.map +1 -1
  102. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  103. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  104. package/dist/locus-info/fullState.js +0 -15
  105. package/dist/locus-info/fullState.js.map +1 -1
  106. package/dist/locus-info/hostUtils.js +4 -12
  107. package/dist/locus-info/hostUtils.js.map +1 -1
  108. package/dist/locus-info/index.js +564 -246
  109. package/dist/locus-info/index.js.map +1 -1
  110. package/dist/locus-info/infoUtils.js +10 -38
  111. package/dist/locus-info/infoUtils.js.map +1 -1
  112. package/dist/locus-info/mediaSharesUtils.js +82 -38
  113. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  114. package/dist/locus-info/parser.js +314 -163
  115. package/dist/locus-info/parser.js.map +1 -1
  116. package/dist/locus-info/selfUtils.js +110 -92
  117. package/dist/locus-info/selfUtils.js.map +1 -1
  118. package/dist/media/index.js +107 -231
  119. package/dist/media/index.js.map +1 -1
  120. package/dist/media/properties.js +137 -222
  121. package/dist/media/properties.js.map +1 -1
  122. package/dist/media/util.js +2 -9
  123. package/dist/media/util.js.map +1 -1
  124. package/dist/mediaQualityMetrics/config.js +316 -501
  125. package/dist/mediaQualityMetrics/config.js.map +1 -1
  126. package/dist/meeting/in-meeting-actions.js +97 -14
  127. package/dist/meeting/in-meeting-actions.js.map +1 -1
  128. package/dist/meeting/index.js +5311 -3871
  129. package/dist/meeting/index.js.map +1 -1
  130. package/dist/meeting/locusMediaRequest.js +292 -0
  131. package/dist/meeting/locusMediaRequest.js.map +1 -0
  132. package/dist/meeting/muteState.js +260 -183
  133. package/dist/meeting/muteState.js.map +1 -1
  134. package/dist/meeting/request.js +421 -347
  135. package/dist/meeting/request.js.map +1 -1
  136. package/dist/meeting/request.type.js +7 -0
  137. package/dist/meeting/request.type.js.map +1 -0
  138. package/dist/meeting/state.js +21 -31
  139. package/dist/meeting/state.js.map +1 -1
  140. package/dist/meeting/util.js +672 -585
  141. package/dist/meeting/util.js.map +1 -1
  142. package/dist/meeting/voicea-meeting.js +172 -0
  143. package/dist/meeting/voicea-meeting.js.map +1 -0
  144. package/dist/meeting-info/collection.js +6 -25
  145. package/dist/meeting-info/collection.js.map +1 -1
  146. package/dist/meeting-info/index.js +87 -39
  147. package/dist/meeting-info/index.js.map +1 -1
  148. package/dist/meeting-info/meeting-info-v2.js +352 -283
  149. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  150. package/dist/meeting-info/request.js +3 -15
  151. package/dist/meeting-info/request.js.map +1 -1
  152. package/dist/meeting-info/util.js +99 -183
  153. package/dist/meeting-info/util.js.map +1 -1
  154. package/dist/meeting-info/utilv2.js +147 -234
  155. package/dist/meeting-info/utilv2.js.map +1 -1
  156. package/dist/meetings/collection.js +43 -19
  157. package/dist/meetings/collection.js.map +1 -1
  158. package/dist/meetings/index.js +895 -600
  159. package/dist/meetings/index.js.map +1 -1
  160. package/dist/meetings/meetings.types.js +7 -0
  161. package/dist/meetings/meetings.types.js.map +1 -0
  162. package/dist/meetings/request.js +26 -41
  163. package/dist/meetings/request.js.map +1 -1
  164. package/dist/meetings/util.js +184 -157
  165. package/dist/meetings/util.js.map +1 -1
  166. package/dist/member/index.js +134 -85
  167. package/dist/member/index.js.map +1 -1
  168. package/dist/member/types.js +25 -0
  169. package/dist/member/types.js.map +1 -0
  170. package/dist/member/util.js +158 -88
  171. package/dist/member/util.js.map +1 -1
  172. package/dist/members/collection.js +13 -12
  173. package/dist/members/collection.js.map +1 -1
  174. package/dist/members/index.js +194 -204
  175. package/dist/members/index.js.map +1 -1
  176. package/dist/members/request.js +113 -68
  177. package/dist/members/request.js.map +1 -1
  178. package/dist/members/types.js +15 -0
  179. package/dist/members/types.js.map +1 -0
  180. package/dist/members/util.js +324 -259
  181. package/dist/members/util.js.map +1 -1
  182. package/dist/metrics/constants.js +19 -7
  183. package/dist/metrics/constants.js.map +1 -1
  184. package/dist/metrics/index.js +11 -558
  185. package/dist/metrics/index.js.map +1 -1
  186. package/dist/multistream/mediaRequestManager.js +263 -50
  187. package/dist/multistream/mediaRequestManager.js.map +1 -1
  188. package/dist/multistream/receiveSlot.js +58 -65
  189. package/dist/multistream/receiveSlot.js.map +1 -1
  190. package/dist/multistream/receiveSlotManager.js +76 -95
  191. package/dist/multistream/receiveSlotManager.js.map +1 -1
  192. package/dist/multistream/remoteMedia.js +62 -76
  193. package/dist/multistream/remoteMedia.js.map +1 -1
  194. package/dist/multistream/remoteMediaGroup.js +82 -45
  195. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  196. package/dist/multistream/remoteMediaManager.js +657 -448
  197. package/dist/multistream/remoteMediaManager.js.map +1 -1
  198. package/dist/multistream/sendSlotManager.js +255 -0
  199. package/dist/multistream/sendSlotManager.js.map +1 -0
  200. package/dist/networkQualityMonitor/index.js +40 -59
  201. package/dist/networkQualityMonitor/index.js.map +1 -1
  202. package/dist/personal-meeting-room/index.js +21 -45
  203. package/dist/personal-meeting-room/index.js.map +1 -1
  204. package/dist/personal-meeting-room/request.js +1 -31
  205. package/dist/personal-meeting-room/request.js.map +1 -1
  206. package/dist/personal-meeting-room/util.js +0 -13
  207. package/dist/personal-meeting-room/util.js.map +1 -1
  208. package/dist/reachability/clusterReachability.js +356 -0
  209. package/dist/reachability/clusterReachability.js.map +1 -0
  210. package/dist/reachability/index.js +297 -460
  211. package/dist/reachability/index.js.map +1 -1
  212. package/dist/reachability/request.js +20 -26
  213. package/dist/reachability/request.js.map +1 -1
  214. package/dist/reachability/util.js +29 -0
  215. package/dist/reachability/util.js.map +1 -0
  216. package/dist/reactions/constants.js +13 -0
  217. package/dist/reactions/constants.js.map +1 -0
  218. package/dist/reactions/reactions.js +109 -0
  219. package/dist/reactions/reactions.js.map +1 -0
  220. package/dist/reactions/reactions.type.js +36 -0
  221. package/dist/reactions/reactions.type.js.map +1 -0
  222. package/dist/reconnection-manager/index.js +413 -483
  223. package/dist/reconnection-manager/index.js.map +1 -1
  224. package/dist/recording-controller/enums.js +17 -0
  225. package/dist/recording-controller/enums.js.map +1 -0
  226. package/dist/recording-controller/index.js +362 -0
  227. package/dist/recording-controller/index.js.map +1 -0
  228. package/dist/recording-controller/util.js +64 -0
  229. package/dist/recording-controller/util.js.map +1 -0
  230. package/dist/roap/index.js +102 -86
  231. package/dist/roap/index.js.map +1 -1
  232. package/dist/roap/request.js +131 -135
  233. package/dist/roap/request.js.map +1 -1
  234. package/dist/roap/turnDiscovery.js +437 -116
  235. package/dist/roap/turnDiscovery.js.map +1 -1
  236. package/dist/rtcMetrics/constants.js +12 -0
  237. package/dist/rtcMetrics/constants.js.map +1 -0
  238. package/dist/rtcMetrics/index.js +179 -0
  239. package/dist/rtcMetrics/index.js.map +1 -0
  240. package/dist/statsAnalyzer/global.js +1 -95
  241. package/dist/statsAnalyzer/global.js.map +1 -1
  242. package/dist/statsAnalyzer/index.js +557 -583
  243. package/dist/statsAnalyzer/index.js.map +1 -1
  244. package/dist/statsAnalyzer/mqaUtil.js +326 -130
  245. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  246. package/dist/transcription/index.js +22 -47
  247. package/dist/transcription/index.js.map +1 -1
  248. package/dist/types/annotation/annotation.types.d.ts +42 -0
  249. package/dist/types/annotation/constants.d.ts +31 -0
  250. package/dist/types/annotation/index.d.ts +117 -0
  251. package/dist/types/breakouts/breakout.d.ts +8 -0
  252. package/dist/types/breakouts/collection.d.ts +5 -0
  253. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  254. package/dist/types/breakouts/events.d.ts +8 -0
  255. package/dist/types/breakouts/index.d.ts +5 -0
  256. package/dist/types/breakouts/request.d.ts +22 -0
  257. package/dist/types/breakouts/utils.d.ts +15 -0
  258. package/dist/types/common/browser-detection.d.ts +9 -0
  259. package/dist/types/common/collection.d.ts +48 -0
  260. package/dist/types/common/config.d.ts +2 -0
  261. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  262. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  263. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  264. package/dist/types/common/errors/media.d.ts +15 -0
  265. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  266. package/dist/types/common/errors/parameter.d.ts +15 -0
  267. package/dist/types/common/errors/password-error.d.ts +15 -0
  268. package/dist/types/common/errors/permission.d.ts +14 -0
  269. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  270. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  271. package/dist/types/common/errors/reconnection.d.ts +15 -0
  272. package/dist/types/common/errors/stats.d.ts +15 -0
  273. package/dist/types/common/errors/webex-errors.d.ts +93 -0
  274. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  275. package/dist/types/common/events/events-scope.d.ts +17 -0
  276. package/dist/types/common/events/events.d.ts +12 -0
  277. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  278. package/dist/types/common/events/util.d.ts +2 -0
  279. package/dist/types/common/logs/logger-config.d.ts +2 -0
  280. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  281. package/dist/types/common/logs/request.d.ts +36 -0
  282. package/dist/types/common/queue.d.ts +34 -0
  283. package/dist/types/config.d.ts +72 -0
  284. package/dist/types/constants.d.ts +1088 -0
  285. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  286. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  287. package/dist/types/controls-options-manager/index.d.ts +136 -0
  288. package/dist/types/controls-options-manager/types.d.ts +43 -0
  289. package/dist/types/controls-options-manager/util.d.ts +1 -0
  290. package/dist/types/index.d.ts +7 -0
  291. package/dist/types/interceptors/index.d.ts +2 -0
  292. package/dist/types/interceptors/locusRetry.d.ts +27 -0
  293. package/dist/types/interpretation/collection.d.ts +5 -0
  294. package/dist/types/interpretation/index.d.ts +5 -0
  295. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  296. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  297. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  298. package/dist/types/locus-info/fullState.d.ts +2 -0
  299. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  300. package/dist/types/locus-info/index.d.ts +322 -0
  301. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  302. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  303. package/dist/types/locus-info/parser.d.ts +272 -0
  304. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  305. package/dist/types/media/index.d.ts +34 -0
  306. package/dist/types/media/properties.d.ts +93 -0
  307. package/dist/types/media/util.d.ts +2 -0
  308. package/dist/types/mediaQualityMetrics/config.d.ts +241 -0
  309. package/dist/types/meeting/in-meeting-actions.d.ts +167 -0
  310. package/dist/types/meeting/index.d.ts +1824 -0
  311. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  312. package/dist/types/meeting/muteState.d.ts +178 -0
  313. package/dist/types/meeting/request.d.ts +293 -0
  314. package/dist/types/meeting/request.type.d.ts +11 -0
  315. package/dist/types/meeting/state.d.ts +9 -0
  316. package/dist/types/meeting/util.d.ts +118 -0
  317. package/dist/types/meeting/voicea-meeting.d.ts +16 -0
  318. package/dist/types/meeting-info/collection.d.ts +20 -0
  319. package/dist/types/meeting-info/index.d.ts +69 -0
  320. package/dist/types/meeting-info/meeting-info-v2.d.ts +123 -0
  321. package/dist/types/meeting-info/request.d.ts +22 -0
  322. package/dist/types/meeting-info/util.d.ts +2 -0
  323. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  324. package/dist/types/meetings/collection.d.ts +40 -0
  325. package/dist/types/meetings/index.d.ts +389 -0
  326. package/dist/types/meetings/meetings.types.d.ts +4 -0
  327. package/dist/types/meetings/request.d.ts +27 -0
  328. package/dist/types/meetings/util.d.ts +18 -0
  329. package/dist/types/member/index.d.ts +160 -0
  330. package/dist/types/member/types.d.ts +32 -0
  331. package/dist/types/member/util.d.ts +2 -0
  332. package/dist/types/members/collection.d.ts +29 -0
  333. package/dist/types/members/index.d.ts +353 -0
  334. package/dist/types/members/request.d.ts +114 -0
  335. package/dist/types/members/types.d.ts +25 -0
  336. package/dist/types/members/util.d.ts +215 -0
  337. package/dist/types/metrics/constants.d.ts +70 -0
  338. package/dist/types/metrics/index.d.ts +45 -0
  339. package/dist/types/multistream/mediaRequestManager.d.ts +120 -0
  340. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  341. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  342. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  343. package/dist/types/multistream/remoteMediaGroup.d.ts +49 -0
  344. package/dist/types/multistream/remoteMediaManager.d.ts +301 -0
  345. package/dist/types/multistream/sendSlotManager.d.ts +70 -0
  346. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  347. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  348. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  349. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  350. package/dist/types/reachability/clusterReachability.d.ts +109 -0
  351. package/dist/types/reachability/index.d.ts +105 -0
  352. package/dist/types/reachability/request.d.ts +39 -0
  353. package/dist/types/reachability/util.d.ts +8 -0
  354. package/dist/types/reactions/constants.d.ts +3 -0
  355. package/dist/types/reactions/reactions.d.ts +4 -0
  356. package/dist/types/reactions/reactions.type.d.ts +52 -0
  357. package/dist/types/reconnection-manager/index.d.ts +136 -0
  358. package/dist/types/recording-controller/enums.d.ts +7 -0
  359. package/dist/types/recording-controller/index.d.ts +207 -0
  360. package/dist/types/recording-controller/util.d.ts +14 -0
  361. package/dist/types/roap/index.d.ts +86 -0
  362. package/dist/types/roap/request.d.ts +39 -0
  363. package/dist/types/roap/turnDiscovery.d.ts +155 -0
  364. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  365. package/dist/types/rtcMetrics/index.d.ts +61 -0
  366. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  367. package/dist/types/statsAnalyzer/index.d.ts +217 -0
  368. package/dist/types/statsAnalyzer/mqaUtil.d.ts +48 -0
  369. package/dist/types/transcription/index.d.ts +64 -0
  370. package/dist/types/webinar/collection.d.ts +16 -0
  371. package/dist/types/webinar/index.d.ts +5 -0
  372. package/dist/webinar/collection.js +44 -0
  373. package/dist/webinar/collection.js.map +1 -0
  374. package/dist/webinar/index.js +69 -0
  375. package/dist/webinar/index.js.map +1 -0
  376. package/internal-README.md +7 -6
  377. package/package.json +30 -21
  378. package/src/annotation/annotation.types.ts +50 -0
  379. package/src/annotation/constants.ts +36 -0
  380. package/src/annotation/index.ts +328 -0
  381. package/src/breakouts/README.md +220 -0
  382. package/src/breakouts/breakout.ts +188 -0
  383. package/src/breakouts/collection.ts +19 -0
  384. package/src/breakouts/edit-lock-error.ts +25 -0
  385. package/src/breakouts/events.ts +56 -0
  386. package/src/breakouts/index.ts +925 -0
  387. package/src/breakouts/request.ts +55 -0
  388. package/src/breakouts/utils.ts +57 -0
  389. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  390. package/src/common/collection.ts +9 -7
  391. package/src/common/{config.js → config.ts} +1 -1
  392. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  393. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  394. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  395. package/src/common/errors/{media.js → media.ts} +11 -7
  396. package/src/common/errors/no-meeting-info.ts +24 -0
  397. package/src/common/errors/parameter.ts +11 -7
  398. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  399. package/src/common/errors/{permission.js → permission.ts} +10 -6
  400. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  401. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  402. package/src/common/errors/{stats.js → stats.ts} +11 -7
  403. package/src/common/errors/{webex-errors.js → webex-errors.ts} +51 -8
  404. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  405. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  406. package/src/common/events/{events.js → events.ts} +5 -1
  407. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  408. package/src/common/events/{util.js → util.ts} +2 -3
  409. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  410. package/src/common/logs/logger-proxy.ts +44 -0
  411. package/src/common/logs/{request.js → request.ts} +26 -9
  412. package/src/common/queue.ts +22 -9
  413. package/src/{config.js → config.ts} +19 -21
  414. package/src/constants.ts +296 -27
  415. package/src/controls-options-manager/constants.ts +5 -0
  416. package/src/controls-options-manager/enums.ts +18 -0
  417. package/src/controls-options-manager/index.ts +278 -0
  418. package/src/controls-options-manager/types.ts +59 -0
  419. package/src/controls-options-manager/util.ts +300 -0
  420. package/src/index.ts +45 -0
  421. package/src/interceptors/index.ts +3 -0
  422. package/src/interceptors/locusRetry.ts +67 -0
  423. package/src/interpretation/README.md +60 -0
  424. package/src/interpretation/collection.ts +19 -0
  425. package/src/interpretation/index.ts +349 -0
  426. package/src/interpretation/siLanguage.ts +18 -0
  427. package/src/locus-info/controlsUtils.ts +222 -0
  428. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  429. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  430. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  431. package/src/locus-info/{index.js → index.ts} +561 -119
  432. package/src/locus-info/{infoUtils.js → infoUtils.ts} +29 -10
  433. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +97 -17
  434. package/src/locus-info/{parser.js → parser.ts} +303 -104
  435. package/src/locus-info/{selfUtils.js → selfUtils.ts} +199 -68
  436. package/src/media/index.ts +460 -0
  437. package/src/media/properties.ts +283 -0
  438. package/src/media/{util.js → util.ts} +2 -2
  439. package/src/mediaQualityMetrics/config.ts +249 -0
  440. package/src/meeting/in-meeting-actions.ts +199 -3
  441. package/src/meeting/index.ts +8494 -0
  442. package/src/meeting/locusMediaRequest.ts +313 -0
  443. package/src/meeting/muteState.ts +465 -0
  444. package/src/meeting/request.ts +912 -0
  445. package/src/meeting/request.type.ts +13 -0
  446. package/src/meeting/{state.js → state.ts} +50 -35
  447. package/src/meeting/util.ts +799 -0
  448. package/src/meeting/voicea-meeting.ts +122 -0
  449. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  450. package/src/meeting-info/index.ts +210 -0
  451. package/src/meeting-info/meeting-info-v2.ts +423 -0
  452. package/src/meeting-info/{request.js → request.ts} +14 -4
  453. package/src/meeting-info/{util.js → util.ts} +70 -58
  454. package/src/meeting-info/{utilv2.js → utilv2.ts} +99 -82
  455. package/src/meetings/collection.ts +76 -0
  456. package/src/meetings/index.ts +1539 -0
  457. package/src/meetings/meetings.types.ts +12 -0
  458. package/src/meetings/{request.js → request.ts} +34 -25
  459. package/src/meetings/{util.js → util.ts} +133 -38
  460. package/src/member/{index.js → index.ts} +159 -56
  461. package/src/member/types.ts +38 -0
  462. package/src/member/util.ts +397 -0
  463. package/src/members/{collection.js → collection.ts} +10 -2
  464. package/src/members/{index.js → index.ts} +351 -146
  465. package/src/members/request.ts +255 -0
  466. package/src/members/types.ts +29 -0
  467. package/src/members/util.ts +353 -0
  468. package/src/metrics/{constants.js → constants.ts} +17 -6
  469. package/src/metrics/index.ts +73 -0
  470. package/src/multistream/mediaRequestManager.ts +341 -64
  471. package/src/multistream/receiveSlot.ts +69 -26
  472. package/src/multistream/receiveSlotManager.ts +66 -42
  473. package/src/multistream/remoteMedia.ts +40 -5
  474. package/src/multistream/remoteMediaGroup.ts +82 -3
  475. package/src/multistream/remoteMediaManager.ts +401 -81
  476. package/src/multistream/sendSlotManager.ts +199 -0
  477. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  478. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  479. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  480. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  481. package/src/reachability/clusterReachability.ts +320 -0
  482. package/src/reachability/index.ts +371 -0
  483. package/src/reachability/request.ts +50 -35
  484. package/src/reachability/util.ts +24 -0
  485. package/src/reactions/constants.ts +4 -0
  486. package/src/reactions/reactions.ts +104 -0
  487. package/src/reactions/reactions.type.ts +62 -0
  488. package/src/reconnection-manager/index.ts +643 -0
  489. package/src/recording-controller/enums.ts +8 -0
  490. package/src/recording-controller/index.ts +332 -0
  491. package/src/recording-controller/util.ts +75 -0
  492. package/src/roap/index.ts +288 -0
  493. package/src/roap/request.ts +153 -0
  494. package/src/roap/turnDiscovery.ts +374 -70
  495. package/src/rtcMetrics/constants.ts +3 -0
  496. package/src/rtcMetrics/index.ts +166 -0
  497. package/src/statsAnalyzer/global.ts +37 -0
  498. package/src/statsAnalyzer/index.ts +1275 -0
  499. package/src/statsAnalyzer/mqaUtil.ts +440 -0
  500. package/src/transcription/{index.js → index.ts} +46 -39
  501. package/src/webinar/collection.ts +31 -0
  502. package/src/webinar/index.ts +62 -0
  503. package/test/integration/spec/converged-space-meetings.js +233 -0
  504. package/test/integration/spec/journey.js +791 -531
  505. package/test/integration/spec/space-meeting.js +391 -204
  506. package/test/integration/spec/transcription.js +7 -8
  507. package/test/unit/spec/annotation/index.ts +418 -0
  508. package/test/unit/spec/breakouts/breakout.ts +238 -0
  509. package/test/unit/spec/breakouts/collection.ts +15 -0
  510. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  511. package/test/unit/spec/breakouts/events.ts +89 -0
  512. package/test/unit/spec/breakouts/index.ts +1793 -0
  513. package/test/unit/spec/breakouts/request.ts +104 -0
  514. package/test/unit/spec/breakouts/utils.js +72 -0
  515. package/test/unit/spec/common/browser-detection.js +9 -28
  516. package/test/unit/spec/common/queue.js +31 -2
  517. package/test/unit/spec/controls-options-manager/index.js +287 -0
  518. package/test/unit/spec/controls-options-manager/util.js +582 -0
  519. package/test/unit/spec/fixture/locus.js +93 -90
  520. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  521. package/test/unit/spec/interpretation/collection.ts +15 -0
  522. package/test/unit/spec/interpretation/index.ts +625 -0
  523. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  524. package/test/unit/spec/locus-info/controlsUtils.js +325 -32
  525. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  526. package/test/unit/spec/locus-info/index.js +1458 -21
  527. package/test/unit/spec/locus-info/infoUtils.js +71 -40
  528. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  529. package/test/unit/spec/locus-info/lib/SeqCmp.json +529 -685
  530. package/test/unit/spec/locus-info/mediaSharesUtils.ts +41 -0
  531. package/test/unit/spec/locus-info/parser.js +119 -44
  532. package/test/unit/spec/locus-info/selfConstant.js +120 -103
  533. package/test/unit/spec/locus-info/selfUtils.js +291 -12
  534. package/test/unit/spec/media/index.ts +194 -111
  535. package/test/unit/spec/media/properties.ts +11 -11
  536. package/test/unit/spec/meeting/in-meeting-actions.ts +96 -3
  537. package/test/unit/spec/meeting/index.js +8616 -1921
  538. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  539. package/test/unit/spec/meeting/muteState.js +568 -207
  540. package/test/unit/spec/meeting/request.js +602 -82
  541. package/test/unit/spec/meeting/utils.js +867 -179
  542. package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
  543. package/test/unit/spec/meeting-info/index.js +300 -0
  544. package/test/unit/spec/meeting-info/meetinginfov2.js +631 -78
  545. package/test/unit/spec/meeting-info/request.js +7 -9
  546. package/test/unit/spec/meeting-info/util.js +11 -12
  547. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  548. package/test/unit/spec/meetings/collection.js +27 -1
  549. package/test/unit/spec/meetings/index.js +1826 -374
  550. package/test/unit/spec/meetings/utils.js +243 -14
  551. package/test/unit/spec/member/index.js +61 -7
  552. package/test/unit/spec/member/util.js +526 -26
  553. package/test/unit/spec/members/index.js +536 -55
  554. package/test/unit/spec/members/request.js +228 -40
  555. package/test/unit/spec/members/utils.js +217 -4
  556. package/test/unit/spec/metrics/index.js +13 -68
  557. package/test/unit/spec/multistream/mediaRequestManager.ts +1032 -110
  558. package/test/unit/spec/multistream/receiveSlot.ts +77 -18
  559. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  560. package/test/unit/spec/multistream/remoteMedia.ts +40 -2
  561. package/test/unit/spec/multistream/remoteMediaGroup.ts +350 -5
  562. package/test/unit/spec/multistream/remoteMediaManager.ts +937 -65
  563. package/test/unit/spec/multistream/sendSlotManager.ts +274 -0
  564. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  565. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  566. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  567. package/test/unit/spec/reachability/index.ts +606 -26
  568. package/test/unit/spec/reachability/request.js +68 -0
  569. package/test/unit/spec/reachability/util.ts +40 -0
  570. package/test/unit/spec/reconnection-manager/index.js +222 -34
  571. package/test/unit/spec/recording-controller/index.js +306 -0
  572. package/test/unit/spec/recording-controller/util.js +229 -0
  573. package/test/unit/spec/roap/index.ts +238 -82
  574. package/test/unit/spec/roap/request.ts +255 -0
  575. package/test/unit/spec/roap/turnDiscovery.ts +707 -110
  576. package/test/unit/spec/rtcMetrics/index.ts +122 -0
  577. package/test/unit/spec/stats-analyzer/index.js +1331 -62
  578. package/test/unit/spec/webinar/collection.ts +13 -0
  579. package/test/unit/spec/webinar/index.ts +60 -0
  580. package/test/utils/cmr.js +44 -42
  581. package/test/utils/constants.js +9 -0
  582. package/test/utils/integrationTestUtils.js +46 -0
  583. package/test/utils/testUtils.js +63 -99
  584. package/test/utils/webex-config.js +22 -18
  585. package/test/utils/webex-test-users.js +65 -50
  586. package/tsconfig.json +6 -0
  587. package/dist/media/internal-media-core-wrapper.js +0 -22
  588. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  589. package/dist/meeting/effectsState.js +0 -327
  590. package/dist/meeting/effectsState.js.map +0 -1
  591. package/dist/metrics/config.js +0 -301
  592. package/dist/metrics/config.js.map +0 -1
  593. package/dist/multistream/multistreamMedia.js +0 -116
  594. package/dist/multistream/multistreamMedia.js.map +0 -1
  595. package/dist/peer-connection-manager/util.js +0 -124
  596. package/dist/peer-connection-manager/util.js.map +0 -1
  597. package/src/common/logs/logger-proxy.js +0 -33
  598. package/src/index.js +0 -15
  599. package/src/locus-info/controlsUtils.js +0 -102
  600. package/src/media/index.js +0 -459
  601. package/src/media/internal-media-core-wrapper.ts +0 -9
  602. package/src/media/properties.js +0 -289
  603. package/src/mediaQualityMetrics/config.js +0 -382
  604. package/src/meeting/effectsState.js +0 -205
  605. package/src/meeting/index.js +0 -6284
  606. package/src/meeting/muteState.js +0 -318
  607. package/src/meeting/request.js +0 -684
  608. package/src/meeting/util.js +0 -506
  609. package/src/meeting-info/index.js +0 -131
  610. package/src/meeting-info/meeting-info-v2.js +0 -255
  611. package/src/meetings/collection.js +0 -40
  612. package/src/meetings/index.js +0 -1015
  613. package/src/member/util.js +0 -254
  614. package/src/members/request.js +0 -131
  615. package/src/members/util.js +0 -258
  616. package/src/metrics/config.js +0 -324
  617. package/src/metrics/index.js +0 -530
  618. package/src/multistream/multistreamMedia.ts +0 -92
  619. package/src/peer-connection-manager/util.ts +0 -117
  620. package/src/reachability/index.js +0 -464
  621. package/src/reconnection-manager/index.js +0 -519
  622. package/src/roap/index.js +0 -220
  623. package/src/roap/request.js +0 -127
  624. package/src/statsAnalyzer/global.js +0 -133
  625. package/src/statsAnalyzer/index.js +0 -1006
  626. package/src/statsAnalyzer/mqaUtil.js +0 -173
  627. package/test/unit/spec/meeting/effectsState.js +0 -291
  628. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  629. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -1,684 +0,0 @@
1
- import uuid from 'uuid';
2
- import {debounce} from 'lodash';
3
- import {StatelessWebexPlugin} from '@webex/webex-core';
4
- import {deviceType} from '@webex/common';
5
-
6
- import LoggerProxy from '../common/logs/logger-proxy';
7
- import {
8
- ALERT,
9
- ALTERNATE_REDIRECT_TRUE,
10
- CALL,
11
- CONTROLS,
12
- DECLINE,
13
- END,
14
- FLOOR_ACTION,
15
- HTTP_VERBS,
16
- LEAVE,
17
- LOCI,
18
- LOCUS,
19
- MEDIA,
20
- PARTICIPANT,
21
- PROVISIONAL_TYPE_DIAL_IN,
22
- PROVISIONAL_TYPE_DIAL_OUT,
23
- SEND_DTMF_ENDPOINT,
24
- _SLIDES_
25
- } from '../constants';
26
-
27
- /**
28
- * @class MeetingRequest
29
- */
30
- export default class MeetingRequest extends StatelessWebexPlugin {
31
- constructor(attrs, options) {
32
- super(attrs, options);
33
- this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {leading: true, trailing: true});
34
- }
35
-
36
- /**
37
- * Make a network request to join a meeting
38
- * @param {Object} options
39
- * @param {String} options.sipUri
40
- * @param {String} options.deviceUrl
41
- * @param {String} options.locusUrl
42
- * @param {String} options.resourceId,
43
- * @param {String} options.correlationId
44
- * @param {boolean} options.ensureConversation
45
- * @param {boolean} options.moderator
46
- * @param {boolean} options.pin
47
- * @param {boolean} options.moveToResource
48
- * @param {Object} options.roapMessage
49
- * @returns {Promise}
50
- */
51
- async joinMeeting(options) {
52
- const {
53
- asResourceOccupant,
54
- inviteeAddress,
55
- meetingNumber,
56
- permissionToken,
57
- deviceUrl,
58
- locusUrl,
59
- resourceId,
60
- correlationId,
61
- ensureConversation,
62
- moderator,
63
- pin,
64
- moveToResource,
65
- roapMessage,
66
- preferTranscoding
67
- } = options;
68
-
69
- LoggerProxy.logger.info(
70
- 'Meeting:request#joinMeeting --> Joining a meeting',
71
- correlationId
72
- );
73
-
74
- let url = '';
75
-
76
- const body = {
77
- asResourceOccupant,
78
- device: {
79
- url: deviceUrl,
80
- deviceType: this.config.meetings.deviceType
81
- },
82
- usingResource: resourceId || null,
83
- moveMediaToResource: resourceId && moveToResource || false,
84
- correlationId,
85
- respOnlySdp: true,
86
- allowMultiDevice: true,
87
- ensureConversation: ensureConversation || false,
88
- supportsNativeLobby: 1,
89
- clientMediaPreferences: {
90
- preferTranscoding: preferTranscoding ?? true
91
- }
92
- };
93
-
94
- if (this.webex.meetings.clientRegion) {
95
- body.device.countryCode = this.webex.meetings.clientRegion.countryCode;
96
- body.device.regionCode = this.webex.meetings.clientRegion.regionCode;
97
- }
98
-
99
- if (moderator !== undefined) {
100
- body.moderator = moderator;
101
- }
102
-
103
- if (permissionToken) {
104
- body.permissionToken = permissionToken;
105
- }
106
-
107
- if (pin !== undefined) {
108
- body.pin = pin;
109
- }
110
-
111
- if (locusUrl) {
112
- url = `${locusUrl}/${PARTICIPANT}`;
113
- }
114
- else if (inviteeAddress || meetingNumber) {
115
- try {
116
- await this.webex.internal.services.waitForCatalog('postauth');
117
- url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;
118
- body.invitee = {
119
- address: inviteeAddress || `wbxmn:${meetingNumber}`
120
- };
121
- }
122
- catch (e) {
123
- LoggerProxy.logger.error(`Meeting:request#joinMeeting Error Joining ${inviteeAddress || meetingNumber} --> ${e}`);
124
- throw (e);
125
- }
126
- }
127
-
128
-
129
- // TODO: -- this will be resolved in SDK request
130
- url = url.concat(`?${ALTERNATE_REDIRECT_TRUE}`);
131
-
132
- if (resourceId === inviteeAddress) {
133
- body.callPreferences = {
134
- requestedMedia: [_SLIDES_]
135
- };
136
- }
137
-
138
- if (roapMessage) {
139
- body.localMedias = roapMessage.localMedias;
140
- }
141
-
142
- return this.request({
143
- method: HTTP_VERBS.POST,
144
- uri: url,
145
- body
146
- });
147
- }
148
-
149
- /**
150
- * Send a request to refresh the captcha
151
- * @param {Object} options
152
- * @param {String} options.captchaRefreshUrl
153
- * @param {String} options.captchaId
154
- * @returns {Promise}
155
- * @private
156
- */
157
- refreshCaptcha({
158
- captchaRefreshUrl,
159
- captchaId
160
- }) {
161
- const body = {
162
- captchaId
163
- };
164
-
165
- return this.request({
166
- method: HTTP_VERBS.POST,
167
- uri: captchaRefreshUrl,
168
- body
169
- }).catch((err) => {
170
- LoggerProxy.logger.error(`Meeting:request#refreshCaptcha --> Error: ${err}`);
171
-
172
- throw err;
173
- });
174
- }
175
-
176
- /**
177
- * Make a network request to add a dial in device
178
- * @param {Object} options
179
- * @param {String} options.correlationId
180
- * @param {String} options.localUrl url for the meeting
181
- * @param {String} options.dialInUrl identifier for the to-be provisioned device
182
- * @param {String} options.clientUrl identifier for the web device
183
- * @returns {Promise}
184
- * @private
185
- */
186
- dialIn({
187
- locusUrl,
188
- dialInUrl,
189
- clientUrl,
190
- correlationId
191
- }) {
192
- LoggerProxy.logger.info(
193
- 'Meeting:request#dialIn --> Provisioning a dial in device',
194
- correlationId
195
- );
196
- const uri = `${locusUrl}/${PARTICIPANT}`;
197
-
198
- const body = {
199
- device: {
200
- deviceType: deviceType.PROVISIONAL,
201
- provisionalType: PROVISIONAL_TYPE_DIAL_IN,
202
- url: dialInUrl,
203
- clientUrl
204
- },
205
- correlationId
206
- };
207
-
208
- return this.request({
209
- method: HTTP_VERBS.POST,
210
- uri,
211
- body
212
- }).catch((err) => {
213
- LoggerProxy.logger.error(`Meeting:request#dialIn --> Error provisioning a dial in device, error ${err}`);
214
-
215
- throw err;
216
- });
217
- }
218
-
219
- /**
220
- * Make a network request to add a dial out device
221
- * @param {Object} options
222
- * @param {String} options.correlationId
223
- * @param {String} options.localUrl url for the meeting
224
- * @param {String} options.dialOutUrl identifier for the to-be provisioned device
225
- * @param {String} options.phoneNumber phone number to dial out to
226
- * @param {String} options.clientUrl identifier for the web device
227
- * @returns {Promise}
228
- * @private
229
- */
230
- dialOut({
231
- locusUrl,
232
- dialOutUrl,
233
- phoneNumber,
234
- clientUrl,
235
- correlationId
236
- }) {
237
- LoggerProxy.logger.info(
238
- 'Meeting:request#dialOut --> Provisioning a dial out device',
239
- correlationId
240
- );
241
- const uri = `${locusUrl}/${PARTICIPANT}`;
242
-
243
- const body = {
244
- device: {
245
- deviceType: deviceType.PROVISIONAL,
246
- provisionalType: PROVISIONAL_TYPE_DIAL_OUT,
247
- url: dialOutUrl,
248
- dialoutAddress: phoneNumber,
249
- clientUrl
250
- },
251
- correlationId
252
- };
253
-
254
- return this.request({
255
- method: HTTP_VERBS.POST,
256
- uri,
257
- body
258
- }).catch((err) => {
259
- LoggerProxy.logger.error(`Meeting:request#dialOut --> Error provisioning a dial out device, error ${err}`);
260
-
261
- throw err;
262
- });
263
- }
264
-
265
- /**
266
- * Syns the missed delta event
267
- * @param {Object} options
268
- * @param {boolen} options.desync flag to get partial or whole locus object
269
- * @param {String} options.syncUrl sync url to get ht elatest locus delta
270
- * @returns {Promise}
271
- */
272
- syncMeeting(options) {
273
- /* eslint-disable no-else-return */
274
- const {desync} = options;
275
- let {syncUrl} = options;
276
-
277
- /* istanbul ignore else */
278
- if (desync) {
279
- // check for existing URL parameters
280
- syncUrl = syncUrl.concat(syncUrl.split('?')[1] ? '&' : '?').concat(`${LOCUS.SYNCDEBUG}=${desync}`);
281
- }
282
-
283
- return this.request({
284
- method: HTTP_VERBS.GET,
285
- uri: syncUrl
286
- }) // TODO: Handle if delta sync failed . Get the full locus object
287
- .catch((err) => {
288
- LoggerProxy.logger.error(`Meeting:request#syncMeeting --> Error syncing meeting, error ${err}`);
289
-
290
- return err;
291
- });
292
- }
293
-
294
- /**
295
- * Request to get the complete locus object
296
- * @param {Object} options
297
- * @param {boolen} options.desync flag to get partial or whole locus object
298
- * @param {String} options.locusUrl sync url to get ht elatest locus delta
299
- * @returns {Promise}
300
- */
301
- getFullLocus(options) {
302
- let {locusUrl} = options;
303
- const {desync} = options;
304
-
305
- if (locusUrl) {
306
- if (desync) {
307
- locusUrl += `?${LOCUS.SYNCDEBUG}=${desync}`;
308
- }
309
-
310
- return this.request({
311
- method: HTTP_VERBS.GET,
312
- uri: locusUrl
313
- }).catch((err) => {
314
- LoggerProxy.logger.error(`Meeting:request#getFullLocus --> Error getting full locus, error ${err}`);
315
-
316
- return err;
317
- });
318
- }
319
-
320
- return Promise.reject();
321
- }
322
-
323
- /**
324
- * Make a network request to make a provisioned phone leave the meeting
325
- * @param {Object} options
326
- * @param {String} options.locusUrl
327
- * @param {String} options.phoneUrl
328
- * @param {String} options.correlationId
329
- * @param {String} options.selfId
330
- * @returns {Promise}
331
- * @private
332
- */
333
- disconnectPhoneAudio({
334
- locusUrl,
335
- phoneUrl,
336
- correlationId,
337
- selfId
338
- }) {
339
- LoggerProxy.logger.info(
340
- `Meeting:request#disconnectPhoneAudio --> request phone ${phoneUrl} to leave`,
341
- correlationId
342
- );
343
- const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;
344
-
345
- const body = {
346
- device: {
347
- deviceType: deviceType.PROVISIONAL,
348
- url: phoneUrl
349
- },
350
- correlationId
351
- };
352
-
353
- return this.request({
354
- method: HTTP_VERBS.PUT,
355
- uri,
356
- body
357
- }).catch((err) => {
358
- LoggerProxy.logger.error(
359
- `Meeting:request#disconnectPhoneAudio --> Error when requesting phone ${phoneUrl} to leave, error ${err}`
360
- );
361
-
362
- throw err;
363
- });
364
- }
365
-
366
- /**
367
- * Make a network request to leave a meeting
368
- * @param {Object} options
369
- * @param {Url} options.locusUrl
370
- * @param {String} options.selfId
371
- * @param {Url} options.deviceUrl
372
- * @param {String} options.resourceId,
373
- * @param {String} options.correlationId
374
- * @returns {Promise}
375
- */
376
- leaveMeeting({
377
- locusUrl,
378
- selfId,
379
- deviceUrl: url,
380
- resourceId,
381
- correlationId
382
- }) {
383
- LoggerProxy.logger.info(
384
- 'Meeting:request#leaveMeeting --> Leaving a meeting',
385
- correlationId
386
- );
387
-
388
- const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;
389
- const body = {
390
- device: {
391
- deviceType: this.config.meetings.deviceType,
392
- url
393
- },
394
- usingResource: resourceId || null,
395
- correlationId
396
- };
397
-
398
- return this.request({
399
- method: HTTP_VERBS.PUT,
400
- uri,
401
- body
402
- });
403
- }
404
-
405
- /**
406
- * Make a network request to acknowledge a meeting
407
- * @param {Object} options
408
- * @param {String} options.locusUrl
409
- * @param {String} options.deviceUrl
410
- * @param {String} options.correlationId
411
- * @returns {Promise}
412
- */
413
- acknowledgeMeeting(options) {
414
- const uri = `${options.locusUrl}/${PARTICIPANT}/${ALERT}`;
415
- const body = {
416
- device: {
417
- deviceType: this.config.meetings.deviceType,
418
- url: options.deviceUrl
419
- },
420
- correlationId: options.correlationId
421
- };
422
-
423
- return this.request({
424
- method: HTTP_VERBS.PUT,
425
- uri,
426
- body
427
- });
428
- }
429
-
430
- /**
431
- * Make a network request to acknowledge a meeting
432
- * @param {Object} options
433
- * @param {String} options.locusUrl
434
- * @param {String} options.deviceUrl
435
- * @param {String} options.id
436
- * @returns {Promise}
437
- */
438
- recordMeeting(options) {
439
- const uri = `${options.locusUrl}/${CONTROLS}`;
440
- const body = {
441
- record: {
442
- recording: options.recording,
443
- paused: options.paused
444
- }
445
- };
446
-
447
- return this.request({
448
- method: HTTP_VERBS.PATCH,
449
- uri,
450
- body
451
- });
452
- }
453
-
454
- lockMeeting(options) {
455
- const uri = `${options.locusUrl}/${CONTROLS}`;
456
- const body = {
457
- lock: {
458
- locked: options.lock
459
- }
460
- };
461
-
462
- return this.request({
463
- method: HTTP_VERBS.PATCH,
464
- uri,
465
- body
466
- });
467
- }
468
-
469
- /**
470
- * Make a network request to decline a meeting
471
- * @param {Object} options
472
- * @param {String} options.locusUrl
473
- * @param {String} options.deviceUrl
474
- * @param {String} options.reason
475
- * @returns {Promise}
476
- */
477
- declineMeeting(options) {
478
- const uri = `${options.locusUrl}/${PARTICIPANT}/${DECLINE}`;
479
- const body = {
480
- device: {
481
- deviceType: this.config.meetings.deviceType,
482
- url: options.deviceUrl
483
- },
484
- ...(options.reason && {reason: options.reason})
485
- };
486
-
487
- return this.request({
488
- method: HTTP_VERBS.PUT,
489
- uri,
490
- body
491
- });
492
- }
493
-
494
- /**
495
- * Toggle remote audio and/or video
496
- * @param {Object} options options for toggling
497
- * @param {String} options.selfId Locus self id??
498
- * @param {String} options.locusUrl Locus url
499
- * @param {String} options.deviceUrl Url of a device
500
- * @param {String} options.resourceId Populated if you are paired to a device
501
- * @param {String} options.localMedias local sdps
502
- * @param {Boolean} options.preferTranscoding false for multistream (Homer), true for transcoded media (Edonus)
503
- * @returns {Promise}
504
- */
505
- remoteAudioVideoToggle(options) {
506
- const uri = `${options.locusUrl}/${PARTICIPANT}/${options.selfId}/${MEDIA}`;
507
- const body = {
508
- device: {
509
- deviceType: this.config.meetings.deviceType,
510
- url: options.deviceUrl
511
- },
512
- usingResource: options.resourceId || null,
513
- correlationId: options.correlationId,
514
- respOnlySdp: true,
515
- localMedias: options.localMedias,
516
- clientMediaPreferences: {
517
- preferTranscoding: options.preferTranscoding ?? true
518
- }
519
- };
520
-
521
- return this.request({
522
- method: HTTP_VERBS.PUT,
523
- uri,
524
- body
525
- });
526
- }
527
-
528
- /**
529
- * change the content floor grant
530
- * @param {Object} options options for floor grant
531
- * @param {String} options.disposition floor action (granted/released)
532
- * @param {String} options.personUrl personUrl who is requesting floor
533
- * @param {String} options.deviceUrl Url of a device
534
- * @param {String} options.resourceId Populated if you are paired to a device
535
- * @param {String} options.uri floor grant uri
536
- * @returns {Promise}
537
- */
538
- changeMeetingFloor(options) {
539
- let floorReq = {disposition: options.disposition};
540
-
541
- /* istanbul ignore else */
542
- if (options.disposition === FLOOR_ACTION.GRANTED) {
543
- floorReq = {
544
- beneficiary: {
545
- url: options.personUrl,
546
- devices: [
547
- {
548
- deviceType: this.config.meetings.deviceType,
549
- url: options.deviceUrl
550
- }
551
- ]
552
- },
553
- disposition: options.disposition,
554
- requester: {
555
- url: options.personUrl
556
- }
557
- };
558
- }
559
-
560
- const body = {
561
- floor: floorReq,
562
- resourceUrl: options.resourceUrl
563
- };
564
-
565
- if (options?.resourceToken) {
566
- body.resourceToken = options?.resourceToken;
567
- }
568
-
569
- return this.request({
570
- uri: options.uri,
571
- method: HTTP_VERBS.PUT,
572
- body
573
- });
574
- }
575
-
576
- /**
577
- * Sends a request to the DTMF endpoint to send tones
578
- * @param {Object} options
579
- * @param {String} options.locusUrl
580
- * @param {String} options.deviceUrl
581
- * @param {String} options.tones a string of one or more DTMF tones to send
582
- * @returns {Promise}
583
- */
584
- sendDTMF({locusUrl, deviceUrl, tones}) {
585
- return this.request({
586
- method: HTTP_VERBS.POST,
587
- uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,
588
- body: {
589
- deviceUrl,
590
- dtmf: {
591
- correlationId: uuid.v4(),
592
- tones
593
- }
594
- }
595
- });
596
- }
597
-
598
- /**
599
- * Sends a request to the controls endpoint to set the video layout
600
- * @param {Object} options
601
- * @param {String} options.locusUrl
602
- * @param {String} options.deviceUrl
603
- * @param {String} options.layoutType a layout type that should be available in meeting constants {@link #layout_types}
604
- * @param {Object} options.main preferred dimensions for the remote main video stream
605
- * @param {Number} options.main.width preferred width of main video stream
606
- * @param {Number} options.main.height preferred height of main video stream
607
- * @param {Object} options.content preferred dimensions for the remote content share stream
608
- * @param {Number} options.content.width preferred width of content share stream
609
- * @param {Number} options.content.height preferred height of content share stream
610
- * @returns {Promise}
611
- */
612
- changeVideoLayout({
613
- locusUrl,
614
- deviceUrl,
615
- layoutType,
616
- main,
617
- content
618
- }) {
619
- // send main/content renderInfo only if both width and height are specified
620
- if (main && (!main.width || !main.height)) {
621
- return Promise.reject(new Error(`Both width and height must be specified. One of them is missing for main: ${JSON.stringify(main)}`));
622
- }
623
-
624
- if (content && (!content.width || !content.height)) {
625
- return Promise.reject(new Error(`Both width and height must be specified. One of them is missing for content: ${JSON.stringify(content)}`));
626
- }
627
-
628
- const renderInfoMain = (main) ? {width: main.width, height: main.height} : undefined;
629
- const renderInfoContent = (content) ? {width: content.width, height: content.height} : undefined;
630
-
631
- const layoutParams = (renderInfoMain || renderInfoContent) ?
632
- {
633
- renderInfo:
634
- {
635
- main: renderInfoMain,
636
- content: renderInfoContent
637
- }
638
- } : undefined;
639
-
640
- return this.request({
641
- method: HTTP_VERBS.PUT,
642
- uri: `${locusUrl}/${CONTROLS}`,
643
- body: {
644
- layout: {
645
- deviceUrl,
646
- type: layoutType,
647
- layoutParams
648
- }
649
- }
650
- });
651
- }
652
-
653
- /**
654
- * Make a network request to end meeting for all
655
- * @param {Object} options
656
- * @param {Url} options.locusUrl
657
- * @returns {Promise}
658
- */
659
- endMeetingForAll({
660
- locusUrl,
661
- }) {
662
- const uri = `${locusUrl}/${END}`;
663
-
664
- return this.request({
665
- method: HTTP_VERBS.POST,
666
- uri
667
- });
668
- }
669
-
670
- /**
671
- * Send a locus keepAlive (used in lobby)
672
- * @param {Object} options
673
- * @param {Url} options.keepAliveUrl
674
- * @returns {Promise}
675
- */
676
- keepAlive({
677
- keepAliveUrl,
678
- }) {
679
- return this.request({
680
- method: HTTP_VERBS.GET,
681
- uri: keepAliveUrl
682
- });
683
- }
684
- }