@webex/plugin-meetings 3.0.0-test.1 → 3.1.0

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 (431) hide show
  1. package/.eslintrc.js +6 -0
  2. package/babel.config.js +3 -0
  3. package/dist/annotation/constants.js +12 -20
  4. package/dist/annotation/constants.js.map +1 -1
  5. package/dist/annotation/index.js +25 -10
  6. package/dist/annotation/index.js.map +1 -1
  7. package/dist/breakouts/breakout.js +2 -3
  8. package/dist/breakouts/breakout.js.map +1 -1
  9. package/dist/breakouts/collection.js +1 -2
  10. package/dist/breakouts/collection.js.map +1 -1
  11. package/dist/breakouts/edit-lock-error.js +1 -2
  12. package/dist/breakouts/edit-lock-error.js.map +1 -1
  13. package/dist/breakouts/events.js +1 -2
  14. package/dist/breakouts/events.js.map +1 -1
  15. package/dist/breakouts/index.js +13 -14
  16. package/dist/breakouts/index.js.map +1 -1
  17. package/dist/breakouts/request.js +1 -2
  18. package/dist/breakouts/request.js.map +1 -1
  19. package/dist/breakouts/utils.js +3 -6
  20. package/dist/breakouts/utils.js.map +1 -1
  21. package/dist/common/browser-detection.js +2 -3
  22. package/dist/common/browser-detection.js.map +1 -1
  23. package/dist/common/collection.js +3 -4
  24. package/dist/common/collection.js.map +1 -1
  25. package/dist/common/config.js +1 -2
  26. package/dist/common/config.js.map +1 -1
  27. package/dist/common/errors/captcha-error.js +1 -2
  28. package/dist/common/errors/captcha-error.js.map +1 -1
  29. package/dist/common/errors/intent-to-join.js +1 -2
  30. package/dist/common/errors/intent-to-join.js.map +1 -1
  31. package/dist/common/errors/join-meeting.js +1 -2
  32. package/dist/common/errors/join-meeting.js.map +1 -1
  33. package/dist/common/errors/media.js +1 -2
  34. package/dist/common/errors/media.js.map +1 -1
  35. package/dist/common/errors/no-meeting-info.js +1 -2
  36. package/dist/common/errors/no-meeting-info.js.map +1 -1
  37. package/dist/common/errors/parameter.js +3 -4
  38. package/dist/common/errors/parameter.js.map +1 -1
  39. package/dist/common/errors/password-error.js +1 -2
  40. package/dist/common/errors/password-error.js.map +1 -1
  41. package/dist/common/errors/permission.js +1 -2
  42. package/dist/common/errors/permission.js.map +1 -1
  43. package/dist/common/errors/reclaim-host-role-errors.js +6 -10
  44. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -1
  45. package/dist/common/errors/reconnection-in-progress.js +1 -2
  46. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  47. package/dist/common/errors/reconnection.js +1 -2
  48. package/dist/common/errors/reconnection.js.map +1 -1
  49. package/dist/common/errors/stats.js +1 -2
  50. package/dist/common/errors/stats.js.map +1 -1
  51. package/dist/common/errors/webex-errors.js +14 -15
  52. package/dist/common/errors/webex-errors.js.map +1 -1
  53. package/dist/common/errors/webex-meetings-error.js +1 -2
  54. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  55. package/dist/common/events/events-scope.js +1 -2
  56. package/dist/common/events/events-scope.js.map +1 -1
  57. package/dist/common/events/events.js +1 -2
  58. package/dist/common/events/events.js.map +1 -1
  59. package/dist/common/events/trigger-proxy.js +1 -2
  60. package/dist/common/events/trigger-proxy.js.map +1 -1
  61. package/dist/common/events/util.js +1 -2
  62. package/dist/common/events/util.js.map +1 -1
  63. package/dist/common/logs/logger-config.js +1 -2
  64. package/dist/common/logs/logger-config.js.map +1 -1
  65. package/dist/common/logs/logger-proxy.js +1 -2
  66. package/dist/common/logs/logger-proxy.js.map +1 -1
  67. package/dist/{types/common → common}/logs/request.d.ts +1 -1
  68. package/dist/common/logs/request.js +3 -4
  69. package/dist/common/logs/request.js.map +1 -1
  70. package/dist/common/queue.js +2 -4
  71. package/dist/common/queue.js.map +1 -1
  72. package/dist/{types/config.d.ts → config.d.ts} +1 -0
  73. package/dist/config.js +4 -3
  74. package/dist/config.js.map +1 -1
  75. package/dist/{types/constants.d.ts → constants.d.ts} +10 -5
  76. package/dist/constants.js +207 -380
  77. package/dist/constants.js.map +1 -1
  78. package/dist/controls-options-manager/constants.js +3 -6
  79. package/dist/controls-options-manager/constants.js.map +1 -1
  80. package/dist/controls-options-manager/enums.js +7 -10
  81. package/dist/controls-options-manager/enums.js.map +1 -1
  82. package/dist/controls-options-manager/index.js +27 -32
  83. package/dist/controls-options-manager/index.js.map +1 -1
  84. package/dist/controls-options-manager/util.js +1 -2
  85. package/dist/controls-options-manager/util.js.map +1 -1
  86. package/dist/index.js +3 -4
  87. package/dist/index.js.map +1 -1
  88. package/dist/interceptors/index.js.map +1 -1
  89. package/dist/interceptors/locusRetry.js +4 -3
  90. package/dist/interceptors/locusRetry.js.map +1 -1
  91. package/dist/interpretation/collection.js +1 -2
  92. package/dist/interpretation/collection.js.map +1 -1
  93. package/dist/interpretation/index.js +4 -5
  94. package/dist/interpretation/index.js.map +1 -1
  95. package/dist/interpretation/siLanguage.js +2 -3
  96. package/dist/interpretation/siLanguage.js.map +1 -1
  97. package/dist/locus-info/controlsUtils.js +12 -13
  98. package/dist/locus-info/controlsUtils.js.map +1 -1
  99. package/dist/locus-info/embeddedAppsUtils.js +3 -4
  100. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  101. package/dist/locus-info/fullState.js +1 -2
  102. package/dist/locus-info/fullState.js.map +1 -1
  103. package/dist/locus-info/hostUtils.js +1 -2
  104. package/dist/locus-info/hostUtils.js.map +1 -1
  105. package/dist/locus-info/index.js +23 -27
  106. package/dist/locus-info/index.js.map +1 -1
  107. package/dist/locus-info/infoUtils.js +3 -4
  108. package/dist/locus-info/infoUtils.js.map +1 -1
  109. package/dist/locus-info/mediaSharesUtils.js +16 -3
  110. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  111. package/dist/locus-info/parser.js +6 -10
  112. package/dist/locus-info/parser.js.map +1 -1
  113. package/dist/locus-info/selfUtils.js +12 -6
  114. package/dist/locus-info/selfUtils.js.map +1 -1
  115. package/dist/media/MediaConnectionAwaiter.d.ts +61 -0
  116. package/dist/media/MediaConnectionAwaiter.js +163 -0
  117. package/dist/media/MediaConnectionAwaiter.js.map +1 -0
  118. package/dist/media/index.js +9 -5
  119. package/dist/media/index.js.map +1 -1
  120. package/dist/media/properties.js +7 -28
  121. package/dist/media/properties.js.map +1 -1
  122. package/dist/media/util.js +1 -2
  123. package/dist/media/util.js.map +1 -1
  124. package/dist/mediaQualityMetrics/config.js +9 -18
  125. package/dist/mediaQualityMetrics/config.js.map +1 -1
  126. package/dist/meeting/in-meeting-actions.js +14 -2
  127. package/dist/meeting/in-meeting-actions.js.map +1 -1
  128. package/dist/{types/meeting → meeting}/index.d.ts +71 -16
  129. package/dist/meeting/index.js +1411 -1036
  130. package/dist/meeting/index.js.map +1 -1
  131. package/dist/meeting/locusMediaRequest.js +4 -5
  132. package/dist/meeting/locusMediaRequest.js.map +1 -1
  133. package/dist/meeting/muteState.js +2 -4
  134. package/dist/meeting/muteState.js.map +1 -1
  135. package/dist/{types/meeting → meeting}/request.d.ts +3 -0
  136. package/dist/meeting/request.js +45 -36
  137. package/dist/meeting/request.js.map +1 -1
  138. package/dist/meeting/state.js +1 -2
  139. package/dist/meeting/state.js.map +1 -1
  140. package/dist/{types/meeting → meeting}/util.d.ts +1 -0
  141. package/dist/meeting/util.js +13 -10
  142. package/dist/meeting/util.js.map +1 -1
  143. package/dist/meeting/voicea-meeting.d.ts +16 -0
  144. package/dist/meeting/voicea-meeting.js +169 -0
  145. package/dist/meeting/voicea-meeting.js.map +1 -0
  146. package/dist/meeting-info/collection.js +3 -4
  147. package/dist/meeting-info/collection.js.map +1 -1
  148. package/dist/meeting-info/index.js +5 -4
  149. package/dist/meeting-info/index.js.map +1 -1
  150. package/dist/meeting-info/meeting-info-v2.js +27 -29
  151. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  152. package/dist/meeting-info/request.js +1 -2
  153. package/dist/meeting-info/request.js.map +1 -1
  154. package/dist/meeting-info/util.js +8 -8
  155. package/dist/meeting-info/util.js.map +1 -1
  156. package/dist/meeting-info/utilv2.js +15 -9
  157. package/dist/meeting-info/utilv2.js.map +1 -1
  158. package/dist/meetings/collection.js +5 -6
  159. package/dist/meetings/collection.js.map +1 -1
  160. package/dist/{types/meetings → meetings}/index.d.ts +11 -2
  161. package/dist/meetings/index.js +44 -17
  162. package/dist/meetings/index.js.map +1 -1
  163. package/dist/meetings/request.js +2 -3
  164. package/dist/meetings/request.js.map +1 -1
  165. package/dist/meetings/util.js +1 -4
  166. package/dist/meetings/util.js.map +1 -1
  167. package/dist/member/index.js +1 -3
  168. package/dist/member/index.js.map +1 -1
  169. package/dist/member/types.js +6 -8
  170. package/dist/member/types.js.map +1 -1
  171. package/dist/member/util.js +1 -2
  172. package/dist/member/util.js.map +1 -1
  173. package/dist/members/collection.js +1 -2
  174. package/dist/members/collection.js.map +1 -1
  175. package/dist/members/index.js +8 -7
  176. package/dist/members/index.js.map +1 -1
  177. package/dist/members/request.js +2 -3
  178. package/dist/members/request.js.map +1 -1
  179. package/dist/members/types.js +3 -4
  180. package/dist/members/types.js.map +1 -1
  181. package/dist/{types/members → members}/util.d.ts +1 -1
  182. package/dist/members/util.js +3 -4
  183. package/dist/members/util.js.map +1 -1
  184. package/dist/metrics/constants.js +1 -2
  185. package/dist/metrics/constants.js.map +1 -1
  186. package/dist/metrics/index.js +3 -2
  187. package/dist/metrics/index.js.map +1 -1
  188. package/dist/{types/multistream → multistream}/mediaRequestManager.d.ts +1 -2
  189. package/dist/multistream/mediaRequestManager.js +9 -11
  190. package/dist/multistream/mediaRequestManager.js.map +1 -1
  191. package/dist/multistream/receiveSlot.js +3 -5
  192. package/dist/multistream/receiveSlot.js.map +1 -1
  193. package/dist/multistream/receiveSlotManager.js +7 -9
  194. package/dist/multistream/receiveSlotManager.js.map +1 -1
  195. package/dist/multistream/remoteMedia.js +3 -5
  196. package/dist/multistream/remoteMedia.js.map +1 -1
  197. package/dist/{types/multistream → multistream}/remoteMediaGroup.d.ts +1 -1
  198. package/dist/multistream/remoteMediaGroup.js +7 -6
  199. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  200. package/dist/{types/multistream → multistream}/remoteMediaManager.d.ts +1 -2
  201. package/dist/multistream/remoteMediaManager.js +32 -29
  202. package/dist/multistream/remoteMediaManager.js.map +1 -1
  203. package/dist/{types/multistream → multistream}/sendSlotManager.d.ts +1 -2
  204. package/dist/multistream/sendSlotManager.js +9 -6
  205. package/dist/multistream/sendSlotManager.js.map +1 -1
  206. package/dist/networkQualityMonitor/index.js +1 -2
  207. package/dist/networkQualityMonitor/index.js.map +1 -1
  208. package/dist/personal-meeting-room/index.js +2 -3
  209. package/dist/personal-meeting-room/index.js.map +1 -1
  210. package/dist/personal-meeting-room/request.js +2 -3
  211. package/dist/personal-meeting-room/request.js.map +1 -1
  212. package/dist/personal-meeting-room/util.js +1 -2
  213. package/dist/personal-meeting-room/util.js.map +1 -1
  214. package/dist/{types/reachability → reachability}/clusterReachability.d.ts +1 -0
  215. package/dist/reachability/clusterReachability.js +35 -20
  216. package/dist/reachability/clusterReachability.js.map +1 -1
  217. package/dist/{types/reachability → reachability}/index.d.ts +4 -0
  218. package/dist/reachability/index.js +41 -12
  219. package/dist/reachability/index.js.map +1 -1
  220. package/dist/reachability/request.js +25 -20
  221. package/dist/reachability/request.js.map +1 -1
  222. package/dist/{types/reachability → reachability}/util.d.ts +7 -0
  223. package/dist/reachability/util.js +19 -0
  224. package/dist/reachability/util.js.map +1 -1
  225. package/dist/reactions/constants.js +1 -2
  226. package/dist/reactions/constants.js.map +1 -1
  227. package/dist/reactions/reactions.js +2 -4
  228. package/dist/reactions/reactions.js.map +1 -1
  229. package/dist/reactions/reactions.type.js +6 -8
  230. package/dist/reactions/reactions.type.js.map +1 -1
  231. package/dist/reconnection-manager/index.js +18 -11
  232. package/dist/reconnection-manager/index.js.map +1 -1
  233. package/dist/recording-controller/enums.js +4 -5
  234. package/dist/recording-controller/enums.js.map +1 -1
  235. package/dist/recording-controller/index.js +43 -51
  236. package/dist/recording-controller/index.js.map +1 -1
  237. package/dist/recording-controller/util.js +1 -2
  238. package/dist/recording-controller/util.js.map +1 -1
  239. package/dist/{types/roap → roap}/index.d.ts +10 -2
  240. package/dist/roap/index.js +17 -3
  241. package/dist/roap/index.js.map +1 -1
  242. package/dist/roap/request.js +10 -10
  243. package/dist/roap/request.js.map +1 -1
  244. package/dist/{types/roap → roap}/turnDiscovery.d.ts +64 -17
  245. package/dist/roap/turnDiscovery.js +316 -134
  246. package/dist/roap/turnDiscovery.js.map +1 -1
  247. package/dist/rtcMetrics/constants.js +1 -2
  248. package/dist/rtcMetrics/constants.js.map +1 -1
  249. package/dist/rtcMetrics/index.js +4 -6
  250. package/dist/rtcMetrics/index.js.map +1 -1
  251. package/dist/statsAnalyzer/global.js +1 -2
  252. package/dist/statsAnalyzer/global.js.map +1 -1
  253. package/dist/statsAnalyzer/index.js +123 -96
  254. package/dist/statsAnalyzer/index.js.map +1 -1
  255. package/dist/statsAnalyzer/mqaUtil.js +24 -31
  256. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  257. package/dist/transcription/index.js +1 -2
  258. package/dist/transcription/index.js.map +1 -1
  259. package/dist/webinar/collection.js +1 -2
  260. package/dist/webinar/collection.js.map +1 -1
  261. package/dist/webinar/index.js +2 -3
  262. package/dist/webinar/index.js.map +1 -1
  263. package/jest.config.js +3 -0
  264. package/package.json +44 -25
  265. package/process +1 -0
  266. package/src/config.ts +3 -4
  267. package/src/constants.ts +13 -4
  268. package/src/interpretation/index.ts +2 -2
  269. package/src/locus-info/mediaSharesUtils.ts +16 -0
  270. package/src/locus-info/selfUtils.ts +5 -0
  271. package/src/media/MediaConnectionAwaiter.ts +174 -0
  272. package/src/media/index.ts +3 -1
  273. package/src/media/properties.ts +6 -31
  274. package/src/meeting/index.ts +526 -227
  275. package/src/meeting/request.ts +18 -2
  276. package/src/meeting/util.ts +6 -1
  277. package/src/meeting/voicea-meeting.ts +122 -0
  278. package/src/meeting-info/meeting-info-v2.ts +5 -11
  279. package/src/meeting-info/util.ts +12 -9
  280. package/src/meeting-info/utilv2.ts +26 -15
  281. package/src/meetings/index.ts +18 -0
  282. package/src/member/index.ts +0 -1
  283. package/src/multistream/mediaRequestManager.ts +1 -1
  284. package/src/multistream/remoteMediaGroup.ts +1 -1
  285. package/src/multistream/remoteMediaManager.ts +1 -2
  286. package/src/multistream/sendSlotManager.ts +1 -2
  287. package/src/reachability/clusterReachability.ts +20 -5
  288. package/src/reachability/index.ts +24 -1
  289. package/src/reachability/request.ts +15 -11
  290. package/src/reachability/util.ts +21 -0
  291. package/src/reconnection-manager/index.ts +1 -1
  292. package/src/roap/index.ts +25 -3
  293. package/src/roap/request.ts +2 -2
  294. package/src/roap/turnDiscovery.ts +244 -78
  295. package/src/statsAnalyzer/index.ts +63 -27
  296. package/test/integration/spec/journey.js +2 -2
  297. package/test/unit/spec/breakouts/breakout.ts +2 -1
  298. package/test/unit/spec/breakouts/index.ts +7 -4
  299. package/test/unit/spec/interpretation/index.ts +4 -1
  300. package/test/unit/spec/locus-info/index.js +27 -18
  301. package/test/unit/spec/locus-info/mediaSharesUtils.ts +9 -0
  302. package/test/unit/spec/locus-info/selfUtils.js +41 -11
  303. package/test/unit/spec/media/MediaConnectionAwaiter.ts +344 -0
  304. package/test/unit/spec/media/index.ts +94 -78
  305. package/test/unit/spec/media/properties.ts +16 -70
  306. package/test/unit/spec/meeting/index.js +757 -141
  307. package/test/unit/spec/meeting/request.js +21 -0
  308. package/test/unit/spec/meeting/utils.js +58 -11
  309. package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
  310. package/test/unit/spec/meeting-info/meetinginfov2.js +20 -15
  311. package/test/unit/spec/meeting-info/utilv2.js +6 -0
  312. package/test/unit/spec/meetings/index.js +101 -13
  313. package/test/unit/spec/metrics/index.js +1 -2
  314. package/test/unit/spec/multistream/mediaRequestManager.ts +1 -0
  315. package/test/unit/spec/multistream/remoteMediaGroup.ts +0 -1
  316. package/test/unit/spec/multistream/remoteMediaManager.ts +0 -1
  317. package/test/unit/spec/reachability/clusterReachability.ts +86 -22
  318. package/test/unit/spec/reachability/index.ts +197 -60
  319. package/test/unit/spec/reachability/request.js +15 -7
  320. package/test/unit/spec/reachability/util.ts +32 -2
  321. package/test/unit/spec/reconnection-manager/index.js +28 -0
  322. package/test/unit/spec/recording-controller/index.js +0 -1
  323. package/test/unit/spec/roap/index.ts +61 -6
  324. package/test/unit/spec/roap/turnDiscovery.ts +299 -17
  325. package/test/unit/spec/stats-analyzer/index.js +179 -0
  326. /package/dist/{types/annotation → annotation}/annotation.types.d.ts +0 -0
  327. /package/dist/{types/annotation → annotation}/constants.d.ts +0 -0
  328. /package/dist/{types/annotation → annotation}/index.d.ts +0 -0
  329. /package/dist/{types/breakouts → breakouts}/breakout.d.ts +0 -0
  330. /package/dist/{types/breakouts → breakouts}/collection.d.ts +0 -0
  331. /package/dist/{types/breakouts → breakouts}/edit-lock-error.d.ts +0 -0
  332. /package/dist/{types/breakouts → breakouts}/events.d.ts +0 -0
  333. /package/dist/{types/breakouts → breakouts}/index.d.ts +0 -0
  334. /package/dist/{types/breakouts → breakouts}/request.d.ts +0 -0
  335. /package/dist/{types/breakouts → breakouts}/utils.d.ts +0 -0
  336. /package/dist/{types/common → common}/browser-detection.d.ts +0 -0
  337. /package/dist/{types/common → common}/collection.d.ts +0 -0
  338. /package/dist/{types/common → common}/config.d.ts +0 -0
  339. /package/dist/{types/common → common}/errors/captcha-error.d.ts +0 -0
  340. /package/dist/{types/common → common}/errors/intent-to-join.d.ts +0 -0
  341. /package/dist/{types/common → common}/errors/join-meeting.d.ts +0 -0
  342. /package/dist/{types/common → common}/errors/media.d.ts +0 -0
  343. /package/dist/{types/common → common}/errors/no-meeting-info.d.ts +0 -0
  344. /package/dist/{types/common → common}/errors/parameter.d.ts +0 -0
  345. /package/dist/{types/common → common}/errors/password-error.d.ts +0 -0
  346. /package/dist/{types/common → common}/errors/permission.d.ts +0 -0
  347. /package/dist/{types/common → common}/errors/reclaim-host-role-errors.d.ts +0 -0
  348. /package/dist/{types/common → common}/errors/reconnection-in-progress.d.ts +0 -0
  349. /package/dist/{types/common → common}/errors/reconnection.d.ts +0 -0
  350. /package/dist/{types/common → common}/errors/stats.d.ts +0 -0
  351. /package/dist/{types/common → common}/errors/webex-errors.d.ts +0 -0
  352. /package/dist/{types/common → common}/errors/webex-meetings-error.d.ts +0 -0
  353. /package/dist/{types/common → common}/events/events-scope.d.ts +0 -0
  354. /package/dist/{types/common → common}/events/events.d.ts +0 -0
  355. /package/dist/{types/common → common}/events/trigger-proxy.d.ts +0 -0
  356. /package/dist/{types/common → common}/events/util.d.ts +0 -0
  357. /package/dist/{types/common → common}/logs/logger-config.d.ts +0 -0
  358. /package/dist/{types/common → common}/logs/logger-proxy.d.ts +0 -0
  359. /package/dist/{types/common → common}/queue.d.ts +0 -0
  360. /package/dist/{types/controls-options-manager → controls-options-manager}/constants.d.ts +0 -0
  361. /package/dist/{types/controls-options-manager → controls-options-manager}/enums.d.ts +0 -0
  362. /package/dist/{types/controls-options-manager → controls-options-manager}/index.d.ts +0 -0
  363. /package/dist/{types/controls-options-manager → controls-options-manager}/types.d.ts +0 -0
  364. /package/dist/{types/controls-options-manager → controls-options-manager}/util.d.ts +0 -0
  365. /package/dist/{types/index.d.ts → index.d.ts} +0 -0
  366. /package/dist/{types/interceptors → interceptors}/index.d.ts +0 -0
  367. /package/dist/{types/interceptors → interceptors}/locusRetry.d.ts +0 -0
  368. /package/dist/{types/interpretation → interpretation}/collection.d.ts +0 -0
  369. /package/dist/{types/interpretation → interpretation}/index.d.ts +0 -0
  370. /package/dist/{types/interpretation → interpretation}/siLanguage.d.ts +0 -0
  371. /package/dist/{types/locus-info → locus-info}/controlsUtils.d.ts +0 -0
  372. /package/dist/{types/locus-info → locus-info}/embeddedAppsUtils.d.ts +0 -0
  373. /package/dist/{types/locus-info → locus-info}/fullState.d.ts +0 -0
  374. /package/dist/{types/locus-info → locus-info}/hostUtils.d.ts +0 -0
  375. /package/dist/{types/locus-info → locus-info}/index.d.ts +0 -0
  376. /package/dist/{types/locus-info → locus-info}/infoUtils.d.ts +0 -0
  377. /package/dist/{types/locus-info → locus-info}/mediaSharesUtils.d.ts +0 -0
  378. /package/dist/{types/locus-info → locus-info}/parser.d.ts +0 -0
  379. /package/dist/{types/locus-info → locus-info}/selfUtils.d.ts +0 -0
  380. /package/dist/{types/media → media}/index.d.ts +0 -0
  381. /package/dist/{types/media → media}/properties.d.ts +0 -0
  382. /package/dist/{types/media → media}/util.d.ts +0 -0
  383. /package/dist/{types/mediaQualityMetrics → mediaQualityMetrics}/config.d.ts +0 -0
  384. /package/dist/{types/meeting → meeting}/in-meeting-actions.d.ts +0 -0
  385. /package/dist/{types/meeting → meeting}/locusMediaRequest.d.ts +0 -0
  386. /package/dist/{types/meeting → meeting}/muteState.d.ts +0 -0
  387. /package/dist/{types/meeting → meeting}/request.type.d.ts +0 -0
  388. /package/dist/{types/meeting → meeting}/state.d.ts +0 -0
  389. /package/dist/{types/meeting-info → meeting-info}/collection.d.ts +0 -0
  390. /package/dist/{types/meeting-info → meeting-info}/index.d.ts +0 -0
  391. /package/dist/{types/meeting-info → meeting-info}/meeting-info-v2.d.ts +0 -0
  392. /package/dist/{types/meeting-info → meeting-info}/request.d.ts +0 -0
  393. /package/dist/{types/meeting-info → meeting-info}/util.d.ts +0 -0
  394. /package/dist/{types/meeting-info → meeting-info}/utilv2.d.ts +0 -0
  395. /package/dist/{types/meetings → meetings}/collection.d.ts +0 -0
  396. /package/dist/{types/meetings → meetings}/meetings.types.d.ts +0 -0
  397. /package/dist/{types/meetings → meetings}/request.d.ts +0 -0
  398. /package/dist/{types/meetings → meetings}/util.d.ts +0 -0
  399. /package/dist/{types/member → member}/index.d.ts +0 -0
  400. /package/dist/{types/member → member}/types.d.ts +0 -0
  401. /package/dist/{types/member → member}/util.d.ts +0 -0
  402. /package/dist/{types/members → members}/collection.d.ts +0 -0
  403. /package/dist/{types/members → members}/index.d.ts +0 -0
  404. /package/dist/{types/members → members}/request.d.ts +0 -0
  405. /package/dist/{types/members → members}/types.d.ts +0 -0
  406. /package/dist/{types/metrics → metrics}/constants.d.ts +0 -0
  407. /package/dist/{types/metrics → metrics}/index.d.ts +0 -0
  408. /package/dist/{types/multistream → multistream}/receiveSlot.d.ts +0 -0
  409. /package/dist/{types/multistream → multistream}/receiveSlotManager.d.ts +0 -0
  410. /package/dist/{types/multistream → multistream}/remoteMedia.d.ts +0 -0
  411. /package/dist/{types/networkQualityMonitor → networkQualityMonitor}/index.d.ts +0 -0
  412. /package/dist/{types/personal-meeting-room → personal-meeting-room}/index.d.ts +0 -0
  413. /package/dist/{types/personal-meeting-room → personal-meeting-room}/request.d.ts +0 -0
  414. /package/dist/{types/personal-meeting-room → personal-meeting-room}/util.d.ts +0 -0
  415. /package/dist/{types/reachability → reachability}/request.d.ts +0 -0
  416. /package/dist/{types/reactions → reactions}/constants.d.ts +0 -0
  417. /package/dist/{types/reactions → reactions}/reactions.d.ts +0 -0
  418. /package/dist/{types/reactions → reactions}/reactions.type.d.ts +0 -0
  419. /package/dist/{types/reconnection-manager → reconnection-manager}/index.d.ts +0 -0
  420. /package/dist/{types/recording-controller → recording-controller}/enums.d.ts +0 -0
  421. /package/dist/{types/recording-controller → recording-controller}/index.d.ts +0 -0
  422. /package/dist/{types/recording-controller → recording-controller}/util.d.ts +0 -0
  423. /package/dist/{types/roap → roap}/request.d.ts +0 -0
  424. /package/dist/{types/rtcMetrics → rtcMetrics}/constants.d.ts +0 -0
  425. /package/dist/{types/rtcMetrics → rtcMetrics}/index.d.ts +0 -0
  426. /package/dist/{types/statsAnalyzer → statsAnalyzer}/global.d.ts +0 -0
  427. /package/dist/{types/statsAnalyzer → statsAnalyzer}/index.d.ts +0 -0
  428. /package/dist/{types/statsAnalyzer → statsAnalyzer}/mqaUtil.d.ts +0 -0
  429. /package/dist/{types/transcription → transcription}/index.d.ts +0 -0
  430. /package/dist/{types/webinar → webinar}/collection.d.ts +0 -0
  431. /package/dist/{types/webinar → webinar}/index.d.ts +0 -0
