@webex/plugin-meetings 2.59.8 → 2.60.0-next.2

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 (528) 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 +41 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +357 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +215 -0
  9. package/dist/breakouts/breakout.js.map +1 -0
  10. package/dist/breakouts/collection.js +22 -0
  11. package/dist/breakouts/collection.js.map +1 -0
  12. package/dist/breakouts/edit-lock-error.js +51 -0
  13. package/dist/breakouts/edit-lock-error.js.map +1 -0
  14. package/dist/breakouts/events.js +44 -0
  15. package/dist/breakouts/events.js.map +1 -0
  16. package/dist/breakouts/index.js +1047 -0
  17. package/dist/breakouts/index.js.map +1 -0
  18. package/dist/breakouts/request.js +77 -0
  19. package/dist/breakouts/request.js.map +1 -0
  20. package/dist/breakouts/utils.js +64 -0
  21. package/dist/breakouts/utils.js.map +1 -0
  22. package/dist/common/browser-detection.js +2 -3
  23. package/dist/common/browser-detection.js.map +1 -1
  24. package/dist/common/collection.js +3 -4
  25. package/dist/common/collection.js.map +1 -1
  26. package/dist/common/config.js +1 -2
  27. package/dist/common/config.js.map +1 -1
  28. package/dist/common/errors/captcha-error.js +1 -2
  29. package/dist/common/errors/captcha-error.js.map +1 -1
  30. package/dist/common/errors/intent-to-join.js +1 -2
  31. package/dist/common/errors/intent-to-join.js.map +1 -1
  32. package/dist/common/errors/join-meeting.js +1 -2
  33. package/dist/common/errors/join-meeting.js.map +1 -1
  34. package/dist/common/errors/media.js +1 -2
  35. package/dist/common/errors/media.js.map +1 -1
  36. package/dist/common/errors/no-meeting-info.js +50 -0
  37. package/dist/common/errors/no-meeting-info.js.map +1 -0
  38. package/dist/common/errors/parameter.js +3 -4
  39. package/dist/common/errors/parameter.js.map +1 -1
  40. package/dist/common/errors/password-error.js +1 -2
  41. package/dist/common/errors/password-error.js.map +1 -1
  42. package/dist/common/errors/permission.js +1 -2
  43. package/dist/common/errors/permission.js.map +1 -1
  44. package/dist/common/errors/reclaim-host-role-errors.js +154 -0
  45. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  46. package/dist/common/errors/reconnection-in-progress.js +1 -2
  47. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  48. package/dist/common/errors/reconnection.js +1 -2
  49. package/dist/common/errors/reconnection.js.map +1 -1
  50. package/dist/common/errors/stats.js +1 -2
  51. package/dist/common/errors/stats.js.map +1 -1
  52. package/dist/common/errors/webex-errors.js +48 -28
  53. package/dist/common/errors/webex-errors.js.map +1 -1
  54. package/dist/common/errors/webex-meetings-error.js +1 -2
  55. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  56. package/dist/common/events/events-scope.js +1 -2
  57. package/dist/common/events/events-scope.js.map +1 -1
  58. package/dist/common/events/events.js +1 -2
  59. package/dist/common/events/events.js.map +1 -1
  60. package/dist/common/events/trigger-proxy.js +1 -2
  61. package/dist/common/events/trigger-proxy.js.map +1 -1
  62. package/dist/common/events/util.js +1 -2
  63. package/dist/common/events/util.js.map +1 -1
  64. package/dist/common/logs/logger-config.js +1 -2
  65. package/dist/common/logs/logger-config.js.map +1 -1
  66. package/dist/common/logs/logger-proxy.js +2 -3
  67. package/dist/common/logs/logger-proxy.js.map +1 -1
  68. package/dist/common/logs/request.js +8 -5
  69. package/dist/common/logs/request.js.map +1 -1
  70. package/dist/common/queue.js +22 -9
  71. package/dist/common/queue.js.map +1 -1
  72. package/dist/config.js +8 -11
  73. package/dist/config.js.map +1 -1
  74. package/dist/constants.js +437 -435
  75. package/dist/constants.js.map +1 -1
  76. package/dist/controls-options-manager/constants.js +3 -6
  77. package/dist/controls-options-manager/constants.js.map +1 -1
  78. package/dist/controls-options-manager/enums.js +15 -6
  79. package/dist/controls-options-manager/enums.js.map +1 -1
  80. package/dist/controls-options-manager/index.js +127 -38
  81. package/dist/controls-options-manager/index.js.map +1 -1
  82. package/dist/controls-options-manager/types.js +7 -0
  83. package/dist/controls-options-manager/types.js.map +1 -0
  84. package/dist/controls-options-manager/util.js +309 -19
  85. package/dist/controls-options-manager/util.js.map +1 -1
  86. package/dist/index.js +116 -4
  87. package/dist/index.js.map +1 -1
  88. package/dist/interpretation/collection.js +22 -0
  89. package/dist/interpretation/collection.js.map +1 -0
  90. package/dist/interpretation/index.js +365 -0
  91. package/dist/interpretation/index.js.map +1 -0
  92. package/dist/interpretation/siLanguage.js +24 -0
  93. package/dist/interpretation/siLanguage.js.map +1 -0
  94. package/dist/locus-info/controlsUtils.js +100 -11
  95. package/dist/locus-info/controlsUtils.js.map +1 -1
  96. package/dist/locus-info/embeddedAppsUtils.js +3 -4
  97. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  98. package/dist/locus-info/fullState.js +1 -2
  99. package/dist/locus-info/fullState.js.map +1 -1
  100. package/dist/locus-info/hostUtils.js +1 -2
  101. package/dist/locus-info/hostUtils.js.map +1 -1
  102. package/dist/locus-info/index.js +425 -84
  103. package/dist/locus-info/index.js.map +1 -1
  104. package/dist/locus-info/infoUtils.js +13 -5
  105. package/dist/locus-info/infoUtils.js.map +1 -1
  106. package/dist/locus-info/mediaSharesUtils.js +58 -3
  107. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  108. package/dist/locus-info/parser.js +253 -80
  109. package/dist/locus-info/parser.js.map +1 -1
  110. package/dist/locus-info/selfUtils.js +97 -13
  111. package/dist/locus-info/selfUtils.js.map +1 -1
  112. package/dist/media/index.js +106 -319
  113. package/dist/media/index.js.map +1 -1
  114. package/dist/media/properties.js +96 -153
  115. package/dist/media/properties.js.map +1 -1
  116. package/dist/media/util.js +1 -22
  117. package/dist/media/util.js.map +1 -1
  118. package/dist/mediaQualityMetrics/config.js +498 -493
  119. package/dist/mediaQualityMetrics/config.js.map +1 -1
  120. package/dist/meeting/in-meeting-actions.js +92 -3
  121. package/dist/meeting/in-meeting-actions.js.map +1 -1
  122. package/dist/meeting/index.js +4628 -2971
  123. package/dist/meeting/index.js.map +1 -1
  124. package/dist/meeting/locusMediaRequest.js +291 -0
  125. package/dist/meeting/locusMediaRequest.js.map +1 -0
  126. package/dist/meeting/muteState.js +224 -133
  127. package/dist/meeting/muteState.js.map +1 -1
  128. package/dist/meeting/request.js +297 -199
  129. package/dist/meeting/request.js.map +1 -1
  130. package/dist/meeting/request.type.js +7 -0
  131. package/dist/meeting/request.type.js.map +1 -0
  132. package/dist/meeting/state.js +1 -2
  133. package/dist/meeting/state.js.map +1 -1
  134. package/dist/meeting/util.js +605 -435
  135. package/dist/meeting/util.js.map +1 -1
  136. package/dist/meeting-info/collection.js +3 -4
  137. package/dist/meeting-info/collection.js.map +1 -1
  138. package/dist/meeting-info/index.js +74 -7
  139. package/dist/meeting-info/index.js.map +1 -1
  140. package/dist/meeting-info/meeting-info-v2.js +200 -63
  141. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  142. package/dist/meeting-info/request.js +1 -2
  143. package/dist/meeting-info/request.js.map +1 -1
  144. package/dist/meeting-info/util.js +2 -3
  145. package/dist/meeting-info/util.js.map +1 -1
  146. package/dist/meeting-info/utilv2.js +39 -41
  147. package/dist/meeting-info/utilv2.js.map +1 -1
  148. package/dist/meetings/collection.js +42 -4
  149. package/dist/meetings/collection.js.map +1 -1
  150. package/dist/meetings/index.js +477 -123
  151. package/dist/meetings/index.js.map +1 -1
  152. package/dist/meetings/meetings.types.js +7 -0
  153. package/dist/meetings/meetings.types.js.map +1 -0
  154. package/dist/meetings/request.js +4 -3
  155. package/dist/meetings/request.js.map +1 -1
  156. package/dist/meetings/util.js +107 -6
  157. package/dist/meetings/util.js.map +1 -1
  158. package/dist/member/index.js +54 -2
  159. package/dist/member/index.js.map +1 -1
  160. package/dist/member/member.types.js +3 -4
  161. package/dist/member/member.types.js.map +1 -1
  162. package/dist/member/types.js +23 -0
  163. package/dist/member/types.js.map +1 -0
  164. package/dist/member/util.js +131 -29
  165. package/dist/member/util.js.map +1 -1
  166. package/dist/members/collection.js +11 -2
  167. package/dist/members/collection.js.map +1 -1
  168. package/dist/members/index.js +174 -10
  169. package/dist/members/index.js.map +1 -1
  170. package/dist/members/request.js +108 -41
  171. package/dist/members/request.js.map +1 -1
  172. package/dist/members/types.js +14 -0
  173. package/dist/members/types.js.map +1 -0
  174. package/dist/members/util.js +327 -234
  175. package/dist/members/util.js.map +1 -1
  176. package/dist/metrics/constants.js +15 -9
  177. package/dist/metrics/constants.js.map +1 -1
  178. package/dist/metrics/index.js +4 -452
  179. package/dist/metrics/index.js.map +1 -1
  180. package/dist/multistream/mediaRequestManager.js +344 -0
  181. package/dist/multistream/mediaRequestManager.js.map +1 -0
  182. package/dist/multistream/receiveSlot.js +200 -0
  183. package/dist/multistream/receiveSlot.js.map +1 -0
  184. package/dist/multistream/receiveSlotManager.js +174 -0
  185. package/dist/multistream/receiveSlotManager.js.map +1 -0
  186. package/dist/multistream/remoteMedia.js +268 -0
  187. package/dist/multistream/remoteMedia.js.map +1 -0
  188. package/dist/multistream/remoteMediaGroup.js +267 -0
  189. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  190. package/dist/multistream/remoteMediaManager.js +1211 -0
  191. package/dist/multistream/remoteMediaManager.js.map +1 -0
  192. package/dist/multistream/sendSlotManager.js +236 -0
  193. package/dist/multistream/sendSlotManager.js.map +1 -0
  194. package/dist/networkQualityMonitor/index.js +5 -4
  195. package/dist/networkQualityMonitor/index.js.map +1 -1
  196. package/dist/personal-meeting-room/index.js +2 -3
  197. package/dist/personal-meeting-room/index.js.map +1 -1
  198. package/dist/personal-meeting-room/request.js +2 -3
  199. package/dist/personal-meeting-room/request.js.map +1 -1
  200. package/dist/personal-meeting-room/util.js +1 -2
  201. package/dist/personal-meeting-room/util.js.map +1 -1
  202. package/dist/reachability/index.js +265 -72
  203. package/dist/reachability/index.js.map +1 -1
  204. package/dist/reachability/request.js +18 -10
  205. package/dist/reachability/request.js.map +1 -1
  206. package/dist/reactions/constants.js +12 -0
  207. package/dist/reactions/constants.js.map +1 -0
  208. package/dist/reactions/reactions.js +4 -6
  209. package/dist/reactions/reactions.js.map +1 -1
  210. package/dist/reactions/reactions.type.js +21 -23
  211. package/dist/reactions/reactions.type.js.map +1 -1
  212. package/dist/reconnection-manager/index.js +281 -229
  213. package/dist/reconnection-manager/index.js.map +1 -1
  214. package/dist/recording-controller/enums.js +4 -5
  215. package/dist/recording-controller/enums.js.map +1 -1
  216. package/dist/recording-controller/index.js +57 -46
  217. package/dist/recording-controller/index.js.map +1 -1
  218. package/dist/recording-controller/util.js +10 -10
  219. package/dist/recording-controller/util.js.map +1 -1
  220. package/dist/roap/index.js +101 -235
  221. package/dist/roap/index.js.map +1 -1
  222. package/dist/roap/request.js +126 -180
  223. package/dist/roap/request.js.map +1 -1
  224. package/dist/roap/turnDiscovery.js +115 -105
  225. package/dist/roap/turnDiscovery.js.map +1 -1
  226. package/dist/rtcMetrics/constants.js +11 -0
  227. package/dist/rtcMetrics/constants.js.map +1 -0
  228. package/dist/rtcMetrics/index.js +140 -0
  229. package/dist/rtcMetrics/index.js.map +1 -0
  230. package/dist/statsAnalyzer/global.js +2 -85
  231. package/dist/statsAnalyzer/global.js.map +1 -1
  232. package/dist/statsAnalyzer/index.js +402 -424
  233. package/dist/statsAnalyzer/index.js.map +1 -1
  234. package/dist/statsAnalyzer/mqaUtil.js +117 -83
  235. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  236. package/dist/transcription/index.js +1 -2
  237. package/dist/transcription/index.js.map +1 -1
  238. package/dist/webinar/collection.js +43 -0
  239. package/dist/webinar/collection.js.map +1 -0
  240. package/dist/webinar/index.js +68 -0
  241. package/dist/webinar/index.js.map +1 -0
  242. package/package.json +34 -25
  243. package/src/annotation/annotation.types.ts +50 -0
  244. package/src/annotation/constants.ts +36 -0
  245. package/src/annotation/index.ts +328 -0
  246. package/src/breakouts/README.md +220 -0
  247. package/src/breakouts/breakout.ts +188 -0
  248. package/src/breakouts/collection.ts +19 -0
  249. package/src/breakouts/edit-lock-error.ts +25 -0
  250. package/src/breakouts/events.ts +56 -0
  251. package/src/breakouts/index.ts +925 -0
  252. package/src/breakouts/request.ts +55 -0
  253. package/src/breakouts/utils.ts +57 -0
  254. package/src/common/errors/no-meeting-info.ts +24 -0
  255. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  256. package/src/common/errors/webex-errors.ts +36 -12
  257. package/src/common/logs/logger-proxy.ts +1 -1
  258. package/src/common/logs/request.ts +5 -1
  259. package/src/common/queue.ts +22 -8
  260. package/src/config.ts +5 -7
  261. package/src/constants.ts +271 -93
  262. package/src/controls-options-manager/enums.ts +12 -0
  263. package/src/controls-options-manager/index.ts +116 -21
  264. package/src/controls-options-manager/types.ts +59 -0
  265. package/src/controls-options-manager/util.ts +294 -14
  266. package/src/index.ts +40 -0
  267. package/src/interpretation/README.md +60 -0
  268. package/src/interpretation/collection.ts +19 -0
  269. package/src/interpretation/index.ts +332 -0
  270. package/src/interpretation/siLanguage.ts +18 -0
  271. package/src/locus-info/controlsUtils.ts +110 -0
  272. package/src/locus-info/index.ts +449 -61
  273. package/src/locus-info/infoUtils.ts +14 -2
  274. package/src/locus-info/mediaSharesUtils.ts +64 -0
  275. package/src/locus-info/parser.ts +258 -47
  276. package/src/locus-info/selfUtils.ts +85 -2
  277. package/src/media/index.ts +153 -370
  278. package/src/media/properties.ts +106 -136
  279. package/src/media/util.ts +0 -21
  280. package/src/mediaQualityMetrics/config.ts +379 -377
  281. package/src/meeting/in-meeting-actions.ts +172 -0
  282. package/src/meeting/index.ts +3861 -2504
  283. package/src/meeting/locusMediaRequest.ts +313 -0
  284. package/src/meeting/muteState.ts +224 -138
  285. package/src/meeting/request.ts +207 -127
  286. package/src/meeting/request.type.ts +13 -0
  287. package/src/meeting/util.ts +590 -423
  288. package/src/meeting-info/index.ts +81 -8
  289. package/src/meeting-info/meeting-info-v2.ts +163 -13
  290. package/src/meeting-info/util.ts +1 -1
  291. package/src/meeting-info/utilv2.ts +28 -28
  292. package/src/meetings/collection.ts +33 -0
  293. package/src/meetings/index.ts +477 -124
  294. package/src/meetings/meetings.types.ts +12 -0
  295. package/src/meetings/request.ts +2 -0
  296. package/src/meetings/util.ts +116 -5
  297. package/src/member/index.ts +52 -1
  298. package/src/member/types.ts +38 -0
  299. package/src/member/util.ts +139 -28
  300. package/src/members/collection.ts +8 -0
  301. package/src/members/index.ts +196 -7
  302. package/src/members/request.ts +97 -17
  303. package/src/members/types.ts +29 -0
  304. package/src/members/util.ts +333 -240
  305. package/src/metrics/constants.ts +13 -6
  306. package/src/metrics/index.ts +1 -471
  307. package/src/multistream/mediaRequestManager.ts +440 -0
  308. package/src/multistream/receiveSlot.ts +184 -0
  309. package/src/multistream/receiveSlotManager.ts +166 -0
  310. package/src/multistream/remoteMedia.ts +254 -0
  311. package/src/multistream/remoteMediaGroup.ts +284 -0
  312. package/src/multistream/remoteMediaManager.ts +1145 -0
  313. package/src/multistream/sendSlotManager.ts +170 -0
  314. package/src/networkQualityMonitor/index.ts +6 -6
  315. package/src/reachability/index.ts +238 -45
  316. package/src/reachability/request.ts +17 -8
  317. package/src/reactions/constants.ts +4 -0
  318. package/src/reactions/reactions.ts +4 -4
  319. package/src/reactions/reactions.type.ts +30 -4
  320. package/src/reconnection-manager/index.ts +167 -154
  321. package/src/recording-controller/index.ts +20 -3
  322. package/src/recording-controller/util.ts +26 -9
  323. package/src/roap/index.ts +98 -241
  324. package/src/roap/request.ts +74 -148
  325. package/src/roap/turnDiscovery.ts +62 -56
  326. package/src/rtcMetrics/constants.ts +3 -0
  327. package/src/rtcMetrics/index.ts +124 -0
  328. package/src/statsAnalyzer/global.ts +1 -84
  329. package/src/statsAnalyzer/index.ts +470 -522
  330. package/src/statsAnalyzer/mqaUtil.ts +117 -112
  331. package/src/webinar/collection.ts +31 -0
  332. package/src/webinar/index.ts +62 -0
  333. package/test/integration/spec/converged-space-meetings.js +233 -0
  334. package/test/integration/spec/journey.js +320 -264
  335. package/test/integration/spec/space-meeting.js +77 -4
  336. package/test/unit/spec/annotation/index.ts +418 -0
  337. package/test/unit/spec/breakouts/breakout.ts +237 -0
  338. package/test/unit/spec/breakouts/collection.ts +15 -0
  339. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  340. package/test/unit/spec/breakouts/events.ts +89 -0
  341. package/test/unit/spec/breakouts/index.ts +1790 -0
  342. package/test/unit/spec/breakouts/request.ts +104 -0
  343. package/test/unit/spec/breakouts/utils.js +72 -0
  344. package/test/unit/spec/common/queue.js +31 -2
  345. package/test/unit/spec/controls-options-manager/index.js +163 -0
  346. package/test/unit/spec/controls-options-manager/util.js +576 -60
  347. package/test/unit/spec/fixture/locus.js +1 -0
  348. package/test/unit/spec/interpretation/collection.ts +15 -0
  349. package/test/unit/spec/interpretation/index.ts +589 -0
  350. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  351. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  352. package/test/unit/spec/locus-info/index.js +1390 -16
  353. package/test/unit/spec/locus-info/infoUtils.js +54 -16
  354. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  355. package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
  356. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  357. package/test/unit/spec/locus-info/parser.js +116 -35
  358. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  359. package/test/unit/spec/media/index.ts +274 -0
  360. package/test/unit/spec/media/properties.ts +75 -84
  361. package/test/unit/spec/meeting/in-meeting-actions.ts +84 -0
  362. package/test/unit/spec/meeting/index.js +8269 -3145
  363. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  364. package/test/unit/spec/meeting/muteState.js +409 -213
  365. package/test/unit/spec/meeting/request.js +512 -42
  366. package/test/unit/spec/meeting/utils.js +741 -24
  367. package/test/unit/spec/meeting-info/index.js +300 -0
  368. package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
  369. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  370. package/test/unit/spec/meetings/collection.js +26 -0
  371. package/test/unit/spec/meetings/index.js +1201 -210
  372. package/test/unit/spec/meetings/utils.js +202 -2
  373. package/test/unit/spec/member/index.js +38 -8
  374. package/test/unit/spec/member/util.js +499 -29
  375. package/test/unit/spec/members/index.js +597 -3
  376. package/test/unit/spec/members/request.js +206 -27
  377. package/test/unit/spec/members/utils.js +210 -0
  378. package/test/unit/spec/metrics/index.js +1 -50
  379. package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
  380. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  381. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  382. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  383. package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
  384. package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
  385. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  386. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  387. package/test/unit/spec/reachability/index.ts +598 -24
  388. package/test/unit/spec/reachability/request.js +68 -0
  389. package/test/unit/spec/reconnection-manager/index.js +145 -22
  390. package/test/unit/spec/recording-controller/index.js +293 -218
  391. package/test/unit/spec/recording-controller/util.js +223 -96
  392. package/test/unit/spec/roap/index.ts +200 -76
  393. package/test/unit/spec/roap/request.ts +232 -0
  394. package/test/unit/spec/roap/turnDiscovery.ts +86 -48
  395. package/test/unit/spec/rtcMetrics/index.ts +93 -0
  396. package/test/unit/spec/stats-analyzer/index.js +188 -174
  397. package/test/unit/spec/webinar/collection.ts +13 -0
  398. package/test/unit/spec/webinar/index.ts +60 -0
  399. package/test/utils/constants.js +9 -0
  400. package/test/utils/integrationTestUtils.js +46 -0
  401. package/test/utils/testUtils.js +0 -45
  402. package/test/utils/webex-config.js +4 -0
  403. package/test/utils/webex-test-users.js +7 -3
  404. package/dist/common/browser-detection.d.ts +0 -9
  405. package/dist/common/collection.d.ts +0 -48
  406. package/dist/common/config.d.ts +0 -2
  407. package/dist/common/errors/captcha-error.d.ts +0 -15
  408. package/dist/common/errors/intent-to-join.d.ts +0 -16
  409. package/dist/common/errors/join-meeting.d.ts +0 -17
  410. package/dist/common/errors/media.d.ts +0 -15
  411. package/dist/common/errors/parameter.d.ts +0 -15
  412. package/dist/common/errors/password-error.d.ts +0 -15
  413. package/dist/common/errors/permission.d.ts +0 -14
  414. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  415. package/dist/common/errors/reconnection.d.ts +0 -15
  416. package/dist/common/errors/stats.d.ts +0 -15
  417. package/dist/common/errors/webex-errors.d.ts +0 -81
  418. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  419. package/dist/common/events/events-scope.d.ts +0 -17
  420. package/dist/common/events/events.d.ts +0 -12
  421. package/dist/common/events/trigger-proxy.d.ts +0 -2
  422. package/dist/common/events/util.d.ts +0 -2
  423. package/dist/common/logs/logger-config.d.ts +0 -2
  424. package/dist/common/logs/logger-proxy.d.ts +0 -2
  425. package/dist/common/logs/request.d.ts +0 -34
  426. package/dist/common/queue.d.ts +0 -32
  427. package/dist/config.d.ts +0 -73
  428. package/dist/constants.d.ts +0 -926
  429. package/dist/controls-options-manager/constants.d.ts +0 -4
  430. package/dist/controls-options-manager/enums.d.ts +0 -5
  431. package/dist/controls-options-manager/index.d.ts +0 -120
  432. package/dist/controls-options-manager/util.d.ts +0 -7
  433. package/dist/index.d.ts +0 -4
  434. package/dist/locus-info/controlsUtils.d.ts +0 -2
  435. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  436. package/dist/locus-info/fullState.d.ts +0 -2
  437. package/dist/locus-info/hostUtils.d.ts +0 -2
  438. package/dist/locus-info/index.d.ts +0 -269
  439. package/dist/locus-info/infoUtils.d.ts +0 -2
  440. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  441. package/dist/locus-info/parser.d.ts +0 -212
  442. package/dist/locus-info/selfUtils.d.ts +0 -2
  443. package/dist/media/index.d.ts +0 -32
  444. package/dist/media/properties.d.ts +0 -108
  445. package/dist/media/util.d.ts +0 -2
  446. package/dist/mediaQualityMetrics/config.d.ts +0 -233
  447. package/dist/meeting/effectsState.d.ts +0 -42
  448. package/dist/meeting/effectsState.js +0 -260
  449. package/dist/meeting/effectsState.js.map +0 -1
  450. package/dist/meeting/in-meeting-actions.d.ts +0 -79
  451. package/dist/meeting/index.d.ts +0 -1622
  452. package/dist/meeting/muteState.d.ts +0 -116
  453. package/dist/meeting/request.d.ts +0 -255
  454. package/dist/meeting/state.d.ts +0 -9
  455. package/dist/meeting/util.d.ts +0 -2
  456. package/dist/meeting-info/collection.d.ts +0 -20
  457. package/dist/meeting-info/index.d.ts +0 -57
  458. package/dist/meeting-info/meeting-info-v2.d.ts +0 -93
  459. package/dist/meeting-info/request.d.ts +0 -22
  460. package/dist/meeting-info/util.d.ts +0 -2
  461. package/dist/meeting-info/utilv2.d.ts +0 -2
  462. package/dist/meetings/collection.d.ts +0 -23
  463. package/dist/meetings/index.d.ts +0 -296
  464. package/dist/meetings/request.d.ts +0 -27
  465. package/dist/meetings/util.d.ts +0 -18
  466. package/dist/member/index.d.ts +0 -147
  467. package/dist/member/member.types.d.ts +0 -11
  468. package/dist/member/util.d.ts +0 -2
  469. package/dist/members/collection.d.ts +0 -24
  470. package/dist/members/index.d.ts +0 -298
  471. package/dist/members/request.d.ts +0 -50
  472. package/dist/members/util.d.ts +0 -2
  473. package/dist/metrics/config.d.ts +0 -169
  474. package/dist/metrics/config.js +0 -289
  475. package/dist/metrics/config.js.map +0 -1
  476. package/dist/metrics/constants.d.ts +0 -59
  477. package/dist/metrics/index.d.ts +0 -152
  478. package/dist/networkQualityMonitor/index.d.ts +0 -70
  479. package/dist/peer-connection-manager/index.d.ts +0 -6
  480. package/dist/peer-connection-manager/index.js +0 -671
  481. package/dist/peer-connection-manager/index.js.map +0 -1
  482. package/dist/peer-connection-manager/util.d.ts +0 -6
  483. package/dist/peer-connection-manager/util.js +0 -110
  484. package/dist/peer-connection-manager/util.js.map +0 -1
  485. package/dist/personal-meeting-room/index.d.ts +0 -47
  486. package/dist/personal-meeting-room/request.d.ts +0 -14
  487. package/dist/personal-meeting-room/util.d.ts +0 -2
  488. package/dist/reachability/index.d.ts +0 -139
  489. package/dist/reachability/request.d.ts +0 -35
  490. package/dist/reactions/reactions.d.ts +0 -4
  491. package/dist/reactions/reactions.type.d.ts +0 -32
  492. package/dist/reconnection-manager/index.d.ts +0 -112
  493. package/dist/recording-controller/enums.d.ts +0 -7
  494. package/dist/recording-controller/index.d.ts +0 -193
  495. package/dist/recording-controller/util.d.ts +0 -13
  496. package/dist/roap/collection.d.ts +0 -10
  497. package/dist/roap/collection.js +0 -63
  498. package/dist/roap/collection.js.map +0 -1
  499. package/dist/roap/handler.d.ts +0 -47
  500. package/dist/roap/handler.js +0 -279
  501. package/dist/roap/handler.js.map +0 -1
  502. package/dist/roap/index.d.ts +0 -116
  503. package/dist/roap/request.d.ts +0 -35
  504. package/dist/roap/state.d.ts +0 -9
  505. package/dist/roap/state.js +0 -127
  506. package/dist/roap/state.js.map +0 -1
  507. package/dist/roap/turnDiscovery.d.ts +0 -81
  508. package/dist/roap/util.d.ts +0 -2
  509. package/dist/roap/util.js +0 -76
  510. package/dist/roap/util.js.map +0 -1
  511. package/dist/statsAnalyzer/global.d.ts +0 -118
  512. package/dist/statsAnalyzer/index.d.ts +0 -193
  513. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -22
  514. package/dist/transcription/index.d.ts +0 -64
  515. package/src/index.js +0 -15
  516. package/src/meeting/effectsState.ts +0 -209
  517. package/src/metrics/config.ts +0 -485
  518. package/src/peer-connection-manager/index.ts +0 -847
  519. package/src/peer-connection-manager/util.ts +0 -119
  520. package/src/roap/collection.ts +0 -62
  521. package/src/roap/handler.ts +0 -294
  522. package/src/roap/state.ts +0 -156
  523. package/src/roap/util.ts +0 -100
  524. package/test/unit/spec/meeting/effectsState.js +0 -281
  525. package/test/unit/spec/peerconnection-manager/index.js +0 -218
  526. package/test/unit/spec/peerconnection-manager/utils.js +0 -49
  527. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
  528. package/test/unit/spec/roap/util.js +0 -30
