@webex/plugin-meetings 2.60.1-next.9 → 2.60.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 (539) hide show
  1. package/README.md +8 -58
  2. package/dist/common/browser-detection.js +3 -2
  3. package/dist/common/browser-detection.js.map +1 -1
  4. package/dist/common/collection.js +4 -3
  5. package/dist/common/collection.js.map +1 -1
  6. package/dist/common/config.js +2 -1
  7. package/dist/common/config.js.map +1 -1
  8. package/dist/common/errors/captcha-error.js +2 -1
  9. package/dist/common/errors/captcha-error.js.map +1 -1
  10. package/dist/common/errors/intent-to-join.js +2 -1
  11. package/dist/common/errors/intent-to-join.js.map +1 -1
  12. package/dist/common/errors/join-meeting.js +2 -1
  13. package/dist/common/errors/join-meeting.js.map +1 -1
  14. package/dist/common/errors/media.js +2 -1
  15. package/dist/common/errors/media.js.map +1 -1
  16. package/dist/common/errors/parameter.js +4 -3
  17. package/dist/common/errors/parameter.js.map +1 -1
  18. package/dist/common/errors/password-error.js +2 -1
  19. package/dist/common/errors/password-error.js.map +1 -1
  20. package/dist/common/errors/permission.js +2 -1
  21. package/dist/common/errors/permission.js.map +1 -1
  22. package/dist/common/errors/{reclaim-host-role-errors.js → reclaim-host-role-error.js} +11 -7
  23. package/dist/common/errors/reclaim-host-role-error.js.map +1 -0
  24. package/dist/common/errors/reconnection-in-progress.js +2 -1
  25. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  26. package/dist/common/errors/reconnection.js +2 -1
  27. package/dist/common/errors/reconnection.js.map +1 -1
  28. package/dist/common/errors/stats.js +2 -1
  29. package/dist/common/errors/stats.js.map +1 -1
  30. package/dist/common/errors/webex-errors.d.ts +8 -20
  31. package/dist/common/errors/webex-errors.js +28 -48
  32. package/dist/common/errors/webex-errors.js.map +1 -1
  33. package/dist/common/errors/webex-meetings-error.js +2 -1
  34. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  35. package/dist/common/events/events-scope.js +2 -1
  36. package/dist/common/events/events-scope.js.map +1 -1
  37. package/dist/common/events/events.js +2 -1
  38. package/dist/common/events/events.js.map +1 -1
  39. package/dist/common/events/trigger-proxy.js +2 -1
  40. package/dist/common/events/trigger-proxy.js.map +1 -1
  41. package/dist/common/events/util.js +2 -1
  42. package/dist/common/events/util.js.map +1 -1
  43. package/dist/common/logs/logger-config.js +2 -1
  44. package/dist/common/logs/logger-config.js.map +1 -1
  45. package/dist/common/logs/logger-proxy.js +3 -2
  46. package/dist/common/logs/logger-proxy.js.map +1 -1
  47. package/dist/common/logs/request.d.ts +1 -3
  48. package/dist/common/logs/request.js +5 -8
  49. package/dist/common/logs/request.js.map +1 -1
  50. package/dist/common/queue.d.ts +7 -9
  51. package/dist/common/queue.js +9 -22
  52. package/dist/common/queue.js.map +1 -1
  53. package/dist/config.d.ts +7 -6
  54. package/dist/config.js +10 -8
  55. package/dist/config.js.map +1 -1
  56. package/dist/constants.d.ts +100 -234
  57. package/dist/constants.js +444 -433
  58. package/dist/constants.js.map +1 -1
  59. package/dist/controls-options-manager/constants.js +6 -3
  60. package/dist/controls-options-manager/constants.js.map +1 -1
  61. package/dist/controls-options-manager/enums.d.ts +1 -11
  62. package/dist/controls-options-manager/enums.js +6 -15
  63. package/dist/controls-options-manager/enums.js.map +1 -1
  64. package/dist/controls-options-manager/index.d.ts +1 -17
  65. package/dist/controls-options-manager/index.js +38 -127
  66. package/dist/controls-options-manager/index.js.map +1 -1
  67. package/dist/controls-options-manager/util.d.ts +7 -1
  68. package/dist/controls-options-manager/util.js +19 -309
  69. package/dist/controls-options-manager/util.js.map +1 -1
  70. package/dist/index.d.ts +3 -6
  71. package/dist/index.js +5 -121
  72. package/dist/index.js.map +1 -1
  73. package/dist/locus-info/controlsUtils.js +11 -100
  74. package/dist/locus-info/controlsUtils.js.map +1 -1
  75. package/dist/locus-info/embeddedAppsUtils.js +4 -3
  76. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  77. package/dist/locus-info/fullState.js +2 -1
  78. package/dist/locus-info/fullState.js.map +1 -1
  79. package/dist/locus-info/hostUtils.js +2 -1
  80. package/dist/locus-info/hostUtils.js.map +1 -1
  81. package/dist/locus-info/index.d.ts +4 -57
  82. package/dist/locus-info/index.js +84 -425
  83. package/dist/locus-info/index.js.map +1 -1
  84. package/dist/locus-info/infoUtils.js +5 -13
  85. package/dist/locus-info/infoUtils.js.map +1 -1
  86. package/dist/locus-info/mediaSharesUtils.js +3 -58
  87. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  88. package/dist/locus-info/parser.d.ts +6 -66
  89. package/dist/locus-info/parser.js +80 -253
  90. package/dist/locus-info/parser.js.map +1 -1
  91. package/dist/locus-info/selfUtils.js +13 -97
  92. package/dist/locus-info/selfUtils.js.map +1 -1
  93. package/dist/media/index.d.ts +0 -2
  94. package/dist/media/index.js +319 -107
  95. package/dist/media/index.js.map +1 -1
  96. package/dist/media/properties.d.ts +53 -38
  97. package/dist/media/properties.js +153 -96
  98. package/dist/media/properties.js.map +1 -1
  99. package/dist/media/util.js +22 -1
  100. package/dist/media/util.js.map +1 -1
  101. package/dist/mediaQualityMetrics/config.d.ts +230 -234
  102. package/dist/mediaQualityMetrics/config.js +498 -302
  103. package/dist/mediaQualityMetrics/config.js.map +1 -1
  104. package/dist/meeting/effectsState.d.ts +42 -0
  105. package/dist/meeting/effectsState.js +260 -0
  106. package/dist/meeting/effectsState.js.map +1 -0
  107. package/dist/meeting/in-meeting-actions.d.ts +0 -88
  108. package/dist/meeting/in-meeting-actions.js +3 -94
  109. package/dist/meeting/in-meeting-actions.js.map +1 -1
  110. package/dist/meeting/index.d.ts +520 -705
  111. package/dist/meeting/index.js +3083 -5041
  112. package/dist/meeting/index.js.map +1 -1
  113. package/dist/meeting/muteState.d.ts +25 -93
  114. package/dist/meeting/muteState.js +133 -224
  115. package/dist/meeting/muteState.js.map +1 -1
  116. package/dist/meeting/request.d.ts +47 -82
  117. package/dist/meeting/request.js +199 -304
  118. package/dist/meeting/request.js.map +1 -1
  119. package/dist/meeting/state.js +2 -1
  120. package/dist/meeting/state.js.map +1 -1
  121. package/dist/meeting/util.d.ts +1 -118
  122. package/dist/meeting/util.js +435 -676
  123. package/dist/meeting/util.js.map +1 -1
  124. package/dist/meeting-info/collection.js +4 -3
  125. package/dist/meeting-info/collection.js.map +1 -1
  126. package/dist/meeting-info/index.d.ts +1 -13
  127. package/dist/meeting-info/index.js +7 -74
  128. package/dist/meeting-info/index.js.map +1 -1
  129. package/dist/meeting-info/meeting-info-v2.d.ts +1 -31
  130. package/dist/meeting-info/meeting-info-v2.js +63 -200
  131. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  132. package/dist/meeting-info/request.js +2 -1
  133. package/dist/meeting-info/request.js.map +1 -1
  134. package/dist/meeting-info/util.js +3 -2
  135. package/dist/meeting-info/util.js.map +1 -1
  136. package/dist/meeting-info/utilv2.js +41 -39
  137. package/dist/meeting-info/utilv2.js.map +1 -1
  138. package/dist/meetings/collection.d.ts +0 -17
  139. package/dist/meetings/collection.js +4 -42
  140. package/dist/meetings/collection.js.map +1 -1
  141. package/dist/meetings/index.d.ts +20 -114
  142. package/dist/meetings/index.js +133 -540
  143. package/dist/meetings/index.js.map +1 -1
  144. package/dist/meetings/request.js +3 -4
  145. package/dist/meetings/request.js.map +1 -1
  146. package/dist/meetings/util.js +6 -107
  147. package/dist/meetings/util.js.map +1 -1
  148. package/dist/member/index.d.ts +1 -13
  149. package/dist/member/index.js +2 -45
  150. package/dist/member/index.js.map +1 -1
  151. package/dist/member/member.types.js +4 -3
  152. package/dist/member/member.types.js.map +1 -1
  153. package/dist/member/util.js +29 -120
  154. package/dist/member/util.js.map +1 -1
  155. package/dist/members/collection.d.ts +0 -5
  156. package/dist/members/collection.js +2 -11
  157. package/dist/members/collection.js.map +1 -1
  158. package/dist/members/index.d.ts +11 -56
  159. package/dist/members/index.js +47 -174
  160. package/dist/members/index.js.map +1 -1
  161. package/dist/members/request.d.ts +11 -67
  162. package/dist/members/request.js +54 -102
  163. package/dist/members/request.js.map +1 -1
  164. package/dist/members/types.js +4 -3
  165. package/dist/members/types.js.map +1 -1
  166. package/dist/members/util.d.ts +1 -214
  167. package/dist/members/util.js +284 -327
  168. package/dist/members/util.js.map +1 -1
  169. package/dist/metrics/config.d.ts +169 -0
  170. package/dist/metrics/config.js +289 -0
  171. package/dist/metrics/config.js.map +1 -0
  172. package/dist/metrics/constants.d.ts +6 -15
  173. package/dist/metrics/constants.js +9 -17
  174. package/dist/metrics/constants.js.map +1 -1
  175. package/dist/metrics/index.d.ts +111 -4
  176. package/dist/metrics/index.js +452 -4
  177. package/dist/metrics/index.js.map +1 -1
  178. package/dist/networkQualityMonitor/index.js +4 -5
  179. package/dist/networkQualityMonitor/index.js.map +1 -1
  180. package/dist/peer-connection-manager/index.d.ts +6 -0
  181. package/dist/peer-connection-manager/index.js +671 -0
  182. package/dist/peer-connection-manager/index.js.map +1 -0
  183. package/dist/peer-connection-manager/util.d.ts +6 -0
  184. package/dist/peer-connection-manager/util.js +110 -0
  185. package/dist/peer-connection-manager/util.js.map +1 -0
  186. package/dist/personal-meeting-room/index.js +3 -2
  187. package/dist/personal-meeting-room/index.js.map +1 -1
  188. package/dist/personal-meeting-room/request.js +3 -2
  189. package/dist/personal-meeting-room/request.js.map +1 -1
  190. package/dist/personal-meeting-room/util.js +2 -1
  191. package/dist/personal-meeting-room/util.js.map +1 -1
  192. package/dist/reachability/index.d.ts +95 -61
  193. package/dist/reachability/index.js +392 -304
  194. package/dist/reachability/index.js.map +1 -1
  195. package/dist/reachability/request.d.ts +3 -7
  196. package/dist/reachability/request.js +10 -18
  197. package/dist/reachability/request.js.map +1 -1
  198. package/dist/reactions/reactions.d.ts +2 -2
  199. package/dist/reactions/reactions.js +6 -4
  200. package/dist/reactions/reactions.js.map +1 -1
  201. package/dist/reactions/reactions.type.d.ts +3 -23
  202. package/dist/reactions/reactions.type.js +23 -21
  203. package/dist/reactions/reactions.type.js.map +1 -1
  204. package/dist/reconnection-manager/index.d.ts +8 -32
  205. package/dist/reconnection-manager/index.js +232 -285
  206. package/dist/reconnection-manager/index.js.map +1 -1
  207. package/dist/recording-controller/enums.js +5 -4
  208. package/dist/recording-controller/enums.js.map +1 -1
  209. package/dist/recording-controller/index.d.ts +1 -15
  210. package/dist/recording-controller/index.js +46 -57
  211. package/dist/recording-controller/index.js.map +1 -1
  212. package/dist/recording-controller/util.d.ts +4 -5
  213. package/dist/recording-controller/util.js +10 -10
  214. package/dist/recording-controller/util.js.map +1 -1
  215. package/dist/roap/collection.d.ts +10 -0
  216. package/dist/roap/collection.js +63 -0
  217. package/dist/roap/collection.js.map +1 -0
  218. package/dist/roap/handler.d.ts +47 -0
  219. package/dist/roap/handler.js +279 -0
  220. package/dist/roap/handler.js.map +1 -0
  221. package/dist/roap/index.d.ts +47 -9
  222. package/dist/roap/index.js +238 -100
  223. package/dist/roap/index.js.map +1 -1
  224. package/dist/roap/request.d.ts +12 -18
  225. package/dist/roap/request.js +180 -126
  226. package/dist/roap/request.js.map +1 -1
  227. package/dist/roap/state.d.ts +9 -0
  228. package/dist/roap/state.js +127 -0
  229. package/dist/roap/state.js.map +1 -0
  230. package/dist/roap/turnDiscovery.d.ts +16 -27
  231. package/dist/roap/turnDiscovery.js +105 -115
  232. package/dist/roap/turnDiscovery.js.map +1 -1
  233. package/dist/roap/util.d.ts +2 -0
  234. package/dist/roap/util.js +76 -0
  235. package/dist/roap/util.js.map +1 -0
  236. package/dist/statsAnalyzer/global.d.ts +83 -1
  237. package/dist/statsAnalyzer/global.js +85 -2
  238. package/dist/statsAnalyzer/global.js.map +1 -1
  239. package/dist/statsAnalyzer/index.d.ts +30 -50
  240. package/dist/statsAnalyzer/index.js +511 -436
  241. package/dist/statsAnalyzer/index.js.map +1 -1
  242. package/dist/statsAnalyzer/mqaUtil.d.ts +6 -8
  243. package/dist/statsAnalyzer/mqaUtil.js +90 -130
  244. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  245. package/dist/transcription/index.js +2 -1
  246. package/dist/transcription/index.js.map +1 -1
  247. package/package.json +26 -39
  248. package/src/common/errors/webex-errors.ts +12 -36
  249. package/src/common/logs/logger-proxy.ts +1 -1
  250. package/src/common/logs/request.ts +1 -5
  251. package/src/common/queue.ts +8 -22
  252. package/src/config.ts +7 -6
  253. package/src/constants.ts +100 -265
  254. package/src/controls-options-manager/enums.ts +0 -12
  255. package/src/controls-options-manager/index.ts +21 -116
  256. package/src/controls-options-manager/util.ts +14 -294
  257. package/src/index.js +15 -0
  258. package/src/locus-info/controlsUtils.ts +0 -110
  259. package/src/locus-info/index.ts +61 -450
  260. package/src/locus-info/infoUtils.ts +2 -14
  261. package/src/locus-info/mediaSharesUtils.ts +0 -64
  262. package/src/locus-info/parser.ts +47 -258
  263. package/src/locus-info/selfUtils.ts +2 -85
  264. package/src/media/index.ts +370 -153
  265. package/src/media/properties.ts +136 -106
  266. package/src/media/util.ts +21 -0
  267. package/src/mediaQualityMetrics/config.ts +377 -244
  268. package/src/meeting/effectsState.ts +209 -0
  269. package/src/meeting/in-meeting-actions.ts +0 -176
  270. package/src/meeting/index.ts +2581 -4306
  271. package/src/meeting/muteState.ts +138 -224
  272. package/src/meeting/request.ts +127 -214
  273. package/src/meeting/util.ts +423 -687
  274. package/src/meeting-info/index.ts +8 -81
  275. package/src/meeting-info/meeting-info-v2.ts +13 -163
  276. package/src/meeting-info/util.ts +1 -1
  277. package/src/meeting-info/utilv2.ts +28 -28
  278. package/src/meetings/collection.ts +0 -33
  279. package/src/meetings/index.ts +136 -531
  280. package/src/meetings/request.ts +0 -2
  281. package/src/meetings/util.ts +5 -116
  282. package/src/member/index.ts +1 -43
  283. package/src/member/util.ts +28 -125
  284. package/src/members/collection.ts +0 -8
  285. package/src/members/index.ts +52 -187
  286. package/src/members/request.ts +27 -87
  287. package/src/members/util.ts +291 -332
  288. package/src/metrics/config.ts +485 -0
  289. package/src/metrics/constants.ts +6 -15
  290. package/src/metrics/index.ts +471 -1
  291. package/src/networkQualityMonitor/index.ts +6 -6
  292. package/src/peer-connection-manager/index.ts +847 -0
  293. package/src/peer-connection-manager/util.ts +119 -0
  294. package/src/reachability/index.ts +347 -246
  295. package/src/reachability/request.ts +8 -17
  296. package/src/reactions/reactions.ts +4 -4
  297. package/src/reactions/reactions.type.ts +4 -30
  298. package/src/reconnection-manager/index.ts +156 -168
  299. package/src/recording-controller/index.ts +3 -20
  300. package/src/recording-controller/util.ts +9 -26
  301. package/src/roap/collection.ts +62 -0
  302. package/src/roap/handler.ts +294 -0
  303. package/src/roap/index.ts +241 -96
  304. package/src/roap/request.ts +148 -74
  305. package/src/roap/state.ts +156 -0
  306. package/src/roap/turnDiscovery.ts +56 -62
  307. package/src/roap/util.ts +100 -0
  308. package/src/statsAnalyzer/global.ts +84 -1
  309. package/src/statsAnalyzer/index.ts +645 -479
  310. package/src/statsAnalyzer/mqaUtil.ts +126 -128
  311. package/test/integration/spec/journey.js +264 -320
  312. package/test/integration/spec/space-meeting.js +4 -77
  313. package/test/unit/spec/common/queue.js +2 -31
  314. package/test/unit/spec/controls-options-manager/index.js +0 -163
  315. package/test/unit/spec/controls-options-manager/util.js +60 -576
  316. package/test/unit/spec/fixture/locus.js +0 -1
  317. package/test/unit/spec/locus-info/controlsUtils.js +30 -323
  318. package/test/unit/spec/locus-info/index.js +15 -1437
  319. package/test/unit/spec/locus-info/infoUtils.js +16 -54
  320. package/test/unit/spec/locus-info/lib/SeqCmp.json +0 -16
  321. package/test/unit/spec/locus-info/lib/selfConstant.js +0 -48
  322. package/test/unit/spec/locus-info/parser.js +35 -116
  323. package/test/unit/spec/locus-info/selfUtils.js +0 -275
  324. package/test/unit/spec/media/properties.ts +84 -75
  325. package/test/unit/spec/meeting/effectsState.js +281 -0
  326. package/test/unit/spec/meeting/in-meeting-actions.ts +0 -86
  327. package/test/unit/spec/meeting/index.js +2313 -8384
  328. package/test/unit/spec/meeting/muteState.js +213 -409
  329. package/test/unit/spec/meeting/request.js +43 -523
  330. package/test/unit/spec/meeting/utils.js +24 -834
  331. package/test/unit/spec/meeting-info/meetinginfov2.js +5 -527
  332. package/test/unit/spec/meeting-info/utilv2.js +0 -21
  333. package/test/unit/spec/meetings/collection.js +0 -26
  334. package/test/unit/spec/meetings/index.js +232 -1445
  335. package/test/unit/spec/meetings/utils.js +2 -202
  336. package/test/unit/spec/member/index.js +9 -32
  337. package/test/unit/spec/member/util.js +61 -499
  338. package/test/unit/spec/members/index.js +5 -394
  339. package/test/unit/spec/members/request.js +27 -206
  340. package/test/unit/spec/members/utils.js +38 -173
  341. package/test/unit/spec/metrics/index.js +50 -1
  342. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  343. package/test/unit/spec/peerconnection-manager/index.js +218 -0
  344. package/test/unit/spec/peerconnection-manager/utils.js +49 -0
  345. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -0
  346. package/test/unit/spec/reachability/index.ts +24 -532
  347. package/test/unit/spec/reconnection-manager/index.js +24 -163
  348. package/test/unit/spec/recording-controller/index.js +218 -293
  349. package/test/unit/spec/recording-controller/util.js +96 -223
  350. package/test/unit/spec/roap/index.ts +77 -187
  351. package/test/unit/spec/roap/turnDiscovery.ts +48 -86
  352. package/test/unit/spec/roap/util.js +30 -0
  353. package/test/unit/spec/stats-analyzer/index.js +165 -644
  354. package/test/utils/testUtils.js +45 -0
  355. package/test/utils/webex-config.js +0 -4
  356. package/test/utils/webex-test-users.js +3 -7
  357. package/dist/annotation/annotation.types.d.ts +0 -42
  358. package/dist/annotation/annotation.types.js +0 -7
  359. package/dist/annotation/annotation.types.js.map +0 -1
  360. package/dist/annotation/constants.d.ts +0 -31
  361. package/dist/annotation/constants.js +0 -41
  362. package/dist/annotation/constants.js.map +0 -1
  363. package/dist/annotation/index.d.ts +0 -117
  364. package/dist/annotation/index.js +0 -357
  365. package/dist/annotation/index.js.map +0 -1
  366. package/dist/breakouts/breakout.d.ts +0 -8
  367. package/dist/breakouts/breakout.js +0 -215
  368. package/dist/breakouts/breakout.js.map +0 -1
  369. package/dist/breakouts/collection.d.ts +0 -5
  370. package/dist/breakouts/collection.js +0 -22
  371. package/dist/breakouts/collection.js.map +0 -1
  372. package/dist/breakouts/edit-lock-error.d.ts +0 -15
  373. package/dist/breakouts/edit-lock-error.js +0 -51
  374. package/dist/breakouts/edit-lock-error.js.map +0 -1
  375. package/dist/breakouts/events.d.ts +0 -8
  376. package/dist/breakouts/events.js +0 -44
  377. package/dist/breakouts/events.js.map +0 -1
  378. package/dist/breakouts/index.d.ts +0 -5
  379. package/dist/breakouts/index.js +0 -1047
  380. package/dist/breakouts/index.js.map +0 -1
  381. package/dist/breakouts/request.d.ts +0 -22
  382. package/dist/breakouts/request.js +0 -77
  383. package/dist/breakouts/request.js.map +0 -1
  384. package/dist/breakouts/utils.d.ts +0 -15
  385. package/dist/breakouts/utils.js +0 -64
  386. package/dist/breakouts/utils.js.map +0 -1
  387. package/dist/common/errors/no-meeting-info.d.ts +0 -14
  388. package/dist/common/errors/no-meeting-info.js +0 -50
  389. package/dist/common/errors/no-meeting-info.js.map +0 -1
  390. package/dist/common/errors/reclaim-host-role-errors.js.map +0 -1
  391. package/dist/controls-options-manager/types.d.ts +0 -43
  392. package/dist/controls-options-manager/types.js +0 -7
  393. package/dist/controls-options-manager/types.js.map +0 -1
  394. package/dist/interceptors/index.d.ts +0 -2
  395. package/dist/interceptors/index.js +0 -15
  396. package/dist/interceptors/index.js.map +0 -1
  397. package/dist/interceptors/locusRetry.d.ts +0 -27
  398. package/dist/interceptors/locusRetry.js +0 -94
  399. package/dist/interceptors/locusRetry.js.map +0 -1
  400. package/dist/interpretation/collection.d.ts +0 -5
  401. package/dist/interpretation/collection.js +0 -22
  402. package/dist/interpretation/collection.js.map +0 -1
  403. package/dist/interpretation/index.d.ts +0 -5
  404. package/dist/interpretation/index.js +0 -365
  405. package/dist/interpretation/index.js.map +0 -1
  406. package/dist/interpretation/siLanguage.d.ts +0 -5
  407. package/dist/interpretation/siLanguage.js +0 -24
  408. package/dist/interpretation/siLanguage.js.map +0 -1
  409. package/dist/meeting/locusMediaRequest.d.ts +0 -74
  410. package/dist/meeting/locusMediaRequest.js +0 -291
  411. package/dist/meeting/locusMediaRequest.js.map +0 -1
  412. package/dist/meeting/request.type.d.ts +0 -11
  413. package/dist/meeting/request.type.js +0 -7
  414. package/dist/meeting/request.type.js.map +0 -1
  415. package/dist/meeting/voicea-meeting.d.ts +0 -20
  416. package/dist/meeting/voicea-meeting.js +0 -201
  417. package/dist/meeting/voicea-meeting.js.map +0 -1
  418. package/dist/meetings/meetings.types.d.ts +0 -4
  419. package/dist/meetings/meetings.types.js +0 -7
  420. package/dist/meetings/meetings.types.js.map +0 -1
  421. package/dist/member/types.d.ts +0 -32
  422. package/dist/member/types.js +0 -23
  423. package/dist/member/types.js.map +0 -1
  424. package/dist/multistream/mediaRequestManager.d.ts +0 -118
  425. package/dist/multistream/mediaRequestManager.js +0 -344
  426. package/dist/multistream/mediaRequestManager.js.map +0 -1
  427. package/dist/multistream/receiveSlot.d.ts +0 -68
  428. package/dist/multistream/receiveSlot.js +0 -200
  429. package/dist/multistream/receiveSlot.js.map +0 -1
  430. package/dist/multistream/receiveSlotManager.d.ts +0 -56
  431. package/dist/multistream/receiveSlotManager.js +0 -174
  432. package/dist/multistream/receiveSlotManager.js.map +0 -1
  433. package/dist/multistream/remoteMedia.d.ts +0 -72
  434. package/dist/multistream/remoteMedia.js +0 -268
  435. package/dist/multistream/remoteMedia.js.map +0 -1
  436. package/dist/multistream/remoteMediaGroup.d.ts +0 -47
  437. package/dist/multistream/remoteMediaGroup.js +0 -267
  438. package/dist/multistream/remoteMediaGroup.js.map +0 -1
  439. package/dist/multistream/remoteMediaManager.d.ts +0 -285
  440. package/dist/multistream/remoteMediaManager.js +0 -1211
  441. package/dist/multistream/remoteMediaManager.js.map +0 -1
  442. package/dist/multistream/sendSlotManager.d.ts +0 -61
  443. package/dist/multistream/sendSlotManager.js +0 -236
  444. package/dist/multistream/sendSlotManager.js.map +0 -1
  445. package/dist/reachability/clusterReachability.d.ts +0 -109
  446. package/dist/reachability/clusterReachability.js +0 -357
  447. package/dist/reachability/clusterReachability.js.map +0 -1
  448. package/dist/reachability/util.d.ts +0 -8
  449. package/dist/reachability/util.js +0 -29
  450. package/dist/reachability/util.js.map +0 -1
  451. package/dist/reactions/constants.d.ts +0 -3
  452. package/dist/reactions/constants.js +0 -12
  453. package/dist/reactions/constants.js.map +0 -1
  454. package/dist/rtcMetrics/constants.d.ts +0 -4
  455. package/dist/rtcMetrics/constants.js +0 -11
  456. package/dist/rtcMetrics/constants.js.map +0 -1
  457. package/dist/rtcMetrics/index.d.ts +0 -54
  458. package/dist/rtcMetrics/index.js +0 -140
  459. package/dist/rtcMetrics/index.js.map +0 -1
  460. package/dist/webinar/collection.d.ts +0 -16
  461. package/dist/webinar/collection.js +0 -43
  462. package/dist/webinar/collection.js.map +0 -1
  463. package/dist/webinar/index.d.ts +0 -5
  464. package/dist/webinar/index.js +0 -68
  465. package/dist/webinar/index.js.map +0 -1
  466. package/src/annotation/annotation.types.ts +0 -50
  467. package/src/annotation/constants.ts +0 -36
  468. package/src/annotation/index.ts +0 -328
  469. package/src/breakouts/README.md +0 -220
  470. package/src/breakouts/breakout.ts +0 -188
  471. package/src/breakouts/collection.ts +0 -19
  472. package/src/breakouts/edit-lock-error.ts +0 -25
  473. package/src/breakouts/events.ts +0 -56
  474. package/src/breakouts/index.ts +0 -925
  475. package/src/breakouts/request.ts +0 -55
  476. package/src/breakouts/utils.ts +0 -57
  477. package/src/common/errors/no-meeting-info.ts +0 -24
  478. package/src/controls-options-manager/types.ts +0 -59
  479. package/src/index.ts +0 -44
  480. package/src/interceptors/index.ts +0 -3
  481. package/src/interceptors/locusRetry.ts +0 -67
  482. package/src/interpretation/README.md +0 -60
  483. package/src/interpretation/collection.ts +0 -19
  484. package/src/interpretation/index.ts +0 -332
  485. package/src/interpretation/siLanguage.ts +0 -18
  486. package/src/meeting/locusMediaRequest.ts +0 -313
  487. package/src/meeting/request.type.ts +0 -13
  488. package/src/meeting/voicea-meeting.ts +0 -161
  489. package/src/meetings/meetings.types.ts +0 -12
  490. package/src/member/types.ts +0 -38
  491. package/src/multistream/mediaRequestManager.ts +0 -440
  492. package/src/multistream/receiveSlot.ts +0 -184
  493. package/src/multistream/receiveSlotManager.ts +0 -166
  494. package/src/multistream/remoteMedia.ts +0 -254
  495. package/src/multistream/remoteMediaGroup.ts +0 -284
  496. package/src/multistream/remoteMediaManager.ts +0 -1145
  497. package/src/multistream/sendSlotManager.ts +0 -170
  498. package/src/reachability/clusterReachability.ts +0 -320
  499. package/src/reachability/util.ts +0 -24
  500. package/src/reactions/constants.ts +0 -4
  501. package/src/rtcMetrics/constants.ts +0 -3
  502. package/src/rtcMetrics/index.ts +0 -124
  503. package/src/webinar/collection.ts +0 -31
  504. package/src/webinar/index.ts +0 -62
  505. package/test/integration/spec/converged-space-meetings.js +0 -233
  506. package/test/unit/spec/annotation/index.ts +0 -418
  507. package/test/unit/spec/breakouts/breakout.ts +0 -237
  508. package/test/unit/spec/breakouts/collection.ts +0 -15
  509. package/test/unit/spec/breakouts/edit-lock-error.ts +0 -30
  510. package/test/unit/spec/breakouts/events.ts +0 -89
  511. package/test/unit/spec/breakouts/index.ts +0 -1790
  512. package/test/unit/spec/breakouts/request.ts +0 -104
  513. package/test/unit/spec/breakouts/utils.js +0 -72
  514. package/test/unit/spec/interceptors/locusRetry.ts +0 -131
  515. package/test/unit/spec/interpretation/collection.ts +0 -15
  516. package/test/unit/spec/interpretation/index.ts +0 -589
  517. package/test/unit/spec/interpretation/siLanguage.ts +0 -28
  518. package/test/unit/spec/locus-info/mediaSharesUtils.ts +0 -32
  519. package/test/unit/spec/media/index.ts +0 -290
  520. package/test/unit/spec/meeting/locusMediaRequest.ts +0 -442
  521. package/test/unit/spec/meeting-info/index.js +0 -300
  522. package/test/unit/spec/multistream/mediaRequestManager.ts +0 -1418
  523. package/test/unit/spec/multistream/receiveSlot.ts +0 -163
  524. package/test/unit/spec/multistream/receiveSlotManager.ts +0 -203
  525. package/test/unit/spec/multistream/remoteMedia.ts +0 -255
  526. package/test/unit/spec/multistream/remoteMediaGroup.ts +0 -662
  527. package/test/unit/spec/multistream/remoteMediaManager.ts +0 -1924
  528. package/test/unit/spec/multistream/sendSlotManager.ts +0 -242
  529. package/test/unit/spec/reachability/clusterReachability.ts +0 -279
  530. package/test/unit/spec/reachability/request.js +0 -68
  531. package/test/unit/spec/reachability/util.ts +0 -40
  532. package/test/unit/spec/roap/request.ts +0 -255
  533. package/test/unit/spec/rtcMetrics/index.ts +0 -93
  534. package/test/unit/spec/webinar/collection.ts +0 -13
  535. package/test/unit/spec/webinar/index.ts +0 -60
  536. package/test/utils/constants.js +0 -9
  537. package/test/utils/integrationTestUtils.js +0 -46
  538. /package/dist/common/errors/{reclaim-host-role-errors.d.ts → reclaim-host-role-error.d.ts} +0 -0
  539. /package/src/common/errors/{reclaim-host-role-errors.ts → reclaim-host-role-error.ts} +0 -0
