@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 +1 @@
1
- {"version":3,"names":["getAudioReceiverMqa","audioReceiver","statsResults","lastMqaDataSent","mediaType","sendrecvType","STATS","RECEIVE_DIRECTION","lastPacketsReceived","totalPacketsReceived","lastPacketsLost","totalPacketsLost","lastPacketsDecoded","totalSamplesDecoded","lastSamplesReceived","totalSamplesReceived","lastConcealedSamples","concealedSamples","lastBytesReceived","totalBytesReceived","lastFecPacketsReceived","fecPacketsReceived","lastFecPacketsDiscarded","fecPacketsDiscarded","csi","streams","common","includes","push","direction","transportType","connectionType","remote","transport","rtpPackets","mediaHopByHopLost","rtpHopByHopLost","maxRtpJitter","meanRtpJitter","rtpJitter","fecRecovered","rtpEndToEndLost","framesDropped","renderedFrameRate","framesReceived","concealedFrames","receivedBitrate","rtpBitrate","getAudioSenderMqa","audioSender","SEND_DIRECTION","lastPacketsSent","totalPacketsSent","totalPacketsLostOnReceiver","lastBytesSent","totalBytesSent","lastFramesEncoded","totalKeyFramesEncoded","lastFirCount","totalFirCount","local","maxRemoteJitter","meanRemoteJitter","availableBitrate","availableOutgoingBitrate","totalpacketsLostForaMin","remoteLossRate","maxRoundTripTime","meanRoundTripTime","roundTripTime","totalBytesSentInaMin","transmittedBitrate","transmittedKeyFrames","requestedKeyFrames","getVideoReceiverMqa","videoReceiver","lastFramesReceived","lastFramesDecoded","framesDecoded","lastFramesDropped","lastKeyFramesDecoded","keyFramesDecoded","lastPliCount","totalPliCount","totalPacketLoss","totalBytesReceivedInaMin","totalFrameReceivedInaMin","resolutions","totalFrameDecodedInaMin","receivedFrameRate","receivedHeight","height","receivedWidth","width","receivedFrameSize","receivedKeyFrames","getVideoSenderMqa","videoSender","lastKeyFramesEncoded","lastFramesSent","framesSent","totalFrameSentInaMin","transmittedFrameRate","transmittedHeight","transmittedWidth","transmittedFrameSize"],"sources":["mqaUtil.ts"],"sourcesContent":["/* eslint-disable no-param-reassign, prefer-destructuring */\n\nimport {mean, max} from 'lodash';\n\nimport {STATS} from '../constants';\n\nexport const getAudioReceiverMqa = ({audioReceiver, statsResults, lastMqaDataSent, mediaType}) => {\n const sendrecvType = STATS.RECEIVE_DIRECTION;\n\n const lastPacketsReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsReceived || 0;\n const lastPacketsLost = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsLost || 0;\n const lastPacketsDecoded = lastMqaDataSent[mediaType]?.[sendrecvType].totalSamplesDecoded || 0;\n const lastSamplesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalSamplesReceived || 0;\n const lastConcealedSamples = lastMqaDataSent[mediaType]?.[sendrecvType].concealedSamples || 0;\n const lastBytesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesReceived || 0;\n const lastFecPacketsReceived = lastMqaDataSent[mediaType]?.[sendrecvType].fecPacketsReceived || 0;\n const lastFecPacketsDiscarded =\n lastMqaDataSent[mediaType]?.[sendrecvType].fecPacketsDiscarded || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !audioReceiver.streams[0].common.csi.includes(csi)) {\n audioReceiver.streams[0].common.csi.push(csi);\n }\n\n audioReceiver.common.common.direction = statsResults[mediaType].direction;\n audioReceiver.common.transportType = statsResults.connectionType.remote.transport[0];\n\n // add rtpPacket info inside common as also for call analyzer\n audioReceiver.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;\n // Hop by hop are numbers and not percentage so we compare on what we sent the last min\n // collect the packets received for the last min\n audioReceiver.streams[0].common.rtpPackets = audioReceiver.common.rtpPackets;\n audioReceiver.common.mediaHopByHopLost =\n statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;\n audioReceiver.common.rtpHopByHopLost =\n statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;\n\n audioReceiver.streams[0].common.maxRtpJitter =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;\n audioReceiver.streams[0].common.meanRtpJitter =\n mean(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;\n audioReceiver.streams[0].common.rtpJitter = audioReceiver.streams[0].common.maxRtpJitter;\n\n // Fec packets do come in as part of the FEC only for audio\n const fecRecovered =\n statsResults[mediaType][sendrecvType].fecPacketsReceived -\n lastFecPacketsReceived -\n (statsResults[mediaType][sendrecvType].fecPacketsDiscarded - lastFecPacketsDiscarded);\n\n audioReceiver.streams[0].common.rtpEndToEndLost =\n statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost - fecRecovered || 0;\n\n audioReceiver.streams[0].common.framesDropped =\n statsResults[mediaType][sendrecvType].totalSamplesDecoded - lastPacketsDecoded || 0;\n audioReceiver.streams[0].common.renderedFrameRate =\n (audioReceiver.streams[0].common.framesDropped * 100) / 60 || 0;\n\n audioReceiver.streams[0].common.framesReceived =\n statsResults[mediaType][sendrecvType].totalSamplesReceived - lastSamplesReceived || 0;\n audioReceiver.streams[0].common.concealedFrames =\n statsResults[mediaType][sendrecvType].concealedSamples - lastConcealedSamples || 0;\n audioReceiver.streams[0].common.receivedBitrate =\n ((statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived) * 8) / 60 || 0;\n\n audioReceiver.common.rtpBitrate = audioReceiver.streams[0].common.receivedBitrate;\n};\n\nexport const getAudioSenderMqa = ({audioSender, statsResults, lastMqaDataSent, mediaType}) => {\n const sendrecvType = STATS.SEND_DIRECTION;\n\n const lastPacketsSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsSent || 0;\n const lastPacketsLost =\n lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsLostOnReceiver || 0;\n const lastBytesSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesSent || 0;\n const lastFramesEncoded = lastMqaDataSent[mediaType]?.[sendrecvType].totalKeyFramesEncoded || 0;\n const lastFirCount = lastMqaDataSent[mediaType]?.[sendrecvType].totalFirCount || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !audioSender.streams[0].common.csi.includes(csi)) {\n audioSender.streams[0].common.csi.push(csi);\n }\n\n audioSender.common.common.direction = statsResults[mediaType].direction;\n audioSender.common.transportType = statsResults.connectionType.local.transport[0];\n\n audioSender.common.maxRemoteJitter =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n audioSender.common.meanRemoteJitter =\n mean(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n\n audioSender.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;\n audioSender.streams[0].common.rtpPackets = audioSender.common.rtpPackets;\n // From candidate-pair\n audioSender.common.availableBitrate =\n statsResults[mediaType][sendrecvType].availableOutgoingBitrate || 0;\n // Calculate based on how much packets lost of received compated to how to the client sent\n\n const totalpacketsLostForaMin =\n statsResults[mediaType][sendrecvType].totalPacketsLostOnReceiver - lastPacketsLost;\n\n audioSender.common.remoteLossRate =\n totalpacketsLostForaMin > 0\n ? (totalpacketsLostForaMin * 100) / audioSender.common.rtpPackets\n : 0; // This is the packets sent with in last min || 0;\n\n audioSender.common.maxRoundTripTime =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;\n audioSender.common.meanRoundTripTime =\n mean(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;\n audioSender.common.roundTripTime = audioSender.common.maxRoundTripTime;\n\n // Calculate the outgoing bitrate\n const totalBytesSentInaMin = statsResults[mediaType][sendrecvType].totalBytesSent - lastBytesSent;\n\n audioSender.streams[0].common.transmittedBitrate = totalBytesSentInaMin\n ? (totalBytesSentInaMin * 8) / 60\n : 0;\n audioSender.common.rtpBitrate = audioSender.streams[0].common.transmittedBitrate;\n\n audioSender.streams[0].transmittedKeyFrames =\n statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastFramesEncoded || 0;\n audioSender.streams[0].requestedKeyFrames =\n statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;\n};\n\nexport const getVideoReceiverMqa = ({videoReceiver, statsResults, lastMqaDataSent, mediaType}) => {\n const sendrecvType = STATS.RECEIVE_DIRECTION;\n\n const lastPacketsReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsReceived || 0;\n const lastPacketsLost = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsLost || 0;\n const lastBytesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesReceived || 0;\n const lastFramesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].framesReceived || 0;\n const lastFramesDecoded = lastMqaDataSent[mediaType]?.[sendrecvType].framesDecoded || 0;\n const lastFramesDropped = lastMqaDataSent[mediaType]?.[sendrecvType].framesDropped || 0;\n const lastKeyFramesDecoded = lastMqaDataSent[mediaType]?.[sendrecvType].keyFramesDecoded || 0;\n const lastPliCount = lastMqaDataSent[mediaType]?.[sendrecvType].totalPliCount || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !videoReceiver.streams[0].common.csi.includes(csi)) {\n videoReceiver.streams[0].common.csi.push(csi);\n }\n\n videoReceiver.common.common.direction = statsResults[mediaType].direction;\n videoReceiver.common.transportType = statsResults.connectionType.remote.transport[0];\n // collect the packets received for the last min\n videoReceiver.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;\n videoReceiver.streams[0].common.rtpPackets = videoReceiver.common.rtpPackets;\n\n const totalPacketLoss =\n statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;\n\n // Hope by hop are numbers and not percentage so we compare on what we sent the last min\n // this is including packet lost\n videoReceiver.common.mediaHopByHopLost = totalPacketLoss;\n videoReceiver.common.rtpHopByHopLost = totalPacketLoss;\n\n // End to end packetloss is after recovery\n videoReceiver.streams[0].common.rtpEndToEndLost = totalPacketLoss;\n\n // calculate this values\n\n videoReceiver.common.maxRemoteJitter =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n videoReceiver.common.meanRemoteJitter =\n mean(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n\n videoReceiver.streams[0].common.rtpJitter = videoReceiver.common.maxRemoteJitter;\n // videoReceiver.streams[0].common.rtpJitter = (statsResults.resolutions[mediaType][sendrecvType].jitterBufferDelay - lastMqaDataSent.resolutions[mediaType]?.[sendrecvType].jitterBufferDelay) / (statsResults.resolutions[mediaType][sendrecvType].jitterBufferEmittedCount - lastMqaDataSent.resolutions[mediaType]?.[sendrecvType].jitterBufferEmittedCount) * 1000 || 0;\n\n // Calculate the outgoing bitrate\n const totalBytesReceivedInaMin =\n statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived;\n\n videoReceiver.streams[0].common.receivedBitrate = totalBytesReceivedInaMin\n ? (totalBytesReceivedInaMin * 8) / 60\n : 0;\n videoReceiver.common.rtpBitrate = videoReceiver.streams[0].common.receivedBitrate;\n\n // From tracks //TODO: calculate a proper one\n const totalFrameReceivedInaMin =\n statsResults.resolutions[mediaType][sendrecvType].framesReceived - lastFramesReceived;\n const totalFrameDecodedInaMin =\n statsResults.resolutions[mediaType][sendrecvType].framesDecoded - lastFramesDecoded;\n\n videoReceiver.streams[0].common.receivedFrameRate = totalFrameReceivedInaMin\n ? (totalFrameReceivedInaMin * 100) / 60\n : 0;\n videoReceiver.streams[0].common.renderedFrameRate = totalFrameDecodedInaMin\n ? (totalFrameDecodedInaMin * 100) / 60\n : 0;\n\n videoReceiver.streams[0].common.framesDropped =\n statsResults.resolutions[mediaType][sendrecvType].framesDropped - lastFramesDropped;\n videoReceiver.streams[0].receivedHeight =\n statsResults.resolutions[mediaType][sendrecvType].height;\n videoReceiver.streams[0].receivedWidth = statsResults.resolutions[mediaType][sendrecvType].width;\n videoReceiver.streams[0].receivedFrameSize =\n (statsResults.resolutions[mediaType][sendrecvType].height *\n statsResults.resolutions[mediaType][sendrecvType].height) /\n 256;\n\n videoReceiver.streams[0].receivedKeyFrames =\n statsResults[mediaType][sendrecvType].keyFramesDecoded - lastKeyFramesDecoded || 0;\n videoReceiver.streams[0].requestedKeyFrames =\n statsResults[mediaType][sendrecvType].totalPliCount - lastPliCount || 0;\n};\n\nexport const getVideoSenderMqa = ({videoSender, statsResults, lastMqaDataSent, mediaType}) => {\n const sendrecvType = STATS.SEND_DIRECTION;\n\n const lastPacketsSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsSent || 0;\n const lastPacketsLost =\n lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsLostOnReceiver || 0;\n const lastBytesSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesSent || 0;\n const lastKeyFramesEncoded =\n lastMqaDataSent[mediaType]?.[sendrecvType].totalKeyFramesEncoded || 0;\n const lastFirCount = lastMqaDataSent[mediaType]?.[sendrecvType].totalFirCount || 0;\n const lastFramesSent = lastMqaDataSent[mediaType]?.[sendrecvType].framesSent || 0;\n const {csi} = statsResults[mediaType];\n if (csi && !videoSender.streams[0].common.csi.includes(csi)) {\n videoSender.streams[0].common.csi.push(csi);\n }\n\n videoSender.common.common.direction = statsResults[mediaType].direction;\n videoSender.common.transportType = statsResults.connectionType.local.transport[0];\n\n // @ts-ignore\n videoSender.common.maxRemoteJitter =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n videoSender.common.meanRemoteJitter =\n mean(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n\n videoSender.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;\n videoSender.common.availableBitrate =\n statsResults[mediaType][sendrecvType].availableOutgoingBitrate || 0;\n // Calculate based on how much packets lost of received compated to how to the client sent\n\n const totalpacketsLostForaMin =\n statsResults[mediaType][sendrecvType].totalPacketsLostOnReceiver - lastPacketsLost;\n\n videoSender.common.remoteLossRate =\n totalpacketsLostForaMin > 0\n ? (totalpacketsLostForaMin * 100) / (videoSender.common.rtpPackets + totalpacketsLostForaMin)\n : 0; // This is the packets sent with in last min || 0;\n\n videoSender.common.maxRoundTripTime =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;\n videoSender.common.meanRoundTripTime =\n mean(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;\n videoSender.common.roundTripTime = videoSender.common.maxRoundTripTime;\n\n videoSender.streams[0].common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;\n\n // Calculate the outgoing bitrate\n const totalBytesSentInaMin = statsResults[mediaType][sendrecvType].totalBytesSent - lastBytesSent;\n\n videoSender.streams[0].common.transmittedBitrate = totalBytesSentInaMin\n ? (totalBytesSentInaMin * 8) / 60\n : 0;\n\n videoSender.common.rtpBitrate = videoSender.streams[0].common.transmittedBitrate;\n\n videoSender.streams[0].transmittedKeyFrames =\n statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastKeyFramesEncoded || 0;\n videoSender.streams[0].requestedKeyFrames =\n statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;\n\n // From tracks //TODO: calculate a proper one\n const totalFrameSentInaMin =\n statsResults.resolutions[mediaType][sendrecvType].framesSent - (lastFramesSent || 0);\n\n videoSender.streams[0].common.transmittedFrameRate = totalFrameSentInaMin\n ? (totalFrameSentInaMin * 100) / 60\n : 0;\n videoSender.streams[0].transmittedHeight =\n statsResults.resolutions[mediaType][sendrecvType].height;\n videoSender.streams[0].transmittedWidth = statsResults.resolutions[mediaType][sendrecvType].width;\n videoSender.streams[0].transmittedFrameSize =\n (statsResults.resolutions[mediaType][sendrecvType].height *\n statsResults.resolutions[mediaType][sendrecvType].width) /\n 254;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["getTotalValueFromBaseType","stats","sendrecvType","baseMediaType","value","filter","mt","includes","reduce","acc","getAudioReceiverMqa","audioReceiver","statsResults","lastMqaDataSent","STATS","RECEIVE_DIRECTION","getLastTotalValue","getTotalValue","lastPacketsReceived","lastPacketsLost","lastBytesReceived","lastFecPacketsReceived","lastFecPacketsDiscarded","totalPacketsReceived","packetsLost","totalBytesReceived","totalFecPacketsReceived","totalFecPacketsDiscarded","common","direction","find","mediaType","isMain","transportType","connectionType","local","transport","rtpPackets","totalPacketsLost","mediaHopByHopLost","rtpHopByHopLost","fecRecovered","fecPackets","rtpBitrate","getAudioReceiverStreamMqa","audioReceiverStream","lastPacketsDecoded","totalSamplesDecoded","lastSamplesReceived","totalSamplesReceived","lastConcealedSamples","concealedSamples","fecPacketsReceived","fecPacketsDiscarded","csi","push","maxRtpJitter","meanRtpJitter","rtpJitter","rtpEndToEndLost","framesDropped","renderedFrameRate","framesReceived","concealedFrames","receivedBitrate","getAudioSenderMqa","audioSender","SEND_DIRECTION","lastPacketsSent","lastPacketsLostTotal","totalPacketsLostOnReceiver","totalPacketsSent","meanRemoteJitter","concat","meanRoundTripTime","maxRemoteJitter","availableBitrate","totalPacketsLostForaMin","remoteLossRate","maxRoundTripTime","roundTripTime","totalBytesSentInaMin","getAudioSenderStreamMqa","audioSenderStream","lastBytesSent","totalBytesSent","lastFramesEncoded","totalKeyFramesEncoded","lastFirCount","totalFirCount","transmittedBitrate","transmittedKeyFrames","requestedKeyFrames","getVideoReceiverMqa","videoReceiver","totalBytesReceivedInaMin","getVideoReceiverStreamMqa","videoReceiverStream","lastFramesReceived","lastFramesDecoded","framesDecoded","lastFramesDropped","lastKeyFramesDecoded","keyFramesDecoded","lastPliCount","totalPliCount","totalPacketLoss","totalFrameReceivedInaMin","totalFrameDecodedInaMin","receivedFrameRate","Math","round","receivedHeight","height","receivedWidth","width","receivedFrameSize","receivedKeyFrames","getVideoSenderMqa","videoSender","availableOutgoingBitrate","getVideoSenderStreamMqa","videoSenderStream","lastKeyFramesEncoded","lastFramesSent","framesSent","totalFrameSentInaMin","transmittedFrameRate","transmittedHeight","transmittedWidth","transmittedFrameSize"],"sources":["mqaUtil.ts"],"sourcesContent":["/* eslint-disable no-param-reassign, prefer-destructuring */\n\nimport {mean, max} from 'lodash';\n\nimport {STATS} from '../constants';\n\n/**\n * Get the totals of a certain value from a certain media type.\n *\n * @param {object} stats - The large stats object.\n * @param {string} sendrecvType - \"send\" or \"recv\".\n * @param {string} baseMediaType - audio or video _and_ share or non-share.\n * @param {string} value - The value we want to get the totals of.\n * @returns {number}\n */\nconst getTotalValueFromBaseType = (\n stats: object,\n sendrecvType: string,\n baseMediaType: string,\n value: string\n): number =>\n Object.keys(stats)\n .filter((mt) => mt.includes(baseMediaType))\n .reduce((acc, mt) => acc + (stats[mt]?.[sendrecvType]?.[value] || 0), 0);\n\nexport const getAudioReceiverMqa = ({\n audioReceiver,\n statsResults,\n lastMqaDataSent,\n baseMediaType,\n}) => {\n const sendrecvType = STATS.RECEIVE_DIRECTION;\n\n const getLastTotalValue = (value: string) =>\n getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);\n const getTotalValue = (value: string) =>\n getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);\n\n const lastPacketsReceived = getLastTotalValue('totalPacketsReceived');\n const lastPacketsLost = getLastTotalValue('totalPacketsLost');\n const lastBytesReceived = getLastTotalValue('totalBytesReceived');\n const lastFecPacketsReceived = getLastTotalValue('fecPacketsReceived');\n const lastFecPacketsDiscarded = getLastTotalValue('fecPacketsDiscarded');\n\n const totalPacketsReceived = getTotalValue('totalPacketsReceived');\n const packetsLost = getTotalValue('totalPacketsLost');\n const totalBytesReceived = getTotalValue('totalBytesReceived');\n const totalFecPacketsReceived = getTotalValue('fecPacketsReceived');\n const totalFecPacketsDiscarded = getTotalValue('fecPacketsDiscarded');\n\n audioReceiver.common.common.direction =\n statsResults[Object.keys(statsResults).find((mediaType) => mediaType.includes(baseMediaType))]\n ?.direction || 'inactive';\n audioReceiver.common.common.isMain = !baseMediaType.includes('-share');\n audioReceiver.common.transportType = statsResults.connectionType.local.transport;\n\n // add rtpPacket info inside common as also for call analyzer\n audioReceiver.common.rtpPackets = totalPacketsReceived - lastPacketsReceived;\n\n // Hop by hop are numbers and not percentage so we compare on what we sent the last min\n // collect the packets received for the last min\n const totalPacketsLost = packetsLost - lastPacketsLost;\n audioReceiver.common.mediaHopByHopLost = totalPacketsLost;\n audioReceiver.common.rtpHopByHopLost = totalPacketsLost;\n\n const fecRecovered =\n totalFecPacketsReceived -\n lastFecPacketsReceived -\n (totalFecPacketsDiscarded - lastFecPacketsDiscarded);\n audioReceiver.common.fecPackets = fecRecovered;\n\n audioReceiver.common.rtpBitrate = ((totalBytesReceived - lastBytesReceived) * 8) / 60 || 0;\n};\n\nexport const getAudioReceiverStreamMqa = ({\n audioReceiverStream,\n statsResults,\n lastMqaDataSent,\n mediaType,\n}) => {\n const sendrecvType = STATS.RECEIVE_DIRECTION;\n\n const lastPacketsDecoded = lastMqaDataSent[mediaType]?.[sendrecvType].totalSamplesDecoded || 0;\n const lastSamplesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalSamplesReceived || 0;\n const lastConcealedSamples = lastMqaDataSent[mediaType]?.[sendrecvType].concealedSamples || 0;\n const lastBytesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesReceived || 0;\n const lastFecPacketsReceived = lastMqaDataSent[mediaType]?.[sendrecvType].fecPacketsReceived || 0;\n const lastFecPacketsDiscarded =\n lastMqaDataSent[mediaType]?.[sendrecvType].fecPacketsDiscarded || 0;\n const lastPacketsReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsReceived || 0;\n const lastPacketsLost = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsLost || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !audioReceiverStream.common.csi.includes(csi)) {\n audioReceiverStream.common.csi.push(csi);\n }\n\n audioReceiverStream.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;\n\n audioReceiverStream.common.maxRtpJitter =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;\n audioReceiverStream.common.meanRtpJitter =\n mean(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;\n audioReceiverStream.common.rtpJitter = audioReceiverStream.common.maxRtpJitter;\n\n // Fec packets do come in as part of the FEC only for audio\n const fecRecovered =\n statsResults[mediaType][sendrecvType].fecPacketsReceived -\n lastFecPacketsReceived -\n (statsResults[mediaType][sendrecvType].fecPacketsDiscarded - lastFecPacketsDiscarded);\n\n audioReceiverStream.common.rtpEndToEndLost =\n statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost - fecRecovered || 0;\n\n audioReceiverStream.common.framesDropped =\n statsResults[mediaType][sendrecvType].totalSamplesDecoded - lastPacketsDecoded || 0;\n audioReceiverStream.common.renderedFrameRate =\n (audioReceiverStream.common.framesDropped * 100) / 60 || 0;\n\n audioReceiverStream.common.framesReceived =\n statsResults[mediaType][sendrecvType].totalSamplesReceived - lastSamplesReceived || 0;\n audioReceiverStream.common.concealedFrames =\n statsResults[mediaType][sendrecvType].concealedSamples - lastConcealedSamples || 0;\n audioReceiverStream.common.receivedBitrate =\n ((statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived) * 8) / 60 || 0;\n};\n\nexport const getAudioSenderMqa = ({audioSender, statsResults, lastMqaDataSent, baseMediaType}) => {\n const sendrecvType = STATS.SEND_DIRECTION;\n\n const getLastTotalValue = (value: string) =>\n getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);\n const getTotalValue = (value: string) =>\n getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);\n\n const lastPacketsSent = getLastTotalValue('totalPacketsSent');\n const lastPacketsLostTotal = getLastTotalValue('totalPacketsLostOnReceiver');\n\n const totalPacketsLostOnReceiver = getTotalValue('totalPacketsLostOnReceiver');\n const totalPacketsSent = getTotalValue('totalPacketsSent');\n\n const meanRemoteJitter = Object.keys(statsResults)\n .filter((mt) => mt.includes(baseMediaType))\n .reduce((acc, mt) => acc.concat(statsResults[mt][sendrecvType].meanRemoteJitter), []);\n const meanRoundTripTime = Object.keys(statsResults)\n .filter((mt) => mt.includes(baseMediaType))\n .reduce((acc, mt) => acc.concat(statsResults[mt][sendrecvType].meanRoundTripTime), []);\n\n audioSender.common.common.direction =\n statsResults[Object.keys(statsResults).find((mediaType) => mediaType.includes(baseMediaType))]\n ?.direction || 'inactive';\n audioSender.common.common.isMain = !baseMediaType.includes('-share');\n audioSender.common.transportType = statsResults.connectionType.local.transport;\n\n audioSender.common.maxRemoteJitter = max(meanRemoteJitter) * 1000 || 0;\n audioSender.common.meanRemoteJitter = mean(meanRemoteJitter) * 1000 || 0;\n\n audioSender.common.rtpPackets = totalPacketsSent - lastPacketsSent || 0;\n // audioSender.streams[0].common.rtpPackets = audioSender.common.rtpPackets;\n // From candidate-pair\n audioSender.common.availableBitrate = getTotalValueFromBaseType(\n statsResults,\n sendrecvType,\n baseMediaType,\n 'availableOutgoingBitrate'\n );\n // Calculate based on how much packets lost of received compated to how to the client sent\n\n const totalPacketsLostForaMin = totalPacketsLostOnReceiver - lastPacketsLostTotal;\n audioSender.common.remoteLossRate =\n totalPacketsSent - lastPacketsSent > 0\n ? (totalPacketsLostForaMin * 100) / (totalPacketsSent - lastPacketsSent)\n : 0; // This is the packets sent with in last min\n\n audioSender.common.maxRoundTripTime = max(meanRoundTripTime) * 1000 || 0;\n audioSender.common.meanRoundTripTime = mean(meanRoundTripTime) * 1000 || 0;\n audioSender.common.roundTripTime = audioSender.common.maxRoundTripTime;\n\n // Calculate the outgoing bitrate\n const totalBytesSentInaMin =\n getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, 'totalBytesSent') -\n getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, 'totalBytesSent');\n\n audioSender.common.rtpBitrate = totalBytesSentInaMin ? (totalBytesSentInaMin * 8) / 60 : 0;\n};\n\nexport const getAudioSenderStreamMqa = ({\n audioSenderStream,\n statsResults,\n lastMqaDataSent,\n mediaType,\n}) => {\n const sendrecvType = STATS.SEND_DIRECTION;\n\n const lastBytesSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesSent || 0;\n const lastFramesEncoded = lastMqaDataSent[mediaType]?.[sendrecvType].totalKeyFramesEncoded || 0;\n const lastFirCount = lastMqaDataSent[mediaType]?.[sendrecvType].totalFirCount || 0;\n const lastPacketsSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsSent || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !audioSenderStream.common.csi.includes(csi)) {\n audioSenderStream.common.csi.push(csi);\n }\n\n audioSenderStream.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;\n\n const totalBytesSentInaMin = statsResults[mediaType][sendrecvType].totalBytesSent - lastBytesSent;\n audioSenderStream.common.transmittedBitrate = totalBytesSentInaMin\n ? (totalBytesSentInaMin * 8) / 60\n : 0;\n\n audioSenderStream.transmittedKeyFrames =\n statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastFramesEncoded || 0;\n audioSenderStream.requestedKeyFrames =\n statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;\n};\n\nexport const getVideoReceiverMqa = ({\n videoReceiver,\n statsResults,\n lastMqaDataSent,\n baseMediaType,\n}) => {\n const sendrecvType = STATS.RECEIVE_DIRECTION;\n\n const getLastTotalValue = (value: string) =>\n getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);\n const getTotalValue = (value: string) =>\n getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);\n\n const lastPacketsReceived = getLastTotalValue('totalPacketsReceived');\n const lastPacketsLost = getLastTotalValue('totalPacketsLost');\n const lastBytesReceived = getLastTotalValue('totalBytesReceived');\n\n const packetsLost = getTotalValue('totalPacketsLost');\n const totalPacketsReceived = getTotalValue('totalPacketsReceived');\n const totalBytesReceived = getTotalValue('totalBytesReceived');\n\n const meanRemoteJitter = Object.keys(statsResults)\n .filter((mt) => mt.includes(baseMediaType))\n .reduce((acc, mt) => acc.concat(statsResults[mt][sendrecvType].meanRemoteJitter), []);\n\n videoReceiver.common.common.direction =\n statsResults[Object.keys(statsResults).find((mediaType) => mediaType.includes(baseMediaType))]\n ?.direction || 'inactive';\n videoReceiver.common.common.isMain = !baseMediaType.includes('-share');\n videoReceiver.common.transportType = statsResults.connectionType.local.transport;\n\n // collect the packets received for the last min\n videoReceiver.common.rtpPackets = totalPacketsReceived - lastPacketsReceived || 0;\n\n // Hop by hop are numbers and not percentage so we compare on what we sent the last min\n // this is including packet lost\n const totalPacketsLost = packetsLost - lastPacketsLost;\n videoReceiver.common.mediaHopByHopLost = totalPacketsLost;\n videoReceiver.common.rtpHopByHopLost = totalPacketsLost;\n\n // calculate this values\n videoReceiver.common.maxRemoteJitter = max(meanRemoteJitter) * 1000 || 0;\n videoReceiver.common.meanRemoteJitter = mean(meanRemoteJitter) * 1000 || 0;\n\n // Calculate the outgoing bitrate\n const totalBytesReceivedInaMin = totalBytesReceived - lastBytesReceived;\n\n videoReceiver.common.rtpBitrate = totalBytesReceivedInaMin\n ? (totalBytesReceivedInaMin * 8) / 60\n : 0;\n};\n\nexport const getVideoReceiverStreamMqa = ({\n videoReceiverStream,\n statsResults,\n lastMqaDataSent,\n mediaType,\n}) => {\n const sendrecvType = STATS.RECEIVE_DIRECTION;\n\n const lastPacketsReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsReceived || 0;\n const lastPacketsLost = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsLost || 0;\n const lastBytesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesReceived || 0;\n const lastFramesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].framesReceived || 0;\n const lastFramesDecoded = lastMqaDataSent[mediaType]?.[sendrecvType].framesDecoded || 0;\n const lastFramesDropped = lastMqaDataSent[mediaType]?.[sendrecvType].framesDropped || 0;\n const lastKeyFramesDecoded = lastMqaDataSent[mediaType]?.[sendrecvType].keyFramesDecoded || 0;\n const lastPliCount = lastMqaDataSent[mediaType]?.[sendrecvType].totalPliCount || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !videoReceiverStream.common.csi.includes(csi)) {\n videoReceiverStream.common.csi.push(csi);\n }\n\n videoReceiverStream.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;\n\n const totalPacketLoss =\n statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;\n\n // End to end packetloss is after recovery\n videoReceiverStream.common.rtpEndToEndLost = totalPacketLoss;\n\n videoReceiverStream.common.rtpJitter =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n\n const totalBytesReceivedInaMin =\n statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived;\n videoReceiverStream.common.receivedBitrate = totalBytesReceivedInaMin\n ? (totalBytesReceivedInaMin * 8) / 60\n : 0;\n\n const totalFrameReceivedInaMin =\n statsResults[mediaType][sendrecvType].framesReceived - lastFramesReceived;\n const totalFrameDecodedInaMin =\n statsResults[mediaType][sendrecvType].framesDecoded - lastFramesDecoded;\n\n videoReceiverStream.common.receivedFrameRate = Math.round(\n totalFrameReceivedInaMin ? totalFrameReceivedInaMin / 60 : 0\n );\n videoReceiverStream.common.renderedFrameRate = Math.round(\n totalFrameDecodedInaMin ? totalFrameDecodedInaMin / 60 : 0\n );\n\n videoReceiverStream.common.framesDropped =\n statsResults[mediaType][sendrecvType].framesDropped - lastFramesDropped || 0;\n videoReceiverStream.receivedHeight = statsResults[mediaType][sendrecvType].height || 0;\n videoReceiverStream.receivedWidth = statsResults[mediaType][sendrecvType].width || 0;\n videoReceiverStream.receivedFrameSize =\n (videoReceiverStream.receivedHeight * videoReceiverStream.receivedWidth) / 256;\n\n videoReceiverStream.receivedKeyFrames =\n statsResults[mediaType][sendrecvType].keyFramesDecoded - lastKeyFramesDecoded || 0;\n videoReceiverStream.requestedKeyFrames =\n statsResults[mediaType][sendrecvType].totalPliCount - lastPliCount || 0;\n};\n\nexport const getVideoSenderMqa = ({videoSender, statsResults, lastMqaDataSent, baseMediaType}) => {\n const sendrecvType = STATS.SEND_DIRECTION;\n\n const getLastTotalValue = (value: string) =>\n getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);\n const getTotalValue = (value: string) =>\n getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);\n\n const lastPacketsSent = getLastTotalValue('totalPacketsSent');\n const lastBytesSent = getLastTotalValue('totalBytesSent');\n const lastPacketsLostTotal = getLastTotalValue('totalPacketsLostOnReceiver');\n\n const totalPacketsLostOnReceiver = getTotalValue('totalPacketsLostOnReceiver');\n const totalPacketsSent = getTotalValue('totalPacketsSent');\n const totalBytesSent = getTotalValue('totalBytesSent');\n const availableOutgoingBitrate = getTotalValue('availableOutgoingBitrate');\n\n videoSender.common.common.direction =\n statsResults[Object.keys(statsResults).find((mediaType) => mediaType.includes(baseMediaType))]\n ?.direction || 'inactive';\n videoSender.common.common.isMain = !baseMediaType.includes('-share');\n videoSender.common.transportType = statsResults.connectionType.local.transport;\n\n const meanRemoteJitter = Object.keys(statsResults)\n .filter((mt) => mt.includes(baseMediaType))\n .reduce((acc, mt) => acc.concat(statsResults[mt][sendrecvType].meanRemoteJitter), []);\n const meanRoundTripTime = Object.keys(statsResults)\n .filter((mt) => mt.includes(baseMediaType))\n .reduce((acc, mt) => acc.concat(statsResults[mt][sendrecvType].meanRoundTripTime), []);\n\n // @ts-ignore\n videoSender.common.maxRemoteJitter = max(meanRemoteJitter) * 1000 || 0;\n videoSender.common.meanRemoteJitter = mean(meanRemoteJitter) * 1000 || 0;\n\n videoSender.common.rtpPackets = totalPacketsSent - lastPacketsSent;\n videoSender.common.availableBitrate = availableOutgoingBitrate;\n\n // Calculate based on how much packets lost of received compated to how to the client sent\n const totalPacketsLostForaMin = totalPacketsLostOnReceiver - lastPacketsLostTotal;\n\n videoSender.common.remoteLossRate =\n totalPacketsSent - lastPacketsSent > 0\n ? (totalPacketsLostForaMin * 100) / (totalPacketsSent - lastPacketsSent)\n : 0; // This is the packets sent with in last min || 0;\n\n videoSender.common.maxRoundTripTime = max(meanRoundTripTime) * 1000 || 0;\n videoSender.common.meanRoundTripTime = mean(meanRoundTripTime) * 1000 || 0;\n videoSender.common.roundTripTime = videoSender.common.maxRoundTripTime;\n\n // Calculate the outgoing bitrate\n const totalBytesSentInaMin = totalBytesSent - lastBytesSent;\n\n videoSender.common.rtpBitrate = totalBytesSentInaMin ? (totalBytesSentInaMin * 8) / 60 : 0;\n};\n\nexport const getVideoSenderStreamMqa = ({\n videoSenderStream,\n statsResults,\n lastMqaDataSent,\n mediaType,\n}) => {\n const sendrecvType = STATS.SEND_DIRECTION;\n\n const lastPacketsSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsSent || 0;\n const lastBytesSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesSent || 0;\n const lastKeyFramesEncoded =\n lastMqaDataSent[mediaType]?.[sendrecvType].totalKeyFramesEncoded || 0;\n const lastFirCount = lastMqaDataSent[mediaType]?.[sendrecvType].totalFirCount || 0;\n const lastFramesSent = lastMqaDataSent[mediaType]?.[sendrecvType].framesSent || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !videoSenderStream.common.csi.includes(csi)) {\n videoSenderStream.common.csi.push(csi);\n }\n\n videoSenderStream.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;\n\n // Calculate the outgoing bitrate\n const totalBytesSentInaMin = statsResults[mediaType][sendrecvType].totalBytesSent - lastBytesSent;\n\n videoSenderStream.common.transmittedBitrate = totalBytesSentInaMin\n ? (totalBytesSentInaMin * 8) / 60\n : 0;\n\n videoSenderStream.transmittedKeyFrames =\n statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastKeyFramesEncoded || 0;\n videoSenderStream.requestedKeyFrames =\n statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;\n\n // From tracks //TODO: calculate a proper one\n const totalFrameSentInaMin =\n statsResults[mediaType][sendrecvType].framesSent - (lastFramesSent || 0);\n\n videoSenderStream.common.transmittedFrameRate = Math.round(\n totalFrameSentInaMin ? totalFrameSentInaMin / 60 : 0\n );\n videoSenderStream.transmittedHeight = statsResults[mediaType][sendrecvType].height || 0;\n videoSenderStream.transmittedWidth = statsResults[mediaType][sendrecvType].width || 0;\n videoSenderStream.transmittedFrameSize =\n (videoSenderStream.transmittedHeight * videoSenderStream.transmittedWidth) / 256;\n};\n"],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { ANNOTATION_POLICY } from './constants';
2
+ /**
3
+ * Type for an StrokeData Object
4
+ */
5
+ type StrokeData = {
6
+ deviceId: string;
7
+ toUserId: string;
8
+ requesterId: string;
9
+ content: string;
10
+ shareInstanceId: string;
11
+ encryptionKeyUrl: string;
12
+ version: string;
13
+ };
14
+ type RequestData = {
15
+ toUserId: string;
16
+ toDeviceUrl: string;
17
+ shareInstanceId: string;
18
+ };
19
+ type CommandRequestBody = {
20
+ actionType: string;
21
+ resourceType: string;
22
+ shareInstanceId: string;
23
+ receivers?: any[];
24
+ };
25
+ /**
26
+ * Type for an annotation Object include annotation version and privilege
27
+ */
28
+ type AnnotationInfo = {
29
+ version: string;
30
+ policy: ANNOTATION_POLICY;
31
+ };
32
+ interface IAnnotationChannel {
33
+ acceptRequest: (approval: any) => undefined | Promise<void>;
34
+ declineRequest: (approval: any) => undefined | Promise<void>;
35
+ closeAnnotation: (requestData: RequestData) => undefined | Promise<void>;
36
+ approveAnnotation: (requestData: RequestData) => undefined | Promise<void>;
37
+ cancelApproveAnnotation: (requestData: RequestData, approval: any) => undefined | Promise<void>;
38
+ sendStrokeData: (strokeData: StrokeData) => void;
39
+ approvalUrlUpdate: (approvalUrl: string) => void;
40
+ locusUrlUpdate: (locusUrl: string) => void;
41
+ }
42
+ export type { StrokeData, RequestData, CommandRequestBody, IAnnotationChannel, AnnotationInfo };
@@ -0,0 +1,31 @@
1
+ export declare const EVENT_TRIGGERS: {
2
+ ANNOTATION_STROKE_DATA: string;
3
+ ANNOTATION_COMMAND: string;
4
+ };
5
+ export declare const ANNOTATION_RESOURCE_TYPE = "AnnotationOnShare";
6
+ export declare const ANNOTATION_RELAY_TYPES: {
7
+ ANNOTATION_CLIENT: string;
8
+ };
9
+ export declare const ANNOTATION_STATUS: {
10
+ NO_ANNOTATION: string;
11
+ RUNNING_ANNOTATION: string;
12
+ };
13
+ export declare enum ANNOTATION_POLICY {
14
+ ANYONE_CAN_ANNOTATE = "AnyoneCanAnnotate",
15
+ APPROVAL = "Approval",
16
+ ANNOTATION_NOT_ALLOWED = "AnnotationNotAllowed"
17
+ }
18
+ export declare const ANNOTATION_REQUEST_TYPE: {
19
+ ANNOTATION_MESSAGE: string;
20
+ };
21
+ export declare const enum ANNOTATION_ACTION_TYPE {
22
+ REQUESTED = "REQUESTED",
23
+ ACCEPTED = "ACCEPTED",
24
+ DECLINED = "DECLINED",
25
+ OFFERED = "OFFERED",
26
+ CANCELED = "CANCELED",
27
+ EXPIRED = "EXPIRED",
28
+ REVOKED = "REVOKED",
29
+ CLOSED = "CLOSED"
30
+ }
31
+ export declare const ANNOTATION = "annotation";
@@ -0,0 +1,117 @@
1
+ import { WebexPlugin } from '@webex/webex-core';
2
+ import { StrokeData, RequestData, IAnnotationChannel } from './annotation.types';
3
+ /**
4
+ * @description Annotation to handle LLM and Mercury message and locus API
5
+ * @class
6
+ */
7
+ declare class AnnotationChannel extends WebexPlugin implements IAnnotationChannel {
8
+ namespace: string;
9
+ private seqNum;
10
+ hasSubscribedToEvents: boolean;
11
+ approvalUrl: string;
12
+ locusUrl: string;
13
+ deviceUrl: string;
14
+ /**
15
+ * Initializes annotation module
16
+ */
17
+ constructor(...args: any[]);
18
+ /**
19
+ * Process Stroke Data
20
+ * @param {object} data
21
+ * @returns {void}
22
+ */
23
+ private processStrokeMessage;
24
+ /** bind all events from mercury
25
+ * @param {Object} e
26
+ * @returns {undefined}
27
+ */
28
+ private eventCommandProcessor;
29
+ /** bind all events from llm
30
+ * @param {Object} e
31
+ * @returns {undefined}
32
+ */
33
+ private eventDataProcessor;
34
+ /**
35
+ * Listen to websocket messages
36
+ * @returns {undefined}
37
+ */
38
+ private listenToEvents;
39
+ /**
40
+ * set locusUrl
41
+ * @param {string} locusUrl
42
+ * @returns {void}
43
+ */
44
+ locusUrlUpdate(locusUrl: string): void;
45
+ /**
46
+ * set approved url
47
+ * @param {string} approvalUrl
48
+ * @returns {void}
49
+ */
50
+ approvalUrlUpdate(approvalUrl: string): void;
51
+ /**
52
+ * accept request
53
+ * @param {object} approval
54
+ * @returns {Promise}
55
+ */
56
+ acceptRequest(approval: any): any;
57
+ /**
58
+ * presenter declined request annotation
59
+ * @param {approval} approval
60
+ * @returns {Promise}
61
+ */
62
+ declineRequest(approval: any): any;
63
+ /**
64
+ * request approved annotation
65
+ * @param {RequestData} requestData
66
+ * @returns {Promise}
67
+ */
68
+ approveAnnotation(requestData: RequestData): Promise<void>;
69
+ /**
70
+ * cancel approved annotation
71
+ * @param {object} requestData
72
+ * @param {object} approval
73
+ * @returns {Promise}
74
+ */
75
+ cancelApproveAnnotation(requestData: RequestData, approval: any): any;
76
+ /**
77
+ * close annotation
78
+ * @param {object} requestData
79
+ * @returns {Promise}
80
+ */
81
+ closeAnnotation(requestData: RequestData): Promise<void>;
82
+ /**
83
+ * send annotation command
84
+ * @param {ANNOTATION_ACTION_TYPE} actionType
85
+ * @param {RequestData} requestData
86
+ * @returns {Promise}
87
+ */
88
+ private sendAnnotationAction;
89
+ /**
90
+ * decrypt data
91
+ * @param {string} encryptionKeyUrl
92
+ * @param {string} content encrypted content
93
+ * @returns {string} decrypted content
94
+ */
95
+ private decryptContent;
96
+ /**
97
+ * encrypt data
98
+ * @param {string} encryptionKeyUrl
99
+ * @param {string} content original content
100
+ * @returns {string} encrypted content
101
+ */
102
+ private encryptContent;
103
+ /**
104
+ * Sends stroke data to presenter
105
+ * @param {StrokeData} strokeData
106
+ * @returns {void}
107
+ */
108
+ sendStrokeData: (strokeData: StrokeData) => void;
109
+ /**
110
+ * private encrypted the strokes data
111
+ * @param {string} encryptedContent
112
+ * @param {StrokeData} strokeData
113
+ * @returns {void}
114
+ */
115
+ private publishEncrypted;
116
+ }
117
+ export default AnnotationChannel;
@@ -0,0 +1,8 @@
1
+ import { ClientEvent } from '@webex/internal-plugin-metrics';
2
+ declare const breakoutEvent: {
3
+ onBreakoutMoveRequest: (eventInfo: any, submitClientEvent: any) => void;
4
+ onBreakoutMoveResponse: (eventInfo: any, submitClientEvent: any) => void;
5
+ onBreakoutJoinResponse: (eventInfo: any, submitClientEvent: any) => void;
6
+ postMoveCallAnalyzer: (event: ClientEvent['name'], eventInfo: any, submitClientEvent: any) => void;
7
+ };
8
+ export default breakoutEvent;
@@ -1 +1,15 @@
1
1
  export declare const getBroadcastRoles: (options: any) => string[];
2
+ /**
3
+ * Deals with all kinds of errors of breakout service
4
+ * @param {object} error // one of the breakout service error
5
+ * @param {string} position // position of the error occur
6
+ * @returns {object}
7
+ */
8
+ export declare const boServiceErrorHandler: (error: any, position: string) => any;
9
+ /**
10
+ *
11
+ * @param {object} breakout
12
+ * @param {string} newSessionType
13
+ * @returns {boolean}
14
+ */
15
+ export declare const isSessionTypeChangedFromSessionToMain: (breakout: any, newSessionType: any) => boolean;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Extended Error object for general parameter errors
3
+ */
4
+ export default class NoMeetingInfoError extends Error {
5
+ code: any;
6
+ error: any;
7
+ sdkMessage: any;
8
+ /**
9
+ * @constructor
10
+ * @param {String} [message]
11
+ * @param {Object} [error]
12
+ */
13
+ constructor(message?: string, error?: any);
14
+ }
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Extended Error object for reclaim host role empty or wrong key
3
+ */
4
+ export declare class ReclaimHostEmptyWrongKeyError extends Error {
5
+ sdkMessage: string;
6
+ error: null;
7
+ code: number;
8
+ /**
9
+ *
10
+ * @constructor
11
+ * @param {String} [message]
12
+ * @param {Object} [error]
13
+ */
14
+ constructor(message?: string, error?: any);
15
+ }
16
+ /**
17
+ * Extended Error object for reclaim host role not supported
18
+ */
19
+ export declare class ReclaimHostNotSupportedError extends Error {
20
+ sdkMessage: string;
21
+ error: null;
22
+ code: number;
23
+ /**
24
+ *
25
+ * @constructor
26
+ * @param {String} [message]
27
+ * @param {Object} [error]
28
+ */
29
+ constructor(message?: string, error?: any);
30
+ }
31
+ /**
32
+ * Extended Error object for reclaim host role not allowed for other participants
33
+ */
34
+ export declare class ReclaimHostNotAllowedError extends Error {
35
+ sdkMessage: string;
36
+ error: null;
37
+ code: number;
38
+ /**
39
+ *
40
+ * @constructor
41
+ * @param {String} [message]
42
+ * @param {Object} [error]
43
+ */
44
+ constructor(message?: string, error?: any);
45
+ }
46
+ /**
47
+ * Extended Error object for reclaim host role when user is host already
48
+ */
49
+ export declare class ReclaimHostIsHostAlreadyError extends Error {
50
+ sdkMessage: string;
51
+ error: null;
52
+ code: number;
53
+ /**
54
+ *
55
+ * @constructor
56
+ * @param {String} [message]
57
+ * @param {Object} [error]
58
+ */
59
+ constructor(message?: string, error?: any);
60
+ }
@@ -36,7 +36,7 @@ export { UserNotJoinedError };
36
36
  * @classdesc Raised whenever the user has not established media yet.
37
37
  * @extends WebexMeetingsError
38
38
  * @property {number} code - 30103
39
- * @property {string} message - 'User has not established media yet'
39
+ * @property {string} message - error message
40
40
  */
41
41
  declare class NoMediaEstablishedYetError extends WebexMeetingsError {
42
42
  static CODE: number;
@@ -55,6 +55,18 @@ declare class UserInLobbyError extends WebexMeetingsError {
55
55
  constructor();
56
56
  }
57
57
  export { UserInLobbyError };
58
+ /**
59
+ * @class SpaceIDDeprecatedError
60
+ * @classdesc Raised whenever the user passes Space ID as destination for create meeting.
61
+ * @extends WebexMeetingsError
62
+ * @property {number} code - 30105
63
+ * @property {string} message - Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-to-Unified-Space-Meetings) to migrate to use the meeting ID or SIP address.'
64
+ */
65
+ declare class SpaceIDDeprecatedError extends WebexMeetingsError {
66
+ static CODE: number;
67
+ constructor();
68
+ }
69
+ export { SpaceIDDeprecatedError };
58
70
  /**
59
71
  * @class IceGatheringFailed
60
72
  * @classdesc Raised whenever ice gathering fails.
@@ -67,3 +79,15 @@ declare class IceGatheringFailed extends WebexMeetingsError {
67
79
  constructor();
68
80
  }
69
81
  export { IceGatheringFailed };
82
+ /**
83
+ * @class AddMediaFailed
84
+ * @classdesc Raised whenever we fail to successfully add media to a meeting
85
+ * @extends WebexMeetingsError
86
+ * @property {number} code - 30203
87
+ * @property {string} message - 'Failed to add media'
88
+ */
89
+ declare class AddMediaFailed extends WebexMeetingsError {
90
+ static CODE: number;
91
+ constructor();
92
+ }
93
+ export { AddMediaFailed };
@@ -25,6 +25,8 @@ export default class LogsRequest {
25
25
  * @memberof LogsRequest
26
26
  */
27
27
  uploadLogs(options?: {
28
+ autoupload?: boolean;
29
+ locussessionid?: string;
28
30
  feedbackId?: string;
29
31
  locusId?: string;
30
32
  correlationId?: string;
@@ -1,12 +1,14 @@
1
1
  /**
2
- * Simple queue
2
+ * Simple queue in which the elements are always sorted
3
3
  */
4
- export default class SimpleQueue {
5
- queue: any[];
4
+ export default class SortedQueue<ItemType> {
5
+ queue: ItemType[];
6
+ compareFunc: (left: ItemType, right: ItemType) => number;
6
7
  /**
7
- * @constructs SimpleQueue
8
+ * @constructs SortedQueue
9
+ * @param {Function} compareFunc comparison function used for sorting the elements of the queue
8
10
  */
9
- constructor();
11
+ constructor(compareFunc: (left: ItemType, right: ItemType) => number);
10
12
  /**
11
13
  * Removes all of the elements from queue.
12
14
  * @returns {undefined}
@@ -17,13 +19,13 @@ export default class SimpleQueue {
17
19
  * @param {object} item
18
20
  * @returns {undefined}
19
21
  */
20
- enqueue(item: object): void;
22
+ enqueue(item: ItemType): void;
21
23
  /**
22
24
  * Returns and removes the head of the queue.
23
25
  * Returns null if the queue is empty.
24
26
  * @returns {(object|null)} Queue item or null.
25
27
  */
26
- dequeue(): any;
28
+ dequeue(): ItemType;
27
29
  /**
28
30
  * Returns the number of items in queue.
29
31
  * @returns {number}
@@ -2,13 +2,7 @@ declare const _default: {
2
2
  meetings: {
3
3
  deviceType: any;
4
4
  mediaSettings: {
5
- sendAudio: boolean;
6
- sendVideo: boolean;
7
- receiveAudio: boolean;
8
- receiveVideo: boolean;
9
5
  pstn: boolean;
10
- sendShare: boolean;
11
- receiveShare: boolean;
12
6
  };
13
7
  reconnection: {
14
8
  enabled: boolean;
@@ -63,11 +57,12 @@ declare const _default: {
63
57
  receiveTranscription: boolean;
64
58
  enableExtmap: boolean;
65
59
  enableAutomaticLLM: boolean;
60
+ installedOrgID: any;
66
61
  experimental: {
67
62
  enableMediaNegotiatedEvent: boolean;
68
63
  enableUnifiedMeetings: boolean;
69
64
  enableAdhocMeetings: boolean;
70
- enableTurnDiscovery: boolean;
65
+ enableTcpReachability: boolean;
71
66
  };
72
67
  degradationPreferences: {
73
68
  maxMacroblocksLimit: number;