package/src/roap/index.ts CHANGED
@@ -3,21 +3,22 @@ import {StatelessWebexPlugin} from '@webex/webex-core';
3
3
 
4
4
  import {ROAP} from '../constants';
5
5
  import LoggerProxy from '../common/logs/logger-proxy';
6
- import MeetingUtil from '../meeting/util';
7
6
 
8
- import RoapHandler from './handler';
9
7
  import RoapRequest from './request';
10
- import RoapCollection from './collection';
11
8
  import TurnDiscovery from './turnDiscovery';
12
9
  import Meeting from '../meeting';
10
+ import MeetingUtil from '../meeting/util';
11
+ import Metrics from '../metrics';
12
+ import BEHAVIORAL_METRICS from '../metrics/constants';
13
13
 
14
14
  /**
15
15
  * Roap options
16
16
  * @typedef {Object} RoapOptions
17
17
  * @property {String} sdp
18
18
  * @property {Meeting} meeting
19
- * @property {Number} roapSeq
20
- * @property {Boolean} reconnect
19
+ * @property {Number} seq
20
+ * @property {Number} tieBreaker
21
+ * @property {Boolean} reconnect
21
22
  */
22
23
 
23
24
  /**
@@ -61,20 +62,6 @@ export default class Roap extends StatelessWebexPlugin {
61
62
  * @memberof Roap
62
63
  */
