@webex/plugin-meetings 3.0.0-beta.34 → 3.0.0-beta.340

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 (392) 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 +94 -15
  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 +709 -35
  15. package/dist/breakouts/index.js.map +1 -1
  16. package/dist/breakouts/utils.js +45 -1
  17. package/dist/breakouts/utils.js.map +1 -1
  18. package/dist/common/errors/no-meeting-info.js +51 -0
  19. package/dist/common/errors/no-meeting-info.js.map +1 -0
  20. package/dist/common/errors/reclaim-host-role-errors.js +158 -0
  21. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  22. package/dist/common/errors/webex-errors.js +48 -7
  23. package/dist/common/errors/webex-errors.js.map +1 -1
  24. package/dist/common/logs/logger-proxy.js +1 -1
  25. package/dist/common/logs/logger-proxy.js.map +1 -1
  26. package/dist/common/logs/request.js +5 -1
  27. package/dist/common/logs/request.js.map +1 -1
  28. package/dist/common/queue.js +24 -9
  29. package/dist/common/queue.js.map +1 -1
  30. package/dist/config.js +5 -10
  31. package/dist/config.js.map +1 -1
  32. package/dist/constants.js +233 -29
  33. package/dist/constants.js.map +1 -1
  34. package/dist/controls-options-manager/enums.js +14 -2
  35. package/dist/controls-options-manager/enums.js.map +1 -1
  36. package/dist/controls-options-manager/index.js +109 -15
  37. package/dist/controls-options-manager/index.js.map +1 -1
  38. package/dist/controls-options-manager/types.js +7 -0
  39. package/dist/controls-options-manager/types.js.map +1 -0
  40. package/dist/controls-options-manager/util.js +309 -18
  41. package/dist/controls-options-manager/util.js.map +1 -1
  42. package/dist/index.js +112 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/interpretation/collection.js +23 -0
  45. package/dist/interpretation/collection.js.map +1 -0
  46. package/dist/interpretation/index.js +366 -0
  47. package/dist/interpretation/index.js.map +1 -0
  48. package/dist/interpretation/siLanguage.js +25 -0
  49. package/dist/interpretation/siLanguage.js.map +1 -0
  50. package/dist/locus-info/controlsUtils.js +91 -2
  51. package/dist/locus-info/controlsUtils.js.map +1 -1
  52. package/dist/locus-info/index.js +383 -62
  53. package/dist/locus-info/index.js.map +1 -1
  54. package/dist/locus-info/infoUtils.js +7 -1
  55. package/dist/locus-info/infoUtils.js.map +1 -1
  56. package/dist/locus-info/mediaSharesUtils.js +57 -1
  57. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  58. package/dist/locus-info/parser.js +249 -72
  59. package/dist/locus-info/parser.js.map +1 -1
  60. package/dist/locus-info/selfUtils.js +89 -14
  61. package/dist/locus-info/selfUtils.js.map +1 -1
  62. package/dist/media/index.js +62 -116
  63. package/dist/media/index.js.map +1 -1
  64. package/dist/media/properties.js +73 -124
  65. package/dist/media/properties.js.map +1 -1
  66. package/dist/mediaQualityMetrics/config.js +1 -204
  67. package/dist/mediaQualityMetrics/config.js.map +1 -1
  68. package/dist/meeting/in-meeting-actions.js +86 -2
  69. package/dist/meeting/in-meeting-actions.js.map +1 -1
  70. package/dist/meeting/index.js +3927 -2960
  71. package/dist/meeting/index.js.map +1 -1
  72. package/dist/meeting/locusMediaRequest.js +292 -0
  73. package/dist/meeting/locusMediaRequest.js.map +1 -0
  74. package/dist/meeting/muteState.js +224 -131
  75. package/dist/meeting/muteState.js.map +1 -1
  76. package/dist/meeting/request.js +260 -196
  77. package/dist/meeting/request.js.map +1 -1
  78. package/dist/meeting/util.js +601 -417
  79. package/dist/meeting/util.js.map +1 -1
  80. package/dist/meeting-info/index.js +73 -7
  81. package/dist/meeting-info/index.js.map +1 -1
  82. package/dist/meeting-info/meeting-info-v2.js +192 -51
  83. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  84. package/dist/meeting-info/util.js +1 -1
  85. package/dist/meeting-info/util.js.map +1 -1
  86. package/dist/meeting-info/utilv2.js +36 -36
  87. package/dist/meeting-info/utilv2.js.map +1 -1
  88. package/dist/meetings/collection.js +39 -0
  89. package/dist/meetings/collection.js.map +1 -1
  90. package/dist/meetings/index.js +424 -116
  91. package/dist/meetings/index.js.map +1 -1
  92. package/dist/meetings/meetings.types.js +7 -0
  93. package/dist/meetings/meetings.types.js.map +1 -0
  94. package/dist/meetings/request.js +2 -0
  95. package/dist/meetings/request.js.map +1 -1
  96. package/dist/meetings/util.js +72 -6
  97. package/dist/meetings/util.js.map +1 -1
  98. package/dist/member/index.js +58 -0
  99. package/dist/member/index.js.map +1 -1
  100. package/dist/member/types.js +25 -0
  101. package/dist/member/types.js.map +1 -0
  102. package/dist/member/util.js +132 -25
  103. package/dist/member/util.js.map +1 -1
  104. package/dist/members/collection.js +10 -0
  105. package/dist/members/collection.js.map +1 -1
  106. package/dist/members/index.js +102 -6
  107. package/dist/members/index.js.map +1 -1
  108. package/dist/members/request.js +106 -38
  109. package/dist/members/request.js.map +1 -1
  110. package/dist/members/types.js +15 -0
  111. package/dist/members/types.js.map +1 -0
  112. package/dist/members/util.js +326 -232
  113. package/dist/members/util.js.map +1 -1
  114. package/dist/metrics/constants.js +16 -5
  115. package/dist/metrics/constants.js.map +1 -1
  116. package/dist/metrics/index.js +1 -446
  117. package/dist/metrics/index.js.map +1 -1
  118. package/dist/multistream/mediaRequestManager.js +228 -58
  119. package/dist/multistream/mediaRequestManager.js.map +1 -1
  120. package/dist/multistream/receiveSlot.js +29 -16
  121. package/dist/multistream/receiveSlot.js.map +1 -1
  122. package/dist/multistream/receiveSlotManager.js +39 -36
  123. package/dist/multistream/receiveSlotManager.js.map +1 -1
  124. package/dist/multistream/remoteMedia.js +44 -18
  125. package/dist/multistream/remoteMedia.js.map +1 -1
  126. package/dist/multistream/remoteMediaGroup.js +60 -3
  127. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  128. package/dist/multistream/remoteMediaManager.js +209 -59
  129. package/dist/multistream/remoteMediaManager.js.map +1 -1
  130. package/dist/multistream/sendSlotManager.js +233 -0
  131. package/dist/multistream/sendSlotManager.js.map +1 -0
  132. package/dist/reachability/clusterReachability.js +356 -0
  133. package/dist/reachability/clusterReachability.js.map +1 -0
  134. package/dist/reachability/index.js +273 -391
  135. package/dist/reachability/index.js.map +1 -1
  136. package/dist/reachability/request.js +17 -8
  137. package/dist/reachability/request.js.map +1 -1
  138. package/dist/reachability/util.js +29 -0
  139. package/dist/reachability/util.js.map +1 -0
  140. package/dist/reconnection-manager/index.js +214 -170
  141. package/dist/reconnection-manager/index.js.map +1 -1
  142. package/dist/recording-controller/index.js +21 -2
  143. package/dist/recording-controller/index.js.map +1 -1
  144. package/dist/recording-controller/util.js +9 -8
  145. package/dist/recording-controller/util.js.map +1 -1
  146. package/dist/roap/index.js +62 -35
  147. package/dist/roap/index.js.map +1 -1
  148. package/dist/roap/request.js +112 -97
  149. package/dist/roap/request.js.map +1 -1
  150. package/dist/roap/turnDiscovery.js +95 -38
  151. package/dist/roap/turnDiscovery.js.map +1 -1
  152. package/dist/rtcMetrics/constants.js +12 -0
  153. package/dist/rtcMetrics/constants.js.map +1 -0
  154. package/dist/rtcMetrics/index.js +142 -0
  155. package/dist/rtcMetrics/index.js.map +1 -0
  156. package/dist/statsAnalyzer/index.js +181 -214
  157. package/dist/statsAnalyzer/index.js.map +1 -1
  158. package/dist/statsAnalyzer/mqaUtil.js +22 -18
  159. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  160. package/dist/types/annotation/annotation.types.d.ts +42 -0
  161. package/dist/types/annotation/constants.d.ts +31 -0
  162. package/dist/types/annotation/index.d.ts +117 -0
  163. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  164. package/dist/types/breakouts/events.d.ts +8 -0
  165. package/dist/types/breakouts/utils.d.ts +14 -0
  166. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  167. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  168. package/dist/types/common/errors/webex-errors.d.ts +25 -1
  169. package/dist/types/common/logs/request.d.ts +2 -0
  170. package/dist/types/common/queue.d.ts +9 -7
  171. package/dist/types/config.d.ts +2 -7
  172. package/dist/types/constants.d.ts +201 -30
  173. package/dist/types/controls-options-manager/enums.d.ts +11 -1
  174. package/dist/types/controls-options-manager/index.d.ts +17 -1
  175. package/dist/types/controls-options-manager/types.d.ts +43 -0
  176. package/dist/types/controls-options-manager/util.d.ts +1 -7
  177. package/dist/types/index.d.ts +6 -4
  178. package/dist/types/interpretation/collection.d.ts +5 -0
  179. package/dist/types/interpretation/index.d.ts +5 -0
  180. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  181. package/dist/types/locus-info/index.d.ts +57 -4
  182. package/dist/types/locus-info/parser.d.ts +66 -6
  183. package/dist/types/media/index.d.ts +2 -0
  184. package/dist/types/media/properties.d.ts +34 -48
  185. package/dist/types/mediaQualityMetrics/config.d.ts +0 -128
  186. package/dist/types/meeting/in-meeting-actions.d.ts +86 -2
  187. package/dist/types/meeting/index.d.ts +506 -512
  188. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  189. package/dist/types/meeting/muteState.d.ts +93 -25
  190. package/dist/types/meeting/request.d.ts +72 -43
  191. package/dist/types/meeting/util.d.ts +101 -1
  192. package/dist/types/meeting-info/index.d.ts +13 -1
  193. package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
  194. package/dist/types/meetings/collection.d.ts +17 -0
  195. package/dist/types/meetings/index.d.ts +91 -21
  196. package/dist/types/meetings/meetings.types.d.ts +4 -0
  197. package/dist/types/member/index.d.ts +14 -0
  198. package/dist/types/member/types.d.ts +32 -0
  199. package/dist/types/members/collection.d.ts +5 -0
  200. package/dist/types/members/index.d.ts +35 -2
  201. package/dist/types/members/request.d.ts +73 -9
  202. package/dist/types/members/types.d.ts +25 -0
  203. package/dist/types/members/util.d.ts +214 -1
  204. package/dist/types/metrics/constants.d.ts +15 -4
  205. package/dist/types/metrics/index.d.ts +4 -111
  206. package/dist/types/multistream/mediaRequestManager.d.ts +72 -5
  207. package/dist/types/multistream/receiveSlot.d.ts +13 -11
  208. package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
  209. package/dist/types/multistream/remoteMedia.d.ts +8 -29
  210. package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
  211. package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
  212. package/dist/types/multistream/sendSlotManager.d.ts +61 -0
  213. package/dist/types/reachability/clusterReachability.d.ts +109 -0
  214. package/dist/types/reachability/index.d.ts +60 -95
  215. package/dist/types/reachability/request.d.ts +7 -3
  216. package/dist/types/reachability/util.d.ts +8 -0
  217. package/dist/types/reconnection-manager/index.d.ts +19 -0
  218. package/dist/types/recording-controller/index.d.ts +15 -1
  219. package/dist/types/recording-controller/util.d.ts +5 -4
  220. package/dist/types/roap/index.d.ts +2 -1
  221. package/dist/types/roap/request.d.ts +15 -11
  222. package/dist/types/roap/turnDiscovery.d.ts +21 -3
  223. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  224. package/dist/types/rtcMetrics/index.d.ts +54 -0
  225. package/dist/types/statsAnalyzer/index.d.ts +29 -11
  226. package/dist/types/webinar/collection.d.ts +16 -0
  227. package/dist/types/webinar/index.d.ts +5 -0
  228. package/dist/webinar/collection.js +44 -0
  229. package/dist/webinar/collection.js.map +1 -0
  230. package/dist/webinar/index.js +69 -0
  231. package/dist/webinar/index.js.map +1 -0
  232. package/package.json +22 -19
  233. package/src/annotation/annotation.types.ts +50 -0
  234. package/src/annotation/constants.ts +36 -0
  235. package/src/annotation/index.ts +328 -0
  236. package/src/breakouts/README.md +42 -12
  237. package/src/breakouts/breakout.ts +67 -9
  238. package/src/breakouts/edit-lock-error.ts +25 -0
  239. package/src/breakouts/events.ts +56 -0
  240. package/src/breakouts/index.ts +592 -20
  241. package/src/breakouts/utils.ts +42 -0
  242. package/src/common/errors/no-meeting-info.ts +24 -0
  243. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  244. package/src/common/errors/webex-errors.ts +44 -2
  245. package/src/common/logs/logger-proxy.ts +1 -1
  246. package/src/common/logs/request.ts +5 -1
  247. package/src/common/queue.ts +22 -8
  248. package/src/config.ts +4 -9
  249. package/src/constants.ts +224 -20
  250. package/src/controls-options-manager/enums.ts +12 -0
  251. package/src/controls-options-manager/index.ts +116 -21
  252. package/src/controls-options-manager/types.ts +59 -0
  253. package/src/controls-options-manager/util.ts +294 -14
  254. package/src/index.ts +40 -0
  255. package/src/interpretation/README.md +60 -0
  256. package/src/interpretation/collection.ts +19 -0
  257. package/src/interpretation/index.ts +332 -0
  258. package/src/interpretation/siLanguage.ts +18 -0
  259. package/src/locus-info/controlsUtils.ts +108 -0
  260. package/src/locus-info/index.ts +413 -59
  261. package/src/locus-info/infoUtils.ts +10 -2
  262. package/src/locus-info/mediaSharesUtils.ts +64 -0
  263. package/src/locus-info/parser.ts +258 -47
  264. package/src/locus-info/selfUtils.ts +81 -5
  265. package/src/media/index.ts +102 -122
  266. package/src/media/properties.ts +87 -110
  267. package/src/mediaQualityMetrics/config.ts +0 -135
  268. package/src/meeting/in-meeting-actions.ts +171 -3
  269. package/src/meeting/index.ts +3276 -2555
  270. package/src/meeting/locusMediaRequest.ts +313 -0
  271. package/src/meeting/muteState.ts +223 -136
  272. package/src/meeting/request.ts +177 -121
  273. package/src/meeting/util.ts +588 -394
  274. package/src/meeting-info/index.ts +81 -8
  275. package/src/meeting-info/meeting-info-v2.ts +170 -14
  276. package/src/meeting-info/util.ts +1 -1
  277. package/src/meeting-info/utilv2.ts +23 -23
  278. package/src/meetings/collection.ts +33 -0
  279. package/src/meetings/index.ts +454 -125
  280. package/src/meetings/meetings.types.ts +12 -0
  281. package/src/meetings/request.ts +2 -0
  282. package/src/meetings/util.ts +80 -11
  283. package/src/member/index.ts +58 -0
  284. package/src/member/types.ts +38 -0
  285. package/src/member/util.ts +141 -25
  286. package/src/members/collection.ts +8 -0
  287. package/src/members/index.ts +134 -8
  288. package/src/members/request.ts +97 -17
  289. package/src/members/types.ts +29 -0
  290. package/src/members/util.ts +333 -240
  291. package/src/metrics/constants.ts +15 -4
  292. package/src/metrics/index.ts +1 -469
  293. package/src/multistream/mediaRequestManager.ts +277 -82
  294. package/src/multistream/receiveSlot.ts +31 -17
  295. package/src/multistream/receiveSlotManager.ts +34 -24
  296. package/src/multistream/remoteMedia.ts +27 -2
  297. package/src/multistream/remoteMediaGroup.ts +59 -0
  298. package/src/multistream/remoteMediaManager.ts +148 -30
  299. package/src/multistream/sendSlotManager.ts +170 -0
  300. package/src/reachability/clusterReachability.ts +320 -0
  301. package/src/reachability/index.ts +236 -342
  302. package/src/reachability/request.ts +17 -8
  303. package/src/reachability/util.ts +24 -0
  304. package/src/reconnection-manager/index.ts +128 -106
  305. package/src/recording-controller/index.ts +20 -3
  306. package/src/recording-controller/util.ts +26 -9
  307. package/src/roap/index.ts +63 -32
  308. package/src/roap/request.ts +100 -104
  309. package/src/roap/turnDiscovery.ts +48 -26
  310. package/src/rtcMetrics/constants.ts +3 -0
  311. package/src/rtcMetrics/index.ts +124 -0
  312. package/src/statsAnalyzer/index.ts +218 -289
  313. package/src/statsAnalyzer/mqaUtil.ts +28 -30
  314. package/src/webinar/collection.ts +31 -0
  315. package/src/webinar/index.ts +62 -0
  316. package/test/integration/spec/converged-space-meetings.js +60 -3
  317. package/test/integration/spec/journey.js +320 -261
  318. package/test/integration/spec/space-meeting.js +76 -3
  319. package/test/unit/spec/annotation/index.ts +418 -0
  320. package/test/unit/spec/breakouts/breakout.ts +118 -28
  321. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  322. package/test/unit/spec/breakouts/events.ts +89 -0
  323. package/test/unit/spec/breakouts/index.ts +1395 -69
  324. package/test/unit/spec/breakouts/utils.js +52 -1
  325. package/test/unit/spec/common/queue.js +31 -2
  326. package/test/unit/spec/controls-options-manager/index.js +163 -0
  327. package/test/unit/spec/controls-options-manager/util.js +576 -60
  328. package/test/unit/spec/fixture/locus.js +1 -0
  329. package/test/unit/spec/interpretation/collection.ts +15 -0
  330. package/test/unit/spec/interpretation/index.ts +589 -0
  331. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  332. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  333. package/test/unit/spec/locus-info/index.js +1304 -33
  334. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  335. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  336. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  337. package/test/unit/spec/locus-info/parser.js +116 -35
  338. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  339. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  340. package/test/unit/spec/media/index.ts +120 -37
  341. package/test/unit/spec/media/properties.ts +2 -2
  342. package/test/unit/spec/meeting/in-meeting-actions.ts +85 -3
  343. package/test/unit/spec/meeting/index.js +5849 -2014
  344. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  345. package/test/unit/spec/meeting/muteState.js +402 -213
  346. package/test/unit/spec/meeting/request.js +483 -49
  347. package/test/unit/spec/meeting/utils.js +679 -64
  348. package/test/unit/spec/meeting-info/index.js +300 -0
  349. package/test/unit/spec/meeting-info/meetinginfov2.js +526 -5
  350. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  351. package/test/unit/spec/meetings/collection.js +26 -0
  352. package/test/unit/spec/meetings/index.js +1231 -212
  353. package/test/unit/spec/meetings/utils.js +202 -2
  354. package/test/unit/spec/member/index.js +61 -6
  355. package/test/unit/spec/member/util.js +510 -34
  356. package/test/unit/spec/members/index.js +432 -1
  357. package/test/unit/spec/members/request.js +206 -27
  358. package/test/unit/spec/members/utils.js +210 -0
  359. package/test/unit/spec/metrics/index.js +1 -50
  360. package/test/unit/spec/multistream/mediaRequestManager.ts +776 -162
  361. package/test/unit/spec/multistream/receiveSlot.ts +28 -20
  362. package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
  363. package/test/unit/spec/multistream/remoteMedia.ts +30 -0
  364. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  365. package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
  366. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  367. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  368. package/test/unit/spec/reachability/index.ts +486 -13
  369. package/test/unit/spec/reachability/request.js +68 -0
  370. package/test/unit/spec/reachability/util.ts +40 -0
  371. package/test/unit/spec/reconnection-manager/index.js +117 -11
  372. package/test/unit/spec/recording-controller/index.js +294 -218
  373. package/test/unit/spec/recording-controller/util.js +223 -96
  374. package/test/unit/spec/roap/index.ts +174 -63
  375. package/test/unit/spec/roap/request.ts +226 -85
  376. package/test/unit/spec/roap/turnDiscovery.ts +76 -34
  377. package/test/unit/spec/rtcMetrics/index.ts +93 -0
  378. package/test/unit/spec/stats-analyzer/index.js +231 -7
  379. package/test/unit/spec/webinar/collection.ts +13 -0
  380. package/test/unit/spec/webinar/index.ts +60 -0
  381. package/test/utils/integrationTestUtils.js +46 -0
  382. package/test/utils/testUtils.js +0 -52
  383. package/dist/meeting/effectsState.js +0 -262
  384. package/dist/meeting/effectsState.js.map +0 -1
  385. package/dist/metrics/config.js +0 -289
  386. package/dist/metrics/config.js.map +0 -1
  387. package/dist/types/meeting/effectsState.d.ts +0 -42
  388. package/dist/types/metrics/config.d.ts +0 -169
  389. package/src/index.js +0 -16
  390. package/src/meeting/effectsState.ts +0 -211
  391. package/src/metrics/config.ts +0 -485
  392. package/test/unit/spec/meeting/effectsState.js +0 -285
