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

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 (539) hide show
  1. package/README.md +58 -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 +234 -100
  90. package/dist/constants.js +433 -444
  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 +705 -520
  159. package/dist/meeting/index.js +5047 -3089
  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 +304 -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 +118 -1
  176. package/dist/meeting/util.js +676 -435
  177. package/dist/meeting/util.js.map +1 -1
  178. package/dist/meeting/voicea-meeting.d.ts +20 -0
  179. package/dist/meeting/voicea-meeting.js +201 -0
  180. package/dist/meeting/voicea-meeting.js.map +1 -0
  181. package/dist/meeting-info/collection.js +3 -4
  182. package/dist/meeting-info/collection.js.map +1 -1
  183. package/dist/meeting-info/index.d.ts +13 -1
  184. package/dist/meeting-info/index.js +74 -7
  185. package/dist/meeting-info/index.js.map +1 -1
  186. package/dist/meeting-info/meeting-info-v2.d.ts +31 -1
  187. package/dist/meeting-info/meeting-info-v2.js +200 -63
  188. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  189. package/dist/meeting-info/request.js +1 -2
  190. package/dist/meeting-info/request.js.map +1 -1
  191. package/dist/meeting-info/util.js +2 -3
  192. package/dist/meeting-info/util.js.map +1 -1
  193. package/dist/meeting-info/utilv2.js +39 -41
  194. package/dist/meeting-info/utilv2.js.map +1 -1
  195. package/dist/meetings/collection.d.ts +17 -0
  196. package/dist/meetings/collection.js +42 -4
  197. package/dist/meetings/collection.js.map +1 -1
  198. package/dist/meetings/index.d.ts +114 -20
  199. package/dist/meetings/index.js +540 -126
  200. package/dist/meetings/index.js.map +1 -1
  201. package/dist/meetings/meetings.types.d.ts +4 -0
  202. package/dist/meetings/meetings.types.js +7 -0
  203. package/dist/meetings/meetings.types.js.map +1 -0
  204. package/dist/meetings/request.js +4 -3
  205. package/dist/meetings/request.js.map +1 -1
  206. package/dist/meetings/util.js +107 -6
  207. package/dist/meetings/util.js.map +1 -1
  208. package/dist/member/index.d.ts +13 -1
  209. package/dist/member/index.js +45 -2
  210. package/dist/member/index.js.map +1 -1
  211. package/dist/member/member.types.js +3 -4
  212. package/dist/member/member.types.js.map +1 -1
  213. package/dist/member/types.d.ts +32 -0
  214. package/dist/member/types.js +23 -0
  215. package/dist/member/types.js.map +1 -0
  216. package/dist/member/util.js +120 -29
  217. package/dist/member/util.js.map +1 -1
  218. package/dist/members/collection.d.ts +5 -0
  219. package/dist/members/collection.js +11 -2
  220. package/dist/members/collection.js.map +1 -1
  221. package/dist/members/index.d.ts +56 -11
  222. package/dist/members/index.js +174 -47
  223. package/dist/members/index.js.map +1 -1
  224. package/dist/members/request.d.ts +67 -11
  225. package/dist/members/request.js +102 -54
  226. package/dist/members/request.js.map +1 -1
  227. package/dist/members/types.js +3 -4
  228. package/dist/members/types.js.map +1 -1
  229. package/dist/members/util.d.ts +214 -1
  230. package/dist/members/util.js +327 -284
  231. package/dist/members/util.js.map +1 -1
  232. package/dist/metrics/constants.d.ts +15 -6
  233. package/dist/metrics/constants.js +17 -9
  234. package/dist/metrics/constants.js.map +1 -1
  235. package/dist/metrics/index.d.ts +4 -111
  236. package/dist/metrics/index.js +4 -452
  237. package/dist/metrics/index.js.map +1 -1
  238. package/dist/multistream/mediaRequestManager.d.ts +118 -0
  239. package/dist/multistream/mediaRequestManager.js +344 -0
  240. package/dist/multistream/mediaRequestManager.js.map +1 -0
  241. package/dist/multistream/receiveSlot.d.ts +68 -0
  242. package/dist/multistream/receiveSlot.js +200 -0
  243. package/dist/multistream/receiveSlot.js.map +1 -0
  244. package/dist/multistream/receiveSlotManager.d.ts +56 -0
  245. package/dist/multistream/receiveSlotManager.js +174 -0
  246. package/dist/multistream/receiveSlotManager.js.map +1 -0
  247. package/dist/multistream/remoteMedia.d.ts +72 -0
  248. package/dist/multistream/remoteMedia.js +268 -0
  249. package/dist/multistream/remoteMedia.js.map +1 -0
  250. package/dist/multistream/remoteMediaGroup.d.ts +47 -0
  251. package/dist/multistream/remoteMediaGroup.js +267 -0
  252. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  253. package/dist/multistream/remoteMediaManager.d.ts +285 -0
  254. package/dist/multistream/remoteMediaManager.js +1211 -0
  255. package/dist/multistream/remoteMediaManager.js.map +1 -0
  256. package/dist/multistream/sendSlotManager.d.ts +61 -0
  257. package/dist/multistream/sendSlotManager.js +236 -0
  258. package/dist/multistream/sendSlotManager.js.map +1 -0
  259. package/dist/networkQualityMonitor/index.js +5 -4
  260. package/dist/networkQualityMonitor/index.js.map +1 -1
  261. package/dist/personal-meeting-room/index.js +2 -3
  262. package/dist/personal-meeting-room/index.js.map +1 -1
  263. package/dist/personal-meeting-room/request.js +2 -3
  264. package/dist/personal-meeting-room/request.js.map +1 -1
  265. package/dist/personal-meeting-room/util.js +1 -2
  266. package/dist/personal-meeting-room/util.js.map +1 -1
  267. package/dist/reachability/clusterReachability.d.ts +109 -0
  268. package/dist/reachability/clusterReachability.js +357 -0
  269. package/dist/reachability/clusterReachability.js.map +1 -0
  270. package/dist/reachability/index.d.ts +61 -95
  271. package/dist/reachability/index.js +304 -392
  272. package/dist/reachability/index.js.map +1 -1
  273. package/dist/reachability/request.d.ts +7 -3
  274. package/dist/reachability/request.js +18 -10
  275. package/dist/reachability/request.js.map +1 -1
  276. package/dist/reachability/util.d.ts +8 -0
  277. package/dist/reachability/util.js +29 -0
  278. package/dist/reachability/util.js.map +1 -0
  279. package/dist/reactions/constants.d.ts +3 -0
  280. package/dist/reactions/constants.js +12 -0
  281. package/dist/reactions/constants.js.map +1 -0
  282. package/dist/reactions/reactions.d.ts +2 -2
  283. package/dist/reactions/reactions.js +4 -6
  284. package/dist/reactions/reactions.js.map +1 -1
  285. package/dist/reactions/reactions.type.d.ts +23 -3
  286. package/dist/reactions/reactions.type.js +21 -23
  287. package/dist/reactions/reactions.type.js.map +1 -1
  288. package/dist/reconnection-manager/index.d.ts +32 -8
  289. package/dist/reconnection-manager/index.js +285 -232
  290. package/dist/reconnection-manager/index.js.map +1 -1
  291. package/dist/recording-controller/enums.js +4 -5
  292. package/dist/recording-controller/enums.js.map +1 -1
  293. package/dist/recording-controller/index.d.ts +15 -1
  294. package/dist/recording-controller/index.js +57 -46
  295. package/dist/recording-controller/index.js.map +1 -1
  296. package/dist/recording-controller/util.d.ts +5 -4
  297. package/dist/recording-controller/util.js +10 -10
  298. package/dist/recording-controller/util.js.map +1 -1
  299. package/dist/roap/index.d.ts +9 -47
  300. package/dist/roap/index.js +100 -238
  301. package/dist/roap/index.js.map +1 -1
  302. package/dist/roap/request.d.ts +18 -12
  303. package/dist/roap/request.js +126 -180
  304. package/dist/roap/request.js.map +1 -1
  305. package/dist/roap/turnDiscovery.d.ts +27 -16
  306. package/dist/roap/turnDiscovery.js +115 -105
  307. package/dist/roap/turnDiscovery.js.map +1 -1
  308. package/dist/rtcMetrics/constants.d.ts +4 -0
  309. package/dist/rtcMetrics/constants.js +11 -0
  310. package/dist/rtcMetrics/constants.js.map +1 -0
  311. package/dist/rtcMetrics/index.d.ts +54 -0
  312. package/dist/rtcMetrics/index.js +140 -0
  313. package/dist/rtcMetrics/index.js.map +1 -0
  314. package/dist/statsAnalyzer/global.d.ts +1 -83
  315. package/dist/statsAnalyzer/global.js +2 -85
  316. package/dist/statsAnalyzer/global.js.map +1 -1
  317. package/dist/statsAnalyzer/index.d.ts +50 -30
  318. package/dist/statsAnalyzer/index.js +436 -511
  319. package/dist/statsAnalyzer/index.js.map +1 -1
  320. package/dist/statsAnalyzer/mqaUtil.d.ts +8 -6
  321. package/dist/statsAnalyzer/mqaUtil.js +130 -90
  322. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  323. package/dist/transcription/index.js +1 -2
  324. package/dist/transcription/index.js.map +1 -1
  325. package/dist/webinar/collection.d.ts +16 -0
  326. package/dist/webinar/collection.js +43 -0
  327. package/dist/webinar/collection.js.map +1 -0
  328. package/dist/webinar/index.d.ts +5 -0
  329. package/dist/webinar/index.js +68 -0
  330. package/dist/webinar/index.js.map +1 -0
  331. package/package.json +39 -26
  332. package/src/annotation/annotation.types.ts +50 -0
  333. package/src/annotation/constants.ts +36 -0
  334. package/src/annotation/index.ts +328 -0
  335. package/src/breakouts/README.md +220 -0
  336. package/src/breakouts/breakout.ts +188 -0
  337. package/src/breakouts/collection.ts +19 -0
  338. package/src/breakouts/edit-lock-error.ts +25 -0
  339. package/src/breakouts/events.ts +56 -0
  340. package/src/breakouts/index.ts +925 -0
  341. package/src/breakouts/request.ts +55 -0
  342. package/src/breakouts/utils.ts +57 -0
  343. package/src/common/errors/no-meeting-info.ts +24 -0
  344. package/src/common/errors/webex-errors.ts +36 -12
  345. package/src/common/logs/logger-proxy.ts +1 -1
  346. package/src/common/logs/request.ts +5 -1
  347. package/src/common/queue.ts +22 -8
  348. package/src/config.ts +6 -7
  349. package/src/constants.ts +265 -100
  350. package/src/controls-options-manager/enums.ts +12 -0
  351. package/src/controls-options-manager/index.ts +116 -21
  352. package/src/controls-options-manager/types.ts +59 -0
  353. package/src/controls-options-manager/util.ts +294 -14
  354. package/src/index.ts +44 -0
  355. package/src/interceptors/index.ts +3 -0
  356. package/src/interceptors/locusRetry.ts +67 -0
  357. package/src/interpretation/README.md +60 -0
  358. package/src/interpretation/collection.ts +19 -0
  359. package/src/interpretation/index.ts +332 -0
  360. package/src/interpretation/siLanguage.ts +18 -0
  361. package/src/locus-info/controlsUtils.ts +110 -0
  362. package/src/locus-info/index.ts +450 -61
  363. package/src/locus-info/infoUtils.ts +14 -2
  364. package/src/locus-info/mediaSharesUtils.ts +64 -0
  365. package/src/locus-info/parser.ts +258 -47
  366. package/src/locus-info/selfUtils.ts +85 -2
  367. package/src/media/index.ts +153 -370
  368. package/src/media/properties.ts +106 -136
  369. package/src/media/util.ts +0 -21
  370. package/src/mediaQualityMetrics/config.ts +244 -377
  371. package/src/meeting/in-meeting-actions.ts +176 -0
  372. package/src/meeting/index.ts +4306 -2581
  373. package/src/meeting/locusMediaRequest.ts +313 -0
  374. package/src/meeting/muteState.ts +224 -138
  375. package/src/meeting/request.ts +214 -127
  376. package/src/meeting/request.type.ts +13 -0
  377. package/src/meeting/util.ts +687 -423
  378. package/src/meeting/voicea-meeting.ts +161 -0
  379. package/src/meeting-info/index.ts +81 -8
  380. package/src/meeting-info/meeting-info-v2.ts +163 -13
  381. package/src/meeting-info/util.ts +1 -1
  382. package/src/meeting-info/utilv2.ts +28 -28
  383. package/src/meetings/collection.ts +33 -0
  384. package/src/meetings/index.ts +529 -127
  385. package/src/meetings/meetings.types.ts +12 -0
  386. package/src/meetings/request.ts +2 -0
  387. package/src/meetings/util.ts +116 -5
  388. package/src/member/index.ts +43 -1
  389. package/src/member/types.ts +38 -0
  390. package/src/member/util.ts +125 -28
  391. package/src/members/collection.ts +8 -0
  392. package/src/members/index.ts +187 -52
  393. package/src/members/request.ts +87 -27
  394. package/src/members/util.ts +332 -291
  395. package/src/metrics/constants.ts +15 -6
  396. package/src/metrics/index.ts +1 -471
  397. package/src/multistream/mediaRequestManager.ts +440 -0
  398. package/src/multistream/receiveSlot.ts +184 -0
  399. package/src/multistream/receiveSlotManager.ts +166 -0
  400. package/src/multistream/remoteMedia.ts +254 -0
  401. package/src/multistream/remoteMediaGroup.ts +284 -0
  402. package/src/multistream/remoteMediaManager.ts +1145 -0
  403. package/src/multistream/sendSlotManager.ts +170 -0
  404. package/src/networkQualityMonitor/index.ts +6 -6
  405. package/src/reachability/clusterReachability.ts +320 -0
  406. package/src/reachability/index.ts +246 -347
  407. package/src/reachability/request.ts +17 -8
  408. package/src/reachability/util.ts +24 -0
  409. package/src/reactions/constants.ts +4 -0
  410. package/src/reactions/reactions.ts +4 -4
  411. package/src/reactions/reactions.type.ts +30 -4
  412. package/src/reconnection-manager/index.ts +168 -156
  413. package/src/recording-controller/index.ts +20 -3
  414. package/src/recording-controller/util.ts +26 -9
  415. package/src/roap/index.ts +96 -241
  416. package/src/roap/request.ts +74 -148
  417. package/src/roap/turnDiscovery.ts +62 -56
  418. package/src/rtcMetrics/constants.ts +3 -0
  419. package/src/rtcMetrics/index.ts +124 -0
  420. package/src/statsAnalyzer/global.ts +1 -84
  421. package/src/statsAnalyzer/index.ts +479 -645
  422. package/src/statsAnalyzer/mqaUtil.ts +128 -126
  423. package/src/webinar/collection.ts +31 -0
  424. package/src/webinar/index.ts +62 -0
  425. package/test/integration/spec/converged-space-meetings.js +233 -0
  426. package/test/integration/spec/journey.js +320 -264
  427. package/test/integration/spec/space-meeting.js +77 -4
  428. package/test/unit/spec/annotation/index.ts +418 -0
  429. package/test/unit/spec/breakouts/breakout.ts +237 -0
  430. package/test/unit/spec/breakouts/collection.ts +15 -0
  431. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  432. package/test/unit/spec/breakouts/events.ts +89 -0
  433. package/test/unit/spec/breakouts/index.ts +1790 -0
  434. package/test/unit/spec/breakouts/request.ts +104 -0
  435. package/test/unit/spec/breakouts/utils.js +72 -0
  436. package/test/unit/spec/common/queue.js +31 -2
  437. package/test/unit/spec/controls-options-manager/index.js +163 -0
  438. package/test/unit/spec/controls-options-manager/util.js +576 -60
  439. package/test/unit/spec/fixture/locus.js +1 -0
  440. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  441. package/test/unit/spec/interpretation/collection.ts +15 -0
  442. package/test/unit/spec/interpretation/index.ts +589 -0
  443. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  444. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  445. package/test/unit/spec/locus-info/index.js +1438 -16
  446. package/test/unit/spec/locus-info/infoUtils.js +54 -16
  447. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  448. package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
  449. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  450. package/test/unit/spec/locus-info/parser.js +116 -35
  451. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  452. package/test/unit/spec/media/index.ts +290 -0
  453. package/test/unit/spec/media/properties.ts +75 -84
  454. package/test/unit/spec/meeting/in-meeting-actions.ts +86 -0
  455. package/test/unit/spec/meeting/index.js +8886 -2815
  456. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  457. package/test/unit/spec/meeting/muteState.js +409 -213
  458. package/test/unit/spec/meeting/request.js +523 -43
  459. package/test/unit/spec/meeting/utils.js +834 -24
  460. package/test/unit/spec/meeting-info/index.js +300 -0
  461. package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
  462. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  463. package/test/unit/spec/meetings/collection.js +26 -0
  464. package/test/unit/spec/meetings/index.js +1446 -217
  465. package/test/unit/spec/meetings/utils.js +202 -2
  466. package/test/unit/spec/member/index.js +32 -9
  467. package/test/unit/spec/member/util.js +499 -61
  468. package/test/unit/spec/members/index.js +394 -5
  469. package/test/unit/spec/members/request.js +206 -27
  470. package/test/unit/spec/members/utils.js +173 -38
  471. package/test/unit/spec/metrics/index.js +1 -50
  472. package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
  473. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  474. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  475. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  476. package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
  477. package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
  478. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  479. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  480. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  481. package/test/unit/spec/reachability/index.ts +532 -24
  482. package/test/unit/spec/reachability/request.js +68 -0
  483. package/test/unit/spec/reachability/util.ts +40 -0
  484. package/test/unit/spec/reconnection-manager/index.js +163 -24
  485. package/test/unit/spec/recording-controller/index.js +293 -218
  486. package/test/unit/spec/recording-controller/util.js +223 -96
  487. package/test/unit/spec/roap/index.ts +187 -77
  488. package/test/unit/spec/roap/request.ts +255 -0
  489. package/test/unit/spec/roap/turnDiscovery.ts +86 -48
  490. package/test/unit/spec/rtcMetrics/index.ts +93 -0
  491. package/test/unit/spec/stats-analyzer/index.js +644 -165
  492. package/test/unit/spec/webinar/collection.ts +13 -0
  493. package/test/unit/spec/webinar/index.ts +60 -0
  494. package/test/utils/constants.js +9 -0
  495. package/test/utils/integrationTestUtils.js +46 -0
  496. package/test/utils/testUtils.js +0 -45
  497. package/test/utils/webex-config.js +4 -0
  498. package/test/utils/webex-test-users.js +7 -3
  499. package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
  500. package/dist/meeting/effectsState.d.ts +0 -42
  501. package/dist/meeting/effectsState.js +0 -260
  502. package/dist/meeting/effectsState.js.map +0 -1
  503. package/dist/metrics/config.d.ts +0 -169
  504. package/dist/metrics/config.js +0 -289
  505. package/dist/metrics/config.js.map +0 -1
  506. package/dist/peer-connection-manager/index.d.ts +0 -6
  507. package/dist/peer-connection-manager/index.js +0 -671
  508. package/dist/peer-connection-manager/index.js.map +0 -1
  509. package/dist/peer-connection-manager/util.d.ts +0 -6
  510. package/dist/peer-connection-manager/util.js +0 -110
  511. package/dist/peer-connection-manager/util.js.map +0 -1
  512. package/dist/roap/collection.d.ts +0 -10
  513. package/dist/roap/collection.js +0 -63
  514. package/dist/roap/collection.js.map +0 -1
  515. package/dist/roap/handler.d.ts +0 -47
  516. package/dist/roap/handler.js +0 -279
  517. package/dist/roap/handler.js.map +0 -1
  518. package/dist/roap/state.d.ts +0 -9
  519. package/dist/roap/state.js +0 -127
  520. package/dist/roap/state.js.map +0 -1
  521. package/dist/roap/util.d.ts +0 -2
  522. package/dist/roap/util.js +0 -76
  523. package/dist/roap/util.js.map +0 -1
  524. package/src/index.js +0 -15
  525. package/src/meeting/effectsState.ts +0 -209
  526. package/src/metrics/config.ts +0 -485
  527. package/src/peer-connection-manager/index.ts +0 -847
  528. package/src/peer-connection-manager/util.ts +0 -119
  529. package/src/roap/collection.ts +0 -62
  530. package/src/roap/handler.ts +0 -294
  531. package/src/roap/state.ts +0 -156
  532. package/src/roap/util.ts +0 -100
  533. package/test/unit/spec/meeting/effectsState.js +0 -281
  534. package/test/unit/spec/peerconnection-manager/index.js +0 -218
  535. package/test/unit/spec/peerconnection-manager/utils.js +0 -49
  536. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
  537. package/test/unit/spec/roap/util.js +0 -30
  538. /package/dist/common/errors/{reclaim-host-role-error.d.ts → reclaim-host-role-errors.d.ts} +0 -0
  539. /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,43 @@ 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