63
64
  this.options = options;
64
- /**
65
- * The Roap Process State Handler
66
- * @instance
67
- * @type {RoapHandler}
68
- * @private
69
- * @memberof Roap
70
- */
71
- this.roapHandler = new RoapHandler(
72
- this.attrs,
73
- this.options,
74
- this.sendRoapOK.bind(this),
75
- this.sendRoapAnswer.bind(this),
76
- this.roapFinished.bind(this)
77
- );
78
65
  /**
79
66
  * The Roap Request Server Proxy Object
80
67
  * @instance
@@ -84,72 +71,17 @@ export default class Roap extends StatelessWebexPlugin {
84
71
  */
85
72
  // @ts-ignore
86
73
  this.roapRequest = new RoapRequest({}, options);
87
- /**
88
- * The last roap offer sent to server and acked
89
- * @instance
90
- * @type {Object}
91
- * @private
92
- * @memberof Roap
93
- */
94
- this.lastRoapOffer = {};
95
74
 
96
75
  this.turnDiscovery = new TurnDiscovery(this.roapRequest);
97
76
  }
98
77
 
99
- /**
100
- * Starts listening to mercury events for Roap messages
101
- * @param {object} data event object
102
- * @returns {Promise}
103
- * @private
104
- * @memberof Roap
105
- */
106
- private roapEvent(data: any) {
107
- const msg = data.message;
108
- const {correlationId} = data;
109
-
110
- LoggerProxy.logger.log(
111
- `Roap:index#roapEvent --> Received Roap Message [${JSON.stringify(msg, null, 2)}]`
112
- );
113
-
114
- if (msg.messageType === ROAP.ROAP_TYPES.TURN_DISCOVERY_RESPONSE) {
115
- // turn discovery is not part of normal roap protocol and so we are not handling it
116
- // through the usual roap state machine
117
- this.turnDiscovery.handleTurnDiscoveryResponse(msg);
118
- } else {
119
- this.roapHandler.submit({
120
- type: ROAP.RECEIVE_ROAP_MSG,
121
- msg,
122
- correlationId,
123
- });
124
- }
125
- }
126
-
127
- /**
128
- *
129
- * @param {String} correlationId correlation id of a meeting
130
- * @param {Number} seq ROAP sequence number
131
- * @returns {Promise}
132
- * @private
133
- * @memberof Roap
134
- */
135
- private stop(correlationId: string, seq: number) {
136
- this.roapHandler.submit({
137
- type: ROAP.RECEIVE_CALL_LEAVE,
138
- seq,
139
- correlationId,
140
- });
141
-
142
- return Promise.resolve();
143
- }
144
-
145
78
  /**
146
79
  *
147
80
  * @param {SeqOptions} options
148
81
  * @returns {null}
149
- * @private
150
82
  * @memberof Roap
151
83
  */
