@webex/plugin-meetings 3.0.0-stream-classes.4 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (469) hide show
  1. package/.eslintrc.js +6 -0
  2. package/README.md +12 -0
  3. package/babel.config.js +3 -0
  4. package/dist/annotation/constants.js +12 -20
  5. package/dist/annotation/constants.js.map +1 -1
  6. package/dist/annotation/index.js +25 -10
  7. package/dist/annotation/index.js.map +1 -1
  8. package/dist/breakouts/breakout.js +2 -3
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/collection.js +1 -2
  11. package/dist/breakouts/collection.js.map +1 -1
  12. package/dist/breakouts/edit-lock-error.js +1 -2
  13. package/dist/breakouts/edit-lock-error.js.map +1 -1
  14. package/dist/breakouts/events.js +1 -2
  15. package/dist/breakouts/events.js.map +1 -1
  16. package/dist/breakouts/index.js +13 -14
  17. package/dist/breakouts/index.js.map +1 -1
  18. package/dist/breakouts/request.js +1 -2
  19. package/dist/breakouts/request.js.map +1 -1
  20. package/dist/breakouts/utils.js +3 -6
  21. package/dist/breakouts/utils.js.map +1 -1
  22. package/dist/common/browser-detection.js +2 -3
  23. package/dist/common/browser-detection.js.map +1 -1
  24. package/dist/common/collection.js +3 -4
  25. package/dist/common/collection.js.map +1 -1
  26. package/dist/common/config.js +1 -2
  27. package/dist/common/config.js.map +1 -1
  28. package/dist/common/errors/captcha-error.js +1 -2
  29. package/dist/common/errors/captcha-error.js.map +1 -1
  30. package/dist/common/errors/intent-to-join.js +1 -2
  31. package/dist/common/errors/intent-to-join.js.map +1 -1
  32. package/dist/common/errors/join-meeting.js +1 -2
  33. package/dist/common/errors/join-meeting.js.map +1 -1
  34. package/dist/common/errors/media.js +1 -2
  35. package/dist/common/errors/media.js.map +1 -1
  36. package/dist/common/errors/no-meeting-info.d.ts +14 -0
  37. package/dist/common/errors/no-meeting-info.js +50 -0
  38. package/dist/common/errors/no-meeting-info.js.map +1 -0
  39. package/dist/common/errors/parameter.js +3 -4
  40. package/dist/common/errors/parameter.js.map +1 -1
  41. package/dist/common/errors/password-error.js +1 -2
  42. package/dist/common/errors/password-error.js.map +1 -1
  43. package/dist/common/errors/permission.js +1 -2
  44. package/dist/common/errors/permission.js.map +1 -1
  45. package/dist/common/errors/reclaim-host-role-errors.d.ts +60 -0
  46. package/dist/common/errors/reclaim-host-role-errors.js +154 -0
  47. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  48. package/dist/common/errors/reconnection-in-progress.js +1 -2
  49. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  50. package/dist/common/errors/reconnection.js +1 -2
  51. package/dist/common/errors/reconnection.js.map +1 -1
  52. package/dist/common/errors/stats.js +1 -2
  53. package/dist/common/errors/stats.js.map +1 -1
  54. package/dist/{types/common → common}/errors/webex-errors.d.ts +13 -1
  55. package/dist/common/errors/webex-errors.js +35 -16
  56. package/dist/common/errors/webex-errors.js.map +1 -1
  57. package/dist/common/errors/webex-meetings-error.js +1 -2
  58. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  59. package/dist/common/events/events-scope.js +1 -2
  60. package/dist/common/events/events-scope.js.map +1 -1
  61. package/dist/common/events/events.js +1 -2
  62. package/dist/common/events/events.js.map +1 -1
  63. package/dist/common/events/trigger-proxy.js +1 -2
  64. package/dist/common/events/trigger-proxy.js.map +1 -1
  65. package/dist/common/events/util.js +1 -2
  66. package/dist/common/events/util.js.map +1 -1
  67. package/dist/common/logs/logger-config.js +1 -2
  68. package/dist/common/logs/logger-config.js.map +1 -1
  69. package/dist/common/logs/logger-proxy.js +1 -2
  70. package/dist/common/logs/logger-proxy.js.map +1 -1
  71. package/dist/{types/common → common}/logs/request.d.ts +3 -1
  72. package/dist/common/logs/request.js +8 -5
  73. package/dist/common/logs/request.js.map +1 -1
  74. package/dist/common/queue.js +2 -4
  75. package/dist/common/queue.js.map +1 -1
  76. package/dist/{types/config.d.ts → config.d.ts} +1 -1
  77. package/dist/config.js +3 -3
  78. package/dist/config.js.map +1 -1
  79. package/dist/{types/constants.d.ts → constants.d.ts} +72 -15
  80. package/dist/constants.js +254 -371
  81. package/dist/constants.js.map +1 -1
  82. package/dist/controls-options-manager/constants.js +3 -6
  83. package/dist/controls-options-manager/constants.js.map +1 -1
  84. package/dist/controls-options-manager/enums.js +7 -10
  85. package/dist/controls-options-manager/enums.js.map +1 -1
  86. package/dist/controls-options-manager/index.js +27 -32
  87. package/dist/controls-options-manager/index.js.map +1 -1
  88. package/dist/controls-options-manager/util.js +1 -2
  89. package/dist/controls-options-manager/util.js.map +1 -1
  90. package/dist/index.js +8 -5
  91. package/dist/index.js.map +1 -1
  92. package/dist/interceptors/index.d.ts +2 -0
  93. package/dist/interceptors/index.js +15 -0
  94. package/dist/interceptors/index.js.map +1 -0
  95. package/dist/interceptors/locusRetry.d.ts +27 -0
  96. package/dist/interceptors/locusRetry.js +94 -0
  97. package/dist/interceptors/locusRetry.js.map +1 -0
  98. package/dist/interpretation/collection.js +1 -2
  99. package/dist/interpretation/collection.js.map +1 -1
  100. package/dist/interpretation/index.js +2 -3
  101. package/dist/interpretation/index.js.map +1 -1
  102. package/dist/interpretation/siLanguage.js +2 -3
  103. package/dist/interpretation/siLanguage.js.map +1 -1
  104. package/dist/locus-info/controlsUtils.js +12 -13
  105. package/dist/locus-info/controlsUtils.js.map +1 -1
  106. package/dist/locus-info/embeddedAppsUtils.js +3 -4
  107. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  108. package/dist/locus-info/fullState.js +1 -2
  109. package/dist/locus-info/fullState.js.map +1 -1
  110. package/dist/locus-info/hostUtils.js +1 -2
  111. package/dist/locus-info/hostUtils.js.map +1 -1
  112. package/dist/{types/locus-info → locus-info}/index.d.ts +1 -1
  113. package/dist/locus-info/index.js +63 -38
  114. package/dist/locus-info/index.js.map +1 -1
  115. package/dist/locus-info/infoUtils.js +3 -4
  116. package/dist/locus-info/infoUtils.js.map +1 -1
  117. package/dist/locus-info/mediaSharesUtils.js +16 -3
  118. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  119. package/dist/{types/locus-info → locus-info}/parser.d.ts +3 -2
  120. package/dist/locus-info/parser.js +48 -31
  121. package/dist/locus-info/parser.js.map +1 -1
  122. package/dist/locus-info/selfUtils.js +7 -6
  123. package/dist/locus-info/selfUtils.js.map +1 -1
  124. package/dist/media/index.js +15 -10
  125. package/dist/media/index.js.map +1 -1
  126. package/dist/media/properties.js +16 -7
  127. package/dist/media/properties.js.map +1 -1
  128. package/dist/media/util.js +1 -2
  129. package/dist/media/util.js.map +1 -1
  130. package/dist/mediaQualityMetrics/config.d.ts +241 -0
  131. package/dist/mediaQualityMetrics/config.js +135 -339
  132. package/dist/mediaQualityMetrics/config.js.map +1 -1
  133. package/dist/{types/meeting → meeting}/in-meeting-actions.d.ts +4 -0
  134. package/dist/meeting/in-meeting-actions.js +18 -2
  135. package/dist/meeting/in-meeting-actions.js.map +1 -1
  136. package/dist/{types/meeting → meeting}/index.d.ts +331 -44
  137. package/dist/meeting/index.js +2639 -1367
  138. package/dist/meeting/index.js.map +1 -1
  139. package/dist/{types/meeting → meeting}/locusMediaRequest.d.ts +1 -2
  140. package/dist/meeting/locusMediaRequest.js +4 -5
  141. package/dist/meeting/locusMediaRequest.js.map +1 -1
  142. package/dist/meeting/muteState.js +2 -4
  143. package/dist/meeting/muteState.js.map +1 -1
  144. package/dist/{types/meeting → meeting}/request.d.ts +4 -1
  145. package/dist/meeting/request.js +47 -32
  146. package/dist/meeting/request.js.map +1 -1
  147. package/dist/meeting/state.js +1 -2
  148. package/dist/meeting/state.js.map +1 -1
  149. package/dist/{types/meeting → meeting}/util.d.ts +26 -1
  150. package/dist/meeting/util.js +83 -10
  151. package/dist/meeting/util.js.map +1 -1
  152. package/dist/meeting/voicea-meeting.d.ts +16 -0
  153. package/dist/meeting/voicea-meeting.js +169 -0
  154. package/dist/meeting/voicea-meeting.js.map +1 -0
  155. package/dist/meeting-info/collection.js +3 -4
  156. package/dist/meeting-info/collection.js.map +1 -1
  157. package/dist/{types/meeting-info → meeting-info}/index.d.ts +7 -0
  158. package/dist/meeting-info/index.js +53 -27
  159. package/dist/meeting-info/index.js.map +1 -1
  160. package/dist/{types/meeting-info → meeting-info}/meeting-info-v2.d.ts +1 -0
  161. package/dist/meeting-info/meeting-info-v2.js +52 -33
  162. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  163. package/dist/meeting-info/request.js +1 -2
  164. package/dist/meeting-info/request.js.map +1 -1
  165. package/dist/meeting-info/util.js +8 -8
  166. package/dist/meeting-info/util.js.map +1 -1
  167. package/dist/meeting-info/utilv2.js +12 -9
  168. package/dist/meeting-info/utilv2.js.map +1 -1
  169. package/dist/{types/meetings → meetings}/collection.d.ts +9 -0
  170. package/dist/meetings/collection.js +21 -5
  171. package/dist/meetings/collection.js.map +1 -1
  172. package/dist/{types/meetings → meetings}/index.d.ts +45 -16
  173. package/dist/meetings/index.js +166 -74
  174. package/dist/meetings/index.js.map +1 -1
  175. package/dist/meetings/request.js +2 -3
  176. package/dist/meetings/request.js.map +1 -1
  177. package/dist/meetings/util.js +3 -10
  178. package/dist/meetings/util.js.map +1 -1
  179. package/dist/{types/member → member}/index.d.ts +1 -0
  180. package/dist/member/index.js +10 -3
  181. package/dist/member/index.js.map +1 -1
  182. package/dist/member/member.types.d.ts +11 -0
  183. package/dist/member/member.types.js +17 -0
  184. package/dist/member/member.types.js.map +1 -0
  185. package/dist/member/types.js +6 -8
  186. package/dist/member/types.js.map +1 -1
  187. package/dist/member/util.js +12 -2
  188. package/dist/member/util.js.map +1 -1
  189. package/dist/members/collection.js +1 -2
  190. package/dist/members/collection.js.map +1 -1
  191. package/dist/members/index.js +25 -8
  192. package/dist/members/index.js.map +1 -1
  193. package/dist/members/request.js +2 -3
  194. package/dist/members/request.js.map +1 -1
  195. package/dist/{types/members → members}/types.d.ts +1 -0
  196. package/dist/members/types.js +3 -4
  197. package/dist/members/types.js.map +1 -1
  198. package/dist/{types/members → members}/util.d.ts +6 -1
  199. package/dist/members/util.js +18 -8
  200. package/dist/members/util.js.map +1 -1
  201. package/dist/{types/metrics → metrics}/constants.d.ts +15 -0
  202. package/dist/metrics/constants.js +16 -3
  203. package/dist/metrics/constants.js.map +1 -1
  204. package/dist/metrics/index.js +3 -2
  205. package/dist/metrics/index.js.map +1 -1
  206. package/dist/multistream/mediaRequestManager.js +9 -11
  207. package/dist/multistream/mediaRequestManager.js.map +1 -1
  208. package/dist/multistream/receiveSlot.js +3 -5
  209. package/dist/multistream/receiveSlot.js.map +1 -1
  210. package/dist/multistream/receiveSlotManager.js +7 -9
  211. package/dist/multistream/receiveSlotManager.js.map +1 -1
  212. package/dist/multistream/remoteMedia.js +3 -5
  213. package/dist/multistream/remoteMedia.js.map +1 -1
  214. package/dist/multistream/remoteMediaGroup.js +7 -6
  215. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  216. package/dist/{types/multistream → multistream}/remoteMediaManager.d.ts +9 -1
  217. package/dist/multistream/remoteMediaManager.js +74 -36
  218. package/dist/multistream/remoteMediaManager.js.map +1 -1
  219. package/dist/multistream/sendSlotManager.js +9 -6
  220. package/dist/multistream/sendSlotManager.js.map +1 -1
  221. package/dist/networkQualityMonitor/index.js +1 -2
  222. package/dist/networkQualityMonitor/index.js.map +1 -1
  223. package/dist/personal-meeting-room/index.js +2 -3
  224. package/dist/personal-meeting-room/index.js.map +1 -1
  225. package/dist/personal-meeting-room/request.js +2 -3
  226. package/dist/personal-meeting-room/request.js.map +1 -1
  227. package/dist/personal-meeting-room/util.js +1 -2
  228. package/dist/personal-meeting-room/util.js.map +1 -1
  229. package/dist/reachability/clusterReachability.d.ts +109 -0
  230. package/dist/reachability/clusterReachability.js +357 -0
  231. package/dist/reachability/clusterReachability.js.map +1 -0
  232. package/dist/reachability/index.d.ts +105 -0
  233. package/dist/reachability/index.js +279 -436
  234. package/dist/reachability/index.js.map +1 -1
  235. package/dist/{types/reachability → reachability}/request.d.ts +1 -1
  236. package/dist/reachability/request.js +14 -11
  237. package/dist/reachability/request.js.map +1 -1
  238. package/dist/reachability/util.d.ts +8 -0
  239. package/dist/reachability/util.js +29 -0
  240. package/dist/reachability/util.js.map +1 -0
  241. package/dist/reactions/constants.js +1 -2
  242. package/dist/reactions/constants.js.map +1 -1
  243. package/dist/reactions/reactions.js +2 -4
  244. package/dist/reactions/reactions.js.map +1 -1
  245. package/dist/reactions/reactions.type.js +6 -8
  246. package/dist/reactions/reactions.type.js.map +1 -1
  247. package/dist/{types/reconnection-manager → reconnection-manager}/index.d.ts +10 -0
  248. package/dist/reconnection-manager/index.js +129 -106
  249. package/dist/reconnection-manager/index.js.map +1 -1
  250. package/dist/recording-controller/enums.js +4 -5
  251. package/dist/recording-controller/enums.js.map +1 -1
  252. package/dist/recording-controller/index.js +43 -51
  253. package/dist/recording-controller/index.js.map +1 -1
  254. package/dist/recording-controller/util.js +1 -2
  255. package/dist/recording-controller/util.js.map +1 -1
  256. package/dist/{types/roap → roap}/index.d.ts +2 -1
  257. package/dist/roap/index.js +59 -28
  258. package/dist/roap/index.js.map +1 -1
  259. package/dist/{types/roap → roap}/request.d.ts +2 -1
  260. package/dist/roap/request.js +14 -22
  261. package/dist/roap/request.js.map +1 -1
  262. package/dist/{types/roap → roap}/turnDiscovery.d.ts +21 -4
  263. package/dist/roap/turnDiscovery.js +182 -89
  264. package/dist/roap/turnDiscovery.js.map +1 -1
  265. package/dist/rtcMetrics/constants.js +1 -2
  266. package/dist/rtcMetrics/constants.js.map +1 -1
  267. package/dist/{types/rtcMetrics → rtcMetrics}/index.d.ts +15 -1
  268. package/dist/rtcMetrics/index.js +72 -12
  269. package/dist/rtcMetrics/index.js.map +1 -1
  270. package/dist/statsAnalyzer/global.js +1 -2
  271. package/dist/statsAnalyzer/global.js.map +1 -1
  272. package/dist/{types/statsAnalyzer → statsAnalyzer}/index.d.ts +28 -11
  273. package/dist/statsAnalyzer/index.js +371 -318
  274. package/dist/statsAnalyzer/index.js.map +1 -1
  275. package/dist/statsAnalyzer/mqaUtil.d.ts +48 -0
  276. package/dist/statsAnalyzer/mqaUtil.js +295 -162
  277. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  278. package/dist/transcription/index.js +1 -2
  279. package/dist/transcription/index.js.map +1 -1
  280. package/dist/webinar/collection.d.ts +16 -0
  281. package/dist/webinar/collection.js +43 -0
  282. package/dist/webinar/collection.js.map +1 -0
  283. package/dist/webinar/index.d.ts +5 -0
  284. package/dist/webinar/index.js +68 -0
  285. package/dist/webinar/index.js.map +1 -0
  286. package/jest.config.js +3 -0
  287. package/package.json +44 -24
  288. package/process +1 -0
  289. package/src/common/errors/no-meeting-info.ts +24 -0
  290. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  291. package/src/common/errors/webex-errors.ts +19 -2
  292. package/src/common/logs/request.ts +5 -1
  293. package/src/config.ts +3 -5
  294. package/src/constants.ts +78 -8
  295. package/src/index.ts +4 -0
  296. package/src/interceptors/index.ts +3 -0
  297. package/src/interceptors/locusRetry.ts +67 -0
  298. package/src/locus-info/index.ts +52 -16
  299. package/src/locus-info/mediaSharesUtils.ts +16 -0
  300. package/src/locus-info/parser.ts +47 -21
  301. package/src/media/index.ts +8 -6
  302. package/src/media/properties.ts +17 -2
  303. package/src/mediaQualityMetrics/config.ts +103 -238
  304. package/src/meeting/in-meeting-actions.ts +8 -0
  305. package/src/meeting/index.ts +1692 -627
  306. package/src/meeting/request.ts +19 -1
  307. package/src/meeting/util.ts +102 -1
  308. package/src/meeting/voicea-meeting.ts +122 -0
  309. package/src/meeting-info/index.ts +47 -20
  310. package/src/meeting-info/meeting-info-v2.ts +32 -16
  311. package/src/meeting-info/util.ts +12 -9
  312. package/src/meeting-info/utilv2.ts +25 -15
  313. package/src/meetings/collection.ts +13 -0
  314. package/src/meetings/index.ts +112 -31
  315. package/src/meetings/util.ts +2 -8
  316. package/src/member/index.ts +9 -1
  317. package/src/member/member.types.ts +13 -0
  318. package/src/member/util.ts +14 -0
  319. package/src/members/index.ts +29 -2
  320. package/src/members/types.ts +1 -0
  321. package/src/members/util.ts +15 -1
  322. package/src/metrics/constants.ts +14 -0
  323. package/src/multistream/remoteMediaManager.ts +41 -4
  324. package/src/reachability/clusterReachability.ts +320 -0
  325. package/src/reachability/index.ts +221 -382
  326. package/src/reachability/request.ts +1 -1
  327. package/src/reachability/util.ts +24 -0
  328. package/src/reconnection-manager/index.ts +87 -83
  329. package/src/roap/index.ts +60 -24
  330. package/src/roap/request.ts +4 -17
  331. package/src/roap/turnDiscovery.ts +112 -39
  332. package/src/rtcMetrics/index.ts +71 -5
  333. package/src/statsAnalyzer/index.ts +430 -427
  334. package/src/statsAnalyzer/mqaUtil.ts +317 -168
  335. package/src/webinar/collection.ts +31 -0
  336. package/src/webinar/index.ts +62 -0
  337. package/test/integration/spec/converged-space-meetings.js +7 -7
  338. package/test/integration/spec/journey.js +88 -106
  339. package/test/integration/spec/space-meeting.js +10 -10
  340. package/test/unit/spec/breakouts/breakout.ts +2 -1
  341. package/test/unit/spec/breakouts/index.ts +7 -4
  342. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  343. package/test/unit/spec/locus-info/index.js +206 -13
  344. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  345. package/test/unit/spec/locus-info/mediaSharesUtils.ts +10 -0
  346. package/test/unit/spec/locus-info/parser.js +54 -13
  347. package/test/unit/spec/locus-info/selfUtils.js +1 -1
  348. package/test/unit/spec/media/index.ts +25 -4
  349. package/test/unit/spec/media/properties.ts +2 -2
  350. package/test/unit/spec/meeting/in-meeting-actions.ts +4 -0
  351. package/test/unit/spec/meeting/index.js +4354 -1285
  352. package/test/unit/spec/meeting/request.js +63 -12
  353. package/test/unit/spec/meeting/utils.js +145 -10
  354. package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
  355. package/test/unit/spec/meeting-info/index.js +180 -61
  356. package/test/unit/spec/meeting-info/meetinginfov2.js +216 -68
  357. package/test/unit/spec/meetings/collection.js +12 -0
  358. package/test/unit/spec/meetings/index.js +676 -195
  359. package/test/unit/spec/meetings/utils.js +35 -12
  360. package/test/unit/spec/member/index.js +8 -7
  361. package/test/unit/spec/member/util.js +32 -0
  362. package/test/unit/spec/members/index.js +130 -17
  363. package/test/unit/spec/members/utils.js +26 -0
  364. package/test/unit/spec/metrics/index.js +1 -2
  365. package/test/unit/spec/multistream/mediaRequestManager.ts +1 -0
  366. package/test/unit/spec/multistream/remoteMediaManager.ts +10 -2
  367. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  368. package/test/unit/spec/reachability/index.ts +505 -135
  369. package/test/unit/spec/reachability/util.ts +40 -0
  370. package/test/unit/spec/reconnection-manager/index.js +74 -17
  371. package/test/unit/spec/recording-controller/index.js +0 -1
  372. package/test/unit/spec/roap/index.ts +181 -61
  373. package/test/unit/spec/roap/request.ts +27 -3
  374. package/test/unit/spec/roap/turnDiscovery.ts +363 -102
  375. package/test/unit/spec/rtcMetrics/index.ts +57 -3
  376. package/test/unit/spec/stats-analyzer/index.js +1225 -12
  377. package/test/unit/spec/webinar/collection.ts +13 -0
  378. package/test/unit/spec/webinar/index.ts +60 -0
  379. package/test/utils/integrationTestUtils.js +4 -4
  380. package/test/utils/webex-test-users.js +12 -4
  381. package/dist/types/mediaQualityMetrics/config.d.ts +0 -365
  382. package/dist/types/reachability/index.d.ts +0 -158
  383. package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -24
  384. /package/dist/{types/annotation → annotation}/annotation.types.d.ts +0 -0
  385. /package/dist/{types/annotation → annotation}/constants.d.ts +0 -0
  386. /package/dist/{types/annotation → annotation}/index.d.ts +0 -0
  387. /package/dist/{types/breakouts → breakouts}/breakout.d.ts +0 -0
  388. /package/dist/{types/breakouts → breakouts}/collection.d.ts +0 -0
  389. /package/dist/{types/breakouts → breakouts}/edit-lock-error.d.ts +0 -0
  390. /package/dist/{types/breakouts → breakouts}/events.d.ts +0 -0
  391. /package/dist/{types/breakouts → breakouts}/index.d.ts +0 -0
  392. /package/dist/{types/breakouts → breakouts}/request.d.ts +0 -0
  393. /package/dist/{types/breakouts → breakouts}/utils.d.ts +0 -0
  394. /package/dist/{types/common → common}/browser-detection.d.ts +0 -0
  395. /package/dist/{types/common → common}/collection.d.ts +0 -0
  396. /package/dist/{types/common → common}/config.d.ts +0 -0
  397. /package/dist/{types/common → common}/errors/captcha-error.d.ts +0 -0
  398. /package/dist/{types/common → common}/errors/intent-to-join.d.ts +0 -0
  399. /package/dist/{types/common → common}/errors/join-meeting.d.ts +0 -0
  400. /package/dist/{types/common → common}/errors/media.d.ts +0 -0
  401. /package/dist/{types/common → common}/errors/parameter.d.ts +0 -0
  402. /package/dist/{types/common → common}/errors/password-error.d.ts +0 -0
  403. /package/dist/{types/common → common}/errors/permission.d.ts +0 -0
  404. /package/dist/{types/common → common}/errors/reconnection-in-progress.d.ts +0 -0
  405. /package/dist/{types/common → common}/errors/reconnection.d.ts +0 -0
  406. /package/dist/{types/common → common}/errors/stats.d.ts +0 -0
  407. /package/dist/{types/common → common}/errors/webex-meetings-error.d.ts +0 -0
  408. /package/dist/{types/common → common}/events/events-scope.d.ts +0 -0
  409. /package/dist/{types/common → common}/events/events.d.ts +0 -0
  410. /package/dist/{types/common → common}/events/trigger-proxy.d.ts +0 -0
  411. /package/dist/{types/common → common}/events/util.d.ts +0 -0
  412. /package/dist/{types/common → common}/logs/logger-config.d.ts +0 -0
  413. /package/dist/{types/common → common}/logs/logger-proxy.d.ts +0 -0
  414. /package/dist/{types/common → common}/queue.d.ts +0 -0
  415. /package/dist/{types/controls-options-manager → controls-options-manager}/constants.d.ts +0 -0
  416. /package/dist/{types/controls-options-manager → controls-options-manager}/enums.d.ts +0 -0
  417. /package/dist/{types/controls-options-manager → controls-options-manager}/index.d.ts +0 -0
  418. /package/dist/{types/controls-options-manager → controls-options-manager}/types.d.ts +0 -0
  419. /package/dist/{types/controls-options-manager → controls-options-manager}/util.d.ts +0 -0
  420. /package/dist/{types/index.d.ts → index.d.ts} +0 -0
  421. /package/dist/{types/interpretation → interpretation}/collection.d.ts +0 -0
  422. /package/dist/{types/interpretation → interpretation}/index.d.ts +0 -0
  423. /package/dist/{types/interpretation → interpretation}/siLanguage.d.ts +0 -0
  424. /package/dist/{types/locus-info → locus-info}/controlsUtils.d.ts +0 -0
  425. /package/dist/{types/locus-info → locus-info}/embeddedAppsUtils.d.ts +0 -0
  426. /package/dist/{types/locus-info → locus-info}/fullState.d.ts +0 -0
  427. /package/dist/{types/locus-info → locus-info}/hostUtils.d.ts +0 -0
  428. /package/dist/{types/locus-info → locus-info}/infoUtils.d.ts +0 -0
  429. /package/dist/{types/locus-info → locus-info}/mediaSharesUtils.d.ts +0 -0
  430. /package/dist/{types/locus-info → locus-info}/selfUtils.d.ts +0 -0
  431. /package/dist/{types/media → media}/index.d.ts +0 -0
  432. /package/dist/{types/media → media}/properties.d.ts +0 -0
  433. /package/dist/{types/media → media}/util.d.ts +0 -0
  434. /package/dist/{types/meeting → meeting}/muteState.d.ts +0 -0
  435. /package/dist/{types/meeting → meeting}/request.type.d.ts +0 -0
  436. /package/dist/{types/meeting → meeting}/state.d.ts +0 -0
  437. /package/dist/{types/meeting-info → meeting-info}/collection.d.ts +0 -0
  438. /package/dist/{types/meeting-info → meeting-info}/request.d.ts +0 -0
  439. /package/dist/{types/meeting-info → meeting-info}/util.d.ts +0 -0
  440. /package/dist/{types/meeting-info → meeting-info}/utilv2.d.ts +0 -0
  441. /package/dist/{types/meetings → meetings}/meetings.types.d.ts +0 -0
  442. /package/dist/{types/meetings → meetings}/request.d.ts +0 -0
  443. /package/dist/{types/meetings → meetings}/util.d.ts +0 -0
  444. /package/dist/{types/member → member}/types.d.ts +0 -0
  445. /package/dist/{types/member → member}/util.d.ts +0 -0
  446. /package/dist/{types/members → members}/collection.d.ts +0 -0
  447. /package/dist/{types/members → members}/index.d.ts +0 -0
  448. /package/dist/{types/members → members}/request.d.ts +0 -0
  449. /package/dist/{types/metrics → metrics}/index.d.ts +0 -0
  450. /package/dist/{types/multistream → multistream}/mediaRequestManager.d.ts +0 -0
  451. /package/dist/{types/multistream → multistream}/receiveSlot.d.ts +0 -0
  452. /package/dist/{types/multistream → multistream}/receiveSlotManager.d.ts +0 -0
  453. /package/dist/{types/multistream → multistream}/remoteMedia.d.ts +0 -0
  454. /package/dist/{types/multistream → multistream}/remoteMediaGroup.d.ts +0 -0
  455. /package/dist/{types/multistream → multistream}/sendSlotManager.d.ts +0 -0
  456. /package/dist/{types/networkQualityMonitor → networkQualityMonitor}/index.d.ts +0 -0
  457. /package/dist/{types/personal-meeting-room → personal-meeting-room}/index.d.ts +0 -0
  458. /package/dist/{types/personal-meeting-room → personal-meeting-room}/request.d.ts +0 -0
  459. /package/dist/{types/personal-meeting-room → personal-meeting-room}/util.d.ts +0 -0
  460. /package/dist/{types/reactions → reactions}/constants.d.ts +0 -0
  461. /package/dist/{types/reactions → reactions}/reactions.d.ts +0 -0
  462. /package/dist/{types/reactions → reactions}/reactions.type.d.ts +0 -0
  463. /package/dist/{types/recording-controller → recording-controller}/enums.d.ts +0 -0
  464. /package/dist/{types/recording-controller → recording-controller}/index.d.ts +0 -0
  465. /package/dist/{types/recording-controller → recording-controller}/util.d.ts +0 -0
  466. /package/dist/{types/rtcMetrics → rtcMetrics}/constants.d.ts +0 -0
  467. /package/dist/{types/statsAnalyzer → statsAnalyzer}/global.d.ts +0 -0
  468. /package/dist/{types/transcription → transcription}/index.d.ts +0 -0
  469. /package/test/unit/spec/locus-info/{selfConstant.js → lib/selfConstant.js} +0 -0
