@webex/plugin-meetings 2.60.0-next.9 → 2.60.1

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 (516) hide show
  1. package/README.md +8 -46
  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 -5
  54. package/dist/config.js +11 -8
  55. package/dist/config.js.map +1 -1
  56. package/dist/constants.d.ts +97 -217
  57. package/dist/constants.js +441 -416
  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 +4 -116
  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 +494 -591
  111. package/dist/meeting/index.js +2969 -4707
  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 -297
  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 -102
  122. package/dist/meeting/util.js +435 -605
  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 +21 -103
  142. package/dist/meetings/index.js +124 -486
  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 +7 -62
  193. package/dist/reachability/index.js +72 -265
  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 +231 -282
  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 +235 -101
  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 -28
  240. package/dist/statsAnalyzer/index.js +509 -374
  241. package/dist/statsAnalyzer/index.js.map +1 -1
  242. package/dist/statsAnalyzer/mqaUtil.d.ts +6 -8
  243. package/dist/statsAnalyzer/mqaUtil.js +83 -116
  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 -35
  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 -5
  253. package/src/constants.ts +97 -244
  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 -449
  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 +2482 -3929
  271. package/src/meeting/muteState.ts +138 -224
  272. package/src/meeting/request.ts +127 -207
  273. package/src/meeting/util.ts +423 -590
  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 +126 -486
  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 +45 -238
  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 -98
  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 +642 -413
  310. package/src/statsAnalyzer/mqaUtil.ts +114 -111
  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 -1389
  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 +3136 -8547
  328. package/test/unit/spec/meeting/muteState.js +213 -409
  329. package/test/unit/spec/meeting/request.js +42 -512
  330. package/test/unit/spec/meeting/utils.js +24 -741
  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 +211 -1278
  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 -598
  347. package/test/unit/spec/reconnection-manager/index.js +24 -162
  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 +76 -200
  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 +174 -188
  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/interpretation/collection.d.ts +0 -5
  395. package/dist/interpretation/collection.js +0 -22
  396. package/dist/interpretation/collection.js.map +0 -1
  397. package/dist/interpretation/index.d.ts +0 -5
  398. package/dist/interpretation/index.js +0 -365
  399. package/dist/interpretation/index.js.map +0 -1
  400. package/dist/interpretation/siLanguage.d.ts +0 -5
  401. package/dist/interpretation/siLanguage.js +0 -24
  402. package/dist/interpretation/siLanguage.js.map +0 -1
  403. package/dist/meeting/locusMediaRequest.d.ts +0 -74
  404. package/dist/meeting/locusMediaRequest.js +0 -291
  405. package/dist/meeting/locusMediaRequest.js.map +0 -1
  406. package/dist/meeting/request.type.d.ts +0 -11
  407. package/dist/meeting/request.type.js +0 -7
  408. package/dist/meeting/request.type.js.map +0 -1
  409. package/dist/meetings/meetings.types.d.ts +0 -4
  410. package/dist/meetings/meetings.types.js +0 -7
  411. package/dist/meetings/meetings.types.js.map +0 -1
  412. package/dist/member/types.d.ts +0 -32
  413. package/dist/member/types.js +0 -23
  414. package/dist/member/types.js.map +0 -1
  415. package/dist/multistream/mediaRequestManager.d.ts +0 -118
  416. package/dist/multistream/mediaRequestManager.js +0 -344
  417. package/dist/multistream/mediaRequestManager.js.map +0 -1
  418. package/dist/multistream/receiveSlot.d.ts +0 -68
  419. package/dist/multistream/receiveSlot.js +0 -200
  420. package/dist/multistream/receiveSlot.js.map +0 -1
  421. package/dist/multistream/receiveSlotManager.d.ts +0 -56
  422. package/dist/multistream/receiveSlotManager.js +0 -174
  423. package/dist/multistream/receiveSlotManager.js.map +0 -1
  424. package/dist/multistream/remoteMedia.d.ts +0 -72
  425. package/dist/multistream/remoteMedia.js +0 -268
  426. package/dist/multistream/remoteMedia.js.map +0 -1
  427. package/dist/multistream/remoteMediaGroup.d.ts +0 -47
  428. package/dist/multistream/remoteMediaGroup.js +0 -267
  429. package/dist/multistream/remoteMediaGroup.js.map +0 -1
  430. package/dist/multistream/remoteMediaManager.d.ts +0 -285
  431. package/dist/multistream/remoteMediaManager.js +0 -1211
  432. package/dist/multistream/remoteMediaManager.js.map +0 -1
  433. package/dist/multistream/sendSlotManager.d.ts +0 -61
  434. package/dist/multistream/sendSlotManager.js +0 -236
  435. package/dist/multistream/sendSlotManager.js.map +0 -1
  436. package/dist/reactions/constants.d.ts +0 -3
  437. package/dist/reactions/constants.js +0 -12
  438. package/dist/reactions/constants.js.map +0 -1
  439. package/dist/rtcMetrics/constants.d.ts +0 -4
  440. package/dist/rtcMetrics/constants.js +0 -11
  441. package/dist/rtcMetrics/constants.js.map +0 -1
  442. package/dist/rtcMetrics/index.d.ts +0 -54
  443. package/dist/rtcMetrics/index.js +0 -140
  444. package/dist/rtcMetrics/index.js.map +0 -1
  445. package/dist/webinar/collection.d.ts +0 -16
  446. package/dist/webinar/collection.js +0 -43
  447. package/dist/webinar/collection.js.map +0 -1
  448. package/dist/webinar/index.d.ts +0 -5
  449. package/dist/webinar/index.js +0 -68
  450. package/dist/webinar/index.js.map +0 -1
  451. package/src/annotation/annotation.types.ts +0 -50
  452. package/src/annotation/constants.ts +0 -36
  453. package/src/annotation/index.ts +0 -328
  454. package/src/breakouts/README.md +0 -220
  455. package/src/breakouts/breakout.ts +0 -188
  456. package/src/breakouts/collection.ts +0 -19
  457. package/src/breakouts/edit-lock-error.ts +0 -25
  458. package/src/breakouts/events.ts +0 -56
  459. package/src/breakouts/index.ts +0 -925
  460. package/src/breakouts/request.ts +0 -55
  461. package/src/breakouts/utils.ts +0 -57
  462. package/src/common/errors/no-meeting-info.ts +0 -24
  463. package/src/controls-options-manager/types.ts +0 -59
  464. package/src/index.ts +0 -40
  465. package/src/interpretation/README.md +0 -60
  466. package/src/interpretation/collection.ts +0 -19
  467. package/src/interpretation/index.ts +0 -332
  468. package/src/interpretation/siLanguage.ts +0 -18
  469. package/src/meeting/locusMediaRequest.ts +0 -313
  470. package/src/meeting/request.type.ts +0 -13
  471. package/src/meetings/meetings.types.ts +0 -12
  472. package/src/member/types.ts +0 -38
  473. package/src/multistream/mediaRequestManager.ts +0 -440
  474. package/src/multistream/receiveSlot.ts +0 -184
  475. package/src/multistream/receiveSlotManager.ts +0 -166
  476. package/src/multistream/remoteMedia.ts +0 -254
  477. package/src/multistream/remoteMediaGroup.ts +0 -284
  478. package/src/multistream/remoteMediaManager.ts +0 -1145
  479. package/src/multistream/sendSlotManager.ts +0 -170
  480. package/src/reactions/constants.ts +0 -4
  481. package/src/rtcMetrics/constants.ts +0 -3
  482. package/src/rtcMetrics/index.ts +0 -124
  483. package/src/webinar/collection.ts +0 -31
  484. package/src/webinar/index.ts +0 -62
  485. package/test/integration/spec/converged-space-meetings.js +0 -233
  486. package/test/unit/spec/annotation/index.ts +0 -418
  487. package/test/unit/spec/breakouts/breakout.ts +0 -237
  488. package/test/unit/spec/breakouts/collection.ts +0 -15
  489. package/test/unit/spec/breakouts/edit-lock-error.ts +0 -30
  490. package/test/unit/spec/breakouts/events.ts +0 -89
  491. package/test/unit/spec/breakouts/index.ts +0 -1790
  492. package/test/unit/spec/breakouts/request.ts +0 -104
  493. package/test/unit/spec/breakouts/utils.js +0 -72
  494. package/test/unit/spec/interpretation/collection.ts +0 -15
  495. package/test/unit/spec/interpretation/index.ts +0 -589
  496. package/test/unit/spec/interpretation/siLanguage.ts +0 -28
  497. package/test/unit/spec/locus-info/mediaSharesUtils.ts +0 -32
  498. package/test/unit/spec/media/index.ts +0 -290
  499. package/test/unit/spec/meeting/locusMediaRequest.ts +0 -442
  500. package/test/unit/spec/meeting-info/index.js +0 -300
  501. package/test/unit/spec/multistream/mediaRequestManager.ts +0 -1418
  502. package/test/unit/spec/multistream/receiveSlot.ts +0 -163
  503. package/test/unit/spec/multistream/receiveSlotManager.ts +0 -203
  504. package/test/unit/spec/multistream/remoteMedia.ts +0 -255
  505. package/test/unit/spec/multistream/remoteMediaGroup.ts +0 -662
  506. package/test/unit/spec/multistream/remoteMediaManager.ts +0 -1924
  507. package/test/unit/spec/multistream/sendSlotManager.ts +0 -242
  508. package/test/unit/spec/reachability/request.js +0 -68
  509. package/test/unit/spec/roap/request.ts +0 -232
  510. package/test/unit/spec/rtcMetrics/index.ts +0 -93
  511. package/test/unit/spec/webinar/collection.ts +0 -13
  512. package/test/unit/spec/webinar/index.ts +0 -60
  513. package/test/utils/constants.js +0 -9
  514. package/test/utils/integrationTestUtils.js +0 -46
  515. /package/dist/common/errors/{reclaim-host-role-errors.d.ts → reclaim-host-role-error.d.ts} +0 -0
  516. /package/src/common/errors/{reclaim-host-role-errors.ts → reclaim-host-role-error.ts} +0 -0
