@webex/plugin-meetings 2.60.0 → 2.60.1-next.2

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 (535) hide show
  1. package/README.md +46 -8
  2. package/dist/annotation/annotation.types.d.ts +42 -0
  3. package/dist/annotation/annotation.types.js +7 -0
  4. package/dist/annotation/annotation.types.js.map +1 -0
  5. package/dist/annotation/constants.d.ts +31 -0
  6. package/dist/annotation/constants.js +41 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.d.ts +117 -0
  9. package/dist/annotation/index.js +357 -0
  10. package/dist/annotation/index.js.map +1 -0
  11. package/dist/breakouts/breakout.d.ts +8 -0
  12. package/dist/breakouts/breakout.js +215 -0
  13. package/dist/breakouts/breakout.js.map +1 -0
  14. package/dist/breakouts/collection.d.ts +5 -0
  15. package/dist/breakouts/collection.js +22 -0
  16. package/dist/breakouts/collection.js.map +1 -0
  17. package/dist/breakouts/edit-lock-error.d.ts +15 -0
  18. package/dist/breakouts/edit-lock-error.js +51 -0
  19. package/dist/breakouts/edit-lock-error.js.map +1 -0
  20. package/dist/breakouts/events.d.ts +8 -0
  21. package/dist/breakouts/events.js +44 -0
  22. package/dist/breakouts/events.js.map +1 -0
  23. package/dist/breakouts/index.d.ts +5 -0
  24. package/dist/breakouts/index.js +1047 -0
  25. package/dist/breakouts/index.js.map +1 -0
  26. package/dist/breakouts/request.d.ts +22 -0
  27. package/dist/breakouts/request.js +77 -0
  28. package/dist/breakouts/request.js.map +1 -0
  29. package/dist/breakouts/utils.d.ts +15 -0
  30. package/dist/breakouts/utils.js +64 -0
  31. package/dist/breakouts/utils.js.map +1 -0
  32. package/dist/common/browser-detection.js +2 -3
  33. package/dist/common/browser-detection.js.map +1 -1
  34. package/dist/common/collection.js +3 -4
  35. package/dist/common/collection.js.map +1 -1
  36. package/dist/common/config.js +1 -2
  37. package/dist/common/config.js.map +1 -1
  38. package/dist/common/errors/captcha-error.js +1 -2
  39. package/dist/common/errors/captcha-error.js.map +1 -1
  40. package/dist/common/errors/intent-to-join.js +1 -2
  41. package/dist/common/errors/intent-to-join.js.map +1 -1
  42. package/dist/common/errors/join-meeting.js +1 -2
  43. package/dist/common/errors/join-meeting.js.map +1 -1
  44. package/dist/common/errors/media.js +1 -2
  45. package/dist/common/errors/media.js.map +1 -1
  46. package/dist/common/errors/no-meeting-info.d.ts +14 -0
  47. package/dist/common/errors/no-meeting-info.js +50 -0
  48. package/dist/common/errors/no-meeting-info.js.map +1 -0
  49. package/dist/common/errors/parameter.js +3 -4
  50. package/dist/common/errors/parameter.js.map +1 -1
  51. package/dist/common/errors/password-error.js +1 -2
  52. package/dist/common/errors/password-error.js.map +1 -1
  53. package/dist/common/errors/permission.js +1 -2
  54. package/dist/common/errors/permission.js.map +1 -1
  55. package/dist/common/errors/{reclaim-host-role-error.js → reclaim-host-role-errors.js} +7 -11
  56. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  57. package/dist/common/errors/reconnection-in-progress.js +1 -2
  58. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  59. package/dist/common/errors/reconnection.js +1 -2
  60. package/dist/common/errors/reconnection.js.map +1 -1
  61. package/dist/common/errors/stats.js +1 -2
  62. package/dist/common/errors/stats.js.map +1 -1
  63. package/dist/common/errors/webex-errors.d.ts +20 -8
  64. package/dist/common/errors/webex-errors.js +48 -28
  65. package/dist/common/errors/webex-errors.js.map +1 -1
  66. package/dist/common/errors/webex-meetings-error.js +1 -2
  67. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  68. package/dist/common/events/events-scope.js +1 -2
  69. package/dist/common/events/events-scope.js.map +1 -1
  70. package/dist/common/events/events.js +1 -2
  71. package/dist/common/events/events.js.map +1 -1
  72. package/dist/common/events/trigger-proxy.js +1 -2
  73. package/dist/common/events/trigger-proxy.js.map +1 -1
  74. package/dist/common/events/util.js +1 -2
  75. package/dist/common/events/util.js.map +1 -1
  76. package/dist/common/logs/logger-config.js +1 -2
  77. package/dist/common/logs/logger-config.js.map +1 -1
  78. package/dist/common/logs/logger-proxy.js +2 -3
  79. package/dist/common/logs/logger-proxy.js.map +1 -1
  80. package/dist/common/logs/request.d.ts +3 -1
  81. package/dist/common/logs/request.js +8 -5
  82. package/dist/common/logs/request.js.map +1 -1
  83. package/dist/common/queue.d.ts +9 -7
  84. package/dist/common/queue.js +22 -9
  85. package/dist/common/queue.js.map +1 -1
  86. package/dist/config.d.ts +6 -7
  87. package/dist/config.js +8 -10
  88. package/dist/config.js.map +1 -1
  89. package/dist/constants.d.ts +217 -97
  90. package/dist/constants.js +416 -441
  91. package/dist/constants.js.map +1 -1
  92. package/dist/controls-options-manager/constants.js +3 -6
  93. package/dist/controls-options-manager/constants.js.map +1 -1
  94. package/dist/controls-options-manager/enums.d.ts +11 -1
  95. package/dist/controls-options-manager/enums.js +15 -6
  96. package/dist/controls-options-manager/enums.js.map +1 -1
  97. package/dist/controls-options-manager/index.d.ts +17 -1
  98. package/dist/controls-options-manager/index.js +127 -38
  99. package/dist/controls-options-manager/index.js.map +1 -1
  100. package/dist/controls-options-manager/types.d.ts +43 -0
  101. package/dist/controls-options-manager/types.js +7 -0
  102. package/dist/controls-options-manager/types.js.map +1 -0
  103. package/dist/controls-options-manager/util.d.ts +1 -7
  104. package/dist/controls-options-manager/util.js +309 -19
  105. package/dist/controls-options-manager/util.js.map +1 -1
  106. package/dist/index.d.ts +6 -3
  107. package/dist/index.js +121 -5
  108. package/dist/index.js.map +1 -1
  109. package/dist/interceptors/index.d.ts +2 -0
  110. package/dist/interceptors/index.js +15 -0
  111. package/dist/interceptors/index.js.map +1 -0
  112. package/dist/interceptors/locusRetry.d.ts +27 -0
  113. package/dist/interceptors/locusRetry.js +94 -0
  114. package/dist/interceptors/locusRetry.js.map +1 -0
  115. package/dist/interpretation/collection.d.ts +5 -0
  116. package/dist/interpretation/collection.js +22 -0
  117. package/dist/interpretation/collection.js.map +1 -0
  118. package/dist/interpretation/index.d.ts +5 -0
  119. package/dist/interpretation/index.js +365 -0
  120. package/dist/interpretation/index.js.map +1 -0
  121. package/dist/interpretation/siLanguage.d.ts +5 -0
  122. package/dist/interpretation/siLanguage.js +24 -0
  123. package/dist/interpretation/siLanguage.js.map +1 -0
  124. package/dist/locus-info/controlsUtils.js +100 -11
  125. package/dist/locus-info/controlsUtils.js.map +1 -1
  126. package/dist/locus-info/embeddedAppsUtils.js +3 -4
  127. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  128. package/dist/locus-info/fullState.js +1 -2
  129. package/dist/locus-info/fullState.js.map +1 -1
  130. package/dist/locus-info/hostUtils.js +1 -2
  131. package/dist/locus-info/hostUtils.js.map +1 -1
  132. package/dist/locus-info/index.d.ts +57 -4
  133. package/dist/locus-info/index.js +425 -84
  134. package/dist/locus-info/index.js.map +1 -1
  135. package/dist/locus-info/infoUtils.js +13 -5
  136. package/dist/locus-info/infoUtils.js.map +1 -1
  137. package/dist/locus-info/mediaSharesUtils.js +58 -3
  138. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  139. package/dist/locus-info/parser.d.ts +66 -6
  140. package/dist/locus-info/parser.js +253 -80
  141. package/dist/locus-info/parser.js.map +1 -1
  142. package/dist/locus-info/selfUtils.js +97 -13
  143. package/dist/locus-info/selfUtils.js.map +1 -1
  144. package/dist/media/index.d.ts +2 -0
  145. package/dist/media/index.js +107 -319
  146. package/dist/media/index.js.map +1 -1
  147. package/dist/media/properties.d.ts +38 -53
  148. package/dist/media/properties.js +96 -153
  149. package/dist/media/properties.js.map +1 -1
  150. package/dist/media/util.js +1 -22
  151. package/dist/media/util.js.map +1 -1
  152. package/dist/mediaQualityMetrics/config.d.ts +234 -230
  153. package/dist/mediaQualityMetrics/config.js +302 -498
  154. package/dist/mediaQualityMetrics/config.js.map +1 -1
  155. package/dist/meeting/in-meeting-actions.d.ts +88 -0
  156. package/dist/meeting/in-meeting-actions.js +94 -3
  157. package/dist/meeting/in-meeting-actions.js.map +1 -1
  158. package/dist/meeting/index.d.ts +591 -494
  159. package/dist/meeting/index.js +4732 -2990
  160. package/dist/meeting/index.js.map +1 -1
  161. package/dist/meeting/locusMediaRequest.d.ts +74 -0
  162. package/dist/meeting/locusMediaRequest.js +291 -0
  163. package/dist/meeting/locusMediaRequest.js.map +1 -0
  164. package/dist/meeting/muteState.d.ts +93 -25
  165. package/dist/meeting/muteState.js +224 -133
  166. package/dist/meeting/muteState.js.map +1 -1
  167. package/dist/meeting/request.d.ts +82 -47
  168. package/dist/meeting/request.js +297 -199
  169. package/dist/meeting/request.js.map +1 -1
  170. package/dist/meeting/request.type.d.ts +11 -0
  171. package/dist/meeting/request.type.js +7 -0
  172. package/dist/meeting/request.type.js.map +1 -0
  173. package/dist/meeting/state.js +1 -2
  174. package/dist/meeting/state.js.map +1 -1
  175. package/dist/meeting/util.d.ts +102 -1
  176. package/dist/meeting/util.js +605 -435
  177. package/dist/meeting/util.js.map +1 -1
  178. package/dist/meeting-info/collection.js +3 -4
  179. package/dist/meeting-info/collection.js.map +1 -1
  180. package/dist/meeting-info/index.d.ts +13 -1
  181. package/dist/meeting-info/index.js +74 -7
  182. package/dist/meeting-info/index.js.map +1 -1
  183. package/dist/meeting-info/meeting-info-v2.d.ts +31 -1
  184. package/dist/meeting-info/meeting-info-v2.js +200 -63
  185. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  186. package/dist/meeting-info/request.js +1 -2
  187. package/dist/meeting-info/request.js.map +1 -1
  188. package/dist/meeting-info/util.js +2 -3
  189. package/dist/meeting-info/util.js.map +1 -1
  190. package/dist/meeting-info/utilv2.js +39 -41
  191. package/dist/meeting-info/utilv2.js.map +1 -1
  192. package/dist/meetings/collection.d.ts +17 -0
  193. package/dist/meetings/collection.js +42 -4
  194. package/dist/meetings/collection.js.map +1 -1
  195. package/dist/meetings/index.d.ts +93 -21
  196. package/dist/meetings/index.js +490 -127
  197. package/dist/meetings/index.js.map +1 -1
  198. package/dist/meetings/meetings.types.d.ts +4 -0
  199. package/dist/meetings/meetings.types.js +7 -0
  200. package/dist/meetings/meetings.types.js.map +1 -0
  201. package/dist/meetings/request.js +4 -3
  202. package/dist/meetings/request.js.map +1 -1
  203. package/dist/meetings/util.js +107 -6
  204. package/dist/meetings/util.js.map +1 -1
  205. package/dist/member/index.d.ts +13 -1
  206. package/dist/member/index.js +45 -2
  207. package/dist/member/index.js.map +1 -1
  208. package/dist/member/member.types.js +3 -4
  209. package/dist/member/member.types.js.map +1 -1
  210. package/dist/member/types.d.ts +32 -0
  211. package/dist/member/types.js +23 -0
  212. package/dist/member/types.js.map +1 -0
  213. package/dist/member/util.js +120 -29
  214. package/dist/member/util.js.map +1 -1
  215. package/dist/members/collection.d.ts +5 -0
  216. package/dist/members/collection.js +11 -2
  217. package/dist/members/collection.js.map +1 -1
  218. package/dist/members/index.d.ts +56 -11
  219. package/dist/members/index.js +174 -47
  220. package/dist/members/index.js.map +1 -1
  221. package/dist/members/request.d.ts +67 -11
  222. package/dist/members/request.js +102 -54
  223. package/dist/members/request.js.map +1 -1
  224. package/dist/members/types.js +3 -4
  225. package/dist/members/types.js.map +1 -1
  226. package/dist/members/util.d.ts +214 -1
  227. package/dist/members/util.js +327 -284
  228. package/dist/members/util.js.map +1 -1
  229. package/dist/metrics/constants.d.ts +15 -6
  230. package/dist/metrics/constants.js +17 -9
  231. package/dist/metrics/constants.js.map +1 -1
  232. package/dist/metrics/index.d.ts +4 -111
  233. package/dist/metrics/index.js +4 -452
  234. package/dist/metrics/index.js.map +1 -1
  235. package/dist/multistream/mediaRequestManager.d.ts +118 -0
  236. package/dist/multistream/mediaRequestManager.js +344 -0
  237. package/dist/multistream/mediaRequestManager.js.map +1 -0
  238. package/dist/multistream/receiveSlot.d.ts +68 -0
  239. package/dist/multistream/receiveSlot.js +200 -0
  240. package/dist/multistream/receiveSlot.js.map +1 -0
  241. package/dist/multistream/receiveSlotManager.d.ts +56 -0
  242. package/dist/multistream/receiveSlotManager.js +174 -0
  243. package/dist/multistream/receiveSlotManager.js.map +1 -0
  244. package/dist/multistream/remoteMedia.d.ts +72 -0
  245. package/dist/multistream/remoteMedia.js +268 -0
  246. package/dist/multistream/remoteMedia.js.map +1 -0
  247. package/dist/multistream/remoteMediaGroup.d.ts +47 -0
  248. package/dist/multistream/remoteMediaGroup.js +267 -0
  249. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  250. package/dist/multistream/remoteMediaManager.d.ts +285 -0
  251. package/dist/multistream/remoteMediaManager.js +1211 -0
  252. package/dist/multistream/remoteMediaManager.js.map +1 -0
  253. package/dist/multistream/sendSlotManager.d.ts +61 -0
  254. package/dist/multistream/sendSlotManager.js +236 -0
  255. package/dist/multistream/sendSlotManager.js.map +1 -0
  256. package/dist/networkQualityMonitor/index.js +5 -4
  257. package/dist/networkQualityMonitor/index.js.map +1 -1
  258. package/dist/personal-meeting-room/index.js +2 -3
  259. package/dist/personal-meeting-room/index.js.map +1 -1
  260. package/dist/personal-meeting-room/request.js +2 -3
  261. package/dist/personal-meeting-room/request.js.map +1 -1
  262. package/dist/personal-meeting-room/util.js +1 -2
  263. package/dist/personal-meeting-room/util.js.map +1 -1
  264. package/dist/reachability/clusterReachability.d.ts +109 -0
  265. package/dist/reachability/clusterReachability.js +357 -0
  266. package/dist/reachability/clusterReachability.js.map +1 -0
  267. package/dist/reachability/index.d.ts +61 -95
  268. package/dist/reachability/index.js +300 -393
  269. package/dist/reachability/index.js.map +1 -1
  270. package/dist/reachability/request.d.ts +7 -3
  271. package/dist/reachability/request.js +18 -10
  272. package/dist/reachability/request.js.map +1 -1
  273. package/dist/reachability/util.d.ts +8 -0
  274. package/dist/reachability/util.js +29 -0
  275. package/dist/reachability/util.js.map +1 -0
  276. package/dist/reactions/constants.d.ts +3 -0
  277. package/dist/reactions/constants.js +12 -0
  278. package/dist/reactions/constants.js.map +1 -0
  279. package/dist/reactions/reactions.d.ts +2 -2
  280. package/dist/reactions/reactions.js +4 -6
  281. package/dist/reactions/reactions.js.map +1 -1
  282. package/dist/reactions/reactions.type.d.ts +23 -3
  283. package/dist/reactions/reactions.type.js +21 -23
  284. package/dist/reactions/reactions.type.js.map +1 -1
  285. package/dist/reconnection-manager/index.d.ts +32 -8
  286. package/dist/reconnection-manager/index.js +282 -231
  287. package/dist/reconnection-manager/index.js.map +1 -1
  288. package/dist/recording-controller/enums.js +4 -5
  289. package/dist/recording-controller/enums.js.map +1 -1
  290. package/dist/recording-controller/index.d.ts +15 -1
  291. package/dist/recording-controller/index.js +57 -46
  292. package/dist/recording-controller/index.js.map +1 -1
  293. package/dist/recording-controller/util.d.ts +5 -4
  294. package/dist/recording-controller/util.js +10 -10
  295. package/dist/recording-controller/util.js.map +1 -1
  296. package/dist/roap/index.d.ts +9 -47
  297. package/dist/roap/index.js +101 -235
  298. package/dist/roap/index.js.map +1 -1
  299. package/dist/roap/request.d.ts +18 -12
  300. package/dist/roap/request.js +126 -180
  301. package/dist/roap/request.js.map +1 -1
  302. package/dist/roap/turnDiscovery.d.ts +27 -16
  303. package/dist/roap/turnDiscovery.js +115 -105
  304. package/dist/roap/turnDiscovery.js.map +1 -1
  305. package/dist/rtcMetrics/constants.d.ts +4 -0
  306. package/dist/rtcMetrics/constants.js +11 -0
  307. package/dist/rtcMetrics/constants.js.map +1 -0
  308. package/dist/rtcMetrics/index.d.ts +54 -0
  309. package/dist/rtcMetrics/index.js +140 -0
  310. package/dist/rtcMetrics/index.js.map +1 -0
  311. package/dist/statsAnalyzer/global.d.ts +1 -83
  312. package/dist/statsAnalyzer/global.js +2 -85
  313. package/dist/statsAnalyzer/global.js.map +1 -1
  314. package/dist/statsAnalyzer/index.d.ts +50 -30
  315. package/dist/statsAnalyzer/index.js +435 -510
  316. package/dist/statsAnalyzer/index.js.map +1 -1
  317. package/dist/statsAnalyzer/mqaUtil.d.ts +8 -6
  318. package/dist/statsAnalyzer/mqaUtil.js +120 -83
  319. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  320. package/dist/transcription/index.js +1 -2
  321. package/dist/transcription/index.js.map +1 -1
  322. package/dist/webinar/collection.d.ts +16 -0
  323. package/dist/webinar/collection.js +43 -0
  324. package/dist/webinar/collection.js.map +1 -0
  325. package/dist/webinar/index.d.ts +5 -0
  326. package/dist/webinar/index.js +68 -0
  327. package/dist/webinar/index.js.map +1 -0
  328. package/package.json +38 -26
  329. package/src/annotation/annotation.types.ts +50 -0
  330. package/src/annotation/constants.ts +36 -0
  331. package/src/annotation/index.ts +328 -0
  332. package/src/breakouts/README.md +220 -0
  333. package/src/breakouts/breakout.ts +188 -0
  334. package/src/breakouts/collection.ts +19 -0
  335. package/src/breakouts/edit-lock-error.ts +25 -0
  336. package/src/breakouts/events.ts +56 -0
  337. package/src/breakouts/index.ts +925 -0
  338. package/src/breakouts/request.ts +55 -0
  339. package/src/breakouts/utils.ts +57 -0
  340. package/src/common/errors/no-meeting-info.ts +24 -0
  341. package/src/common/errors/webex-errors.ts +36 -12
  342. package/src/common/logs/logger-proxy.ts +1 -1
  343. package/src/common/logs/request.ts +5 -1
  344. package/src/common/queue.ts +22 -8
  345. package/src/config.ts +6 -7
  346. package/src/constants.ts +244 -97
  347. package/src/controls-options-manager/enums.ts +12 -0
  348. package/src/controls-options-manager/index.ts +116 -21
  349. package/src/controls-options-manager/types.ts +59 -0
  350. package/src/controls-options-manager/util.ts +294 -14
  351. package/src/index.ts +44 -0
  352. package/src/interceptors/index.ts +3 -0
  353. package/src/interceptors/locusRetry.ts +67 -0
  354. package/src/interpretation/README.md +60 -0
  355. package/src/interpretation/collection.ts +19 -0
  356. package/src/interpretation/index.ts +332 -0
  357. package/src/interpretation/siLanguage.ts +18 -0
  358. package/src/locus-info/controlsUtils.ts +110 -0
  359. package/src/locus-info/index.ts +449 -61
  360. package/src/locus-info/infoUtils.ts +14 -2
  361. package/src/locus-info/mediaSharesUtils.ts +64 -0
  362. package/src/locus-info/parser.ts +258 -47
  363. package/src/locus-info/selfUtils.ts +85 -2
  364. package/src/media/index.ts +153 -370
  365. package/src/media/properties.ts +106 -136
  366. package/src/media/util.ts +0 -21
  367. package/src/mediaQualityMetrics/config.ts +244 -377
  368. package/src/meeting/in-meeting-actions.ts +176 -0
  369. package/src/meeting/index.ts +3944 -2489
  370. package/src/meeting/locusMediaRequest.ts +313 -0
  371. package/src/meeting/muteState.ts +224 -138
  372. package/src/meeting/request.ts +207 -127
  373. package/src/meeting/request.type.ts +13 -0
  374. package/src/meeting/util.ts +590 -423
  375. package/src/meeting-info/index.ts +81 -8
  376. package/src/meeting-info/meeting-info-v2.ts +163 -13
  377. package/src/meeting-info/util.ts +1 -1
  378. package/src/meeting-info/utilv2.ts +28 -28
  379. package/src/meetings/collection.ts +33 -0
  380. package/src/meetings/index.ts +487 -126
  381. package/src/meetings/meetings.types.ts +12 -0
  382. package/src/meetings/request.ts +2 -0
  383. package/src/meetings/util.ts +116 -5
  384. package/src/member/index.ts +43 -1
  385. package/src/member/types.ts +38 -0
  386. package/src/member/util.ts +125 -28
  387. package/src/members/collection.ts +8 -0
  388. package/src/members/index.ts +187 -52
  389. package/src/members/request.ts +87 -27
  390. package/src/members/util.ts +332 -291
  391. package/src/metrics/constants.ts +15 -6
  392. package/src/metrics/index.ts +1 -471
  393. package/src/multistream/mediaRequestManager.ts +440 -0
  394. package/src/multistream/receiveSlot.ts +184 -0
  395. package/src/multistream/receiveSlotManager.ts +166 -0
  396. package/src/multistream/remoteMedia.ts +254 -0
  397. package/src/multistream/remoteMediaGroup.ts +284 -0
  398. package/src/multistream/remoteMediaManager.ts +1145 -0
  399. package/src/multistream/sendSlotManager.ts +170 -0
  400. package/src/networkQualityMonitor/index.ts +6 -6
  401. package/src/reachability/clusterReachability.ts +320 -0
  402. package/src/reachability/index.ts +243 -347
  403. package/src/reachability/request.ts +17 -8
  404. package/src/reachability/util.ts +24 -0
  405. package/src/reactions/constants.ts +4 -0
  406. package/src/reactions/reactions.ts +4 -4
  407. package/src/reactions/reactions.type.ts +30 -4
  408. package/src/reconnection-manager/index.ts +168 -156
  409. package/src/recording-controller/index.ts +20 -3
  410. package/src/recording-controller/util.ts +26 -9
  411. package/src/roap/index.ts +98 -241
  412. package/src/roap/request.ts +74 -148
  413. package/src/roap/turnDiscovery.ts +62 -56
  414. package/src/rtcMetrics/constants.ts +3 -0
  415. package/src/rtcMetrics/index.ts +124 -0
  416. package/src/statsAnalyzer/global.ts +1 -84
  417. package/src/statsAnalyzer/index.ts +477 -643
  418. package/src/statsAnalyzer/mqaUtil.ts +115 -114
  419. package/src/webinar/collection.ts +31 -0
  420. package/src/webinar/index.ts +62 -0
  421. package/test/integration/spec/converged-space-meetings.js +233 -0
  422. package/test/integration/spec/journey.js +320 -264
  423. package/test/integration/spec/space-meeting.js +77 -4
  424. package/test/unit/spec/annotation/index.ts +418 -0
  425. package/test/unit/spec/breakouts/breakout.ts +237 -0
  426. package/test/unit/spec/breakouts/collection.ts +15 -0
  427. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  428. package/test/unit/spec/breakouts/events.ts +89 -0
  429. package/test/unit/spec/breakouts/index.ts +1790 -0
  430. package/test/unit/spec/breakouts/request.ts +104 -0
  431. package/test/unit/spec/breakouts/utils.js +72 -0
  432. package/test/unit/spec/common/queue.js +31 -2
  433. package/test/unit/spec/controls-options-manager/index.js +163 -0
  434. package/test/unit/spec/controls-options-manager/util.js +576 -60
  435. package/test/unit/spec/fixture/locus.js +1 -0
  436. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  437. package/test/unit/spec/interpretation/collection.ts +15 -0
  438. package/test/unit/spec/interpretation/index.ts +589 -0
  439. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  440. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  441. package/test/unit/spec/locus-info/index.js +1390 -16
  442. package/test/unit/spec/locus-info/infoUtils.js +54 -16
  443. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  444. package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
  445. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  446. package/test/unit/spec/locus-info/parser.js +116 -35
  447. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  448. package/test/unit/spec/media/index.ts +290 -0
  449. package/test/unit/spec/media/properties.ts +75 -84
  450. package/test/unit/spec/meeting/in-meeting-actions.ts +86 -0
  451. package/test/unit/spec/meeting/index.js +8187 -2769
  452. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  453. package/test/unit/spec/meeting/muteState.js +409 -213
  454. package/test/unit/spec/meeting/request.js +512 -42
  455. package/test/unit/spec/meeting/utils.js +741 -24
  456. package/test/unit/spec/meeting-info/index.js +300 -0
  457. package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
  458. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  459. package/test/unit/spec/meetings/collection.js +26 -0
  460. package/test/unit/spec/meetings/index.js +1313 -243
  461. package/test/unit/spec/meetings/utils.js +202 -2
  462. package/test/unit/spec/member/index.js +32 -9
  463. package/test/unit/spec/member/util.js +499 -61
  464. package/test/unit/spec/members/index.js +394 -5
  465. package/test/unit/spec/members/request.js +206 -27
  466. package/test/unit/spec/members/utils.js +173 -38
  467. package/test/unit/spec/metrics/index.js +1 -50
  468. package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
  469. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  470. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  471. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  472. package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
  473. package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
  474. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  475. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  476. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  477. package/test/unit/spec/reachability/index.ts +531 -24
  478. package/test/unit/spec/reachability/request.js +68 -0
  479. package/test/unit/spec/reachability/util.ts +40 -0
  480. package/test/unit/spec/reconnection-manager/index.js +162 -24
  481. package/test/unit/spec/recording-controller/index.js +293 -218
  482. package/test/unit/spec/recording-controller/util.js +223 -96
  483. package/test/unit/spec/roap/index.ts +200 -76
  484. package/test/unit/spec/roap/request.ts +255 -0
  485. package/test/unit/spec/roap/turnDiscovery.ts +86 -48
  486. package/test/unit/spec/rtcMetrics/index.ts +93 -0
  487. package/test/unit/spec/stats-analyzer/index.js +261 -167
  488. package/test/unit/spec/webinar/collection.ts +13 -0
  489. package/test/unit/spec/webinar/index.ts +60 -0
  490. package/test/utils/constants.js +9 -0
  491. package/test/utils/integrationTestUtils.js +46 -0
  492. package/test/utils/testUtils.js +0 -45
  493. package/test/utils/webex-config.js +4 -0
  494. package/test/utils/webex-test-users.js +7 -3
  495. package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
  496. package/dist/meeting/effectsState.d.ts +0 -42
  497. package/dist/meeting/effectsState.js +0 -260
  498. package/dist/meeting/effectsState.js.map +0 -1
  499. package/dist/metrics/config.d.ts +0 -169
  500. package/dist/metrics/config.js +0 -289
  501. package/dist/metrics/config.js.map +0 -1
  502. package/dist/peer-connection-manager/index.d.ts +0 -6
  503. package/dist/peer-connection-manager/index.js +0 -671
  504. package/dist/peer-connection-manager/index.js.map +0 -1
  505. package/dist/peer-connection-manager/util.d.ts +0 -6
  506. package/dist/peer-connection-manager/util.js +0 -110
  507. package/dist/peer-connection-manager/util.js.map +0 -1
  508. package/dist/roap/collection.d.ts +0 -10
  509. package/dist/roap/collection.js +0 -63
  510. package/dist/roap/collection.js.map +0 -1
  511. package/dist/roap/handler.d.ts +0 -47
  512. package/dist/roap/handler.js +0 -279
  513. package/dist/roap/handler.js.map +0 -1
  514. package/dist/roap/state.d.ts +0 -9
  515. package/dist/roap/state.js +0 -127
  516. package/dist/roap/state.js.map +0 -1
  517. package/dist/roap/util.d.ts +0 -2
  518. package/dist/roap/util.js +0 -76
  519. package/dist/roap/util.js.map +0 -1
  520. package/src/index.js +0 -15
  521. package/src/meeting/effectsState.ts +0 -209
  522. package/src/metrics/config.ts +0 -485
  523. package/src/peer-connection-manager/index.ts +0 -847
  524. package/src/peer-connection-manager/util.ts +0 -119
  525. package/src/roap/collection.ts +0 -62
  526. package/src/roap/handler.ts +0 -294
  527. package/src/roap/state.ts +0 -156
  528. package/src/roap/util.ts +0 -100
  529. package/test/unit/spec/meeting/effectsState.js +0 -281
  530. package/test/unit/spec/peerconnection-manager/index.js +0 -218
  531. package/test/unit/spec/peerconnection-manager/utils.js +0 -49
  532. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
  533. package/test/unit/spec/roap/util.js +0 -30
  534. /package/dist/common/errors/{reclaim-host-role-error.d.ts → reclaim-host-role-errors.d.ts} +0 -0
  535. /package/src/common/errors/{reclaim-host-role-error.ts → reclaim-host-role-errors.ts} +0 -0
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
13
+ var _internalPluginMetrics = require("@webex/internal-plugin-metrics");
14
+ var _constants = _interopRequireDefault(require("./constants"));
15
+ /* eslint-disable class-methods-use-this */
16
+ /**
17
+ * Rtc Metrics
18
+ */
19
+ var RtcMetrics = exports.default = /*#__PURE__*/function () {
20
+ /**
21
+ * Initialize the interval.
22
+ *
23
+ * @param {object} webex - The main `webex` object.
24
+ * @param {string} meetingId - The meeting id.
25
+ * @param {string} correlationId - The correlation id.
26
+ */
27
+ function RtcMetrics(webex, meetingId, correlationId) {
28
+ (0, _classCallCheck2.default)(this, RtcMetrics);
29
+ /**
30
+ * Array of MetricData items to be sent to the metrics service.
31
+ */
32
+ (0, _defineProperty2.default)(this, "metricsQueue", []);
33
+ (0, _defineProperty2.default)(this, "intervalId", void 0);
34
+ (0, _defineProperty2.default)(this, "webex", void 0);
35
+ (0, _defineProperty2.default)(this, "meetingId", void 0);
36
+ (0, _defineProperty2.default)(this, "correlationId", void 0);
37
+ // `window` is used to prevent typescript from returning a NodeJS.Timer.
38
+ this.intervalId = window.setInterval(this.sendMetricsInQueue.bind(this), 30 * 1000);
39
+ this.meetingId = meetingId;
40
+ this.webex = webex;
41
+ this.correlationId = correlationId;
42
+ // Send the first set of metrics at 5 seconds in the case of a user leaving the call shortly after joining.
43
+ setTimeout(this.sendMetricsInQueue.bind(this), 5 * 1000);
44
+ }
45
+
46
+ /**
47
+ * Check to see if the metrics queue has any items.
48
+ *
49
+ * @returns {void}
50
+ */
51
+ (0, _createClass2.default)(RtcMetrics, [{
52
+ key: "sendMetricsInQueue",
53
+ value: function sendMetricsInQueue() {
54
+ if (this.metricsQueue.length) {
55
+ this.sendMetrics();
56
+ this.metricsQueue = [];
57
+ }
58
+ }
59
+
60
+ /**
61
+ * Add metrics items to the metrics queue.
62
+ *
63
+ * @param {object} data - An object with a payload array of metrics items.
64
+ *
65
+ * @returns {void}
66
+ */
67
+ }, {
68
+ key: "addMetrics",
69
+ value: function addMetrics(data) {
70
+ if (data.payload.length) {
71
+ if (data.name === 'stats-report') {
72
+ data.payload = data.payload.map(this.anonymizeIp);
73
+ }
74
+ this.metricsQueue.push(data);
75
+ }
76
+ }
77
+
78
+ /**
79
+ * Clear the metrics interval.
80
+ *
81
+ * @returns {void}
82
+ */
83
+ }, {
84
+ key: "closeMetrics",
85
+ value: function closeMetrics() {
86
+ this.sendMetricsInQueue();
87
+ clearInterval(this.intervalId);
88
+ }
89
+
90
+ /**
91
+ * Anonymize IP addresses.
92
+ *
93
+ * @param {array} stats - An RTCStatsReport organized into an array of strings.
94
+ * @returns {string}
95
+ */
96
+ }, {
97
+ key: "anonymizeIp",
98
+ value: function anonymizeIp(stats) {
99
+ var data = JSON.parse(stats);
100
+ // on local and remote candidates, anonymize the last 4 bits.
101
+ if (data.type === 'local-candidate' || data.type === 'remote-candidate') {
102
+ data.ip = _internalPluginMetrics.CallDiagnosticUtils.anonymizeIPAddress(data.ip) || undefined;
103
+ data.address = _internalPluginMetrics.CallDiagnosticUtils.anonymizeIPAddress(data.address) || undefined;
104
+ data.relatedAddress = _internalPluginMetrics.CallDiagnosticUtils.anonymizeIPAddress(data.relatedAddress) || undefined;
105
+ }
106
+ return (0, _stringify.default)(data);
107
+ }
108
+
109
+ /**
110
+ * Send metrics to the metrics service.
111
+ *
112
+ * @returns {void}
113
+ */
114
+ }, {
115
+ key: "sendMetrics",
116
+ value: function sendMetrics() {
117
+ this.webex.request({
118
+ method: 'POST',
119
+ service: 'unifiedTelemetry',
120
+ resource: 'metric/v2',
121
+ headers: {
122
+ type: 'webrtcMedia',
123
+ appId: _constants.default.APP_ID
124
+ },
125
+ body: {
126
+ metrics: [{
127
+ type: 'webrtc',
128
+ version: '1.0.1',
129
+ userId: this.webex.internal.device.userId,
130
+ meetingId: this.meetingId,
131
+ correlationId: this.correlationId,
132
+ data: this.metricsQueue
133
+ }]
134
+ }
135
+ });
136
+ }
137
+ }]);
138
+ return RtcMetrics;
139
+ }();
140
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_internalPluginMetrics","require","_constants","_interopRequireDefault","RtcMetrics","exports","default","webex","meetingId","correlationId","_classCallCheck2","_defineProperty2","intervalId","window","setInterval","sendMetricsInQueue","bind","setTimeout","_createClass2","key","value","metricsQueue","length","sendMetrics","addMetrics","data","payload","name","map","anonymizeIp","push","closeMetrics","clearInterval","stats","JSON","parse","type","ip","CallDiagnosticUtils","anonymizeIPAddress","undefined","address","relatedAddress","_stringify","request","method","service","resource","headers","appId","RTC_METRICS","APP_ID","body","metrics","version","userId","internal","device"],"sources":["index.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport {CallDiagnosticUtils} from '@webex/internal-plugin-metrics';\nimport RTC_METRICS from './constants';\n\n/**\n * Rtc Metrics\n */\nexport default class RtcMetrics {\n /**\n * Array of MetricData items to be sent to the metrics service.\n */\n metricsQueue = [];\n\n intervalId: number;\n\n webex: any;\n\n meetingId: string;\n\n correlationId: string;\n\n /**\n * Initialize the interval.\n *\n * @param {object} webex - The main `webex` object.\n * @param {string} meetingId - The meeting id.\n * @param {string} correlationId - The correlation id.\n */\n constructor(webex, meetingId, correlationId) {\n // `window` is used to prevent typescript from returning a NodeJS.Timer.\n this.intervalId = window.setInterval(this.sendMetricsInQueue.bind(this), 30 * 1000);\n this.meetingId = meetingId;\n this.webex = webex;\n this.correlationId = correlationId;\n // Send the first set of metrics at 5 seconds in the case of a user leaving the call shortly after joining.\n setTimeout(this.sendMetricsInQueue.bind(this), 5 * 1000);\n }\n\n /**\n * Check to see if the metrics queue has any items.\n *\n * @returns {void}\n */\n public sendMetricsInQueue() {\n if (this.metricsQueue.length) {\n this.sendMetrics();\n this.metricsQueue = [];\n }\n }\n\n /**\n * Add metrics items to the metrics queue.\n *\n * @param {object} data - An object with a payload array of metrics items.\n *\n * @returns {void}\n */\n addMetrics(data) {\n if (data.payload.length) {\n if (data.name === 'stats-report') {\n data.payload = data.payload.map(this.anonymizeIp);\n }\n this.metricsQueue.push(data);\n }\n }\n\n /**\n * Clear the metrics interval.\n *\n * @returns {void}\n */\n closeMetrics() {\n this.sendMetricsInQueue();\n clearInterval(this.intervalId);\n }\n\n /**\n * Anonymize IP addresses.\n *\n * @param {array} stats - An RTCStatsReport organized into an array of strings.\n * @returns {string}\n */\n anonymizeIp(stats: string): string {\n const data = JSON.parse(stats);\n // on local and remote candidates, anonymize the last 4 bits.\n if (data.type === 'local-candidate' || data.type === 'remote-candidate') {\n data.ip = CallDiagnosticUtils.anonymizeIPAddress(data.ip) || undefined;\n data.address = CallDiagnosticUtils.anonymizeIPAddress(data.address) || undefined;\n data.relatedAddress =\n CallDiagnosticUtils.anonymizeIPAddress(data.relatedAddress) || undefined;\n }\n\n return JSON.stringify(data);\n }\n\n /**\n * Send metrics to the metrics service.\n *\n * @returns {void}\n */\n private sendMetrics() {\n this.webex.request({\n method: 'POST',\n service: 'unifiedTelemetry',\n resource: 'metric/v2',\n headers: {\n type: 'webrtcMedia',\n appId: RTC_METRICS.APP_ID,\n },\n body: {\n metrics: [\n {\n type: 'webrtc',\n version: '1.0.1',\n userId: this.webex.internal.device.userId,\n meetingId: this.meetingId,\n correlationId: this.correlationId,\n data: this.metricsQueue,\n },\n ],\n },\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;AACA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAFA;AAIA;AACA;AACA;AAFA,IAGqBG,UAAU,GAAAC,OAAA,CAAAC,OAAA;EAc7B;AACF;AACA;AACA;AACA;AACA;AACA;EACE,SAAAF,WAAYG,KAAK,EAAEC,SAAS,EAAEC,aAAa,EAAE;IAAA,IAAAC,gBAAA,CAAAJ,OAAA,QAAAF,UAAA;IApB7C;AACF;AACA;IAFE,IAAAO,gBAAA,CAAAL,OAAA,wBAGe,EAAE;IAAA,IAAAK,gBAAA,CAAAL,OAAA;IAAA,IAAAK,gBAAA,CAAAL,OAAA;IAAA,IAAAK,gBAAA,CAAAL,OAAA;IAAA,IAAAK,gBAAA,CAAAL,OAAA;IAkBf;IACA,IAAI,CAACM,UAAU,GAAGC,MAAM,CAACC,WAAW,CAAC,IAAI,CAACC,kBAAkB,CAACC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;IACnF,IAAI,CAACR,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACD,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACE,aAAa,GAAGA,aAAa;IAClC;IACAQ,UAAU,CAAC,IAAI,CAACF,kBAAkB,CAACC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;EAC1D;;EAEA;AACF;AACA;AACA;AACA;EAJE,IAAAE,aAAA,CAAAZ,OAAA,EAAAF,UAAA;IAAAe,GAAA;IAAAC,KAAA,EAKA,SAAAL,mBAAA,EAA4B;MAC1B,IAAI,IAAI,CAACM,YAAY,CAACC,MAAM,EAAE;QAC5B,IAAI,CAACC,WAAW,CAAC,CAAC;QAClB,IAAI,CAACF,YAAY,GAAG,EAAE;MACxB;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAAF,GAAA;IAAAC,KAAA,EAOA,SAAAI,WAAWC,IAAI,EAAE;MACf,IAAIA,IAAI,CAACC,OAAO,CAACJ,MAAM,EAAE;QACvB,IAAIG,IAAI,CAACE,IAAI,KAAK,cAAc,EAAE;UAChCF,IAAI,CAACC,OAAO,GAAGD,IAAI,CAACC,OAAO,CAACE,GAAG,CAAC,IAAI,CAACC,WAAW,CAAC;QACnD;QACA,IAAI,CAACR,YAAY,CAACS,IAAI,CAACL,IAAI,CAAC;MAC9B;IACF;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAN,GAAA;IAAAC,KAAA,EAKA,SAAAW,aAAA,EAAe;MACb,IAAI,CAAChB,kBAAkB,CAAC,CAAC;MACzBiB,aAAa,CAAC,IAAI,CAACpB,UAAU,CAAC;IAChC;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAO,GAAA;IAAAC,KAAA,EAMA,SAAAS,YAAYI,KAAa,EAAU;MACjC,IAAMR,IAAI,GAAGS,IAAI,CAACC,KAAK,CAACF,KAAK,CAAC;MAC9B;MACA,IAAIR,IAAI,CAACW,IAAI,KAAK,iBAAiB,IAAIX,IAAI,CAACW,IAAI,KAAK,kBAAkB,EAAE;QACvEX,IAAI,CAACY,EAAE,GAAGC,0CAAmB,CAACC,kBAAkB,CAACd,IAAI,CAACY,EAAE,CAAC,IAAIG,SAAS;QACtEf,IAAI,CAACgB,OAAO,GAAGH,0CAAmB,CAACC,kBAAkB,CAACd,IAAI,CAACgB,OAAO,CAAC,IAAID,SAAS;QAChFf,IAAI,CAACiB,cAAc,GACjBJ,0CAAmB,CAACC,kBAAkB,CAACd,IAAI,CAACiB,cAAc,CAAC,IAAIF,SAAS;MAC5E;MAEA,OAAO,IAAAG,UAAA,CAAArC,OAAA,EAAemB,IAAI,CAAC;IAC7B;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAN,GAAA;IAAAC,KAAA,EAKA,SAAAG,YAAA,EAAsB;MACpB,IAAI,CAAChB,KAAK,CAACqC,OAAO,CAAC;QACjBC,MAAM,EAAE,MAAM;QACdC,OAAO,EAAE,kBAAkB;QAC3BC,QAAQ,EAAE,WAAW;QACrBC,OAAO,EAAE;UACPZ,IAAI,EAAE,aAAa;UACnBa,KAAK,EAAEC,kBAAW,CAACC;QACrB,CAAC;QACDC,IAAI,EAAE;UACJC,OAAO,EAAE,CACP;YACEjB,IAAI,EAAE,QAAQ;YACdkB,OAAO,EAAE,OAAO;YAChBC,MAAM,EAAE,IAAI,CAAChD,KAAK,CAACiD,QAAQ,CAACC,MAAM,CAACF,MAAM;YACzC/C,SAAS,EAAE,IAAI,CAACA,SAAS;YACzBC,aAAa,EAAE,IAAI,CAACA,aAAa;YACjCgB,IAAI,EAAE,IAAI,CAACJ;UACb,CAAC;QAEL;MACF,CAAC,CAAC;IACJ;EAAC;EAAA,OAAAjB,UAAA;AAAA"}
@@ -1,52 +1,5 @@
1
1
  declare const STATS_DEFAULT: {
2
2
  encryption: string;
3
- audio: {
4
- send: {
5
- maxPacketLossRatio: number;
6
- availableBandwidth: number;
7
- bytesSent: number;
8
- meanRemoteJitter: any[];
9
- meanRoundTripTime: any[];
10
- };
11
- recv: {
12
- availableBandwidth: number;
13
- bytesReceived: number;
14
- meanRtpJitter: any[];
15
- meanRoundTripTime: any[];
16
- };
17
- };
18
- video: {
19
- send: {
20
- maxPacketLossRatio: number;
21
- availableBandwidth: number;
22
- meanRemoteJitter: any[];
23
- meanRoundTripTime: any[];
24
- };
25
- recv: {
26
- availableBandwidth: number;
27
- totalPacketsLost: number;
28
- meanRtpJitter: any[];
29
- meanRoundTripTime: any[];
30
- };
31
- latency: number;
32
- packetsLost: number;
33
- };
34
- share: {
35
- send: {
36
- maxPacketLossRatio: number;
37
- availableBandwidth: number;
38
- totalPacketsLost: number;
39
- meanRemoteJitter: any[];
40
- meanRoundTripTime: any[];
41
- };
42
- recv: {
43
- availableBandwidth: number;
44
- meanRtpJitter: any[];
45
- meanRoundTripTime: any[];
46
- };
47
- latency: number;
48
- packetsLost: number;
49
- };
50
3
  bandwidth: {
51
4
  systemBandwidth: number;
52
5
  sentPerSecond: number;
@@ -74,43 +27,8 @@ declare const STATS_DEFAULT: {
74
27
  networkType: any[];
75
28
  };
76
29
  };
77
- resolutions: {
78
- video: {
79
- send: {
80
- width: number;
81
- height: number;
82
- framesSent: number;
83
- };
84
- recv: {
85
- width: number;
86
- height: number;
87
- };
88
- };
89
- share: {
90
- send: {
91
- width: number;
92
- height: number;
93
- framesSent: number;
94
- };
95
- recv: {
96
- width: number;
97
- height: number;
98
- };
99
- };
100
- };
30
+ resolutions: {};
101
31
  internal: {
102
- audio: {
103
- send: {};
104
- recv: {};
105
- };
106
- video: {
107
- send: {};
108
- recv: {};
109
- };
110
- share: {
111
- send: {};
112
- recv: {};
113
- };
114
32
  remote: {};
115
33
  candidates: {};
116
34
  };
@@ -7,53 +7,6 @@ _Object$defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var STATS_DEFAULT = {
9
9
  encryption: 'sha-256',
10
- audio: {
11
- send: {
12
- maxPacketLossRatio: 0,
13
- availableBandwidth: 0,
14
- bytesSent: 0,
15
- meanRemoteJitter: [],
16
- meanRoundTripTime: []
17
- },
18
- recv: {
19
- availableBandwidth: 0,
20
- bytesReceived: 0,
21
- meanRtpJitter: [],
22
- meanRoundTripTime: []
23
- }
24
- },
25
- video: {
26
- send: {
27
- maxPacketLossRatio: 0,
28
- availableBandwidth: 0,
29
- meanRemoteJitter: [],
30
- meanRoundTripTime: []
31
- },
32
- recv: {
33
- availableBandwidth: 0,
34
- totalPacketsLost: 0,
35
- meanRtpJitter: [],
36
- meanRoundTripTime: []
37
- },
38
- latency: 0,
39
- packetsLost: 0
40
- },
41
- share: {
42
- send: {
43
- maxPacketLossRatio: 0,
44
- availableBandwidth: 0,
45
- totalPacketsLost: 0,
46
- meanRemoteJitter: [],
47
- meanRoundTripTime: []
48
- },
49
- recv: {
50
- availableBandwidth: 0,
51
- meanRtpJitter: [],
52
- meanRoundTripTime: []
53
- },
54
- latency: 0,
55
- packetsLost: 0
56
- },
57
10
  bandwidth: {
58
11
  systemBandwidth: 0,
59
12
  sentPerSecond: 0,
@@ -81,47 +34,11 @@ var STATS_DEFAULT = {
81
34
  networkType: []
82
35
  }
83
36
  },
84
- resolutions: {
85
- video: {
86
- send: {
87
- width: 0,
88
- height: 0,
89
- framesSent: 0
90
- },
91
- recv: {
92
- width: 0,
93
- height: 0
94
- }
95
- },
96
- share: {
97
- send: {
98
- width: 0,
99
- height: 0,
100
- framesSent: 0
101
- },
102
- recv: {
103
- width: 0,
104
- height: 0
105
- }
106
- }
107
- },
37
+ resolutions: {},
108
38
  internal: {
109
- audio: {
110
- send: {},
111
- recv: {}
112
- },
113
- video: {
114
- send: {},
115
- recv: {}
116
- },
117
- share: {
118
- send: {},
119
- recv: {}
120
- },
121
39
  remote: {},
122
40
  candidates: {}
123
41
  }
124
42
  };
125
- var _default = STATS_DEFAULT;
126
- exports.default = _default;
43
+ var _default = exports.default = STATS_DEFAULT;
127
44
  //# sourceMappingURL=global.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["STATS_DEFAULT","encryption","audio","send","maxPacketLossRatio","availableBandwidth","bytesSent","meanRemoteJitter","meanRoundTripTime","recv","bytesReceived","meanRtpJitter","video","totalPacketsLost","latency","packetsLost","share","bandwidth","systemBandwidth","sentPerSecond","encodedPerSecond","helper","audioBytesSent","videoBytestSent","speed","results","connectionType","systemNetworkType","systemIpAddress","local","candidateType","transport","ipAddress","networkType","remote","resolutions","width","height","framesSent","internal","candidates","_default","exports","default"],"sources":["global.ts"],"sourcesContent":["const STATS_DEFAULT = {\n encryption: 'sha-256',\n audio: {\n send: {\n maxPacketLossRatio: 0,\n availableBandwidth: 0,\n bytesSent: 0,\n meanRemoteJitter: [],\n meanRoundTripTime: [],\n },\n recv: {\n availableBandwidth: 0,\n bytesReceived: 0,\n meanRtpJitter: [],\n meanRoundTripTime: [],\n },\n },\n video: {\n send: {\n maxPacketLossRatio: 0,\n availableBandwidth: 0,\n meanRemoteJitter: [],\n meanRoundTripTime: [],\n },\n recv: {\n availableBandwidth: 0,\n totalPacketsLost: 0,\n meanRtpJitter: [],\n meanRoundTripTime: [],\n },\n latency: 0,\n packetsLost: 0,\n },\n share: {\n send: {\n maxPacketLossRatio: 0,\n availableBandwidth: 0,\n totalPacketsLost: 0,\n meanRemoteJitter: [],\n meanRoundTripTime: [],\n },\n recv: {\n availableBandwidth: 0,\n meanRtpJitter: [],\n meanRoundTripTime: [],\n },\n\n latency: 0,\n packetsLost: 0,\n },\n bandwidth: {\n systemBandwidth: 0,\n sentPerSecond: 0,\n encodedPerSecond: 0,\n helper: {\n audioBytesSent: 0,\n videoBytestSent: 0,\n },\n speed: 0,\n },\n results: {},\n connectionType: {\n systemNetworkType: 'unknown',\n systemIpAddress: '0.0.0.0',\n local: {\n candidateType: [],\n transport: [],\n ipAddress: [],\n networkType: [],\n },\n remote: {\n candidateType: [],\n transport: [],\n ipAddress: [],\n networkType: [],\n },\n },\n resolutions: {\n video: {\n send: {\n width: 0,\n height: 0,\n framesSent: 0,\n },\n recv: {\n width: 0,\n height: 0,\n },\n },\n share: {\n send: {\n width: 0,\n height: 0,\n framesSent: 0,\n },\n recv: {\n width: 0,\n height: 0,\n },\n },\n },\n internal: {\n audio: {\n send: {},\n recv: {},\n },\n video: {\n send: {},\n recv: {},\n },\n share: {\n send: {},\n recv: {},\n },\n remote: {},\n candidates: {},\n },\n};\n\nexport default STATS_DEFAULT;\n"],"mappings":"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"}
1
+ {"version":3,"names":["STATS_DEFAULT","encryption","bandwidth","systemBandwidth","sentPerSecond","encodedPerSecond","helper","audioBytesSent","videoBytestSent","speed","results","connectionType","systemNetworkType","systemIpAddress","local","candidateType","transport","ipAddress","networkType","remote","resolutions","internal","candidates","_default","exports","default"],"sources":["global.ts"],"sourcesContent":["const STATS_DEFAULT = {\n encryption: 'sha-256',\n bandwidth: {\n systemBandwidth: 0,\n sentPerSecond: 0,\n encodedPerSecond: 0,\n helper: {\n audioBytesSent: 0,\n videoBytestSent: 0,\n },\n speed: 0,\n },\n results: {},\n connectionType: {\n systemNetworkType: 'unknown',\n systemIpAddress: '0.0.0.0',\n local: {\n candidateType: [],\n transport: [],\n ipAddress: [],\n networkType: [],\n },\n remote: {\n candidateType: [],\n transport: [],\n ipAddress: [],\n networkType: [],\n },\n },\n resolutions: {},\n internal: {\n remote: {},\n candidates: {},\n },\n};\n\nexport default STATS_DEFAULT;\n"],"mappings":";;;;;;;AAAA,IAAMA,aAAa,GAAG;EACpBC,UAAU,EAAE,SAAS;EACrBC,SAAS,EAAE;IACTC,eAAe,EAAE,CAAC;IAClBC,aAAa,EAAE,CAAC;IAChBC,gBAAgB,EAAE,CAAC;IACnBC,MAAM,EAAE;MACNC,cAAc,EAAE,CAAC;MACjBC,eAAe,EAAE;IACnB,CAAC;IACDC,KAAK,EAAE;EACT,CAAC;EACDC,OAAO,EAAE,CAAC,CAAC;EACXC,cAAc,EAAE;IACdC,iBAAiB,EAAE,SAAS;IAC5BC,eAAe,EAAE,SAAS;IAC1BC,KAAK,EAAE;MACLC,aAAa,EAAE,EAAE;MACjBC,SAAS,EAAE,EAAE;MACbC,SAAS,EAAE,EAAE;MACbC,WAAW,EAAE;IACf,CAAC;IACDC,MAAM,EAAE;MACNJ,aAAa,EAAE,EAAE;MACjBC,SAAS,EAAE,EAAE;MACbC,SAAS,EAAE,EAAE;MACbC,WAAW,EAAE;IACf;EACF,CAAC;EACDE,WAAW,EAAE,CAAC,CAAC;EACfC,QAAQ,EAAE;IACRF,MAAM,EAAE,CAAC,CAAC;IACVG,UAAU,EAAE,CAAC;EACf;AACF,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEazB,aAAa"}
@@ -1,14 +1,14 @@
1
1
  /// <reference types="node" />
2
2
  import EventsScope from '../common/events/events-scope';
3
+ import { ReceiveSlot } from '../multistream/receiveSlot';
3
4
  export declare const EVENTS: {
4
5
  MEDIA_QUALITY: string;
5
- NO_FRAMES_SENT: string;
6
- NO_VIDEO_ENCODED: string;
7
6
  LOCAL_MEDIA_STARTED: string;
8
7
  LOCAL_MEDIA_STOPPED: string;
9
8
  REMOTE_MEDIA_STARTED: string;
10
9
  REMOTE_MEDIA_STOPPED: string;
11
10
  };
11
+ type ReceiveSlotCallback = (csi: number) => ReceiveSlot | undefined;
12
12
  /**
13
13
  * Stats Analyzer class that will emit events based on detected quality
14
14
  *
@@ -22,25 +22,34 @@ export declare class StatsAnalyzer extends EventsScope {
22
22
  lastEmittedStartStopEvent: any;
23
23
  lastMqaDataSent: any;
24
24
  lastStatsResults: any;
25
- localMQEStats: any;
26
25
  meetingMediaStatus: any;
27
26
  mqaInterval: NodeJS.Timeout;
28
27
  mqaSentCount: any;
29
28
  networkQualityMonitor: any;
30
- peerConnection: any;
29
+ mediaConnection: any;
31
30
  statsInterval: NodeJS.Timeout;
32
31
  statsResults: any;
33
32
  statsStarted: any;
33
+ successfulCandidatePair: any;
34
+ localIpAddress: string;
35
+ receiveSlotCallback: ReceiveSlotCallback;
34
36
  /**
35
37
  * Creates a new instance of StatsAnalyzer
36
38
  * @constructor
37
39
  * @public
38
40
  * @param {Object} config SDK Configuration Object
41
+ * @param {Function} receiveSlotCallback Callback used to access receive slots.
39
42
  * @param {Object} networkQualityMonitor class for assessing network characteristics (jitter, packetLoss, latency)
40
43
  * @param {Object} statsResults Default properties for stats
41
44
  */
42
- constructor(config: any, networkQualityMonitor?: object, statsResults?: object);
43
- populateResults(lastMqa: any): void;
45
+ constructor(config: any, receiveSlotCallback?: ReceiveSlotCallback, networkQualityMonitor?: object, statsResults?: object);
46
+ /**
47
+ * Resets cumulative stats arrays.
48
+ *
49
+ * @public
50
+ * @memberof StatsAnalyzer
51
+ * @returns {void}
52
+ */
44
53
  resetStatsResults(): void;
45
54
  /**
46
55
  * sets mediaStatus status for analyzing metrics
@@ -52,7 +61,7 @@ export declare class StatsAnalyzer extends EventsScope {
52
61
  */
53
62
  updateMediaStatus(status: object): void;
54
63
  /**
55
- * captures MQA data from peerconnection
64
+ * captures MQA data from media connection
56
65
  *
57
66
  * @public
58
67
  * @memberof StatsAnalyzer
@@ -60,23 +69,30 @@ export declare class StatsAnalyzer extends EventsScope {
60
69
  */
61
70
  sendMqaData(): void;
62
71
  /**
63
- * updated the peerconnection when changed
72
+ * updated the media connection when changed
64
73
  *
65
74
  * @private
66
- * @memberof updatePeerconnection
67
- * @param {PeerConnection} peerConnection
75
+ * @memberof StatsAnalyzer
76
+ * @param {RoapMediaConnection} mediaConnection
68
77
  * @returns {void}
69
78
  */
70
- updatePeerconnection(peerConnection: any): void;
79
+ updateMediaConnection(mediaConnection: any): void;
80
+ /**
81
+ * Returns the local IP address for diagnostics.
82
+ * this is the local IP of the interface used for the current media connection
83
+ * a host can have many local Ip Addresses
84
+ * @returns {string | undefined} The local IP address.
85
+ */
86
+ getLocalIpAddress(): string;
71
87
  /**
72
88
  * Starts the stats analyzer on interval
73
89
  *
74
90
  * @public
75
91
  * @memberof StatsAnalyzer
76
- * @param {PeerConnection} peerConnection
92
+ * @param {RoapMediaConnection} mediaConnection
77
93
  * @returns {Promise}
78
94
  */
79
- startAnalyzer(peerConnection: any): Promise<void>;
95
+ startAnalyzer(mediaConnection: any): any;
80
96
  /**
81
97
  * Cleans up the analyzer when done
82
98
  *
@@ -84,7 +100,7 @@ export declare class StatsAnalyzer extends EventsScope {
84
100
  * @memberof StatsAnalyzer
85
101
  * @returns {void}
86
102
  */
87
- stopAnalyzer(): Promise<void>;
103
+ stopAnalyzer(): any;
88
104
  /**
89
105
  * Parse a single result of get stats
90
106
  *
@@ -99,12 +115,12 @@ export declare class StatsAnalyzer extends EventsScope {
99
115
  /**
100
116
  * Filters the get stats results for types
101
117
  * @private
102
- * @param {Array} getStatsResults
118
+ * @param {Array} statsItem
103
119
  * @param {String} type
104
120
  * @param {boolean} isSender
105
121
  * @returns {void}
106
122
  */
107
- private filterAndParseGetStatsResults;
123
+ filterAndParseGetStatsResults(statsItem: any, type: string, isSender: boolean): void;
108
124
  /**
109
125
  * parse the audio
110
126
  * @param {String} result
@@ -147,7 +163,7 @@ export declare class StatsAnalyzer extends EventsScope {
147
163
  * Processes OutboundRTP stats result and stores
148
164
  * @private
149
165
  * @param {*} result
150
- * @param {*} type
166
+ * @param {*} mediaType
151
167
  * @returns {void}
152
168
  */
153
169
  private processOutboundRTPResult;
@@ -155,10 +171,24 @@ export declare class StatsAnalyzer extends EventsScope {
155
171
  * Processes InboundRTP stats result and stores
156
172
  * @private
157
173
  * @param {*} result
158
- * @param {*} type
174
+ * @param {*} mediaType
159
175
  * @returns {void}
160
176
  */
161
177
  private processInboundRTPResult;
178
+ /**
179
+ * extracts the local Ip address from the statsResult object by looking at stats results candidates
180
+ * and matches that ID with the successful candidate pair. It looks at the type of local candidate it is
181
+ * and then extracts the IP address from the relatedAddress or address property based on conditions known in webrtc
182
+ * note, there are known incompatibilities and it is possible for this to set undefined, or for the IP address to be the public IP address
183
+ * for example, firefox does not set the relayProtocol, and if the user is behind a NAT it might be the public IP
184
+ * @private
185
+ * @param {string} successfulCandidatePairId - The ID of the successful candidate pair.
186
+ * @param {Object} candidates - the stats result candidates
187
+ * @returns {void}
188
+ */
189
+ extractAndSetLocalIpAddressInfoForDiagnostics: (successfulCandidatePairId: string, candidates: {
190
+ [key: string]: Record<string, unknown>;
191
+ }) => void;
162
192
  /**
163
193
  * Processes remote and local candidate result and stores
164
194
  * @private
@@ -170,17 +200,6 @@ export declare class StatsAnalyzer extends EventsScope {
170
200
  * @returns {void}
171
201
  */
172
202
  parseCandidate: (result: any, type: any, isSender: boolean, isRemote: boolean) => void;
173
- /**
174
- * Process Track results
175
- *
176
- * @private
177
- * @param {*} result
178
- * @param {*} mediaType
179
- * @param {*} sendrecvType
180
- * @returns {void}
181
- * @memberof StatsAnalyzer
182
- */
183
- private processTrackResult;
184
203
  /**
185
204
  *
186
205
  * @private
@@ -189,5 +208,6 @@ export declare class StatsAnalyzer extends EventsScope {
189
208
  * @returns {void}
190
209
  * @memberof StatsAnalyzer
191
210
  */
192
- private compareSentAndReceived;
211
+ compareSentAndReceived(result: any, type: any): void;
193
212
  }
213
+ export {};