@webex/plugin-meetings 3.0.0-beta.39 → 3.0.0-beta.391

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 (393) hide show
  1. package/README.md +58 -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 +94 -15
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/events.js +45 -0
  11. package/dist/breakouts/events.js.map +1 -0
  12. package/dist/breakouts/index.js +671 -81
  13. package/dist/breakouts/index.js.map +1 -1
  14. package/dist/breakouts/utils.js +45 -1
  15. package/dist/breakouts/utils.js.map +1 -1
  16. package/dist/common/errors/no-meeting-info.js +51 -0
  17. package/dist/common/errors/no-meeting-info.js.map +1 -0
  18. package/dist/common/errors/reclaim-host-role-errors.js +158 -0
  19. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  20. package/dist/common/errors/webex-errors.js +48 -7
  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/logs/request.js +5 -1
  25. package/dist/common/logs/request.js.map +1 -1
  26. package/dist/common/queue.js +24 -9
  27. package/dist/common/queue.js.map +1 -1
  28. package/dist/config.js +5 -10
  29. package/dist/config.js.map +1 -1
  30. package/dist/constants.js +242 -33
  31. package/dist/constants.js.map +1 -1
  32. package/dist/controls-options-manager/enums.js +14 -2
  33. package/dist/controls-options-manager/enums.js.map +1 -1
  34. package/dist/controls-options-manager/index.js +109 -15
  35. package/dist/controls-options-manager/index.js.map +1 -1
  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 +309 -18
  39. package/dist/controls-options-manager/util.js.map +1 -1
  40. package/dist/index.js +110 -2
  41. package/dist/index.js.map +1 -1
  42. package/dist/interceptors/index.js +15 -0
  43. package/dist/interceptors/index.js.map +1 -0
  44. package/dist/interceptors/locusRetry.js +93 -0
  45. package/dist/interceptors/locusRetry.js.map +1 -0
  46. package/dist/interpretation/collection.js +23 -0
  47. package/dist/interpretation/collection.js.map +1 -0
  48. package/dist/interpretation/index.js +380 -0
  49. package/dist/interpretation/index.js.map +1 -0
  50. package/dist/interpretation/siLanguage.js +25 -0
  51. package/dist/interpretation/siLanguage.js.map +1 -0
  52. package/dist/locus-info/controlsUtils.js +91 -2
  53. package/dist/locus-info/controlsUtils.js.map +1 -1
  54. package/dist/locus-info/index.js +386 -62
  55. package/dist/locus-info/index.js.map +1 -1
  56. package/dist/locus-info/infoUtils.js +7 -1
  57. package/dist/locus-info/infoUtils.js.map +1 -1
  58. package/dist/locus-info/mediaSharesUtils.js +71 -1
  59. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  60. package/dist/locus-info/parser.js +249 -72
  61. package/dist/locus-info/parser.js.map +1 -1
  62. package/dist/locus-info/selfUtils.js +89 -14
  63. package/dist/locus-info/selfUtils.js.map +1 -1
  64. package/dist/media/index.js +65 -102
  65. package/dist/media/index.js.map +1 -1
  66. package/dist/media/properties.js +73 -124
  67. package/dist/media/properties.js.map +1 -1
  68. package/dist/mediaQualityMetrics/config.js +135 -330
  69. package/dist/mediaQualityMetrics/config.js.map +1 -1
  70. package/dist/meeting/in-meeting-actions.js +86 -2
  71. package/dist/meeting/in-meeting-actions.js.map +1 -1
  72. package/dist/meeting/index.js +4075 -2827
  73. package/dist/meeting/index.js.map +1 -1
  74. package/dist/meeting/locusMediaRequest.js +292 -0
  75. package/dist/meeting/locusMediaRequest.js.map +1 -0
  76. package/dist/meeting/muteState.js +224 -136
  77. package/dist/meeting/muteState.js.map +1 -1
  78. package/dist/meeting/request.js +177 -152
  79. package/dist/meeting/request.js.map +1 -1
  80. package/dist/meeting/util.js +672 -417
  81. package/dist/meeting/util.js.map +1 -1
  82. package/dist/meeting-info/index.js +73 -7
  83. package/dist/meeting-info/index.js.map +1 -1
  84. package/dist/meeting-info/meeting-info-v2.js +192 -51
  85. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  86. package/dist/meeting-info/util.js +1 -1
  87. package/dist/meeting-info/util.js.map +1 -1
  88. package/dist/meeting-info/utilv2.js +36 -36
  89. package/dist/meeting-info/utilv2.js.map +1 -1
  90. package/dist/meetings/collection.js +39 -0
  91. package/dist/meetings/collection.js.map +1 -1
  92. package/dist/meetings/index.js +484 -119
  93. package/dist/meetings/index.js.map +1 -1
  94. package/dist/meetings/meetings.types.js +7 -0
  95. package/dist/meetings/meetings.types.js.map +1 -0
  96. package/dist/meetings/request.js +2 -0
  97. package/dist/meetings/request.js.map +1 -1
  98. package/dist/meetings/util.js +73 -7
  99. package/dist/meetings/util.js.map +1 -1
  100. package/dist/member/index.js +58 -0
  101. package/dist/member/index.js.map +1 -1
  102. package/dist/member/types.js +25 -0
  103. package/dist/member/types.js.map +1 -0
  104. package/dist/member/util.js +132 -25
  105. package/dist/member/util.js.map +1 -1
  106. package/dist/members/collection.js +10 -0
  107. package/dist/members/collection.js.map +1 -1
  108. package/dist/members/index.js +102 -6
  109. package/dist/members/index.js.map +1 -1
  110. package/dist/members/request.js +106 -38
  111. package/dist/members/request.js.map +1 -1
  112. package/dist/members/types.js +15 -0
  113. package/dist/members/types.js.map +1 -0
  114. package/dist/members/util.js +326 -232
  115. package/dist/members/util.js.map +1 -1
  116. package/dist/metrics/constants.js +18 -1
  117. package/dist/metrics/constants.js.map +1 -1
  118. package/dist/metrics/index.js +1 -446
  119. package/dist/metrics/index.js.map +1 -1
  120. package/dist/multistream/mediaRequestManager.js +223 -32
  121. package/dist/multistream/mediaRequestManager.js.map +1 -1
  122. package/dist/multistream/receiveSlot.js +10 -0
  123. package/dist/multistream/receiveSlot.js.map +1 -1
  124. package/dist/multistream/receiveSlotManager.js +39 -36
  125. package/dist/multistream/receiveSlotManager.js.map +1 -1
  126. package/dist/multistream/remoteMedia.js +3 -1
  127. package/dist/multistream/remoteMedia.js.map +1 -1
  128. package/dist/multistream/remoteMediaGroup.js +76 -5
  129. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  130. package/dist/multistream/remoteMediaManager.js +366 -104
  131. package/dist/multistream/remoteMediaManager.js.map +1 -1
  132. package/dist/multistream/sendSlotManager.js +255 -0
  133. package/dist/multistream/sendSlotManager.js.map +1 -0
  134. package/dist/reachability/clusterReachability.js +356 -0
  135. package/dist/reachability/clusterReachability.js.map +1 -0
  136. package/dist/reachability/index.js +263 -390
  137. package/dist/reachability/index.js.map +1 -1
  138. package/dist/reachability/request.js +6 -4
  139. package/dist/reachability/request.js.map +1 -1
  140. package/dist/reachability/util.js +29 -0
  141. package/dist/reachability/util.js.map +1 -0
  142. package/dist/reconnection-manager/index.js +266 -202
  143. package/dist/reconnection-manager/index.js.map +1 -1
  144. package/dist/recording-controller/index.js +21 -2
  145. package/dist/recording-controller/index.js.map +1 -1
  146. package/dist/recording-controller/util.js +9 -8
  147. package/dist/recording-controller/util.js.map +1 -1
  148. package/dist/roap/index.js +51 -28
  149. package/dist/roap/index.js.map +1 -1
  150. package/dist/roap/request.js +48 -64
  151. package/dist/roap/request.js.map +1 -1
  152. package/dist/roap/turnDiscovery.js +220 -70
  153. package/dist/roap/turnDiscovery.js.map +1 -1
  154. package/dist/rtcMetrics/constants.js +12 -0
  155. package/dist/rtcMetrics/constants.js.map +1 -0
  156. package/dist/rtcMetrics/index.js +179 -0
  157. package/dist/rtcMetrics/index.js.map +1 -0
  158. package/dist/statsAnalyzer/index.js +357 -295
  159. package/dist/statsAnalyzer/index.js.map +1 -1
  160. package/dist/statsAnalyzer/mqaUtil.js +296 -156
  161. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  162. package/dist/types/annotation/annotation.types.d.ts +42 -0
  163. package/dist/types/annotation/constants.d.ts +31 -0
  164. package/dist/types/annotation/index.d.ts +117 -0
  165. package/dist/types/breakouts/events.d.ts +8 -0
  166. package/dist/types/breakouts/utils.d.ts +14 -0
  167. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  168. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  169. package/dist/types/common/errors/webex-errors.d.ts +25 -1
  170. package/dist/types/common/logs/request.d.ts +2 -0
  171. package/dist/types/common/queue.d.ts +9 -7
  172. package/dist/types/config.d.ts +2 -7
  173. package/dist/types/constants.d.ts +203 -31
  174. package/dist/types/controls-options-manager/enums.d.ts +11 -1
  175. package/dist/types/controls-options-manager/index.d.ts +17 -1
  176. package/dist/types/controls-options-manager/types.d.ts +43 -0
  177. package/dist/types/controls-options-manager/util.d.ts +1 -7
  178. package/dist/types/index.d.ts +6 -5
  179. package/dist/types/interceptors/index.d.ts +2 -0
  180. package/dist/types/interceptors/locusRetry.d.ts +27 -0
  181. package/dist/types/interpretation/collection.d.ts +5 -0
  182. package/dist/types/interpretation/index.d.ts +5 -0
  183. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  184. package/dist/types/locus-info/index.d.ts +57 -4
  185. package/dist/types/locus-info/parser.d.ts +66 -6
  186. package/dist/types/media/index.d.ts +2 -0
  187. package/dist/types/media/properties.d.ts +34 -49
  188. package/dist/types/mediaQualityMetrics/config.d.ts +99 -223
  189. package/dist/types/meeting/in-meeting-actions.d.ts +86 -2
  190. package/dist/types/meeting/index.d.ts +567 -496
  191. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  192. package/dist/types/meeting/muteState.d.ts +93 -25
  193. package/dist/types/meeting/request.d.ts +64 -43
  194. package/dist/types/meeting/util.d.ts +117 -1
  195. package/dist/types/meeting-info/index.d.ts +13 -1
  196. package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
  197. package/dist/types/meetings/collection.d.ts +17 -0
  198. package/dist/types/meetings/index.d.ts +113 -21
  199. package/dist/types/meetings/meetings.types.d.ts +4 -0
  200. package/dist/types/member/index.d.ts +14 -0
  201. package/dist/types/member/types.d.ts +32 -0
  202. package/dist/types/members/collection.d.ts +5 -0
  203. package/dist/types/members/index.d.ts +35 -2
  204. package/dist/types/members/request.d.ts +73 -9
  205. package/dist/types/members/types.d.ts +25 -0
  206. package/dist/types/members/util.d.ts +214 -1
  207. package/dist/types/metrics/constants.d.ts +17 -0
  208. package/dist/types/metrics/index.d.ts +4 -111
  209. package/dist/types/multistream/mediaRequestManager.d.ts +72 -3
  210. package/dist/types/multistream/receiveSlot.d.ts +7 -3
  211. package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
  212. package/dist/types/multistream/remoteMedia.d.ts +3 -31
  213. package/dist/types/multistream/remoteMediaGroup.d.ts +2 -9
  214. package/dist/types/multistream/remoteMediaManager.d.ts +62 -2
  215. package/dist/types/multistream/sendSlotManager.d.ts +70 -0
  216. package/dist/types/reachability/clusterReachability.d.ts +109 -0
  217. package/dist/types/reachability/index.d.ts +60 -95
  218. package/dist/types/reachability/request.d.ts +3 -1
  219. package/dist/types/reachability/util.d.ts +8 -0
  220. package/dist/types/reconnection-manager/index.d.ts +19 -0
  221. package/dist/types/recording-controller/index.d.ts +15 -1
  222. package/dist/types/recording-controller/util.d.ts +5 -4
  223. package/dist/types/roap/index.d.ts +2 -1
  224. package/dist/types/roap/request.d.ts +9 -8
  225. package/dist/types/roap/turnDiscovery.d.ts +39 -5
  226. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  227. package/dist/types/rtcMetrics/index.d.ts +61 -0
  228. package/dist/types/statsAnalyzer/index.d.ts +34 -12
  229. package/dist/types/statsAnalyzer/mqaUtil.d.ts +28 -4
  230. package/dist/types/webinar/collection.d.ts +16 -0
  231. package/dist/types/webinar/index.d.ts +5 -0
  232. package/dist/webinar/collection.js +44 -0
  233. package/dist/webinar/collection.js.map +1 -0
  234. package/dist/webinar/index.js +69 -0
  235. package/dist/webinar/index.js.map +1 -0
  236. package/package.json +22 -19
  237. package/src/annotation/annotation.types.ts +50 -0
  238. package/src/annotation/constants.ts +36 -0
  239. package/src/annotation/index.ts +328 -0
  240. package/src/breakouts/README.md +35 -11
  241. package/src/breakouts/breakout.ts +67 -9
  242. package/src/breakouts/events.ts +56 -0
  243. package/src/breakouts/index.ts +558 -59
  244. package/src/breakouts/utils.ts +42 -0
  245. package/src/common/errors/no-meeting-info.ts +24 -0
  246. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  247. package/src/common/errors/webex-errors.ts +44 -2
  248. package/src/common/logs/logger-proxy.ts +1 -1
  249. package/src/common/logs/request.ts +5 -1
  250. package/src/common/queue.ts +22 -8
  251. package/src/config.ts +4 -9
  252. package/src/constants.ts +229 -21
  253. package/src/controls-options-manager/enums.ts +12 -0
  254. package/src/controls-options-manager/index.ts +116 -21
  255. package/src/controls-options-manager/types.ts +59 -0
  256. package/src/controls-options-manager/util.ts +294 -14
  257. package/src/index.ts +44 -0
  258. package/src/interceptors/index.ts +3 -0
  259. package/src/interceptors/locusRetry.ts +67 -0
  260. package/src/interpretation/README.md +60 -0
  261. package/src/interpretation/collection.ts +19 -0
  262. package/src/interpretation/index.ts +349 -0
  263. package/src/interpretation/siLanguage.ts +18 -0
  264. package/src/locus-info/controlsUtils.ts +108 -0
  265. package/src/locus-info/index.ts +417 -59
  266. package/src/locus-info/infoUtils.ts +10 -2
  267. package/src/locus-info/mediaSharesUtils.ts +80 -0
  268. package/src/locus-info/parser.ts +258 -47
  269. package/src/locus-info/selfUtils.ts +81 -5
  270. package/src/media/index.ts +100 -108
  271. package/src/media/properties.ts +88 -117
  272. package/src/mediaQualityMetrics/config.ts +103 -238
  273. package/src/meeting/in-meeting-actions.ts +171 -3
  274. package/src/meeting/index.ts +3411 -2435
  275. package/src/meeting/locusMediaRequest.ts +313 -0
  276. package/src/meeting/muteState.ts +223 -136
  277. package/src/meeting/request.ts +155 -120
  278. package/src/meeting/util.ts +685 -395
  279. package/src/meeting-info/index.ts +81 -8
  280. package/src/meeting-info/meeting-info-v2.ts +170 -14
  281. package/src/meeting-info/util.ts +1 -1
  282. package/src/meeting-info/utilv2.ts +23 -23
  283. package/src/meetings/collection.ts +33 -0
  284. package/src/meetings/index.ts +507 -127
  285. package/src/meetings/meetings.types.ts +12 -0
  286. package/src/meetings/request.ts +2 -0
  287. package/src/meetings/util.ts +81 -12
  288. package/src/member/index.ts +58 -0
  289. package/src/member/types.ts +38 -0
  290. package/src/member/util.ts +141 -25
  291. package/src/members/collection.ts +8 -0
  292. package/src/members/index.ts +134 -8
  293. package/src/members/request.ts +97 -17
  294. package/src/members/types.ts +29 -0
  295. package/src/members/util.ts +333 -240
  296. package/src/metrics/constants.ts +17 -0
  297. package/src/metrics/index.ts +1 -469
  298. package/src/multistream/mediaRequestManager.ts +271 -56
  299. package/src/multistream/receiveSlot.ts +11 -4
  300. package/src/multistream/receiveSlotManager.ts +34 -24
  301. package/src/multistream/remoteMedia.ts +5 -3
  302. package/src/multistream/remoteMediaGroup.ts +78 -0
  303. package/src/multistream/remoteMediaManager.ts +248 -44
  304. package/src/multistream/sendSlotManager.ts +199 -0
  305. package/src/reachability/clusterReachability.ts +320 -0
  306. package/src/reachability/index.ts +229 -346
  307. package/src/reachability/request.ts +8 -4
  308. package/src/reachability/util.ts +24 -0
  309. package/src/reconnection-manager/index.ts +128 -97
  310. package/src/recording-controller/index.ts +20 -3
  311. package/src/recording-controller/util.ts +26 -9
  312. package/src/roap/index.ts +52 -23
  313. package/src/roap/request.ts +48 -67
  314. package/src/roap/turnDiscovery.ts +147 -49
  315. package/src/rtcMetrics/constants.ts +3 -0
  316. package/src/rtcMetrics/index.ts +166 -0
  317. package/src/statsAnalyzer/index.ts +457 -416
  318. package/src/statsAnalyzer/mqaUtil.ts +317 -170
  319. package/src/webinar/collection.ts +31 -0
  320. package/src/webinar/index.ts +62 -0
  321. package/test/integration/spec/converged-space-meetings.js +60 -3
  322. package/test/integration/spec/journey.js +320 -261
  323. package/test/integration/spec/space-meeting.js +76 -3
  324. package/test/unit/spec/annotation/index.ts +418 -0
  325. package/test/unit/spec/breakouts/breakout.ts +118 -28
  326. package/test/unit/spec/breakouts/events.ts +89 -0
  327. package/test/unit/spec/breakouts/index.ts +1349 -114
  328. package/test/unit/spec/breakouts/utils.js +52 -1
  329. package/test/unit/spec/common/queue.js +31 -2
  330. package/test/unit/spec/controls-options-manager/index.js +163 -0
  331. package/test/unit/spec/controls-options-manager/util.js +576 -60
  332. package/test/unit/spec/fixture/locus.js +1 -0
  333. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  334. package/test/unit/spec/interpretation/collection.ts +15 -0
  335. package/test/unit/spec/interpretation/index.ts +625 -0
  336. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  337. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  338. package/test/unit/spec/locus-info/index.js +1363 -37
  339. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  340. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  341. package/test/unit/spec/locus-info/mediaSharesUtils.ts +41 -0
  342. package/test/unit/spec/locus-info/parser.js +116 -35
  343. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  344. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  345. package/test/unit/spec/media/index.ts +173 -81
  346. package/test/unit/spec/media/properties.ts +2 -2
  347. package/test/unit/spec/meeting/in-meeting-actions.ts +85 -3
  348. package/test/unit/spec/meeting/index.js +6821 -2172
  349. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  350. package/test/unit/spec/meeting/muteState.js +402 -212
  351. package/test/unit/spec/meeting/request.js +473 -54
  352. package/test/unit/spec/meeting/utils.js +773 -67
  353. package/test/unit/spec/meeting-info/index.js +300 -0
  354. package/test/unit/spec/meeting-info/meetinginfov2.js +526 -5
  355. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  356. package/test/unit/spec/meetings/collection.js +26 -0
  357. package/test/unit/spec/meetings/index.js +1415 -213
  358. package/test/unit/spec/meetings/utils.js +229 -2
  359. package/test/unit/spec/member/index.js +61 -6
  360. package/test/unit/spec/member/util.js +510 -34
  361. package/test/unit/spec/members/index.js +432 -1
  362. package/test/unit/spec/members/request.js +206 -27
  363. package/test/unit/spec/members/utils.js +210 -0
  364. package/test/unit/spec/metrics/index.js +1 -50
  365. package/test/unit/spec/multistream/mediaRequestManager.ts +781 -114
  366. package/test/unit/spec/multistream/receiveSlot.ts +9 -1
  367. package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
  368. package/test/unit/spec/multistream/remoteMedia.ts +2 -0
  369. package/test/unit/spec/multistream/remoteMediaGroup.ts +345 -0
  370. package/test/unit/spec/multistream/remoteMediaManager.ts +525 -0
  371. package/test/unit/spec/multistream/sendSlotManager.ts +274 -0
  372. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  373. package/test/unit/spec/reachability/index.ts +551 -14
  374. package/test/unit/spec/reachability/request.js +3 -1
  375. package/test/unit/spec/reachability/util.ts +40 -0
  376. package/test/unit/spec/reconnection-manager/index.js +171 -11
  377. package/test/unit/spec/recording-controller/index.js +294 -218
  378. package/test/unit/spec/recording-controller/util.js +223 -96
  379. package/test/unit/spec/roap/index.ts +180 -83
  380. package/test/unit/spec/roap/request.ts +100 -62
  381. package/test/unit/spec/roap/turnDiscovery.ts +388 -96
  382. package/test/unit/spec/rtcMetrics/index.ts +122 -0
  383. package/test/unit/spec/stats-analyzer/index.js +1252 -12
  384. package/test/unit/spec/webinar/collection.ts +13 -0
  385. package/test/unit/spec/webinar/index.ts +60 -0
  386. package/test/utils/integrationTestUtils.js +46 -0
  387. package/test/utils/testUtils.js +0 -57
  388. package/test/utils/webex-test-users.js +12 -4
  389. package/dist/metrics/config.js +0 -289
  390. package/dist/metrics/config.js.map +0 -1
  391. package/dist/types/metrics/config.d.ts +0 -169
  392. package/src/index.js +0 -18
  393. package/src/metrics/config.ts +0 -485