@@ -0,0 +1,119 @@
1
+ import {parse} from '@webex/ts-sdp';
2
+
3
+ interface IPeerConnectionUtils {
4
+ convertCLineToIpv4: (sdp: string) => string;
5
+ adjustH264Profile: (sdp: string, maxFsValue: number) => string;
6
+ }
7
+
8
+ const PeerConnectionUtils = {} as IPeerConnectionUtils;
9
+
10
+ // max-fs values for all H264 profile levels
11
+ const maxFsForProfileLevel = {
12
+ 10: 99,
13
+ 11: 396,
14
+ 12: 396,
15
+ 13: 396,
16
+ 20: 396,
17
+ 21: 792,
18
+ 22: 1620,
19
+ 30: 1620,
20
+ 31: 3600,
21
+ 32: 5120,
22
+ 40: 8192,
23
+ 41: 8192,
24
+ 42: 8704,
25
+ 50: 22080,
26
+ 51: 36864,
27
+ 52: 36864,
28
+ 60: 139264,
29
+ 61: 139264,
30
+ 62: 139264,
31
+ };
32
+
33
+ const framesPerSecond = 30;
34
+
35
+ /**
36
+ * Convert C line to IPv4
37
+ * @param {string} sdp
38
+ * @returns {string}
39
+ */
40
+ PeerConnectionUtils.convertCLineToIpv4 = (sdp: string) => {
41
+ let replaceSdp = sdp;
42
+
43
+ // TODO: remove this once linus supports Ipv6 c line.currently linus rejects SDP with c line having ipv6 candidates we are
44
+ // mocking ipv6 to ipv4 candidates
45
+ // https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-299232
46
+ replaceSdp = replaceSdp.replace(/c=IN IP6 .*/gi, 'c=IN IP4 0.0.0.0');
47
+
48
+ return replaceSdp;
49
+ };
50
+
51
+ /**
52
+ * estimate profile levels for max-fs & max-mbps values
53
+ * @param {string} sdp
54
+ * @param {number} maxFsValue
55
+ * @returns {string}
56
+ */
57
+ PeerConnectionUtils.adjustH264Profile = (sdp: string, maxFsValue: number) => {
58
+ // converting with ts-sdp parser, no munging
59
+ const parsedSdp = parse(sdp);
60
+
61
+ parsedSdp.avMedia.forEach((media) => {
62
+ if (media.type === 'video') {
63
+ media.codecs.forEach((codec) => {
64
+ if (codec.name?.toUpperCase() === 'H264') {
65
+ // there should really be just 1 fmtp line, but just in case, we process all of them
66
+ codec.fmtParams = codec.fmtParams.map((fmtp) => {
67
+ const parsedRegex = fmtp.match(/(.*)profile-level-id=(\w{4})(\w{2})(.*)/);
68
+
69
+ if (parsedRegex && parsedRegex.length === 5) {
70
+ const stuffBeforeProfileLevelId = parsedRegex[1];
71
+ const profile = parsedRegex[2].toLowerCase();
72
+ const levelId = parseInt(parsedRegex[3], 16);
73
+ const stuffAfterProfileLevelId = parsedRegex[4];
74
+
75
+ if (!maxFsForProfileLevel[levelId]) {
76
+ throw new Error(
77
+ `found unsupported h264 profile level id value in the SDP: ${levelId}`
78
+ );
79
+ }
80
+
81
+ if (maxFsForProfileLevel[levelId] === maxFsValue) {
82
+ // profile level already matches our desired max-fs value, so we don't need to do anything
83
+ return fmtp;
84
+ }
85
+ if (maxFsForProfileLevel[levelId] < maxFsValue) {
86
+ // profile level has too low max-fs, so we need to override it (this is upgrading)
87
+ return `${fmtp};max-fs=${maxFsValue};max-mbps=${maxFsValue * framesPerSecond}`;
88
+ }
89
+
90
+ // profile level has too high max-fs value, so we need to use a lower level
91
+
92
+ // find highest level that has the matching maxFs
93
+ const newLevelId = Object.keys(maxFsForProfileLevel)
94
+ .reverse()
95
+ .find((key) => maxFsForProfileLevel[key] === maxFsValue);
96
+
97
+ if (newLevelId) {
98
+ // Object.keys returns keys as strings, so we need to parse it to an int again and then convert to hex
99
+ const newLevelIdHex = parseInt(newLevelId, 10).toString(16);
100
+
101
+ return `${stuffBeforeProfileLevelId}profile-level-id=${profile}${newLevelIdHex};max-mbps=${
102
+ maxFsValue * framesPerSecond
103
+ }${stuffAfterProfileLevelId}`;
104
+ }
105
+
106
+ throw new Error(`unsupported maxFsValue: ${maxFsValue}`);
107
+ }
108
+
109
+ return fmtp;
110
+ });
111
+ }
112
+ });
113
+ }
114
+ });
115
+
116
+ return parsedSdp.toString();
117
+ };
118
+
119
+ export default PeerConnectionUtils;
@@ -4,11 +4,9 @@
4
4
 
