@webex/plugin-meetings 3.0.0-beta.4 → 3.0.0-beta.40

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