@@ -1,17 +1,13 @@
1
1
  /* eslint no-shadow: ["error", { "allow": ["eventType"] }] */
2
2
 
3
3
  import '@webex/internal-plugin-mercury';
4
- import '@webex/internal-plugin-conversation';
5
- import '@webex/internal-plugin-metrics';
6
4
  // @ts-ignore
7
5
  import {WebexPlugin} from '@webex/webex-core';
8
- import {setLogger} from '@webex/internal-media-core';
9
-
10
- import * as mediaHelpersModule from '@webex/media-helpers';
11
6
 
12
7
  import 'webrtc-adapter';
13
8
 
14
9
  import Metrics from '../metrics';
10
+ import {trigger, eventType} from '../metrics/config';
15
11
  import LoggerConfig from '../common/logs/logger-config';
16
12
  import StaticConfig from '../common/config';
17
13
  import LoggerProxy from '../common/logs/logger-proxy';
@@ -42,14 +38,11 @@ import {
42
38
  MEETING_REMOVED_REASON,
43
39
  _CONVERSATION_URL_,
44
40
  CONVERSATION_URL,
45
- MEETINGNUMBER,
46
- _JOINED_,
47
- _MOVED_,
48
41
  } from '../constants';
49
42
  import BEHAVIORAL_METRICS from '../metrics/constants';