@@ -0,0 +1,74 @@
1
+ import { WebexPlugin } from '@webex/webex-core';
2
+ import { IP_VERSION } from '../constants';
3
+ export type MediaRequestType = 'RoapMessage' | 'LocalMute';
4
+ export type RequestResult = any;
5
+ export type RoapRequest = {
6
+ type: 'RoapMessage';
7
+ selfUrl: string;
8
+ mediaId: string;
9
+ roapMessage: any;
10
+ reachability: any;
11
+ sequence?: any;
12
+ joinCookie: any;
13
+ ipVersion?: IP_VERSION;
14
+ };
15
+ export type LocalMuteRequest = {
16
+ type: 'LocalMute';
17
+ selfUrl: string;
18
+ mediaId: string;
19
+ sequence?: any;
20
+ muteOptions: {
21
+ audioMuted?: boolean;
22
+ videoMuted?: boolean;
23
+ };
24
+ };
25
+ export type Request = RoapRequest | LocalMuteRequest;
26
+ export type Config = {
27
+ device: {
28
+ url: string;
29
+ deviceType: string;
30
+ countryCode?: string;
31
+ regionCode?: string;
32
+ };
33
+ correlationId: string;
34
+ preferTranscoding: boolean;
35
+ };
36
+ /**
37
+ * This class manages all /media API requests to Locus. Every call to that
38
+ * Locus API has to go through this class.
39
+ */
40
+ export declare class LocusMediaRequest extends WebexPlugin {
41
+ private config;
42
+ private latestAudioMuted?;
43
+ private latestVideoMuted?;
44
+ private isRequestInProgress;
45
+ private queuedRequests;
46
+ private confluenceState;
47
+ /**
48
+ * Constructor
49
+ */
50
+ constructor(config: Config, options: any);
51
+ /**
52
+ * Add a request to the internal queue.
53
+ */
54
+ private addToQueue;
55
+ /**
56
+ * Takes the next request from the queue and executes it. Once that
57
+ * request is completed, the next one will be taken from the queue
58
+ * and executed and this is repeated until the queue is empty.
59
+ */
60
+ private executeNextQueuedRequest;
61
+ /**
62
+ * Returns latest requested audio and video mute values. If they have never been
63
+ * requested, we assume audio/video to be muted.
64
+ */
65
+ private getLatestMuteState;
66
+ /**
67
+ * Prepares the uri and body for the media request to be sent to Locus
68
+ */
69
+ private sendHttpRequest;
70
+ /**
71
+ * Sends a media request to Locus
72
+ */
73
+ send(request: Request): Promise<RequestResult>;
74
+ }
@@ -1,45 +1,94 @@
1
- export declare const createMuteState: (type: any, meeting: any, mediaDirection: any) => MuteState;
1
+ import { ServerMuteReason } from '@webex/media-helpers';
2
+ export declare const createMuteState: (type: any, meeting: any, enabled: boolean) => MuteState;
2
3
  /** The purpose of this class is to manage the local and remote mute state and make sure that the server state always matches
3
4
  the last requested state by the client.
4
5
 
5
6
  More info about Locus muting API: https://sqbu-github.cisco.com/pages/WebExSquared/locus/guides/mute.html#
7
+
8
+ This class is exported only for unit tests. It should never be instantiated directly with new MuteState(), instead createMuteState() should be called
6
9
  */
