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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (535) hide show
  1. package/README.md +46 -8
  2. package/dist/annotation/annotation.types.d.ts +42 -0
  3. package/dist/annotation/annotation.types.js +7 -0
  4. package/dist/annotation/annotation.types.js.map +1 -0
  5. package/dist/annotation/constants.d.ts +31 -0
  6. package/dist/annotation/constants.js +41 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.d.ts +117 -0
  9. package/dist/annotation/index.js +357 -0
  10. package/dist/annotation/index.js.map +1 -0
  11. package/dist/breakouts/breakout.d.ts +8 -0
  12. package/dist/breakouts/breakout.js +215 -0
  13. package/dist/breakouts/breakout.js.map +1 -0
  14. package/dist/breakouts/collection.d.ts +5 -0
  15. package/dist/breakouts/collection.js +22 -0
  16. package/dist/breakouts/collection.js.map +1 -0
  17. package/dist/breakouts/edit-lock-error.d.ts +15 -0
  18. package/dist/breakouts/edit-lock-error.js +51 -0
  19. package/dist/breakouts/edit-lock-error.js.map +1 -0
  20. package/dist/breakouts/events.d.ts +8 -0
  21. package/dist/breakouts/events.js +44 -0
  22. package/dist/breakouts/events.js.map +1 -0
  23. package/dist/breakouts/index.d.ts +5 -0
  24. package/dist/breakouts/index.js +1047 -0
  25. package/dist/breakouts/index.js.map +1 -0
  26. package/dist/breakouts/request.d.ts +22 -0
  27. package/dist/breakouts/request.js +77 -0
  28. package/dist/breakouts/request.js.map +1 -0
  29. package/dist/breakouts/utils.d.ts +15 -0
  30. package/dist/breakouts/utils.js +64 -0
  31. package/dist/breakouts/utils.js.map +1 -0
  32. package/dist/common/browser-detection.js +2 -3
  33. package/dist/common/browser-detection.js.map +1 -1
  34. package/dist/common/collection.js +3 -4
  35. package/dist/common/collection.js.map +1 -1
  36. package/dist/common/config.js +1 -2
  37. package/dist/common/config.js.map +1 -1
  38. package/dist/common/errors/captcha-error.js +1 -2
  39. package/dist/common/errors/captcha-error.js.map +1 -1
  40. package/dist/common/errors/intent-to-join.js +1 -2
  41. package/dist/common/errors/intent-to-join.js.map +1 -1
  42. package/dist/common/errors/join-meeting.js +1 -2
  43. package/dist/common/errors/join-meeting.js.map +1 -1
  44. package/dist/common/errors/media.js +1 -2
  45. package/dist/common/errors/media.js.map +1 -1
  46. package/dist/common/errors/no-meeting-info.d.ts +14 -0
  47. package/dist/common/errors/no-meeting-info.js +50 -0
  48. package/dist/common/errors/no-meeting-info.js.map +1 -0
  49. package/dist/common/errors/parameter.js +3 -4
  50. package/dist/common/errors/parameter.js.map +1 -1
  51. package/dist/common/errors/password-error.js +1 -2
  52. package/dist/common/errors/password-error.js.map +1 -1
  53. package/dist/common/errors/permission.js +1 -2
  54. package/dist/common/errors/permission.js.map +1 -1
  55. package/dist/common/errors/{reclaim-host-role-error.js → reclaim-host-role-errors.js} +7 -11
  56. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  57. package/dist/common/errors/reconnection-in-progress.js +1 -2
  58. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  59. package/dist/common/errors/reconnection.js +1 -2
  60. package/dist/common/errors/reconnection.js.map +1 -1
  61. package/dist/common/errors/stats.js +1 -2
  62. package/dist/common/errors/stats.js.map +1 -1
  63. package/dist/common/errors/webex-errors.d.ts +20 -8
  64. package/dist/common/errors/webex-errors.js +48 -28
  65. package/dist/common/errors/webex-errors.js.map +1 -1
  66. package/dist/common/errors/webex-meetings-error.js +1 -2
  67. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  68. package/dist/common/events/events-scope.js +1 -2
  69. package/dist/common/events/events-scope.js.map +1 -1
  70. package/dist/common/events/events.js +1 -2
  71. package/dist/common/events/events.js.map +1 -1
  72. package/dist/common/events/trigger-proxy.js +1 -2
  73. package/dist/common/events/trigger-proxy.js.map +1 -1
  74. package/dist/common/events/util.js +1 -2
  75. package/dist/common/events/util.js.map +1 -1
  76. package/dist/common/logs/logger-config.js +1 -2
  77. package/dist/common/logs/logger-config.js.map +1 -1
  78. package/dist/common/logs/logger-proxy.js +2 -3
  79. package/dist/common/logs/logger-proxy.js.map +1 -1
  80. package/dist/common/logs/request.d.ts +3 -1
  81. package/dist/common/logs/request.js +8 -5
  82. package/dist/common/logs/request.js.map +1 -1
  83. package/dist/common/queue.d.ts +9 -7
  84. package/dist/common/queue.js +22 -9
  85. package/dist/common/queue.js.map +1 -1
  86. package/dist/config.d.ts +6 -7
  87. package/dist/config.js +8 -10
  88. package/dist/config.js.map +1 -1
  89. package/dist/constants.d.ts +217 -97
  90. package/dist/constants.js +416 -441
  91. package/dist/constants.js.map +1 -1
  92. package/dist/controls-options-manager/constants.js +3 -6
  93. package/dist/controls-options-manager/constants.js.map +1 -1
  94. package/dist/controls-options-manager/enums.d.ts +11 -1
  95. package/dist/controls-options-manager/enums.js +15 -6
  96. package/dist/controls-options-manager/enums.js.map +1 -1
  97. package/dist/controls-options-manager/index.d.ts +17 -1
  98. package/dist/controls-options-manager/index.js +127 -38
  99. package/dist/controls-options-manager/index.js.map +1 -1
  100. package/dist/controls-options-manager/types.d.ts +43 -0
  101. package/dist/controls-options-manager/types.js +7 -0
  102. package/dist/controls-options-manager/types.js.map +1 -0
  103. package/dist/controls-options-manager/util.d.ts +1 -7
  104. package/dist/controls-options-manager/util.js +309 -19
  105. package/dist/controls-options-manager/util.js.map +1 -1
  106. package/dist/index.d.ts +6 -3
  107. package/dist/index.js +121 -5
  108. package/dist/index.js.map +1 -1
  109. package/dist/interceptors/index.d.ts +2 -0
  110. package/dist/interceptors/index.js +15 -0
  111. package/dist/interceptors/index.js.map +1 -0
  112. package/dist/interceptors/locusRetry.d.ts +27 -0
  113. package/dist/interceptors/locusRetry.js +94 -0
  114. package/dist/interceptors/locusRetry.js.map +1 -0
  115. package/dist/interpretation/collection.d.ts +5 -0
  116. package/dist/interpretation/collection.js +22 -0
  117. package/dist/interpretation/collection.js.map +1 -0
  118. package/dist/interpretation/index.d.ts +5 -0
  119. package/dist/interpretation/index.js +365 -0
  120. package/dist/interpretation/index.js.map +1 -0
  121. package/dist/interpretation/siLanguage.d.ts +5 -0
  122. package/dist/interpretation/siLanguage.js +24 -0
  123. package/dist/interpretation/siLanguage.js.map +1 -0
  124. package/dist/locus-info/controlsUtils.js +100 -11
  125. package/dist/locus-info/controlsUtils.js.map +1 -1
  126. package/dist/locus-info/embeddedAppsUtils.js +3 -4
  127. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  128. package/dist/locus-info/fullState.js +1 -2
  129. package/dist/locus-info/fullState.js.map +1 -1
  130. package/dist/locus-info/hostUtils.js +1 -2
  131. package/dist/locus-info/hostUtils.js.map +1 -1
  132. package/dist/locus-info/index.d.ts +57 -4
  133. package/dist/locus-info/index.js +425 -84
  134. package/dist/locus-info/index.js.map +1 -1
  135. package/dist/locus-info/infoUtils.js +13 -5
  136. package/dist/locus-info/infoUtils.js.map +1 -1
  137. package/dist/locus-info/mediaSharesUtils.js +58 -3
  138. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  139. package/dist/locus-info/parser.d.ts +66 -6
  140. package/dist/locus-info/parser.js +253 -80
  141. package/dist/locus-info/parser.js.map +1 -1
  142. package/dist/locus-info/selfUtils.js +97 -13
  143. package/dist/locus-info/selfUtils.js.map +1 -1
  144. package/dist/media/index.d.ts +2 -0
  145. package/dist/media/index.js +107 -319
  146. package/dist/media/index.js.map +1 -1
  147. package/dist/media/properties.d.ts +38 -53
  148. package/dist/media/properties.js +96 -153
  149. package/dist/media/properties.js.map +1 -1
  150. package/dist/media/util.js +1 -22
  151. package/dist/media/util.js.map +1 -1
  152. package/dist/mediaQualityMetrics/config.d.ts +234 -230
  153. package/dist/mediaQualityMetrics/config.js +302 -498
  154. package/dist/mediaQualityMetrics/config.js.map +1 -1
  155. package/dist/meeting/in-meeting-actions.d.ts +88 -0
  156. package/dist/meeting/in-meeting-actions.js +94 -3
  157. package/dist/meeting/in-meeting-actions.js.map +1 -1
  158. package/dist/meeting/index.d.ts +591 -494
  159. package/dist/meeting/index.js +4732 -2990
  160. package/dist/meeting/index.js.map +1 -1
  161. package/dist/meeting/locusMediaRequest.d.ts +74 -0
  162. package/dist/meeting/locusMediaRequest.js +291 -0
  163. package/dist/meeting/locusMediaRequest.js.map +1 -0
  164. package/dist/meeting/muteState.d.ts +93 -25
  165. package/dist/meeting/muteState.js +224 -133
  166. package/dist/meeting/muteState.js.map +1 -1
  167. package/dist/meeting/request.d.ts +82 -47
  168. package/dist/meeting/request.js +297 -199
  169. package/dist/meeting/request.js.map +1 -1
  170. package/dist/meeting/request.type.d.ts +11 -0
  171. package/dist/meeting/request.type.js +7 -0
  172. package/dist/meeting/request.type.js.map +1 -0
  173. package/dist/meeting/state.js +1 -2
  174. package/dist/meeting/state.js.map +1 -1
  175. package/dist/meeting/util.d.ts +102 -1
  176. package/dist/meeting/util.js +605 -435
  177. package/dist/meeting/util.js.map +1 -1
  178. package/dist/meeting-info/collection.js +3 -4
  179. package/dist/meeting-info/collection.js.map +1 -1
  180. package/dist/meeting-info/index.d.ts +13 -1
  181. package/dist/meeting-info/index.js +74 -7
  182. package/dist/meeting-info/index.js.map +1 -1
  183. package/dist/meeting-info/meeting-info-v2.d.ts +31 -1
  184. package/dist/meeting-info/meeting-info-v2.js +200 -63
  185. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  186. package/dist/meeting-info/request.js +1 -2
  187. package/dist/meeting-info/request.js.map +1 -1
  188. package/dist/meeting-info/util.js +2 -3
  189. package/dist/meeting-info/util.js.map +1 -1
  190. package/dist/meeting-info/utilv2.js +39 -41
  191. package/dist/meeting-info/utilv2.js.map +1 -1
  192. package/dist/meetings/collection.d.ts +17 -0
  193. package/dist/meetings/collection.js +42 -4
  194. package/dist/meetings/collection.js.map +1 -1
  195. package/dist/meetings/index.d.ts +93 -21
  196. package/dist/meetings/index.js +490 -127
  197. package/dist/meetings/index.js.map +1 -1
  198. package/dist/meetings/meetings.types.d.ts +4 -0
  199. package/dist/meetings/meetings.types.js +7 -0
  200. package/dist/meetings/meetings.types.js.map +1 -0
  201. package/dist/meetings/request.js +4 -3
  202. package/dist/meetings/request.js.map +1 -1
  203. package/dist/meetings/util.js +107 -6
  204. package/dist/meetings/util.js.map +1 -1
  205. package/dist/member/index.d.ts +13 -1
  206. package/dist/member/index.js +45 -2
  207. package/dist/member/index.js.map +1 -1
  208. package/dist/member/member.types.js +3 -4
  209. package/dist/member/member.types.js.map +1 -1
  210. package/dist/member/types.d.ts +32 -0
  211. package/dist/member/types.js +23 -0
  212. package/dist/member/types.js.map +1 -0
  213. package/dist/member/util.js +120 -29
  214. package/dist/member/util.js.map +1 -1
  215. package/dist/members/collection.d.ts +5 -0
  216. package/dist/members/collection.js +11 -2
  217. package/dist/members/collection.js.map +1 -1
  218. package/dist/members/index.d.ts +56 -11
  219. package/dist/members/index.js +174 -47
  220. package/dist/members/index.js.map +1 -1
  221. package/dist/members/request.d.ts +67 -11
  222. package/dist/members/request.js +102 -54
  223. package/dist/members/request.js.map +1 -1
  224. package/dist/members/types.js +3 -4
  225. package/dist/members/types.js.map +1 -1
  226. package/dist/members/util.d.ts +214 -1
  227. package/dist/members/util.js +327 -284
  228. package/dist/members/util.js.map +1 -1
  229. package/dist/metrics/constants.d.ts +15 -6
  230. package/dist/metrics/constants.js +17 -9
  231. package/dist/metrics/constants.js.map +1 -1
  232. package/dist/metrics/index.d.ts +4 -111
  233. package/dist/metrics/index.js +4 -452
  234. package/dist/metrics/index.js.map +1 -1
  235. package/dist/multistream/mediaRequestManager.d.ts +118 -0
  236. package/dist/multistream/mediaRequestManager.js +344 -0
  237. package/dist/multistream/mediaRequestManager.js.map +1 -0
  238. package/dist/multistream/receiveSlot.d.ts +68 -0
  239. package/dist/multistream/receiveSlot.js +200 -0
  240. package/dist/multistream/receiveSlot.js.map +1 -0
  241. package/dist/multistream/receiveSlotManager.d.ts +56 -0
  242. package/dist/multistream/receiveSlotManager.js +174 -0
  243. package/dist/multistream/receiveSlotManager.js.map +1 -0
  244. package/dist/multistream/remoteMedia.d.ts +72 -0
  245. package/dist/multistream/remoteMedia.js +268 -0
  246. package/dist/multistream/remoteMedia.js.map +1 -0
  247. package/dist/multistream/remoteMediaGroup.d.ts +47 -0
  248. package/dist/multistream/remoteMediaGroup.js +267 -0
  249. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  250. package/dist/multistream/remoteMediaManager.d.ts +285 -0
  251. package/dist/multistream/remoteMediaManager.js +1211 -0
  252. package/dist/multistream/remoteMediaManager.js.map +1 -0
  253. package/dist/multistream/sendSlotManager.d.ts +61 -0
  254. package/dist/multistream/sendSlotManager.js +236 -0
  255. package/dist/multistream/sendSlotManager.js.map +1 -0
  256. package/dist/networkQualityMonitor/index.js +5 -4
  257. package/dist/networkQualityMonitor/index.js.map +1 -1
  258. package/dist/personal-meeting-room/index.js +2 -3
  259. package/dist/personal-meeting-room/index.js.map +1 -1
  260. package/dist/personal-meeting-room/request.js +2 -3
  261. package/dist/personal-meeting-room/request.js.map +1 -1
  262. package/dist/personal-meeting-room/util.js +1 -2
  263. package/dist/personal-meeting-room/util.js.map +1 -1
  264. package/dist/reachability/clusterReachability.d.ts +109 -0
  265. package/dist/reachability/clusterReachability.js +357 -0
  266. package/dist/reachability/clusterReachability.js.map +1 -0
  267. package/dist/reachability/index.d.ts +61 -95
  268. package/dist/reachability/index.js +300 -393
  269. package/dist/reachability/index.js.map +1 -1
  270. package/dist/reachability/request.d.ts +7 -3
  271. package/dist/reachability/request.js +18 -10
  272. package/dist/reachability/request.js.map +1 -1
  273. package/dist/reachability/util.d.ts +8 -0
  274. package/dist/reachability/util.js +29 -0
  275. package/dist/reachability/util.js.map +1 -0
  276. package/dist/reactions/constants.d.ts +3 -0
  277. package/dist/reactions/constants.js +12 -0
  278. package/dist/reactions/constants.js.map +1 -0
  279. package/dist/reactions/reactions.d.ts +2 -2
  280. package/dist/reactions/reactions.js +4 -6
  281. package/dist/reactions/reactions.js.map +1 -1
  282. package/dist/reactions/reactions.type.d.ts +23 -3
  283. package/dist/reactions/reactions.type.js +21 -23
  284. package/dist/reactions/reactions.type.js.map +1 -1
  285. package/dist/reconnection-manager/index.d.ts +32 -8
  286. package/dist/reconnection-manager/index.js +282 -231
  287. package/dist/reconnection-manager/index.js.map +1 -1
  288. package/dist/recording-controller/enums.js +4 -5
  289. package/dist/recording-controller/enums.js.map +1 -1
  290. package/dist/recording-controller/index.d.ts +15 -1
  291. package/dist/recording-controller/index.js +57 -46
  292. package/dist/recording-controller/index.js.map +1 -1
  293. package/dist/recording-controller/util.d.ts +5 -4
  294. package/dist/recording-controller/util.js +10 -10
  295. package/dist/recording-controller/util.js.map +1 -1
  296. package/dist/roap/index.d.ts +9 -47
  297. package/dist/roap/index.js +101 -235
  298. package/dist/roap/index.js.map +1 -1
  299. package/dist/roap/request.d.ts +18 -12
  300. package/dist/roap/request.js +126 -180
  301. package/dist/roap/request.js.map +1 -1
  302. package/dist/roap/turnDiscovery.d.ts +27 -16
  303. package/dist/roap/turnDiscovery.js +115 -105
  304. package/dist/roap/turnDiscovery.js.map +1 -1
  305. package/dist/rtcMetrics/constants.d.ts +4 -0
  306. package/dist/rtcMetrics/constants.js +11 -0
  307. package/dist/rtcMetrics/constants.js.map +1 -0
  308. package/dist/rtcMetrics/index.d.ts +54 -0
  309. package/dist/rtcMetrics/index.js +140 -0
  310. package/dist/rtcMetrics/index.js.map +1 -0
  311. package/dist/statsAnalyzer/global.d.ts +1 -83
  312. package/dist/statsAnalyzer/global.js +2 -85
  313. package/dist/statsAnalyzer/global.js.map +1 -1
  314. package/dist/statsAnalyzer/index.d.ts +50 -30
  315. package/dist/statsAnalyzer/index.js +435 -510
  316. package/dist/statsAnalyzer/index.js.map +1 -1
  317. package/dist/statsAnalyzer/mqaUtil.d.ts +8 -6
  318. package/dist/statsAnalyzer/mqaUtil.js +120 -83
  319. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  320. package/dist/transcription/index.js +1 -2
  321. package/dist/transcription/index.js.map +1 -1
  322. package/dist/webinar/collection.d.ts +16 -0
  323. package/dist/webinar/collection.js +43 -0
  324. package/dist/webinar/collection.js.map +1 -0
  325. package/dist/webinar/index.d.ts +5 -0
  326. package/dist/webinar/index.js +68 -0
  327. package/dist/webinar/index.js.map +1 -0
  328. package/package.json +38 -26
  329. package/src/annotation/annotation.types.ts +50 -0
  330. package/src/annotation/constants.ts +36 -0
  331. package/src/annotation/index.ts +328 -0
  332. package/src/breakouts/README.md +220 -0
  333. package/src/breakouts/breakout.ts +188 -0
  334. package/src/breakouts/collection.ts +19 -0
  335. package/src/breakouts/edit-lock-error.ts +25 -0
  336. package/src/breakouts/events.ts +56 -0
  337. package/src/breakouts/index.ts +925 -0
  338. package/src/breakouts/request.ts +55 -0
  339. package/src/breakouts/utils.ts +57 -0
  340. package/src/common/errors/no-meeting-info.ts +24 -0
  341. package/src/common/errors/webex-errors.ts +36 -12
  342. package/src/common/logs/logger-proxy.ts +1 -1
  343. package/src/common/logs/request.ts +5 -1
  344. package/src/common/queue.ts +22 -8
  345. package/src/config.ts +6 -7
  346. package/src/constants.ts +244 -97
  347. package/src/controls-options-manager/enums.ts +12 -0
  348. package/src/controls-options-manager/index.ts +116 -21
  349. package/src/controls-options-manager/types.ts +59 -0
  350. package/src/controls-options-manager/util.ts +294 -14
  351. package/src/index.ts +44 -0
  352. package/src/interceptors/index.ts +3 -0
  353. package/src/interceptors/locusRetry.ts +67 -0
  354. package/src/interpretation/README.md +60 -0
  355. package/src/interpretation/collection.ts +19 -0
  356. package/src/interpretation/index.ts +332 -0
  357. package/src/interpretation/siLanguage.ts +18 -0
  358. package/src/locus-info/controlsUtils.ts +110 -0
  359. package/src/locus-info/index.ts +449 -61
  360. package/src/locus-info/infoUtils.ts +14 -2
  361. package/src/locus-info/mediaSharesUtils.ts +64 -0
  362. package/src/locus-info/parser.ts +258 -47
  363. package/src/locus-info/selfUtils.ts +85 -2
  364. package/src/media/index.ts +153 -370
  365. package/src/media/properties.ts +106 -136
  366. package/src/media/util.ts +0 -21
  367. package/src/mediaQualityMetrics/config.ts +244 -377
  368. package/src/meeting/in-meeting-actions.ts +176 -0
  369. package/src/meeting/index.ts +3944 -2489
  370. package/src/meeting/locusMediaRequest.ts +313 -0
  371. package/src/meeting/muteState.ts +224 -138
  372. package/src/meeting/request.ts +207 -127
  373. package/src/meeting/request.type.ts +13 -0
  374. package/src/meeting/util.ts +590 -423
  375. package/src/meeting-info/index.ts +81 -8
  376. package/src/meeting-info/meeting-info-v2.ts +163 -13
  377. package/src/meeting-info/util.ts +1 -1
  378. package/src/meeting-info/utilv2.ts +28 -28
  379. package/src/meetings/collection.ts +33 -0
  380. package/src/meetings/index.ts +487 -126
  381. package/src/meetings/meetings.types.ts +12 -0
  382. package/src/meetings/request.ts +2 -0
  383. package/src/meetings/util.ts +116 -5
  384. package/src/member/index.ts +43 -1
  385. package/src/member/types.ts +38 -0
  386. package/src/member/util.ts +125 -28
  387. package/src/members/collection.ts +8 -0
  388. package/src/members/index.ts +187 -52
  389. package/src/members/request.ts +87 -27
  390. package/src/members/util.ts +332 -291
  391. package/src/metrics/constants.ts +15 -6
  392. package/src/metrics/index.ts +1 -471
  393. package/src/multistream/mediaRequestManager.ts +440 -0
  394. package/src/multistream/receiveSlot.ts +184 -0
  395. package/src/multistream/receiveSlotManager.ts +166 -0
  396. package/src/multistream/remoteMedia.ts +254 -0
  397. package/src/multistream/remoteMediaGroup.ts +284 -0
  398. package/src/multistream/remoteMediaManager.ts +1145 -0
  399. package/src/multistream/sendSlotManager.ts +170 -0
  400. package/src/networkQualityMonitor/index.ts +6 -6
  401. package/src/reachability/clusterReachability.ts +320 -0
  402. package/src/reachability/index.ts +243 -347
  403. package/src/reachability/request.ts +17 -8
  404. package/src/reachability/util.ts +24 -0
  405. package/src/reactions/constants.ts +4 -0
  406. package/src/reactions/reactions.ts +4 -4
  407. package/src/reactions/reactions.type.ts +30 -4
  408. package/src/reconnection-manager/index.ts +168 -156
  409. package/src/recording-controller/index.ts +20 -3
  410. package/src/recording-controller/util.ts +26 -9
  411. package/src/roap/index.ts +98 -241
  412. package/src/roap/request.ts +74 -148
  413. package/src/roap/turnDiscovery.ts +62 -56
  414. package/src/rtcMetrics/constants.ts +3 -0
  415. package/src/rtcMetrics/index.ts +124 -0
  416. package/src/statsAnalyzer/global.ts +1 -84
  417. package/src/statsAnalyzer/index.ts +477 -643
  418. package/src/statsAnalyzer/mqaUtil.ts +115 -114
  419. package/src/webinar/collection.ts +31 -0
  420. package/src/webinar/index.ts +62 -0
  421. package/test/integration/spec/converged-space-meetings.js +233 -0
  422. package/test/integration/spec/journey.js +320 -264
  423. package/test/integration/spec/space-meeting.js +77 -4
  424. package/test/unit/spec/annotation/index.ts +418 -0
  425. package/test/unit/spec/breakouts/breakout.ts +237 -0
  426. package/test/unit/spec/breakouts/collection.ts +15 -0
  427. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  428. package/test/unit/spec/breakouts/events.ts +89 -0
  429. package/test/unit/spec/breakouts/index.ts +1790 -0
  430. package/test/unit/spec/breakouts/request.ts +104 -0
  431. package/test/unit/spec/breakouts/utils.js +72 -0
  432. package/test/unit/spec/common/queue.js +31 -2
  433. package/test/unit/spec/controls-options-manager/index.js +163 -0
  434. package/test/unit/spec/controls-options-manager/util.js +576 -60
  435. package/test/unit/spec/fixture/locus.js +1 -0
  436. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  437. package/test/unit/spec/interpretation/collection.ts +15 -0
  438. package/test/unit/spec/interpretation/index.ts +589 -0
  439. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  440. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  441. package/test/unit/spec/locus-info/index.js +1390 -16
  442. package/test/unit/spec/locus-info/infoUtils.js +54 -16
  443. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  444. package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
  445. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  446. package/test/unit/spec/locus-info/parser.js +116 -35
  447. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  448. package/test/unit/spec/media/index.ts +290 -0
  449. package/test/unit/spec/media/properties.ts +75 -84
  450. package/test/unit/spec/meeting/in-meeting-actions.ts +86 -0
  451. package/test/unit/spec/meeting/index.js +8187 -2769
  452. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  453. package/test/unit/spec/meeting/muteState.js +409 -213
  454. package/test/unit/spec/meeting/request.js +512 -42
  455. package/test/unit/spec/meeting/utils.js +741 -24
  456. package/test/unit/spec/meeting-info/index.js +300 -0
  457. package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
  458. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  459. package/test/unit/spec/meetings/collection.js +26 -0
  460. package/test/unit/spec/meetings/index.js +1313 -243
  461. package/test/unit/spec/meetings/utils.js +202 -2
  462. package/test/unit/spec/member/index.js +32 -9
  463. package/test/unit/spec/member/util.js +499 -61
  464. package/test/unit/spec/members/index.js +394 -5
  465. package/test/unit/spec/members/request.js +206 -27
  466. package/test/unit/spec/members/utils.js +173 -38
  467. package/test/unit/spec/metrics/index.js +1 -50
  468. package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
  469. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  470. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  471. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  472. package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
  473. package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
  474. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  475. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  476. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  477. package/test/unit/spec/reachability/index.ts +531 -24
  478. package/test/unit/spec/reachability/request.js +68 -0
  479. package/test/unit/spec/reachability/util.ts +40 -0
  480. package/test/unit/spec/reconnection-manager/index.js +162 -24
  481. package/test/unit/spec/recording-controller/index.js +293 -218
  482. package/test/unit/spec/recording-controller/util.js +223 -96
  483. package/test/unit/spec/roap/index.ts +200 -76
  484. package/test/unit/spec/roap/request.ts +255 -0
  485. package/test/unit/spec/roap/turnDiscovery.ts +86 -48
  486. package/test/unit/spec/rtcMetrics/index.ts +93 -0
  487. package/test/unit/spec/stats-analyzer/index.js +261 -167
  488. package/test/unit/spec/webinar/collection.ts +13 -0
  489. package/test/unit/spec/webinar/index.ts +60 -0
  490. package/test/utils/constants.js +9 -0
  491. package/test/utils/integrationTestUtils.js +46 -0
  492. package/test/utils/testUtils.js +0 -45
  493. package/test/utils/webex-config.js +4 -0
  494. package/test/utils/webex-test-users.js +7 -3
  495. package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
  496. package/dist/meeting/effectsState.d.ts +0 -42
  497. package/dist/meeting/effectsState.js +0 -260
  498. package/dist/meeting/effectsState.js.map +0 -1
  499. package/dist/metrics/config.d.ts +0 -169
  500. package/dist/metrics/config.js +0 -289
  501. package/dist/metrics/config.js.map +0 -1
  502. package/dist/peer-connection-manager/index.d.ts +0 -6
  503. package/dist/peer-connection-manager/index.js +0 -671
  504. package/dist/peer-connection-manager/index.js.map +0 -1
  505. package/dist/peer-connection-manager/util.d.ts +0 -6
  506. package/dist/peer-connection-manager/util.js +0 -110
  507. package/dist/peer-connection-manager/util.js.map +0 -1
  508. package/dist/roap/collection.d.ts +0 -10
  509. package/dist/roap/collection.js +0 -63
  510. package/dist/roap/collection.js.map +0 -1
  511. package/dist/roap/handler.d.ts +0 -47
  512. package/dist/roap/handler.js +0 -279
  513. package/dist/roap/handler.js.map +0 -1
  514. package/dist/roap/state.d.ts +0 -9
  515. package/dist/roap/state.js +0 -127
  516. package/dist/roap/state.js.map +0 -1
  517. package/dist/roap/util.d.ts +0 -2
  518. package/dist/roap/util.js +0 -76
  519. package/dist/roap/util.js.map +0 -1
  520. package/src/index.js +0 -15
  521. package/src/meeting/effectsState.ts +0 -209
  522. package/src/metrics/config.ts +0 -485
  523. package/src/peer-connection-manager/index.ts +0 -847
  524. package/src/peer-connection-manager/util.ts +0 -119
  525. package/src/roap/collection.ts +0 -62
  526. package/src/roap/handler.ts +0 -294
  527. package/src/roap/state.ts +0 -156
  528. package/src/roap/util.ts +0 -100
  529. package/test/unit/spec/meeting/effectsState.js +0 -281
  530. package/test/unit/spec/peerconnection-manager/index.js +0 -218
  531. package/test/unit/spec/peerconnection-manager/utils.js +0 -49
  532. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
  533. package/test/unit/spec/roap/util.js +0 -30
  534. /package/dist/common/errors/{reclaim-host-role-error.d.ts → reclaim-host-role-errors.d.ts} +0 -0
  535. /package/src/common/errors/{reclaim-host-role-error.ts → reclaim-host-role-errors.ts} +0 -0