@@ -139,6 +139,20 @@ export declare class RemoteMediaManager extends EventsScope {
139
139
  * @returns {LayoutId}
140
140
  */
141
141
  getLayoutId(): LayoutId | undefined;
142
+ /**
143
+ * sets the preferLiveVideo
144
+ */
145
+ setPreferLiveVideo(preferLiveVideo: boolean): void;
146
+ /**
147
+ * Sets CSIs for multiple RemoteMedia instances belonging to RemoteMediaGroup.
148
+ * For each entry in the remoteMediaCsis array:
149
+ * - if csi is specified, the RemoteMedia instance is pinned to that CSI
150
+ * - if csi is undefined, the RemoteMedia instance is unpinned
151
+ */
152
+ setActiveSpeakerCsis(remoteMediaCsis: {
153
+ remoteMedia: RemoteMedia;
154
+ csi?: number;
155
+ }[]): void;
142
156
  /**
143
157
  * Creates the audio slots
144
158
  */
@@ -161,9 +175,39 @@ export declare class RemoteMediaManager extends EventsScope {
161
175
  */
162
176
  private releaseUnusedVideoSlots;
163
177
  /**
164
- * Allocates receive slots to all video panes in the current selected layout
178
+ * Allocates receive slots to all active speaker video panes
179
+ * in the current selected layout.
180
+ *
181
+ * Allocation tries to keep the same order of the slots between the previous
182
+ * layout and the new one. Sorting helps making sure that highest priority slots
183
+ * go in the same order in the new layout.
184
+ */
185
+ private allocateSlotsToActiveSpeakerPaneGroups;
186
+ /**
187
+ * Allocates receive slots to all receiver selected video panes
188
+ * in the current selected layout
189
+ */
190
+ private allocateSlotsToReceiverSelectedVideoPaneGroups;
191
+ /**
192
+ * Ensures that we have enough slots for the current layout.
193
+ */
194
+ private refillRequiredSlotsIfNeeded;
195
+ /**
196
+ * Move all active speaker slots to "unused"
197
+ */
198
+ private trimActiveSpeakerSlots;
199
+ /**
200
+ * Logs the state of the receive slots
165
201
  */
166
- private allocateSlotsToVideoPaneGroups;
202
+ private logMainVideoReceiveSlots;
203
+ /** logs main audio slots */
204
+ private logMainAudioReceiveSlots;
205
+ /** logs slides video slots */
206
+ private logSlidesVideoReceiveSlots;
207
+ /** logs slides audio slots */
208
+ private logSlidesAudioReceiveSlots;
209
+ /** Logs all current receive slots */
210
+ logAllReceiveSlots(): void;
167
211
  /**
168
212
  * Makes sure we have the right number of receive slots created for the current layout
169
213
  * and allocates them to the right video panes / pane groups
@@ -0,0 +1,61 @@
1
+ import { SendSlot, MediaType, LocalStream, MultistreamRoapMediaConnection } from '@webex/internal-media-core';
2
+ export default class SendSlotManager {
3
+ private readonly slots;
4
+ private readonly LoggerProxy;
5
+ constructor(LoggerProxy: any);
6
+ /**
7
+ * This method is used to create a sendSlot for the given mediaType and returns the created sendSlot
8
+ * @param {MultistreamRoapMediaConnection} mediaConnection MultistreamRoapMediaConnection for which a sendSlot needs to be created
9
+ * @param {MediaType} mediaType MediaType for which a sendSlot needs to be created (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
10
+ * @param {boolean} active This is optional boolean to set the active state of the sendSlot. Default is true
11
+ * @returns {SendSlot} slot The created sendSlot
12
+ */
13
+ createSlot(mediaConnection: MultistreamRoapMediaConnection, mediaType: MediaType, active?: boolean): SendSlot;
14
+ /**
15
+ * This method is used to retrieve the sendSlot for the given mediaType
16
+ * @param {MediaType} mediaType of which the slot needs to be retrieved
17
+ * @returns {SendSlot}
18
+ */
19
+ getSlot(mediaType: MediaType): SendSlot;
20
+ /**
21
+ * This method publishes the given stream to the sendSlot for the given mediaType
22
+ * @param {MediaType} mediaType MediaType of the sendSlot to which a stream needs to be published (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
23
+ * @param {LocalStream} stream LocalStream to be published
24
+ * @returns {Promise<void>}
25
+ */
26
+ publishStream(mediaType: MediaType, stream: LocalStream): Promise<void>;
27
+ /**
28
+ * This method unpublishes the stream from the sendSlot of the given mediaType
29
+ * @param {MediaType} mediaType MediaType of the sendSlot from which a stream needs to be unpublished (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
30
+ * @returns {Promise<void>}
31
+ */
32
+ unpublishStream(mediaType: MediaType): Promise<void>;
33
+ /**
34
+ * This method is used to set the active state of the sendSlot for the given mediaType
35
+ * @param {MediaType} mediaType The MediaType of the sendSlot for which the active state needs to be set (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
36
+ * @param {boolean} active The boolean to set the active state of the sendSlot. Default is true
37
+ * @returns {void}
38
+ */
39
+ setActive(mediaType: MediaType, active?: boolean): void;
40
+ /**
41
+ * This method is used to set the codec parameters for the sendSlot of the given mediaType
42
+ * @param {MediaType} mediaType MediaType of the sendSlot for which the codec parameters needs to be set (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
43
+ * @param {Object} codecParameters
44
+ * @returns {Promise<void>}
45
+ */
46
+ setCodecParameters(mediaType: MediaType, codecParameters: {
47
+ [key: string]: string | undefined;
48
+ }): Promise<void>;
49
+ /**
50
+ * This method is used to delete the codec parameters for the sendSlot of the given mediaType
51
+ * @param {MediaType} mediaType MediaType of the sendSlot for which the codec parameters needs to be deleted (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
52
+ * @param {Array<String>} parameters Array of keys of the codec parameters to be deleted
53
+ * @returns {Promise<void>}
54
+ */
55
+ deleteCodecParameters(mediaType: MediaType, parameters: string[]): Promise<void>;
56
+ /**
57
+ * This method is used to reset the SendSlotsManager by deleting all the sendSlots
58
+ * @returns {undefined}
59
+ */
60
+ reset(): void;
61
+ }
@@ -0,0 +1,109 @@
1
+ import { ClusterNode } from './request';
2
+ export type TransportResult = {
3
+ result: 'reachable' | 'unreachable' | 'untested';
4
+ latencyInMilliseconds?: number;
5
+ clientMediaIPs?: string[];
6
+ };
7
+ export type ClusterReachabilityResult = {
8
+ udp: TransportResult;
9
+ tcp: TransportResult;
10
+ xtls: TransportResult;
11
+ };
12
+ /**
13
+ * A class that handles reachability checks for a single cluster.
14
+ */
15
+ export declare class ClusterReachability {
16
+ private numUdpUrls;
17
+ private numTcpUrls;
18
+ private result;
19
+ private pc?;
20
+ private defer;
21
+ private startTimestamp;
22
+ readonly isVideoMesh: boolean;
23
+ readonly name: any;
24
+ /**
25
+ * Constructor for ClusterReachability
26
+ * @param {string} name cluster name
27
+ * @param {ClusterNode} clusterInfo information about the media cluster
28
+ */
29
+ constructor(name: string, clusterInfo: ClusterNode);
30
+ /**
31
+ * Gets total elapsed time, can be called only after start() is called
32
+ * @returns {Number} Milliseconds
33
+ */
34
+ private getElapsedTime;
35
+ /**
36
+ * Generate peerConnection config settings
37
+ * @param {ClusterNode} cluster
38
+ * @returns {RTCConfiguration} peerConnectionConfig
39
+ */
40
+ private buildPeerConnectionConfig;
41
+ /**
42
+ * Creates an RTCPeerConnection
43
+ * @param {ClusterNode} clusterInfo information about the media cluster
44
+ * @returns {RTCPeerConnection} peerConnection
45
+ */
46
+ private createPeerConnection;
47
+ /**
48
+ * @returns {ClusterReachabilityResult} reachability result for this cluster
49
+ */
50
+ getResult(): ClusterReachabilityResult;
51
+ /**
52
+ * Closes the peerConnection
53
+ *
54
+ * @returns {void}
55
+ */
56
+ private closePeerConnection;
57
+ /**
58
+ * Resolves the defer, indicating that reachability checks for this cluster are completed
59
+ *
60
+ * @returns {void}
61
+ */
62
+ private finishReachabilityCheck;
63
+ /**
64
+ * Adds public IP (client media IPs)
65
+ * @param {string} protocol
66
+ * @param {string} publicIP
67
+ * @returns {void}
68
+ */
69
+ private addPublicIP;
70
+ /**
71
+ * Registers a listener for the iceGatheringStateChange event
72
+ *
73
+ * @returns {void}
74
+ */
75
+ private registerIceGatheringStateChangeListener;
76
+ /**
77
+ * Checks if we have the results for all the protocols (UDP and TCP)
78
+ *
79
+ * @returns {boolean} true if we have all results, false otherwise
80
+ */
81
+ private haveWeGotAllResults;
82
+ /**
83
+ * Stores the latency in the result for the given protocol and marks it as reachable
84
+ *
85
+ * @param {string} protocol
86
+ * @param {number} latency
87
+ * @returns {void}
88
+ */
89
+ private storeLatencyResult;
90
+ /**
91
+ * Registers a listener for the icecandidate event
92
+ *
93
+ * @returns {void}
94
+ */
95
+ private registerIceCandidateListener;
96
+ /**
97
+ * Starts the process of doing UDP and TCP reachability checks on the media cluster.
98
+ * XTLS reachability checking is not supported.
99
+ *
100
+ * @returns {Promise}
101
+ */
102
+ start(): Promise<ClusterReachabilityResult>;
103
+ /**
104
+ * Starts the process of gathering ICE candidates
105
+ *
106
+ * @returns {Promise} promise that's resolved once reachability checks for this cluster are completed or timeout is reached
107
+ */
108
+ private gatherIceCandidates;
109
+ }
@@ -1,6 +1,37 @@
1
1
  /*!
2
2
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
3
  */
4
+ import ReachabilityRequest from './request';
5
+ import { ClusterReachability, ClusterReachabilityResult } from './clusterReachability';
6
+ export type ReachabilityMetrics = {
7
+ reachability_public_udp_success: number;
8
+ reachability_public_udp_failed: number;
9
+ reachability_public_tcp_success: number;
10
+ reachability_public_tcp_failed: number;
11
+ reachability_vmn_udp_success: number;
12
+ reachability_vmn_udp_failed: number;
13
+ reachability_vmn_tcp_success: number;
14
+ reachability_vmn_tcp_failed: number;
15
+ };
16
+ /**
17
+ * This is the type that matches what backend expects us to send to them. It is a bit weird, because
18
+ * it uses strings instead of booleans and numbers, but that's what they require.
19
+ */
20
+ export type TransportResultForBackend = {
21
+ reachable?: 'true' | 'false';
22
+ latencyInMilliseconds?: string;
23
+ clientMediaIPs?: string[];
24
+ untested?: 'true';
25
+ };
26
+ export type ReachabilityResultForBackend = {
27
+ udp: TransportResultForBackend;
28
+ tcp: TransportResultForBackend;
29
+ xtls: TransportResultForBackend;
30
+ };
31
+ export type ReachabilityResultsForBackend = Record<string, ReachabilityResultForBackend>;
32
+ export type ReachabilityResults = Record<string, ClusterReachabilityResult & {
33
+ isVideoMesh?: boolean;
34
+ }>;
4
35
  /**
5
36
  * @class Reachability
6
37
  * @export
@@ -8,8 +39,10 @@
8
39
  export default class Reachability {
9
40
  namespace: string;
10
41
  webex: object;
11
- reachabilityRequest: any;
12
- clusterLatencyResults: any;
42
+ reachabilityRequest: ReachabilityRequest;
43
+ clusterReachability: {
44
+ [key: string]: ClusterReachability;
45
+ };
13
46
  /**
14
47
  * Creates an instance of Reachability.
15
48
  * @param {object} webex
@@ -17,87 +50,45 @@ export default class Reachability {
17
50
  */
18
51
  constructor(webex: object);
19
52
  /**
20
- * fetches reachability data
21
- * @returns {Object} reachability data
22
- * @public
23
- * @async
24
- * @memberof Reachability
25
- */
26
- gatherReachability(): Promise<unknown>;
27
- /**
28
- * fetches reachability data and checks for cluster reachability
29
- * @returns {boolean}
53
+ * Gets a list of media clusters from the backend and performs reachability checks on all the clusters
54
+ * @returns {Promise<ReachabilityResults>} reachability results
30
55
  * @public
31
56
  * @memberof Reachability
32
57
  */
33
- isAnyClusterReachable(): Promise<boolean>;
58
+ gatherReachability(): Promise<ReachabilityResults>;
34
59
  /**
35
- * Generate peerConnection config settings
36
- * @param {object} cluster
37
- * @returns {object} peerConnectionConfig
38
- * @private
39
- * @memberof Reachability
60
+ * Returns statistics about last reachability results. The returned value is an object
61
+ * with a flat list of properties so that it can be easily sent with metrics
62
+ *
63
+ * @returns {Promise} Promise with metrics values, it never rejects/throws.
40
64
  */
41
- private buildPeerConnectionConfig;
65
+ getReachabilityMetrics(): Promise<ReachabilityMetrics>;
42
66
  /**
43
- * Creates an RTCPeerConnection
44
- * @param {object} cluster
45
- * @returns {RTCPeerConnection} peerConnection
46
- * @private
47
- * @memberof Reachability
67
+ * Maps our internal transport result to the format that backend expects
68
+ * @param {TransportResult} transportResult
69
+ * @returns {TransportResultForBackend}
48
70
  */
49
- private createPeerConnection;
71
+ private mapTransportResultToBackendDataFormat;
50
72
  /**
51
- * Gets total elapsed time
52
- * @param {RTCPeerConnection} peerConnection
53
- * @returns {Number} Milliseconds
54
- * @private
55
- * @memberof Reachability
73
+ * Reachability results as an object in the format that backend expects
74
+ *
75
+ * @returns {any} reachability results that need to be sent to the backend
56
76
  */
57
- private getElapsedTime;
77
+ getReachabilityResults(): Promise<ReachabilityResultsForBackend | undefined>;
58
78
  /**
59
- * creates offer and generates localSDP
60
- * @param {object} clusterList cluster List
61
- * @returns {Promise} Reachability latency results
62
- * @private
79
+ * fetches reachability data and checks for cluster reachability
80
+ * @returns {boolean}
81
+ * @public
63
82
  * @memberof Reachability
64
83
  */
65
- private getLocalSDPForClusters;
84
+ isAnyPublicClusterReachable(): Promise<boolean>;
66
85
  /**
67
86
  * Get list of all unreachable clusters
68
87
  * @returns {array} Unreachable clusters
69
88
  * @private
70
89
  * @memberof Reachability
71
90
  */
72
- private getUnreachablClusters;
73
- /**
74
- * Attach an event handler for the icegatheringstatechange
75
- * event and measure latency.
76
- * @param {RTCPeerConnection} peerConnection
77
- * @returns {undefined}
78
- * @private
79
- * @memberof Reachability
80
- */
81
- private handleIceGatheringStateChange;
82
- /**
83
- * Attach an event handler for the icecandidate
84
- * event and measure latency.
85
- * @param {RTCPeerConnection} peerConnection
86
- * @returns {undefined}
87
- * @private
88
- * @memberof Reachability
89
- */
90
- private handleOnIceCandidate;
91
- /**
92
- * An event handler on an RTCPeerConnection when the state of the ICE
93
- * candidate gathering process changes. Used to measure connection
94
- * speed.
95
- * @private
96
- * @param {RTCPeerConnection} peerConnection
97
- * @param {number} timeout
98
- * @returns {Promise}
99
- */
100
- private iceGatheringState;
91
+ private getUnreachableClusters;
101
92
  /**
102
93
  * Make a log of unreachable clusters.
103
94
  * @returns {undefined}
@@ -106,35 +97,9 @@ export default class Reachability {
106
97
  */
107
98
  private logUnreachableClusters;
108
99
  /**
109
- * Calculates time to establish connection
110
- * @param {array} iceResults iceResults
111
- * @returns {object} reachabilityMap
112
- * @private
113
- * @memberof Reachability
114
- */
115
- private parseIceResultsToReachabilityResults;
116
- /**
117
- * fetches reachability data
118
- * @param {object} clusterList
119
- * @returns {Promise<localSDPData>} reachability check results
120
- * @private
121
- * @memberof Reachability
122
- */
123
- private performReachabilityCheck;
124
- /**
125
- * Records latency and closes the peerConnection
126
- * @param {RTCPeerConnection} peerConnection
127
- * @param {number} elapsed Latency in milliseconds
128
- * @returns {undefined}
129
- * @private
130
- * @memberof Reachability
131
- */
132
- private setLatencyAndClose;
133
- /**
134
- * utility function
135
- * @returns {undefined}
136
- * @private
137
- * @memberof Reachability
100
+ * Performs reachability checks for all clusters
101
+ * @param {ClusterList} clusterList
102
+ * @returns {Promise<ReachabilityResults>} reachability check results
138
103
  */
139
- private setup;
104
+ private performReachabilityChecks;
140
105
  }
