@webex/plugin-meetings 3.0.0-beta.1 → 3.0.0-beta.104

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 (548) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/annotation/annotation.types.js +7 -0
  4. package/dist/annotation/annotation.types.js.map +1 -0
  5. package/dist/annotation/constants.js +48 -0
  6. package/dist/annotation/constants.js.map +1 -0
  7. package/dist/annotation/index.js +357 -0
  8. package/dist/annotation/index.js.map +1 -0
  9. package/dist/breakouts/breakout.js +176 -0
  10. package/dist/breakouts/breakout.js.map +1 -0
  11. package/dist/breakouts/collection.js +23 -0
  12. package/dist/breakouts/collection.js.map +1 -0
  13. package/dist/breakouts/edit-lock-error.js +52 -0
  14. package/dist/breakouts/edit-lock-error.js.map +1 -0
  15. package/dist/breakouts/events.js +43 -0
  16. package/dist/breakouts/events.js.map +1 -0
  17. package/dist/breakouts/index.js +919 -0
  18. package/dist/breakouts/index.js.map +1 -0
  19. package/dist/breakouts/request.js +78 -0
  20. package/dist/breakouts/request.js.map +1 -0
  21. package/dist/breakouts/utils.js +67 -0
  22. package/dist/breakouts/utils.js.map +1 -0
  23. package/dist/common/browser-detection.js +1 -20
  24. package/dist/common/browser-detection.js.map +1 -1
  25. package/dist/common/collection.js +5 -20
  26. package/dist/common/collection.js.map +1 -1
  27. package/dist/common/config.js +0 -7
  28. package/dist/common/config.js.map +1 -1
  29. package/dist/common/errors/captcha-error.js +10 -24
  30. package/dist/common/errors/captcha-error.js.map +1 -1
  31. package/dist/common/errors/intent-to-join.js +11 -24
  32. package/dist/common/errors/intent-to-join.js.map +1 -1
  33. package/dist/common/errors/join-meeting.js +12 -25
  34. package/dist/common/errors/join-meeting.js.map +1 -1
  35. package/dist/common/errors/media.js +10 -24
  36. package/dist/common/errors/media.js.map +1 -1
  37. package/dist/common/errors/parameter.js +5 -33
  38. package/dist/common/errors/parameter.js.map +1 -1
  39. package/dist/common/errors/password-error.js +10 -24
  40. package/dist/common/errors/password-error.js.map +1 -1
  41. package/dist/common/errors/permission.js +9 -23
  42. package/dist/common/errors/permission.js.map +1 -1
  43. package/dist/common/errors/reconnection-in-progress.js +0 -17
  44. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  45. package/dist/common/errors/reconnection.js +10 -24
  46. package/dist/common/errors/reconnection.js.map +1 -1
  47. package/dist/common/errors/stats.js +10 -24
  48. package/dist/common/errors/stats.js.map +1 -1
  49. package/dist/common/errors/webex-errors.js +10 -69
  50. package/dist/common/errors/webex-errors.js.map +1 -1
  51. package/dist/common/errors/webex-meetings-error.js +5 -25
  52. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  53. package/dist/common/events/events-scope.js +0 -22
  54. package/dist/common/events/events-scope.js.map +1 -1
  55. package/dist/common/events/events.js +0 -23
  56. package/dist/common/events/events.js.map +1 -1
  57. package/dist/common/events/trigger-proxy.js +0 -12
  58. package/dist/common/events/trigger-proxy.js.map +1 -1
  59. package/dist/common/events/util.js +0 -15
  60. package/dist/common/events/util.js.map +1 -1
  61. package/dist/common/logs/logger-config.js +0 -4
  62. package/dist/common/logs/logger-config.js.map +1 -1
  63. package/dist/common/logs/logger-proxy.js +1 -8
  64. package/dist/common/logs/logger-proxy.js.map +1 -1
  65. package/dist/common/logs/request.js +37 -60
  66. package/dist/common/logs/request.js.map +1 -1
  67. package/dist/common/queue.js +4 -14
  68. package/dist/common/queue.js.map +1 -1
  69. package/dist/config.js +7 -6
  70. package/dist/config.js.map +1 -1
  71. package/dist/constants.js +184 -122
  72. package/dist/constants.js.map +1 -1
  73. package/dist/controls-options-manager/constants.js +14 -0
  74. package/dist/controls-options-manager/constants.js.map +1 -0
  75. package/dist/controls-options-manager/enums.js +25 -0
  76. package/dist/controls-options-manager/enums.js.map +1 -0
  77. package/dist/controls-options-manager/index.js +297 -0
  78. package/dist/controls-options-manager/index.js.map +1 -0
  79. package/dist/controls-options-manager/types.js +7 -0
  80. package/dist/controls-options-manager/types.js.map +1 -0
  81. package/dist/controls-options-manager/util.js +250 -0
  82. package/dist/controls-options-manager/util.js.map +1 -0
  83. package/dist/index.js +72 -17
  84. package/dist/index.js.map +1 -1
  85. package/dist/locus-info/controlsUtils.js +56 -29
  86. package/dist/locus-info/controlsUtils.js.map +1 -1
  87. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  88. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  89. package/dist/locus-info/fullState.js +0 -15
  90. package/dist/locus-info/fullState.js.map +1 -1
  91. package/dist/locus-info/hostUtils.js +4 -12
  92. package/dist/locus-info/hostUtils.js.map +1 -1
  93. package/dist/locus-info/index.js +362 -208
  94. package/dist/locus-info/index.js.map +1 -1
  95. package/dist/locus-info/infoUtils.js +3 -37
  96. package/dist/locus-info/infoUtils.js.map +1 -1
  97. package/dist/locus-info/mediaSharesUtils.js +12 -38
  98. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  99. package/dist/locus-info/parser.js +92 -118
  100. package/dist/locus-info/parser.js.map +1 -1
  101. package/dist/locus-info/selfUtils.js +99 -91
  102. package/dist/locus-info/selfUtils.js.map +1 -1
  103. package/dist/media/index.js +113 -337
  104. package/dist/media/index.js.map +1 -1
  105. package/dist/media/properties.js +96 -135
  106. package/dist/media/properties.js.map +1 -1
  107. package/dist/media/util.js +1 -35
  108. package/dist/media/util.js.map +1 -1
  109. package/dist/mediaQualityMetrics/config.js +505 -495
  110. package/dist/mediaQualityMetrics/config.js.map +1 -1
  111. package/dist/meeting/in-meeting-actions.js +59 -14
  112. package/dist/meeting/in-meeting-actions.js.map +1 -1
  113. package/dist/meeting/index.js +2909 -2398
  114. package/dist/meeting/index.js.map +1 -1
  115. package/dist/meeting/muteState.js +257 -112
  116. package/dist/meeting/muteState.js.map +1 -1
  117. package/dist/meeting/request.js +330 -264
  118. package/dist/meeting/request.js.map +1 -1
  119. package/dist/meeting/request.type.js +7 -0
  120. package/dist/meeting/request.type.js.map +1 -0
  121. package/dist/meeting/state.js +21 -31
  122. package/dist/meeting/state.js.map +1 -1
  123. package/dist/meeting/util.js +63 -261
  124. package/dist/meeting/util.js.map +1 -1
  125. package/dist/meeting-info/collection.js +6 -25
  126. package/dist/meeting-info/collection.js.map +1 -1
  127. package/dist/meeting-info/index.js +14 -32
  128. package/dist/meeting-info/index.js.map +1 -1
  129. package/dist/meeting-info/meeting-info-v2.js +273 -280
  130. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  131. package/dist/meeting-info/request.js +3 -15
  132. package/dist/meeting-info/request.js.map +1 -1
  133. package/dist/meeting-info/util.js +98 -183
  134. package/dist/meeting-info/util.js.map +1 -1
  135. package/dist/meeting-info/utilv2.js +155 -232
  136. package/dist/meeting-info/utilv2.js.map +1 -1
  137. package/dist/meetings/collection.js +26 -19
  138. package/dist/meetings/collection.js.map +1 -1
  139. package/dist/meetings/index.js +741 -548
  140. package/dist/meetings/index.js.map +1 -1
  141. package/dist/meetings/request.js +26 -41
  142. package/dist/meetings/request.js.map +1 -1
  143. package/dist/meetings/util.js +194 -149
  144. package/dist/meetings/util.js.map +1 -1
  145. package/dist/member/index.js +100 -85
  146. package/dist/member/index.js.map +1 -1
  147. package/dist/member/types.js +15 -0
  148. package/dist/member/types.js.map +1 -0
  149. package/dist/member/util.js +90 -68
  150. package/dist/member/util.js.map +1 -1
  151. package/dist/members/collection.js +13 -12
  152. package/dist/members/collection.js.map +1 -1
  153. package/dist/members/index.js +227 -188
  154. package/dist/members/index.js.map +1 -1
  155. package/dist/members/request.js +54 -39
  156. package/dist/members/request.js.map +1 -1
  157. package/dist/members/types.js +15 -0
  158. package/dist/members/types.js.map +1 -0
  159. package/dist/members/util.js +107 -44
  160. package/dist/members/util.js.map +1 -1
  161. package/dist/metrics/config.js +5 -14
  162. package/dist/metrics/config.js.map +1 -1
  163. package/dist/metrics/constants.js +3 -7
  164. package/dist/metrics/constants.js.map +1 -1
  165. package/dist/metrics/index.js +67 -159
  166. package/dist/metrics/index.js.map +1 -1
  167. package/dist/multistream/mediaRequestManager.js +250 -0
  168. package/dist/multistream/mediaRequestManager.js.map +1 -0
  169. package/dist/multistream/receiveSlot.js +202 -0
  170. package/dist/multistream/receiveSlot.js.map +1 -0
  171. package/dist/multistream/receiveSlotManager.js +176 -0
  172. package/dist/multistream/receiveSlotManager.js.map +1 -0
  173. package/dist/multistream/remoteMedia.js +270 -0
  174. package/dist/multistream/remoteMedia.js.map +1 -0
  175. package/dist/multistream/remoteMediaGroup.js +209 -0
  176. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  177. package/dist/multistream/remoteMediaManager.js +1137 -0
  178. package/dist/multistream/remoteMediaManager.js.map +1 -0
  179. package/dist/networkQualityMonitor/index.js +40 -59
  180. package/dist/networkQualityMonitor/index.js.map +1 -1
  181. package/dist/personal-meeting-room/index.js +21 -45
  182. package/dist/personal-meeting-room/index.js.map +1 -1
  183. package/dist/personal-meeting-room/request.js +1 -31
  184. package/dist/personal-meeting-room/request.js.map +1 -1
  185. package/dist/personal-meeting-room/util.js +0 -13
  186. package/dist/personal-meeting-room/util.js.map +1 -1
  187. package/dist/reachability/index.js +192 -191
  188. package/dist/reachability/index.js.map +1 -1
  189. package/dist/reachability/request.js +15 -23
  190. package/dist/reachability/request.js.map +1 -1
  191. package/dist/reactions/constants.js +13 -0
  192. package/dist/reactions/constants.js.map +1 -0
  193. package/dist/reactions/reactions.js +109 -0
  194. package/dist/reactions/reactions.js.map +1 -0
  195. package/dist/reactions/reactions.type.js +36 -0
  196. package/dist/reactions/reactions.type.js.map +1 -0
  197. package/dist/reconnection-manager/index.js +386 -527
  198. package/dist/reconnection-manager/index.js.map +1 -1
  199. package/dist/recording-controller/enums.js +17 -0
  200. package/dist/recording-controller/enums.js.map +1 -0
  201. package/dist/recording-controller/index.js +343 -0
  202. package/dist/recording-controller/index.js.map +1 -0
  203. package/dist/recording-controller/util.js +63 -0
  204. package/dist/recording-controller/util.js.map +1 -0
  205. package/dist/roap/index.js +84 -286
  206. package/dist/roap/index.js.map +1 -1
  207. package/dist/roap/request.js +138 -238
  208. package/dist/roap/request.js.map +1 -1
  209. package/dist/roap/turnDiscovery.js +164 -102
  210. package/dist/roap/turnDiscovery.js.map +1 -1
  211. package/dist/statsAnalyzer/global.js +1 -93
  212. package/dist/statsAnalyzer/global.js.map +1 -1
  213. package/dist/statsAnalyzer/index.js +399 -470
  214. package/dist/statsAnalyzer/index.js.map +1 -1
  215. package/dist/statsAnalyzer/mqaUtil.js +143 -87
  216. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  217. package/dist/transcription/index.js +22 -47
  218. package/dist/transcription/index.js.map +1 -1
  219. package/dist/types/annotation/annotation.types.d.ts +34 -0
  220. package/dist/types/annotation/constants.d.ts +31 -0
  221. package/dist/types/annotation/index.d.ts +124 -0
  222. package/dist/types/breakouts/breakout.d.ts +8 -0
  223. package/dist/types/breakouts/collection.d.ts +5 -0
  224. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  225. package/dist/types/breakouts/events.d.ts +2 -0
  226. package/dist/types/breakouts/index.d.ts +5 -0
  227. package/dist/types/breakouts/request.d.ts +22 -0
  228. package/dist/types/breakouts/utils.d.ts +15 -0
  229. package/dist/types/common/browser-detection.d.ts +9 -0
  230. package/dist/types/common/collection.d.ts +48 -0
  231. package/dist/types/common/config.d.ts +2 -0
  232. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  233. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  234. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  235. package/dist/types/common/errors/media.d.ts +15 -0
  236. package/dist/types/common/errors/parameter.d.ts +15 -0
  237. package/dist/types/common/errors/password-error.d.ts +15 -0
  238. package/dist/types/common/errors/permission.d.ts +14 -0
  239. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  240. package/dist/types/common/errors/reconnection.d.ts +15 -0
  241. package/dist/types/common/errors/stats.d.ts +15 -0
  242. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  243. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  244. package/dist/types/common/events/events-scope.d.ts +17 -0
  245. package/dist/types/common/events/events.d.ts +12 -0
  246. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  247. package/dist/types/common/events/util.d.ts +2 -0
  248. package/dist/types/common/logs/logger-config.d.ts +2 -0
  249. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  250. package/dist/types/common/logs/request.d.ts +34 -0
  251. package/dist/types/common/queue.d.ts +32 -0
  252. package/dist/types/config.d.ts +78 -0
  253. package/dist/types/constants.d.ts +968 -0
  254. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  255. package/dist/types/controls-options-manager/enums.d.ts +13 -0
  256. package/dist/types/controls-options-manager/index.d.ts +136 -0
  257. package/dist/types/controls-options-manager/types.d.ts +37 -0
  258. package/dist/types/controls-options-manager/util.d.ts +1 -0
  259. package/dist/types/index.d.ts +7 -0
  260. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  261. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  262. package/dist/types/locus-info/fullState.d.ts +2 -0
  263. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  264. package/dist/types/locus-info/index.d.ts +315 -0
  265. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  266. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  267. package/dist/types/locus-info/parser.d.ts +212 -0
  268. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  269. package/dist/types/media/index.d.ts +34 -0
  270. package/dist/types/media/properties.d.ts +108 -0
  271. package/dist/types/media/util.d.ts +2 -0
  272. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  273. package/dist/types/meeting/in-meeting-actions.d.ts +129 -0
  274. package/dist/types/meeting/index.d.ts +1748 -0
  275. package/dist/types/meeting/muteState.d.ts +185 -0
  276. package/dist/types/meeting/request.d.ts +275 -0
  277. package/dist/types/meeting/request.type.d.ts +11 -0
  278. package/dist/types/meeting/state.d.ts +9 -0
  279. package/dist/types/meeting/util.d.ts +2 -0
  280. package/dist/types/meeting-info/collection.d.ts +20 -0
  281. package/dist/types/meeting-info/index.d.ts +57 -0
  282. package/dist/types/meeting-info/meeting-info-v2.d.ts +112 -0
  283. package/dist/types/meeting-info/request.d.ts +22 -0
  284. package/dist/types/meeting-info/util.d.ts +2 -0
  285. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  286. package/dist/types/meetings/collection.d.ts +31 -0
  287. package/dist/types/meetings/index.d.ts +345 -0
  288. package/dist/types/meetings/request.d.ts +27 -0
  289. package/dist/types/meetings/util.d.ts +18 -0
  290. package/dist/types/member/index.d.ts +156 -0
  291. package/dist/types/member/types.d.ts +21 -0
  292. package/dist/types/member/util.d.ts +2 -0
  293. package/dist/types/members/collection.d.ts +29 -0
  294. package/dist/types/members/index.d.ts +353 -0
  295. package/dist/types/members/request.d.ts +69 -0
  296. package/dist/types/members/types.d.ts +24 -0
  297. package/dist/types/members/util.d.ts +2 -0
  298. package/dist/types/metrics/config.d.ts +172 -0
  299. package/dist/types/metrics/constants.d.ts +54 -0
  300. package/dist/types/metrics/index.d.ts +152 -0
  301. package/dist/types/multistream/mediaRequestManager.d.ts +101 -0
  302. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  303. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  304. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  305. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  306. package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
  307. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  308. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  309. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  310. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  311. package/dist/types/reachability/index.d.ts +152 -0
  312. package/dist/types/reachability/request.d.ts +37 -0
  313. package/dist/types/reactions/constants.d.ts +3 -0
  314. package/dist/types/reactions/reactions.d.ts +4 -0
  315. package/dist/types/reactions/reactions.type.d.ts +52 -0
  316. package/dist/types/reconnection-manager/index.d.ts +126 -0
  317. package/dist/types/recording-controller/enums.d.ts +7 -0
  318. package/dist/types/recording-controller/index.d.ts +193 -0
  319. package/dist/types/recording-controller/util.d.ts +13 -0
  320. package/dist/types/roap/index.d.ts +77 -0
  321. package/dist/types/roap/request.d.ts +38 -0
  322. package/dist/types/roap/turnDiscovery.d.ts +88 -0
  323. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  324. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  325. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  326. package/dist/types/transcription/index.d.ts +64 -0
  327. package/internal-README.md +7 -6
  328. package/package.json +29 -21
  329. package/src/annotation/annotation.types.ts +41 -0
  330. package/src/annotation/constants.ts +36 -0
  331. package/src/annotation/index.ts +339 -0
  332. package/src/breakouts/README.md +219 -0
  333. package/src/breakouts/breakout.ts +141 -0
  334. package/src/breakouts/collection.ts +19 -0
  335. package/src/breakouts/edit-lock-error.ts +25 -0
  336. package/src/breakouts/events.ts +37 -0
  337. package/src/breakouts/index.ts +823 -0
  338. package/src/breakouts/request.ts +55 -0
  339. package/src/breakouts/utils.ts +57 -0
  340. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  341. package/src/common/collection.ts +9 -7
  342. package/src/common/{config.js → config.ts} +1 -1
  343. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  344. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  345. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  346. package/src/common/errors/{media.js → media.ts} +11 -7
  347. package/src/common/errors/parameter.ts +11 -7
  348. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  349. package/src/common/errors/{permission.js → permission.ts} +10 -6
  350. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  351. package/src/common/errors/{stats.js → stats.ts} +11 -7
  352. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -25
  353. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  354. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  355. package/src/common/events/{events.js → events.ts} +5 -1
  356. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  357. package/src/common/events/{util.js → util.ts} +2 -3
  358. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  359. package/src/common/logs/logger-proxy.ts +44 -0
  360. package/src/common/logs/{request.js → request.ts} +22 -9
  361. package/src/common/queue.ts +1 -2
  362. package/src/{config.js → config.ts} +18 -12
  363. package/src/constants.ts +256 -183
  364. package/src/controls-options-manager/constants.ts +5 -0
  365. package/src/controls-options-manager/enums.ts +16 -0
  366. package/src/controls-options-manager/index.ts +278 -0
  367. package/src/controls-options-manager/types.ts +49 -0
  368. package/src/controls-options-manager/util.ts +229 -0
  369. package/src/index.ts +33 -0
  370. package/src/locus-info/controlsUtils.ts +169 -0
  371. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  372. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  373. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  374. package/src/locus-info/{index.js → index.ts} +331 -80
  375. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  376. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  377. package/src/locus-info/{parser.js → parser.ts} +67 -79
  378. package/src/locus-info/{selfUtils.js → selfUtils.ts} +196 -67
  379. package/src/media/index.ts +488 -0
  380. package/src/media/{properties.js → properties.ts} +67 -54
  381. package/src/media/util.ts +16 -0
  382. package/src/mediaQualityMetrics/config.ts +384 -0
  383. package/src/meeting/in-meeting-actions.ts +123 -3
  384. package/src/meeting/{index.js → index.ts} +3334 -1775
  385. package/src/meeting/muteState.ts +526 -0
  386. package/src/meeting/{request.js → request.ts} +350 -142
  387. package/src/meeting/request.type.ts +13 -0
  388. package/src/meeting/{state.js → state.ts} +50 -35
  389. package/src/meeting/{util.js → util.ts} +126 -159
  390. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  391. package/src/meeting-info/{index.js → index.ts} +42 -36
  392. package/src/meeting-info/meeting-info-v2.ts +345 -0
  393. package/src/meeting-info/{request.js → request.ts} +14 -4
  394. package/src/meeting-info/{util.js → util.ts} +60 -51
  395. package/src/meeting-info/{utilv2.js → utilv2.ts} +76 -60
  396. package/src/meetings/{collection.js → collection.ts} +26 -3
  397. package/src/meetings/index.ts +1394 -0
  398. package/src/meetings/{request.js → request.ts} +34 -25
  399. package/src/meetings/util.ts +288 -0
  400. package/src/member/{index.js → index.ts} +124 -56
  401. package/src/member/types.ts +24 -0
  402. package/src/member/{util.js → util.ts} +105 -25
  403. package/src/members/{collection.js → collection.ts} +10 -2
  404. package/src/members/{index.js → index.ts} +359 -139
  405. package/src/members/request.ts +215 -0
  406. package/src/members/types.ts +28 -0
  407. package/src/members/{util.js → util.ts} +145 -54
  408. package/src/metrics/{config.js → config.ts} +256 -92
  409. package/src/metrics/{constants.js → constants.ts} +1 -6
  410. package/src/metrics/{index.js → index.ts} +116 -97
  411. package/src/multistream/mediaRequestManager.ts +324 -0
  412. package/src/multistream/receiveSlot.ts +184 -0
  413. package/src/multistream/receiveSlotManager.ts +166 -0
  414. package/src/multistream/remoteMedia.ts +254 -0
  415. package/src/multistream/remoteMediaGroup.ts +225 -0
  416. package/src/multistream/remoteMediaManager.ts +1075 -0
  417. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  418. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  419. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  420. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  421. package/src/reachability/{index.js → index.ts} +157 -94
  422. package/src/reachability/request.ts +46 -35
  423. package/src/reactions/constants.ts +4 -0
  424. package/src/reactions/reactions.ts +104 -0
  425. package/src/reactions/reactions.type.ts +62 -0
  426. package/src/reconnection-manager/{index.js → index.ts} +261 -163
  427. package/src/recording-controller/enums.ts +8 -0
  428. package/src/recording-controller/index.ts +315 -0
  429. package/src/recording-controller/util.ts +58 -0
  430. package/src/roap/index.ts +241 -0
  431. package/src/roap/request.ts +172 -0
  432. package/src/roap/turnDiscovery.ts +127 -53
  433. package/src/statsAnalyzer/global.ts +37 -0
  434. package/src/statsAnalyzer/index.ts +1273 -0
  435. package/src/statsAnalyzer/mqaUtil.ts +291 -0
  436. package/src/transcription/{index.js → index.ts} +46 -39
  437. package/test/integration/spec/converged-space-meetings.js +177 -0
  438. package/test/integration/spec/journey.js +666 -464
  439. package/test/integration/spec/space-meeting.js +321 -206
  440. package/test/integration/spec/transcription.js +7 -8
  441. package/test/unit/spec/annotation/index.ts +435 -0
  442. package/test/unit/spec/breakouts/breakout.ts +184 -0
  443. package/test/unit/spec/breakouts/collection.ts +15 -0
  444. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  445. package/test/unit/spec/breakouts/events.ts +77 -0
  446. package/test/unit/spec/breakouts/index.ts +1504 -0
  447. package/test/unit/spec/breakouts/request.ts +104 -0
  448. package/test/unit/spec/breakouts/utils.js +72 -0
  449. package/test/unit/spec/common/browser-detection.js +9 -28
  450. package/test/unit/spec/controls-options-manager/index.js +287 -0
  451. package/test/unit/spec/controls-options-manager/util.js +403 -0
  452. package/test/unit/spec/fixture/locus.js +92 -90
  453. package/test/unit/spec/locus-info/controlsUtils.js +177 -32
  454. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  455. package/test/unit/spec/locus-info/index.js +493 -3
  456. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  457. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  458. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  459. package/test/unit/spec/locus-info/parser.js +3 -9
  460. package/test/unit/spec/locus-info/selfConstant.js +110 -103
  461. package/test/unit/spec/locus-info/selfUtils.js +236 -12
  462. package/test/unit/spec/media/index.ts +303 -0
  463. package/test/unit/spec/media/properties.ts +73 -82
  464. package/test/unit/spec/meeting/in-meeting-actions.ts +58 -3
  465. package/test/unit/spec/meeting/index.js +3127 -975
  466. package/test/unit/spec/meeting/muteState.js +375 -70
  467. package/test/unit/spec/meeting/request.js +217 -43
  468. package/test/unit/spec/meeting/utils.js +205 -163
  469. package/test/unit/spec/meeting-info/meetinginfov2.js +268 -74
  470. package/test/unit/spec/meeting-info/request.js +7 -9
  471. package/test/unit/spec/meeting-info/util.js +11 -12
  472. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  473. package/test/unit/spec/meetings/collection.js +15 -1
  474. package/test/unit/spec/meetings/index.js +1052 -333
  475. package/test/unit/spec/meetings/utils.js +163 -14
  476. package/test/unit/spec/member/index.js +24 -1
  477. package/test/unit/spec/member/util.js +359 -32
  478. package/test/unit/spec/members/index.js +547 -37
  479. package/test/unit/spec/members/request.js +76 -20
  480. package/test/unit/spec/members/utils.js +191 -4
  481. package/test/unit/spec/metrics/index.js +46 -20
  482. package/test/unit/spec/multistream/mediaRequestManager.ts +1060 -0
  483. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  484. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  485. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  486. package/test/unit/spec/multistream/remoteMediaGroup.ts +396 -0
  487. package/test/unit/spec/multistream/remoteMediaManager.ts +1793 -0
  488. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  489. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  490. package/test/unit/spec/reachability/index.ts +176 -27
  491. package/test/unit/spec/reachability/request.js +66 -0
  492. package/test/unit/spec/reconnection-manager/index.js +106 -9
  493. package/test/unit/spec/recording-controller/index.js +231 -0
  494. package/test/unit/spec/recording-controller/util.js +102 -0
  495. package/test/unit/spec/roap/index.ts +78 -45
  496. package/test/unit/spec/roap/request.ts +217 -0
  497. package/test/unit/spec/roap/turnDiscovery.ts +93 -49
  498. package/test/unit/spec/stats-analyzer/index.js +118 -65
  499. package/test/utils/cmr.js +44 -42
  500. package/test/utils/constants.js +9 -0
  501. package/test/utils/integrationTestUtils.js +64 -0
  502. package/test/utils/testUtils.js +63 -99
  503. package/test/utils/webex-config.js +22 -18
  504. package/test/utils/webex-test-users.js +57 -50
  505. package/tsconfig.json +6 -0
  506. package/dist/meeting/effectsState.js +0 -327
  507. package/dist/meeting/effectsState.js.map +0 -1
  508. package/dist/peer-connection-manager/index.js +0 -794
  509. package/dist/peer-connection-manager/index.js.map +0 -1
  510. package/dist/peer-connection-manager/util.js +0 -124
  511. package/dist/peer-connection-manager/util.js.map +0 -1
  512. package/dist/roap/collection.js +0 -73
  513. package/dist/roap/collection.js.map +0 -1
  514. package/dist/roap/handler.js +0 -337
  515. package/dist/roap/handler.js.map +0 -1
  516. package/dist/roap/state.js +0 -164
  517. package/dist/roap/state.js.map +0 -1
  518. package/dist/roap/util.js +0 -102
  519. package/dist/roap/util.js.map +0 -1
  520. package/src/common/logs/logger-proxy.js +0 -33
  521. package/src/index.js +0 -15
  522. package/src/locus-info/controlsUtils.js +0 -102
  523. package/src/media/index.js +0 -593
  524. package/src/media/util.js +0 -38
  525. package/src/mediaQualityMetrics/config.js +0 -382
  526. package/src/meeting/effectsState.js +0 -205
  527. package/src/meeting/muteState.js +0 -318
  528. package/src/meeting-info/meeting-info-v2.js +0 -255
  529. package/src/meetings/index.js +0 -986
  530. package/src/meetings/util.js +0 -176
  531. package/src/members/request.js +0 -131
  532. package/src/peer-connection-manager/index.js +0 -723
  533. package/src/peer-connection-manager/util.ts +0 -117
  534. package/src/roap/collection.js +0 -63
  535. package/src/roap/handler.js +0 -252
  536. package/src/roap/index.js +0 -380
  537. package/src/roap/request.js +0 -198
  538. package/src/roap/state.js +0 -149
  539. package/src/roap/util.js +0 -93
  540. package/src/statsAnalyzer/global.js +0 -131
  541. package/src/statsAnalyzer/index.js +0 -1020
  542. package/src/statsAnalyzer/mqaUtil.js +0 -173
  543. package/test/unit/spec/meeting/effectsState.js +0 -293
  544. package/test/unit/spec/peerconnection-manager/index.js +0 -188
  545. package/test/unit/spec/peerconnection-manager/utils.js +0 -48
  546. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  547. package/test/unit/spec/roap/util.js +0 -30
  548. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -1,29 +1,38 @@
