@webex/plugin-meetings 3.0.0-beta.2 → 3.0.0-beta.200

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 (576) hide show
  1. package/README.md +45 -7
  2. package/UPGRADING.md +9 -9
  3. package/browsers.js +19 -24
  4. package/dist/annotation/annotation.types.js +7 -0
  5. package/dist/annotation/annotation.types.js.map +1 -0
  6. package/dist/annotation/constants.js +49 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.js +342 -0
  9. package/dist/annotation/index.js.map +1 -0
  10. package/dist/breakouts/breakout.js +216 -0
  11. package/dist/breakouts/breakout.js.map +1 -0
  12. package/dist/breakouts/collection.js +23 -0
  13. package/dist/breakouts/collection.js.map +1 -0
  14. package/dist/breakouts/edit-lock-error.js +52 -0
  15. package/dist/breakouts/edit-lock-error.js.map +1 -0
  16. package/dist/breakouts/events.js +45 -0
  17. package/dist/breakouts/events.js.map +1 -0
  18. package/dist/breakouts/index.js +1048 -0
  19. package/dist/breakouts/index.js.map +1 -0
  20. package/dist/breakouts/request.js +78 -0
  21. package/dist/breakouts/request.js.map +1 -0
  22. package/dist/breakouts/utils.js +67 -0
  23. package/dist/breakouts/utils.js.map +1 -0
  24. package/dist/common/browser-detection.js +1 -20
  25. package/dist/common/browser-detection.js.map +1 -1
  26. package/dist/common/collection.js +5 -20
  27. package/dist/common/collection.js.map +1 -1
  28. package/dist/common/config.js +0 -7
  29. package/dist/common/config.js.map +1 -1
  30. package/dist/common/errors/captcha-error.js +10 -24
  31. package/dist/common/errors/captcha-error.js.map +1 -1
  32. package/dist/common/errors/intent-to-join.js +11 -24
  33. package/dist/common/errors/intent-to-join.js.map +1 -1
  34. package/dist/common/errors/join-meeting.js +12 -25
  35. package/dist/common/errors/join-meeting.js.map +1 -1
  36. package/dist/common/errors/media.js +10 -24
  37. package/dist/common/errors/media.js.map +1 -1
  38. package/dist/common/errors/parameter.js +5 -33
  39. package/dist/common/errors/parameter.js.map +1 -1
  40. package/dist/common/errors/password-error.js +10 -24
  41. package/dist/common/errors/password-error.js.map +1 -1
  42. package/dist/common/errors/permission.js +9 -23
  43. package/dist/common/errors/permission.js.map +1 -1
  44. package/dist/common/errors/reconnection-in-progress.js +0 -17
  45. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  46. package/dist/common/errors/reconnection.js +10 -24
  47. package/dist/common/errors/reconnection.js.map +1 -1
  48. package/dist/common/errors/stats.js +10 -24
  49. package/dist/common/errors/stats.js.map +1 -1
  50. package/dist/common/errors/webex-errors.js +9 -43
  51. package/dist/common/errors/webex-errors.js.map +1 -1
  52. package/dist/common/errors/webex-meetings-error.js +5 -25
  53. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  54. package/dist/common/events/events-scope.js +0 -22
  55. package/dist/common/events/events-scope.js.map +1 -1
  56. package/dist/common/events/events.js +0 -23
  57. package/dist/common/events/events.js.map +1 -1
  58. package/dist/common/events/trigger-proxy.js +0 -12
  59. package/dist/common/events/trigger-proxy.js.map +1 -1
  60. package/dist/common/events/util.js +0 -15
  61. package/dist/common/events/util.js.map +1 -1
  62. package/dist/common/logs/logger-config.js +0 -4
  63. package/dist/common/logs/logger-config.js.map +1 -1
  64. package/dist/common/logs/logger-proxy.js +1 -8
  65. package/dist/common/logs/logger-proxy.js.map +1 -1
  66. package/dist/common/logs/request.js +37 -60
  67. package/dist/common/logs/request.js.map +1 -1
  68. package/dist/common/queue.js +28 -23
  69. package/dist/common/queue.js.map +1 -1
  70. package/dist/config.js +8 -13
  71. package/dist/config.js.map +1 -1
  72. package/dist/constants.js +250 -66
  73. package/dist/constants.js.map +1 -1
  74. package/dist/controls-options-manager/constants.js +14 -0
  75. package/dist/controls-options-manager/constants.js.map +1 -0
  76. package/dist/controls-options-manager/enums.js +27 -0
  77. package/dist/controls-options-manager/enums.js.map +1 -0
  78. package/dist/controls-options-manager/index.js +297 -0
  79. package/dist/controls-options-manager/index.js.map +1 -0
  80. package/dist/controls-options-manager/types.js +7 -0
  81. package/dist/controls-options-manager/types.js.map +1 -0
  82. package/dist/controls-options-manager/util.js +319 -0
  83. package/dist/controls-options-manager/util.js.map +1 -0
  84. package/dist/index.js +108 -17
  85. package/dist/index.js.map +1 -1
  86. package/dist/interpretation/collection.js +23 -0
  87. package/dist/interpretation/collection.js.map +1 -0
  88. package/dist/interpretation/index.js +366 -0
  89. package/dist/interpretation/index.js.map +1 -0
  90. package/dist/interpretation/siLanguage.js +25 -0
  91. package/dist/interpretation/siLanguage.js.map +1 -0
  92. package/dist/locus-info/controlsUtils.js +101 -29
  93. package/dist/locus-info/controlsUtils.js.map +1 -1
  94. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  95. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  96. package/dist/locus-info/fullState.js +0 -15
  97. package/dist/locus-info/fullState.js.map +1 -1
  98. package/dist/locus-info/hostUtils.js +4 -12
  99. package/dist/locus-info/hostUtils.js.map +1 -1
  100. package/dist/locus-info/index.js +532 -240
  101. package/dist/locus-info/index.js.map +1 -1
  102. package/dist/locus-info/infoUtils.js +3 -37
  103. package/dist/locus-info/infoUtils.js.map +1 -1
  104. package/dist/locus-info/mediaSharesUtils.js +54 -38
  105. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  106. package/dist/locus-info/parser.js +284 -154
  107. package/dist/locus-info/parser.js.map +1 -1
  108. package/dist/locus-info/selfUtils.js +110 -92
  109. package/dist/locus-info/selfUtils.js.map +1 -1
  110. package/dist/media/index.js +95 -226
  111. package/dist/media/index.js.map +1 -1
  112. package/dist/media/properties.js +99 -194
  113. package/dist/media/properties.js.map +1 -1
  114. package/dist/media/util.js +2 -9
  115. package/dist/media/util.js.map +1 -1
  116. package/dist/mediaQualityMetrics/config.js +505 -495
  117. package/dist/mediaQualityMetrics/config.js.map +1 -1
  118. package/dist/meeting/in-meeting-actions.js +83 -14
  119. package/dist/meeting/in-meeting-actions.js.map +1 -1
  120. package/dist/meeting/index.js +3478 -3563
  121. package/dist/meeting/index.js.map +1 -1
  122. package/dist/meeting/locusMediaRequest.js +291 -0
  123. package/dist/meeting/locusMediaRequest.js.map +1 -0
  124. package/dist/meeting/muteState.js +247 -183
  125. package/dist/meeting/muteState.js.map +1 -1
  126. package/dist/meeting/request.js +344 -344
  127. package/dist/meeting/request.js.map +1 -1
  128. package/dist/meeting/request.type.js +7 -0
  129. package/dist/meeting/request.type.js.map +1 -0
  130. package/dist/meeting/state.js +21 -31
  131. package/dist/meeting/state.js.map +1 -1
  132. package/dist/meeting/util.js +529 -588
  133. package/dist/meeting/util.js.map +1 -1
  134. package/dist/meeting-info/collection.js +6 -25
  135. package/dist/meeting-info/collection.js.map +1 -1
  136. package/dist/meeting-info/index.js +62 -39
  137. package/dist/meeting-info/index.js.map +1 -1
  138. package/dist/meeting-info/meeting-info-v2.js +328 -283
  139. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  140. package/dist/meeting-info/request.js +3 -15
  141. package/dist/meeting-info/request.js.map +1 -1
  142. package/dist/meeting-info/util.js +98 -183
  143. package/dist/meeting-info/util.js.map +1 -1
  144. package/dist/meeting-info/utilv2.js +156 -232
  145. package/dist/meeting-info/utilv2.js.map +1 -1
  146. package/dist/meetings/collection.js +26 -19
  147. package/dist/meetings/collection.js.map +1 -1
  148. package/dist/meetings/index.js +795 -574
  149. package/dist/meetings/index.js.map +1 -1
  150. package/dist/meetings/meetings.types.js +7 -0
  151. package/dist/meetings/meetings.types.js.map +1 -0
  152. package/dist/meetings/request.js +26 -41
  153. package/dist/meetings/request.js.map +1 -1
  154. package/dist/meetings/util.js +186 -155
  155. package/dist/meetings/util.js.map +1 -1
  156. package/dist/member/index.js +126 -85
  157. package/dist/member/index.js.map +1 -1
  158. package/dist/member/types.js +25 -0
  159. package/dist/member/types.js.map +1 -0
  160. package/dist/member/util.js +147 -88
  161. package/dist/member/util.js.map +1 -1
  162. package/dist/members/collection.js +13 -12
  163. package/dist/members/collection.js.map +1 -1
  164. package/dist/members/index.js +178 -204
  165. package/dist/members/index.js.map +1 -1
  166. package/dist/members/request.js +113 -68
  167. package/dist/members/request.js.map +1 -1
  168. package/dist/members/types.js +15 -0
  169. package/dist/members/types.js.map +1 -0
  170. package/dist/members/util.js +314 -260
  171. package/dist/members/util.js.map +1 -1
  172. package/dist/metrics/constants.js +4 -7
  173. package/dist/metrics/constants.js.map +1 -1
  174. package/dist/metrics/index.js +11 -558
  175. package/dist/metrics/index.js.map +1 -1
  176. package/dist/multistream/mediaRequestManager.js +264 -50
  177. package/dist/multistream/mediaRequestManager.js.map +1 -1
  178. package/dist/multistream/receiveSlot.js +58 -65
  179. package/dist/multistream/receiveSlot.js.map +1 -1
  180. package/dist/multistream/receiveSlotManager.js +76 -95
  181. package/dist/multistream/receiveSlotManager.js.map +1 -1
  182. package/dist/multistream/remoteMedia.js +62 -76
  183. package/dist/multistream/remoteMedia.js.map +1 -1
  184. package/dist/multistream/remoteMediaGroup.js +66 -43
  185. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  186. package/dist/multistream/remoteMediaManager.js +502 -442
  187. package/dist/multistream/remoteMediaManager.js.map +1 -1
  188. package/dist/networkQualityMonitor/index.js +40 -59
  189. package/dist/networkQualityMonitor/index.js.map +1 -1
  190. package/dist/personal-meeting-room/index.js +21 -45
  191. package/dist/personal-meeting-room/index.js.map +1 -1
  192. package/dist/personal-meeting-room/request.js +1 -31
  193. package/dist/personal-meeting-room/request.js.map +1 -1
  194. package/dist/personal-meeting-room/util.js +0 -13
  195. package/dist/personal-meeting-room/util.js.map +1 -1
  196. package/dist/reachability/index.js +192 -191
  197. package/dist/reachability/index.js.map +1 -1
  198. package/dist/reachability/request.js +15 -23
  199. package/dist/reachability/request.js.map +1 -1
  200. package/dist/reactions/constants.js +13 -0
  201. package/dist/reactions/constants.js.map +1 -0
  202. package/dist/reactions/reactions.js +109 -0
  203. package/dist/reactions/reactions.js.map +1 -0
  204. package/dist/reactions/reactions.type.js +36 -0
  205. package/dist/reactions/reactions.type.js.map +1 -0
  206. package/dist/reconnection-manager/index.js +384 -476
  207. package/dist/reconnection-manager/index.js.map +1 -1
  208. package/dist/recording-controller/enums.js +17 -0
  209. package/dist/recording-controller/enums.js.map +1 -0
  210. package/dist/recording-controller/index.js +363 -0
  211. package/dist/recording-controller/index.js.map +1 -0
  212. package/dist/recording-controller/util.js +64 -0
  213. package/dist/recording-controller/util.js.map +1 -0
  214. package/dist/roap/index.js +58 -91
  215. package/dist/roap/index.js.map +1 -1
  216. package/dist/roap/request.js +137 -135
  217. package/dist/roap/request.js.map +1 -1
  218. package/dist/roap/turnDiscovery.js +148 -100
  219. package/dist/roap/turnDiscovery.js.map +1 -1
  220. package/dist/rtcMetrics/constants.js +12 -0
  221. package/dist/rtcMetrics/constants.js.map +1 -0
  222. package/dist/rtcMetrics/index.js +115 -0
  223. package/dist/rtcMetrics/index.js.map +1 -0
  224. package/dist/statsAnalyzer/global.js +1 -95
  225. package/dist/statsAnalyzer/global.js.map +1 -1
  226. package/dist/statsAnalyzer/index.js +385 -460
  227. package/dist/statsAnalyzer/index.js.map +1 -1
  228. package/dist/statsAnalyzer/mqaUtil.js +143 -87
  229. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  230. package/dist/transcription/index.js +22 -47
  231. package/dist/transcription/index.js.map +1 -1
  232. package/dist/types/annotation/annotation.types.d.ts +42 -0
  233. package/dist/types/annotation/constants.d.ts +31 -0
  234. package/dist/types/annotation/index.d.ts +117 -0
  235. package/dist/types/breakouts/breakout.d.ts +8 -0
  236. package/dist/types/breakouts/collection.d.ts +5 -0
  237. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  238. package/dist/types/breakouts/events.d.ts +8 -0
  239. package/dist/types/breakouts/index.d.ts +5 -0
  240. package/dist/types/breakouts/request.d.ts +22 -0
  241. package/dist/types/breakouts/utils.d.ts +15 -0
  242. package/dist/types/common/browser-detection.d.ts +9 -0
  243. package/dist/types/common/collection.d.ts +48 -0
  244. package/dist/types/common/config.d.ts +2 -0
  245. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  246. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  247. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  248. package/dist/types/common/errors/media.d.ts +15 -0
  249. package/dist/types/common/errors/parameter.d.ts +15 -0
  250. package/dist/types/common/errors/password-error.d.ts +15 -0
  251. package/dist/types/common/errors/permission.d.ts +14 -0
  252. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  253. package/dist/types/common/errors/reconnection.d.ts +15 -0
  254. package/dist/types/common/errors/stats.d.ts +15 -0
  255. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  256. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  257. package/dist/types/common/events/events-scope.d.ts +17 -0
  258. package/dist/types/common/events/events.d.ts +12 -0
  259. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  260. package/dist/types/common/events/util.d.ts +2 -0
  261. package/dist/types/common/logs/logger-config.d.ts +2 -0
  262. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  263. package/dist/types/common/logs/request.d.ts +34 -0
  264. package/dist/types/common/queue.d.ts +34 -0
  265. package/dist/types/config.d.ts +72 -0
  266. package/dist/types/constants.d.ts +1016 -0
  267. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  268. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  269. package/dist/types/controls-options-manager/index.d.ts +136 -0
  270. package/dist/types/controls-options-manager/types.d.ts +43 -0
  271. package/dist/types/controls-options-manager/util.d.ts +1 -0
  272. package/dist/types/index.d.ts +7 -0
  273. package/dist/types/interpretation/collection.d.ts +5 -0
  274. package/dist/types/interpretation/index.d.ts +5 -0
  275. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  276. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  277. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  278. package/dist/types/locus-info/fullState.d.ts +2 -0
  279. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  280. package/dist/types/locus-info/index.d.ts +322 -0
  281. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  282. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  283. package/dist/types/locus-info/parser.d.ts +271 -0
  284. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  285. package/dist/types/media/index.d.ts +34 -0
  286. package/dist/types/media/properties.d.ts +93 -0
  287. package/dist/types/media/util.d.ts +2 -0
  288. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  289. package/dist/types/meeting/in-meeting-actions.d.ts +153 -0
  290. package/dist/types/meeting/index.d.ts +1471 -0
  291. package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
  292. package/dist/types/meeting/muteState.d.ts +184 -0
  293. package/dist/types/meeting/request.d.ts +257 -0
  294. package/dist/types/meeting/request.type.d.ts +11 -0
  295. package/dist/types/meeting/state.d.ts +9 -0
  296. package/dist/types/meeting/util.d.ts +78 -0
  297. package/dist/types/meeting-info/collection.d.ts +20 -0
  298. package/dist/types/meeting-info/index.d.ts +62 -0
  299. package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
  300. package/dist/types/meeting-info/request.d.ts +22 -0
  301. package/dist/types/meeting-info/util.d.ts +2 -0
  302. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  303. package/dist/types/meetings/collection.d.ts +31 -0
  304. package/dist/types/meetings/index.d.ts +367 -0
  305. package/dist/types/meetings/meetings.types.d.ts +4 -0
  306. package/dist/types/meetings/request.d.ts +27 -0
  307. package/dist/types/meetings/util.d.ts +18 -0
  308. package/dist/types/member/index.d.ts +159 -0
  309. package/dist/types/member/types.d.ts +32 -0
  310. package/dist/types/member/util.d.ts +2 -0
  311. package/dist/types/members/collection.d.ts +29 -0
  312. package/dist/types/members/index.d.ts +353 -0
  313. package/dist/types/members/request.d.ts +114 -0
  314. package/dist/types/members/types.d.ts +24 -0
  315. package/dist/types/members/util.d.ts +210 -0
  316. package/dist/types/metrics/constants.d.ts +55 -0
  317. package/dist/types/metrics/index.d.ts +45 -0
  318. package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
  319. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  320. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  321. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  322. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  323. package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
  324. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  325. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  326. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  327. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  328. package/dist/types/reachability/index.d.ts +152 -0
  329. package/dist/types/reachability/request.d.ts +37 -0
  330. package/dist/types/reactions/constants.d.ts +3 -0
  331. package/dist/types/reactions/reactions.d.ts +4 -0
  332. package/dist/types/reactions/reactions.type.d.ts +52 -0
  333. package/dist/types/reconnection-manager/index.d.ts +126 -0
  334. package/dist/types/recording-controller/enums.d.ts +7 -0
  335. package/dist/types/recording-controller/index.d.ts +208 -0
  336. package/dist/types/recording-controller/util.d.ts +14 -0
  337. package/dist/types/roap/index.d.ts +77 -0
  338. package/dist/types/roap/request.d.ts +36 -0
  339. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  340. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  341. package/dist/types/rtcMetrics/index.d.ts +46 -0
  342. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  343. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  344. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  345. package/dist/types/transcription/index.d.ts +64 -0
  346. package/internal-README.md +7 -6
  347. package/package.json +29 -21
  348. package/src/annotation/annotation.types.ts +50 -0
  349. package/src/annotation/constants.ts +36 -0
  350. package/src/annotation/index.ts +328 -0
  351. package/src/breakouts/README.md +220 -0
  352. package/src/breakouts/breakout.ts +188 -0
  353. package/src/breakouts/collection.ts +19 -0
  354. package/src/breakouts/edit-lock-error.ts +25 -0
  355. package/src/breakouts/events.ts +56 -0
  356. package/src/breakouts/index.ts +925 -0
  357. package/src/breakouts/request.ts +55 -0
  358. package/src/breakouts/utils.ts +57 -0
  359. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  360. package/src/common/collection.ts +9 -7
  361. package/src/common/{config.js → config.ts} +1 -1
  362. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  363. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  364. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  365. package/src/common/errors/{media.js → media.ts} +11 -7
  366. package/src/common/errors/parameter.ts +11 -7
  367. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  368. package/src/common/errors/{permission.js → permission.ts} +10 -6
  369. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  370. package/src/common/errors/{stats.js → stats.ts} +11 -7
  371. package/src/common/errors/{webex-errors.js → webex-errors.ts} +14 -9
  372. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  373. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  374. package/src/common/events/{events.js → events.ts} +5 -1
  375. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  376. package/src/common/events/{util.js → util.ts} +2 -3
  377. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  378. package/src/common/logs/logger-proxy.ts +44 -0
  379. package/src/common/logs/{request.js → request.ts} +22 -9
  380. package/src/common/queue.ts +22 -9
  381. package/src/{config.js → config.ts} +17 -17
  382. package/src/constants.ts +197 -22
  383. package/src/controls-options-manager/constants.ts +5 -0
  384. package/src/controls-options-manager/enums.ts +18 -0
  385. package/src/controls-options-manager/index.ts +278 -0
  386. package/src/controls-options-manager/types.ts +59 -0
  387. package/src/controls-options-manager/util.ts +300 -0
  388. package/src/index.ts +39 -0
  389. package/src/interpretation/README.md +60 -0
  390. package/src/interpretation/collection.ts +19 -0
  391. package/src/interpretation/index.ts +332 -0
  392. package/src/interpretation/siLanguage.ts +18 -0
  393. package/src/locus-info/controlsUtils.ts +222 -0
  394. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  395. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  396. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  397. package/src/locus-info/{index.js → index.ts} +518 -111
  398. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  399. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +65 -17
  400. package/src/locus-info/{parser.js → parser.ts} +271 -98
  401. package/src/locus-info/{selfUtils.js → selfUtils.ts} +199 -68
  402. package/src/media/index.ts +456 -0
  403. package/src/media/{properties.js → properties.ts} +80 -102
  404. package/src/media/{util.js → util.ts} +2 -2
  405. package/src/mediaQualityMetrics/config.ts +384 -0
  406. package/src/meeting/in-meeting-actions.ts +171 -3
  407. package/src/meeting/index.ts +7070 -0
  408. package/src/meeting/locusMediaRequest.ts +309 -0
  409. package/src/meeting/muteState.ts +450 -0
  410. package/src/meeting/{request.js → request.ts} +354 -214
  411. package/src/meeting/request.type.ts +13 -0
  412. package/src/meeting/{state.js → state.ts} +50 -35
  413. package/src/meeting/util.ts +615 -0
  414. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  415. package/src/meeting-info/index.ts +183 -0
  416. package/src/meeting-info/meeting-info-v2.ts +407 -0
  417. package/src/meeting-info/{request.js → request.ts} +14 -4
  418. package/src/meeting-info/{util.js → util.ts} +60 -51
  419. package/src/meeting-info/{utilv2.js → utilv2.ts} +77 -60
  420. package/src/meetings/{collection.js → collection.ts} +26 -3
  421. package/src/meetings/index.ts +1467 -0
  422. package/src/meetings/meetings.types.ts +12 -0
  423. package/src/meetings/{request.js → request.ts} +34 -25
  424. package/src/meetings/{util.js → util.ts} +137 -36
  425. package/src/member/{index.js → index.ts} +151 -56
  426. package/src/member/types.ts +38 -0
  427. package/src/member/util.ts +383 -0
  428. package/src/members/{collection.js → collection.ts} +10 -2
  429. package/src/members/{index.js → index.ts} +323 -145
  430. package/src/members/request.ts +255 -0
  431. package/src/members/types.ts +28 -0
  432. package/src/members/util.ts +339 -0
  433. package/src/metrics/{constants.js → constants.ts} +2 -6
  434. package/src/metrics/index.ts +73 -0
  435. package/src/multistream/mediaRequestManager.ts +337 -61
  436. package/src/multistream/receiveSlot.ts +69 -26
  437. package/src/multistream/receiveSlotManager.ts +66 -42
  438. package/src/multistream/remoteMedia.ts +40 -5
  439. package/src/multistream/remoteMediaGroup.ts +63 -3
  440. package/src/multistream/remoteMediaManager.ts +263 -66
  441. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  442. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  443. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  444. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  445. package/src/reachability/{index.js → index.ts} +157 -94
  446. package/src/reachability/request.ts +46 -35
  447. package/src/reactions/constants.ts +4 -0
  448. package/src/reactions/reactions.ts +104 -0
  449. package/src/reactions/reactions.type.ts +62 -0
  450. package/src/reconnection-manager/{index.js → index.ts} +254 -136
  451. package/src/recording-controller/enums.ts +8 -0
  452. package/src/recording-controller/index.ts +333 -0
  453. package/src/recording-controller/util.ts +75 -0
  454. package/src/roap/{index.js → index.ts} +86 -78
  455. package/src/roap/request.ts +163 -0
  456. package/src/roap/turnDiscovery.ts +111 -49
  457. package/src/rtcMetrics/constants.ts +3 -0
  458. package/src/rtcMetrics/index.ts +96 -0
  459. package/src/statsAnalyzer/global.ts +37 -0
  460. package/src/statsAnalyzer/index.ts +1272 -0
  461. package/src/statsAnalyzer/mqaUtil.ts +291 -0
  462. package/src/transcription/{index.js → index.ts} +46 -39
  463. package/test/integration/spec/converged-space-meetings.js +233 -0
  464. package/test/integration/spec/journey.js +804 -526
  465. package/test/integration/spec/space-meeting.js +391 -204
  466. package/test/integration/spec/transcription.js +7 -8
  467. package/test/unit/spec/annotation/index.ts +418 -0
  468. package/test/unit/spec/breakouts/breakout.ts +237 -0
  469. package/test/unit/spec/breakouts/collection.ts +15 -0
  470. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  471. package/test/unit/spec/breakouts/events.ts +89 -0
  472. package/test/unit/spec/breakouts/index.ts +1790 -0
  473. package/test/unit/spec/breakouts/request.ts +104 -0
  474. package/test/unit/spec/breakouts/utils.js +72 -0
  475. package/test/unit/spec/common/browser-detection.js +9 -28
  476. package/test/unit/spec/common/queue.js +31 -2
  477. package/test/unit/spec/controls-options-manager/index.js +287 -0
  478. package/test/unit/spec/controls-options-manager/util.js +582 -0
  479. package/test/unit/spec/fixture/locus.js +93 -90
  480. package/test/unit/spec/interpretation/collection.ts +15 -0
  481. package/test/unit/spec/interpretation/index.ts +589 -0
  482. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  483. package/test/unit/spec/locus-info/controlsUtils.js +325 -32
  484. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  485. package/test/unit/spec/locus-info/index.js +1176 -18
  486. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  487. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  488. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  489. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  490. package/test/unit/spec/locus-info/parser.js +65 -31
  491. package/test/unit/spec/locus-info/selfConstant.js +120 -103
  492. package/test/unit/spec/locus-info/selfUtils.js +296 -12
  493. package/test/unit/spec/media/index.ts +162 -68
  494. package/test/unit/spec/media/properties.ts +9 -9
  495. package/test/unit/spec/meeting/in-meeting-actions.ts +82 -3
  496. package/test/unit/spec/meeting/index.js +4569 -1773
  497. package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
  498. package/test/unit/spec/meeting/muteState.js +382 -211
  499. package/test/unit/spec/meeting/request.js +444 -78
  500. package/test/unit/spec/meeting/utils.js +517 -192
  501. package/test/unit/spec/meeting-info/index.js +181 -0
  502. package/test/unit/spec/meeting-info/meetinginfov2.js +481 -76
  503. package/test/unit/spec/meeting-info/request.js +7 -9
  504. package/test/unit/spec/meeting-info/util.js +11 -12
  505. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  506. package/test/unit/spec/meetings/collection.js +15 -1
  507. package/test/unit/spec/meetings/index.js +1254 -330
  508. package/test/unit/spec/meetings/utils.js +220 -14
  509. package/test/unit/spec/member/index.js +58 -5
  510. package/test/unit/spec/member/util.js +494 -26
  511. package/test/unit/spec/members/index.js +423 -55
  512. package/test/unit/spec/members/request.js +228 -40
  513. package/test/unit/spec/members/utils.js +191 -4
  514. package/test/unit/spec/metrics/index.js +12 -66
  515. package/test/unit/spec/multistream/mediaRequestManager.ts +1013 -106
  516. package/test/unit/spec/multistream/receiveSlot.ts +77 -18
  517. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  518. package/test/unit/spec/multistream/remoteMedia.ts +40 -2
  519. package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
  520. package/test/unit/spec/multistream/remoteMediaManager.ts +730 -65
  521. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  522. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  523. package/test/unit/spec/reachability/index.ts +176 -27
  524. package/test/unit/spec/reachability/request.js +66 -0
  525. package/test/unit/spec/reconnection-manager/index.js +155 -9
  526. package/test/unit/spec/recording-controller/index.js +307 -0
  527. package/test/unit/spec/recording-controller/util.js +229 -0
  528. package/test/unit/spec/roap/index.ts +28 -52
  529. package/test/unit/spec/roap/request.ts +225 -0
  530. package/test/unit/spec/roap/turnDiscovery.ts +92 -50
  531. package/test/unit/spec/rtcMetrics/index.ts +60 -0
  532. package/test/unit/spec/stats-analyzer/index.js +116 -60
  533. package/test/utils/cmr.js +44 -42
  534. package/test/utils/constants.js +9 -0
  535. package/test/utils/integrationTestUtils.js +46 -0
  536. package/test/utils/testUtils.js +63 -99
  537. package/test/utils/webex-config.js +22 -18
  538. package/test/utils/webex-test-users.js +57 -50
  539. package/tsconfig.json +6 -0
  540. package/dist/media/internal-media-core-wrapper.js +0 -22
  541. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  542. package/dist/meeting/effectsState.js +0 -327
  543. package/dist/meeting/effectsState.js.map +0 -1
  544. package/dist/metrics/config.js +0 -301
  545. package/dist/metrics/config.js.map +0 -1
  546. package/dist/multistream/multistreamMedia.js +0 -116
  547. package/dist/multistream/multistreamMedia.js.map +0 -1
  548. package/dist/peer-connection-manager/util.js +0 -124
  549. package/dist/peer-connection-manager/util.js.map +0 -1
  550. package/src/common/logs/logger-proxy.js +0 -33
  551. package/src/index.js +0 -15
  552. package/src/locus-info/controlsUtils.js +0 -102
  553. package/src/media/index.js +0 -459
  554. package/src/media/internal-media-core-wrapper.ts +0 -9
  555. package/src/mediaQualityMetrics/config.js +0 -382
  556. package/src/meeting/effectsState.js +0 -205
  557. package/src/meeting/index.js +0 -6284
  558. package/src/meeting/muteState.js +0 -318
  559. package/src/meeting/util.js +0 -506
  560. package/src/meeting-info/index.js +0 -131
  561. package/src/meeting-info/meeting-info-v2.js +0 -255
  562. package/src/meetings/index.js +0 -1015
  563. package/src/member/util.js +0 -254
  564. package/src/members/request.js +0 -131
  565. package/src/members/util.js +0 -258
  566. package/src/metrics/config.js +0 -324
  567. package/src/metrics/index.js +0 -530
  568. package/src/multistream/multistreamMedia.ts +0 -92
  569. package/src/peer-connection-manager/util.ts +0 -117
  570. package/src/roap/request.js +0 -127
  571. package/src/statsAnalyzer/global.js +0 -133
  572. package/src/statsAnalyzer/index.js +0 -1006
  573. package/src/statsAnalyzer/mqaUtil.js +0 -173
  574. package/test/unit/spec/meeting/effectsState.js +0 -291
  575. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  576. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -1,33 +1,64 @@