@@ -1,3 +1,4 @@
1
+ import { IP_VERSION } from '../constants';
1
2
  export interface ClusterNode {
2
3
  isVideoMesh: boolean;
3
4
  udp: Array<string>;
@@ -19,12 +20,15 @@ declare class ReachabilityRequest {
19
20
  */
20
21
  constructor(webex: object);
21
22
  /**
22
- * gets the cluster information
23
+ * Gets the cluster information
23
24
  *
24
- * @param {boolean} includeVideoMesh whether to include the video mesh clusters in the result or not
25
+ * @param {IP_VERSION} ipVersion information about current ip network we're on
25
26
  * @returns {Promise}
26
27
  */
27
- getClusters: () => Promise<ClusterList>;
28
+ getClusters: (ipVersion?: IP_VERSION) => Promise<{
29
+ clusters: ClusterList;
30
+ joinCookie: any;
31
+ }>;
28
32
  /**
29
33
  * gets remote SDP For Clusters
30
34
  * @param {Object} localSDPList localSDPs for the cluster
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Converts a stun url to a turn url
3
+ *
4
+ * @param {string} stunUrl url of a stun server
5
+ * @param {'tcp'|'udp'} protocol what protocol to use for the turn server
6
+ * @returns {string} url of a turn server
7
+ */
8
+ export declare function convertStunUrlToTurn(stunUrl: string, protocol: 'udp' | 'tcp'): string;
@@ -1,6 +1,7 @@
1
1
  /*!
2
2
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
3
  */
4
+ import { RECONNECTION_STATE } from '../constants';
4
5
  import Meeting from '../meeting';
5
6
  /**
6
7
  * @export
@@ -58,12 +59,30 @@ export default class ReconnectionManager {
58
59
  * @memberof ReconnectionManager
59
60
  */
60
61
  cleanUp(): void;
62
+ /**
63
+ * Stop the local share stream.
64
+ *
65
+ * @param {string} reason a {@link SHARE_STOPPED_REASON}
66
+ * @returns {undefined}
67
+ * @private
68
+ * @memberof ReconnectionManager
69
+ */
70
+ private stopLocalShareStream;
61
71
  /**
62
72
  * @public
63
73
  * @memberof ReconnectionManager
64
74
  * @returns {Boolean} true if reconnection operation is in progress
65
75
  */
66
76
  isReconnectInProgress(): boolean;
77
+ /**
78
+ * Sets the reconnection status
79
+ *
80
+ * @public
81
+ * @param {RECONNECTION_STATE} status
82
+ * @memberof ReconnectionManager
83
+ * @returns {undefined}
84
+ */
85
+ setStatus(status: RECONNECTION_STATE): void;
67
86
  /**
68
87
  * @returns {Boolean}
69
88
  * @throws {ReconnectionError}
@@ -1,3 +1,4 @@
1
+ import { SELF_POLICY } from '../constants';
1
2
  import MeetingRequest from '../meeting/request';
2
3
  /**
3
4
  * @description Recording manages the recording functionality of the meeting object, there should only be one instantation of recording per meeting
@@ -20,6 +21,13 @@ export default class RecordingController {
20
21
  * @memberof RecordingInfo
21
22
  */
22
23
  private displayHints;
24
+ /**
25
+ * @instance
26
+ * @type {Object}
27
+ * @private
28
+ * @memberof RecordingInfo
29
+ */
30
+ private selfUserPolicies;
23
31
  /**
24
32
  * @instance
25
33
  * @type {string}
@@ -62,7 +70,6 @@ export default class RecordingController {
62
70
  });
63
71
  /**
64
72
  * @param {MeetingRequest} request
65
- * @param {LocusInfo} info
66
73
  * @returns {void}
67
74
  * @private
68
75
  * @memberof RecordingController
@@ -94,6 +101,13 @@ export default class RecordingController {
94
101
  * @memberof RecordingController
95
102
  */
96
103
  setDisplayHints(hints: Array<string>): void;
104
+ /**
105
+ * @param {Object} selfUserPolicies
106
+ * @returns {void}
107
+ * @public
108
+ * @memberof RecordingController
109
+ */
110
+ setUserPolicy(selfUserPolicies: Record<SELF_POLICY, boolean>): void;
97
111
  /**
98
112
  * @param {string} id
99
113
  * @returns {void}
@@ -1,9 +1,10 @@
1
+ import { SELF_POLICY } from '../constants';
1
2
  import RecordingAction from './enums';
2
3
  declare const _default: {
3
- canUserStart: (displayHints: string[]) => boolean;
4
- canUserPause: (displayHints: string[]) => boolean;
5
- canUserResume: (displayHints: string[]) => boolean;
6
- canUserStop: (displayHints: string[]) => boolean;
4
+ canUserStart: (displayHints: string[], userPolicies: Record<SELF_POLICY, boolean>) => boolean;
5
+ canUserPause: (displayHints: string[], userPolicies: Record<SELF_POLICY, boolean>) => boolean;
6
+ canUserResume: (displayHints: string[], userPolicies: Record<SELF_POLICY, boolean>) => boolean;
7
+ canUserStop: (displayHints: string[], userPolicies: Record<SELF_POLICY, boolean>) => boolean;
7
8
  deriveRecordingStates: (action: RecordingAction) => {
8
9
  recording: boolean;
9
10
  paused: boolean;
@@ -71,7 +71,8 @@ export default class Roap extends StatelessWebexPlugin {
71
71
  * @param {Meeting} meeting
72
72
  * @param {Boolean} isReconnecting should be set to true if this is a new
73
73
  * media connection just after a reconnection
74
+ * @param {Boolean} [isForced]
74
75
  * @returns {Promise}
75
76
  */
76
- doTurnDiscovery(meeting: Meeting, isReconnecting: boolean): any;
77
+ doTurnDiscovery(meeting: Meeting, isReconnecting: boolean, isForced?: boolean): any;
77
78
  }
@@ -1,14 +1,19 @@
1
1
  import { StatelessWebexPlugin } from '@webex/webex-core';
2
+ import { IP_VERSION } from '../constants';
3
+ import { LocusMediaRequest } from '../meeting/locusMediaRequest';
2
4
  /**
3
5
  * @class RoapRequest
4
6
  */
5
7
  export default class RoapRequest extends StatelessWebexPlugin {
6
8
  /**
7
- * Joins a meeting via ROAP
9
+ * Returns reachability data.
8
10
  * @param {Object} localSdp
9
- * @returns {Promise} returns a promise that resolves/rejects whatever the request does
11
+ * @returns {Object}
10
12
  */
11
- attachRechabilityData(localSdp: any): Promise<any>;
13
+ attachReachabilityData(localSdp: any): Promise<{
14
+ localSdp: any;
15
+ joinCookie: any;
16
+ }>;
12
17
  /**
13
18
  * Sends a ROAP message
14
19
  * @param {Object} options
@@ -16,20 +21,19 @@ export default class RoapRequest extends StatelessWebexPlugin {
16
21
  * @param {String} options.locusSelfUrl
17
22
  * @param {String} options.mediaId
18
23
  * @param {String} options.correlationId
19
- * @param {Boolean} options.audioMuted
20
- * @param {Boolean} options.videoMuted
21
24
  * @param {String} options.meetingId
22
- * @param {Boolean} options.preferTranscoding
25
+ * @param {IP_VERSION} options.ipVersion only required for offers
23
26
  * @returns {Promise} returns the response/failure of the request
24
27
  */
25
28
  sendRoap(options: {
26
29
  roapMessage: any;
27
30
  locusSelfUrl: string;
28
31
  mediaId: string;
29
- correlationId: string;
30
- audioMuted: boolean;
31
- videoMuted: boolean;
32
32
  meetingId: string;
33
- preferTranscoding?: boolean;
34
- }): Promise<any>;
33
+ ipVersion?: IP_VERSION;
34
+ locusMediaRequest?: LocusMediaRequest;
35
+ }): Promise<{
36
+ mediaConnections: any;
37
+ locus: any;
38
+ }>;
35
39
  }