5
5
  /* eslint-disable class-methods-use-this */
6
6
  /* globals window */
7
- import {uniq, mapValues, pick} from 'lodash';
7
+ import _ from 'lodash';
8
8
 
9
9
  import LoggerProxy from '../common/logs/logger-proxy';
10
- import MeetingUtil from '../meeting/util';
11
-
12
10
  import {ICE_GATHERING_STATE, CONNECTION_STATE, REACHABILITY} from '../constants';
13
11
 
14
12
  import ReachabilityRequest from './request';
@@ -16,56 +14,11 @@ import ReachabilityRequest from './request';
16
14
  const DEFAULT_TIMEOUT = 3000;
17
15
  const VIDEO_MESH_TIMEOUT = 1000;
18
16
 
19
- export type ReachabilityMetrics = {
20
- reachability_public_udp_success: number;
21
- reachability_public_udp_failed: number;
22
- reachability_public_tcp_success: number;
23
- reachability_public_tcp_failed: number;
24
- reachability_vmn_udp_success: number;
25
- reachability_vmn_udp_failed: number;
26
- reachability_vmn_tcp_success: number;
27
- reachability_vmn_tcp_failed: number;
28
- };
29
-
30
- // result for a specific transport protocol (like udp or tcp)
31
- export type TransportResult = {
32
- reachable?: 'true' | 'false';
33
- latencyInMilliseconds?: string;
34
- clientMediaIPs?: string[];
35
- untested?: 'true';
36
- };
37
-
38
- // reachability result for a specifc media cluster
39
- type ReachabilityResult = {
40
- udp: TransportResult;
41
- tcp: TransportResult;
42
- xtls: {
43
- untested: 'true';
44
- };
45
- };
46
- // this is the type that is required by the backend when we send them reachability results
47
- export type ReachabilityResults = Record<string, ReachabilityResult>;
48
-
49
- // this is the type used by Reachability class internally and stored in local storage
50
- type InternalReachabilityResults = Record<
51
- string,
52
- ReachabilityResult & {
53
- isVideoMesh?: boolean;
54
- }
55
- >;
56
-
57
- export type ICECandidateResult = {
58
- clusterId: string;
59
- isVideoMesh: boolean;
60
- elapsed?: string | null;
61
- publicIPs?: string[];
62
- };
63
17
  /**
64
18
  * @class Reachability
65
19
  * @export
66
20
  */