7
- declare class MuteState {
8
- pendingPromiseReject: any;
9
- pendingPromiseResolve: any;
10
- state: any;
10
+ export declare class MuteState {
11
+ state: {
12
+ client: {
13
+ enabled: boolean;
14
+ localMute: boolean;
15
+ };
16
+ server: {
17
+ localMute: boolean;
18
+ remoteMute: boolean;
19
+ unmuteAllowed: boolean;
20
+ };
21
+ syncToServerInProgress: boolean;
22
+ };
11
23
  type: any;
24
+ ignoreMuteStateChange: boolean;
12
25
  /**
13
26
  * Constructor
14
27
  *
15
28
  * @param {String} type - audio or video
16
29
  * @param {Object} meeting - the meeting object (used for reading current remote mute status)
30
+ * @param {boolean} enabled - whether the client audio/video is enabled at all
31
+ */
32
+ constructor(type: string, meeting: any, enabled: boolean);
33
+ /**
34
+ * Starts the mute state machine. Needs to be called after a new MuteState instance is created.
35
+ *
36
+ * @param {Object} meeting - the meeting object
37
+ * @returns {void}
17
38
  */
18
- constructor(type: string, meeting: any);
39
+ init(meeting: any): void;
19
40
  /**
20
- * Handles mute/unmute request from the client/user. Returns a promise that's resolved once the server update is completed or
21
- * at the point that this request becomese superseded by another client request.
41
+ * This method needs to be called whenever the local audio/video stream has changed.
42
+ * It reapplies the remote mute state onto the new stream and also reads the current
43
+ * local mute state from the stream and updates the internal state machine and sends
44
+ * any required requests to the server.
22
45
  *
23
- * The client doesn't have to wait for the returned promise to resolve before calling handleClientRequest() again. If
24
- * handleClientRequest() is called again before the previous one resolved, the MuteState class will make sure that eventually
25
- * the server state will match the last requested state from the client.
46
+ * @param {Object} meeting - the meeting object
47
+ * @returns {void}
48
+ */
49
+ handleLocalStreamChange(meeting: any): void;
50
+ /**
51
+ * Enables/disables audio/video
26
52
  *
53
+ * @param {Object} meeting - the meeting object
54
+ * @param {boolean} enable
55
+ * @returns {void}
56
+ */
57
+ enable(meeting: any, enable: boolean): void;
58
+ /**
59
+ * Mutes/unmutes local stream
60
+ *
61
+ * @param {Object} meeting - the meeting object
62
+ * @param {Boolean} mute - true to mute the stream, false to unmute it
63
+ * @param {ServerMuteReason} reason - reason for muting/unmuting
64
+ * @returns {void}
65
+ */
66
+ private muteLocalStream;
67
+ /**
68
+ * This method should be called when the local stream mute state is changed
27
69
  * @public
28
70
  * @memberof MuteState
29
71
  * @param {Object} [meeting] the meeting object
30
72
  * @param {Boolean} [mute] true for muting, false for unmuting request
31
- * @returns {Promise}
73
+ * @returns {void}
32
74
  */
33
- handleClientRequest(meeting?: object, mute?: boolean): Promise<unknown>;
75
+ handleLocalStreamMuteStateChange(meeting?: object, mute?: boolean): void;
34
76
  /**
35
- * Applies the current mute state to the local track (by enabling or disabling it accordingly)
77
+ * Applies the current mute state to the local stream (by enabling or disabling it accordingly)
36
78
  *
37
79
  * @public
38
80
  * @param {Object} [meeting] the meeting object
81
+ * @param {ServerMuteReason} reason - reason why we're applying our client state to the local stream
39
82
  * @memberof MuteState
40
83
  * @returns {void}
41
84
  */
42
- applyClientStateLocally(meeting?: any): void;
85
+ applyClientStateLocally(meeting?: any, reason?: ServerMuteReason): void;
86
+ /** Returns true if client is locally muted - it takes into account not just the client local mute state,
87
+ * but also whether audio/video is enabled at all
88
+ *
89
+ * @returns {boolean}
90
+ */
91
+ private getClientLocalMuteState;
43
92
  /**
44
93
  * Updates the server local and remote mute values so that they match the current client desired state.
45
94
  *
@@ -67,16 +116,29 @@ declare class MuteState {
67
116
  * @returns {Promise}
68
117
  */
69
118
  private sendRemoteMuteRequestToServer;
119
+ /** Sets the mute state of the local stream according to what server thinks is our state
120
+ * @param {Object} meeting - the meeting object
121
+ * @param {ServerMuteReason} serverMuteReason - reason why we're applying server mute to the local stream
122
+ * @returns {void}
123
+ */
124
+ private applyServerMuteToLocalStream;
125
+ /** Applies the current value for unmute allowed to the underlying stream
126
+ *
127
+ * @param {Meeting} meeting
128
+ * @returns {void}
129
+ */
130
+ private applyUnmuteAllowedToStream;
70
131
  /**
71
132
  * This method should be called whenever the server remote mute state is changed
72
133
  *
73
134
  * @public
74
135
  * @memberof MuteState
136
+ * @param {Meeting} meeting
75
137
  * @param {Boolean} [muted] true if user is remotely muted, false otherwise
76
138
  * @param {Boolean} [unmuteAllowed] indicates if user is allowed to unmute self (false when "hard mute" feature is used)
77
139
  * @returns {undefined}
78
140
  */
79
- handleServerRemoteMuteUpdate(muted?: boolean, unmuteAllowed?: boolean): void;
141
+ handleServerRemoteMuteUpdate(meeting: any, muted?: boolean, unmuteAllowed?: boolean): void;
80
142
  /**
81
143
  * This method should be called whenever we receive from the server a requirement to locally unmute
82
144
  *
@@ -87,30 +149,36 @@ declare class MuteState {
87
149
  */
88
150
  handleServerLocalUnmuteRequired(meeting?: object): void;
89
151
  /**
90
- * Returns true if the user is locally or remotely muted
152
+ * Returns true if the user is locally or remotely muted.
153
+ * It only checks the mute status, ignoring the fact whether audio/video is enabled.
154
+ *
155
+ * @public
156
+ * @memberof MuteState
157
+ * @returns {Boolean}
158
+ */
159
+ isMuted(): boolean;
160
+ /**
161
+ * Returns true if the user is remotely muted
91
162
  *
92
163
  * @public
93
164
  * @memberof MuteState
94
165
  * @returns {Boolean}
95
166
  */
96
- isMuted(): any;
167
+ isRemotelyMuted(): boolean;
97
168
  /**
98
- * Returns true if the user is locally muted
169
+ * Returns true if unmute is allowed
99
170
  *
100
171
  * @public
101
172
  * @memberof MuteState
102
173
  * @returns {Boolean}
103
174
  */
104
- isLocallyMuted(): any;
175
+ isUnmuteAllowed(): boolean;
105
176
  /**
106
- * Returns true if the user is muted as a result of the client request (and not remotely muted)
177
+ * Returns true if the user is locally muted or audio/video is disabled
107
178
  *
108
179
  * @public
109
180
  * @memberof MuteState
110
181
  * @returns {Boolean}
111
182
  */
112
- isSelf(): boolean;
113
- get muted(): any;
114
- get self(): boolean;
183
+ isLocallyMuted(): boolean;
115
184
  }
116
- export {};
@@ -1,10 +1,15 @@
1
1
  import { StatelessWebexPlugin } from '@webex/webex-core';
2
+ import { IP_VERSION } from '../constants';
2
3
  import { SendReactionOptions, ToggleReactionsOptions } from './request.type';
4
+ import { AnnotationInfo } from '../annotation/annotation.types';
3
5
  /**
4
6
  * @class MeetingRequest
5
7
  */
6
8
  export default class MeetingRequest extends StatelessWebexPlugin {
7
9
  changeVideoLayoutDebounced: any;
10
+ meetingRef: WeakRef<any>;
11
+ locusDeltaRequest: (options: object) => Promise<any>;
12
+ buildLocusDeltaRequestOptions: (options: object) => Promise<any>;
8
13
  /**
9
14
  * Constructor
10
15
  * @param {Object} attrs
@@ -30,12 +35,16 @@ export default class MeetingRequest extends StatelessWebexPlugin {
30
35
  * @param {boolean} options.moveToResource
31
36
  * @param {Object} options.roapMessage
32
37
  * @param {boolean} options.breakoutsSupported
38
+ * @param {String} options.locale,
39
+ * @param {Array} options.deviceCapabilities
40
+ * @param {boolean} options.liveAnnotationSupported
33
41
  * @returns {Promise}
34
42
  */
35
43
  joinMeeting(options: {
36
44
  sipUri: string;
37
45
  deviceUrl: string;
38
46
  locusUrl: string;
47
+ locusClusterUrl: string;
39
48
  resourceId: string;
40
49
  correlationId: string;
41
50
  ensureConversation: boolean;
@@ -49,6 +58,10 @@ export default class MeetingRequest extends StatelessWebexPlugin {
49
58
  permissionToken: any;
50
59
  preferTranscoding: any;
51
60
  breakoutsSupported: boolean;
61
+ locale?: string;
62
+ deviceCapabilities?: Array<string>;
63
+ liveAnnotationSupported: boolean;
64
+ ipVersion?: IP_VERSION;
52
65
  }): Promise<any>;
53
66
  /**
54
67
  * Send a request to refresh the captcha
@@ -83,26 +96,13 @@ export default class MeetingRequest extends StatelessWebexPlugin {
83
96
  */
84
97
  private dialOut;
85
98
  /**
86
- * Syns the missed delta event
99
+ * Sends a requests to get the latest locus DTO, it might be a full Locus or a delta, depending on the url provided
87
100
  * @param {Object} options
88
- * @param {boolean} options.desync flag to get partial or whole locus object
89
- * @param {String} options.syncUrl sync url to get ht elatest locus delta
90
- * @returns {Promise}
91
- */
92
- syncMeeting(options: {
93
- desync: boolean;
94
- syncUrl: string;
95
- }): any;
96
- /**
97
- * Request to get the complete locus object
98
- * @param {Object} options
99
- * @param {boolean} options.desync flag to get partial or whole locus object
100
101
  * @param {String} options.locusUrl sync url to get ht elatest locus delta
101
102
  * @returns {Promise}
102
103
  */
103
- getFullLocus(options: {
104
- desync: boolean;
105
- locusUrl: string;
104
+ getLocusDTO(options: {
105
+ url: string;
106
106
  }): any;
107
107
  /**
108
108
  * Make a network request to make a provisioned phone leave the meeting
@@ -116,13 +116,36 @@ export default class MeetingRequest extends StatelessWebexPlugin {
116
116
  */
117
117
  private disconnectPhoneAudio;
118
118
  /**
119
- * Make a network request to leave a meeting
119
+ * Prepares request options to to leave a meeting
120
120
  * @param {Object} options
121
121
  * @param {Url} options.locusUrl
122
122
  * @param {String} options.selfId
123
123
  * @param {Url} options.deviceUrl
124
124
  * @param {String} options.resourceId,
125
125
  * @param {String} options.correlationId
126
+ * @returns {Object} request options
127
+ */
128
+ prepareLeaveMeetingRequestOptions({ locusUrl, selfId, deviceUrl: url, resourceId, correlationId, }: {
129
+ locusUrl: string;
130
+ selfId: string;
131
+ deviceUrl: string;
132
+ resourceId: string;
133
+ correlationId: string;
134
+ }): {
135
+ method: string;
136
+ uri: string;
137
+ body: {
138
+ device: {
139
+ deviceType: any;
140
+ url: string;
141
+ };
142
+ usingResource: string;
143
+ correlationId: string;
144
+ };
145
+ };
146
+ /**
147
+ * Make a network request to leave a meeting
148
+ * @param {Object} options
126
149
  * @returns {Promise}
127
150
  */
128
151
  leaveMeeting({ locusUrl, selfId, deviceUrl: url, resourceId, correlationId, }: {
@@ -131,7 +154,13 @@ export default class MeetingRequest extends StatelessWebexPlugin {
131
154
  deviceUrl: string;
132
155
  resourceId: string;
133
156
  correlationId: string;
134
- }): any;
157
+ }): Promise<any>;
158
+ /**
159
+ * Builds request options to leave a meeting
160
+ * @param {Object} options
161
+ * @returns {Object} request options
162
+ */
163
+ buildLeaveMeetingRequestOptions(options: any): Promise<any>;
135
164
  /**
136
165
  * Make a network request to acknowledge a meeting
137
166
  * @param {Object} options
@@ -144,8 +173,14 @@ export default class MeetingRequest extends StatelessWebexPlugin {
144
173
  locusUrl: string;
145
174
  deviceUrl: string;
146
175
  correlationId: string;
147
- }): any;
148
- lockMeeting(options: any): any;
176
+ }): Promise<any>;
177
+ /**
178
+ * Makes a network request to lock the meeting
179
+ * @param {Object} options
180
+ * @param {Boolean} options.lock Whether it is locked or not
181
+ * @returns {Promise}
182
+ */
183
+ lockMeeting(options: any): Promise<any>;
149
184
  /**
150
185
  * Make a network request to decline a meeting
151
186
  * @param {Object} options
@@ -158,25 +193,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
158
193
  locusUrl: string;
159
194
  deviceUrl: string;
160
195
  reason: string;
161
- }): any;
162
- /**
163
- * Toggle remote audio and/or video
164
- * @param {Object} options options for toggling
165
- * @param {String} options.selfId Locus self id??
166
- * @param {String} options.locusUrl Locus url
167
- * @param {String} options.deviceUrl Url of a device
168
- * @param {String} options.resourceId Populated if you are paired to a device
169
- * @param {String} options.localMedias local sdps
170
- * @param {Boolean} options.preferTranscoding false for multistream (Homer), true for transcoded media (Edonus)
171
- * @returns {Promise}
172
- */
173
- remoteAudioVideoToggle(options: {
174
- selfId: string;
175
- locusUrl: string;
176
- deviceUrl: string;
177
- resourceId: string;
178
- localMedias: string;
179
- } | any): any;
196
+ }): Promise<any>;
180
197
  /**
181
198
  * change the content floor grant
182
199
  * @param {Object} options options for floor grant
@@ -185,6 +202,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
185
202
  * @param {String} options.deviceUrl Url of a device
186
203
  * @param {String} options.resourceId Populated if you are paired to a device
187
204
  * @param {String} options.uri floor grant uri
205
+ * @param {String} options.shareInstanceId id for current share
188
206
  * @returns {Promise}
189
207
  */
190
208
  changeMeetingFloor(options: {
@@ -193,6 +211,8 @@ export default class MeetingRequest extends StatelessWebexPlugin {
193
211
  deviceUrl: string;
194
212
  resourceId: string;
195
213
  uri: string;
214
+ annotationInfo: AnnotationInfo;
215
+ shareInstanceId: string;
196
216
  } | any): any;
197
217
  /**
198
218
  * Sends a request to the DTMF endpoint to send tones
@@ -206,7 +226,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
206
226
  locusUrl: string;
207
227
  deviceUrl: string;
208
228
  tones: string;
209
- }): any;
229
+ }): Promise<any>;
210
230
  /**
211
231
  * Sends a request to the controls endpoint to set the video layout
212
232
  * @param {Object} options
@@ -233,7 +253,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
233
253
  width: number;
234
254
  height: number;
235
255
  };
236
- }): any;
256
+ }): Promise<any>;
237
257
  /**
238
258
  * Make a network request to end meeting for all
239
259
  * @param {Object} options
@@ -242,7 +262,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
242
262
  */
243
263
  endMeetingForAll({ locusUrl }: {
244
264
  locusUrl: string;
245
- }): any;
265
+ }): Promise<any>;
246
266
  /**
247
267
  * Send a locus keepAlive (used in lobby)
248
268
  * @param {Object} options
@@ -267,5 +287,6 @@ export default class MeetingRequest extends StatelessWebexPlugin {
267
287
  * @param {locusUrl} options.locusUrl
268
288
  * @returns {Promise}
269
289
  */
270
- toggleReactions({ enable, locusUrl, requestingParticipantId }: ToggleReactionsOptions): any;
290
+ toggleReactions({ enable, locusUrl, requestingParticipantId }: ToggleReactionsOptions): Promise<any>;
291
+ getLocusStatusByUrl(locusUrl: string): any;
271
292
  }
