@webex/plugin-meetings 3.0.0-beta.39 → 3.0.0-beta.391

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 (393) hide show
  1. package/README.md +58 -8
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +342 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +94 -15
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/events.js +45 -0
  11. package/dist/breakouts/events.js.map +1 -0
  12. package/dist/breakouts/index.js +671 -81
  13. package/dist/breakouts/index.js.map +1 -1
  14. package/dist/breakouts/utils.js +45 -1
  15. package/dist/breakouts/utils.js.map +1 -1
  16. package/dist/common/errors/no-meeting-info.js +51 -0
  17. package/dist/common/errors/no-meeting-info.js.map +1 -0
  18. package/dist/common/errors/reclaim-host-role-errors.js +158 -0
  19. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  20. package/dist/common/errors/webex-errors.js +48 -7
  21. package/dist/common/errors/webex-errors.js.map +1 -1
  22. package/dist/common/logs/logger-proxy.js +1 -1
  23. package/dist/common/logs/logger-proxy.js.map +1 -1
  24. package/dist/common/logs/request.js +5 -1
  25. package/dist/common/logs/request.js.map +1 -1
  26. package/dist/common/queue.js +24 -9
  27. package/dist/common/queue.js.map +1 -1
  28. package/dist/config.js +5 -10
  29. package/dist/config.js.map +1 -1
  30. package/dist/constants.js +242 -33
  31. package/dist/constants.js.map +1 -1
  32. package/dist/controls-options-manager/enums.js +14 -2
  33. package/dist/controls-options-manager/enums.js.map +1 -1
  34. package/dist/controls-options-manager/index.js +109 -15
  35. package/dist/controls-options-manager/index.js.map +1 -1
  36. package/dist/controls-options-manager/types.js +7 -0
  37. package/dist/controls-options-manager/types.js.map +1 -0
  38. package/dist/controls-options-manager/util.js +309 -18
  39. package/dist/controls-options-manager/util.js.map +1 -1
  40. package/dist/index.js +110 -2
  41. package/dist/index.js.map +1 -1
  42. package/dist/interceptors/index.js +15 -0
  43. package/dist/interceptors/index.js.map +1 -0
  44. package/dist/interceptors/locusRetry.js +93 -0
  45. package/dist/interceptors/locusRetry.js.map +1 -0
  46. package/dist/interpretation/collection.js +23 -0
  47. package/dist/interpretation/collection.js.map +1 -0
  48. package/dist/interpretation/index.js +380 -0
  49. package/dist/interpretation/index.js.map +1 -0
  50. package/dist/interpretation/siLanguage.js +25 -0
  51. package/dist/interpretation/siLanguage.js.map +1 -0
  52. package/dist/locus-info/controlsUtils.js +91 -2
  53. package/dist/locus-info/controlsUtils.js.map +1 -1
  54. package/dist/locus-info/index.js +386 -62
  55. package/dist/locus-info/index.js.map +1 -1
  56. package/dist/locus-info/infoUtils.js +7 -1
  57. package/dist/locus-info/infoUtils.js.map +1 -1
  58. package/dist/locus-info/mediaSharesUtils.js +71 -1
  59. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  60. package/dist/locus-info/parser.js +249 -72
  61. package/dist/locus-info/parser.js.map +1 -1
  62. package/dist/locus-info/selfUtils.js +89 -14
  63. package/dist/locus-info/selfUtils.js.map +1 -1
  64. package/dist/media/index.js +65 -102
  65. package/dist/media/index.js.map +1 -1
  66. package/dist/media/properties.js +73 -124
  67. package/dist/media/properties.js.map +1 -1
  68. package/dist/mediaQualityMetrics/config.js +135 -330
  69. package/dist/mediaQualityMetrics/config.js.map +1 -1
  70. package/dist/meeting/in-meeting-actions.js +86 -2
  71. package/dist/meeting/in-meeting-actions.js.map +1 -1
  72. package/dist/meeting/index.js +4075 -2827
  73. package/dist/meeting/index.js.map +1 -1
  74. package/dist/meeting/locusMediaRequest.js +292 -0
  75. package/dist/meeting/locusMediaRequest.js.map +1 -0
  76. package/dist/meeting/muteState.js +224 -136
  77. package/dist/meeting/muteState.js.map +1 -1
  78. package/dist/meeting/request.js +177 -152
  79. package/dist/meeting/request.js.map +1 -1
  80. package/dist/meeting/util.js +672 -417
  81. package/dist/meeting/util.js.map +1 -1
  82. package/dist/meeting-info/index.js +73 -7
  83. package/dist/meeting-info/index.js.map +1 -1
  84. package/dist/meeting-info/meeting-info-v2.js +192 -51
  85. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  86. package/dist/meeting-info/util.js +1 -1
  87. package/dist/meeting-info/util.js.map +1 -1
  88. package/dist/meeting-info/utilv2.js +36 -36
  89. package/dist/meeting-info/utilv2.js.map +1 -1
  90. package/dist/meetings/collection.js +39 -0
  91. package/dist/meetings/collection.js.map +1 -1
  92. package/dist/meetings/index.js +484 -119
  93. package/dist/meetings/index.js.map +1 -1
  94. package/dist/meetings/meetings.types.js +7 -0
  95. package/dist/meetings/meetings.types.js.map +1 -0
  96. package/dist/meetings/request.js +2 -0
  97. package/dist/meetings/request.js.map +1 -1
  98. package/dist/meetings/util.js +73 -7
  99. package/dist/meetings/util.js.map +1 -1
  100. package/dist/member/index.js +58 -0
  101. package/dist/member/index.js.map +1 -1
  102. package/dist/member/types.js +25 -0
  103. package/dist/member/types.js.map +1 -0
  104. package/dist/member/util.js +132 -25
  105. package/dist/member/util.js.map +1 -1
  106. package/dist/members/collection.js +10 -0
  107. package/dist/members/collection.js.map +1 -1
  108. package/dist/members/index.js +102 -6
  109. package/dist/members/index.js.map +1 -1
  110. package/dist/members/request.js +106 -38
  111. package/dist/members/request.js.map +1 -1
  112. package/dist/members/types.js +15 -0
  113. package/dist/members/types.js.map +1 -0
  114. package/dist/members/util.js +326 -232
  115. package/dist/members/util.js.map +1 -1
  116. package/dist/metrics/constants.js +18 -1
  117. package/dist/metrics/constants.js.map +1 -1
  118. package/dist/metrics/index.js +1 -446
  119. package/dist/metrics/index.js.map +1 -1
  120. package/dist/multistream/mediaRequestManager.js +223 -32
  121. package/dist/multistream/mediaRequestManager.js.map +1 -1
  122. package/dist/multistream/receiveSlot.js +10 -0
  123. package/dist/multistream/receiveSlot.js.map +1 -1
  124. package/dist/multistream/receiveSlotManager.js +39 -36
  125. package/dist/multistream/receiveSlotManager.js.map +1 -1
  126. package/dist/multistream/remoteMedia.js +3 -1
  127. package/dist/multistream/remoteMedia.js.map +1 -1
  128. package/dist/multistream/remoteMediaGroup.js +76 -5
  129. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  130. package/dist/multistream/remoteMediaManager.js +366 -104
  131. package/dist/multistream/remoteMediaManager.js.map +1 -1
  132. package/dist/multistream/sendSlotManager.js +255 -0
  133. package/dist/multistream/sendSlotManager.js.map +1 -0
  134. package/dist/reachability/clusterReachability.js +356 -0
  135. package/dist/reachability/clusterReachability.js.map +1 -0
  136. package/dist/reachability/index.js +263 -390
  137. package/dist/reachability/index.js.map +1 -1
  138. package/dist/reachability/request.js +6 -4
  139. package/dist/reachability/request.js.map +1 -1
  140. package/dist/reachability/util.js +29 -0
  141. package/dist/reachability/util.js.map +1 -0
  142. package/dist/reconnection-manager/index.js +266 -202
  143. package/dist/reconnection-manager/index.js.map +1 -1
  144. package/dist/recording-controller/index.js +21 -2
  145. package/dist/recording-controller/index.js.map +1 -1
  146. package/dist/recording-controller/util.js +9 -8
  147. package/dist/recording-controller/util.js.map +1 -1
  148. package/dist/roap/index.js +51 -28
  149. package/dist/roap/index.js.map +1 -1
  150. package/dist/roap/request.js +48 -64
  151. package/dist/roap/request.js.map +1 -1
  152. package/dist/roap/turnDiscovery.js +220 -70
  153. package/dist/roap/turnDiscovery.js.map +1 -1
  154. package/dist/rtcMetrics/constants.js +12 -0
  155. package/dist/rtcMetrics/constants.js.map +1 -0
  156. package/dist/rtcMetrics/index.js +179 -0
  157. package/dist/rtcMetrics/index.js.map +1 -0
  158. package/dist/statsAnalyzer/index.js +357 -295
  159. package/dist/statsAnalyzer/index.js.map +1 -1
  160. package/dist/statsAnalyzer/mqaUtil.js +296 -156
  161. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  162. package/dist/types/annotation/annotation.types.d.ts +42 -0
  163. package/dist/types/annotation/constants.d.ts +31 -0
  164. package/dist/types/annotation/index.d.ts +117 -0
  165. package/dist/types/breakouts/events.d.ts +8 -0
  166. package/dist/types/breakouts/utils.d.ts +14 -0
  167. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  168. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  169. package/dist/types/common/errors/webex-errors.d.ts +25 -1
  170. package/dist/types/common/logs/request.d.ts +2 -0
  171. package/dist/types/common/queue.d.ts +9 -7
  172. package/dist/types/config.d.ts +2 -7
  173. package/dist/types/constants.d.ts +203 -31
  174. package/dist/types/controls-options-manager/enums.d.ts +11 -1
  175. package/dist/types/controls-options-manager/index.d.ts +17 -1
  176. package/dist/types/controls-options-manager/types.d.ts +43 -0
  177. package/dist/types/controls-options-manager/util.d.ts +1 -7
  178. package/dist/types/index.d.ts +6 -5
  179. package/dist/types/interceptors/index.d.ts +2 -0
  180. package/dist/types/interceptors/locusRetry.d.ts +27 -0
  181. package/dist/types/interpretation/collection.d.ts +5 -0
  182. package/dist/types/interpretation/index.d.ts +5 -0
  183. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  184. package/dist/types/locus-info/index.d.ts +57 -4
  185. package/dist/types/locus-info/parser.d.ts +66 -6
  186. package/dist/types/media/index.d.ts +2 -0
  187. package/dist/types/media/properties.d.ts +34 -49
  188. package/dist/types/mediaQualityMetrics/config.d.ts +99 -223
  189. package/dist/types/meeting/in-meeting-actions.d.ts +86 -2
  190. package/dist/types/meeting/index.d.ts +567 -496
  191. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  192. package/dist/types/meeting/muteState.d.ts +93 -25
  193. package/dist/types/meeting/request.d.ts +64 -43
  194. package/dist/types/meeting/util.d.ts +117 -1
  195. package/dist/types/meeting-info/index.d.ts +13 -1
  196. package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
  197. package/dist/types/meetings/collection.d.ts +17 -0
  198. package/dist/types/meetings/index.d.ts +113 -21
  199. package/dist/types/meetings/meetings.types.d.ts +4 -0
  200. package/dist/types/member/index.d.ts +14 -0
  201. package/dist/types/member/types.d.ts +32 -0
  202. package/dist/types/members/collection.d.ts +5 -0
  203. package/dist/types/members/index.d.ts +35 -2
  204. package/dist/types/members/request.d.ts +73 -9
  205. package/dist/types/members/types.d.ts +25 -0
  206. package/dist/types/members/util.d.ts +214 -1
  207. package/dist/types/metrics/constants.d.ts +17 -0
  208. package/dist/types/metrics/index.d.ts +4 -111
  209. package/dist/types/multistream/mediaRequestManager.d.ts +72 -3
  210. package/dist/types/multistream/receiveSlot.d.ts +7 -3
  211. package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
  212. package/dist/types/multistream/remoteMedia.d.ts +3 -31
  213. package/dist/types/multistream/remoteMediaGroup.d.ts +2 -9
  214. package/dist/types/multistream/remoteMediaManager.d.ts +62 -2
  215. package/dist/types/multistream/sendSlotManager.d.ts +70 -0
  216. package/dist/types/reachability/clusterReachability.d.ts +109 -0
  217. package/dist/types/reachability/index.d.ts +60 -95
  218. package/dist/types/reachability/request.d.ts +3 -1
  219. package/dist/types/reachability/util.d.ts +8 -0
  220. package/dist/types/reconnection-manager/index.d.ts +19 -0
  221. package/dist/types/recording-controller/index.d.ts +15 -1
  222. package/dist/types/recording-controller/util.d.ts +5 -4
  223. package/dist/types/roap/index.d.ts +2 -1
  224. package/dist/types/roap/request.d.ts +9 -8
  225. package/dist/types/roap/turnDiscovery.d.ts +39 -5
  226. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  227. package/dist/types/rtcMetrics/index.d.ts +61 -0
  228. package/dist/types/statsAnalyzer/index.d.ts +34 -12
  229. package/dist/types/statsAnalyzer/mqaUtil.d.ts +28 -4
  230. package/dist/types/webinar/collection.d.ts +16 -0
  231. package/dist/types/webinar/index.d.ts +5 -0
  232. package/dist/webinar/collection.js +44 -0
  233. package/dist/webinar/collection.js.map +1 -0
  234. package/dist/webinar/index.js +69 -0
  235. package/dist/webinar/index.js.map +1 -0
  236. package/package.json +22 -19
  237. package/src/annotation/annotation.types.ts +50 -0
  238. package/src/annotation/constants.ts +36 -0
  239. package/src/annotation/index.ts +328 -0
  240. package/src/breakouts/README.md +35 -11
  241. package/src/breakouts/breakout.ts +67 -9
  242. package/src/breakouts/events.ts +56 -0
  243. package/src/breakouts/index.ts +558 -59
  244. package/src/breakouts/utils.ts +42 -0
  245. package/src/common/errors/no-meeting-info.ts +24 -0
  246. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  247. package/src/common/errors/webex-errors.ts +44 -2
  248. package/src/common/logs/logger-proxy.ts +1 -1
  249. package/src/common/logs/request.ts +5 -1
  250. package/src/common/queue.ts +22 -8
  251. package/src/config.ts +4 -9
  252. package/src/constants.ts +229 -21
  253. package/src/controls-options-manager/enums.ts +12 -0
  254. package/src/controls-options-manager/index.ts +116 -21
  255. package/src/controls-options-manager/types.ts +59 -0
  256. package/src/controls-options-manager/util.ts +294 -14
  257. package/src/index.ts +44 -0
  258. package/src/interceptors/index.ts +3 -0
  259. package/src/interceptors/locusRetry.ts +67 -0
  260. package/src/interpretation/README.md +60 -0
  261. package/src/interpretation/collection.ts +19 -0
  262. package/src/interpretation/index.ts +349 -0
  263. package/src/interpretation/siLanguage.ts +18 -0
  264. package/src/locus-info/controlsUtils.ts +108 -0
  265. package/src/locus-info/index.ts +417 -59
  266. package/src/locus-info/infoUtils.ts +10 -2
  267. package/src/locus-info/mediaSharesUtils.ts +80 -0
  268. package/src/locus-info/parser.ts +258 -47
  269. package/src/locus-info/selfUtils.ts +81 -5
  270. package/src/media/index.ts +100 -108
  271. package/src/media/properties.ts +88 -117
  272. package/src/mediaQualityMetrics/config.ts +103 -238
  273. package/src/meeting/in-meeting-actions.ts +171 -3
  274. package/src/meeting/index.ts +3411 -2435
  275. package/src/meeting/locusMediaRequest.ts +313 -0
  276. package/src/meeting/muteState.ts +223 -136
  277. package/src/meeting/request.ts +155 -120
  278. package/src/meeting/util.ts +685 -395
  279. package/src/meeting-info/index.ts +81 -8
  280. package/src/meeting-info/meeting-info-v2.ts +170 -14
  281. package/src/meeting-info/util.ts +1 -1
  282. package/src/meeting-info/utilv2.ts +23 -23
  283. package/src/meetings/collection.ts +33 -0
  284. package/src/meetings/index.ts +507 -127
  285. package/src/meetings/meetings.types.ts +12 -0
  286. package/src/meetings/request.ts +2 -0
  287. package/src/meetings/util.ts +81 -12
  288. package/src/member/index.ts +58 -0
  289. package/src/member/types.ts +38 -0
  290. package/src/member/util.ts +141 -25
  291. package/src/members/collection.ts +8 -0
  292. package/src/members/index.ts +134 -8
  293. package/src/members/request.ts +97 -17
  294. package/src/members/types.ts +29 -0
  295. package/src/members/util.ts +333 -240
  296. package/src/metrics/constants.ts +17 -0
  297. package/src/metrics/index.ts +1 -469
  298. package/src/multistream/mediaRequestManager.ts +271 -56
  299. package/src/multistream/receiveSlot.ts +11 -4
  300. package/src/multistream/receiveSlotManager.ts +34 -24
  301. package/src/multistream/remoteMedia.ts +5 -3
  302. package/src/multistream/remoteMediaGroup.ts +78 -0
  303. package/src/multistream/remoteMediaManager.ts +248 -44
  304. package/src/multistream/sendSlotManager.ts +199 -0
  305. package/src/reachability/clusterReachability.ts +320 -0
  306. package/src/reachability/index.ts +229 -346
  307. package/src/reachability/request.ts +8 -4
  308. package/src/reachability/util.ts +24 -0
  309. package/src/reconnection-manager/index.ts +128 -97
  310. package/src/recording-controller/index.ts +20 -3
  311. package/src/recording-controller/util.ts +26 -9
  312. package/src/roap/index.ts +52 -23
  313. package/src/roap/request.ts +48 -67
  314. package/src/roap/turnDiscovery.ts +147 -49
  315. package/src/rtcMetrics/constants.ts +3 -0
  316. package/src/rtcMetrics/index.ts +166 -0
  317. package/src/statsAnalyzer/index.ts +457 -416
  318. package/src/statsAnalyzer/mqaUtil.ts +317 -170
  319. package/src/webinar/collection.ts +31 -0
  320. package/src/webinar/index.ts +62 -0
  321. package/test/integration/spec/converged-space-meetings.js +60 -3
  322. package/test/integration/spec/journey.js +320 -261
  323. package/test/integration/spec/space-meeting.js +76 -3
  324. package/test/unit/spec/annotation/index.ts +418 -0
  325. package/test/unit/spec/breakouts/breakout.ts +118 -28
  326. package/test/unit/spec/breakouts/events.ts +89 -0
  327. package/test/unit/spec/breakouts/index.ts +1349 -114
  328. package/test/unit/spec/breakouts/utils.js +52 -1
  329. package/test/unit/spec/common/queue.js +31 -2
  330. package/test/unit/spec/controls-options-manager/index.js +163 -0
  331. package/test/unit/spec/controls-options-manager/util.js +576 -60
  332. package/test/unit/spec/fixture/locus.js +1 -0
  333. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  334. package/test/unit/spec/interpretation/collection.ts +15 -0
  335. package/test/unit/spec/interpretation/index.ts +625 -0
  336. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  337. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  338. package/test/unit/spec/locus-info/index.js +1363 -37
  339. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  340. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  341. package/test/unit/spec/locus-info/mediaSharesUtils.ts +41 -0
  342. package/test/unit/spec/locus-info/parser.js +116 -35
  343. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  344. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  345. package/test/unit/spec/media/index.ts +173 -81
  346. package/test/unit/spec/media/properties.ts +2 -2
  347. package/test/unit/spec/meeting/in-meeting-actions.ts +85 -3
  348. package/test/unit/spec/meeting/index.js +6821 -2172
  349. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  350. package/test/unit/spec/meeting/muteState.js +402 -212
  351. package/test/unit/spec/meeting/request.js +473 -54
  352. package/test/unit/spec/meeting/utils.js +773 -67
  353. package/test/unit/spec/meeting-info/index.js +300 -0
  354. package/test/unit/spec/meeting-info/meetinginfov2.js +526 -5
  355. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  356. package/test/unit/spec/meetings/collection.js +26 -0
  357. package/test/unit/spec/meetings/index.js +1415 -213
  358. package/test/unit/spec/meetings/utils.js +229 -2
  359. package/test/unit/spec/member/index.js +61 -6
  360. package/test/unit/spec/member/util.js +510 -34
  361. package/test/unit/spec/members/index.js +432 -1
  362. package/test/unit/spec/members/request.js +206 -27
  363. package/test/unit/spec/members/utils.js +210 -0
  364. package/test/unit/spec/metrics/index.js +1 -50
  365. package/test/unit/spec/multistream/mediaRequestManager.ts +781 -114
  366. package/test/unit/spec/multistream/receiveSlot.ts +9 -1
  367. package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
  368. package/test/unit/spec/multistream/remoteMedia.ts +2 -0
  369. package/test/unit/spec/multistream/remoteMediaGroup.ts +345 -0
  370. package/test/unit/spec/multistream/remoteMediaManager.ts +525 -0
  371. package/test/unit/spec/multistream/sendSlotManager.ts +274 -0
  372. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  373. package/test/unit/spec/reachability/index.ts +551 -14
  374. package/test/unit/spec/reachability/request.js +3 -1
  375. package/test/unit/spec/reachability/util.ts +40 -0
  376. package/test/unit/spec/reconnection-manager/index.js +171 -11
  377. package/test/unit/spec/recording-controller/index.js +294 -218
  378. package/test/unit/spec/recording-controller/util.js +223 -96
  379. package/test/unit/spec/roap/index.ts +180 -83
  380. package/test/unit/spec/roap/request.ts +100 -62
  381. package/test/unit/spec/roap/turnDiscovery.ts +388 -96
  382. package/test/unit/spec/rtcMetrics/index.ts +122 -0
  383. package/test/unit/spec/stats-analyzer/index.js +1252 -12
  384. package/test/unit/spec/webinar/collection.ts +13 -0
  385. package/test/unit/spec/webinar/index.ts +60 -0
  386. package/test/utils/integrationTestUtils.js +46 -0
  387. package/test/utils/testUtils.js +0 -57
  388. package/test/utils/webex-test-users.js +12 -4
  389. package/dist/metrics/config.js +0 -289
  390. package/dist/metrics/config.js.map +0 -1
  391. package/dist/types/metrics/config.d.ts +0 -169
  392. package/src/index.js +0 -18
  393. package/src/metrics/config.ts +0 -485