+ // append installationId to device config if it exists
116
189
  // @ts-ignore
117
- if (this.webex.meetings.clientRegion) {
190
+ if (this.webex.internal.device.config.installationId) {
118
191
  // @ts-ignore
119
- body.device.countryCode = this.webex.meetings.clientRegion.countryCode;
192
+ body.device.installationId = this.webex.internal.device.config.installationId;
193
+ }
194
+
195
+ if (locale) {
196
+ body.locale = locale;
197
+ }
198
+
199
+ // add deviceCapabilities prop
200
+ if (deviceCapabilities.length) {
201
+ body.deviceCapabilities = deviceCapabilities;
202
+ }
203
+ // @ts-ignore
204
+ if (this.webex.meetings.geoHintInfo) {
205
+ // @ts-ignore
206
+ body.device.countryCode = this.webex.meetings.geoHintInfo.countryCode;
120
207
  // @ts-ignore
121
- body.device.regionCode = this.webex.meetings.clientRegion.regionCode;
208
+ body.device.regionCode = this.webex.meetings.geoHintInfo.regionCode;
209
+ body.device.localIp =
210
+ // @ts-ignore
211
+ CallDiagnosticUtils.anonymizeIPAddress(this.webex.meetings.geoHintInfo.clientAddress) ||
212
+ undefined;
122
213
  }
123
214
 
124
215
  if (moderator !== undefined) {
@@ -137,10 +228,18 @@ export default class MeetingRequest extends StatelessWebexPlugin {
137
228
  url = `${locusUrl}/${PARTICIPANT}`;
138
229
  } else if (inviteeAddress || meetingNumber) {
139
230
  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}`;
231
+ let clusterUrl;
232
+
233
+ if (locusClusterUrl) {
234
+ clusterUrl = `https://${locusClusterUrl}/locus/api/v1`;
235
+ } else {
236
+ // @ts-ignore
237
+ await this.webex.internal.services.waitForCatalog('postauth');
238
+ // @ts-ignore
239
+ clusterUrl = this.webex.internal.services.get('locus');
240
+ }
241
+
242
+ url = `${clusterUrl}/${LOCI}/${CALL}`;
144
243
  body.invitee = {
145
244
  address: inviteeAddress || `wbxmn:${meetingNumber}`,
146
245
  };
@@ -242,7 +341,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
242
341
  };