@@ -1,2 +1,118 @@
1
- declare const MeetingUtil: any;
1
+ import { SELF_POLICY, IP_VERSION } from '../constants';
2
+ declare const MeetingUtil: {
3
+ parseLocusJoin: (response: any) => any;
4
+ remoteUpdateAudioVideo: (meeting: any, audioMuted?: boolean, videoMuted?: boolean) => any;
5
+ hasOwner: (info: any) => any;
6
+ isOwnerSelf: (owner: any, selfId: any) => boolean;
7
+ isPinOrGuest: (err: any) => boolean;
8
+ /**
9
+ * Returns the current state of knowledge about whether we are on an ipv4-only or ipv6-only or mixed (ipv4 and ipv6) network.
10
+ * The return value matches the possible values of "ipver" parameter used by the backend APIs.
11
+ *
12
+ * @param {Object} webex webex instance
13
+ * @returns {IP_VERSION|undefined} ipver value to be passed to the backend APIs or undefined if we should not pass any value to the backend
14
+ */
15
+ getIpVersion(webex: any): IP_VERSION | undefined;
16
+ joinMeeting: (meeting: any, options: any) => any;
17
+ cleanUp: (meeting: any) => any;
18
+ disconnectPhoneAudio: (meeting: any, phoneUrl: any) => any;
19
+ /**
20
+ * Returns options for leaving a meeting.
21
+ * @param {any} meeting
22
+ * @param {any} options
23
+ * @returns {any} leave options
24
+ */
25
+ prepareLeaveMeetingOptions: (meeting: any, options?: any) => any;
26
+ leaveMeeting: (meeting: any, options?: any) => any;
27
+ declineMeeting: (meeting: any, reason: any) => any;
28
+ isUserInLeftState: (locusInfo: any) => boolean;
29
+ isUserInIdleState: (locusInfo: any) => boolean;
30
+ isUserInJoinedState: (locusInfo: any) => boolean;
31
+ isMediaEstablished: (currentMediaStatus: any) => any;
32
+ joinMeetingOptions: (meeting: any, options?: any) => any;
33
+ /**
34
+ * Returns request options for leaving a meeting.
35
+ * @param {any} meeting
36
+ * @param {any} options
37
+ * @returns {any} request options
38
+ */
39
+ buildLeaveFetchRequestOptions: (meeting: any, options?: any) => any;
40
+ getTrack: (stream: any) => {
41
+ audioTrack: any;
42
+ videoTrack: any;
43
+ };
44
+ getModeratorFromLocusInfo: (locusInfo: any) => any;
45
+ getPolicyFromLocusInfo: (locusInfo: any) => any;
46
+ getUserDisplayHintsFromLocusInfo: (locusInfo: any) => any;
47
+ canInviteNewParticipants: (displayHints: any) => any;
48
+ canAdmitParticipant: (displayHints: any) => any;
49
+ canUserLock: (displayHints: any) => any;
50
+ canUserUnlock: (displayHints: any) => any;
51
+ canUserRaiseHand: (displayHints: any) => any;
52
+ canUserLowerAllHands: (displayHints: any) => any;
53
+ canUserLowerSomeoneElsesHand: (displayHints: any) => any;
54
+ bothLeaveAndEndMeetingAvailable: (displayHints: any) => any;
55
+ canManageBreakout: (displayHints: any) => any;
56
+ canBroadcastMessageToBreakout: (displayHints: any, policies?: {}) => boolean;
57
+ isSuppressBreakoutSupport: (displayHints: any) => any;
58
+ canAdmitLobbyToBreakout: (displayHints: any) => boolean;
59
+ isBreakoutPreassignmentsEnabled: (displayHints: any) => boolean;
60
+ canUserAskForHelp: (displayHints: any) => boolean;
61
+ lockMeeting: (actions: any, request: any, locusUrl: any) => any;
62
+ unlockMeeting: (actions: any, request: any, locusUrl: any) => any;
63
+ handleAudioLogging: (audioStream?: LocalMicrophoneStream) => void;
64
+ handleVideoLogging: (videoStream?: LocalCameraStream) => void;
65
+ handleDeviceLogging: (devices?: any[]) => void;
66
+ endMeetingForAll: (meeting: any) => any;
67
+ canEnableClosedCaption: (displayHints: any) => any;
68
+ isSaveTranscriptsEnabled: (displayHints: any) => any;
69
+ canStartTranscribing: (displayHints: any) => any;
70
+ canStopTranscribing: (displayHints: any) => any;
71
+ isClosedCaptionActive: (displayHints: any) => any;
72
+ isWebexAssistantActive: (displayHints: any) => any;
73
+ canViewCaptionPanel: (displayHints: any) => any;
74
+ isRealTimeTranslationEnabled: (displayHints: any) => any;
75
+ canSelectSpokenLanguages: (displayHints: any) => any;
76
+ waitingForOthersToJoin: (displayHints: any) => any;
77
+ canSendReactions: (originalValue: any, displayHints: any) => any;
78
+ canUserRenameSelfAndObserved: (displayHints: any) => any;
79
+ canUserRenameOthers: (displayHints: any) => any;
80
+ canShareWhiteBoard: (displayHints: any) => any;
81
+ /**
82
+ * Adds the current locus sequence information to a request body
83
+ * @param {Object} meeting The meeting object
84
+ * @param {Object} requestBody The body of a request to locus
85
+ * @returns {void}
86
+ */
87
+ addSequence: (meeting: any, requestBody: any) => void;
88
+ /**
89
+ * Updates the locus info for the meeting with the delta locus
90
+ * returned from requests that include the sequence information
91
+ * Returns the original response object
92
+ * @param {Object} meeting The meeting object
93
+ * @param {Object} response The response of the http request
94
+ * @returns {Object}
95
+ */
96
+ updateLocusWithDelta: (meeting: any, response: any) => any;
97
+ generateBuildLocusDeltaRequestOptions: (originalMeeting: any) => (originalOptions: any) => any;
98
+ generateLocusDeltaRequest: (originalMeeting: any) => (originalOptions: any) => any;
99
+ selfSupportsFeature: (feature: SELF_POLICY, userPolicies: Record<SELF_POLICY, boolean>) => boolean;
100
+ parseInterpretationInfo: (meeting: any, meetingInfo: any) => void;
101
+ /**
102
+ * Returns a CA-recognized error payload for the specified raw error message/reason.
103
+ *
104
+ * New errors can be added to this function for handling in the future
105
+ *
106
+ * @param {String} reason the raw error message
107
+ * @returns {Array<object>} an array of payload objects
108
+ */
109
+ getChangeMeetingFloorErrorPayload: (reason: string) => {
110
+ fatal: boolean;
111
+ category: string;
112
+ errorCode: number;
113
+ errorDescription: string;
114
+ name: string;
115
+ shownToUser: boolean;
116
+ }[];
117
+ };
2
118
  export default MeetingUtil;