50
43
  import MeetingInfo from '../meeting-info';
51
44
  import MeetingInfoV2 from '../meeting-info/meeting-info-v2';
52
- import Meeting, {CallStateForMetrics} from '../meeting';
45
+ import Meeting from '../meeting';
53
46
  import PersonalMeetingRoom from '../personal-meeting-room';
54
47
  import Reachability from '../reachability';
55
48
  import Request from './request';
@@ -58,38 +51,7 @@ import CaptchaError from '../common/errors/captcha-error';
58
51
 
59
52
  import MeetingCollection from './collection';
60
53
  import MeetingsUtil from './util';
61
- import PermissionError from '../common/errors/permission';
62
- import {INoiseReductionEffect, IVirtualBackgroundEffect} from './meetings.types';
63
- import {SpaceIDDeprecatedError} from '../common/errors/webex-errors';
64
- import NoMeetingInfoError from '../common/errors/no-meeting-info';
65
-
66
- let mediaLogger;
67
-
68
- class MediaLogger {
69
- info(...args) {
70
- LoggerProxy.logger.info(...args);
71
- }
72
-
73
- log(...args) {
74
- LoggerProxy.logger.log(...args);
75
- }
76
-
77
- error(...args) {
78
- LoggerProxy.logger.error(...args);
79
- }
80
-
81
- warn(...args) {
82
- LoggerProxy.logger.warn(...args);
83
- }
84
54
 
85
- trace(...args) {
86
- LoggerProxy.logger.trace(...args);
87
- }
88
-
89
- debug(...args) {
90
- LoggerProxy.logger.debug(...args);
91
- }
92
- }
93
55
  /**
94
56
  * Meetings Ready Event
95
57
  * Emitted when the meetings instance on webex is ready
@@ -148,13 +110,12 @@ export default class Meetings extends WebexPlugin {
148
110
  meetingCollection: any;
149
111
  personalMeetingRoom: any;
150
112
  preferredWebexSite: any;
151
- reachability: Reachability;
113
+ reachability: any;
152
114
  registered: any;
153
115
  request: any;
154
116
  geoHintInfo: any;
155
117
  meetingInfo: any;
156
- mediaHelpers: any;
157
- breakoutLocusForHandleLater: any;
118
+
158
119
  namespace = MEETINGS;
159
120
 
160
121
  /**
@@ -166,17 +127,6 @@ export default class Meetings extends WebexPlugin {
166
127
  constructor(...args) {
167
128
  super(...args);
168
129
 
169
- /**
170
- * The webrtc-core media helpers. This is a temporary solution required for the SDK sample app
171
- * to be able to call media helper functions.
172
- *
173
- * @instance
174
- * @type {Object}
175
- * @private
176
- * @memberof Meetings
177
- */
178
- this.mediaHelpers = mediaHelpersModule;
179
-
180
130
  /**
181
131
  * The Meetings request to interact with server
182
132
  * @instance
@@ -204,17 +154,15 @@ export default class Meetings extends WebexPlugin {
204
154
  * @memberof Meetings
205
155
  */