1
- import {MediaConnection as MC} from '@webex/internal-media-core';
1
+ import {ConnectionState, Event} from '@webex/internal-media-core';
2
2
 
3
3
  import {
4
- MEETINGS,
5
- PC_BAIL_TIMEOUT,
6
- QUALITY_LEVELS
7
- } from '../constants';
4
+ LocalCameraTrack,
5
+ LocalMicrophoneTrack,
6
+ LocalDisplayTrack,
7
+ LocalSystemAudioTrack,
8
+ } from '@webex/media-helpers';
9
+
10
+ import {MEETINGS, PC_BAIL_TIMEOUT, QUALITY_LEVELS} from '../constants';
8
11
  import LoggerProxy from '../common/logs/logger-proxy';
9
12
 
13
+ export type MediaDirection = {
14
+ sendAudio: boolean;
15
+ sendVideo: boolean;
16
+ sendShare: boolean;
17
+ receiveAudio: boolean;
18
+ receiveVideo: boolean;
19
+ receiveShare: boolean;
20
+ };
21
+
10
22
  /**
11
23
  * @class MediaProperties
12
24
  */
13
25
  export default class MediaProperties {
26
+ audioTrack?: LocalMicrophoneTrack;
27
+ mediaDirection: MediaDirection;
28
+ mediaSettings: any;
29
+ webrtcMediaConnection: any;
30
+ remoteAudioTrack: any;
31
+ remoteQualityLevel: any;
32
+ remoteShare: any;
33
+ remoteVideoTrack: any;
34
+ shareVideoTrack?: LocalDisplayTrack;
35
+ shareAudioTrack?: LocalSystemAudioTrack;
36
+ videoDeviceId: any;
37
+ videoTrack?: LocalCameraTrack;
14
38
  namespace = MEETINGS;
15
39
 
16
40
  /**
17
41
  * @param {Object} [options] -- to auto construct
18
42
  * @returns {MediaProperties}
19
43
  */
20
- constructor(options = {}) {
44
+ constructor() {
21
45
  this.webrtcMediaConnection = null;
22
- this.mediaDirection = options.mediaDirection;
23
- this.videoTrack = options.videoTrack;
24
- this.audioTrack = options.audioTrack;
25
- this.shareTrack = options.shareTrack;
26
- this.remoteShare = options.remoteShare;
27
- this.remoteAudioTrack = options.remoteAudioTrack;
28
- this.remoteVideoTrack = options.remoteVideoTrack;
29
- this.localQualityLevel = options.localQualityLevel || QUALITY_LEVELS['720p'];
30
- this.remoteQualityLevel = options.remoteQualityLevel || QUALITY_LEVELS.HIGH;
46
+ this.mediaDirection = {
47
+ receiveAudio: false,
48
+ receiveVideo: false,
49
+ receiveShare: false,
50
+ sendAudio: false,
51
+ sendVideo: false,
52
+ sendShare: false,
53
+ };
54
+ this.videoTrack = null;
55
+ this.audioTrack = null;
56
+ this.shareVideoTrack = null;
57
+ this.shareAudioTrack = null;
58
+ this.remoteShare = undefined;
59
+ this.remoteAudioTrack = undefined;
60
+ this.remoteVideoTrack = undefined;
61
+ this.remoteQualityLevel = QUALITY_LEVELS.HIGH;
31
62
  this.mediaSettings = {};
32
63
  this.videoDeviceId = null;
33
64
  }
@@ -52,20 +83,20 @@ export default class MediaProperties {
52
83
  this.webrtcMediaConnection = mediaPeerConnection;
53
84
  }
54
85
 
55
- setLocalVideoTrack(videoTrack) {
86
+ setLocalVideoTrack(videoTrack?: LocalCameraTrack) {
56
87
  this.videoTrack = videoTrack;
57
88
  }
58
89
 
59
- setLocalAudioTrack(audioTrack) {
90
+ setLocalAudioTrack(audioTrack?: LocalMicrophoneTrack) {
60
91
  this.audioTrack = audioTrack;
61
92
  }
62
93
 
63
- setLocalQualityLevel(localQualityLevel) {
64
- this.localQualityLevel = localQualityLevel;
94
+ setLocalShareVideoTrack(shareVideoTrack?: LocalDisplayTrack) {
95
+ this.shareVideoTrack = shareVideoTrack;
65
96
  }
66
97
 
67
- setLocalShareTrack(shareTrack) {
68
- this.shareTrack = shareTrack;
98
+ setLocalShareAudioTrack(shareAudioTrack?: LocalSystemAudioTrack) {
99
+ this.shareAudioTrack = shareAudioTrack;
69
100
  }
70
101
 
71
102
  setRemoteQualityLevel(remoteQualityLevel) {
@@ -81,7 +112,7 @@ export default class MediaProperties {
81
112
  * @param {MediaTrack} remoteAudioTrack MediaTrack to save
82
113
  * @returns {void}
83
114
  */
84
- setRemoteAudioTrack(remoteAudioTrack) {
115
+ setRemoteAudioTrack(remoteAudioTrack: any) {
85
116
  this.remoteAudioTrack = remoteAudioTrack;
86
117
  }
87
118
 
@@ -90,7 +121,7 @@ export default class MediaProperties {
90
121
  * @param {MediaTrack} remoteVideoTrack MediaTrack to save
91
122
  * @returns {void}
92
123
  */
93
- setRemoteVideoTrack(remoteVideoTrack) {
124
+ setRemoteVideoTrack(remoteVideoTrack: any) {
94
125
  this.remoteVideoTrack = remoteVideoTrack;
95
126
  }
96
127
 
@@ -99,7 +130,7 @@ export default class MediaProperties {
99
130
  * @param {string} deviceId Preferred video input device
100
131
  * @returns {void}
101
132
  */
102
- setVideoDeviceId(deviceId) {
133
+ setVideoDeviceId(deviceId: string) {
103
134
  this.videoDeviceId = deviceId;
104
135
  }
105
136
 
@@ -107,29 +138,6 @@ export default class MediaProperties {
107
138
  this.webrtcMediaConnection = null;
108
139
  }
109
140
 
110
- unsetLocalVideoTrack() {
111
- this.videoTrack = null;
112
- }
113
-
114
- unsetLocalShareTrack() {
115
- this.shareTrack = null;
116
- }
117
-
118
- unsetLocalAudioTrack() {
119
- this.audioTrack = null;
120
- }
121
-
122
- /**
123
- * Removes remote stream from class instance
124
- * @deprecated after v1.89.3
125
- * @returns {void}
126
- */
127
- unsetRemoteStream() {
128
- LoggerProxy.logger.warn('Media:properties#unsetRemoteStream --> [DEPRECATION WARNING]: unsetRemoteStream has been deprecated after v1.89.3 (use unsetRemoteTracks instead)');
129
- // unsets audio and video only
130
- this.unsetRemoteMedia();
131
- }
132
-
133
141
  /**
134
142
  * Removes both remote audio and video from class instance
135
143
  * @returns {void}
@@ -143,22 +151,6 @@ export default class MediaProperties {
143
151
  this.remoteShare = null;
144
152
  }
145
153
 
146
- unsetLocalVideoTracks() {
147
- this.unsetLocalVideoTrack();
148
- this.unsetLocalShareTrack();
149
- }
150
-
151
- /**
152
- * Removes remote stream and remote share from class instance
153
- * @deprecated after v1.89.3
154
- * @returns {void}
155
- */
156
- unsetRemoteStreams() {
157
- LoggerProxy.logger.warn('Media:properties#unsetRemoteStreams --> [DEPRECATION WARNING]: unsetRemoteStreams has been deprecated after v1.89.3 (use unsetRemoteTracks instead)');
158
- this.unsetRemoteStream();
159
- this.unsetRemoteShare();
160
- }
161
-
162
154
  /**
163
155
  * Unsets all remote tracks
164
156
  * @returns {void}
@@ -168,29 +160,12 @@ export default class MediaProperties {
168
160
  this.unsetRemoteShare();
169
161
  }
170
162
 
171
- unsetShareStreams() {
172
- this.unsetLocalShareTrack();
173
- this.unsetRemoteShare();
174
- }
175
-
176
- /**
177
- * Removes both local and remote video stream from class instance
178
- * @deprecated after v1.89.3
179
- * @returns {void}
180
- */
181
- unsetMediaStreams() {
182
- LoggerProxy.logger.warn('Media:properties#unsetMediaStreams --> [DEPRECATION WARNING]: unsetMediaStreams has been deprecated after v1.89.3 (use unsetMediaTracks instead)');
183
- this.unsetLocalVideoTrack();
184
- this.unsetRemoteStream();
185
- }
186
-
187
163
  /**
188
- * Removes both local and remote video stream from class instance
189
- * @returns {void}
164
+ * Returns if we have at least one local share track or not.
165
+ * @returns {Boolean}
190
166
  */
191
- unsetMediaTracks() {
192
- this.unsetLocalVideoTrack();
193
- this.unsetRemoteMedia();
167
+ hasLocalShareTrack() {
168
+ return !!(this.shareAudioTrack || this.shareVideoTrack);
194
169
  }
195
170
 
196
171
  /**
@@ -198,34 +173,35 @@ export default class MediaProperties {
198
173
  *
199
174
  * @returns {Promise<void>}
200
175
  */
201
- waitForMediaConnectionConnected() {
202
- const isConnected = () => (
203
- this.webrtcMediaConnection.getConnectionState() === MC.ConnectionState.Connected
204
- );
176
+ waitForMediaConnectionConnected(): Promise<void> {
177
+ const isConnected = () =>
178
+ this.webrtcMediaConnection.getConnectionState() === ConnectionState.Connected;
205
179
 
206
180
  if (isConnected()) {
207
181
  return Promise.resolve();
208
182
  }
209
183
 
210
- return new Promise((resolve, reject) => {
184
+ return new Promise<void>((resolve, reject) => {
211
185
  let timer;
212
186
 
213
187
  const connectionStateListener = () => {
214
- LoggerProxy.logger.log(`Media:properties#waitForMediaConnectionConnected --> connection state: ${this.webrtcMediaConnection.getConnectionState()}`);
188
+ LoggerProxy.logger.log(
189
+ `Media:properties#waitForMediaConnectionConnected --> connection state: ${this.webrtcMediaConnection.getConnectionState()}`
190
+ );
215
191
 
216
192
  if (isConnected()) {
217
193
  clearTimeout(timer);
218
- this.webrtcMediaConnection.off(MC.Event.CONNECTION_STATE_CHANGED, connectionStateListener);
194
+ this.webrtcMediaConnection.off(Event.CONNECTION_STATE_CHANGED, connectionStateListener);
219
195
  resolve();
220
196
  }
221
197
  };
222
198
 
223
199
  timer = setTimeout(() => {
224
- this.webrtcMediaConnection.off(MC.Event.CONNECTION_STATE_CHANGED, connectionStateListener);
200
+ this.webrtcMediaConnection.off(Event.CONNECTION_STATE_CHANGED, connectionStateListener);
225
201
  reject();
226
202
  }, PC_BAIL_TIMEOUT);
227
203
 
228
- this.webrtcMediaConnection.on(MC.Event.CONNECTION_STATE_CHANGED, connectionStateListener);
204
+ this.webrtcMediaConnection.on(Event.CONNECTION_STATE_CHANGED, connectionStateListener);
229
205
  });
230
206
  }
231
207
 
@@ -241,13 +217,12 @@ export default class MediaProperties {
241
217
  const allStatsReports = [];
242
218
 
243
219
  try {
244
- // eslint-disable-next-line no-await-in-loop
245
220
  const statsResult = await this.webrtcMediaConnection.getStats();
246
-
247
221
  statsResult.forEach((report) => allStatsReports.push(report));
248
- }
249
- catch (error) {
250
- LoggerProxy.logger.warn(`Media:properties#getCurrentConnectionType --> getStats() failed: ${error}`);
222
+ } catch (error) {
223
+ LoggerProxy.logger.warn(
224
+ `Media:properties#getCurrentConnectionType --> getStats() failed: ${error}`
225
+ );
251
226
  }
252
227
 
253
228
  const successfulCandidatePairs = allStatsReports.filter(
@@ -258,10 +233,14 @@ export default class MediaProperties {
258
233
 
259
234
  // all of the successful pairs should have the same connection type, so just return the type for the first one
260
235
  successfulCandidatePairs.some((pair) => {
261
- const localCandidate = allStatsReports.find((report) => report.type === 'local-candidate' && report.id === pair.localCandidateId);
236
+ const localCandidate = allStatsReports.find(
237
+ (report) => report.type === 'local-candidate' && report.id === pair.localCandidateId
238
+ );
262
239
 
263
240
  if (localCandidate === undefined) {
264
- LoggerProxy.logger.warn(`Media:properties#getCurrentConnectionType --> failed to find local candidate "${pair.localCandidateId}" in getStats() results`);
241
+ LoggerProxy.logger.warn(
242
+ `Media:properties#getCurrentConnectionType --> failed to find local candidate "${pair.localCandidateId}" in getStats() results`
243
+ );
265
244
 
266
245
  return false;
267
246
  }
@@ -270,8 +249,7 @@ export default class MediaProperties {
270
249
 
271
250
  if (localCandidate.relayProtocol) {
272
251
  connectionType = `TURN-${localCandidate.relayProtocol.toUpperCase()}`;
273
- }
274
- else {
252
+ } else {
275
253
  connectionType = localCandidate.protocol?.toUpperCase(); // it will be UDP or TCP
276
254
  }
277
255
 
@@ -2,11 +2,11 @@
2
2
 
3
3
  import LoggerProxy from '../common/logs/logger-proxy';
4
4
 
5
- const MediaUtil = {};
5
+ const MediaUtil: any = {};
6
6
 
7
7
  MediaUtil.createMediaStream = (tracks) => {
8
8
  if (!tracks) {
9
- LoggerProxy.logger.error('Media:util#createMediaStream --> Tracks don\'t exist');
9
+ LoggerProxy.logger.error("Media:util#createMediaStream --> Tracks don't exist");
10
10
  }
11
11
  const filtredTracks = tracks.filter((element) => !!element);
12
12
 
@@ -0,0 +1,384 @@
1
+ export const emptyMqaInterval = {
2
+ audioReceive: [],
3
+ audioTransmit: [],
4
+ intervalMetadata: {
5
+ peerReflexiveIP: '0.0.0.0',
6
+ peripherals: [],
7
+ processAverageCPU: 0,
8
+ processMaximumCPU: 0,
9
+ systemAverageCPU: 0,
10
+ systemMaximumCPU: 0,
11
+ },
12
+ networkType: '',
13
+ intervalNumber: 0,
14
+ videoReceive: [],
15
+ videoTransmit: [],
16
+ };
17
+
18
+ export const emptyAudioReceive = {
19
+ common: {
20
+ common: {
21
+ direction: 'inactive',
22
+ isMain: true,
23
+ mariFecEnabled: false,
24
+ mariQosEnabled: false,
25
+ multistreamEnabled: false,
26
+ },
27
+ dtlsBitrate: 0,
28
+ dtlsPackets: 0,
29
+ fecBitrate: 0,
30
+ fecPackets: 0,
31
+ maxBitrate: 0,
32
+ mediaHopByHopLost: 0,
33
+ rtcpBitrate: 0,
34
+ rtcpPackets: 0,
35
+ rtpBitrate: 0,
36
+ rtpHopByHopLost: 0,
37
+ rtpPackets: 0,
38
+ rtpRecovered: 0,
39
+ rtxBitrate: 0,
40
+ rtxPackets: 0,
41
+ srtcpUnprotectErrors: 0,
42
+ srtpUnprotectErrors: 0,
43
+ stunBitrate: 0,
44
+ stunPackets: 0,
45
+ transportType: 'UDP',
46
+ },
47
+ streams: [
48
+ {
49
+ common: {
50
+ codec: 'opus',
51
+ concealedFrames: 0,
52
+ csi: [],
53
+ maxConcealRunLength: 0,
54
+ optimalBitrate: 0,
55
+ optimalFrameRate: 0,
56
+ receivedBitrate: 0,
57
+ receivedFrameRate: 0,
58
+ renderedFrameRate: 0,
59
+ requestedBitrate: 0,
60
+ requestedFrameRate: 0,
61
+ rtpEndToEndLost: 0,
62
+ maxRtpJitter: 0,
63
+ meanRtpJitter: 0,
64
+ rtpPackets: 0,
65
+ ssci: 0,
66
+ },
67
+ },
68
+ ],
69
+ };
70
+
71
+ export const emptyAudioTransmit = {
72
+ common: {
73
+ availableBitrate: 0,
74
+ common: {
75
+ direction: 'inactive',
76
+ isMain: true,
77
+ mariFecEnabled: false,
78
+ mariQosEnabled: false,
79
+ multistreamEnabled: false,
80
+ },
81
+ dtlsBitrate: 0,
82
+ dtlsPackets: 0,
83
+ fecBitrate: 0,
84
+ fecPackets: 0,
85
+ maxBitrate: 0,
86
+ queueDelay: 0,
87
+ remoteJitter: 0,
88
+ remoteLossRate: 0,
89
+ remoteReceiveRate: 0,
90
+ roundTripTime: 0,
91
+ rtcpBitrate: 0,
92
+ rtcpPackets: 0,
93
+ rtpBitrate: 0,
94
+ rtpPackets: 0,
95
+ rtxBitrate: 0,
96
+ rtxPackets: 0,
97
+ stunBitrate: 0,
98
+ stunPackets: 0,
99
+ transportType: 'UDP',
100
+ },
101
+ streams: [
102
+ {
103
+ common: {
104
+ codec: 'opus',
105
+ csi: [],
106
+ requestedBitrate: 0,
107
+ requestedFrames: 0,
108
+ rtpPackets: 0,
109
+ ssci: 0,
110
+ transmittedBitrate: 0,
111
+ transmittedFrameRate: 0,
112
+ },
113
+ },
114
+ ],
115
+ };
116
+
117
+ export const emptyVideoReceive = {
118
+ common: {
119
+ common: {
120
+ direction: 'inactive',
121
+ isMain: true, // Not avaliable
122
+ mariFecEnabled: true, // Not avaliable
123
+ mariQosEnabled: true, // Not avaliable
124
+ multistreamEnabled: true, // Not avaliable
125
+ },
126
+ dtlsBitrate: 0, // Not avaliable
127
+ dtlsPackets: 0, // Not avaliable
128
+ fecBitrate: 0, // Not avaliable
129
+ fecPackets: 0, // Not avaliable
130
+ maxBitrate: 0,
131
+ mediaHopByHopLost: 0,
132
+ rtcpBitrate: 0, // Not avaliable
133
+ rtcpPackets: 0, // Not avaliable
134
+ rtpBitrate: 0,
135
+ rtpHopByHopLost: 0,
136
+ rtpPackets: 0,
137
+ rtpRecovered: 0, // Not avaliable
138
+ rtxBitrate: 0, // Not avaliable
139
+ rtxPackets: 0, // Not avaliable
140
+ srtcpUnprotectErrors: 0, // Not avaliable
141
+ srtpUnprotectErrors: 0, // Not avaliable
142
+ stunBitrate: 0, // Not avaliable
143
+ stunPackets: 0, // Not avaliable
144
+ transportType: 'UDP',
145
+ },
146
+ streams: [
147
+ {
148
+ common: {
149
+ codec: 'H264',
150
+ concealedFrames: 0, // Not avaliable
151
+ csi: [],
152
+ maxConcealRunLength: 0, // Not avaliable
153
+ optimalBitrate: 0,
154
+ optimalFrameRate: 0,
155
+ receivedBitrate: 0,
156
+ receivedFrameRate: 0,
157
+ renderedFrameRate: 0, // Not avaliable
158
+ requestedBitrate: 0,
159
+ requestedFrameRate: 0,
160
+ rtpEndToEndLost: 0,
161
+ rtpJitter: 0,
162
+ rtpPackets: 0,
163
+ ssci: 0, // Not avaliable
164
+ },
165
+ h264CodecProfile: 'BP',
166
+ isActiveSpeaker: true,
167
+ optimalFrameSize: 0, // Not avaliable
168
+ receivedFrameSize: 0,
169
+ receivedHeight: 0,
170
+ receivedKeyFrames: 0,
171
+ receivedKeyFramesForRequest: 0,
172
+ receivedKeyFramesSourceChange: 0,
173
+ receivedKeyFramesUnknown: 0,
174
+ receivedWidth: 0,
175
+ requestedFrameSize: 0,
176
+ requestedKeyFrames: 0,
177
+ },
178
+ ],
179
+ };
180
+
181
+ export const emptyVideoTransmit = {
182
+ common: {
183
+ availableBitrate: 0, // Not avaliable currently hardcoded
184
+ common: {
185
+ direction: 'inactive',
186
+ isMain: true,
187
+ mariFecEnabled: false, // Not avaliable
188
+ mariQosEnabled: false, // Not avaliable
189
+ multistreamEnabled: false, // Not avaliable
190
+ },
191
+ dtlsBitrate: 0, // Not avaliable
192
+ dtlsPackets: 0, // Not avaliable
193
+ fecBitrate: 0, // Not avaliable
194
+ fecPackets: 0, // TODO: check inbound-rtp// Not avaliable
195
+ maxBitrate: 0, // Currently hardcoded
196
+ queueDelay: 0, // outboundRtp.totalPacketSentDelay // TODO: check if totalInterFrameDelay/ packetSentDelay/ jitterBufferDalay
197
+ remoteJitter: 0, // remoteInboundRtp.jitter
198
+ remoteLossRate: 0, // comparedResults.lossRate
199
+ remoteReceiveRate: 0, // compareResults.packetsLost
200
+ roundTripTime: 0, // compareResults.roundTripTime
201
+ rtcpBitrate: 0, // Dont have access to it
202
+ rtcpPackets: 0, // Dont have access to rtcp
203
+ rtpBitrate: 0, // Dont have access
204
+ rtpPackets: 0, // outboundRtp.packetsSent
205
+ rtxBitrate: 0, // Dont have access to it
206
+ rtxPackets: 0, // Dont have access to it
207
+ stunBitrate: 0, // Dont have access to it
208
+ stunPackets: 0, // Dont have access to it
209
+ transportType: 'UDP', // TODO: need to calculate
210
+ },
211
+ streams: [
212
+ {
213
+ common: {
214
+ codec: 'H264',
215
+ csi: [],
216
+ duplicateSsci: 0, // Not Avaliable
217
+ requestedBitrate: 0, // TODO: from remote SDP
218
+ requestedFrames: 0, // TODO: from remote SDP
219
+ rtpPackets: 0, // same as rtp packets
220
+ ssci: 0,
221
+ transmittedBitrate: 0, // TODO: get in the candidate pair
222
+ transmittedFrameRate: 0, // TODO: from track info
223
+ },
224
+ h264CodecProfile: 'BP', // TODO: from localSDP
225
+ isAvatar: false, // Not Avaliable
226
+ isHardwareEncoded: false, // Not Avaliable
227
+ localConfigurationChanges: 2, // Not Avaliable
228
+ maxFrameQp: 0, // Not Avaliable
229
+ maxNoiseLevel: 0, // Not Avaliable
230
+ minRegionQp: 0, // Not Avaliable
231
+ remoteConfigurationChanges: 0, // Not Avaliable
232
+ requestedFrameSize: 0, // TODO: from remote SDP
233
+ requestedKeyFrames: 0, // outbound Fir request
234
+ transmittedFrameSize: 0, // Not Avaliable
235
+ transmittedHeight: 0,
236
+ transmittedKeyFrames: 0, // Key frames encoded
237
+ transmittedKeyFramesClient: 0, // Not Avaliable
238
+ transmittedKeyFramesConfigurationChange: 0, // Not Avaliable
239
+ transmittedKeyFramesFeedback: 0, // Not Avaliable
240
+ transmittedKeyFramesLocalDrop: 0, // Not Avaliable
241
+ transmittedKeyFramesOtherLayer: 0, // Not Avaliable
242
+ transmittedKeyFramesPeriodic: 0, // Not Avaliable
243
+ transmittedKeyFramesSceneChange: 0, // Not Avaliable
244
+ transmittedKeyFramesStartup: 0, // Not Avaliable
245
+ transmittedKeyFramesUnknown: 0, // Not Avaliable
246
+ transmittedWidth: 0,
247
+ },
248
+ ],
249
+ };
250
+
251
+ export const emptyVideoShareReceive = {
252
+ common: {
253
+ common: {
254
+ direction: 'inactive',
255
+ isMain: false, // Not avaliable
256
+ mariFecEnabled: true, // Not avaliable
257
+ mariQosEnabled: true, // Not avaliable
258
+ multistreamEnabled: true, // Not avaliable
259
+ },
260
+ dtlsBitrate: 0, // Not avaliable
261
+ dtlsPackets: 0, // Not avaliable
262
+ fecBitrate: 0, // Not avaliable
263
+ fecPackets: 0, // Not avaliable
264
+ maxBitrate: 0,
265
+ mediaHopByHopLost: 0,
266
+ rtcpBitrate: 0, // Not avaliable
267
+ rtcpPackets: 0, // Not avaliable
268
+ rtpBitrate: 0,
269
+ rtpHopByHopLost: 0,
270
+ rtpPackets: 0,
271
+ rtpRecovered: 0, // Not avaliable
272
+ rtxBitrate: 0, // Not avaliable
273
+ rtxPackets: 0, // Not avaliable
274
+ srtcpUnprotectErrors: 0, // Not avaliable
275
+ srtpUnprotectErrors: 0, // Not avaliable
276
+ stunBitrate: 0, // Not avaliable
277
+ stunPackets: 0, // Not avaliable
278
+ transportType: 'UDP',
279
+ },
280
+ streams: [
281
+ {
282
+ common: {
283
+ codec: 'H264',
284
+ concealedFrames: 0, // Not avaliable
285
+ csi: [],
286
+ maxConcealRunLength: 0, // Not avaliable
287
+ optimalBitrate: 0,
288
+ optimalFrameRate: 0,
289
+ receivedBitrate: 0,
290
+ receivedFrameRate: 0,
291
+ renderedFrameRate: 0, // Not avaliable
292
+ requestedBitrate: 0,
293
+ requestedFrameRate: 0,
294
+ rtpEndToEndLost: 0,
295
+ rtpJitter: 0,
296
+ rtpPackets: 0,
297
+ ssci: 0, // Not avaliable
298
+ },
299
+ h264CodecProfile: 'BP',
300
+ isActiveSpeaker: true,
301
+ optimalFrameSize: 0, // Not avaliable
302
+ receivedFrameSize: 0,
303
+ receivedHeight: 0,
304
+ receivedKeyFrames: 0,
305
+ receivedKeyFramesForRequest: 0,
306
+ receivedKeyFramesSourceChange: 0,
307
+ receivedKeyFramesUnknown: 0,
308
+ receivedWidth: 0,
309
+ requestedFrameSize: 0,
310
+ requestedKeyFrames: 0,
311
+ },
312
+ ],
313
+ };
314
+
315
+ export const emptyVideoShareTransmit = {
316
+ // sceen sharing
317
+ common: {
318
+ availableBitrate: 0, // Not avaliable currently hardcoded
319
+ common: {
320
+ direction: 'inactive',
321
+ isMain: false,
322
+ mariFecEnabled: false, // Not avaliable
323
+ mariQosEnabled: false, // Not avaliable
324
+ multistreamEnabled: false, // Not avaliable
325
+ },
326
+ dtlsBitrate: 0, // Not avaliable
327
+ dtlsPackets: 0, // Not avaliable
328
+ fecBitrate: 0, // Not avaliable
329
+ fecPackets: 0, // TODO: check inbound-rtp// Not avaliable
330
+ maxBitrate: 0, // Currently hardcoded
331
+ queueDelay: 0, // outboundRtp.totalPacketSentDelay // TODO: check if totalInterFrameDelay/ packetSentDelay/ jitterBufferDalay
332
+ remoteJitter: 0, // remoteInboundRtp.jitter
333
+ remoteLossRate: 0, // comparedResults.lossRate
334
+ remoteReceiveRate: 0, // compareResults.packetsLost
335
+ roundTripTime: 0, // compareResults.roundTripTime
336
+ rtcpBitrate: 0, // Dont have access to it
337
+ rtcpPackets: 0, // Dont have access to rtcp
338
+ rtpBitrate: 0, // Dont have access
339
+ rtpPackets: 0, // outboundRtp.packetsSent
340
+ rtxBitrate: 0, // Dont have access to it
341
+ rtxPackets: 0, // Dont have access to it
342
+ stunBitrate: 0, // Dont have access to it
343
+ stunPackets: 0, // Dont have access to it
344
+ transportType: 'UDP', // TODO: need to calculate
345
+ },
346
+ streams: [
347
+ {
348
+ common: {
349
+ codec: 'H264',
350
+ csi: [],
351
+ duplicateSsci: 0, // Not Avaliable
352
+ requestedBitrate: 0, // TODO: from remote SDP
353
+ requestedFrames: 0, // TODO: from remote SDP
354
+ rtpPackets: 0, // same as rtp packets
355
+ ssci: 0,
356
+ transmittedBitrate: 0, // TODO: get in the candidate pair
357
+ transmittedFrameRate: 0, // TODO: from track info
358
+ },
359
+ h264CodecProfile: 'BP', // TODO: from localSDP
360
+ isAvatar: false, // Not Avaliable
361
+ isHardwareEncoded: false, // Not Avaliable
362
+ localConfigurationChanges: 2, // Not Avaliable
363
+ maxFrameQp: 0, // Not Avaliable
364
+ maxNoiseLevel: 0, // Not Avaliable
365
+ minRegionQp: 0, // Not Avaliable
366
+ remoteConfigurationChanges: 0, // Not Avaliable
367
+ requestedFrameSize: 0, // TODO: from remote SDP
368
+ requestedKeyFrames: 0, // outbound Fir request
369
+ transmittedFrameSize: 0, // Not Avaliable
370
+ transmittedHeight: 0,
371
+ transmittedKeyFrames: 0, // Key frames encoded
372
+ transmittedKeyFramesClient: 0, // Not Avaliable
373
+ transmittedKeyFramesConfigurationChange: 0, // Not Avaliable
374
+ transmittedKeyFramesFeedback: 0, // Not Avaliable
375
+ transmittedKeyFramesLocalDrop: 0, // Not Avaliable
376
+ transmittedKeyFramesOtherLayer: 0, // Not Avaliable
377
+ transmittedKeyFramesPeriodic: 0, // Not Avaliable
378
+ transmittedKeyFramesSceneChange: 0, // Not Avaliable
379
+ transmittedKeyFramesStartup: 0, // Not Avaliable
380
+ transmittedKeyFramesUnknown: 0, // Not Avaliable
381
+ transmittedWidth: 0,
382
+ },
383
+ ],
384
+ };