67
21
  export default class Reachability {
68
- namespace = REACHABILITY.namespace;
69
22
  webex: object;
70
23
  reachabilityRequest: any;
71
24
  clusterLatencyResults: any;
@@ -104,36 +57,28 @@ export default class Reachability {
104
57
  * @async
105
58
  * @memberof Reachability
106
59
  */
107
- public async gatherReachability(): Promise<InternalReachabilityResults> {
60
+ public async gatherReachability() {
108
61
  this.setup();
109
62
 
110
63
  // Remove stored reachability results to ensure no stale data
111
- // @ts-ignore
112
- await this.webex.boundedStorage.del(this.namespace, REACHABILITY.localStorageResult);
113
- // @ts-ignore
114
- await this.webex.boundedStorage.del(this.namespace, REACHABILITY.localStorageJoinCookie);
64
+ if (window?.localStorage?.removeItem) {
65
+ window.localStorage.removeItem(REACHABILITY.localStorage);
66
+ } else {
67
+ LoggerProxy.logger.error(
68
+ 'Reachability:index#gatherReachability --> Error in accessing LocalStorage.'
69
+ );
70
+
71
+ return {};
72
+ }
115
73
 
116
74
  // Fetch clusters and measure latency
117
75
  try {
118
- const {clusters, joinCookie} = await this.reachabilityRequest.getClusters(
119
- MeetingUtil.getIpVersion(this.webex)
120
- );
76
+ const clusters = await this.reachabilityRequest.getClusters();
121
77
 
122
78
  // Perform Reachability Check
123
79
  const results = await this.performReachabilityCheck(clusters);
124
80
 
125
- // @ts-ignore
126
- await this.webex.boundedStorage.put(
127
- this.namespace,
128
- REACHABILITY.localStorageResult,
129
- JSON.stringify(results)
130
- );
131
- // @ts-ignore
132
- await this.webex.boundedStorage.put(
133
- this.namespace,
134
- REACHABILITY.localStorageJoinCookie,
135
- JSON.stringify(joinCookie)
136
- );
81
+ window.localStorage.setItem(REACHABILITY.localStorage, JSON.stringify(results));
137
82
 
138
83
  LoggerProxy.logger.log(
139
84
  'Reachability:index#gatherReachability --> Reachability checks completed'
@@ -149,111 +94,22 @@ export default class Reachability {
149
94
  }
150
95
  }
151
96
 
152
- /**
153
- * Returns statistics about last reachability results. The returned value is an object
154
- * with a flat list of properties so that it can be easily sent with metrics
155
- *
156
- * @returns {Promise} Promise with metrics values, it never rejects/throws.
157
- */
158
- async getReachabilityMetrics(): Promise<ReachabilityMetrics> {
159
- const stats: ReachabilityMetrics = {
160
- reachability_public_udp_success: 0,
161
- reachability_public_udp_failed: 0,
162
- reachability_public_tcp_success: 0,
163
- reachability_public_tcp_failed: 0,
164
- reachability_vmn_udp_success: 0,
165
- reachability_vmn_udp_failed: 0,
166
- reachability_vmn_tcp_success: 0,
167
- reachability_vmn_tcp_failed: 0,
168
- };
169
-
170
- const updateStats = (clusterType: 'public' | 'vmn', result: ReachabilityResult) => {
171
- if (result.udp?.reachable) {
172
- const outcome = result.udp.reachable === 'true' ? 'success' : 'failed';
173
- stats[`reachability_${clusterType}_udp_${outcome}`] += 1;
174
- }
175
- if (result.tcp?.reachable) {
176
- const outcome = result.tcp.reachable === 'true' ? 'success' : 'failed';
177
- stats[`reachability_${clusterType}_tcp_${outcome}`] += 1;
178
- }
179
- };
180
-
181
- try {
182
- // @ts-ignore
183
- const resultsJson = await this.webex.boundedStorage.get(
184
- REACHABILITY.namespace,
185
- REACHABILITY.localStorageResult
186
- );
187
-
188
- const internalResults: InternalReachabilityResults = JSON.parse(resultsJson);
189
-
190
- Object.values(internalResults).forEach((result) => {
191
- updateStats(result.isVideoMesh ? 'vmn' : 'public', result);
192
- });
193
- } catch (e) {
194
- // empty storage, that's ok
195
- LoggerProxy.logger.warn(
196
- 'Roap:request#getReachabilityMetrics --> Error parsing reachability data: ',
197
- e
198
- );
199
- }
200
-
201
- return stats;
202
- }
203
-
204
- /**
205
- * Reachability results as an object in the format that backend expects
206
- *
207
- * @returns {any} reachability results that need to be sent to the backend
208
- */
209
- async getReachabilityResults(): Promise<ReachabilityResults | undefined> {
210
- let results: ReachabilityResults;
211
-
212
- // these are the only props that backend needs in the reachability results:
213
- const reachabilityResultsProps: Array<keyof ReachabilityResult> = ['udp', 'tcp', 'xtls'];
214
-
215
- try {
216
- // @ts-ignore
217
- const resultsJson = await this.webex.boundedStorage.get(
218
- REACHABILITY.namespace,
219
- REACHABILITY.localStorageResult
220
- );
221
-
222
- const internalResults: InternalReachabilityResults = JSON.parse(resultsJson);
223
-
224
- results = mapValues(internalResults, (result) => pick(result, reachabilityResultsProps));
225
- } catch (e) {
226
- // empty storage, that's ok
227
- LoggerProxy.logger.warn(
228
- 'Roap:request#attachReachabilityData --> Error parsing reachability data: ',
229
- e
230
- );
231
- }
232
-
233
- return results;
234
- }
235
-
236
97
  /**
237
98
  * fetches reachability data and checks for cluster reachability
238
99
  * @returns {boolean}
239
100
  * @public
240
101
  * @memberof Reachability
241
102
  */
242
- async isAnyPublicClusterReachable() {
103
+ isAnyClusterReachable() {
243
104
  let reachable = false;
244
- // @ts-ignore
245
- const reachabilityData = await this.webex.boundedStorage
246
- .get(this.namespace, REACHABILITY.localStorageResult)
247
- .catch(() => {});
105
+ const reachabilityData = window.localStorage.getItem(REACHABILITY.localStorage);
248
106
 
249
107
  if (reachabilityData) {
250
108
  try {
251
- const reachabilityResults: InternalReachabilityResults = JSON.parse(reachabilityData);
109
+ const reachabilityResults = JSON.parse(reachabilityData);
252
110
 
253
111
  reachable = Object.values(reachabilityResults).some(
254
- (result) =>
255
- !result.isVideoMesh &&
256
- (result.udp?.reachable === 'true' || result.tcp?.reachable === 'true')
112
+ (result: any) => result.udp?.reachable === 'true' || result.tcp?.reachable === 'true'
257
113
  );
258
114
  } catch (e) {
259
115
  LoggerProxy.logger.error(
@@ -273,7 +129,7 @@ export default class Reachability {
273
129
  * @memberof Reachability
274
130
  */
275
131
  private buildPeerConnectionConfig(cluster: any) {
276
- const iceServers = uniq(cluster.udp).map((url) => ({
132
+ const iceServers = _.uniq([...cluster.udp, ...cluster.tcp]).map((url) => ({
277
133
  username: '',
278
134
  credential: '',
279
135
  urls: [url],
@@ -334,7 +190,7 @@ export default class Reachability {
334
190
  * @private
335
191
  * @memberof Reachability
336
192
  */
337
- private getLocalSDPForClusters(clusterList: object): Promise<InternalReachabilityResults> {
193
+ private getLocalSDPForClusters(clusterList: object) {
338
194
  let clusters: any[] = [...Object.keys(clusterList)];
339
195
 
340
196
  clusters = clusters.map(async (key) => {
@@ -347,17 +203,18 @@ export default class Reachability {
347
203
  peerConnection.begin = Date.now();
348
204
  peerConnection.setLocalDescription(description);
349
205
 
350
- return this.iceGatheringState(peerConnection, cluster.isVideoMesh).catch(
351
- (iceGatheringStateError) => {
352
- LoggerProxy.logger.log(
353
- `Reachability:index#getLocalSDPForClusters --> Error in getLocalSDP : ${iceGatheringStateError}`
354
- );
355
- }
356
- );
206
+ return this.iceGatheringState(
207
+ peerConnection,
208
+ cluster.isVideoMesh ? VIDEO_MESH_TIMEOUT : DEFAULT_TIMEOUT
209
+ ).catch((iceGatheringStateError) => {
210
+ LoggerProxy.logger.log(
211
+ `Reachability:index#getLocalSDPForClusters --> Error in getLocalSDP : ${iceGatheringStateError}`
212
+ );
213
+ });
357
214
  });
358
215
 
359
216
  return Promise.all(clusters)
360
- .then(this.parseIceResultsToInternalReachabilityResults)
217
+ .then(this.parseIceResultsToReachabilityResults)
361
218
  .then((reachabilityLatencyResults) => {
362
219
  this.logUnreachableClusters();
363
220
 
@@ -433,8 +290,6 @@ export default class Reachability {
433
290
  `Reachability:index#onIceCandidate --> Successfully pinged ${peerConnection.key}:`,
434
291
  elapsed
435
292
  );
436
- // order is important
437
- this.addPublicIP(peerConnection, e.candidate.address);
438
293
  this.setLatencyAndClose(peerConnection, elapsed);
439
294
  }
440
295
  };
@@ -446,17 +301,14 @@ export default class Reachability {
446
301
  * speed.
447
302
  * @private
448
303
  * @param {RTCPeerConnection} peerConnection
449
- * @param {boolean} isVideoMesh
304
+ * @param {number} timeout
450
305
  * @returns {Promise}
451
306
  */
452
- private iceGatheringState(peerConnection: RTCPeerConnection, isVideoMesh: boolean) {
307
+ private iceGatheringState(peerConnection: RTCPeerConnection, timeout: number) {
453
308
  const ELAPSED = 'elapsed';
454
309
 
455
- const timeout = isVideoMesh ? VIDEO_MESH_TIMEOUT : DEFAULT_TIMEOUT;
456
-
457
- return new Promise<ICECandidateResult>((resolve) => {
310
+ return new Promise((resolve) => {
458
311
  const peerConnectionProxy = new window.Proxy(peerConnection, {
459
- // eslint-disable-next-line require-jsdoc
460
312
  get(target, property) {
461
313
  const targetMember = target[property];
462
314
 
@@ -469,14 +321,8 @@ export default class Reachability {
469
321
  set: (target, property, value) => {
470
322
  // only intercept elapsed property
471
323
  if (property === ELAPSED) {
472
- resolve({
473
- // @ts-ignore
474
- clusterId: peerConnection.key,
475
- isVideoMesh,
476
- // @ts-ignore
477
- publicIPs: target.publicIPs,
478
- elapsed: value,
479
- });
324
+ // @ts-ignore
325
+ resolve({clusterId: peerConnection.key, elapsed: value});
480
326
 
481
327
  return true;
482
328
  }
@@ -497,8 +343,6 @@ export default class Reachability {
497
343
 
498
344
  // Close any open peerConnections
499
345
  if (peerConnectionProxy.connectionState !== CLOSED) {
500
- // order is important
501
- this.addPublicIP(peerConnectionProxy, null);
502
346
  this.setLatencyAndClose(peerConnectionProxy, null);
503
347
  }
504
348
  }, timeout);
@@ -523,39 +367,29 @@ export default class Reachability {
523
367
 
524
368
  /**
525
369
  * Calculates time to establish connection
526
- * @param {Array<ICECandidateResult>} iceResults iceResults
370
+ * @param {array} iceResults iceResults
527
371
  * @returns {object} reachabilityMap
528
- * @protected
372
+ * @private
529
373
  * @memberof Reachability
530
374
  */
531
- protected parseIceResultsToInternalReachabilityResults(
532
- iceResults: Array<ICECandidateResult>
533
- ): InternalReachabilityResults {
375
+ private parseIceResultsToReachabilityResults(iceResults: Array<any>) {
534
376
  const reachabilityMap = {};
535
377
 
536
- iceResults.forEach(({clusterId, isVideoMesh, elapsed, publicIPs}) => {
537
- const latencyResult = {};
378
+ iceResults.forEach(({clusterId, elapsed}) => {
379
+ let latencyResult;
538
380
 
539
- if (!elapsed) {
540
- Object.assign(latencyResult, {reachable: 'false'});
381
+ if (elapsed === null) {
382
+ latencyResult = {reachable: 'false'};
541
383
  } else {
542
- Object.assign(latencyResult, {
384
+ latencyResult = {
543
385
  reachable: 'true',
544
386
  latencyInMilliseconds: elapsed.toString(),
545
- });
546
- }
547
-
548
- if (publicIPs) {
549
- Object.assign(latencyResult, {
550
- clientMediaIPs: publicIPs,
551
- });
387
+ };
552
388
  }
553
389
 
554
390
  reachabilityMap[clusterId] = {
555
391
  udp: latencyResult,
556
- tcp: {untested: 'true'},
557
- xtls: {untested: 'true'},
558
- isVideoMesh,
392
+ tcp: latencyResult,
559
393
  };
560
394
  });
561
395
 
@@ -565,11 +399,11 @@ export default class Reachability {
565
399
  /**
566
400
  * fetches reachability data
567
401
  * @param {object} clusterList
568
- * @returns {Promise<InternalReachabilityResults>} reachability check results
402
+ * @returns {Promise<localSDPData>} reachability check results
569
403
  * @private
570
404
  * @memberof Reachability
571
405
  */
572
- private performReachabilityCheck(clusterList: object): Promise<InternalReachabilityResults> {
406
+ private performReachabilityCheck(clusterList: object) {
573
407
  if (!clusterList || !Object.keys(clusterList).length) {
574
408
  return Promise.resolve({});
575
409
  }
@@ -596,33 +430,6 @@ export default class Reachability {
596
430
  });
597
431
  }
598
432
 
599
- /**
600
- * Adds public IP (client media IPs)
601
- * @param {RTCPeerConnection} peerConnection
602
- * @param {string} publicIP
603
- * @returns {void}
604
- */
605
- protected addPublicIP(peerConnection: RTCPeerConnection, publicIP?: string | null) {
606
- const modifiedPeerConnection: RTCPeerConnection & {publicIPs?: string[]} = peerConnection;
607
- const {CLOSED} = CONNECTION_STATE;
608
-
609
- if (modifiedPeerConnection.connectionState === CLOSED) {
610
- LoggerProxy.logger.log(
611
- `Reachability:index#addPublicIP --> Attempting to set publicIP of ${publicIP} on closed peerConnection.`
612
- );
613
- }
614
-
615
- if (publicIP) {
616
- if (modifiedPeerConnection.publicIPs) {
617
- modifiedPeerConnection.publicIPs.push(publicIP);
618
- } else {
619
- modifiedPeerConnection.publicIPs = [publicIP];
620
- }
621
- } else {
622
- modifiedPeerConnection.publicIPs = null;
623
- }
624
- }
625
-
626
433
  /**
627
434
  * Records latency and closes the peerConnection
628
435
  * @param {RTCPeerConnection} peerConnection
@@ -1,5 +1,5 @@
1
1
  import LoggerProxy from '../common/logs/logger-proxy';
2
- import {HTTP_VERBS, RESOURCE, API, IP_VERSION} from '../constants';
2
+ import {HTTP_VERBS, RESOURCE, API} from '../constants';
3
3
 
4
4
  export interface ClusterNode {
5
5
  isVideoMesh: boolean;
@@ -28,40 +28,31 @@ class ReachabilityRequest {
28
28
  }
29
29
 
30
30
  /**
31
- * Gets the cluster information
31
+ * gets the cluster information
32
32
  *
33
- * @param {IP_VERSION} ipVersion information about current ip network we're on
33
+ * @param {boolean} includeVideoMesh whether to include the video mesh clusters in the result or not
34
34
  * @returns {Promise}
35
35
  */
36
- getClusters = (ipVersion?: IP_VERSION): Promise<{clusters: ClusterList; joinCookie: any}> =>
36
+ getClusters = (): Promise<ClusterList> =>
37
37
  this.webex
38
38
  .request({
39
39
  method: HTTP_VERBS.GET,
40
40
  shouldRefreshAccessToken: false,
41
41
  api: API.CALLIOPEDISCOVERY,
42
42
  resource: RESOURCE.CLUSTERS,
43
- qs: {
44
- JCSupport: 1,
45
- ipver: ipVersion,
46
- },
47
43
  })
48
44
  .then((res) => {
49
- const {clusters, joinCookie} = res.body;
45
+ const {clusters} = res.body;
50
46
 
51
47
  Object.keys(clusters).forEach((key) => {
52
- clusters[key].isVideoMesh = !!res.body.clusterClasses?.hybridMedia?.includes(key);
48
+ clusters[key].isVideoMesh = res.body.clusterClasses?.hybridMedia?.includes(key);
53
49
  });
54
50
 
55
51
  LoggerProxy.logger.log(
56
- `Reachability:request#getClusters --> get clusters (ipver=${ipVersion}) successful:${JSON.stringify(
57
- clusters
58
- )}`
52
+ `Reachability:request#getClusters --> get clusters successful:${JSON.stringify(clusters)}`
59
53
  );
60
54
 
61
- return {
62
- clusters,
63
- joinCookie,
64
- };
55
+ return clusters;
65
56
  });
66
57
 
67
58
  /**
@@ -1,6 +1,6 @@
1
- import {Reaction, ReactionServerType, SkinTone, SkinToneType} from './reactions.type';
1
+ import {Reaction, ReactionType, SkinTone, SkinToneType} from './reactions.type';
2
2
 
3
- const Reactions: Record<ReactionServerType, Reaction> = {
3
+ const Reactions: Record<ReactionType, Reaction> = {
4
4
  smile: {
5
5
  type: 'smile',
6
6
  codepoints: '1F642',
@@ -31,12 +31,12 @@ const Reactions: Record<ReactionServerType, Reaction> = {
31
31
  codepoints: '1F44F',
32
32
  shortcodes: ':clap:',
33
33
  },
34
- thumb_up: {
34
+ thumbs_up: {
35
35
  type: 'thumb_up',
36
36
  codepoints: '1F44D',
37
37
  shortcodes: ':thumbsup:',
38
38
  },
39
- thumb_down: {
39
+ thumbs_down: {
40
40
  type: 'thumb_down',
41
41
  codepoints: '1F44E',
42
42
  shortcodes: ':thumbsdown:',
@@ -1,5 +1,3 @@
1
- import {REACTION_RELAY_TYPES} from './constants';
2
-
3
1
  export type EmoticonData = {
4
2
  type: string;
5
3
  codepoints?: string;
@@ -7,21 +5,20 @@ export type EmoticonData = {
7
5
  };
8
6
 
9
7
  export type SkinTone = EmoticonData;
10
-
8
+ // @ts-ignore
11
9
  export type Reaction = EmoticonData & {
12
10
  tone?: SkinTone;
13
11
  };
14
12
 
15
- // eslint-disable-next-line no-shadow
16
- export enum ReactionServerType {
13
+ export enum ReactionType {
17
14
  smile = 'smile',
18
15
  sad = 'sad',
19
16
  wow = 'wow',
20
17
  haha = 'haha',
21
18
  celebrate = 'celebrate',
22
19
  clap = 'clap',
23
- thumb_up = 'thumb_up',
24
- thumb_down = 'thumb_down',
20
+ thumbs_up = 'thumbs_up',
21
+ thumbs_down = 'thumbs_down',
25
22
  heart = 'heart',
26
23
  fire = 'fire',
27
24
  prayer = 'prayer',
@@ -29,7 +26,6 @@ export enum ReactionServerType {
29
26
  slow_down = 'slow_down',
30
27
  }
31
28
 
32
- // eslint-disable-next-line no-shadow
33
29
  export enum SkinToneType {
34
30
  normal = 'normal',
35
31
  light = 'light',
@@ -38,25 +34,3 @@ export enum SkinToneType {
38
34
  medium_dark = 'medium_dark',
39
35
  dark = 'dark',
40
36
  }
41
-
42
- export type Sender = {
43
- participantId: string;
44
- };
45
-
46
- export type ProcessedReaction = {
47
- reaction: Reaction;
48
- sender: {
49
- id: Sender['participantId'];
50
- name: string;
51
- };
52
- };
53
-
54
- type RelayEventData = {
55
- relayType: (typeof REACTION_RELAY_TYPES)['REACTION'];
56
- reaction: Reaction;
57
- sender: Sender;
58
- };
59
-
60
- export type RelayEvent = {
61
- data: RelayEventData;
62
- };