@@ -49,9 +49,21 @@ export default class MeetingInfo {
49
49
  * Fetches meeting info from the server
50
50
  * @param {String} destination one of many different types of destinations to look up info for
51
51
  * @param {String} [type] to match up with the destination value
52
+ * @param {String} [password] meeting password
53
+ * @param {Object} [captchaInfo] captcha code and id
54
+ * @param {String} [installedOrgID]
55
+ * @param {String} [locusId]
56
+ * @param {Object} [extraParams]
57
+ * @param {Boolean} [options] meeting Id and whether Call Analyzer events should be sent
52
58
  * @returns {Promise} returns a meeting info object
53
59
  * @public
54
60
  * @memberof MeetingInfo
55
61
  */
56
- fetchMeetingInfo(destination: string, type?: string): any;
62
+ fetchMeetingInfo(destination: string, type?: string, password?: string, captchaInfo?: {
63
+ code: string;
64
+ id: string;
65
+ }, installedOrgID?: any, locusId?: any, extraParams?: object, options?: {
66
+ meetingId?: string;
67
+ sendCAevents?: boolean;
68
+ }): any;
57
69
  }
@@ -29,6 +29,22 @@ export declare class MeetingInfoV2AdhocMeetingError extends Error {
29
29
  */
30
30
  constructor(wbxAppApiErrorCode?: number, message?: string);
31
31
  }