1
- import {
2
- ICE_STATE,
3
- MEETINGS,
4
- PC_BAIL_TIMEOUT,
5
- QUALITY_LEVELS
6
- } from '../constants';
7
- import LoggerProxy from '../common/logs/logger-proxy';
1
+ import {ConnectionState, Event} from '@webex/internal-media-core';
2
+
3
+ import {LocalCameraTrack, LocalMicrophoneTrack, LocalDisplayTrack} from '@webex/media-helpers';
8
4
 
9
- import MediaUtil from './util';
5
+ import {MEETINGS, PC_BAIL_TIMEOUT, QUALITY_LEVELS} from '../constants';
6
+ import LoggerProxy from '../common/logs/logger-proxy';
10
7
 
11
8
  /**
12
9
  * @class MediaProperties
13
10
  */
14
11
  export default class MediaProperties {
12
+ audioTrack: LocalMicrophoneTrack | null;
13
+ localQualityLevel: any;
14
+ mediaDirection: any;
15
+ mediaSettings: any;
16
+ webrtcMediaConnection: any;
17
+ remoteAudioTrack: any;
18
+ remoteQualityLevel: any;
19
+ remoteShare: any;
20
+ remoteVideoTrack: any;
21
+ shareTrack: LocalDisplayTrack | null;
22
+ videoDeviceId: any;
23
+ videoTrack: LocalCameraTrack | null;
15
24
  namespace = MEETINGS;
16
25
 
17
26
  /**
18
27
  * @param {Object} [options] -- to auto construct
19
28
  * @returns {MediaProperties}
20
29
  */
21
- constructor(options = {}) {
22
- this.peerConnection = MediaUtil.createPeerConnection();
30
+ constructor(options: any = {}) {
31
+ this.webrtcMediaConnection = null;
23
32
  this.mediaDirection = options.mediaDirection;
24
- this.videoTrack = options.videoTrack;
25
- this.audioTrack = options.audioTrack;
26
- this.shareTrack = options.shareTrack;
33
+ this.videoTrack = options.videoTrack || null;
34
+ this.audioTrack = options.audioTrack || null;
35
+ this.shareTrack = options.shareTrack || null;
27
36
  this.remoteShare = options.remoteShare;
28
37
  this.remoteAudioTrack = options.remoteAudioTrack;
29
38
  this.remoteVideoTrack = options.remoteVideoTrack;
@@ -49,15 +58,15 @@ export default class MediaProperties {
49
58
  this.mediaSettings[type] = values;
50
59
  }
51
60
 
52
- setMediaPeerConnection(peerConnection) {
53
- this.peerConnection = peerConnection;
61
+ setMediaPeerConnection(mediaPeerConnection) {
62
+ this.webrtcMediaConnection = mediaPeerConnection;
54
63
  }
55
64
 
56
- setLocalVideoTrack(videoTrack) {
65
+ setLocalVideoTrack(videoTrack: LocalCameraTrack | null) {
57
66
  this.videoTrack = videoTrack;
58
67
  }
59
68
 
60
- setLocalAudioTrack(audioTrack) {
69
+ setLocalAudioTrack(audioTrack: LocalMicrophoneTrack | null) {
61
70
  this.audioTrack = audioTrack;
62
71
  }
63
72
 
@@ -65,7 +74,7 @@ export default class MediaProperties {
65
74
  this.localQualityLevel = localQualityLevel;
66
75
  }
67
76
 
68
- setLocalShareTrack(shareTrack) {
77
+ setLocalShareTrack(shareTrack: LocalDisplayTrack | null) {
69
78
  this.shareTrack = shareTrack;
70
79
  }
71
80
 
@@ -82,7 +91,7 @@ export default class MediaProperties {
82
91
  * @param {MediaTrack} remoteAudioTrack MediaTrack to save
83
92
  * @returns {void}
84
93
  */
85
- setRemoteAudioTrack(remoteAudioTrack) {
94
+ setRemoteAudioTrack(remoteAudioTrack: any) {
86
95
  this.remoteAudioTrack = remoteAudioTrack;
87
96
  }
88
97
 
@@ -91,7 +100,7 @@ export default class MediaProperties {
91
100
  * @param {MediaTrack} remoteVideoTrack MediaTrack to save
92
101
  * @returns {void}
93
102
  */
94
- setRemoteVideoTrack(remoteVideoTrack) {
103
+ setRemoteVideoTrack(remoteVideoTrack: any) {
95
104
  this.remoteVideoTrack = remoteVideoTrack;
96
105
  }
97
106
 
@@ -100,16 +109,12 @@ export default class MediaProperties {
100
109
  * @param {string} deviceId Preferred video input device
101
110
  * @returns {void}
102
111
  */
103
- setVideoDeviceId(deviceId) {
112
+ setVideoDeviceId(deviceId: string) {
104
113
  this.videoDeviceId = deviceId;
105
114
  }
106
115
 
107
116
  unsetPeerConnection() {
108
- this.peerConnection = null;
109
- }
110
-
111
- reInitiatePeerconnection(turnServerInfo) {
112
- this.peerConnection = MediaUtil.createPeerConnection(turnServerInfo);
117
+ this.webrtcMediaConnection = null;
113
118
  }
114
119
 
115
120
  unsetLocalVideoTrack() {
@@ -130,7 +135,9 @@ export default class MediaProperties {
130
135
  * @returns {void}
131
136
  */
132
137
  unsetRemoteStream() {
133
- LoggerProxy.logger.warn('Media:properties#unsetRemoteStream --> [DEPRECATION WARNING]: unsetRemoteStream has been deprecated after v1.89.3 (use unsetRemoteTracks instead)');
138
+ LoggerProxy.logger.warn(
139
+ 'Media:properties#unsetRemoteStream --> [DEPRECATION WARNING]: unsetRemoteStream has been deprecated after v1.89.3 (use unsetRemoteTracks instead)'
140
+ );
134
141
  // unsets audio and video only
135
142
  this.unsetRemoteMedia();
136
143
  }
@@ -159,7 +166,9 @@ export default class MediaProperties {
159
166
  * @returns {void}
160
167
  */
161
168
  unsetRemoteStreams() {
162
- LoggerProxy.logger.warn('Media:properties#unsetRemoteStreams --> [DEPRECATION WARNING]: unsetRemoteStreams has been deprecated after v1.89.3 (use unsetRemoteTracks instead)');
169
+ LoggerProxy.logger.warn(
170
+ 'Media:properties#unsetRemoteStreams --> [DEPRECATION WARNING]: unsetRemoteStreams has been deprecated after v1.89.3 (use unsetRemoteTracks instead)'
171
+ );
163
172
  this.unsetRemoteStream();
164
173
  this.unsetRemoteShare();
165
174
  }
@@ -184,7 +193,9 @@ export default class MediaProperties {
184
193
  * @returns {void}
185
194
  */
186
195
  unsetMediaStreams() {
187
- LoggerProxy.logger.warn('Media:properties#unsetMediaStreams --> [DEPRECATION WARNING]: unsetMediaStreams has been deprecated after v1.89.3 (use unsetMediaTracks instead)');
196
+ LoggerProxy.logger.warn(
197
+ 'Media:properties#unsetMediaStreams --> [DEPRECATION WARNING]: unsetMediaStreams has been deprecated after v1.89.3 (use unsetMediaTracks instead)'
198
+ );
188
199
  this.unsetLocalVideoTrack();
189
200
  this.unsetRemoteStream();
190
201
  }
@@ -199,39 +210,39 @@ export default class MediaProperties {
199
210
  }
200
211
 
201
212
  /**
202
- * Waits until ice connection is established
213
+ * Waits for the webrtc media connection to be connected.
203
214
  *
204
215
  * @returns {Promise<void>}
205
216
  */
206
- waitForIceConnectedState() {
207
- const isIceConnected = () => (
208
- this.peerConnection.iceConnectionState === ICE_STATE.CONNECTED ||
209
- this.peerConnection.iceConnectionState === ICE_STATE.COMPLETED
210
- );
217
+ waitForMediaConnectionConnected(): Promise<void> {
218
+ const isConnected = () =>
219
+ this.webrtcMediaConnection.getConnectionState() === ConnectionState.Connected;
211
220
 
212
- if (isIceConnected()) {
221
+ if (isConnected()) {
213
222
  return Promise.resolve();
214
223
  }
215
224
 
216
- return new Promise((resolve, reject) => {
225
+ return new Promise<void>((resolve, reject) => {
217
226
  let timer;
218
227
 
219
- const iceListener = () => {
220
- LoggerProxy.logger.log(`Media:properties#waitForIceConnectedState --> ice state: ${this.peerConnection.iceConnectionState}, conn state: ${this.peerConnection.connectionState}`);
228
+ const connectionStateListener = () => {
229
+ LoggerProxy.logger.log(
230
+ `Media:properties#waitForMediaConnectionConnected --> connection state: ${this.webrtcMediaConnection.getConnectionState()}`
231
+ );
221
232
 
222
- if (isIceConnected()) {
233
+ if (isConnected()) {
223
234
  clearTimeout(timer);
224
- this.peerConnection.removeEventListener('iceconnectionstatechange', iceListener);
235
+ this.webrtcMediaConnection.off(Event.CONNECTION_STATE_CHANGED, connectionStateListener);
225
236
  resolve();
226
237
  }
227
238
  };
228
239
 
229
240
  timer = setTimeout(() => {
230
- this.peerConnection.removeEventListener('iceconnectionstatechange', iceListener);
241
+ this.webrtcMediaConnection.off(Event.CONNECTION_STATE_CHANGED, connectionStateListener);
231
242
  reject();
232
243
  }, PC_BAIL_TIMEOUT);
233
244
 
234
- this.peerConnection.addEventListener('iceconnectionstatechange', iceListener);
245
+ this.webrtcMediaConnection.on(Event.CONNECTION_STATE_CHANGED, connectionStateListener);
235
246
  });
236
247
  }
237
248
 
@@ -242,18 +253,17 @@ export default class MediaProperties {
242
253
  */
243
254
  async getCurrentConnectionType() {
244
255
  // we can only get the connection type after ICE connection has been established
245
- await this.waitForIceConnectedState();
256
+ await this.waitForMediaConnectionConnected();
246
257
 
247
258
  const allStatsReports = [];
248
259
 
249
260
  try {
250
- // eslint-disable-next-line no-await-in-loop
251
- const statsResult = await this.peerConnection.getStats();
252
-
261
+ const statsResult = await this.webrtcMediaConnection.getStats();
253
262
  statsResult.forEach((report) => allStatsReports.push(report));
254
- }
255
- catch (error) {
256
- LoggerProxy.logger.warn(`Media:properties#getCurrentConnectionType --> getStats() failed: ${error}`);
263
+ } catch (error) {
264
+ LoggerProxy.logger.warn(
265
+ `Media:properties#getCurrentConnectionType --> getStats() failed: ${error}`
266
+ );
257
267
  }
258
268
 
259
269
  const successfulCandidatePairs = allStatsReports.filter(
@@ -264,10 +274,14 @@ export default class MediaProperties {
264
274
 
265
275
  // all of the successful pairs should have the same connection type, so just return the type for the first one
266
276
  successfulCandidatePairs.some((pair) => {
267
- const localCandidate = allStatsReports.find((report) => report.type === 'local-candidate' && report.id === pair.localCandidateId);
277
+ const localCandidate = allStatsReports.find(
278
+ (report) => report.type === 'local-candidate' && report.id === pair.localCandidateId
279
+ );
268
280
 
269
281
  if (localCandidate === undefined) {
270
- LoggerProxy.logger.warn(`Media:properties#getCurrentConnectionType --> failed to find local candidate "${pair.localCandidateId}" in getStats() results`);
282
+ LoggerProxy.logger.warn(
283
+ `Media:properties#getCurrentConnectionType --> failed to find local candidate "${pair.localCandidateId}" in getStats() results`
284
+ );
271
285
 
272
286
  return false;
273
287
  }
@@ -276,8 +290,7 @@ export default class MediaProperties {
276
290
 
277
291
  if (localCandidate.relayProtocol) {
278
292
  connectionType = `TURN-${localCandidate.relayProtocol.toUpperCase()}`;
279
- }
280
- else {
293
+ } else {
281
294
  connectionType = localCandidate.protocol?.toUpperCase(); // it will be UDP or TCP
282
295
  }
283
296
 
@@ -0,0 +1,16 @@
1
+ /* globals MediaStream */
2
+
3
+ import LoggerProxy from '../common/logs/logger-proxy';
4
+
5
+ const MediaUtil: any = {};
6
+
7
+ MediaUtil.createMediaStream = (tracks) => {
8
+ if (!tracks) {
9
+ LoggerProxy.logger.error("Media:util#createMediaStream --> Tracks don't exist");
10
+ }
11
+ const filtredTracks = tracks.filter((element) => !!element);
12
+
13
+ return new MediaStream(filtredTracks);
14
+ };
15
+
16
+ export default MediaUtil;
@@ -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
+ };