@@ -1,47 +1,65 @@
1
+ import {ConnectionState, Event} from '@webex/internal-media-core';
2
+
1
3
  import {
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';
4
+ LocalCameraStream,
5
+ LocalMicrophoneStream,
6
+ LocalDisplayStream,
7
+ LocalSystemAudioStream,
8
+ RemoteStream,
9
+ } from '@webex/media-helpers';
10
+
11
+ import {MEETINGS, ICE_AND_DTLS_CONNECTION_TIMEOUT, QUALITY_LEVELS} from '../constants';
10
12
  import LoggerProxy from '../common/logs/logger-proxy';
11
13
 
14
+ export type MediaDirection = {
15
+ sendAudio: boolean;
16
+ sendVideo: boolean;
17
+ sendShare: boolean;
18
+ receiveAudio: boolean;
19
+ receiveVideo: boolean;
20
+ receiveShare: boolean;
21
+ };
22
+
12
23
  /**
13
24
  * @class MediaProperties
14
25
  */
15
26
  export default class MediaProperties {
16
- audioTrack: LocalMicrophoneTrack | null;
17
- localQualityLevel: any;
18
- mediaDirection: any;
27
+ audioStream?: LocalMicrophoneStream;
28
+ mediaDirection: MediaDirection;
19
29
  mediaSettings: any;
20
30
  webrtcMediaConnection: any;
21
- remoteAudioTrack: any;
31
+ remoteAudioStream: RemoteStream;
22
32
  remoteQualityLevel: any;
23
- remoteShare: any;
24
- remoteVideoTrack: any;
25
- shareTrack: LocalDisplayTrack | null;
33
+ remoteShareStream: RemoteStream;
34
+ remoteVideoStream: RemoteStream;
35
+ shareVideoStream?: LocalDisplayStream;
36
+ shareAudioStream?: LocalSystemAudioStream;
26
37
  videoDeviceId: any;
27
- videoTrack: LocalCameraTrack | null;
38
+ videoStream?: LocalCameraStream;
28
39
  namespace = MEETINGS;
29
40
 
30
41
  /**
31
42
  * @param {Object} [options] -- to auto construct
32
43
  * @returns {MediaProperties}
33
44
  */
34
- constructor(options: any = {}) {
45
+ constructor() {
35
46
  this.webrtcMediaConnection = null;
36
- this.mediaDirection = options.mediaDirection;
37
- this.videoTrack = options.videoTrack || null;
38
- this.audioTrack = options.audioTrack || null;
39
- this.shareTrack = options.shareTrack || null;
40
- this.remoteShare = options.remoteShare;
41
- this.remoteAudioTrack = options.remoteAudioTrack;
42
- this.remoteVideoTrack = options.remoteVideoTrack;
43
- this.localQualityLevel = options.localQualityLevel || QUALITY_LEVELS['720p'];
44
- this.remoteQualityLevel = options.remoteQualityLevel || QUALITY_LEVELS.HIGH;
47
+ this.mediaDirection = {
48
+ receiveAudio: false,
49
+ receiveVideo: false,
50
+ receiveShare: false,
51
+ sendAudio: false,
52
+ sendVideo: false,
53
+ sendShare: false,
54
+ };
55
+ this.videoStream = null;
56
+ this.audioStream = null;
57
+ this.shareVideoStream = null;
58
+ this.shareAudioStream = null;
59
+ this.remoteShareStream = undefined;
60
+ this.remoteAudioStream = undefined;
61
+ this.remoteVideoStream = undefined;
62
+ this.remoteQualityLevel = QUALITY_LEVELS.HIGH;
45
63
  this.mediaSettings = {};
46
64
  this.videoDeviceId = null;
47
65
  }
@@ -66,46 +84,46 @@ export default class MediaProperties {
66
84
  this.webrtcMediaConnection = mediaPeerConnection;
67
85
  }
68
86
 
69
- setLocalVideoTrack(videoTrack: LocalCameraTrack | null) {
70
- this.videoTrack = videoTrack;
87
+ setLocalVideoStream(videoStream?: LocalCameraStream) {
88
+ this.videoStream = videoStream;
71
89
  }
72
90
 
73
- setLocalAudioTrack(audioTrack: LocalMicrophoneTrack | null) {
74
- this.audioTrack = audioTrack;
91
+ setLocalAudioStream(audioStream?: LocalMicrophoneStream) {
92
+ this.audioStream = audioStream;
75
93
  }
76
94
 
77
- setLocalQualityLevel(localQualityLevel) {
78
- this.localQualityLevel = localQualityLevel;
95
+ setLocalShareVideoStream(shareVideoStream?: LocalDisplayStream) {
96
+ this.shareVideoStream = shareVideoStream;
79
97
  }
80
98
 
81
- setLocalShareTrack(shareTrack: LocalDisplayTrack | null) {
82
- this.shareTrack = shareTrack;
99
+ setLocalShareAudioStream(shareAudioStream?: LocalSystemAudioStream) {
100
+ this.shareAudioStream = shareAudioStream;
83
101
  }
84
102
 
85
103
  setRemoteQualityLevel(remoteQualityLevel) {
86
104
  this.remoteQualityLevel = remoteQualityLevel;
87
105
  }
88
106
 
89
- setRemoteShare(remoteShare) {
90
- this.remoteShare = remoteShare;
107
+ setRemoteShareStream(remoteShareStream: RemoteStream) {
108
+ this.remoteShareStream = remoteShareStream;
91
109
  }
92
110
 
93
111
  /**
94
- * Sets the remote audio track
95
- * @param {MediaTrack} remoteAudioTrack MediaTrack to save
112
+ * Sets the remote audio stream
113
+ * @param {RemoteStream} remoteAudioStream RemoteStream to save
96
114
  * @returns {void}
97
115
  */
98
- setRemoteAudioTrack(remoteAudioTrack: any) {
99
- this.remoteAudioTrack = remoteAudioTrack;
116
+ setRemoteAudioStream(remoteAudioStream: RemoteStream) {
117
+ this.remoteAudioStream = remoteAudioStream;
100
118
  }
101
119
 
102
120
  /**
103
- * Sets the remote video track
104
- * @param {MediaTrack} remoteVideoTrack MediaTrack to save
121
+ * Sets the remote video stream
122
+ * @param {RemoteStream} remoteVideoStream RemoteStream to save
105
123
  * @returns {void}
106
124
  */
107
- setRemoteVideoTrack(remoteVideoTrack: any) {
108
- this.remoteVideoTrack = remoteVideoTrack;
125
+ setRemoteVideoStream(remoteVideoStream: RemoteStream) {
126
+ this.remoteVideoStream = remoteVideoStream;
109
127
  }
110
128
 
111
129
  /**
@@ -121,96 +139,34 @@ export default class MediaProperties {
121
139
  this.webrtcMediaConnection = null;
122
140
  }
123
141
 
124
- unsetLocalVideoTrack() {
125
- this.videoTrack = null;
126
- }
127
-
128
- unsetLocalShareTrack() {
129
- this.shareTrack = null;
130
- }
131
-
132
- unsetLocalAudioTrack() {
133
- this.audioTrack = null;
134
- }
135
-
136
- /**
137
- * Removes remote stream from class instance
138
- * @deprecated after v1.89.3
139
- * @returns {void}
140
- */
141
- unsetRemoteStream() {
142
- LoggerProxy.logger.warn(
143
- 'Media:properties#unsetRemoteStream --> [DEPRECATION WARNING]: unsetRemoteStream has been deprecated after v1.89.3 (use unsetRemoteTracks instead)'
144
- );
145
- // unsets audio and video only
146
- this.unsetRemoteMedia();
147
- }
148
-
149
142
  /**
150
143
  * Removes both remote audio and video from class instance
151
144
  * @returns {void}
152
145
  */
153
146
  unsetRemoteMedia() {
154
- this.remoteAudioTrack = null;
155
- this.remoteVideoTrack = null;
147
+ this.remoteAudioStream = null;
148
+ this.remoteVideoStream = null;
156
149
  }
157
150
 
158
- unsetRemoteShare() {
159
- this.remoteShare = null;
160
- }
161
-
162
- unsetLocalVideoTracks() {
163
- this.unsetLocalVideoTrack();
164
- this.unsetLocalShareTrack();
151
+ unsetRemoteShareStream() {
152
+ this.remoteShareStream = null;
165
153
  }
166
154
 
167
155
  /**
168
- * Removes remote stream and remote share from class instance
169
- * @deprecated after v1.89.3
156
+ * Unsets all remote streams
170
157
  * @returns {void}
171
158
  */
172
159
  unsetRemoteStreams() {
173
- LoggerProxy.logger.warn(
174
- 'Media:properties#unsetRemoteStreams --> [DEPRECATION WARNING]: unsetRemoteStreams has been deprecated after v1.89.3 (use unsetRemoteTracks instead)'
175
- );
176
- this.unsetRemoteStream();
177
- this.unsetRemoteShare();
178
- }
179
-
180
- /**
181
- * Unsets all remote tracks
182
- * @returns {void}
183
- */
184
- unsetRemoteTracks() {
185
160
  this.unsetRemoteMedia();
186
- this.unsetRemoteShare();
187
- }
188
-
189
- unsetShareStreams() {
190
- this.unsetLocalShareTrack();
191
- this.unsetRemoteShare();
192
- }
193
-
194
- /**
195
- * Removes both local and remote video stream from class instance
196
- * @deprecated after v1.89.3
197
- * @returns {void}
198
- */
199
- unsetMediaStreams() {
200
- LoggerProxy.logger.warn(
201
- 'Media:properties#unsetMediaStreams --> [DEPRECATION WARNING]: unsetMediaStreams has been deprecated after v1.89.3 (use unsetMediaTracks instead)'
202
- );
203
- this.unsetLocalVideoTrack();
204
- this.unsetRemoteStream();
161
+ this.unsetRemoteShareStream();
205
162
  }
206
163
 
207
164
  /**
208
- * Removes both local and remote video stream from class instance
209
- * @returns {void}
165
+ * Returns if we have at least one local share stream or not.
166
+ * @returns {Boolean}
210
167
  */
211
- unsetMediaTracks() {
212
- this.unsetLocalVideoTrack();
213
- this.unsetRemoteMedia();
168
+ hasLocalShareStream() {
169
+ return !!(this.shareAudioStream || this.shareVideoStream);
214
170
  }
215
171
 
216
172
  /**
@@ -244,7 +200,7 @@ export default class MediaProperties {
244
200
  timer = setTimeout(() => {
245
201
  this.webrtcMediaConnection.off(Event.CONNECTION_STATE_CHANGED, connectionStateListener);
246
202
  reject();
247
- }, PC_BAIL_TIMEOUT);
203
+ }, ICE_AND_DTLS_CONNECTION_TIMEOUT);
248
204
 
249
205
  this.webrtcMediaConnection.on(Event.CONNECTION_STATE_CHANGED, connectionStateListener);
250
206
  });
@@ -303,10 +259,25 @@ export default class MediaProperties {
303
259
 
304
260
  return true;
305
261
  }
262
+ LoggerProxy.logger.warn(
263
+ `Media:properties#getCurrentConnectionType --> missing localCandidate.protocol, candidateType=${localCandidate.candidateType}`
264
+ );
306
265
 
307
266
  return false;
308
267
  });
309
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
+
310
281
  return foundConnectionType;
311
282
  }
312
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
  };