32
+ /**
33
+ * Error preventing join because of a meeting policy
34
+ */
35
+ export declare class MeetingInfoV2PolicyError extends Error {
36
+ meetingInfo: object;
37
+ sdkMessage: string;
38
+ wbxAppApiCode: number;
39
+ /**
40
+ *
41
+ * @constructor
42
+ * @param {Number} [wbxAppApiErrorCode]
43
+ * @param {Object} [meetingInfo]
44
+ * @param {String} [message]
45
+ */
46
+ constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string);
47
+ }
32
48
  /**
33
49
  * Error to indicate that preferred webex site not present to start adhoc meeting
34
50
  */
@@ -66,14 +82,21 @@ export default class MeetingInfoV2 {
66
82
  * @memberof MeetingInfo
67
83
  */
68
84
  fetchInfoOptions(destination: string, type?: string): any;
85
+ /**
86
+ * Raises a MeetingInfoV2PolicyError for policy error codes
87
+ * @param {any} err the error from the request
88
+ * @returns {void}
89
+ */
90
+ handlePolicyError: (err: any) => void;
69
91
  /**
70
92
  * Creates adhoc space meetings for a space by fetching the conversation infomation
71
93
  * @param {String} conversationUrl conversationUrl to start adhoc meeting on
94
+ * @param {String} installedOrgID org ID of user's machine
72
95
  * @returns {Promise} returns a meeting info object
73
96
  * @public
74
97
  * @memberof MeetingInfo
75
98
  */
76
- createAdhocSpaceMeeting(conversationUrl: string): Promise<any>;
99
+ createAdhocSpaceMeeting(conversationUrl: string, installedOrgID?: string): Promise<any>;
77
100
  /**
78
101
  * Fetches meeting info from the server
79
102
  * @param {String} destination one of many different types of destinations to look up info for
@@ -82,6 +105,10 @@ export default class MeetingInfoV2 {
82
105
  * @param {Object} captchaInfo
83
106
  * @param {String} captchaInfo.code
84
107
  * @param {String} captchaInfo.id
108
+ * @param {String} installedOrgID org ID of user's machine
109
+ * @param {String} locusId
110
+ * @param {Object} extraParams
111
+ * @param {Object} options
85
112
  * @returns {Promise} returns a meeting info object
86
113
  * @public
87
114
  * @memberof MeetingInfo
@@ -89,5 +116,8 @@ export default class MeetingInfoV2 {
89
116
  fetchMeetingInfo(destination: string, type?: string, password?: string, captchaInfo?: {
90
117
  code: string;
91
118
  id: string;
119
+ }, installedOrgID?: any, locusId?: any, extraParams?: object, options?: {
120
+ meetingId?: string;
121
+ sendCAevents?: boolean;
92
122
  }): Promise<any>;
93
123
  }