@@ -4,11 +4,13 @@ import {debounce} from 'lodash';
4
4
  import {StatelessWebexPlugin} from '@webex/webex-core';
5
5
  // @ts-ignore
6
6
  import {deviceType} from '@webex/common';
7
+ import {CallDiagnosticUtils} from '@webex/internal-plugin-metrics';
7
8
 
8
9
  import LoggerProxy from '../common/logs/logger-proxy';
9
10
  import {
10
11
  ALERT,
11
12
  ALTERNATE_REDIRECT_TRUE,
13
+ BREAKOUTS,
12
14
  CALL,
13
15
  CONTROLS,
14
16
  DECLINE,
@@ -17,30 +19,73 @@ import {
17
19
  HTTP_VERBS,
18
20
  LEAVE,
19
21
  LOCI,
20
- LOCUS,
21
- MEDIA,
22
22
  PARTICIPANT,
23
23
  PROVISIONAL_TYPE_DIAL_IN,
24
24
  PROVISIONAL_TYPE_DIAL_OUT,
25
+ REACHABILITY,
25
26
  SEND_DTMF_ENDPOINT,
26
27
  _SLIDES_,
28
+ ANNOTATION,
29
+ IP_VERSION,
27
30
  } from '../constants';
28
- import {Reaction} from '../reactions/reactions.type';
31
+ import {SendReactionOptions, ToggleReactionsOptions} from './request.type';
32
+ import MeetingUtil from './util';
33
+ import {AnnotationInfo} from '../annotation/annotation.types';
29
34
 
30
35
  /**
31
36
  * @class MeetingRequest
32
37
  */
33
38
  export default class MeetingRequest extends StatelessWebexPlugin {
34
39
  changeVideoLayoutDebounced: any;
40
+ meetingRef: WeakRef<any>;
41
+ locusDeltaRequest: (options: object) => Promise<any>;
42
+ buildLocusDeltaRequestOptions: (options: object) => Promise<any>;
35
43
 
44
+ /**
45
+ * Constructor
46
+ * @param {Object} attrs
47
+ * @param {Object} options
48
+ */
36
49
  constructor(attrs: any, options: any) {
37
- super(attrs, options);
50
+ const {meeting, ...otherAttrs} = attrs;
51
+
52
+ super(otherAttrs, options);
53
+
54
+ this.locusDeltaRequest = MeetingUtil.generateLocusDeltaRequest(meeting);
55
+ this.buildLocusDeltaRequestOptions = MeetingUtil.generateBuildLocusDeltaRequestOptions(meeting);
56
+
38
57
  this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {
39
58
  leading: true,
40
59
  trailing: true,
41
60
  });
42
61
  }
43
62
 
63
+ /**
64
+ * Returns joinCookie from boundedStorage if present.
65
+ * @returns {Object} joinCookie
66
+ */
67
+ private getJoinCookie = async () => {
68
+ // @ts-ignore
69
+ const joinCookieRaw = await this.webex.boundedStorage
70
+ .get(REACHABILITY.namespace, REACHABILITY.localStorageJoinCookie)
71
+ .catch(() => {});
72
+
73
+ if (joinCookieRaw) {
74
+ try {
75
+ const joinCookie = JSON.parse(joinCookieRaw);
76
+ if (joinCookie) {
77
+ return joinCookie;
78
+ }
79
+ } catch (e) {
80
+ LoggerProxy.logger.error(
81
+ `MeetingRequest#constructor --> Error in parsing join cookie data: ${e}`
82
+ );
83
+ }
84
+ }
85
+
86
+ return null;
87
+ };
88
+
44
89
  /**
45
90
  * Make a network request to join a meeting
46
91
  * @param {Object} options
@@ -54,12 +99,17 @@ export default class MeetingRequest extends StatelessWebexPlugin {
54
99
  * @param {boolean} options.pin
55
100
  * @param {boolean} options.moveToResource
56
101
  * @param {Object} options.roapMessage
102
+ * @param {boolean} options.breakoutsSupported
103
+ * @param {String} options.locale,
104
+ * @param {Array} options.deviceCapabilities
105
+ * @param {boolean} options.liveAnnotationSupported
57
106
  * @returns {Promise}
58
107
  */
59
108
  async joinMeeting(options: {
60
109
  sipUri: string;
61
110
  deviceUrl: string;
62
111
  locusUrl: string;
112
+ locusClusterUrl: string;
63
113
  resourceId: string;
64
114
  correlationId: string;
65
115
  ensureConversation: boolean;
@@ -72,6 +122,11 @@ export default class MeetingRequest extends StatelessWebexPlugin {
72
122
  meetingNumber: any;
73
123
  permissionToken: any;
74
124
  preferTranscoding: any;
125
+ breakoutsSupported: boolean;
126
+ locale?: string;
127
+ deviceCapabilities?: Array<string>;
128
+ liveAnnotationSupported: boolean;
129
+ ipVersion?: IP_VERSION;
75
130
  }) {
76
131
  const {
77
132
  asResourceOccupant,
@@ -80,6 +135,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
80
135
  permissionToken,
81
136
  deviceUrl,
82
137
  locusUrl,
138
+ locusClusterUrl,
83
139
  resourceId,
84
140
  correlationId,
85
141
  ensureConversation,
@@ -88,12 +144,19 @@ export default class MeetingRequest extends StatelessWebexPlugin {
88
144
  moveToResource,
89
145
  roapMessage,
90
146
  preferTranscoding,
147
+ breakoutsSupported,
148
+ locale,
149
+ deviceCapabilities = [],
150
+ liveAnnotationSupported,
151
+ ipVersion,
91
152
  } = options;
92
153
 
93
154
  LoggerProxy.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);
94
155
 
95
156
  let url = '';
96
157
 
158
+ const joinCookie = await this.getJoinCookie();
159
+
97
160
  const body: any = {
98
161
  asResourceOccupant,
99
162
  device: {
@@ -110,15 +173,36 @@ export default class MeetingRequest extends StatelessWebexPlugin {
110
173
  supportsNativeLobby: 1,
111
174
  clientMediaPreferences: {
112
175
  preferTranscoding: preferTranscoding ?? true,
176
+ joinCookie,
177
+ ipver: ipVersion,
113
178
  },
114
179
  };
115
180
 
181
+ if (breakoutsSupported) {
182
+ deviceCapabilities.push(BREAKOUTS.BREAKOUTS_SUPPORTED);
183
+ }
184
+ if (liveAnnotationSupported) {
185
+ deviceCapabilities.push(ANNOTATION.ANNOTATION_ON_SHARE_SUPPORTED);
186
+ }
187
+
188
+ if (locale) {
189
+ body.locale = locale;
190
+ }
191
+
192
+ // add deviceCapabilities prop
193
+ if (deviceCapabilities.length) {
194
+ body.deviceCapabilities = deviceCapabilities;
195
+ }
116
196
  // @ts-ignore
117
- if (this.webex.meetings.clientRegion) {
197
+ if (this.webex.meetings.geoHintInfo) {
118
198
  // @ts-ignore
119
- body.device.countryCode = this.webex.meetings.clientRegion.countryCode;
199
+ body.device.countryCode = this.webex.meetings.geoHintInfo.countryCode;
120
200
  // @ts-ignore
121
- body.device.regionCode = this.webex.meetings.clientRegion.regionCode;
201
+ body.device.regionCode = this.webex.meetings.geoHintInfo.regionCode;
202
+ body.device.localIp =
203
+ // @ts-ignore
204
+ CallDiagnosticUtils.anonymizeIPAddress(this.webex.meetings.geoHintInfo.clientAddress) ||
205
+ undefined;
122
206
  }
123
207
 
124
208
  if (moderator !== undefined) {
@@ -137,10 +221,18 @@ export default class MeetingRequest extends StatelessWebexPlugin {
137
221
  url = `${locusUrl}/${PARTICIPANT}`;
138
222
  } else if (inviteeAddress || meetingNumber) {
139
223
  try {
140
- // @ts-ignore
141
- await this.webex.internal.services.waitForCatalog('postauth');
142
- // @ts-ignore
143
- url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;
224
+ let clusterUrl;
225
+
226
+ if (locusClusterUrl) {
227
+ clusterUrl = `https://${locusClusterUrl}/locus/api/v1`;
228
+ } else {
229
+ // @ts-ignore
230
+ await this.webex.internal.services.waitForCatalog('postauth');
231
+ // @ts-ignore
232
+ clusterUrl = this.webex.internal.services.get('locus');
233
+ }
234
+
235
+ url = `${clusterUrl}/${LOCI}/${CALL}`;
144
236
  body.invitee = {
145
237
  address: inviteeAddress || `wbxmn:${meetingNumber}`,
146
238
  };
@@ -242,7 +334,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
242
334
  };
243
335
 
244
336
  // @ts-ignore
245
- return this.request({
337
+ return this.locusDeltaRequest({
246
338
  method: HTTP_VERBS.POST,
247
339
  uri,
248
340
  body,
@@ -297,7 +389,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
297
389
  };
298
390
 
299
391
  // @ts-ignore
300
- return this.request({
392
+ return this.locusDeltaRequest({
301
393
  method: HTTP_VERBS.POST,
302
394
  uri,
303
395
  body,
@@ -311,65 +403,25 @@ export default class MeetingRequest extends StatelessWebexPlugin {
311
403
  }
312
404
 
313
405
  /**
314
- * Syns the missed delta event
406
+ * Sends a requests to get the latest locus DTO, it might be a full Locus or a delta, depending on the url provided
315
407
  * @param {Object} options
316
- * @param {boolean} options.desync flag to get partial or whole locus object
317
- * @param {String} options.syncUrl sync url to get ht elatest locus delta
318
- * @returns {Promise}
319
- */
320
- syncMeeting(options: {desync: boolean; syncUrl: string}) {
321
- /* eslint-disable no-else-return */
322
- const {desync} = options;
323
- let {syncUrl} = options;
324
-
325
- /* istanbul ignore else */
326
- if (desync) {
327
- // check for existing URL parameters
328
- syncUrl = syncUrl
329
- .concat(syncUrl.split('?')[1] ? '&' : '?')
330
- .concat(`${LOCUS.SYNCDEBUG}=${desync}`);
331
- }
332
-
333
- // @ts-ignore
334
- return this.request({
335
- method: HTTP_VERBS.GET,
336
- uri: syncUrl,
337
- }) // TODO: Handle if delta sync failed . Get the full locus object
338
- .catch((err) => {
339
- LoggerProxy.logger.error(
340
- `Meeting:request#syncMeeting --> Error syncing meeting, error ${err}`
341
- );
342
-
343
- return err;
344
- });
345
- }
346
-
347
- /**
348
- * Request to get the complete locus object
349
- * @param {Object} options
350
- * @param {boolean} options.desync flag to get partial or whole locus object
351
408
  * @param {String} options.locusUrl sync url to get ht elatest locus delta
352
409
  * @returns {Promise}
353
410
  */
354
- getFullLocus(options: {desync: boolean; locusUrl: string}) {
355
- let {locusUrl} = options;
356
- const {desync} = options;
357
-
358
- if (locusUrl) {
359
- if (desync) {
360
- locusUrl += `?${LOCUS.SYNCDEBUG}=${desync}`;
361
- }
411
+ getLocusDTO(options: {url: string}) {
412
+ const {url} = options;
362
413
 
414
+ if (url) {
363
415
  // @ts-ignore
364
416
  return this.request({
365
417
  method: HTTP_VERBS.GET,
366
- uri: locusUrl,
418
+ uri: url,
367
419
  }).catch((err) => {
368
420
  LoggerProxy.logger.error(
369
- `Meeting:request#getFullLocus --> Error getting full locus, error ${err}`
421
+ `Meeting:request#getLocusDTO --> Error getting latest locus, error ${err}`
370
422
  );
371
423
 
372
- return err;
424
+ throw err;
373
425
  });
374
426
  }
375
427
 
@@ -412,7 +464,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
412
464
  };
413
465
 
414
466
  // @ts-ignore
415
- return this.request({
467
+ return this.locusDeltaRequest({
416
468
  method: HTTP_VERBS.PUT,
417
469
  uri,
418
470
  body,
@@ -426,13 +478,49 @@ export default class MeetingRequest extends StatelessWebexPlugin {
426
478
  }
427
479
 
428
480
  /**
429
- * Make a network request to leave a meeting
481
+ * Prepares request options to to leave a meeting
430
482
  * @param {Object} options
431
483
  * @param {Url} options.locusUrl
432
484
  * @param {String} options.selfId
433
485
  * @param {Url} options.deviceUrl
434
486
  * @param {String} options.resourceId,
435
487
  * @param {String} options.correlationId
488
+ * @returns {Object} request options
489
+ */
490
+ prepareLeaveMeetingRequestOptions({
491
+ locusUrl,
492
+ selfId,
493
+ deviceUrl: url,
494
+ resourceId,
495
+ correlationId,
496
+ }: {
497
+ locusUrl: string;
498
+ selfId: string;
499
+ deviceUrl: string;
500
+ resourceId: string;
501
+ correlationId: string;
502
+ }) {
503
+ const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;
504
+ const body = {
505
+ device: {
506
+ // @ts-ignore
507
+ deviceType: this.config.meetings.deviceType,
508
+ url,
509
+ },
510
+ usingResource: resourceId || null,
511
+ correlationId,
512
+ };
513
+
514
+ return {
515
+ method: HTTP_VERBS.PUT,
516
+ uri,
517
+ body,
518
+ };
519
+ }
520
+
521
+ /**
522
+ * Make a network request to leave a meeting
523
+ * @param {Object} options
436
524
  * @returns {Promise}
437
525
  */
438
526
  leaveMeeting({
@@ -461,14 +549,22 @@ export default class MeetingRequest extends StatelessWebexPlugin {
461
549
  correlationId,
462
550
  };
463
551
 
464
- // @ts-ignore
465
- return this.request({
552
+ return this.locusDeltaRequest({
466
553
  method: HTTP_VERBS.PUT,
467
554
  uri,
468
555
  body,
469
556
  });
470
557
  }
471
558
 
559
+ /**
560
+ * Builds request options to leave a meeting
561
+ * @param {Object} options
562
+ * @returns {Object} request options
563
+ */
564
+ buildLeaveMeetingRequestOptions(options: any) {
565
+ return this.buildLocusDeltaRequestOptions(this.prepareLeaveMeetingRequestOptions(options));
566
+ }
567
+
472
568
  /**
473
569
  * Make a network request to acknowledge a meeting
474
570
  * @param {Object} options
@@ -488,14 +584,19 @@ export default class MeetingRequest extends StatelessWebexPlugin {
488
584
  correlationId: options.correlationId,
489
585
  };
490
586
 
491
- // @ts-ignore
492
- return this.request({
587
+ return this.locusDeltaRequest({
493
588
  method: HTTP_VERBS.PUT,
494
589
  uri,
495
590
  body,
496
591
  });
497
592
  }
498
593
 
594
+ /**
595
+ * Makes a network request to lock the meeting
596
+ * @param {Object} options
597
+ * @param {Boolean} options.lock Whether it is locked or not
598
+ * @returns {Promise}
599
+ */
499
600
  lockMeeting(options) {
500
601
  const uri = `${options.locusUrl}/${CONTROLS}`;
501
602
  const body = {
@@ -504,8 +605,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
504
605
  },
505
606
  };
506
607
 
507
- // @ts-ignore
508
- return this.request({
608
+ return this.locusDeltaRequest({
509
609
  method: HTTP_VERBS.PATCH,
510
610
  uri,
511
611
  body,
@@ -531,53 +631,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
531
631
  ...(options.reason && {reason: options.reason}),
532
632
  };
533
633
 
534
- // @ts-ignore
535
- return this.request({
536
- method: HTTP_VERBS.PUT,
537
- uri,
538
- body,
539
- });
540
- }
541
-
542
- /**
543
- * Toggle remote audio and/or video
544
- * @param {Object} options options for toggling
545
- * @param {String} options.selfId Locus self id??
546
- * @param {String} options.locusUrl Locus url
547
- * @param {String} options.deviceUrl Url of a device
548
- * @param {String} options.resourceId Populated if you are paired to a device
549
- * @param {String} options.localMedias local sdps
550
- * @returns {Promise}
551
- */
552
- remoteAudioVideoToggle(
553
- options:
554
- | {
555
- selfId: string;
556
- locusUrl: string;
557
- deviceUrl: string;
558
- resourceId: string;
559
- localMedias: string;
560
- }
561
- | any
562
- ) {
563
- const uri = `${options.locusUrl}/${PARTICIPANT}/${options.selfId}/${MEDIA}`;
564
- const body = {
565
- device: {
566
- // @ts-ignore
567
- deviceType: this.config.meetings.deviceType,
568
- url: options.deviceUrl,
569
- },
570
- usingResource: options.resourceId || null,
571
- correlationId: options.correlationId,
572
- respOnlySdp: true,
573
- localMedias: options.localMedias,
574
- clientMediaPreferences: {
575
- preferTranscoding: options.preferTranscoding ?? true,
576
- },
577
- };
578
-
579
- // @ts-ignore
580
- return this.request({
634
+ return this.locusDeltaRequest({
581
635
  method: HTTP_VERBS.PUT,
582
636
  uri,
583
637
  body,
@@ -602,6 +656,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
602
656
  deviceUrl: string;
603
657
  resourceId: string;
604
658
  uri: string;
659
+ annotationInfo: AnnotationInfo;
605
660
  }
606
661
  | any
607
662
  ) {
@@ -635,6 +690,9 @@ export default class MeetingRequest extends StatelessWebexPlugin {
635
690
  if (options?.resourceToken) {
636
691
  body.resourceToken = options?.resourceToken;
637
692
  }
693
+ if (options?.annotationInfo) {
694
+ body.annotation = options?.annotationInfo;
695
+ }
638
696
 
639
697
  // @ts-ignore
640
698
  return this.request({
@@ -654,7 +712,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
654
712
  */
655
713
  sendDTMF({locusUrl, deviceUrl, tones}: {locusUrl: string; deviceUrl: string; tones: string}) {
656
714
  // @ts-ignore
657
- return this.request({
715
+ return this.locusDeltaRequest({
658
716
  method: HTTP_VERBS.POST,
659
717
  uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,
660
718
  body: {
@@ -735,7 +793,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
735
793
  : undefined;
736
794
 
737
795
  // @ts-ignore
738
- return this.request({
796
+ return this.locusDeltaRequest({
739
797
  method: HTTP_VERBS.PUT,
740
798
  uri: `${locusUrl}/${CONTROLS}`,
741
799
  body: {
@@ -758,7 +816,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
758
816
  const uri = `${locusUrl}/${END}`;
759
817
 
760
818
  // @ts-ignore
761
- return this.request({
819
+ return this.locusDeltaRequest({
762
820
  method: HTTP_VERBS.POST,
763
821
  uri,
764
822
  });
@@ -786,15 +844,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
786
844
  * @param {string} options.senderID
787
845
  * @returns {Promise}
788
846
  */
789
- sendReaction({
790
- reactionChannelUrl,
791
- reaction,
792
- participantId,
793
- }: {
794
- reactionChannelUrl: string;
795
- reaction: Reaction;
796
- participantId: string;
797
- }) {
847
+ sendReaction({reactionChannelUrl, reaction, participantId}: SendReactionOptions) {
798
848
  const uri = reactionChannelUrl;
799
849
 
800
850
  // @ts-ignore
@@ -807,4 +857,34 @@ export default class MeetingRequest extends StatelessWebexPlugin {
807
857
  },
808
858
  });
809
859
  }
860
+
861
+ /**
862
+ * Make a network request to enable or disable reactions.
863
+ * @param {boolean} options.enable - determines if we need to enable or disable.
864
+ * @param {locusUrl} options.locusUrl
865
+ * @returns {Promise}
866
+ */
867
+ toggleReactions({enable, locusUrl, requestingParticipantId}: ToggleReactionsOptions) {
868
+ const uri = `${locusUrl}/${CONTROLS}`;
869
+
870
+ // @ts-ignore
871
+ return this.locusDeltaRequest({
872
+ method: HTTP_VERBS.PUT,
873
+ uri,
874
+ body: {
875
+ reactions: {
876
+ enabled: enable,
877
+ },
878
+ requestingParticipantId,
879
+ },
880
+ });
881
+ }
882
+
883
+ getLocusStatusByUrl(locusUrl: string) {
884
+ // @ts-ignore
885
+ return this.request({
886
+ method: HTTP_VERBS.GET,
887
+ uri: locusUrl,
888
+ });
889
+ }
810
890
  }
@@ -0,0 +1,13 @@
1
+ import {Reaction} from '../reactions/reactions.type';
2
+
3
+ export type SendReactionOptions = {
4
+ reactionChannelUrl: string;
5
+ reaction: Reaction;
6
+ participantId: string;
7
+ };
8
+
9
+ export type ToggleReactionsOptions = {
10
+ enable: boolean;
11
+ locusUrl: string;
12
+ requestingParticipantId: string;
13
+ };