@@ -0,0 +1,174 @@
1
+ import {Defer} from '@webex/common';
2
+ import {ConnectionState, Event} from '@webex/internal-media-core';
3
+ import LoggerProxy from '../common/logs/logger-proxy';
4
+ import {ICE_AND_DTLS_CONNECTION_TIMEOUT} from '../constants';
5
+
6
+ export interface MediaConnectionAwaiterProps {
7
+ webrtcMediaConnection: any;
8
+ }
9
+
10
+ /**
11
+ * @class MediaConnectionAwaiter
12
+ */
13
+ export default class MediaConnectionAwaiter {
14
+ private webrtcMediaConnection: any;
15
+ private timer: any;
16
+ private defer: Defer;
17
+ private retried: boolean;
18
+ private onTimeoutCallback: () => void;
19
+ private connectionStateCallback: () => void;
20
+ private iceGatheringStateCallback: () => void;
21
+
22
+ /**
23
+ * @param {MediaConnectionAwaiterProps} mediaConnectionAwaiterProps
24
+ */
25
+ constructor({webrtcMediaConnection}: MediaConnectionAwaiterProps) {
26
+ this.webrtcMediaConnection = webrtcMediaConnection;
27
+ this.defer = new Defer();
28
+ this.retried = false;
29
+ this.onTimeoutCallback = this.onTimeout.bind(this);
30
+ this.connectionStateCallback = this.connectionStateListenerCallback.bind(this);
31
+ this.iceGatheringStateCallback = this.iceGatheringStateListenerCallback.bind(this);
32
+ }
33
+
34
+ /**
35
+ * Returns true if the connection is connected, false otherwise.
36
+ *
37
+ * @returns {boolean}
38
+ */
39
+ private isConnected(): boolean {
40
+ return this.webrtcMediaConnection.getConnectionState() === ConnectionState.Connected;
41
+ }
42
+
43
+ /**
44
+ * Returns true if the ICE Gathering is completed, false otherwise.
45
+ *
46
+ * @returns {boolean}
47
+ */
48
+ private isIceGatheringCompleted(): boolean {
49
+ return this.webrtcMediaConnection.getIceGatheringState() === 'complete';
50
+ }
51
+
52
+ /**
53
+ * Clears the callbacks.
54
+ *
55
+ * @returns {void}
56
+ */
57
+ private clearCallbacks(): void {
58
+ this.webrtcMediaConnection.off(
59
+ Event.ICE_GATHERING_STATE_CHANGED,
60
+ this.iceGatheringStateCallback
61
+ );
62
+ this.webrtcMediaConnection.off(Event.CONNECTION_STATE_CHANGED, this.connectionStateCallback);
63
+ }
64
+
65
+ /**
66
+ * Listener for connection state change.
67
+ *
68
+ * @returns {void}
69
+ */
70
+ connectionStateListenerCallback(): void {
71
+ LoggerProxy.logger.log(
72
+ `Media:MediaConnectionAwaiter#connectionStateListenerCallback --> connection state: ${this.webrtcMediaConnection.getConnectionState()}`
73
+ );
74
+
75
+ if (!this.isConnected()) {
76
+ return;
77
+ }
78
+
79
+ clearTimeout(this.timer);
80
+
81
+ this.clearCallbacks();
82
+
83
+ this.defer.resolve();
84
+ }
85
+
86
+ /**
87
+ * Listener for ICE gathering state change.
88
+ *
89
+ * @returns {void}
90
+ */
91
+ iceGatheringStateListenerCallback(): void {
92
+ const iceGatheringState = this.webrtcMediaConnection.getIceGatheringState();
93
+
94
+ LoggerProxy.logger.log(
95
+ `Media:MediaConnectionAwaiter#iceGatheringStateListenerCallback --> ICE gathering state change -> ${iceGatheringState}`
96
+ );
97
+
98
+ if (!this.isIceGatheringCompleted()) {
99
+ return;
100
+ }
101
+
102
+ if (this.isConnected()) {
103
+ return;
104
+ }
105
+
106
+ clearTimeout(this.timer);
107
+
108
+ this.timer = setTimeout(this.onTimeoutCallback, ICE_AND_DTLS_CONNECTION_TIMEOUT);
109
+ }
110
+
111
+ /**
112
+ * Function called when the timeout is reached.
113
+ *
114
+ * @returns {void}
115
+ */
116
+ onTimeout(): void {
117
+ if (this.isConnected()) {
118
+ this.clearCallbacks();
119
+
120
+ this.defer.resolve();
121
+
122
+ return;
123
+ }
124
+
125
+ if (!this.isIceGatheringCompleted()) {
126
+ if (!this.retried) {
127
+ LoggerProxy.logger.warn(
128
+ 'Media:MediaConnectionAwaiter#onTimeout --> ICE gathering did not complete within the timeout for the first time, retrying once'
129
+ );
130
+
131
+ // retry once if ICE gathering is not completed
132
+ this.retried = true;
133
+ clearTimeout(this.timer);
134
+ this.timer = setTimeout(this.onTimeoutCallback, ICE_AND_DTLS_CONNECTION_TIMEOUT);
135
+
136
+ return;
137
+ }
138
+
139
+ LoggerProxy.logger.warn(
140
+ 'Media:MediaConnectionAwaiter#onTimeout --> ICE gathering did not complete within the timeout for the second time, rejecting'
141
+ );
142
+ } else {
143
+ LoggerProxy.logger.warn(
144
+ 'Media:MediaConnectionAwaiter#onTimeout --> ICE gathering completed, but connection state is not connected, rejecting'
145
+ );
146
+ }
147
+
148
+ this.clearCallbacks();
149
+
150
+ this.defer.reject();
151
+ }
152
+
153
+ /**
154
+ * Waits for the webrtc media connection to be connected.
155
+ *
156
+ * @returns {Promise}
157
+ */
158
+ waitForMediaConnectionConnected(): Promise<void> {
159
+ if (this.isConnected()) {
160
+ return Promise.resolve();
161
+ }
162
+
163
+ this.webrtcMediaConnection.on(Event.CONNECTION_STATE_CHANGED, this.connectionStateCallback);
164
+
165
+ this.webrtcMediaConnection.on(
166
+ Event.ICE_GATHERING_STATE_CHANGED,
167
+ this.iceGatheringStateCallback
168
+ );
169
+
170
+ this.timer = setTimeout(this.onTimeoutCallback, ICE_AND_DTLS_CONNECTION_TIMEOUT);
171
+
172
+ return this.defer.promise;
173
+ }
174
+ }
@@ -160,7 +160,9 @@ Media.createMediaConnection = (
160
160
 
161
161
  const iceServers = [];
162
162
 
163
- if (turnServerInfo) {
163
+ // we might not have any TURN server if TURN discovery failed or wasn't done or
164
+ // we might get an empty TURN url if we land on a video mesh node
165
+ if (turnServerInfo?.url) {
164
166
  iceServers.push({
165
167
  urls: turnServerInfo.url,
166
168
  username: turnServerInfo.username || '',
@@ -1,5 +1,3 @@
1
- import {ConnectionState, Event} from '@webex/internal-media-core';
2
-
3
1
  import {
4
2
  LocalCameraStream,
5
3
  LocalMicrophoneStream,
@@ -8,8 +6,9 @@ import {
8
6
  RemoteStream,
9
7
  } from '@webex/media-helpers';
10
8
 
11
- import {MEETINGS, ICE_AND_DTLS_CONNECTION_TIMEOUT, QUALITY_LEVELS} from '../constants';
9
+ import {MEETINGS, QUALITY_LEVELS} from '../constants';
12
10
  import LoggerProxy from '../common/logs/logger-proxy';
11
+ import MediaConnectionAwaiter from './MediaConnectionAwaiter';
13
12
 
14
13
  export type MediaDirection = {
15
14
  sendAudio: boolean;
@@ -175,35 +174,11 @@ export default class MediaProperties {
175
174
  * @returns {Promise<void>}
176
175
  */
177
176
  waitForMediaConnectionConnected(): Promise<void> {
178
- const isConnected = () =>
179
- this.webrtcMediaConnection.getConnectionState() === ConnectionState.Connected;
180
-
181
- if (isConnected()) {
182
- return Promise.resolve();
183
- }
184
-
185
- return new Promise<void>((resolve, reject) => {
186
- let timer;
187
-
188
- const connectionStateListener = () => {
189
- LoggerProxy.logger.log(
190
- `Media:properties#waitForMediaConnectionConnected --> connection state: ${this.webrtcMediaConnection.getConnectionState()}`
191
- );
192
-
193
- if (isConnected()) {
194
- clearTimeout(timer);
195
- this.webrtcMediaConnection.off(Event.CONNECTION_STATE_CHANGED, connectionStateListener);
196
- resolve();
197
- }
198
- };
199
-
200
- timer = setTimeout(() => {
201
- this.webrtcMediaConnection.off(Event.CONNECTION_STATE_CHANGED, connectionStateListener);
202
- reject();
203
- }, ICE_AND_DTLS_CONNECTION_TIMEOUT);
204
-
205
- this.webrtcMediaConnection.on(Event.CONNECTION_STATE_CHANGED, connectionStateListener);
177
+ const mediaConnectionAwaiter = new MediaConnectionAwaiter({
178
+ webrtcMediaConnection: this.webrtcMediaConnection,
206
179
  });
180
+
181
+ return mediaConnectionAwaiter.waitForMediaConnectionConnected();
207
182
  }
208
183
 
209
184
  /**