206
156
  this.personalMeetingRoom = null;
207
-
208
157
  /**
209
- * The Reachability object to interact with server
158
+ * The Reachability object to interact with server, starts as null until {@link Meeting#setReachability} is called
210
159
  * starts as null
211
160
  * @instance
212
161
  * @type {Object}
213
162
  * @private
214
163
  * @memberof Meetings
215
164
  */
216
- // @ts-ignore
217
- this.reachability = new Reachability(this.webex);
165
+ this.reachability = null;
218
166
 
219
167
  /**
220
168
  * If the meetings plugin has been registered and listening via {@link Meetings#register}
@@ -244,137 +192,30 @@ export default class Meetings extends WebexPlugin {
244
192
  */
245
193
  this.media = {
246
194
  getUserMedia: Media.getUserMedia,
195
+ getSupportedDevice: Media.getSupportedDevice,
247
196
  };
248
197
 
249
198
  this.onReady();
250
199
  }
251
200
 
252
201
  /**
253
- * check whether you need to handle this main session's locus data or not
254
- * @param {Object} meeting current meeting data
255
- * @param {Object} newLocus new locus data
256
- * @returns {boolean}
257
- * @private
258
- * @memberof Meetings
259
- */
260
- private isNeedHandleMainLocus(meeting: any, newLocus: any) {
261
- const breakoutUrl = newLocus.controls?.breakout?.url;
262
- const breakoutLocus = this.meetingCollection.getActiveBreakoutLocus(breakoutUrl);
263
-
264
- const isSelfJoined = newLocus?.self?.state === _JOINED_;
265
- const isSelfMoved = newLocus?.self?.state === _LEFT_ && newLocus?.self?.reason === _MOVED_;
266
- // @ts-ignore
267
- const deviceFromNewLocus = MeetingsUtil.getThisDevice(newLocus, this.webex.internal.device.url);
268
- const isResourceMovedOnThisDevice =
269
- deviceFromNewLocus?.state === _LEFT_ && deviceFromNewLocus?.reason === _MOVED_;
270
-
271
- const isNewLocusJoinThisDevice = MeetingsUtil.joinedOnThisDevice(
272
- meeting,
273
- newLocus,
274
- // @ts-ignore
275
- this.webex.internal.device.url
276
- );
277
- const isBreakoutLocusJoinThisDevice =
278
- breakoutLocus?.joinedWith?.correlationId &&
279
- breakoutLocus.joinedWith.correlationId === meeting?.correlationId;
280
-
281
- if (isSelfJoined && isNewLocusJoinThisDevice) {
282
- LoggerProxy.logger.log(
283
- 'Meetings:index#isNeedHandleMainLocus --> self this device shown as JOINED in the main session'
284
- );
285
- if (breakoutLocus?.joinedWith && deviceFromNewLocus) {
286
- const breakoutReplaceAt =
287
- breakoutLocus.joinedWith.replaces?.length > 0
288
- ? breakoutLocus.joinedWith.replaces[0].replaceAt
289
- : '';
290
- const newLocusReplaceAt =
291
- deviceFromNewLocus.replaces?.length > 0 ? deviceFromNewLocus.replaces[0].replaceAt : '';
292
- if (breakoutReplaceAt && newLocusReplaceAt && breakoutReplaceAt > newLocusReplaceAt) {
293
- LoggerProxy.logger.log(
294
- `Meetings:index#isNeedHandleMainLocus --> this is expired main joined status locus_dto replacedAt ${newLocusReplaceAt} bo replacedAt ${breakoutReplaceAt}`
295
- );
296
-
297
- return false;
298
- }
299
- }
300
-
301
- return true;
302
- }
303
- if (isBreakoutLocusJoinThisDevice) {
304
- LoggerProxy.logger.log(
305
- `Meetings:index#isNeedHandleMainLocus --> there is active breakout session and joined on this device, and don't need to handle main session: ${breakoutUrl}`
306
- );
307
-
308
- return false;
309
- }
310
- if (isSelfMoved && (newLocus?.self?.removed || isResourceMovedOnThisDevice)) {
311
- LoggerProxy.logger.log(
312
- 'Meetings:index#isNeedHandleMainLocus --> self moved main locus with self removed status or with device resource moved, not need to handle'
313
- );
314
-
315
- return false;
316
- }
317
- if (isSelfJoined && isResourceMovedOnThisDevice) {
318
- LoggerProxy.logger.log(
319
- 'Meetings:index#isNeedHandleMainLocus --> self device left&moved in main locus with self joined status, not need to handle'
320
- );
321
-
322
- return false;
323
- }
324
- LoggerProxy.logger.log(
325
- 'Meetings:index#isNeedHandleMainLocus --> this is a normal main session locusDTO update case'
326
- );
327
-
328
- return true;
329
- }
330
-
331
- /**
332
- * check whether you need to handle this locus data or not
333
- * @param {Object} meeting old locus data
334
- * @param {Object} newLocus new locus data
335
- * @returns {boolean}
336
- * @private
337
- * @memberof Meetings
338
- */
339
- private isNeedHandleLocusDTO(meeting: any, newLocus: any) {
340
- if (newLocus) {
341
- const isNewLocusAsBreakout = MeetingsUtil.isBreakoutLocusDTO(newLocus);
342
- const isSelfMoved = newLocus?.self?.state === _LEFT_ && newLocus?.self?.reason === _MOVED_;
343
- if (!meeting) {
344
- if (isNewLocusAsBreakout) {
345
- LoggerProxy.logger.log(
346
- `Meetings:index#isNeedHandleLocusDTO --> the first breakout session locusDTO active status: ${newLocus.fullState?.active}`
347
- );
348
-
349
- return newLocus.self?.state === _JOINED_;
350
- }
351
-
352
- return this.isNeedHandleMainLocus(meeting, newLocus);
353
- }
354
- if (!isNewLocusAsBreakout) {
355
- return this.isNeedHandleMainLocus(meeting, newLocus);
356
- }
357
-
358
- return !isSelfMoved;
359
- }
360
-
361
- return true;
362
- }
363
-
364
- /**
365
- * get corresponding meeting object by locus data
202
+ * handle locus events and takes meeting actions with them as they come in
366
203
  * @param {Object} data a locus event
367
204
  * @param {String} data.locusUrl
368
205
  * @param {Object} data.locus
369
- * @returns {Object}
206
+ * @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
207
+ * @param {String} data.eventType
208
+ * @returns {undefined}
370
209
  * @private
371
210
  * @memberof Meetings
372
211
  */
