@webex/plugin-meetings 3.0.0-beta.22 → 3.0.0-beta.221

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 (419) hide show
  1. package/README.md +46 -8
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +342 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +114 -14
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/edit-lock-error.js +52 -0
  11. package/dist/breakouts/edit-lock-error.js.map +1 -0
  12. package/dist/breakouts/events.js +45 -0
  13. package/dist/breakouts/events.js.map +1 -0
  14. package/dist/breakouts/index.js +841 -19
  15. package/dist/breakouts/index.js.map +1 -1
  16. package/dist/breakouts/request.js +78 -0
  17. package/dist/breakouts/request.js.map +1 -0
  18. package/dist/breakouts/utils.js +67 -0
  19. package/dist/breakouts/utils.js.map +1 -0
  20. package/dist/common/errors/webex-errors.js +3 -2
  21. package/dist/common/errors/webex-errors.js.map +1 -1
  22. package/dist/common/logs/logger-proxy.js +1 -1
  23. package/dist/common/logs/logger-proxy.js.map +1 -1
  24. package/dist/common/queue.js +24 -9
  25. package/dist/common/queue.js.map +1 -1
  26. package/dist/config.js +3 -8
  27. package/dist/config.js.map +1 -1
  28. package/dist/constants.js +188 -30
  29. package/dist/constants.js.map +1 -1
  30. package/dist/controls-options-manager/constants.js +14 -0
  31. package/dist/controls-options-manager/constants.js.map +1 -0
  32. package/dist/controls-options-manager/enums.js +27 -0
  33. package/dist/controls-options-manager/enums.js.map +1 -0
  34. package/dist/controls-options-manager/index.js +297 -0
  35. package/dist/controls-options-manager/index.js.map +1 -0
  36. package/dist/controls-options-manager/types.js +7 -0
  37. package/dist/controls-options-manager/types.js.map +1 -0
  38. package/dist/controls-options-manager/util.js +319 -0
  39. package/dist/controls-options-manager/util.js.map +1 -0
  40. package/dist/index.js +106 -1
  41. package/dist/index.js.map +1 -1
  42. package/dist/interpretation/collection.js +23 -0
  43. package/dist/interpretation/collection.js.map +1 -0
  44. package/dist/interpretation/index.js +366 -0
  45. package/dist/interpretation/index.js.map +1 -0
  46. package/dist/interpretation/siLanguage.js +25 -0
  47. package/dist/interpretation/siLanguage.js.map +1 -0
  48. package/dist/locus-info/controlsUtils.js +91 -2
  49. package/dist/locus-info/controlsUtils.js.map +1 -1
  50. package/dist/locus-info/index.js +357 -62
  51. package/dist/locus-info/index.js.map +1 -1
  52. package/dist/locus-info/infoUtils.js +7 -1
  53. package/dist/locus-info/infoUtils.js.map +1 -1
  54. package/dist/locus-info/mediaSharesUtils.js +43 -1
  55. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  56. package/dist/locus-info/parser.js +219 -63
  57. package/dist/locus-info/parser.js.map +1 -1
  58. package/dist/locus-info/selfUtils.js +89 -14
  59. package/dist/locus-info/selfUtils.js.map +1 -1
  60. package/dist/media/index.js +49 -106
  61. package/dist/media/index.js.map +1 -1
  62. package/dist/media/properties.js +29 -90
  63. package/dist/media/properties.js.map +1 -1
  64. package/dist/mediaQualityMetrics/config.js +505 -493
  65. package/dist/mediaQualityMetrics/config.js.map +1 -1
  66. package/dist/meeting/in-meeting-actions.js +90 -2
  67. package/dist/meeting/in-meeting-actions.js.map +1 -1
  68. package/dist/meeting/index.js +2587 -2560
  69. package/dist/meeting/index.js.map +1 -1
  70. package/dist/meeting/locusMediaRequest.js +292 -0
  71. package/dist/meeting/locusMediaRequest.js.map +1 -0
  72. package/dist/meeting/muteState.js +228 -123
  73. package/dist/meeting/muteState.js.map +1 -1
  74. package/dist/meeting/request.js +244 -194
  75. package/dist/meeting/request.js.map +1 -1
  76. package/dist/meeting/util.js +568 -414
  77. package/dist/meeting/util.js.map +1 -1
  78. package/dist/meeting-info/index.js +48 -7
  79. package/dist/meeting-info/index.js.map +1 -1
  80. package/dist/meeting-info/meeting-info-v2.js +171 -51
  81. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  82. package/dist/meeting-info/utilv2.js +20 -5
  83. package/dist/meeting-info/utilv2.js.map +1 -1
  84. package/dist/meetings/collection.js +22 -0
  85. package/dist/meetings/collection.js.map +1 -1
  86. package/dist/meetings/index.js +361 -84
  87. package/dist/meetings/index.js.map +1 -1
  88. package/dist/meetings/meetings.types.js +7 -0
  89. package/dist/meetings/meetings.types.js.map +1 -0
  90. package/dist/meetings/request.js +2 -0
  91. package/dist/meetings/request.js.map +1 -1
  92. package/dist/meetings/util.js +88 -1
  93. package/dist/meetings/util.js.map +1 -1
  94. package/dist/member/index.js +49 -0
  95. package/dist/member/index.js.map +1 -1
  96. package/dist/member/types.js +25 -0
  97. package/dist/member/types.js.map +1 -0
  98. package/dist/member/util.js +121 -25
  99. package/dist/member/util.js.map +1 -1
  100. package/dist/members/collection.js +10 -0
  101. package/dist/members/collection.js.map +1 -1
  102. package/dist/members/index.js +86 -5
  103. package/dist/members/index.js.map +1 -1
  104. package/dist/members/request.js +106 -38
  105. package/dist/members/request.js.map +1 -1
  106. package/dist/members/types.js +15 -0
  107. package/dist/members/types.js.map +1 -0
  108. package/dist/members/util.js +316 -233
  109. package/dist/members/util.js.map +1 -1
  110. package/dist/metrics/constants.js +3 -5
  111. package/dist/metrics/constants.js.map +1 -1
  112. package/dist/metrics/index.js +1 -468
  113. package/dist/metrics/index.js.map +1 -1
  114. package/dist/multistream/mediaRequestManager.js +238 -49
  115. package/dist/multistream/mediaRequestManager.js.map +1 -1
  116. package/dist/multistream/receiveSlot.js +49 -16
  117. package/dist/multistream/receiveSlot.js.map +1 -1
  118. package/dist/multistream/receiveSlotManager.js +52 -34
  119. package/dist/multistream/receiveSlotManager.js.map +1 -1
  120. package/dist/multistream/remoteMedia.js +44 -18
  121. package/dist/multistream/remoteMedia.js.map +1 -1
  122. package/dist/multistream/remoteMediaGroup.js +60 -3
  123. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  124. package/dist/multistream/remoteMediaManager.js +173 -59
  125. package/dist/multistream/remoteMediaManager.js.map +1 -1
  126. package/dist/networkQualityMonitor/index.js +4 -2
  127. package/dist/networkQualityMonitor/index.js.map +1 -1
  128. package/dist/reachability/index.js +90 -30
  129. package/dist/reachability/index.js.map +1 -1
  130. package/dist/reachability/request.js +16 -7
  131. package/dist/reachability/request.js.map +1 -1
  132. package/dist/reconnection-manager/index.js +196 -155
  133. package/dist/reconnection-manager/index.js.map +1 -1
  134. package/dist/recording-controller/index.js +21 -2
  135. package/dist/recording-controller/index.js.map +1 -1
  136. package/dist/recording-controller/util.js +9 -8
  137. package/dist/recording-controller/util.js.map +1 -1
  138. package/dist/roap/index.js +25 -29
  139. package/dist/roap/index.js.map +1 -1
  140. package/dist/roap/request.js +111 -89
  141. package/dist/roap/request.js.map +1 -1
  142. package/dist/roap/turnDiscovery.js +97 -36
  143. package/dist/roap/turnDiscovery.js.map +1 -1
  144. package/dist/rtcMetrics/constants.js +12 -0
  145. package/dist/rtcMetrics/constants.js.map +1 -0
  146. package/dist/rtcMetrics/index.js +117 -0
  147. package/dist/rtcMetrics/index.js.map +1 -0
  148. package/dist/statsAnalyzer/global.js +1 -93
  149. package/dist/statsAnalyzer/global.js.map +1 -1
  150. package/dist/statsAnalyzer/index.js +326 -311
  151. package/dist/statsAnalyzer/index.js.map +1 -1
  152. package/dist/statsAnalyzer/mqaUtil.js +90 -53
  153. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  154. package/dist/types/annotation/annotation.types.d.ts +42 -0
  155. package/dist/types/annotation/constants.d.ts +31 -0
  156. package/dist/types/annotation/index.d.ts +117 -0
  157. package/dist/types/breakouts/breakout.d.ts +8 -0
  158. package/dist/types/breakouts/collection.d.ts +5 -0
  159. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  160. package/dist/types/breakouts/events.d.ts +8 -0
  161. package/dist/types/breakouts/index.d.ts +5 -0
  162. package/dist/types/breakouts/request.d.ts +22 -0
  163. package/dist/types/breakouts/utils.d.ts +15 -0
  164. package/dist/types/common/browser-detection.d.ts +9 -0
  165. package/dist/types/common/collection.d.ts +48 -0
  166. package/dist/types/common/config.d.ts +2 -0
  167. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  168. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  169. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  170. package/dist/types/common/errors/media.d.ts +15 -0
  171. package/dist/types/common/errors/parameter.d.ts +15 -0
  172. package/dist/types/common/errors/password-error.d.ts +15 -0
  173. package/dist/types/common/errors/permission.d.ts +14 -0
  174. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  175. package/dist/types/common/errors/reconnection.d.ts +15 -0
  176. package/dist/types/common/errors/stats.d.ts +15 -0
  177. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  178. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  179. package/dist/types/common/events/events-scope.d.ts +17 -0
  180. package/dist/types/common/events/events.d.ts +12 -0
  181. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  182. package/dist/types/common/events/util.d.ts +2 -0
  183. package/dist/types/common/logs/logger-config.d.ts +2 -0
  184. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  185. package/dist/types/common/logs/request.d.ts +34 -0
  186. package/dist/types/common/queue.d.ts +34 -0
  187. package/dist/types/config.d.ts +72 -0
  188. package/dist/types/constants.d.ts +1028 -0
  189. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  190. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  191. package/dist/types/controls-options-manager/index.d.ts +136 -0
  192. package/dist/types/controls-options-manager/types.d.ts +43 -0
  193. package/dist/types/controls-options-manager/util.d.ts +1 -0
  194. package/dist/types/index.d.ts +7 -0
  195. package/dist/types/interpretation/collection.d.ts +5 -0
  196. package/dist/types/interpretation/index.d.ts +5 -0
  197. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  198. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  199. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  200. package/dist/types/locus-info/fullState.d.ts +2 -0
  201. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  202. package/dist/types/locus-info/index.d.ts +322 -0
  203. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  204. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  205. package/dist/types/locus-info/parser.d.ts +271 -0
  206. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  207. package/dist/types/media/index.d.ts +34 -0
  208. package/dist/types/media/properties.d.ts +93 -0
  209. package/dist/types/media/util.d.ts +2 -0
  210. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  211. package/dist/types/meeting/in-meeting-actions.d.ts +163 -0
  212. package/dist/types/meeting/index.d.ts +1512 -0
  213. package/dist/types/meeting/locusMediaRequest.d.ts +75 -0
  214. package/dist/types/meeting/muteState.d.ts +184 -0
  215. package/dist/types/meeting/request.d.ts +289 -0
  216. package/dist/types/meeting/request.type.d.ts +11 -0
  217. package/dist/types/meeting/state.d.ts +9 -0
  218. package/dist/types/meeting/util.d.ts +94 -0
  219. package/dist/types/meeting-info/collection.d.ts +20 -0
  220. package/dist/types/meeting-info/index.d.ts +62 -0
  221. package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
  222. package/dist/types/meeting-info/request.d.ts +22 -0
  223. package/dist/types/meeting-info/util.d.ts +2 -0
  224. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  225. package/dist/types/meetings/collection.d.ts +31 -0
  226. package/dist/types/meetings/index.d.ts +361 -0
  227. package/dist/types/meetings/meetings.types.d.ts +4 -0
  228. package/dist/types/meetings/request.d.ts +27 -0
  229. package/dist/types/meetings/util.d.ts +18 -0
  230. package/dist/types/member/index.d.ts +159 -0
  231. package/dist/types/member/types.d.ts +32 -0
  232. package/dist/types/member/util.d.ts +2 -0
  233. package/dist/types/members/collection.d.ts +29 -0
  234. package/dist/types/members/index.d.ts +353 -0
  235. package/dist/types/members/request.d.ts +114 -0
  236. package/dist/types/members/types.d.ts +24 -0
  237. package/dist/types/members/util.d.ts +210 -0
  238. package/dist/types/metrics/constants.d.ts +55 -0
  239. package/dist/types/metrics/index.d.ts +45 -0
  240. package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
  241. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  242. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  243. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  244. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  245. package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
  246. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  247. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  248. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  249. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  250. package/dist/types/reachability/index.d.ts +158 -0
  251. package/dist/types/reachability/request.d.ts +39 -0
  252. package/dist/types/reactions/constants.d.ts +3 -0
  253. package/dist/types/reactions/reactions.d.ts +4 -0
  254. package/dist/types/reactions/reactions.type.d.ts +52 -0
  255. package/dist/types/reconnection-manager/index.d.ts +126 -0
  256. package/dist/types/recording-controller/enums.d.ts +7 -0
  257. package/dist/types/recording-controller/index.d.ts +207 -0
  258. package/dist/types/recording-controller/util.d.ts +14 -0
  259. package/dist/types/roap/index.d.ts +77 -0
  260. package/dist/types/roap/request.d.ts +38 -0
  261. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  262. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  263. package/dist/types/rtcMetrics/index.d.ts +47 -0
  264. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  265. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  266. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  267. package/dist/types/transcription/index.d.ts +64 -0
  268. package/package.json +23 -20
  269. package/src/annotation/annotation.types.ts +50 -0
  270. package/src/annotation/constants.ts +36 -0
  271. package/src/annotation/index.ts +328 -0
  272. package/src/breakouts/README.md +44 -14
  273. package/src/breakouts/breakout.ts +87 -9
  274. package/src/breakouts/edit-lock-error.ts +25 -0
  275. package/src/breakouts/events.ts +56 -0
  276. package/src/breakouts/index.ts +710 -10
  277. package/src/breakouts/request.ts +55 -0
  278. package/src/breakouts/utils.ts +57 -0
  279. package/src/common/errors/webex-errors.ts +6 -2
  280. package/src/common/logs/logger-proxy.ts +1 -1
  281. package/src/common/queue.ts +22 -8
  282. package/src/config.ts +2 -7
  283. package/src/constants.ts +175 -21
  284. package/src/controls-options-manager/constants.ts +5 -0
  285. package/src/controls-options-manager/enums.ts +18 -0
  286. package/src/controls-options-manager/index.ts +278 -0
  287. package/src/controls-options-manager/types.ts +59 -0
  288. package/src/controls-options-manager/util.ts +300 -0
  289. package/src/index.ts +39 -0
  290. package/src/interpretation/README.md +60 -0
  291. package/src/interpretation/collection.ts +19 -0
  292. package/src/interpretation/index.ts +332 -0
  293. package/src/interpretation/siLanguage.ts +18 -0
  294. package/src/locus-info/controlsUtils.ts +108 -0
  295. package/src/locus-info/index.ts +381 -59
  296. package/src/locus-info/infoUtils.ts +10 -2
  297. package/src/locus-info/mediaSharesUtils.ts +48 -0
  298. package/src/locus-info/parser.ts +224 -39
  299. package/src/locus-info/selfUtils.ts +81 -5
  300. package/src/media/index.ts +89 -109
  301. package/src/media/properties.ts +49 -90
  302. package/src/mediaQualityMetrics/config.ts +379 -377
  303. package/src/meeting/in-meeting-actions.ts +179 -3
  304. package/src/meeting/index.ts +2062 -2137
  305. package/src/meeting/locusMediaRequest.ts +314 -0
  306. package/src/meeting/muteState.ts +227 -130
  307. package/src/meeting/request.ts +157 -116
  308. package/src/meeting/util.ts +555 -396
  309. package/src/meeting-info/index.ts +54 -8
  310. package/src/meeting-info/meeting-info-v2.ts +148 -14
  311. package/src/meeting-info/utilv2.ts +13 -3
  312. package/src/meetings/collection.ts +20 -0
  313. package/src/meetings/index.ts +397 -102
  314. package/src/meetings/meetings.types.ts +12 -0
  315. package/src/meetings/request.ts +2 -0
  316. package/src/meetings/util.ts +103 -4
  317. package/src/member/index.ts +49 -0
  318. package/src/member/types.ts +38 -0
  319. package/src/member/util.ts +127 -25
  320. package/src/members/collection.ts +8 -0
  321. package/src/members/index.ts +107 -6
  322. package/src/members/request.ts +97 -17
  323. package/src/members/types.ts +28 -0
  324. package/src/members/util.ts +319 -240
  325. package/src/metrics/constants.ts +2 -4
  326. package/src/metrics/index.ts +1 -490
  327. package/src/multistream/mediaRequestManager.ts +289 -79
  328. package/src/multistream/receiveSlot.ts +55 -18
  329. package/src/multistream/receiveSlotManager.ts +46 -24
  330. package/src/multistream/remoteMedia.ts +27 -2
  331. package/src/multistream/remoteMediaGroup.ts +59 -0
  332. package/src/multistream/remoteMediaManager.ts +113 -32
  333. package/src/networkQualityMonitor/index.ts +6 -6
  334. package/src/reachability/index.ts +76 -18
  335. package/src/reachability/request.ts +16 -7
  336. package/src/reconnection-manager/index.ts +68 -43
  337. package/src/recording-controller/index.ts +20 -3
  338. package/src/recording-controller/util.ts +26 -9
  339. package/src/roap/index.ts +25 -30
  340. package/src/roap/request.ts +103 -95
  341. package/src/roap/turnDiscovery.ts +51 -25
  342. package/src/rtcMetrics/constants.ts +3 -0
  343. package/src/rtcMetrics/index.ts +100 -0
  344. package/src/statsAnalyzer/global.ts +1 -94
  345. package/src/statsAnalyzer/index.ts +376 -386
  346. package/src/statsAnalyzer/mqaUtil.ts +100 -99
  347. package/test/integration/spec/converged-space-meetings.js +233 -0
  348. package/test/integration/spec/journey.js +336 -259
  349. package/test/integration/spec/space-meeting.js +77 -4
  350. package/test/unit/spec/annotation/index.ts +418 -0
  351. package/test/unit/spec/breakouts/breakout.ts +142 -24
  352. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  353. package/test/unit/spec/breakouts/events.ts +89 -0
  354. package/test/unit/spec/breakouts/index.ts +1545 -48
  355. package/test/unit/spec/breakouts/request.ts +104 -0
  356. package/test/unit/spec/breakouts/utils.js +72 -0
  357. package/test/unit/spec/common/queue.js +31 -2
  358. package/test/unit/spec/controls-options-manager/index.js +287 -0
  359. package/test/unit/spec/controls-options-manager/util.js +582 -0
  360. package/test/unit/spec/fixture/locus.js +1 -0
  361. package/test/unit/spec/interpretation/collection.ts +15 -0
  362. package/test/unit/spec/interpretation/index.ts +589 -0
  363. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  364. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  365. package/test/unit/spec/locus-info/index.js +1169 -36
  366. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  367. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  368. package/test/unit/spec/locus-info/parser.js +62 -22
  369. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  370. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  371. package/test/unit/spec/media/index.ts +138 -28
  372. package/test/unit/spec/meeting/in-meeting-actions.ts +89 -3
  373. package/test/unit/spec/meeting/index.js +3510 -1747
  374. package/test/unit/spec/meeting/locusMediaRequest.ts +443 -0
  375. package/test/unit/spec/meeting/muteState.js +370 -208
  376. package/test/unit/spec/meeting/request.js +417 -45
  377. package/test/unit/spec/meeting/utils.js +601 -53
  378. package/test/unit/spec/meeting-info/index.js +181 -0
  379. package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
  380. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  381. package/test/unit/spec/meetings/collection.js +14 -0
  382. package/test/unit/spec/meetings/index.js +874 -150
  383. package/test/unit/spec/meetings/utils.js +206 -2
  384. package/test/unit/spec/member/index.js +58 -4
  385. package/test/unit/spec/member/util.js +479 -35
  386. package/test/unit/spec/members/index.js +319 -1
  387. package/test/unit/spec/members/request.js +206 -27
  388. package/test/unit/spec/members/utils.js +184 -0
  389. package/test/unit/spec/metrics/index.js +1 -50
  390. package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
  391. package/test/unit/spec/multistream/receiveSlot.ts +72 -13
  392. package/test/unit/spec/multistream/receiveSlotManager.ts +58 -28
  393. package/test/unit/spec/multistream/remoteMedia.ts +30 -0
  394. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  395. package/test/unit/spec/multistream/remoteMediaManager.ts +318 -0
  396. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  397. package/test/unit/spec/reachability/index.ts +185 -7
  398. package/test/unit/spec/reachability/request.js +68 -0
  399. package/test/unit/spec/reconnection-manager/index.js +59 -6
  400. package/test/unit/spec/recording-controller/index.js +294 -218
  401. package/test/unit/spec/recording-controller/util.js +223 -96
  402. package/test/unit/spec/roap/index.ts +27 -51
  403. package/test/unit/spec/roap/request.ts +202 -85
  404. package/test/unit/spec/roap/turnDiscovery.ts +36 -8
  405. package/test/unit/spec/rtcMetrics/index.ts +68 -0
  406. package/test/unit/spec/stats-analyzer/index.js +92 -41
  407. package/test/utils/constants.js +9 -0
  408. package/test/utils/integrationTestUtils.js +46 -0
  409. package/test/utils/testUtils.js +0 -45
  410. package/test/utils/webex-config.js +4 -0
  411. package/test/utils/webex-test-users.js +6 -3
  412. package/dist/meeting/effectsState.js +0 -262
  413. package/dist/meeting/effectsState.js.map +0 -1
  414. package/dist/metrics/config.js +0 -299
  415. package/dist/metrics/config.js.map +0 -1
  416. package/src/index.js +0 -16
  417. package/src/meeting/effectsState.ts +0 -211
  418. package/src/metrics/config.ts +0 -495
  419. package/test/unit/spec/meeting/effectsState.js +0 -285