152
- private sendRoapOK(options: any) {
84
+ public sendRoapOK(options: any) {
153
85
  return Promise.resolve().then(() => {
154
86
  // @ts-ignore
155
87
  const meeting = this.webex.meetings.meetingCollection.getByKey(
@@ -169,35 +101,26 @@ export default class Roap extends StatelessWebexPlugin {
169
101
  roapMessage,
170
102
  locusSelfUrl: meeting.selfUrl,
171
103
  mediaId: options.mediaId,
172
- correlationId: options.correlationId,
173
104
  audioMuted: meeting.audio?.isLocallyMuted(),
174
105
  videoMuted: meeting.video?.isLocallyMuted(),
175
106
  meetingId: meeting.id,
107
+ locusMediaRequest: meeting.locusMediaRequest,
176
108
  })
177
109
  .then(() => {
178
- this.roapHandler.submit({
179
- type: ROAP.SEND_ROAP_MSG,
180
- msg: roapMessage,
181
- correlationId: options.correlationId,
182
- });
183
110
  LoggerProxy.logger.log(`Roap:index#sendRoapOK --> ROAP OK sent with seq ${options.seq}`);
184
- meeting.setRoapSeq(options.seq);
185
111
  });
186
112
  });
187
113
  }
188
114
 
189
- // eslint-disable-next-line no-warning-comments
190
- // TODO: try to merge sendRoapOk and roapAnswer
191
115
  /**
192
116
  * Sends a ROAP answer...
193
117
  * @param {SeqOptions} options
194
118
  * @param {Boolean} options.audioMuted
195
119
  * @param {Boolean} options.videoMuted
196
120
  * @returns {Promise}
197
- * @private
198
121
  * @memberof Roap
199
122
  */
200
- private sendRoapAnswer(options: any) {
123
+ public sendRoapAnswer(options: any) {
201
124
  // @ts-ignore
202
125
  const meeting = this.webex.meetings.meetingCollection.getByKey(
203
126
  'correlationId',
@@ -205,200 +128,133 @@ export default class Roap extends StatelessWebexPlugin {
205
128
  );
206
129
  const roapMessage = {
207
130
  messageType: ROAP.ROAP_TYPES.ANSWER,
208
- sdps: options.sdps,
131
+ sdps: [options.sdp],
209
132
  version: ROAP.ROAP_VERSION,
210
133
  seq: options.seq,
211
134
  };
212
135
 
213
- this.roapHandler.submit({
214
- type: ROAP.SEND_ROAP_MSG,
215
- msg: roapMessage,
216
- correlationId: options.correlationId,
136
+ return this.roapRequest.sendRoap({
137
+ roapMessage,
138
+ locusSelfUrl: meeting.selfUrl,
139
+ mediaId: options.mediaId,
140
+ meetingId: meeting.id,
141
+ audioMuted: meeting.audio?.isLocallyMuted(),
142
+ videoMuted: meeting.video?.isLocallyMuted(),
143
+ locusMediaRequest: meeting.locusMediaRequest,
217
144
  });
145
+ }
146
+
147
+ /**
148
+ * Sends a ROAP error...
149
+ * @param {Object} options
150
+ * @returns {Promise}
151
+ * @memberof Roap
152
+ */
153
+ sendRoapError(options) {
154
+ // @ts-ignore
155
+ const meeting = this.webex.meetings.meetingCollection.getByKey(
156
+ 'correlationId',
157
+ options.correlationId
158
+ );
159
+ const roapMessage = {
160
+ messageType: ROAP.ROAP_TYPES.ERROR,
161
+ version: ROAP.ROAP_VERSION,
162
+ errorType: options.errorType,
163
+ seq: options.seq,
164
+ };
218
165
 
219
166
  return this.roapRequest
220
167
  .sendRoap({
221
168
  roapMessage,
222
169
  locusSelfUrl: meeting.selfUrl,
223
170
  mediaId: options.mediaId,
224
- correlationId: options.correlationId,
225
171
  audioMuted: meeting.audio?.isLocallyMuted(),
226
172
  videoMuted: meeting.video?.isLocallyMuted(),
227
173
  meetingId: meeting.id,
174
+ locusMediaRequest: meeting.locusMediaRequest,
228
175
  })
229
176
  .then(() => {
230
- meeting.setRoapSeq(options.seq);
231
-
232
- this.roapHandler.submit({
233
- type: ROAP.SEND_ROAP_MSG_SUCCESS,
234
- seq: roapMessage.seq,
235
- correlationId: meeting.correlationId,
236
- });
177
+ LoggerProxy.logger.log(
178
+ `Roap:index#sendRoapError --> ROAP ERROR sent with seq ${options.seq}`
179
+ );
237
180
  });
238
181
  }
239
182
 
240
- /**
241
- * Sends a ROAP error...
242
- * @param {Object} session
243
- * @param {Object} locus
244
- * @param {String} errorType
245
- * @returns {Promise}
246
- * @private
247
- * @memberof Roap
248
- */
249
- private sendRoapError(session: any, locus: object, errorType: string) {
250
- const msg = {
251
- messageType: ROAP.ROAP_TYPES.ERROR,
252
- version: ROAP.ROAP_VERSION,
253
- errorType,
254
- seq: session.OFFER.seq,
255
- };
256
-
257
- return this.roapRequest.sendRoap(msg, locus);
258
- }
259
-
260
183
  /**
261
184
  * sends a roap media request
262
185
  * @param {RoapOptions} options
263
186
  * @returns {Promise}
264
- * @private
265
187
  * @memberof Roap
266
188
  */
267
189
  sendRoapMediaRequest(options: any) {
268
- const {meeting, reconnect} = options;
190
+ const {meeting, seq, sdp, reconnect, tieBreaker} = options;
269
191
  const roapMessage = {
270
192
  messageType: ROAP.ROAP_TYPES.OFFER,
271
- sdps: [options.sdp],
272
- // sdps: [options.sdp],
193
+ sdps: [sdp],
273
194
  version: ROAP.ROAP_VERSION,
274
- seq:
275
- typeof options.roapSeq !== 'number' && Number.isNaN(parseFloat(options.roapSeq))
276
- ? 0
277
- : options.roapSeq + 1,
278
- tieBreaker: 4294967294, // Math.floor(Math.random() * (2 ** 32) - 1) // TODO: Handle the roap conflict scenario
195
+ seq,
196
+ tieBreaker,
197
+ headers: ['includeAnswerInHttpResponse', 'noOkInTransaction'],
279
198
  };
280
199
 
281
- this.roapHandler.submit({
282
- type: ROAP.SEND_ROAP_MSG,
283
- msg: roapMessage,
284
- correlationId: meeting.correlationId,
285
- });
286
-
287
200
  // When reconnecting, it's important that the first roap message being sent out has empty media id.
288
201
  // Normally this is the roap offer, but when TURN discovery is enabled,
289
202
  // then this is the TURN discovery request message
290
- return this.turnDiscovery
291
- .isSkipped(meeting)
292
- .then((isTurnDiscoverySkipped) => {
293
- const sendEmptyMediaId = reconnect && isTurnDiscoverySkipped;
203
+ return this.turnDiscovery.isSkipped(meeting).then((isTurnDiscoverySkipped) => {
204
+ const sendEmptyMediaId = reconnect && isTurnDiscoverySkipped;
294
205
 
295
- return this.roapRequest.sendRoap({
206
+ return this.roapRequest
207
+ .sendRoap({
296
208
  roapMessage,
297
- correlationId: meeting.correlationId,
298
209
  locusSelfUrl: meeting.selfUrl,
299
210
  mediaId: sendEmptyMediaId ? '' : meeting.mediaId,
300
- audioMuted: meeting.audio?.isLocallyMuted(),
301
- videoMuted: meeting.video?.isLocallyMuted(),
302
211
  meetingId: meeting.id,
212
+ preferTranscoding: !meeting.isMultistream,
213
+ locusMediaRequest: meeting.locusMediaRequest,
214
+ ipVersion: MeetingUtil.getIpVersion(meeting.webex),
215
+ })
216
+ .then(({locus, mediaConnections}) => {
217
+ if (mediaConnections) {
218
+ meeting.updateMediaConnections(mediaConnections);
219
+ }
220
+
221
+ let roapAnswer;
222
+
223
+ if (mediaConnections?.[0]?.remoteSdp) {
224
+ const remoteSdp = JSON.parse(mediaConnections[0].remoteSdp);
225
+
226
+ if (remoteSdp.roapMessage) {
227
+ const {
228
+ seq: answerSeq,
229
+ messageType,
230
+ sdps,
231
+ errorType,
232
+ errorCause,
233
+ headers,
234
+ } = remoteSdp.roapMessage;
235
+
236
+ roapAnswer = {
237
+ seq: answerSeq,
238
+ messageType,
239
+ sdp: sdps[0],
240
+ errorType,
241
+ errorCause,
242
+ headers,
243
+ };
244
+ }
245
+ }
246
+
247
+ if (!roapAnswer) {
248
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ROAP_HTTP_RESPONSE_MISSING, {
249
+ correlationId: meeting.correlationId,
250
+ messageType: 'ANSWER',
251
+ isMultistream: meeting.isMultistream,
252
+ });
253
+ }
254
+
255
+ return {locus, roapAnswer};
303
256
  });
304
- })
305
-
306
- .then(({locus, mediaConnections}) => {
307
- this.roapHandler.submit({
308
- type: ROAP.SEND_ROAP_MSG_SUCCESS,
309
- seq: roapMessage.seq,
310
- correlationId: meeting.correlationId,
311
- });
312
- meeting.setRoapSeq(roapMessage.seq);
313
-
314
- if (mediaConnections) {
315
- meeting.updateMediaConnections(mediaConnections);
316
- }
317
-
318
- // eslint-disable-next-line no-warning-comments
319
- // TODO: we need to attach peerconenction to locus not sure if we need to pass everything here
320
- return locus;
321
- // eslint-disable-next-line no-warning-comments
322
- // TODO: check where to update the sequence number
323
- });
324
- }
325
-
326
- /**
327
- * sends a roap media request
328
- * @param {RoapOptions} options
329
- * @returns {Promise}
330
- * @private
331
- * @memberof Roap
332
- */
333
- sendRoapCallRequest = (options: any) => {
334
- const {meeting} = options;
335
- const roapMessage = {
336
- messageType: ROAP.ROAP_TYPES.OFFER,
337
- sdps: [options.sdp],
338
- version: ROAP.ROAP_VERSION,
339
- seq:
340
- typeof options.roapSeq !== 'number' && Number.isNaN(parseFloat(options.roapSeq))
341
- ? 0
342
- : options.roapSeq + 1,
343
- tieBreaker: 4294967294, // Math.floor(Math.random() * (2 ** 32) - 1) // TODO: Handle the roap conflict scenario
344
- };
345
-
346
- this.roapHandler.submit({
347
- type: ROAP.SEND_ROAP_MSG,
348
- msg: roapMessage,
349
- correlationId: meeting.correlationId,
350
- });
351
-
352
- const roapBody = {
353
- localMedias: [
354
- {
355
- localSdp: JSON.stringify(
356
- this.roapRequest.attachRechabilityData({
357
- roapMessage,
358
- // eslint-disable-next-line no-warning-comments
359
- // TODO: check whats the need for video and audiomute
360
- audioMuted: meeting.audio?.isLocallyMuted(),
361
- videoMuted: meeting.video?.isLocallyMuted(),
362
- })
363
- ),
364
- // mediaId: meeting.mediaId
365
- },
366
- ],
367
- };
368
-
369
- return MeetingUtil.joinMeetingOptions(meeting, {roapMessage: roapBody}).then((locus) => {
370
- this.roapHandler.submit({
371
- type: ROAP.SEND_ROAP_MSG_SUCCESS,
372
- seq: roapMessage.seq,
373
- correlationId: meeting.correlationId,
374
- });
375
- meeting.setRoapSeq(roapMessage.seq);
376
-
377
- // eslint-disable-next-line no-warning-comments
378
- // TODO: we need to attach peerconenction to locus not sure if we need to pass everything here
379
- return locus;
380
- // eslint-disable-next-line no-warning-comments
381
- // TODO: check where to update the sequence number
382
257
  });
383
- };
384
-
385
- /**
386
- * Called when the roap sequence is finished (completed successfully or failed)
387
- * @param {String} correlationId id of the meeting affected
388
- * @param {String} sequenceId the id of the finished sequence
389
- * @returns {undefined}
390
- * @private
391
- * @memberof Roap
392
- */
393
- private roapFinished(correlationId: string, sequenceId: string) {
394
- RoapCollection.onSessionSequenceFinish(correlationId, sequenceId);
395
- // @ts-ignore
396
- const meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', correlationId);
397
-
398
- meeting.mediaNegotiatedEvent();
399
- if (!RoapCollection.isBusy(correlationId)) {
400
- meeting.processNextQueuedMediaUpdate();
401
- }
402
258
  }
403
259
 
404
260
  /**
@@ -409,9 +265,10 @@ export default class Roap extends StatelessWebexPlugin {
409
265
  * @param {Meeting} meeting
410
266
  * @param {Boolean} isReconnecting should be set to true if this is a new
411
267
  * media connection just after a reconnection
268
+ * @param {Boolean} [isForced]
412
269
  * @returns {Promise}
413
270
  */
414
- doTurnDiscovery(meeting: Meeting, isReconnecting: boolean) {
415
- return this.turnDiscovery.doTurnDiscovery(meeting, isReconnecting);
271
+ doTurnDiscovery(meeting: Meeting, isReconnecting: boolean, isForced?: boolean) {
272
+ return this.turnDiscovery.doTurnDiscovery(meeting, isReconnecting, isForced);
416
273
  }
417
274
  }