@@ -3,11 +3,15 @@ import {difference} from 'lodash';
3
3
  import SortedQueue from '../common/queue';
4
4
  import LoggerProxy from '../common/logs/logger-proxy';
5
5
 
6
+ import Metrics from '../metrics';
7
+ import BEHAVIORAL_METRICS from '../metrics/constants';
8
+
6
9
  const MAX_OOO_DELTA_COUNT = 5; // when we receive an out-of-order delta and the queue builds up to MAX_OOO_DELTA_COUNT, we do a sync with Locus
7
10
  const OOO_DELTA_WAIT_TIME = 10000; // [ms] minimum wait time before we do a sync if we get out-of-order deltas
8
11
  const OOO_DELTA_WAIT_TIME_RANDOM_DELAY = 5000; // [ms] max random delay added to OOO_DELTA_WAIT_TIME
9
12
 
10
13
  type LocusDeltaDto = {
14
+ url: string;
11
15
  baseSequence: {
12
16
  rangeStart: number;
13
17
  rangeEnd: number;
@@ -44,11 +48,12 @@ export default class Parser {
44
48
  USE_CURRENT: 'USE_CURRENT',
45
49
  WAIT: 'WAIT',
46
50
  ERROR: 'ERROR',
51
+ LOCUS_URL_CHANGED: 'LOCUS_URL_CHANGED',
47
52
  };
48
53
 
49
54
  queue: SortedQueue<LocusDeltaDto>;
50
55
  workingCopy: any;
51
- syncTimer: null | number | NodeJS.Timeout;
56
+ syncTimer?: ReturnType<typeof setTimeout>;
52
57
 
53
58
  /**
54
59
  * @constructs Parser
@@ -80,7 +85,7 @@ export default class Parser {
80
85
  this.status = 'IDLE';
81
86
  this.onDeltaAction = null;
82
87
  this.workingCopy = null;
83
- this.syncTimer = null;
88
+ this.syncTimer = undefined;
84
89
  }
85
90
 
86
91
  /**
@@ -264,7 +269,7 @@ export default class Parser {
264
269
  * @returns {string} loci comparison state
265
270
  */
266
271
  private static compareDelta(current, incoming) {
267
- const {LT, GT, EQ, DESYNC, USE_INCOMING, WAIT} = Parser.loci;
272
+ const {LT, GT, EQ, DESYNC, USE_INCOMING, WAIT, LOCUS_URL_CHANGED} = Parser.loci;
268
273
 
269
274
  const {extractComparisonState: extract} = Parser;
270
275
  const {packComparisonResult: pack} = Parser;
@@ -276,6 +281,13 @@ export default class Parser {
276
281
  return pack(Parser.compareToAction(comparison), result);
277
282
  }
278
283
 
284
+ if (incoming.url !== current.url) {
285
+ // when moving to/from a breakout session, the locus URL will change and also
286
+ // the baseSequence, making incoming and current incomparable, so use a
287
+ // unique comparison state
288
+ return pack(LOCUS_URL_CHANGED, result);
289
+ }
290
+
279
291
  comparison = Parser.compareSequence(current.sequence, incoming.baseSequence);
280
292
 
281
293
  switch (extract(comparison)) {
@@ -293,6 +305,10 @@ export default class Parser {
293
305
  // the incoming locus has baseSequence from the future, so it is out-of-order,
294
306
  // we are missing 1 or more locus that should be in front of it, we need to wait for it
295
307
  comparison = WAIT;
308
+
309
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.LOCUS_DELTA_OUT_OF_ORDER, {
310
+ stack: new Error().stack,
311
+ });
296
312
  }
297
313
  break;
298
314
  default:
@@ -657,11 +673,11 @@ export default class Parser {
657
673
  * @returns {undefined}
658
674
  */
659
675
  private startSyncTimer() {
660
- if (this.syncTimer === null) {
676
+ if (this.syncTimer === undefined) {
661
677
  const timeout = OOO_DELTA_WAIT_TIME + Math.random() * OOO_DELTA_WAIT_TIME_RANDOM_DELAY;
662
678
 
663
679
  this.syncTimer = setTimeout(() => {
664
- this.syncTimer = null;
680
+ this.syncTimer = undefined;
665
681
  this.triggerSync('timer expired, blocked on out-of-order delta');
666
682
  }, timeout);
667
683
  }
@@ -673,9 +689,9 @@ export default class Parser {
673
689
  * @returns {undefined}
674
690
  */
675
691
  private stopSyncTimer() {
676
- if (this.syncTimer !== null) {
692
+ if (this.syncTimer !== undefined) {
677
693
  clearTimeout(this.syncTimer);
678
- this.syncTimer = null;
694
+ this.syncTimer = undefined;
679
695
  }
680
696
  }
681
697
 
@@ -686,7 +702,7 @@ export default class Parser {
686
702
  * @returns {undefined}
687
703
  */
688
704
  processDeltaEvent() {
689
- const {DESYNC, USE_INCOMING, WAIT} = Parser.loci;
705
+ const {DESYNC, USE_INCOMING, WAIT, LOCUS_URL_CHANGED} = Parser.loci;
690
706
  const {extractComparisonState: extract} = Parser;
691
707
  const newLoci = this.queue.dequeue();
692
708
 
@@ -705,19 +721,29 @@ export default class Parser {
705
721
 
706
722
  let needToWait = false;
707
723
 
708
- if (lociComparison === DESYNC) {
709
- // wait for desync response
710
- this.pause();
711
- } else if (lociComparison === USE_INCOMING) {
712
- // update working copy for future comparisons.
713
- // Note: The working copy of parser gets updated in .onFullLocus()
714
- // and here when USE_INCOMING locus.
715
- this.workingCopy = newLoci;
716
- } else if (lociComparison === WAIT) {
717
- // we've taken newLoci from the front of the queue, so put it back there as we have to wait
718
- // for the one that should be in front of it, before we can process it
719
- this.queue.enqueue(newLoci);
720
- needToWait = true;
724
+ switch (lociComparison) {
725
+ case DESYNC:
726
+ // wait for desync response
727
+ this.pause();
728
+ break;
729
+
730
+ case USE_INCOMING:
731
+ case LOCUS_URL_CHANGED:
732
+ // update working copy for future comparisons.
733
+ // Note: The working copy of parser gets updated in .onFullLocus()
734
+ // and here when USE_INCOMING or LOCUS_URL_CHANGED locus.
735
+ this.workingCopy = newLoci;
736
+ break;
737
+
738
+ case WAIT:
739
+ // we've taken newLoci from the front of the queue, so put it back there as we have to wait
740
+ // for the one that should be in front of it, before we can process it
741
+ this.queue.enqueue(newLoci);
742
+ needToWait = true;
743
+ break;
744
+
745
+ default:
746
+ break;
721
747
  }
722
748
 
723
749
  if (needToWait) {
@@ -182,8 +182,10 @@ Media.createMediaConnection = (
182
182
  return new MultistreamRoapMediaConnection(
183
183
  config,
184
184
  meetingId,
185
+ /* the rtc metrics objects callbacks */
185
186
  (data) => rtcMetrics.addMetrics(data),
186
- () => rtcMetrics.closeMetrics()
187
+ () => rtcMetrics.closeMetrics(),
188
+ () => rtcMetrics.sendMetricsInQueue()
187
189
  );
188
190
  }
189
191
 
@@ -215,10 +217,10 @@ Media.createMediaConnection = (
215
217
  {
216
218
  // TODO: RoapMediaConnection is not ready to use stream classes yet, so we pass the raw MediaStreamTrack for now SPARK-460530
217
219
  localTracks: {
218
- audio: audioStream?.outputTrack,
219
- video: videoStream?.outputTrack,
220
- screenShareVideo: shareVideoStream?.outputTrack,
221
- screenShareAudio: shareAudioStream?.outputTrack, // TODO: add type for screenShareAudio in internal-media-core SPARK-446923
220
+ audio: audioStream?.outputStream?.getTracks()[0],
221
+ video: videoStream?.outputStream?.getTracks()[0],
222
+ screenShareVideo: shareVideoStream?.outputStream?.getTracks()[0],
223
+ screenShareAudio: shareAudioStream?.outputStream?.getTracks()[0], // TODO: add type for screenShareAudio in internal-media-core SPARK-446923
222
224
  } as unknown,
223
225
  direction: {
224
226
  audio: Media.getDirection(true, mediaDirection.receiveAudio, mediaDirection.sendAudio),
@@ -397,7 +399,7 @@ Media.stopStream = (stream: LocalStream) => {
397
399
  stream.stop();
398
400
  } catch (e) {
399
401
  LoggerProxy.logger.error(
400
- `Media:index#stopStream --> Unable to stop the stream with ready state of the output track => ${stream.outputTrack.readyState} & input track => ${stream.inputTrack.readyState}, error: ${e}`
402
+ `Media:index#stopStream --> Unable to stop the stream with ready state => ${stream.readyState}, error: ${e}`
401
403
  );
402
404
  }
403
405
  });
@@ -8,7 +8,7 @@ import {
8
8
  RemoteStream,
9
9
  } from '@webex/media-helpers';
10
10
 
11
- import {MEETINGS, PC_BAIL_TIMEOUT, QUALITY_LEVELS} from '../constants';
11
+ import {MEETINGS, ICE_AND_DTLS_CONNECTION_TIMEOUT, QUALITY_LEVELS} from '../constants';
12
12
  import LoggerProxy from '../common/logs/logger-proxy';
13
13
 
14
14
  export type MediaDirection = {
@@ -200,7 +200,7 @@ export default class MediaProperties {
200
200
  timer = setTimeout(() => {
201
201
  this.webrtcMediaConnection.off(Event.CONNECTION_STATE_CHANGED, connectionStateListener);
202
202
  reject();
203
- }, PC_BAIL_TIMEOUT);
203
+ }, ICE_AND_DTLS_CONNECTION_TIMEOUT);
204
204
 
205
205
  this.webrtcMediaConnection.on(Event.CONNECTION_STATE_CHANGED, connectionStateListener);
206
206
  });
@@ -259,10 +259,25 @@ export default class MediaProperties {
259
259
 
260
260
  return true;
261
261
  }
262
+ LoggerProxy.logger.warn(
263
+ `Media:properties#getCurrentConnectionType --> missing localCandidate.protocol, candidateType=${localCandidate.candidateType}`
264
+ );
262
265
 
263
266
  return false;
264
267
  });
265
268
 
269
+ if (foundConnectionType === 'unknown') {
270
+ const candidatePairStates = allStatsReports
271
+ .filter((report) => report.type === 'candidate-pair')
272
+ .map((report) => report.state);
273
+
274
+ LoggerProxy.logger.warn(
275
+ `Media:properties#getCurrentConnectionType --> all candidate pair states: ${JSON.stringify(
276
+ candidatePairStates
277
+ )}`
278
+ );
279
+ }
280
+
266
281
  return foundConnectionType;
267
282
  }
268
283
  }
@@ -44,28 +44,28 @@ export const emptyAudioReceive = {
44
44
  stunPackets: 0,
45
45
  transportType: 'UDP',
46
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
- ],
47
+ streams: [],
48
+ };
49
+
50
+ export const emptyAudioReceiveStream = {
51
+ common: {
52
+ codec: 'opus',
53
+ concealedFrames: 0,
54
+ csi: [],
55
+ maxConcealRunLength: 0,
56
+ optimalBitrate: 0,
57
+ optimalFrameRate: 0,
58
+ receivedBitrate: 0,
59
+ receivedFrameRate: 0,
60
+ renderedFrameRate: 0,
61
+ requestedBitrate: 0,
62
+ requestedFrameRate: 0,
63
+ rtpEndToEndLost: 0,
64
+ maxRtpJitter: 0,
65
+ meanRtpJitter: 0,
66
+ rtpPackets: 0,
67
+ ssci: 0,
68
+ },
69
69
  };
70
70
 
71
71
  export const emptyAudioTransmit = {
@@ -98,20 +98,20 @@ export const emptyAudioTransmit = {
98
98
  stunPackets: 0,
99
99
  transportType: 'UDP',
100
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
- ],
101
+ streams: [],
102
+ };
103
+
104
+ export const emptyAudioTransmitStream = {
105
+ common: {
106
+ codec: 'opus',
107
+ csi: [],
108
+ requestedBitrate: 0,
109
+ requestedFrames: 0,
110
+ rtpPackets: 0,
111
+ ssci: 0,
112
+ transmittedBitrate: 0,
113
+ transmittedFrameRate: 0,
114
+ },
115
115
  };
116
116
 
117
117
  export const emptyVideoReceive = {
@@ -143,39 +143,39 @@ export const emptyVideoReceive = {
143
143
  stunPackets: 0, // Not avaliable
144
144
  transportType: 'UDP',
145
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
- ],
146
+ streams: [],
147
+ };
148
+
149
+ export const emptyVideoReceiveStream = {
150
+ common: {
151
+ codec: 'H264',
152
+ concealedFrames: 0, // Not avaliable
153
+ csi: [],
154
+ maxConcealRunLength: 0, // Not avaliable
155
+ optimalBitrate: 0,
156
+ optimalFrameRate: 0,
157
+ receivedBitrate: 0,
158
+ receivedFrameRate: 0,
159
+ renderedFrameRate: 0, // Not avaliable
160
+ requestedBitrate: 0,
161
+ requestedFrameRate: 0,
162
+ rtpEndToEndLost: 0,
163
+ rtpJitter: 0,
164
+ rtpPackets: 0,
165
+ ssci: 0, // Not avaliable
166
+ },
167
+ h264CodecProfile: 'BP',
168
+ isActiveSpeaker: true,
169
+ optimalFrameSize: 0, // Not avaliable
170
+ receivedFrameSize: 0,
171
+ receivedHeight: 0,
172
+ receivedKeyFrames: 0,
173
+ receivedKeyFramesForRequest: 0,
174
+ receivedKeyFramesSourceChange: 0,
175
+ receivedKeyFramesUnknown: 0,
176
+ receivedWidth: 0,
177
+ requestedFrameSize: 0,
178
+ requestedKeyFrames: 0,
179
179
  };
180
180
 
181
181
  export const emptyVideoTransmit = {
@@ -208,177 +208,42 @@ export const emptyVideoTransmit = {
208
208
  stunPackets: 0, // Dont have access to it
209
209
  transportType: 'UDP', // TODO: need to calculate
210
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
- ],
211
+ streams: [],
313
212
  };
314
213
 
315
- export const emptyVideoShareTransmit = {
316
- // sceen sharing
214
+ export const emptyVideoTransmitStream = {
317
215
  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
216
+ codec: 'H264',
217
+ csi: [],
218
+ duplicateSsci: 0, // Not Avaliable
219
+ requestedBitrate: 0, // TODO: from remote SDP
220
+ requestedFrames: 0, // TODO: from remote SDP
221
+ rtpPackets: 0, // same as rtp packets
222
+ ssci: 0,
223
+ transmittedBitrate: 0, // TODO: get in the candidate pair
224
+ transmittedFrameRate: 0, // TODO: from track info
345
225
  },
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
- ],
226
+ h264CodecProfile: 'BP', // TODO: from localSDP
227
+ isAvatar: false, // Not Avaliable
228
+ isHardwareEncoded: false, // Not Avaliable
229
+ localConfigurationChanges: 2, // Not Avaliable
230
+ maxFrameQp: 0, // Not Avaliable
231
+ maxNoiseLevel: 0, // Not Avaliable
232
+ minRegionQp: 0, // Not Avaliable
233
+ remoteConfigurationChanges: 0, // Not Avaliable
234
+ requestedFrameSize: 0, // TODO: from remote SDP
235
+ requestedKeyFrames: 0, // outbound Fir request
236
+ transmittedFrameSize: 0, // Not Avaliable
237
+ transmittedHeight: 0,
238
+ transmittedKeyFrames: 0, // Key frames encoded
239
+ transmittedKeyFramesClient: 0, // Not Avaliable
240
+ transmittedKeyFramesConfigurationChange: 0, // Not Avaliable
241
+ transmittedKeyFramesFeedback: 0, // Not Avaliable
242
+ transmittedKeyFramesLocalDrop: 0, // Not Avaliable
243
+ transmittedKeyFramesOtherLayer: 0, // Not Avaliable
244
+ transmittedKeyFramesPeriodic: 0, // Not Avaliable
245
+ transmittedKeyFramesSceneChange: 0, // Not Avaliable
246
+ transmittedKeyFramesStartup: 0, // Not Avaliable
247
+ transmittedKeyFramesUnknown: 0, // Not Avaliable
248
+ transmittedWidth: 0,
384
249
  };
@@ -71,12 +71,14 @@ interface IInMeetingActions {
71
71
  canShareDesktop?: boolean;
72
72
  canShareContent?: boolean;
73
73
  canTransferFile?: boolean;
74
+ canChat?: boolean;
74
75
  canDoVideo?: boolean;
75
76
  canAnnotate?: boolean;
76
77
  canUseVoip?: boolean;
77
78
  supportHQV?: boolean;
78
79
  supportHDV?: boolean;
79
80
  canShareWhiteBoard?: boolean;
81
+ enforceVirtualBackground?: boolean;
80
82
  }
81
83
 
82
84
  /**
@@ -209,6 +211,8 @@ export default class InMeetingActions implements IInMeetingActions {
209
211
 
210
212
  canTransferFile = null;
211
213
 
214
+ canChat = null;
215
+
212
216
  canDoVideo = null;
213
217
 
214
218
  canAnnotate = null;
@@ -217,6 +221,8 @@ export default class InMeetingActions implements IInMeetingActions {
217
221
 
218
222
  supportHQV = null;
219
223
 
224
+ enforceVirtualBackground = null;
225
+
220
226
  supportHDV = null;
221
227
 
222
228
  canShareWhiteBoard = null;
@@ -288,9 +294,11 @@ export default class InMeetingActions implements IInMeetingActions {
288
294
  canShareDesktop: this.canShareDesktop,
289
295
  canShareContent: this.canShareContent,
290
296
  canTransferFile: this.canTransferFile,
297
+ canChat: this.canChat,
291
298
  canDoVideo: this.canDoVideo,
292
299
  canAnnotate: this.canAnnotate,
293
300
  canUseVoip: this.canUseVoip,
301
+ enforceVirtualBackground: this.enforceVirtualBackground,
294
302
  supportHQV: this.supportHQV,
295
303
  supportHDV: this.supportHDV,
296
304
  canShareWhiteBoard: this.canShareWhiteBoard,