373
- getCorrespondingMeetingByLocus(data) {
212
+ private handleLocusEvent(data: {locusUrl: string; locus: any}, useRandomDelayForInfo = false) {
213
+ let meeting = null;
214
+
374
215
  // getting meeting by correlationId. This will happen for the new event
375
216
  // Either the locus
376
217
  // TODO : Add check for the callBack Address
377
- return (
218
+ meeting =
378
219
  this.meetingCollection.getByKey(LOCUS_URL, data.locusUrl) ||
379
220
  // @ts-ignore
380
221
  this.meetingCollection.getByKey(
@@ -390,24 +231,7 @@ export default class Meetings extends WebexPlugin {
390
231
  ) ||
391
232
  (data.locus.info?.isUnifiedSpaceMeeting
392
233
  ? undefined
393
- : this.meetingCollection.getByKey(CONVERSATION_URL, data.locus.conversationUrl)) ||
394
- this.meetingCollection.getByKey(MEETINGNUMBER, data.locus?.info?.webExMeetingId)
395
- );
396
- }
397
-
398
- /**
399
- * handle locus events and takes meeting actions with them as they come in
400
- * @param {Object} data a locus event
401
- * @param {String} data.locusUrl
402
- * @param {Object} data.locus
403
- * @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
404
- * @param {String} data.eventType
405
- * @returns {undefined}
406
- * @private
407
- * @memberof Meetings
408
- */
409
- private handleLocusEvent(data: {locusUrl: string; locus: any}, useRandomDelayForInfo = false) {
410
- let meeting = this.getCorrespondingMeetingByLocus(data);
234
+ : this.meetingCollection.getByKey(CONVERSATION_URL, data.locus.conversationUrl));
411
235
 
412
236
  // Special case when locus has got replaced, This only happend once if a replace locus exists
413
237
  // https://sqbu-github.cisco.com/WebExSquared/locus/wiki/Locus-changing-mid-call
@@ -420,16 +244,6 @@ export default class Meetings extends WebexPlugin {
420
244
  );
421
245
  }
422
246
 
423
- if (meeting && !MeetingsUtil.isBreakoutLocusDTO(data.locus)) {
424
- meeting.locusInfo.updateMainSessionLocusCache(data.locus);
425
- }
426
- if (!this.isNeedHandleLocusDTO(meeting, data.locus)) {
427
- LoggerProxy.logger.log(
428
- `Meetings:index#handleLocusEvent --> doesn't need to process locus event`
429
- );
430
-
431
- return;
432
- }
433
247
  if (!meeting) {
434
248
  // TODO: create meeting when we get a meeting object
435
249
  // const checkForEnded = (locus) => {
@@ -486,7 +300,6 @@ export default class Meetings extends WebexPlugin {
486
300
 
487
301
  // It's a new meeting so initialize the locus data
488
302
  meeting.locusInfo.initialSetup(data.locus);
489
- this.checkHandleBreakoutLocus(data.locus);
490
303
  })
491
304
  .catch((e) => {
492
305
  LoggerProxy.logger.error(e);
@@ -496,15 +309,10 @@ export default class Meetings extends WebexPlugin {
496
309
  // because the other user left so before sending 'added' event make sure it exists in the collection
497
310
 
498
311
  if (this.getMeetingByType(_ID_, meeting.id)) {
499
- // @ts-ignore
500
- this.webex.internal.newMetrics.submitClientEvent({
501
- name: 'client.call.remote-started',
502
- payload: {
503
- trigger: 'mercury-event',
504
- },
505
- options: {
506
- meetingId: meeting.id,
507
- },
312
+ Metrics.postEvent({
313
+ event: eventType.REMOTE_STARTED,
314
+ meeting,
315
+ data: {trigger: trigger.MERCURY_EVENT},
508
316
  });
509
317
  Trigger.trigger(
510
318
  this,
@@ -584,7 +392,7 @@ export default class Meetings extends WebexPlugin {
584
392
 
585
393
  // @ts-ignore
586
394
  this.webex.internal.mercury.on(ONLINE, () => {
587
- this.syncMeetings({keepOnlyLocusMeetings: false});
395
+ this.syncMeetings();
588
396
  });
589
397
 
590
398
  // @ts-ignore
@@ -623,9 +431,6 @@ export default class Meetings extends WebexPlugin {
623
431
  // @ts-ignore
624
432
  LoggerProxy.set(this.webex.logger);
625
433
 
626
- mediaLogger = new MediaLogger();
627
- setLogger(mediaLogger);
628
-
629
434
  /**
630
435
  * The MeetingInfo object to interact with server
631
436
  * @instance
@@ -657,7 +462,7 @@ export default class Meetings extends WebexPlugin {
657
462
 
658
463
  MeetingsUtil.checkH264Support({disableNotifications: true});
659
464
  // @ts-ignore
660
- Metrics.initialSetup(this.webex);
465
+ Metrics.initialSetup(this.meetingCollection, this.webex);
661
466
  });
662
467
  }
663
468
 
@@ -682,38 +487,35 @@ export default class Meetings extends WebexPlugin {
682
487
  }
683
488
 
684
489
  /**
685
- * API to toggle starting adhoc meeting
686
- * @param {Boolean} changeState
490
+ * API to enable or disable TURN discovery
491
+ * @param {Boolean} enable
687
492
  * @private
688
493
  * @memberof Meetings
689
494
  * @returns {undefined}
690
495
  */
691
- private _toggleAdhocMeetings(changeState: boolean) {
692
- if (typeof changeState !== 'boolean') {
496
+ private _toggleTurnDiscovery(enable: boolean) {
497
+ if (typeof enable !== 'boolean') {
693
498
  return;
694
499
  }
695
500
  // @ts-ignore
696
- if (this.config?.experimental?.enableAdhocMeetings !== changeState) {
697
- // @ts-ignore
698
- this.config.experimental.enableAdhocMeetings = changeState;
699
- }
501
+ this.config.experimental.enableTurnDiscovery = enable;
700
502
  }
701
503
 
702
504
  /**
703
- * API to toggle TCP reachability, needs to be called before webex.meetings.register()
704
- * @param {Boolean} newValue
505
+ * API to toggle starting adhoc meeting
506
+ * @param {Boolean} changeState
705
507
  * @private
706
508
  * @memberof Meetings
707
509
  * @returns {undefined}
708
510
  */
709
- private _toggleTcpReachability(newValue: boolean) {
710
- if (typeof newValue !== 'boolean') {
511
+ private _toggleAdhocMeetings(changeState: boolean) {
512
+ if (typeof changeState !== 'boolean') {
711
513
  return;
712
514
  }
713
515
  // @ts-ignore
714
- if (this.config.experimental.enableTcpReachability !== newValue) {
516
+ if (this.config?.experimental?.enableAdhocMeetings !== changeState) {
715
517
  // @ts-ignore
716
- this.config.experimental.enableTcpReachability = newValue;
518
+ this.config.experimental.enableAdhocMeetings = changeState;
717
519
  }
718
520
  }
719
521
 
@@ -829,36 +631,6 @@ export default class Meetings extends WebexPlugin {
829
631
  );
830
632
  }
831
633
 
832
- /**
833
- * Creates a noise reduction effect
834
- *
835
- * @param {INoiseReductionEffect} options optional custom effect options
836
- * @returns {Promise<effect>} noise reduction effect.
837
- * @public
838
- * @memberof Meetings
839
- */
840
- createNoiseReductionEffect = async (options?: INoiseReductionEffect) => {
841
- // @ts-ignore
842
- const authToken = this.webex.credentials.supertoken.access_token;
843
-
844
- return new mediaHelpersModule.NoiseReductionEffect({authToken, ...options});
845
- };
846
-
847
- /**
848
- * Creates a virtual background effect
849
- *
850
- * @param {IVirtualBackgroundEffect} options optional custom effect options
851
- * @returns {Promise<effect>} virtual background effect.
852
- * @public
853
- * @memberof Meetings
854
- */
855
- createVirtualBackgroundEffect = async (options?: IVirtualBackgroundEffect) => {
856
- // @ts-ignore
857
- const authToken = this.webex.credentials.supertoken.access_token;
858
-
859
- return new mediaHelpersModule.VirtualBackgroundEffect({authToken, ...options});
860
- };
861
-
862
634
  /**
863
635
  * Uploads logs to the webex services for tracking
864
636
  * @param {Object} [options={}]
@@ -873,10 +645,8 @@ export default class Meetings extends WebexPlugin {
873
645
  */
874
646
  uploadLogs(
875
647
  options: {
876
- autoupload?: boolean;
877
648
  callStart?: string;
878
649
  feedbackId?: string;
879
- locussessionid?: string;
880
650
  locusId?: string;
881
651
  correlationId?: string;
882
652
  meetingId?: string;
@@ -893,7 +663,6 @@ export default class Meetings extends WebexPlugin {
893
663
  'Meetings:index#uploadLogs --> Upload logs for meeting completed.',
894
664
  uploadResult
895
665
  );
896
- Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.UPLOAD_LOGS_SUCCESS, options);
897
666
  Trigger.trigger(
898
667
  this,
899
668
  {
@@ -928,7 +697,8 @@ export default class Meetings extends WebexPlugin {
928
697
  );
929
698
 
930
699
  Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.UPLOAD_LOGS_FAILURE, {
931
- ...options,
700
+ // @ts-ignore - seems like typo
701
+ meetingId: options.meetingsId,
932
702
  reason: uploadError.message,
933
703
  stack: uploadError.stack,
934
704
  code: uploadError.code,
@@ -936,6 +706,17 @@ export default class Meetings extends WebexPlugin {
936
706
  });
937
707
  }
938
708
 
709
+ /**
710
+ * initializes the reachability instance for Meetings
711
+ * @returns {undefined}
712
+ * @public
713
+ * @memberof Meetings
714
+ */
715
+ setReachability() {
716
+ // @ts-ignore
717
+ this.reachability = new Reachability(this.webex);
718
+ }
719
+
939
720
  /**
940
721
  * gets the reachability instance for Meetings
941
722
  * @returns {Reachability}
@@ -953,6 +734,10 @@ export default class Meetings extends WebexPlugin {
953
734
  * @memberof Meetings
954
735
  */
955
736
  startReachability() {
737
+ if (!this.reachability) {
738
+ this.setReachability();
739
+ }
740
+
956
741
  return this.getReachability().gatherReachability();
957
742
  }
958
743
 
@@ -976,30 +761,15 @@ export default class Meetings extends WebexPlugin {
976
761
  * @memberof Meetings
977
762
  */
978
763
  fetchUserPreferredWebexSite() {
979
- return this.request.getMeetingPreferences().then((res) => {
980
- if (res) {
981
- this.preferredWebexSite = MeetingsUtil.parseDefaultSiteFromMeetingPreferences(res);
982
- }
983
-
984
- // fall back to getting the preferred site from the user information
985
- if (!this.preferredWebexSite) {
986
- // @ts-ignore
987
- return this.webex.internal.user
988
- .get()
989
- .then((user) => {
990
- const preferredWebexSite =
991
- user?.userPreferences?.userPreferencesItems?.preferredWebExSite;
992
- if (preferredWebexSite) {
993
- this.preferredWebexSite = preferredWebexSite;
994
- } else {
995
- throw new Error('site not found');
996
- }
997
- })
998
- .catch(() => {
999
- LoggerProxy.logger.error(
1000
- 'Failed to fetch preferred site from user - no site will be set'
1001
- );
1002
- });
764
+ // @ts-ignore
765
+ return this.webex.people._getMe().then((me) => {
766
+ const isGuestUser = me.type === 'appuser';
767
+ if (!isGuestUser) {
768
+ return this.request.getMeetingPreferences().then((res) => {
769
+ if (res) {
770
+ this.preferredWebexSite = MeetingsUtil.parseDefaultSiteFromMeetingPreferences(res);
771
+ }
772
+ });
1003
773
  }
1004
774
 
1005
775
  return Promise.resolve();
@@ -1012,7 +782,6 @@ export default class Meetings extends WebexPlugin {
1012
782
  * @public
1013
783
  * @memberof Meetings
1014
784
  */
1015
-
1016
785
  getPersonalMeetingRoom() {
1017
786
  return this.personalMeetingRoom;
1018
787
  }
@@ -1043,55 +812,29 @@ export default class Meetings extends WebexPlugin {
1043
812
  }
1044
813
 
1045
814
  /**
1046
- * Create a meeting or return an existing meeting.
1047
- *
1048
- * When meeting info passed it should be complete, e.g.: fetched after password or captcha provided
1049
- *
1050
- * @param {string} destination - sipURL, phonenumber, or locus object}
815
+ * Create a meeting.
816
+ * @param {string} destination - sipURL, spaceId, phonenumber, or locus object}
1051
817
  * @param {string} [type] - the optional specified type, such as locusId
1052
818
  * @param {Boolean} useRandomDelayForInfo - whether a random delay should be added to fetching meeting info
1053
- * @param {Object} infoExtraParams extra parameters to be provided when fetching meeting info
1054
- * @param {string} correlationId - the optional specified correlationId (callStateForMetrics.correlationId can be provided instead)
1055
- * @param {Boolean} failOnMissingMeetingInfo - whether to throw an error if meeting info fails to fetch (for calls that are not 1:1 or content share)
1056
- * @param {CallStateForMetrics} callStateForMetrics - information about call state for metrics
1057
- * @param {Object} [meetingInfo] - Pre-fetched complete meeting info
1058
- * @param {String} [meetingLookupUrl] - meeting info prefetch url
1059
819
  * @returns {Promise<Meeting>} A new Meeting.
1060
820
  * @public
1061
821
  * @memberof Meetings
1062
822
  */
1063
- public create(
1064
- destination: string,
1065
- type: string = null,
1066
- useRandomDelayForInfo = false,
1067
- infoExtraParams = {},
1068
- correlationId: string = undefined,
1069
- failOnMissingMeetingInfo = false,
1070
- callStateForMetrics: CallStateForMetrics = undefined,
1071
- meetingInfo = undefined,
1072
- meetingLookupUrl = undefined
1073
- ) {
823
+ public create(destination: string, type: string = null, useRandomDelayForInfo = false) {
1074
824
  // TODO: type should be from a dictionary
1075
825
 
1076
826
  // Validate meeting information based on the provided destination and
1077
827
  // type. This must be performed prior to determining if the meeting is
1078
828
  // found in the collection, as we mutate the destination for hydra person
1079
829
  // id values.
1080
- if (correlationId) {
1081
- callStateForMetrics = {...(callStateForMetrics || {}), correlationId};
1082
- }
1083
-
1084
830
  return (
1085
831
  this.meetingInfo
1086
832
  .fetchInfoOptions(destination, type)
1087
833
  // Catch a failure to fetch info options.
1088
834
  .catch((error) => {
1089
- LoggerProxy.logger.error(
1090
- `Meetings:index#create --> ERROR, unable to determine info options: ${error.message}`
835
+ LoggerProxy.logger.info(
836
+ `Meetings:index#create --> INFO, unable to determine info options: ${error.message}`
1091
837
  );
1092
- if (error instanceof SpaceIDDeprecatedError) {
1093
- throw new SpaceIDDeprecatedError();
1094
- }
1095
838
  })
1096
839
  .then((options: any = {}) => {
1097
840
  // Normalize the destination.
@@ -1122,61 +865,49 @@ export default class Meetings extends WebexPlugin {
1122
865
  // Validate if a meeting was found.
1123
866
  if (!meeting) {
1124
867
  // Create a meeting based on the normalized destination and type.
1125
- return this.createMeeting(
1126
- targetDest,
1127
- type,
1128
- useRandomDelayForInfo,
1129
- infoExtraParams,
1130
- callStateForMetrics,
1131
- failOnMissingMeetingInfo,
1132
- meetingInfo,
1133
- meetingLookupUrl
1134
- ).then((createdMeeting: any) => {
1135
- // If the meeting was successfully created.
1136
- if (createdMeeting && createdMeeting.on) {
1137
- // Create a destruction event for the meeting.
1138
- createdMeeting.on(EVENTS.DESTROY_MEETING, (payload) => {
1139
- // @ts-ignore
1140
- if (this.config.autoUploadLogs) {
1141
- this.uploadLogs({
1142
- callStart: createdMeeting.locusInfo?.fullState?.lastActive,
1143
- locussessionid: createdMeeting.locusInfo?.fullState?.sessionId,
1144
- correlationId: createdMeeting.correlationId,
1145
- feedbackId: createdMeeting.correlationId,
1146
- locusId: createdMeeting.locusId,
1147
- meetingId: createdMeeting.locusInfo?.info?.webExMeetingId,
1148
- autoupload: true,
1149
- }).then(() => this.destroy(createdMeeting, payload.reason));
1150
- } else {
1151
- this.destroy(createdMeeting, payload.reason);
1152
- }
1153
- });
1154
-
1155
- createdMeeting.on(EVENTS.REQUEST_UPLOAD_LOGS, (meetingInstance) => {
1156
- // @ts-ignore
1157
- if (this.config.autoUploadLogs) {
1158
- this.uploadLogs({
1159
- callStart: meetingInstance?.locusInfo?.fullState?.lastActive,
1160
- locussessionid: meetingInstance?.locusInfo?.fullState?.sessionId,
1161
- correlationId: meetingInstance.correlationId,
1162
- feedbackId: meetingInstance.correlationId,
1163
- locusId: meetingInstance.locusId,
1164
- meetingId: meetingInstance.locusInfo?.info?.webExMeetingId,
1165
- autoupload: true,
1166
- });
1167
- }
1168
- });
1169
- } else {
1170
- LoggerProxy.logger.error(
1171
- `Meetings:index#create --> ERROR, meeting does not have on method, will not be destroyed, meeting cleanup impossible for meeting: ${meeting}`
1172
- );
868
+ return this.createMeeting(targetDest, type, useRandomDelayForInfo).then(
869
+ (createdMeeting: any) => {
870
+ // If the meeting was successfully created.
871
+ if (createdMeeting && createdMeeting.on) {
872
+ // Create a destruction event for the meeting.
873
+ createdMeeting.on(EVENTS.DESTROY_MEETING, (payload) => {
874
+ // @ts-ignore
875
+ if (this.config.autoUploadLogs) {
876
+ this.uploadLogs({
877
+ callStart: createdMeeting.locusInfo?.fullState?.lastActive,
878
+ correlationId: createdMeeting.correlationId,
879
+ feedbackId: createdMeeting.correlationId,
880
+ locusId: createdMeeting.locusId,
881
+ meetingId: createdMeeting.locusInfo?.info?.webExMeetingId,
882
+ }).then(() => this.destroy(createdMeeting, payload.reason));
883
+ } else {
884
+ this.destroy(createdMeeting, payload.reason);
885
+ }
886
+ });
887
+
888
+ createdMeeting.on(EVENTS.REQUEST_UPLOAD_LOGS, (meetingInstance) => {
889
+ // @ts-ignore
890
+ if (this.config.autoUploadLogs) {
891
+ this.uploadLogs({
892
+ callStart: meetingInstance?.locusInfo?.fullState?.lastActive,
893
+ correlationId: meetingInstance.correlationId,
894
+ feedbackId: meetingInstance.correlationId,
895
+ locusId: meetingInstance.locusId,
896
+ meetingId: meetingInstance.locusInfo?.info?.webExMeetingId,
897
+ });
898
+ }
899
+ });
900
+ } else {
901
+ LoggerProxy.logger.error(
902
+ `Meetings:index#create --> ERROR, meeting does not have on method, will not be destroyed, meeting cleanup impossible for meeting: ${meeting}`
903
+ );
904
+ }
905
+
906
+ // Return the newly created meeting.
907
+ return Promise.resolve(createdMeeting);
1173
908
  }
1174
-
1175
- // Return the newly created meeting.
1176
- return Promise.resolve(createdMeeting);
1177
- });
909
+ );
1178
910
  }
1179
- meeting.setCallStateForMetrics(callStateForMetrics);
1180
911
 
1181
912
  // Return the existing meeting.
1182
913
  return Promise.resolve(meeting);
@@ -1185,18 +916,9 @@ export default class Meetings extends WebexPlugin {
1185
916
  }
1186
917
 
1187
918
  /**
1188
- * Create meeting
1189
- *
1190
- * When meeting info passed it should be complete, e.g.: fetched after password or captcha provided
1191
- *
1192
919
  * @param {String} destination see create()
1193
920
  * @param {String} type see create()
1194
921
  * @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
1195
- * @param {Object} infoExtraParams extra parameters to be provided when fetching meeting info
1196
- * @param {CallStateForMetrics} callStateForMetrics - information about call state for metrics
1197
- * @param {Boolean} failOnMissingMeetingInfo - whether to throw an error if meeting info fails to fetch (for calls that are not 1:1 or content share)
1198
- * @param {Object} [meetingInfo] - Pre-fetched complete meeting info
1199
- * @param {String} [meetingLookupUrl] - meeting info prefetch url
1200
922
  * @returns {Promise} a new meeting instance complete with meeting info and destination
1201
923
  * @private
1202
924
  * @memberof Meetings
@@ -1204,12 +926,7 @@ export default class Meetings extends WebexPlugin {
1204
926
  private async createMeeting(
1205
927
  destination: any,
1206
928
  type: string = null,
1207
- useRandomDelayForInfo = false,
1208
- infoExtraParams = {},
1209
- callStateForMetrics: CallStateForMetrics = undefined,
1210
- failOnMissingMeetingInfo = false,
1211
- meetingInfo = undefined,
1212
- meetingLookupUrl = undefined
929
+ useRandomDelayForInfo = false
1213
930
  ) {
1214
931
  const meeting = new Meeting(
1215
932
  {
@@ -1219,11 +936,11 @@ export default class Meetings extends WebexPlugin {
1219
936
  deviceUrl: this.webex.internal.device.url,
1220
937
  // @ts-ignore
1221
938
  orgId: this.webex.internal.device.orgId,
939
+ roapSeq: 0,
1222
940
  locus: type === _LOCUS_ID_ ? destination : null, // pass the locus object if present
1223
941
  meetingInfoProvider: this.meetingInfo,
1224
942
  destination,
1225
943
  destinationType: type,
1226
- callStateForMetrics,
1227
944
  },
1228
945
  {
1229
946
  // @ts-ignore
@@ -1255,45 +972,22 @@ export default class Meetings extends WebexPlugin {
1255
972
  const isMeetingActive = !!destination.fullState?.active;
1256
973
  // @ts-ignore
1257
974
  const {enableUnifiedMeetings} = this.config.experimental;
1258
- const meetingInfoOptions = {
1259
- extraParams: infoExtraParams,
1260
- sendCAevents: !!callStateForMetrics?.correlationId, // if client sends correlation id as argument of public create(), then it means that this meeting creation is part of a pre-join intent from user
1261
- };
1262
-
1263
- if (meetingInfo) {
1264
- meeting.injectMeetingInfo(meetingInfo, meetingInfoOptions, meetingLookupUrl);
1265
- } else if (
1266
- enableUnifiedMeetings &&
1267
- !isMeetingActive &&
1268
- useRandomDelayForInfo &&
1269
- waitingTime > 0
1270
- ) {
975
+
976
+ if (enableUnifiedMeetings && !isMeetingActive && useRandomDelayForInfo && waitingTime > 0) {
1271
977
  meeting.fetchMeetingInfoTimeoutId = setTimeout(
1272
- () => meeting.fetchMeetingInfo(meetingInfoOptions),
978
+ () => meeting.fetchMeetingInfo({}),
1273
979
  waitingTime
1274
980
  );
1275
981
  meeting.parseMeetingInfo(undefined, destination);
1276
982
  } else {
1277
- await meeting.fetchMeetingInfo(meetingInfoOptions);
983
+ await meeting.fetchMeetingInfo({});
1278
984
  }
1279
985
  } catch (err) {
1280
- if (
1281
- !(err instanceof CaptchaError) &&
1282
- !(err instanceof PasswordError) &&
1283
- !(err instanceof PermissionError)
1284
- ) {
986
+ if (!(err instanceof CaptchaError) && !(err instanceof PasswordError)) {
987
+ // if there is no meeting info we assume its a 1:1 call or wireless share
1285
988
  LoggerProxy.logger.info(
1286
989
  `Meetings:index#createMeeting --> Info Unable to fetch meeting info for ${destination}.`
1287
990
  );
1288
- if (failOnMissingMeetingInfo) {
1289
- LoggerProxy.logger.info(
1290
- `Meetings:index#createMeeting --> Destroying meeting due to missing meeting info.`
1291
- );
1292
- // @ts-ignore
1293
- this.destroy(meeting, MEETING_REMOVED_REASON.MISSING_MEETING_INFO);
1294
- throw new NoMeetingInfoError();
1295
- }
1296
- // if there is no meeting info and no error should be thrown then we assume its a 1:1 call or wireless share
1297
991
  LoggerProxy.logger.info(
1298
992
  'Meetings:index#createMeeting --> Info assuming this destination is a 1:1 or wireless share'
1299
993
  );
@@ -1346,7 +1040,7 @@ export default class Meetings extends WebexPlugin {
1346
1040
  //
1347
1041
  // Our job is to determine the appropriate one
1348
1042
  // and its corresponding service so that developers
1349
- // need only sipURL to get a meeting
1043
+ // need only sipURL or spaceID to get a meeting
1350
1044
  // and its ID, but have the option to use createWithType()
1351
1045
  // and specify those types to get meetingInfo
1352
1046
  }
@@ -1385,116 +1079,38 @@ export default class Meetings extends WebexPlugin {
1385
1079
 
1386
1080
  /**
1387
1081
  * syncs all the meeting from server
1388
- * @param {boolean} keepOnlyLocusMeetings - whether the sync should keep only locus meetings or any other meeting in meetingCollection
1389
- * @returns {Promise<void>}
1082
+ * @returns {undefined}
1390
1083
  * @public
1391
1084
  * @memberof Meetings
1392
1085
  */
1393
- public syncMeetings({keepOnlyLocusMeetings = true} = {}): Promise<void> {
1394
- return this.request
1395
- .getActiveMeetings()
1396
- .then((locusArray) => {
1397
- const activeLocusUrl = [];
1398
-
1399
- if (locusArray?.loci && locusArray.loci.length > 0) {
1400
- const lociToUpdate = this.sortLocusArrayToUpdate(locusArray.loci);
1401
- lociToUpdate.forEach((locus) => {
1402
- activeLocusUrl.push(locus.url);
1403
- this.handleLocusEvent({
1404
- locus,
1405
- locusUrl: locus.url,
1406
- });
1086
+ public syncMeetings() {
1087
+ return this.request.getActiveMeetings().then((locusArray) => {
1088
+ const activeLocusUrl = [];
1089
+
1090
+ if (locusArray?.loci && locusArray.loci.length > 0) {
1091
+ locusArray.loci.forEach((locus) => {
1092
+ activeLocusUrl.push(locus.url);
1093
+ this.handleLocusEvent({
1094
+ locus,
1095
+ locusUrl: locus.url,
1407
1096
  });
1408
- }
1409
- const meetingsCollection = this.meetingCollection.getAll();
1097
+ });
1098
+ }
1099
+ const meetingsCollection = this.meetingCollection.getAll();
1410
1100
 
1411
- if (Object.keys(meetingsCollection).length > 0) {
1412
- // Sometimes the mercury events are lost after mercury reconnect
1413
- // Remove any Locus meetings that are not returned by Locus
1414
- // (they had a locusUrl previously but are no longer active) in the sync
1415
- for (const meeting of Object.values(meetingsCollection)) {
1101
+ if (Object.keys(meetingsCollection).length > 0) {
1102
+ // Some time the mercury event is missed after mercury reconnect
1103
+ // if sync returns no locus then clear all the meetings
1104
+ for (const meeting of Object.values(meetingsCollection)) {
1105
+ // @ts-ignore
1106
+ if (!activeLocusUrl.includes(meeting.locusUrl)) {
1107
+ // destroy function also uploads logs
1416
1108
  // @ts-ignore
1417
- const {locusUrl} = meeting;
1418
- if ((keepOnlyLocusMeetings || locusUrl) && !activeLocusUrl.includes(locusUrl)) {
1419
- // destroy function also uploads logs
1420
- // @ts-ignore
1421
- this.destroy(meeting, MEETING_REMOVED_REASON.NO_MEETINGS_TO_SYNC);
1422
- }
1109
+ this.destroy(meeting, MEETING_REMOVED_REASON.NO_MEETINGS_TO_SYNC);
1423
1110
  }
1424
1111
  }
1425
- })
1426
- .catch((error) => {
1427
- LoggerProxy.logger.error(
1428
- `Meetings:index#syncMeetings --> failed to sync meetings, ${error}`
1429
- );
1430
- throw new Error(error);
1431
- });
1432
- }
1433
-
1434
- /**
1435
- * sort out locus array for initial creating
1436
- * @param {Array} loci original locus array
1437
- * @returns {undefined}
1438
- * @public
1439
- * @memberof Meetings
1440
- */
1441
- sortLocusArrayToUpdate(loci: any[]) {
1442
- const mainLoci = loci.filter((locus) => !MeetingsUtil.isBreakoutLocusDTO(locus));
1443
- const breakoutLoci = loci.filter((locus) => MeetingsUtil.isValidBreakoutLocus(locus));
1444
- this.breakoutLocusForHandleLater = [];
1445
- const lociToUpdate = [...mainLoci];
1446
- breakoutLoci.forEach((breakoutLocus) => {
1447
- const associateMainLocus = mainLoci.find(
1448
- (mainLocus) => mainLocus.controls?.breakout?.url === breakoutLocus.controls?.breakout?.url
1449
- );
1450
- const existCorrespondingMeeting = this.getCorrespondingMeetingByLocus({
1451
- locus: breakoutLocus,
1452
- locusUrl: breakoutLocus.url,
1453
- });
1454
-
1455
- if (associateMainLocus && !existCorrespondingMeeting) {
1456
- // if exists both main session and breakout session locus of the same non-exist meeting, handle main locus first,
1457
- // after meeting create with main locus, then handle the associate breakout locus.
1458
- // if only handle breakout locus, will miss some date
1459
- this.breakoutLocusForHandleLater.push(breakoutLocus);
1460
- } else {
1461
- lociToUpdate.push(breakoutLocus);
1462
1112
  }
1463
1113
  });
1464
-
1465
- return lociToUpdate;
1466
- }
1467
-
1468
- /**
1469
- * check breakout locus which waiting for main locus's meeting to be created, then handle the breakout locus
1470
- * @param {Object} newCreatedLocus the locus which just create meeting object of it
1471
- * @returns {undefined}
1472
- * @public
1473
- * @memberof Meetings
1474
- */
1475
- checkHandleBreakoutLocus(newCreatedLocus) {
1476
- if (
1477
- !newCreatedLocus ||
1478
- !this.breakoutLocusForHandleLater ||
1479
- !this.breakoutLocusForHandleLater.length
1480
- ) {
1481
- return;
1482
- }
1483
- if (MeetingsUtil.isBreakoutLocusDTO(newCreatedLocus)) {
1484
- return;
1485
- }
1486
- const existIndex = this.breakoutLocusForHandleLater.findIndex(
1487
- (breakoutLocus) =>
1488
- breakoutLocus.controls?.breakout?.url === newCreatedLocus.controls?.breakout?.url
1489
- );
1490
-
1491
- if (existIndex < 0) {
1492
- return;
1493
- }
1494
-
1495
- const associateBreakoutLocus = this.breakoutLocusForHandleLater[existIndex];
1496
- this.handleLocusEvent({locus: associateBreakoutLocus, locusUrl: associateBreakoutLocus.url});
1497
- this.breakoutLocusForHandleLater.splice(existIndex, 1);
1498
1114
  }
1499
1115
 
1500
1116
  /**
@@ -1516,15 +1132,4 @@ export default class Meetings extends WebexPlugin {
1516
1132
  getLogger() {
1517
1133
  return LoggerProxy.get();
1518
1134
  }
1519
-
1520
- /**
1521
- * Returns the first meeting it finds that has the webrtc media connection created.
1522
- * Useful for debugging in the console.
1523
- *
1524
- * @private
1525
- * @returns {Meeting} Meeting object that has a webrtc media connection, else undefined
1526
- */
1527
- getActiveWebrtcMeeting() {
1528
- return this.meetingCollection.getActiveWebrtcMeeting();
1529
- }
1530
1135
  }