@@ -49,7 +49,24 @@ export default class TurnDiscovery {
49
49
  * @param {Meeting} meeting
50
50
  * @returns {Promise}
51
51
  */
52
- sendRoapOK(meeting: Meeting): Promise<any>;
52
+ sendRoapOK(meeting: Meeting): Promise<{
53
+ mediaConnections: any;
54
+ locus: any;
55
+ }>;
56
+ /**
57
+ * Gets the reason why reachability is skipped.
58
+ *
59
+ * @param {Meeting} meeting
60
+ * @returns {Promise<string>} Promise with empty string if reachability is not skipped or a reason if it is skipped
61
+ */
62
+ private getSkipReason;
63
+ /**
64
+ * Checks if TURN discovery is skipped.
65
+ *
66
+ * @param {Meeting} meeting
67
+ * @returns {Boolean} true if TURN discovery is being skipped, false if it is being done
68
+ */
69
+ isSkipped(meeting: any): Promise<boolean>;
53
70
  /**
54
71
  * Retrieves TURN server information from the backend by doing
55
72
  * a roap message exchange:
@@ -63,11 +80,12 @@ export default class TurnDiscovery {
63
80
  * so it works fine no matter if TURN discovery is done or not.
64
81
  *
65
82
  * @param {Meeting} meeting
66
- * @param {Boolean} isReconnecting should be set to true if this is a new
83
+ * @param {Boolean} [isReconnecting] should be set to true if this is a new
67
84
  * media connection just after a reconnection
85
+ * @param {Boolean} [isForced]
68
86
  * @returns {Promise}
69
87
  */
70
- doTurnDiscovery(meeting: Meeting, isReconnecting?: boolean): Promise<{
88
+ doTurnDiscovery(meeting: Meeting, isReconnecting?: boolean, isForced?: boolean): Promise<{
71
89
  turnServerInfo: any;
72
90
  turnDiscoverySkippedReason: any;
73
91
  }>;
@@ -0,0 +1,4 @@
1
+ declare const RTC_METRICS: {
2
+ APP_ID: string;
3
+ };
4
+ export { RTC_METRICS as default };