@@ -16,6 +16,7 @@ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/pr
16
16
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
17
17
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
18
18
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
19
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectWithoutProperties"));
19
20
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
20
21
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
21
22
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
@@ -29,6 +30,8 @@ var _webexCore = require("@webex/webex-core");
29
30
  var _common = require("@webex/common");
30
31
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
31
32
  var _constants = require("../constants");
33
+ var _util = _interopRequireDefault(require("./util"));
34
+ var _excluded = ["meeting"];
32
35
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
33
36
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
34
37
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
@@ -39,11 +42,58 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_R
39
42
  var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
40
43
  (0, _inherits2.default)(MeetingRequest, _StatelessWebexPlugin);
41
44
  var _super = _createSuper(MeetingRequest);
45
+ /**
46
+ * Constructor
47
+ * @param {Object} attrs
48
+ * @param {Object} options
49
+ */
42
50
  function MeetingRequest(attrs, options) {
43
51
  var _this;
44
52
  (0, _classCallCheck2.default)(this, MeetingRequest);
45
- _this = _super.call(this, attrs, options);
53
+ var meeting = attrs.meeting,
54
+ otherAttrs = (0, _objectWithoutProperties2.default)(attrs, _excluded);
55
+ _this = _super.call(this, otherAttrs, options);
46
56
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "changeVideoLayoutDebounced", void 0);
57
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingRef", void 0);
58
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "locusDeltaRequest", void 0);
59
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "buildLocusDeltaRequestOptions", void 0);
60
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getJoinCookie", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
61
+ var joinCookieRaw, joinCookie;
62
+ return _regenerator.default.wrap(function _callee$(_context) {
63
+ while (1) switch (_context.prev = _context.next) {
64
+ case 0:
65
+ _context.next = 2;
66
+ return _this.webex.boundedStorage.get(_constants.REACHABILITY.namespace, _constants.REACHABILITY.localStorageJoinCookie).catch(function () {});
67
+ case 2:
68
+ joinCookieRaw = _context.sent;
69
+ if (!joinCookieRaw) {
70
+ _context.next = 13;
71
+ break;
72
+ }
73
+ _context.prev = 4;
74
+ joinCookie = JSON.parse(joinCookieRaw);
75
+ if (!joinCookie) {
76
+ _context.next = 8;
77
+ break;
78
+ }
79
+ return _context.abrupt("return", joinCookie);
80
+ case 8:
81
+ _context.next = 13;
82
+ break;
83
+ case 10:
84
+ _context.prev = 10;
85
+ _context.t0 = _context["catch"](4);
86
+ _loggerProxy.default.logger.error("MeetingRequest#constructor --> Error in parsing join cookie data: ".concat(_context.t0));
87
+ case 13:
88
+ return _context.abrupt("return", null);
89
+ case 14:
90
+ case "end":
91
+ return _context.stop();
92
+ }
93
+ }, _callee, null, [[4, 10]]);
94
+ })));
95
+ _this.locusDeltaRequest = _util.default.generateLocusDeltaRequest(meeting);
96
+ _this.buildLocusDeltaRequestOptions = _util.default.generateBuildLocusDeltaRequestOptions(meeting);
47
97
  _this.changeVideoLayoutDebounced = (0, _debounce2.default)(_this.changeVideoLayout, 2000, {
48
98
  leading: true,
49
99
  trailing: true
@@ -52,32 +102,44 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
52
102
  }
53
103
 
54
104
  /**
55
- * Make a network request to join a meeting
56
- * @param {Object} options
57
- * @param {String} options.sipUri
58
- * @param {String} options.deviceUrl
59
- * @param {String} options.locusUrl
60
- * @param {String} options.resourceId,
61
- * @param {String} options.correlationId
62
- * @param {boolean} options.ensureConversation
63
- * @param {boolean} options.moderator
64
- * @param {boolean} options.pin
65
- * @param {boolean} options.moveToResource
66
- * @param {Object} options.roapMessage
67
- * @param {boolean} options.breakoutsSupported
68
- * @returns {Promise}
105
+ * Returns joinCookie from boundedStorage if present.
106
+ * @returns {Object} joinCookie
69
107
  */
70
108
  (0, _createClass2.default)(MeetingRequest, [{
71
109
  key: "joinMeeting",
72
- value: function () {
73
- var _joinMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(options) {
74
- var asResourceOccupant, inviteeAddress, meetingNumber, permissionToken, deviceUrl, locusUrl, resourceId, correlationId, ensureConversation, moderator, pin, moveToResource, roapMessage, preferTranscoding, breakoutsSupported, url, body;
75
- return _regenerator.default.wrap(function _callee$(_context) {
76
- while (1) switch (_context.prev = _context.next) {
110
+ value:
111
+ /**
112
+ * Make a network request to join a meeting
113
+ * @param {Object} options
114
+ * @param {String} options.sipUri
115
+ * @param {String} options.deviceUrl
116
+ * @param {String} options.locusUrl
117
+ * @param {String} options.resourceId,
118
+ * @param {String} options.correlationId
119
+ * @param {boolean} options.ensureConversation
120
+ * @param {boolean} options.moderator
121
+ * @param {boolean} options.pin
122
+ * @param {boolean} options.moveToResource
123
+ * @param {Object} options.roapMessage
124
+ * @param {boolean} options.breakoutsSupported
125
+ * @param {String} options.locale,
126
+ * @param {Array} options.deviceCapabilities
127
+ * @param {boolean} options.liveAnnotationSupported
128
+ * @returns {Promise}
129
+ */
130
+ function () {
131
+ var _joinMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(options) {
132
+ var asResourceOccupant, inviteeAddress, meetingNumber, permissionToken, deviceUrl, locusUrl, resourceId, correlationId, ensureConversation, moderator, pin, moveToResource, roapMessage, preferTranscoding, breakoutsSupported, locale, _options$deviceCapabi, deviceCapabilities, liveAnnotationSupported, ipVersion, url, joinCookie, body;
133
+ return _regenerator.default.wrap(function _callee2$(_context2) {
134
+ while (1) switch (_context2.prev = _context2.next) {
77
135
  case 0:
78
- asResourceOccupant = options.asResourceOccupant, inviteeAddress = options.inviteeAddress, meetingNumber = options.meetingNumber, permissionToken = options.permissionToken, deviceUrl = options.deviceUrl, locusUrl = options.locusUrl, resourceId = options.resourceId, correlationId = options.correlationId, ensureConversation = options.ensureConversation, moderator = options.moderator, pin = options.pin, moveToResource = options.moveToResource, roapMessage = options.roapMessage, preferTranscoding = options.preferTranscoding, breakoutsSupported = options.breakoutsSupported;
136
+ asResourceOccupant = options.asResourceOccupant, inviteeAddress = options.inviteeAddress, meetingNumber = options.meetingNumber, permissionToken = options.permissionToken, deviceUrl = options.deviceUrl, locusUrl = options.locusUrl, resourceId = options.resourceId, correlationId = options.correlationId, ensureConversation = options.ensureConversation, moderator = options.moderator, pin = options.pin, moveToResource = options.moveToResource, roapMessage = options.roapMessage, preferTranscoding = options.preferTranscoding, breakoutsSupported = options.breakoutsSupported, locale = options.locale, _options$deviceCapabi = options.deviceCapabilities, deviceCapabilities = _options$deviceCapabi === void 0 ? [] : _options$deviceCapabi, liveAnnotationSupported = options.liveAnnotationSupported, ipVersion = options.ipVersion;
79
137
  _loggerProxy.default.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);
80
138
  url = '';
139
+ _context2.next = 5;
140
+ return this.getJoinCookie();
141
+ case 5:
142
+ joinCookie = _context2.sent;
81
143
  body = {
82
144
  asResourceOccupant: asResourceOccupant,
83
145
  device: {
@@ -93,19 +155,31 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
93
155
  ensureConversation: ensureConversation || false,
94
156
  supportsNativeLobby: 1,
95
157
  clientMediaPreferences: {
96
- preferTranscoding: preferTranscoding !== null && preferTranscoding !== void 0 ? preferTranscoding : true
158
+ preferTranscoding: preferTranscoding !== null && preferTranscoding !== void 0 ? preferTranscoding : true,
159
+ joinCookie: joinCookie,
160
+ ipver: ipVersion
97
161
  }
98
162
  };
99
163
  if (breakoutsSupported) {
100
- body.deviceCapabilities = [_constants.BREAKOUTS.BREAKOUTS_SUPPORTED];
164
+ deviceCapabilities.push(_constants.BREAKOUTS.BREAKOUTS_SUPPORTED);
165
+ }
166
+ if (liveAnnotationSupported) {
167
+ deviceCapabilities.push(_constants.ANNOTATION.ANNOTATION_ON_SHARE_SUPPORTED);
168
+ }
169
+ if (locale) {
170
+ body.locale = locale;
101
171
  }
102
172
 
173
+ // add deviceCapabilities prop
174
+ if (deviceCapabilities.length) {
175
+ body.deviceCapabilities = deviceCapabilities;
176
+ }
103
177
  // @ts-ignore
104
- if (this.webex.meetings.clientRegion) {
178
+ if (this.webex.meetings.geoHintInfo) {
105
179
  // @ts-ignore
106
- body.device.countryCode = this.webex.meetings.clientRegion.countryCode;
180
+ body.device.countryCode = this.webex.meetings.geoHintInfo.countryCode;
107
181
  // @ts-ignore
108
- body.device.regionCode = this.webex.meetings.clientRegion.regionCode;
182
+ body.device.regionCode = this.webex.meetings.geoHintInfo.regionCode;
109
183
  }
110
184
  if (moderator !== undefined) {
111
185
  body.moderator = moderator;
@@ -117,34 +191,34 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
117
191
  body.pin = pin;
118
192
  }
119
193
  if (!locusUrl) {
120
- _context.next = 13;
194
+ _context2.next = 19;
121
195
  break;
122
196
  }
123
197
  url = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT);
124
- _context.next = 25;
198
+ _context2.next = 31;
125
199
  break;
126
- case 13:
200
+ case 19:
127
201
  if (!(inviteeAddress || meetingNumber)) {
128
- _context.next = 25;
202
+ _context2.next = 31;
129
203
  break;
130
204
  }
131
- _context.prev = 14;
132
- _context.next = 17;
205
+ _context2.prev = 20;
206
+ _context2.next = 23;
133
207
  return this.webex.internal.services.waitForCatalog('postauth');
134
- case 17:
208
+ case 23:
135
209
  // @ts-ignore
136
210
  url = "".concat(this.webex.internal.services.get('locus'), "/").concat(_constants.LOCI, "/").concat(_constants.CALL);
137
211
  body.invitee = {
138
212
  address: inviteeAddress || "wbxmn:".concat(meetingNumber)
139
213
  };
140
- _context.next = 25;
214
+ _context2.next = 31;
141
215
  break;
142
- case 21:
143
- _context.prev = 21;
144
- _context.t0 = _context["catch"](14);
145
- _loggerProxy.default.logger.error("Meeting:request#joinMeeting Error Joining ".concat(inviteeAddress || meetingNumber, " --> ").concat(_context.t0));
146
- throw _context.t0;
147
- case 25:
216
+ case 27:
217
+ _context2.prev = 27;
218
+ _context2.t0 = _context2["catch"](20);
219
+ _loggerProxy.default.logger.error("Meeting:request#joinMeeting Error Joining ".concat(inviteeAddress || meetingNumber, " --> ").concat(_context2.t0));
220
+ throw _context2.t0;
221
+ case 31:
148
222
  // TODO: -- this will be resolved in SDK request
149
223
  url = url.concat("?".concat(_constants.ALTERNATE_REDIRECT_TRUE));
150
224
  if (resourceId === inviteeAddress) {
@@ -157,16 +231,16 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
157
231
  }
158
232
 
159
233
  /// @ts-ignore
160
- return _context.abrupt("return", this.request({
234
+ return _context2.abrupt("return", this.request({
161
235
  method: _constants.HTTP_VERBS.POST,
162
236
  uri: url,
163
237
  body: body
164
238
  }));
165
- case 29:
239
+ case 35:
166
240
  case "end":
167
- return _context.stop();
241
+ return _context2.stop();
168
242
  }
169
- }, _callee, this, [[14, 21]]);
243
+ }, _callee2, this, [[20, 27]]);
170
244
  }));
171
245
  function joinMeeting(_x) {
172
246
  return _joinMeeting.apply(this, arguments);
@@ -183,9 +257,9 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
183
257
  */
184
258
  }, {
185
259
  key: "refreshCaptcha",
186
- value: function refreshCaptcha(_ref) {
187
- var captchaRefreshUrl = _ref.captchaRefreshUrl,
188
- captchaId = _ref.captchaId;
260
+ value: function refreshCaptcha(_ref2) {
261
+ var captchaRefreshUrl = _ref2.captchaRefreshUrl,
262
+ captchaId = _ref2.captchaId;
189
263
  var body = {
190
264
  captchaId: captchaId
191
265
  };
@@ -213,11 +287,11 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
213
287
  */
214
288
  }, {
215
289
  key: "dialIn",
216
- value: function dialIn(_ref2) {
217
- var locusUrl = _ref2.locusUrl,
218
- dialInUrl = _ref2.dialInUrl,
219
- clientUrl = _ref2.clientUrl,
220
- correlationId = _ref2.correlationId;
290
+ value: function dialIn(_ref3) {
291
+ var locusUrl = _ref3.locusUrl,
292
+ dialInUrl = _ref3.dialInUrl,
293
+ clientUrl = _ref3.clientUrl,
294
+ correlationId = _ref3.correlationId;
221
295
  _loggerProxy.default.logger.info('Meeting:request#dialIn --> Provisioning a dial in device', correlationId);
222
296
  var uri = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT);
223
297
  var body = {
@@ -231,7 +305,7 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
231
305
  };
232
306
 
233
307
  // @ts-ignore
234
- return this.request({
308
+ return this.locusDeltaRequest({
235
309
  method: _constants.HTTP_VERBS.POST,
236
310
  uri: uri,
237
311
  body: body
@@ -254,12 +328,12 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
254
328
  */
255
329
  }, {
256
330
  key: "dialOut",
257
- value: function dialOut(_ref3) {
258
- var locusUrl = _ref3.locusUrl,
259
- dialOutUrl = _ref3.dialOutUrl,
260
- phoneNumber = _ref3.phoneNumber,
261
- clientUrl = _ref3.clientUrl,
262
- correlationId = _ref3.correlationId;
331
+ value: function dialOut(_ref4) {
332
+ var locusUrl = _ref4.locusUrl,
333
+ dialOutUrl = _ref4.dialOutUrl,
334
+ phoneNumber = _ref4.phoneNumber,
335
+ clientUrl = _ref4.clientUrl,
336
+ correlationId = _ref4.correlationId;
263
337
  _loggerProxy.default.logger.info('Meeting:request#dialOut --> Provisioning a dial out device', correlationId);
264
338
  var uri = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT);
265
339
  var body = {
@@ -274,7 +348,7 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
274
348
  };
275
349
 
276
350
  // @ts-ignore
277
- return this.request({
351
+ return this.locusDeltaRequest({
278
352
  method: _constants.HTTP_VERBS.POST,
279
353
  uri: uri,
280
354
  body: body
@@ -285,59 +359,22 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
285
359
  }
286
360
 
287
361
  /**
288
- * Syns the missed delta event
289
- * @param {Object} options
290
- * @param {boolean} options.desync flag to get partial or whole locus object
291
- * @param {String} options.syncUrl sync url to get ht elatest locus delta
292
- * @returns {Promise}
293
- */
294
- }, {
295
- key: "syncMeeting",
296
- value: function syncMeeting(options) {
297
- /* eslint-disable no-else-return */
298
- var desync = options.desync;
299
- var syncUrl = options.syncUrl;
300
-
301
- /* istanbul ignore else */
302
- if (desync) {
303
- // check for existing URL parameters
304
- syncUrl = syncUrl.concat(syncUrl.split('?')[1] ? '&' : '?').concat("".concat(_constants.LOCUS.SYNCDEBUG, "=").concat(desync));
305
- }
306
-
307
- // @ts-ignore
308
- return this.request({
309
- method: _constants.HTTP_VERBS.GET,
310
- uri: syncUrl
311
- }) // TODO: Handle if delta sync failed . Get the full locus object
312
- .catch(function (err) {
313
- _loggerProxy.default.logger.error("Meeting:request#syncMeeting --> Error syncing meeting, error ".concat(err));
314
- return err;
315
- });
316
- }
317
-
318
- /**
319
- * Request to get the complete locus object
362
+ * Sends a requests to get the latest locus DTO, it might be a full Locus or a delta, depending on the url provided
320
363
  * @param {Object} options
321
- * @param {boolean} options.desync flag to get partial or whole locus object
322
364
  * @param {String} options.locusUrl sync url to get ht elatest locus delta
323
365
  * @returns {Promise}
324
366
  */
325
367
  }, {
326
- key: "getFullLocus",
327
- value: function getFullLocus(options) {
328
- var locusUrl = options.locusUrl;
329
- var desync = options.desync;
330
- if (locusUrl) {
331
- if (desync) {
332
- locusUrl += "?".concat(_constants.LOCUS.SYNCDEBUG, "=").concat(desync);
333
- }
334
-
368
+ key: "getLocusDTO",
369
+ value: function getLocusDTO(options) {
370
+ var url = options.url;
371
+ if (url) {
335
372
  // @ts-ignore
336
373
  return this.request({
337
374
  method: _constants.HTTP_VERBS.GET,
338
- uri: locusUrl
375
+ uri: url
339
376
  }).catch(function (err) {
340
- _loggerProxy.default.logger.error("Meeting:request#getFullLocus --> Error getting full locus, error ".concat(err));
377
+ _loggerProxy.default.logger.error("Meeting:request#getLocusDTO --> Error getting latest locus, error ".concat(err));
341
378
  return err;
342
379
  });
343
380
  }
@@ -356,11 +393,11 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
356
393
  */
357
394
  }, {
358
395
  key: "disconnectPhoneAudio",
359
- value: function disconnectPhoneAudio(_ref4) {
360
- var locusUrl = _ref4.locusUrl,
361
- phoneUrl = _ref4.phoneUrl,
362
- correlationId = _ref4.correlationId,
363
- selfId = _ref4.selfId;
396
+ value: function disconnectPhoneAudio(_ref5) {
397
+ var locusUrl = _ref5.locusUrl,
398
+ phoneUrl = _ref5.phoneUrl,
399
+ correlationId = _ref5.correlationId,
400
+ selfId = _ref5.selfId;
364
401
  _loggerProxy.default.logger.info("Meeting:request#disconnectPhoneAudio --> request phone ".concat(phoneUrl, " to leave"), correlationId);
365
402
  var uri = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT, "/").concat(selfId, "/").concat(_constants.LEAVE);
366
403
  var body = {
@@ -372,7 +409,7 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
372
409
  };
373
410
 
374
411
  // @ts-ignore
375
- return this.request({
412
+ return this.locusDeltaRequest({
376
413
  method: _constants.HTTP_VERBS.PUT,
377
414
  uri: uri,
378
415
  body: body
@@ -383,23 +420,53 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
383
420
  }
384
421
 
385
422
  /**
386
- * Make a network request to leave a meeting
423
+ * Prepares request options to to leave a meeting
387
424
  * @param {Object} options
388
425
  * @param {Url} options.locusUrl
389
426
  * @param {String} options.selfId
390
427
  * @param {Url} options.deviceUrl
391
428
  * @param {String} options.resourceId,
392
429
  * @param {String} options.correlationId
430
+ * @returns {Object} request options
431
+ */
432
+ }, {
433
+ key: "prepareLeaveMeetingRequestOptions",
434
+ value: function prepareLeaveMeetingRequestOptions(_ref6) {
435
+ var locusUrl = _ref6.locusUrl,
436
+ selfId = _ref6.selfId,
437
+ url = _ref6.deviceUrl,
438
+ resourceId = _ref6.resourceId,
439
+ correlationId = _ref6.correlationId;
440
+ var uri = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT, "/").concat(selfId, "/").concat(_constants.LEAVE);
441
+ var body = {
442
+ device: {
443
+ // @ts-ignore
444
+ deviceType: this.config.meetings.deviceType,
445
+ url: url
446
+ },
447
+ usingResource: resourceId || null,
448
+ correlationId: correlationId
449
+ };
450
+ return {
451
+ method: _constants.HTTP_VERBS.PUT,
452
+ uri: uri,
453
+ body: body
454
+ };
455
+ }
456
+
457
+ /**
458
+ * Make a network request to leave a meeting
459
+ * @param {Object} options
393
460
  * @returns {Promise}
394
461
  */
395
462
  }, {
396
463
  key: "leaveMeeting",
397
- value: function leaveMeeting(_ref5) {
398
- var locusUrl = _ref5.locusUrl,
399
- selfId = _ref5.selfId,
400
- url = _ref5.deviceUrl,
401
- resourceId = _ref5.resourceId,
402
- correlationId = _ref5.correlationId;
464
+ value: function leaveMeeting(_ref7) {
465
+ var locusUrl = _ref7.locusUrl,
466
+ selfId = _ref7.selfId,
467
+ url = _ref7.deviceUrl,
468
+ resourceId = _ref7.resourceId,
469
+ correlationId = _ref7.correlationId;
403
470
  _loggerProxy.default.logger.info('Meeting:request#leaveMeeting --> Leaving a meeting', correlationId);
404
471
  var uri = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT, "/").concat(selfId, "/").concat(_constants.LEAVE);
405
472
  var body = {
@@ -411,15 +478,24 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
411
478
  usingResource: resourceId || null,
412
479
  correlationId: correlationId
413
480
  };
414
-
415
- // @ts-ignore
416
- return this.request({
481
+ return this.locusDeltaRequest({
417
482
  method: _constants.HTTP_VERBS.PUT,
418
483
  uri: uri,
419
484
  body: body
420
485
  });
421
486
  }
422
487
 
488
+ /**
489
+ * Builds request options to leave a meeting
490
+ * @param {Object} options
491
+ * @returns {Object} request options
492
+ */
493
+ }, {
494
+ key: "buildLeaveMeetingRequestOptions",
495
+ value: function buildLeaveMeetingRequestOptions(options) {
496
+ return this.buildLocusDeltaRequestOptions(this.prepareLeaveMeetingRequestOptions(options));
497
+ }
498
+
423
499
  /**
424
500
  * Make a network request to acknowledge a meeting
425
501
  * @param {Object} options
@@ -440,14 +516,19 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
440
516
  },
441
517
  correlationId: options.correlationId
442
518
  };
443
-
444
- // @ts-ignore
445
- return this.request({
519
+ return this.locusDeltaRequest({
446
520
  method: _constants.HTTP_VERBS.PUT,
447
521
  uri: uri,
448
522
  body: body
449
523
  });
450
524
  }
525
+
526
+ /**
527
+ * Makes a network request to lock the meeting
528
+ * @param {Object} options
529
+ * @param {Boolean} options.lock Whether it is locked or not
530
+ * @returns {Promise}
531
+ */
451
532
  }, {
452
533
  key: "lockMeeting",
453
534
  value: function lockMeeting(options) {
@@ -457,9 +538,7 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
457
538
  locked: options.lock
458
539
  }
459
540
  };
460
-
461
- // @ts-ignore
462
- return this.request({
541
+ return this.locusDeltaRequest({
463
542
  method: _constants.HTTP_VERBS.PATCH,
464
543
  uri: uri,
465
544
  body: body
@@ -487,48 +566,7 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
487
566
  }, options.reason && {
488
567
  reason: options.reason
489
568
  });
490
-
491
- // @ts-ignore
492
- return this.request({
493
- method: _constants.HTTP_VERBS.PUT,
494
- uri: uri,
495
- body: body
496
- });
497
- }
498
-
499
- /**
500
- * Toggle remote audio and/or video
501
- * @param {Object} options options for toggling
502
- * @param {String} options.selfId Locus self id??
503
- * @param {String} options.locusUrl Locus url
504
- * @param {String} options.deviceUrl Url of a device
505
- * @param {String} options.resourceId Populated if you are paired to a device
506
- * @param {String} options.localMedias local sdps
507
- * @param {Boolean} options.preferTranscoding false for multistream (Homer), true for transcoded media (Edonus)
508
- * @returns {Promise}
509
- */
510
- }, {
511
- key: "remoteAudioVideoToggle",
512
- value: function remoteAudioVideoToggle(options) {
513
- var _options$preferTransc;
514
- var uri = "".concat(options.locusUrl, "/").concat(_constants.PARTICIPANT, "/").concat(options.selfId, "/").concat(_constants.MEDIA);
515
- var body = {
516
- device: {
517
- // @ts-ignore
518
- deviceType: this.config.meetings.deviceType,
519
- url: options.deviceUrl
520
- },
521
- usingResource: options.resourceId || null,
522
- correlationId: options.correlationId,
523
- respOnlySdp: true,
524
- localMedias: options.localMedias,
525
- clientMediaPreferences: {
526
- preferTranscoding: (_options$preferTransc = options.preferTranscoding) !== null && _options$preferTransc !== void 0 ? _options$preferTransc : true
527
- }
528
- };
529
-
530
- // @ts-ignore
531
- return this.request({
569
+ return this.locusDeltaRequest({
532
570
  method: _constants.HTTP_VERBS.PUT,
533
571
  uri: uri,
534
572
  body: body
@@ -576,6 +614,9 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
576
614
  if (options !== null && options !== void 0 && options.resourceToken) {
577
615
  body.resourceToken = options === null || options === void 0 ? void 0 : options.resourceToken;
578
616
  }
617
+ if (options !== null && options !== void 0 && options.annotationInfo) {
618
+ body.annotation = options === null || options === void 0 ? void 0 : options.annotationInfo;
619
+ }
579
620
 
580
621
  // @ts-ignore
581
622
  return this.request({
@@ -595,12 +636,12 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
595
636
  */
596
637
  }, {
597
638
  key: "sendDTMF",
598
- value: function sendDTMF(_ref6) {
599
- var locusUrl = _ref6.locusUrl,
600
- deviceUrl = _ref6.deviceUrl,
601
- tones = _ref6.tones;
639
+ value: function sendDTMF(_ref8) {
640
+ var locusUrl = _ref8.locusUrl,
641
+ deviceUrl = _ref8.deviceUrl,
642
+ tones = _ref8.tones;
602
643
  // @ts-ignore
603
- return this.request({
644
+ return this.locusDeltaRequest({
604
645
  method: _constants.HTTP_VERBS.POST,
605
646
  uri: "".concat(locusUrl, "/").concat(_constants.SEND_DTMF_ENDPOINT),
606
647
  body: {
@@ -629,12 +670,12 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
629
670
  */
630
671
  }, {
631
672
  key: "changeVideoLayout",
632
- value: function changeVideoLayout(_ref7) {
633
- var locusUrl = _ref7.locusUrl,
634
- deviceUrl = _ref7.deviceUrl,
635
- layoutType = _ref7.layoutType,
636
- main = _ref7.main,
637
- content = _ref7.content;
673
+ value: function changeVideoLayout(_ref9) {
674
+ var locusUrl = _ref9.locusUrl,
675
+ deviceUrl = _ref9.deviceUrl,
676
+ layoutType = _ref9.layoutType,
677
+ main = _ref9.main,
678
+ content = _ref9.content;
638
679
  // send main/content renderInfo only if both width and height are specified
639
680
  if (main && (!main.width || !main.height)) {
640
681
  return _promise.default.reject(new Error("Both width and height must be specified. One of them is missing for main: ".concat((0, _stringify.default)(main))));
@@ -658,7 +699,7 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
658
699
  } : undefined;
659
700
 
660
701
  // @ts-ignore
661
- return this.request({
702
+ return this.locusDeltaRequest({
662
703
  method: _constants.HTTP_VERBS.PUT,
663
704
  uri: "".concat(locusUrl, "/").concat(_constants.CONTROLS),
664
705
  body: {
@@ -679,12 +720,12 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
679
720
  */
680
721
  }, {
681
722
  key: "endMeetingForAll",
682
- value: function endMeetingForAll(_ref8) {
683
- var locusUrl = _ref8.locusUrl;
723
+ value: function endMeetingForAll(_ref10) {
724
+ var locusUrl = _ref10.locusUrl;
684
725
  var uri = "".concat(locusUrl, "/").concat(_constants.END);
685
726
 
686
727
  // @ts-ignore
687
- return this.request({
728
+ return this.locusDeltaRequest({
688
729
  method: _constants.HTTP_VERBS.POST,
689
730
  uri: uri
690
731
  });
@@ -698,8 +739,8 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
698
739
  */
699
740
  }, {
700
741
  key: "keepAlive",
701
- value: function keepAlive(_ref9) {
702
- var keepAliveUrl = _ref9.keepAliveUrl;
742
+ value: function keepAlive(_ref11) {
743
+ var keepAliveUrl = _ref11.keepAliveUrl;
703
744
  // @ts-ignore
704
745
  return this.request({
705
746
  method: _constants.HTTP_VERBS.GET,
@@ -717,10 +758,10 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
717
758
  */
718
759
  }, {
719
760
  key: "sendReaction",
720
- value: function sendReaction(_ref10) {
721
- var reactionChannelUrl = _ref10.reactionChannelUrl,
722
- reaction = _ref10.reaction,
723
- participantId = _ref10.participantId;
761
+ value: function sendReaction(_ref12) {
762
+ var reactionChannelUrl = _ref12.reactionChannelUrl,
763
+ reaction = _ref12.reaction,
764
+ participantId = _ref12.participantId;
724
765
  var uri = reactionChannelUrl;
725
766
 
726
767
  // @ts-ignore
@@ -744,14 +785,14 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
744
785
  */
745
786
  }, {
746
787
  key: "toggleReactions",
747
- value: function toggleReactions(_ref11) {
748
- var enable = _ref11.enable,
749
- locusUrl = _ref11.locusUrl,
750
- requestingParticipantId = _ref11.requestingParticipantId;
788
+ value: function toggleReactions(_ref13) {
789
+ var enable = _ref13.enable,
790
+ locusUrl = _ref13.locusUrl,
791
+ requestingParticipantId = _ref13.requestingParticipantId;
751
792
  var uri = "".concat(locusUrl, "/").concat(_constants.CONTROLS);
752
793
 
753
794
  // @ts-ignore
754
- return this.request({
795
+ return this.locusDeltaRequest({
755
796
  method: _constants.HTTP_VERBS.PUT,
756
797
  uri: uri,
757
798
  body: {
@@ -762,6 +803,15 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
762
803
  }
763
804
  });
764
805
  }
806
+ }, {
807
+ key: "getLocusStatusByUrl",
808
+ value: function getLocusStatusByUrl(locusUrl) {
809
+ // @ts-ignore
810
+ return this.request({
811
+ method: _constants.HTTP_VERBS.GET,
812
+ uri: locusUrl
813
+ });
814
+ }
765
815
  }]);
766
816
  return MeetingRequest;
767
817
  }(_webexCore.StatelessWebexPlugin);