243
342
 
244
343
  // @ts-ignore
245
- return this.request({
344
+ return this.locusDeltaRequest({
246
345
  method: HTTP_VERBS.POST,
247
346
  uri,
248
347
  body,
@@ -297,7 +396,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
297
396
  };
298
397
 
299
398
  // @ts-ignore
300
- return this.request({
399
+ return this.locusDeltaRequest({
301
400
  method: HTTP_VERBS.POST,
302
401
  uri,
303
402
  body,
@@ -311,65 +410,25 @@ export default class MeetingRequest extends StatelessWebexPlugin {
311
410
  }
312
411
 
313
412
  /**
314
- * Syns the missed delta event
413
+ * Sends a requests to get the latest locus DTO, it might be a full Locus or a delta, depending on the url provided
315
414
  * @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
415
  * @param {String} options.locusUrl sync url to get ht elatest locus delta
352
416
  * @returns {Promise}
353
417
  */
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
- }
418
+ getLocusDTO(options: {url: string}) {
419
+ const {url} = options;
362
420
 
421
+ if (url) {
363
422
  // @ts-ignore
364
423
  return this.request({
365
424
  method: HTTP_VERBS.GET,
366
- uri: locusUrl,
425
+ uri: url,
367
426
  }).catch((err) => {
368
427
  LoggerProxy.logger.error(
369
- `Meeting:request#getFullLocus --> Error getting full locus, error ${err}`
428
+ `Meeting:request#getLocusDTO --> Error getting latest locus, error ${err}`
370
429
  );
371
430
 
372
- return err;
431
+ throw err;
373
432
  });
374
433
  }
375
434
 
@@ -412,7 +471,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
412
471
  };
413
472
 
414
473
  // @ts-ignore
415
- return this.request({
474
+ return this.locusDeltaRequest({
416
475
  method: HTTP_VERBS.PUT,
417
476
  uri,
418
477
  body,
@@ -426,13 +485,49 @@ export default class MeetingRequest extends StatelessWebexPlugin {
426
485
  }
427
486
 
428
487
  /**
429
- * Make a network request to leave a meeting
488
+ * Prepares request options to to leave a meeting
430
489
  * @param {Object} options
431
490
  * @param {Url} options.locusUrl
432
491
  * @param {String} options.selfId
433
492
  * @param {Url} options.deviceUrl
434
493
  * @param {String} options.resourceId,
435
494
  * @param {String} options.correlationId
495
+ * @returns {Object} request options
496
+ */
497
+ prepareLeaveMeetingRequestOptions({
498
+ locusUrl,
499
+ selfId,
500
+ deviceUrl: url,
501
+ resourceId,
502
+ correlationId,
503
+ }: {
504
+ locusUrl: string;
505
+ selfId: string;
506
+ deviceUrl: string;
507
+ resourceId: string;
508
+ correlationId: string;
509
+ }) {
510
+ const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;
511
+ const body = {
512
+ device: {
513
+ // @ts-ignore
514
+ deviceType: this.config.meetings.deviceType,
515
+ url,
516
+ },
517
+ usingResource: resourceId || null,
518
+ correlationId,
519
+ };
520
+
521
+ return {
522
+ method: HTTP_VERBS.PUT,
523
+ uri,
524
+ body,
525
+ };
526
+ }
527
+
528
+ /**
529
+ * Make a network request to leave a meeting
530
+ * @param {Object} options
436
531
  * @returns {Promise}
437
532
  */
438
533
  leaveMeeting({
@@ -461,14 +556,22 @@ export default class MeetingRequest extends StatelessWebexPlugin {
461
556
  correlationId,
462
557
  };
463
558
 
464
- // @ts-ignore
465
- return this.request({
559
+ return this.locusDeltaRequest({
466
560
  method: HTTP_VERBS.PUT,
467
561
  uri,
468
562
  body,
469
563
  });
470
564
  }
471
565
 
566
+ /**
567
+ * Builds request options to leave a meeting
568
+ * @param {Object} options
569
+ * @returns {Object} request options
570
+ */
571
+ buildLeaveMeetingRequestOptions(options: any) {
572
+ return this.buildLocusDeltaRequestOptions(this.prepareLeaveMeetingRequestOptions(options));
573
+ }
574
+
472
575
  /**
473
576
  * Make a network request to acknowledge a meeting
474
577
  * @param {Object} options
@@ -488,14 +591,19 @@ export default class MeetingRequest extends StatelessWebexPlugin {
488
591
  correlationId: options.correlationId,
489
592
  };
490
593
 
491
- // @ts-ignore
492
- return this.request({
594
+ return this.locusDeltaRequest({
493
595
  method: HTTP_VERBS.PUT,
494
596
  uri,
495
597
  body,
496
598
  });
497
599
  }
498
600
 
601
+ /**
602
+ * Makes a network request to lock the meeting
603
+ * @param {Object} options
604
+ * @param {Boolean} options.lock Whether it is locked or not
605
+ * @returns {Promise}
606
+ */
499
607
  lockMeeting(options) {
500
608
  const uri = `${options.locusUrl}/${CONTROLS}`;
501
609
  const body = {
@@ -504,8 +612,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
504
612
  },
505
613
  };
506
614
 
507
- // @ts-ignore
508
- return this.request({
615
+ return this.locusDeltaRequest({
509
616
  method: HTTP_VERBS.PATCH,
510
617
  uri,
511
618
  body,
@@ -531,53 +638,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
531
638
  ...(options.reason && {reason: options.reason}),
532
639
  };
533
640
 
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({
641
+ return this.locusDeltaRequest({
581
642
  method: HTTP_VERBS.PUT,
582
643
  uri,
583
644
  body,
@@ -602,6 +663,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
602
663
  deviceUrl: string;
603
664
  resourceId: string;
604
665
  uri: string;
666
+ annotationInfo: AnnotationInfo;
605
667
  }
606
668
  | any
607
669
  ) {
@@ -635,6 +697,9 @@ export default class MeetingRequest extends StatelessWebexPlugin {
635
697
  if (options?.resourceToken) {
636
698
  body.resourceToken = options?.resourceToken;
637
699
  }
700
+ if (options?.annotationInfo) {
701
+ body.annotation = options?.annotationInfo;
702
+ }
638
703
 
639
704
  // @ts-ignore
640
705
  return this.request({
@@ -654,7 +719,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
654
719
  */
655
720
  sendDTMF({locusUrl, deviceUrl, tones}: {locusUrl: string; deviceUrl: string; tones: string}) {
656
721
  // @ts-ignore
657
- return this.request({
722
+ return this.locusDeltaRequest({
658
723
  method: HTTP_VERBS.POST,
659
724
  uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,
660
725
  body: {
@@ -735,7 +800,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
735
800
  : undefined;
736
801
 
737
802
  // @ts-ignore
738
- return this.request({
803
+ return this.locusDeltaRequest({
739
804
  method: HTTP_VERBS.PUT,
740
805
  uri: `${locusUrl}/${CONTROLS}`,
741
806
  body: {
@@ -758,7 +823,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
758
823
  const uri = `${locusUrl}/${END}`;
759
824
 
760
825
  // @ts-ignore
761
- return this.request({
826
+ return this.locusDeltaRequest({
762
827
  method: HTTP_VERBS.POST,
763
828
  uri,
764
829
  });
@@ -786,15 +851,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
786
851
  * @param {string} options.senderID
787
852
  * @returns {Promise}
788
853
  */
789
- sendReaction({
790
- reactionChannelUrl,
791
- reaction,
792
- participantId,
793
- }: {
794
- reactionChannelUrl: string;
795
- reaction: Reaction;
796
- participantId: string;
797
- }) {
854
+ sendReaction({reactionChannelUrl, reaction, participantId}: SendReactionOptions) {
798
855
  const uri = reactionChannelUrl;
799
856
 
800
857
  // @ts-ignore
@@ -807,4 +864,34 @@ export default class MeetingRequest extends StatelessWebexPlugin {
807
864
  },
808
865
  });
809
866
  }
867
+
868
+ /**
869
+ * Make a network request to enable or disable reactions.
870
+ * @param {boolean} options.enable - determines if we need to enable or disable.
871
+ * @param {locusUrl} options.locusUrl
872
+ * @returns {Promise}
873
+ */
874
+ toggleReactions({enable, locusUrl, requestingParticipantId}: ToggleReactionsOptions) {
875
+ const uri = `${locusUrl}/${CONTROLS}`;
876
+
877
+ // @ts-ignore
878
+ return this.locusDeltaRequest({
879
+ method: HTTP_VERBS.PUT,
880
+ uri,
881
+ body: {
882
+ reactions: {
883
+ enabled: enable,
884
+ },
885
+ requestingParticipantId,
886
+ },
887
+ });
888
+ }
889
+
890
+ getLocusStatusByUrl(locusUrl: string) {
891
+ // @ts-ignore
892
+ return this.request({
893
+ method: HTTP_VERBS.GET,
894
+ uri: locusUrl,
895
+ });
896
+ }
810
897
  }
@@ -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
+ };