@webex/plugin-meetings 3.0.0-beta.2 → 3.0.0-beta.200

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 (576) hide show
  1. package/README.md +45 -7
  2. package/UPGRADING.md +9 -9
  3. package/browsers.js +19 -24
  4. package/dist/annotation/annotation.types.js +7 -0
  5. package/dist/annotation/annotation.types.js.map +1 -0
  6. package/dist/annotation/constants.js +49 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.js +342 -0
  9. package/dist/annotation/index.js.map +1 -0
  10. package/dist/breakouts/breakout.js +216 -0
  11. package/dist/breakouts/breakout.js.map +1 -0
  12. package/dist/breakouts/collection.js +23 -0
  13. package/dist/breakouts/collection.js.map +1 -0
  14. package/dist/breakouts/edit-lock-error.js +52 -0
  15. package/dist/breakouts/edit-lock-error.js.map +1 -0
  16. package/dist/breakouts/events.js +45 -0
  17. package/dist/breakouts/events.js.map +1 -0
  18. package/dist/breakouts/index.js +1048 -0
  19. package/dist/breakouts/index.js.map +1 -0
  20. package/dist/breakouts/request.js +78 -0
  21. package/dist/breakouts/request.js.map +1 -0
  22. package/dist/breakouts/utils.js +67 -0
  23. package/dist/breakouts/utils.js.map +1 -0
  24. package/dist/common/browser-detection.js +1 -20
  25. package/dist/common/browser-detection.js.map +1 -1
  26. package/dist/common/collection.js +5 -20
  27. package/dist/common/collection.js.map +1 -1
  28. package/dist/common/config.js +0 -7
  29. package/dist/common/config.js.map +1 -1
  30. package/dist/common/errors/captcha-error.js +10 -24
  31. package/dist/common/errors/captcha-error.js.map +1 -1
  32. package/dist/common/errors/intent-to-join.js +11 -24
  33. package/dist/common/errors/intent-to-join.js.map +1 -1
  34. package/dist/common/errors/join-meeting.js +12 -25
  35. package/dist/common/errors/join-meeting.js.map +1 -1
  36. package/dist/common/errors/media.js +10 -24
  37. package/dist/common/errors/media.js.map +1 -1
  38. package/dist/common/errors/parameter.js +5 -33
  39. package/dist/common/errors/parameter.js.map +1 -1
  40. package/dist/common/errors/password-error.js +10 -24
  41. package/dist/common/errors/password-error.js.map +1 -1
  42. package/dist/common/errors/permission.js +9 -23
  43. package/dist/common/errors/permission.js.map +1 -1
  44. package/dist/common/errors/reconnection-in-progress.js +0 -17
  45. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  46. package/dist/common/errors/reconnection.js +10 -24
  47. package/dist/common/errors/reconnection.js.map +1 -1
  48. package/dist/common/errors/stats.js +10 -24
  49. package/dist/common/errors/stats.js.map +1 -1
  50. package/dist/common/errors/webex-errors.js +9 -43
  51. package/dist/common/errors/webex-errors.js.map +1 -1
  52. package/dist/common/errors/webex-meetings-error.js +5 -25
  53. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  54. package/dist/common/events/events-scope.js +0 -22
  55. package/dist/common/events/events-scope.js.map +1 -1
  56. package/dist/common/events/events.js +0 -23
  57. package/dist/common/events/events.js.map +1 -1
  58. package/dist/common/events/trigger-proxy.js +0 -12
  59. package/dist/common/events/trigger-proxy.js.map +1 -1
  60. package/dist/common/events/util.js +0 -15
  61. package/dist/common/events/util.js.map +1 -1
  62. package/dist/common/logs/logger-config.js +0 -4
  63. package/dist/common/logs/logger-config.js.map +1 -1
  64. package/dist/common/logs/logger-proxy.js +1 -8
  65. package/dist/common/logs/logger-proxy.js.map +1 -1
  66. package/dist/common/logs/request.js +37 -60
  67. package/dist/common/logs/request.js.map +1 -1
  68. package/dist/common/queue.js +28 -23
  69. package/dist/common/queue.js.map +1 -1
  70. package/dist/config.js +8 -13
  71. package/dist/config.js.map +1 -1
  72. package/dist/constants.js +250 -66
  73. package/dist/constants.js.map +1 -1
  74. package/dist/controls-options-manager/constants.js +14 -0
  75. package/dist/controls-options-manager/constants.js.map +1 -0
  76. package/dist/controls-options-manager/enums.js +27 -0
  77. package/dist/controls-options-manager/enums.js.map +1 -0
  78. package/dist/controls-options-manager/index.js +297 -0
  79. package/dist/controls-options-manager/index.js.map +1 -0
  80. package/dist/controls-options-manager/types.js +7 -0
  81. package/dist/controls-options-manager/types.js.map +1 -0
  82. package/dist/controls-options-manager/util.js +319 -0
  83. package/dist/controls-options-manager/util.js.map +1 -0
  84. package/dist/index.js +108 -17
  85. package/dist/index.js.map +1 -1
  86. package/dist/interpretation/collection.js +23 -0
  87. package/dist/interpretation/collection.js.map +1 -0
  88. package/dist/interpretation/index.js +366 -0
  89. package/dist/interpretation/index.js.map +1 -0
  90. package/dist/interpretation/siLanguage.js +25 -0
  91. package/dist/interpretation/siLanguage.js.map +1 -0
  92. package/dist/locus-info/controlsUtils.js +101 -29
  93. package/dist/locus-info/controlsUtils.js.map +1 -1
  94. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  95. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  96. package/dist/locus-info/fullState.js +0 -15
  97. package/dist/locus-info/fullState.js.map +1 -1
  98. package/dist/locus-info/hostUtils.js +4 -12
  99. package/dist/locus-info/hostUtils.js.map +1 -1
  100. package/dist/locus-info/index.js +532 -240
  101. package/dist/locus-info/index.js.map +1 -1
  102. package/dist/locus-info/infoUtils.js +3 -37
  103. package/dist/locus-info/infoUtils.js.map +1 -1
  104. package/dist/locus-info/mediaSharesUtils.js +54 -38
  105. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  106. package/dist/locus-info/parser.js +284 -154
  107. package/dist/locus-info/parser.js.map +1 -1
  108. package/dist/locus-info/selfUtils.js +110 -92
  109. package/dist/locus-info/selfUtils.js.map +1 -1
  110. package/dist/media/index.js +95 -226
  111. package/dist/media/index.js.map +1 -1
  112. package/dist/media/properties.js +99 -194
  113. package/dist/media/properties.js.map +1 -1
  114. package/dist/media/util.js +2 -9
  115. package/dist/media/util.js.map +1 -1
  116. package/dist/mediaQualityMetrics/config.js +505 -495
  117. package/dist/mediaQualityMetrics/config.js.map +1 -1
  118. package/dist/meeting/in-meeting-actions.js +83 -14
  119. package/dist/meeting/in-meeting-actions.js.map +1 -1
  120. package/dist/meeting/index.js +3478 -3563
  121. package/dist/meeting/index.js.map +1 -1
  122. package/dist/meeting/locusMediaRequest.js +291 -0
  123. package/dist/meeting/locusMediaRequest.js.map +1 -0
  124. package/dist/meeting/muteState.js +247 -183
  125. package/dist/meeting/muteState.js.map +1 -1
  126. package/dist/meeting/request.js +344 -344
  127. package/dist/meeting/request.js.map +1 -1
  128. package/dist/meeting/request.type.js +7 -0
  129. package/dist/meeting/request.type.js.map +1 -0
  130. package/dist/meeting/state.js +21 -31
  131. package/dist/meeting/state.js.map +1 -1
  132. package/dist/meeting/util.js +529 -588
  133. package/dist/meeting/util.js.map +1 -1
  134. package/dist/meeting-info/collection.js +6 -25
  135. package/dist/meeting-info/collection.js.map +1 -1
  136. package/dist/meeting-info/index.js +62 -39
  137. package/dist/meeting-info/index.js.map +1 -1
  138. package/dist/meeting-info/meeting-info-v2.js +328 -283
  139. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  140. package/dist/meeting-info/request.js +3 -15
  141. package/dist/meeting-info/request.js.map +1 -1
  142. package/dist/meeting-info/util.js +98 -183
  143. package/dist/meeting-info/util.js.map +1 -1
  144. package/dist/meeting-info/utilv2.js +156 -232
  145. package/dist/meeting-info/utilv2.js.map +1 -1
  146. package/dist/meetings/collection.js +26 -19
  147. package/dist/meetings/collection.js.map +1 -1
  148. package/dist/meetings/index.js +795 -574
  149. package/dist/meetings/index.js.map +1 -1
  150. package/dist/meetings/meetings.types.js +7 -0
  151. package/dist/meetings/meetings.types.js.map +1 -0
  152. package/dist/meetings/request.js +26 -41
  153. package/dist/meetings/request.js.map +1 -1
  154. package/dist/meetings/util.js +186 -155
  155. package/dist/meetings/util.js.map +1 -1
  156. package/dist/member/index.js +126 -85
  157. package/dist/member/index.js.map +1 -1
  158. package/dist/member/types.js +25 -0
  159. package/dist/member/types.js.map +1 -0
  160. package/dist/member/util.js +147 -88
  161. package/dist/member/util.js.map +1 -1
  162. package/dist/members/collection.js +13 -12
  163. package/dist/members/collection.js.map +1 -1
  164. package/dist/members/index.js +178 -204
  165. package/dist/members/index.js.map +1 -1
  166. package/dist/members/request.js +113 -68
  167. package/dist/members/request.js.map +1 -1
  168. package/dist/members/types.js +15 -0
  169. package/dist/members/types.js.map +1 -0
  170. package/dist/members/util.js +314 -260
  171. package/dist/members/util.js.map +1 -1
  172. package/dist/metrics/constants.js +4 -7
  173. package/dist/metrics/constants.js.map +1 -1
  174. package/dist/metrics/index.js +11 -558
  175. package/dist/metrics/index.js.map +1 -1
  176. package/dist/multistream/mediaRequestManager.js +264 -50
  177. package/dist/multistream/mediaRequestManager.js.map +1 -1
  178. package/dist/multistream/receiveSlot.js +58 -65
  179. package/dist/multistream/receiveSlot.js.map +1 -1
  180. package/dist/multistream/receiveSlotManager.js +76 -95
  181. package/dist/multistream/receiveSlotManager.js.map +1 -1
  182. package/dist/multistream/remoteMedia.js +62 -76
  183. package/dist/multistream/remoteMedia.js.map +1 -1
  184. package/dist/multistream/remoteMediaGroup.js +66 -43
  185. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  186. package/dist/multistream/remoteMediaManager.js +502 -442
  187. package/dist/multistream/remoteMediaManager.js.map +1 -1
  188. package/dist/networkQualityMonitor/index.js +40 -59
  189. package/dist/networkQualityMonitor/index.js.map +1 -1
  190. package/dist/personal-meeting-room/index.js +21 -45
  191. package/dist/personal-meeting-room/index.js.map +1 -1
  192. package/dist/personal-meeting-room/request.js +1 -31
  193. package/dist/personal-meeting-room/request.js.map +1 -1
  194. package/dist/personal-meeting-room/util.js +0 -13
  195. package/dist/personal-meeting-room/util.js.map +1 -1
  196. package/dist/reachability/index.js +192 -191
  197. package/dist/reachability/index.js.map +1 -1
  198. package/dist/reachability/request.js +15 -23
  199. package/dist/reachability/request.js.map +1 -1
  200. package/dist/reactions/constants.js +13 -0
  201. package/dist/reactions/constants.js.map +1 -0
  202. package/dist/reactions/reactions.js +109 -0
  203. package/dist/reactions/reactions.js.map +1 -0
  204. package/dist/reactions/reactions.type.js +36 -0
  205. package/dist/reactions/reactions.type.js.map +1 -0
  206. package/dist/reconnection-manager/index.js +384 -476
  207. package/dist/reconnection-manager/index.js.map +1 -1
  208. package/dist/recording-controller/enums.js +17 -0
  209. package/dist/recording-controller/enums.js.map +1 -0
  210. package/dist/recording-controller/index.js +363 -0
  211. package/dist/recording-controller/index.js.map +1 -0
  212. package/dist/recording-controller/util.js +64 -0
  213. package/dist/recording-controller/util.js.map +1 -0
  214. package/dist/roap/index.js +58 -91
  215. package/dist/roap/index.js.map +1 -1
  216. package/dist/roap/request.js +137 -135
  217. package/dist/roap/request.js.map +1 -1
  218. package/dist/roap/turnDiscovery.js +148 -100
  219. package/dist/roap/turnDiscovery.js.map +1 -1
  220. package/dist/rtcMetrics/constants.js +12 -0
  221. package/dist/rtcMetrics/constants.js.map +1 -0
  222. package/dist/rtcMetrics/index.js +115 -0
  223. package/dist/rtcMetrics/index.js.map +1 -0
  224. package/dist/statsAnalyzer/global.js +1 -95
  225. package/dist/statsAnalyzer/global.js.map +1 -1
  226. package/dist/statsAnalyzer/index.js +385 -460
  227. package/dist/statsAnalyzer/index.js.map +1 -1
  228. package/dist/statsAnalyzer/mqaUtil.js +143 -87
  229. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  230. package/dist/transcription/index.js +22 -47
  231. package/dist/transcription/index.js.map +1 -1
  232. package/dist/types/annotation/annotation.types.d.ts +42 -0
  233. package/dist/types/annotation/constants.d.ts +31 -0
  234. package/dist/types/annotation/index.d.ts +117 -0
  235. package/dist/types/breakouts/breakout.d.ts +8 -0
  236. package/dist/types/breakouts/collection.d.ts +5 -0
  237. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  238. package/dist/types/breakouts/events.d.ts +8 -0
  239. package/dist/types/breakouts/index.d.ts +5 -0
  240. package/dist/types/breakouts/request.d.ts +22 -0
  241. package/dist/types/breakouts/utils.d.ts +15 -0
  242. package/dist/types/common/browser-detection.d.ts +9 -0
  243. package/dist/types/common/collection.d.ts +48 -0
  244. package/dist/types/common/config.d.ts +2 -0
  245. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  246. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  247. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  248. package/dist/types/common/errors/media.d.ts +15 -0
  249. package/dist/types/common/errors/parameter.d.ts +15 -0
  250. package/dist/types/common/errors/password-error.d.ts +15 -0
  251. package/dist/types/common/errors/permission.d.ts +14 -0
  252. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  253. package/dist/types/common/errors/reconnection.d.ts +15 -0
  254. package/dist/types/common/errors/stats.d.ts +15 -0
  255. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  256. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  257. package/dist/types/common/events/events-scope.d.ts +17 -0
  258. package/dist/types/common/events/events.d.ts +12 -0
  259. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  260. package/dist/types/common/events/util.d.ts +2 -0
  261. package/dist/types/common/logs/logger-config.d.ts +2 -0
  262. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  263. package/dist/types/common/logs/request.d.ts +34 -0
  264. package/dist/types/common/queue.d.ts +34 -0
  265. package/dist/types/config.d.ts +72 -0
  266. package/dist/types/constants.d.ts +1016 -0
  267. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  268. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  269. package/dist/types/controls-options-manager/index.d.ts +136 -0
  270. package/dist/types/controls-options-manager/types.d.ts +43 -0
  271. package/dist/types/controls-options-manager/util.d.ts +1 -0
  272. package/dist/types/index.d.ts +7 -0
  273. package/dist/types/interpretation/collection.d.ts +5 -0
  274. package/dist/types/interpretation/index.d.ts +5 -0
  275. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  276. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  277. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  278. package/dist/types/locus-info/fullState.d.ts +2 -0
  279. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  280. package/dist/types/locus-info/index.d.ts +322 -0
  281. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  282. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  283. package/dist/types/locus-info/parser.d.ts +271 -0
  284. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  285. package/dist/types/media/index.d.ts +34 -0
  286. package/dist/types/media/properties.d.ts +93 -0
  287. package/dist/types/media/util.d.ts +2 -0
  288. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  289. package/dist/types/meeting/in-meeting-actions.d.ts +153 -0
  290. package/dist/types/meeting/index.d.ts +1471 -0
  291. package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
  292. package/dist/types/meeting/muteState.d.ts +184 -0
  293. package/dist/types/meeting/request.d.ts +257 -0
  294. package/dist/types/meeting/request.type.d.ts +11 -0
  295. package/dist/types/meeting/state.d.ts +9 -0
  296. package/dist/types/meeting/util.d.ts +78 -0
  297. package/dist/types/meeting-info/collection.d.ts +20 -0
  298. package/dist/types/meeting-info/index.d.ts +62 -0
  299. package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
  300. package/dist/types/meeting-info/request.d.ts +22 -0
  301. package/dist/types/meeting-info/util.d.ts +2 -0
  302. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  303. package/dist/types/meetings/collection.d.ts +31 -0
  304. package/dist/types/meetings/index.d.ts +367 -0
  305. package/dist/types/meetings/meetings.types.d.ts +4 -0
  306. package/dist/types/meetings/request.d.ts +27 -0
  307. package/dist/types/meetings/util.d.ts +18 -0
  308. package/dist/types/member/index.d.ts +159 -0
  309. package/dist/types/member/types.d.ts +32 -0
  310. package/dist/types/member/util.d.ts +2 -0
  311. package/dist/types/members/collection.d.ts +29 -0
  312. package/dist/types/members/index.d.ts +353 -0
  313. package/dist/types/members/request.d.ts +114 -0
  314. package/dist/types/members/types.d.ts +24 -0
  315. package/dist/types/members/util.d.ts +210 -0
  316. package/dist/types/metrics/constants.d.ts +55 -0
  317. package/dist/types/metrics/index.d.ts +45 -0
  318. package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
  319. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  320. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  321. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  322. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  323. package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
  324. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  325. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  326. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  327. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  328. package/dist/types/reachability/index.d.ts +152 -0
  329. package/dist/types/reachability/request.d.ts +37 -0
  330. package/dist/types/reactions/constants.d.ts +3 -0
  331. package/dist/types/reactions/reactions.d.ts +4 -0
  332. package/dist/types/reactions/reactions.type.d.ts +52 -0
  333. package/dist/types/reconnection-manager/index.d.ts +126 -0
  334. package/dist/types/recording-controller/enums.d.ts +7 -0
  335. package/dist/types/recording-controller/index.d.ts +208 -0
  336. package/dist/types/recording-controller/util.d.ts +14 -0
  337. package/dist/types/roap/index.d.ts +77 -0
  338. package/dist/types/roap/request.d.ts +36 -0
  339. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  340. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  341. package/dist/types/rtcMetrics/index.d.ts +46 -0
  342. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  343. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  344. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  345. package/dist/types/transcription/index.d.ts +64 -0
  346. package/internal-README.md +7 -6
  347. package/package.json +29 -21
  348. package/src/annotation/annotation.types.ts +50 -0
  349. package/src/annotation/constants.ts +36 -0
  350. package/src/annotation/index.ts +328 -0
  351. package/src/breakouts/README.md +220 -0
  352. package/src/breakouts/breakout.ts +188 -0
  353. package/src/breakouts/collection.ts +19 -0
  354. package/src/breakouts/edit-lock-error.ts +25 -0
  355. package/src/breakouts/events.ts +56 -0
  356. package/src/breakouts/index.ts +925 -0
  357. package/src/breakouts/request.ts +55 -0
  358. package/src/breakouts/utils.ts +57 -0
  359. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  360. package/src/common/collection.ts +9 -7
  361. package/src/common/{config.js → config.ts} +1 -1
  362. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  363. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  364. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  365. package/src/common/errors/{media.js → media.ts} +11 -7
  366. package/src/common/errors/parameter.ts +11 -7
  367. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  368. package/src/common/errors/{permission.js → permission.ts} +10 -6
  369. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  370. package/src/common/errors/{stats.js → stats.ts} +11 -7
  371. package/src/common/errors/{webex-errors.js → webex-errors.ts} +14 -9
  372. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  373. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  374. package/src/common/events/{events.js → events.ts} +5 -1
  375. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  376. package/src/common/events/{util.js → util.ts} +2 -3
  377. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  378. package/src/common/logs/logger-proxy.ts +44 -0
  379. package/src/common/logs/{request.js → request.ts} +22 -9
  380. package/src/common/queue.ts +22 -9
  381. package/src/{config.js → config.ts} +17 -17
  382. package/src/constants.ts +197 -22
  383. package/src/controls-options-manager/constants.ts +5 -0
  384. package/src/controls-options-manager/enums.ts +18 -0
  385. package/src/controls-options-manager/index.ts +278 -0
  386. package/src/controls-options-manager/types.ts +59 -0
  387. package/src/controls-options-manager/util.ts +300 -0
  388. package/src/index.ts +39 -0
  389. package/src/interpretation/README.md +60 -0
  390. package/src/interpretation/collection.ts +19 -0
  391. package/src/interpretation/index.ts +332 -0
  392. package/src/interpretation/siLanguage.ts +18 -0
  393. package/src/locus-info/controlsUtils.ts +222 -0
  394. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  395. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  396. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  397. package/src/locus-info/{index.js → index.ts} +518 -111
  398. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  399. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +65 -17
  400. package/src/locus-info/{parser.js → parser.ts} +271 -98
  401. package/src/locus-info/{selfUtils.js → selfUtils.ts} +199 -68
  402. package/src/media/index.ts +456 -0
  403. package/src/media/{properties.js → properties.ts} +80 -102
  404. package/src/media/{util.js → util.ts} +2 -2
  405. package/src/mediaQualityMetrics/config.ts +384 -0
  406. package/src/meeting/in-meeting-actions.ts +171 -3
  407. package/src/meeting/index.ts +7070 -0
  408. package/src/meeting/locusMediaRequest.ts +309 -0
  409. package/src/meeting/muteState.ts +450 -0
  410. package/src/meeting/{request.js → request.ts} +354 -214
  411. package/src/meeting/request.type.ts +13 -0
  412. package/src/meeting/{state.js → state.ts} +50 -35
  413. package/src/meeting/util.ts +615 -0
  414. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  415. package/src/meeting-info/index.ts +183 -0
  416. package/src/meeting-info/meeting-info-v2.ts +407 -0
  417. package/src/meeting-info/{request.js → request.ts} +14 -4
  418. package/src/meeting-info/{util.js → util.ts} +60 -51
  419. package/src/meeting-info/{utilv2.js → utilv2.ts} +77 -60
  420. package/src/meetings/{collection.js → collection.ts} +26 -3
  421. package/src/meetings/index.ts +1467 -0
  422. package/src/meetings/meetings.types.ts +12 -0
  423. package/src/meetings/{request.js → request.ts} +34 -25
  424. package/src/meetings/{util.js → util.ts} +137 -36
  425. package/src/member/{index.js → index.ts} +151 -56
  426. package/src/member/types.ts +38 -0
  427. package/src/member/util.ts +383 -0
  428. package/src/members/{collection.js → collection.ts} +10 -2
  429. package/src/members/{index.js → index.ts} +323 -145
  430. package/src/members/request.ts +255 -0
  431. package/src/members/types.ts +28 -0
  432. package/src/members/util.ts +339 -0
  433. package/src/metrics/{constants.js → constants.ts} +2 -6
  434. package/src/metrics/index.ts +73 -0
  435. package/src/multistream/mediaRequestManager.ts +337 -61
  436. package/src/multistream/receiveSlot.ts +69 -26
  437. package/src/multistream/receiveSlotManager.ts +66 -42
  438. package/src/multistream/remoteMedia.ts +40 -5
  439. package/src/multistream/remoteMediaGroup.ts +63 -3
  440. package/src/multistream/remoteMediaManager.ts +263 -66
  441. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  442. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  443. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  444. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  445. package/src/reachability/{index.js → index.ts} +157 -94
  446. package/src/reachability/request.ts +46 -35
  447. package/src/reactions/constants.ts +4 -0
  448. package/src/reactions/reactions.ts +104 -0
  449. package/src/reactions/reactions.type.ts +62 -0
  450. package/src/reconnection-manager/{index.js → index.ts} +254 -136
  451. package/src/recording-controller/enums.ts +8 -0
  452. package/src/recording-controller/index.ts +333 -0
  453. package/src/recording-controller/util.ts +75 -0
  454. package/src/roap/{index.js → index.ts} +86 -78
  455. package/src/roap/request.ts +163 -0
  456. package/src/roap/turnDiscovery.ts +111 -49
  457. package/src/rtcMetrics/constants.ts +3 -0
  458. package/src/rtcMetrics/index.ts +96 -0
  459. package/src/statsAnalyzer/global.ts +37 -0
  460. package/src/statsAnalyzer/index.ts +1272 -0
  461. package/src/statsAnalyzer/mqaUtil.ts +291 -0
  462. package/src/transcription/{index.js → index.ts} +46 -39
  463. package/test/integration/spec/converged-space-meetings.js +233 -0
  464. package/test/integration/spec/journey.js +804 -526
  465. package/test/integration/spec/space-meeting.js +391 -204
  466. package/test/integration/spec/transcription.js +7 -8
  467. package/test/unit/spec/annotation/index.ts +418 -0
  468. package/test/unit/spec/breakouts/breakout.ts +237 -0
  469. package/test/unit/spec/breakouts/collection.ts +15 -0
  470. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  471. package/test/unit/spec/breakouts/events.ts +89 -0
  472. package/test/unit/spec/breakouts/index.ts +1790 -0
  473. package/test/unit/spec/breakouts/request.ts +104 -0
  474. package/test/unit/spec/breakouts/utils.js +72 -0
  475. package/test/unit/spec/common/browser-detection.js +9 -28
  476. package/test/unit/spec/common/queue.js +31 -2
  477. package/test/unit/spec/controls-options-manager/index.js +287 -0
  478. package/test/unit/spec/controls-options-manager/util.js +582 -0
  479. package/test/unit/spec/fixture/locus.js +93 -90
  480. package/test/unit/spec/interpretation/collection.ts +15 -0
  481. package/test/unit/spec/interpretation/index.ts +589 -0
  482. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  483. package/test/unit/spec/locus-info/controlsUtils.js +325 -32
  484. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  485. package/test/unit/spec/locus-info/index.js +1176 -18
  486. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  487. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  488. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  489. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  490. package/test/unit/spec/locus-info/parser.js +65 -31
  491. package/test/unit/spec/locus-info/selfConstant.js +120 -103
  492. package/test/unit/spec/locus-info/selfUtils.js +296 -12
  493. package/test/unit/spec/media/index.ts +162 -68
  494. package/test/unit/spec/media/properties.ts +9 -9
  495. package/test/unit/spec/meeting/in-meeting-actions.ts +82 -3
  496. package/test/unit/spec/meeting/index.js +4569 -1773
  497. package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
  498. package/test/unit/spec/meeting/muteState.js +382 -211
  499. package/test/unit/spec/meeting/request.js +444 -78
  500. package/test/unit/spec/meeting/utils.js +517 -192
  501. package/test/unit/spec/meeting-info/index.js +181 -0
  502. package/test/unit/spec/meeting-info/meetinginfov2.js +481 -76
  503. package/test/unit/spec/meeting-info/request.js +7 -9
  504. package/test/unit/spec/meeting-info/util.js +11 -12
  505. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  506. package/test/unit/spec/meetings/collection.js +15 -1
  507. package/test/unit/spec/meetings/index.js +1254 -330
  508. package/test/unit/spec/meetings/utils.js +220 -14
  509. package/test/unit/spec/member/index.js +58 -5
  510. package/test/unit/spec/member/util.js +494 -26
  511. package/test/unit/spec/members/index.js +423 -55
  512. package/test/unit/spec/members/request.js +228 -40
  513. package/test/unit/spec/members/utils.js +191 -4
  514. package/test/unit/spec/metrics/index.js +12 -66
  515. package/test/unit/spec/multistream/mediaRequestManager.ts +1013 -106
  516. package/test/unit/spec/multistream/receiveSlot.ts +77 -18
  517. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  518. package/test/unit/spec/multistream/remoteMedia.ts +40 -2
  519. package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
  520. package/test/unit/spec/multistream/remoteMediaManager.ts +730 -65
  521. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  522. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  523. package/test/unit/spec/reachability/index.ts +176 -27
  524. package/test/unit/spec/reachability/request.js +66 -0
  525. package/test/unit/spec/reconnection-manager/index.js +155 -9
  526. package/test/unit/spec/recording-controller/index.js +307 -0
  527. package/test/unit/spec/recording-controller/util.js +229 -0
  528. package/test/unit/spec/roap/index.ts +28 -52
  529. package/test/unit/spec/roap/request.ts +225 -0
  530. package/test/unit/spec/roap/turnDiscovery.ts +92 -50
  531. package/test/unit/spec/rtcMetrics/index.ts +60 -0
  532. package/test/unit/spec/stats-analyzer/index.js +116 -60
  533. package/test/utils/cmr.js +44 -42
  534. package/test/utils/constants.js +9 -0
  535. package/test/utils/integrationTestUtils.js +46 -0
  536. package/test/utils/testUtils.js +63 -99
  537. package/test/utils/webex-config.js +22 -18
  538. package/test/utils/webex-test-users.js +57 -50
  539. package/tsconfig.json +6 -0
  540. package/dist/media/internal-media-core-wrapper.js +0 -22
  541. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  542. package/dist/meeting/effectsState.js +0 -327
  543. package/dist/meeting/effectsState.js.map +0 -1
  544. package/dist/metrics/config.js +0 -301
  545. package/dist/metrics/config.js.map +0 -1
  546. package/dist/multistream/multistreamMedia.js +0 -116
  547. package/dist/multistream/multistreamMedia.js.map +0 -1
  548. package/dist/peer-connection-manager/util.js +0 -124
  549. package/dist/peer-connection-manager/util.js.map +0 -1
  550. package/src/common/logs/logger-proxy.js +0 -33
  551. package/src/index.js +0 -15
  552. package/src/locus-info/controlsUtils.js +0 -102
  553. package/src/media/index.js +0 -459
  554. package/src/media/internal-media-core-wrapper.ts +0 -9
  555. package/src/mediaQualityMetrics/config.js +0 -382
  556. package/src/meeting/effectsState.js +0 -205
  557. package/src/meeting/index.js +0 -6284
  558. package/src/meeting/muteState.js +0 -318
  559. package/src/meeting/util.js +0 -506
  560. package/src/meeting-info/index.js +0 -131
  561. package/src/meeting-info/meeting-info-v2.js +0 -255
  562. package/src/meetings/index.js +0 -1015
  563. package/src/member/util.js +0 -254
  564. package/src/members/request.js +0 -131
  565. package/src/members/util.js +0 -258
  566. package/src/metrics/config.js +0 -324
  567. package/src/metrics/index.js +0 -530
  568. package/src/multistream/multistreamMedia.ts +0 -92
  569. package/src/peer-connection-manager/util.ts +0 -117
  570. package/src/roap/request.js +0 -127
  571. package/src/statsAnalyzer/global.js +0 -133
  572. package/src/statsAnalyzer/index.js +0 -1006
  573. package/src/statsAnalyzer/mqaUtil.js +0 -173
  574. package/test/unit/spec/meeting/effectsState.js +0 -291
  575. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  576. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -1,530 +0,0 @@
1
- /*!
2
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
- */
4
- import util from 'util';
5
-
6
- import {includes} from 'lodash';
7
- import uuid from 'uuid';
8
- import window from 'global/window';
9
- import anonymize from 'ip-anonymize';
10
-
11
- import LoggerProxy from '../common/logs/logger-proxy';
12
- import {MEETING_ERRORS} from '../constants';
13
- import BrowserDetection from '../common/browser-detection';
14
-
15
- import {
16
- error, eventType, errorCodes as ERROR_CODE, OS_NAME, UNKNOWN, CLIENT_NAME,
17
- mediaType
18
- } from './config';
19
-
20
- const OSMap = {
21
- 'Chrome OS': OS_NAME.chrome,
22
- macOS: OS_NAME.MAC,
23
- Windows: OS_NAME.WINDOWS,
24
- iOS: OS_NAME.IOS,
25
- Android: OS_NAME.ANDROID,
26
- Linux: OS_NAME.LINUX
27
- };
28
-
29
- const {
30
- getOSName,
31
- getOSVersion,
32
- getBrowserName,
33
- getBrowserVersion
34
- } = BrowserDetection();
35
-
36
- // Apply a CIDR /28 format to the IPV4 and /96 to the IPV6 addresses
37
- // For reference : https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing
38
- const anonymizeIPAddress = (localIp) => anonymize(localIp, 28, 96);
39
-
40
- const triggerTimers = ({event, meeting, data}) => {
41
- switch (event) {
42
- case eventType.CALL_INITIATED:
43
- meeting.setStartCallInitiateJoinReq();
44
- break;
45
- case eventType.LOCUS_JOIN_REQUEST:
46
- meeting.setEndCallInitiateJoinReq();
47
- meeting.setStartJoinReqResp();
48
- break;
49
- case eventType.LOCUS_JOIN_RESPONSE:
50
- meeting.setEndJoinReqResp();
51
- meeting.setStartSetupDelay(mediaType.AUDIO);
52
- meeting.setStartSetupDelay(mediaType.VIDEO);
53
- meeting.setStartSendingMediaDelay(mediaType.AUDIO);
54
- meeting.setStartSendingMediaDelay(mediaType.VIDEO);
55
- break;
56
- case eventType.RECEIVING_MEDIA_START:
57
- meeting.setEndSetupDelay(data.mediaType);
58
- break;
59
- case eventType.SENDING_MEDIA_START:
60
- meeting.setEndSendingMediaDelay(data.mediaType);
61
- break;
62
- case eventType.LOCAL_SDP_GENERATED:
63
- meeting.setStartLocalSDPGenRemoteSDPRecvDelay();
64
- break;
65
- case eventType.REMOTE_SDP_RECEIVED:
66
- meeting.setEndLocalSDPGenRemoteSDPRecvDelay();
67
- break;
68
- default:
69
- break;
70
- }
71
- };
72
-
73
- /**
74
- * @description Metrics handles all the call metrics events
75
- * @export
76
- * @class Metrics
77
- */
78
- class Metrics {
79
- /**
80
- * Create Metrics Object
81
- * @constructor
82
- * @public
83
- * @memberof Meetings
84
- */
85
- constructor() {
86
- if (!Metrics.instance) {
87
- /**
88
- * @instance
89
- * @type {Array}
90
- * @private
91
- * @memberof Metrics
92
- */
93
- this._events = [];
94
- /**
95
- * @instance
96
- * @type {MeetingCollection}
97
- * @private
98
- * @memberof Metrics
99
- */
100
- this.meetingCollection = null;
101
- /**
102
- * @instance
103
- * @type {MeetingCollection}
104
- * @private
105
- * @memberof Metrics
106
- */
107
- this.keys = Object.values(eventType);
108
- /**
109
- * @instance
110
- * @type {Metrics}
111
- * @private
112
- * @memberof Metrics
113
- */
114
- Metrics.instance = this;
115
- }
116
-
117
- return Metrics.instance;
118
- }
119
-
120
- /**
121
- * Initializes the Metrics singleton with a meeting Collection.
122
- *
123
- * @param {Object} meetingCollection meetings object
124
- * @param {Object} webex webex SDK object
125
- *
126
- * @returns {void}
127
- */
128
- initialSetup(meetingCollection, webex) {
129
- this.meetingCollection = meetingCollection;
130
- this.webex = webex;
131
- }
132
-
133
- /**
134
- * poste Meeting event metrics
135
- * @param {object} options {meetingId/meeting} as a json object
136
- * @param {Meeting} options.meeting Meeting object
137
- * @param {String} options.meetingId
138
- * @param {object} options.data
139
- * @param {object} options.event
140
- * @returns {object} null
141
- */
142
- postEvent(options) {
143
- const {meetingId, data = {}, event} = options;
144
- let {meeting} = options;
145
-
146
- if (this.keys.indexOf(event) === -1) {
147
- LoggerProxy.logger.error(`Metrics:index#postEvent --> Event ${event} doesn't exist in dictionary`);
148
- }
149
-
150
- if (!meeting && meetingId) {
151
- meeting = this.meetingCollection.get(meetingId);
152
- options.meeting = meeting;
153
- }
154
-
155
- if (meeting) {
156
- triggerTimers(options);
157
-
158
- if (!meeting.callEvents) {
159
- meeting.callEvents = [];
160
- }
161
- if (event === eventType.MEDIA_QUALITY) {
162
- data.event = event;
163
- meeting.sendMediaQualityAnalyzerMetrics(data);
164
- }
165
- else {
166
- meeting.callEvents.push(event);
167
- data.event = event;
168
- meeting.sendCallAnalyzerMetrics(data);
169
- }
170
- }
171
-
172
- else {
173
- LoggerProxy.logger.info(`Metrics:index#postEvent --> Event received for meetingId:${meetingId}, but meeting not found in collection.`);
174
- }
175
- }
176
-
177
- /**
178
- * Docs for Call analyzer metrics
179
- * https://sqbu-github.cisco.com/WebExSquared/call-analyzer/wiki
180
- * https://sqbu-github.cisco.com/WebExSquared/event-dictionary/blob/master/diagnostic-events.raml
181
- */
182
-
183
- initPayload(eventType, identifiers, options) {
184
- const payload = {
185
- eventId: uuid.v4(),
186
- version: 1,
187
- origin: {
188
- name: 'endpoint',
189
- networkType: 'unknown',
190
- userAgent: this.userAgentToString(),
191
- clientInfo: {
192
- clientType: options.clientType,
193
- clientVersion: `${CLIENT_NAME}/${this.webex.version}`,
194
- localNetworkPrefix: anonymizeIPAddress(this.webex.meetings.geoHintInfo?.clientAddress),
195
- osVersion: getOSVersion() || 'unknown',
196
- subClientType: options.subClientType,
197
- os: this.getOsName(),
198
- browser: getBrowserName(),
199
- browserVersion: getBrowserVersion()
200
- }
201
- },
202
- originTime: {
203
- triggered: new Date().toISOString()
204
- },
205
- senderCountryCode: this.webex.meetings.geoHintInfo?.countryCode,
206
- event: {
207
- name: eventType,
208
- canProceed: true,
209
- identifiers,
210
- eventData: {webClientDomain: window.location.hostname}
211
- }
212
- };
213
-
214
- // TODO: more options should be checked and some of them should be mandatory in certain conditions
215
- if (options) {
216
- if (Object.prototype.hasOwnProperty.call(options, 'canProceed')) {
217
- payload.event.canProceed = options.canProceed;
218
- }
219
- if (options.errors) {
220
- payload.event.errors = options.errors;
221
- }
222
- if (options.mediaType) {
223
- payload.event.mediaType = options.mediaType;
224
- }
225
- if (options.trigger) {
226
- payload.event.trigger = options.trigger;
227
- }
228
- if (options.pstnAudioType) {
229
- payload.event.pstnAudioType = options.pstnAudioType;
230
- }
231
- if (options.mediaCapabilities) {
232
- payload.event.mediaCapabilities = options.mediaCapabilities;
233
- }
234
- if (options.recoveredBy) {
235
- payload.event.recoveredBy = options.recoveredBy;
236
- }
237
- if (options.joinTimes) {
238
- payload.event.joinTimes = options.joinTimes;
239
- }
240
- if (options.isRoapCallEnabled) {
241
- payload.event.isRoapCallEnabled = options.isRoapCallEnabled;
242
- }
243
- }
244
-
245
- return payload;
246
- }
247
-
248
- /**
249
- * returns metrics friendly OS versions
250
- * @param {String} osName Os name
251
- * @returns {String}
252
- * @private
253
- * @memberof Metrics
254
- */
255
- getOsName() {
256
- return OSMap[getOSName()] ?? OS_NAME.OTHERS;
257
- }
258
-
259
- /**
260
- * get the payload specific for a media quality event through call analyzer
261
- * @param {String} eventType the event name
262
- * @param {Object} identifiers contains the identifiers needed for CA
263
- * @param {String} identifiers.correlationId
264
- * @param {String} identifiers.locusUrl
265
- * @param {String} identifiers.locusId
266
- * @param {Object} options
267
- * @param {Object} options.intervalData
268
- * @param {String} options.clientType
269
- * @returns {Object}
270
- * @public
271
- * @memberof Metrics
272
- */
273
- initMediaPayload(eventType, identifiers, options = {}) {
274
- const {audioSetupDelay, videoSetupDelay, joinTimes} = options;
275
-
276
- const payload = {
277
- eventId: uuid.v4(),
278
- version: 1,
279
- origin: {
280
- audioSetupDelay,
281
- videoSetupDelay,
282
- name: 'endpoint',
283
- networkType: options.networkType || UNKNOWN,
284
- userAgent: this.userAgentToString(),
285
- clientInfo: {
286
- clientType: options.clientType, // TODO: Only clientType: 'TEAMS_CLIENT' is whitelisted
287
- clientVersion: `${CLIENT_NAME}/${this.webex.version}`,
288
- localNetworkPrefix: anonymizeIPAddress(this.webex.meetings.geoHintInfo?.clientAddress),
289
- os: this.getOsName(),
290
- osVersion: getOSVersion() || UNKNOWN,
291
- subClientType: options.subClientType,
292
- browser: getBrowserName(),
293
- browserVersion: getBrowserVersion()
294
- }
295
- },
296
- originTime: {
297
- triggered: new Date().toISOString()
298
- },
299
- senderCountryCode: this.webex.meetings.geoHintInfo?.countryCode,
300
- event: {
301
- name: eventType,
302
- canProceed: true,
303
- identifiers,
304
- intervals: [options.intervalData],
305
- joinTimes,
306
- eventData: {
307
- webClientDomain: window.location.hostname
308
- },
309
- sourceMetadata: {
310
- applicationSoftwareType: CLIENT_NAME,
311
- applicationSoftwareVersion: this.webex.version,
312
- mediaEngineSoftwareType: getBrowserName() || 'browser',
313
- mediaEngineSoftwareVersion: getOSVersion() || UNKNOWN,
314
- startTime: new Date().toISOString()
315
- }
316
- }
317
- };
318
-
319
- return payload;
320
- }
321
-
322
- /**
323
- * This function Parses a Locus error and returns a diagnostic event payload.
324
- * It should keep updating from:
325
- * https://sqbu-github.cisco.com/WebExSquared/spark-client-framework/blob/master/spark-client-framework/Adapters/TelephonyAdapter/TelephonyAdapter.cpp#L920
326
- *
327
- * @param {Object} err the error Object from Locus response
328
- * @param {boolean} showToUser true if a toast is shown to user
329
- * @returns {{showToUser: boolean, category: string, errorDescription: string,
330
- * errorCode: number, errorData: *, fatal: boolean, name: string}}
331
- */
332
- parseLocusError(err, showToUser) {
333
- let errorCode;
334
-
335
- if (err && err.statusCode && err.statusCode >= 500) {
336
- errorCode = 1003;
337
- }
338
- else if (err && err.body && err.body.errorCode) {
339
- // locus error codes: https://sqbu-github.cisco.com/WebExSquared/locus/blob/master/server/src/main/resources/locus-error-codes.properties
340
- switch (ERROR_CODE[err.body.errorCode]) {
341
- case MEETING_ERRORS.FREE_USER_MAX_PARTICIPANTS_EXCEEDED:
342
- errorCode = 3007;
343
- break;
344
- case MEETING_ERRORS.PAID_USER_MAX_PARTICIPANTS_EXCEEDED:
345
- case MEETING_ERRORS.SERVICE_MAX_PARTICIPANTS_EXCEEDED:
346
- errorCode = 3002;
347
- break;
348
- case MEETING_ERRORS.INACTIVE:
349
- errorCode = 4001;
350
- break;
351
- case MEETING_ERRORS.EXCEEDED_MAX_JOINED_PARTICIPANTS:
352
- case MEETING_ERRORS.EXCEEDED_SERVICE_MAX_PARTICIPANTS:
353
- errorCode = 3001;
354
- break;
355
- case MEETING_ERRORS.MEETING_IS_LOCKED:
356
- errorCode = 4002;
357
- break;
358
- case MEETING_ERRORS.MEETING_IS_TERMINATING:
359
- errorCode = 4003;
360
- break;
361
- case MEETING_ERRORS.MEETING_REQUIRE_MODERATOR_PIN_INTENT:
362
- errorCode = 4004;
363
- break;
364
- case MEETING_ERRORS.MEETING_REQUIRE_MODERATOR_PIN:
365
- errorCode = 4005;
366
- break;
367
- case MEETING_ERRORS.MEETING_REQUIRE_MODERATOR_ROLE:
368
- errorCode = 4006;
369
- break;
370
- case MEETING_ERRORS.JOIN_RESTRICTED_USER:
371
- case MEETING_ERRORS.GET_RESTRICTED_USER:
372
- case MEETING_ERRORS.CREATE_MEDIA_RESTRICTED_USER:
373
- errorCode = 3005;
374
- break;
375
- case MEETING_ERRORS.JOIN_RESTRICTED_USER_NOT_IN_ROOM:
376
- errorCode = 4007;
377
- break;
378
- case MEETING_ERRORS.MEETING_NOT_FOUND:
379
- errorCode = 4011;
380
- break;
381
- case MEETING_ERRORS.NOT_WEBEX_SITE:
382
- errorCode = 4012;
383
- break;
384
- case MEETING_ERRORS.INVALID_JOIN_TIME:
385
- errorCode = 4013;
386
- break;
387
- case MEETING_ERRORS.PHONE_NUMBER_NOT_A_NUMBER:
388
- errorCode = 4016;
389
- break;
390
- case MEETING_ERRORS.PHONE_NUMBER_TOO_LONG:
391
- errorCode = 4017;
392
- break;
393
- case MEETING_ERRORS.INVALID_DIALABLE_KEY:
394
- errorCode = 4018;
395
- break;
396
- case MEETING_ERRORS.ONE_ON_ONE_TO_SELF_NOT_ALLOWED:
397
- errorCode = 4019;
398
- break;
399
- case MEETING_ERRORS.REMOVED_PARTICIPANT:
400
- errorCode = 4020;
401
- break;
402
- case MEETING_ERRORS.MEETING_LINK_NOT_FOUND:
403
- errorCode = 4021;
404
- break;
405
- case MEETING_ERRORS.PHONE_NUMBER_TOO_SHORT_AFTER_IDD:
406
- errorCode = 4022;
407
- break;
408
- case MEETING_ERRORS.INVALID_INVITEE_ADDRESS:
409
- errorCode = 4023;
410
- break;
411
- case MEETING_ERRORS.PMR_ACCOUNT_LOCKED:
412
- errorCode = 4024;
413
- break;
414
- case MEETING_ERRORS.RESOURCE_GUEST_FORBIDDEN:
415
- errorCode = 4025;
416
- break;
417
- case MEETING_ERRORS.PMR_ACCOUNT_SUSPENDED:
418
- errorCode = 4026;
419
- break;
420
- case MEETING_ERRORS.EMPTY_PHONE_NUMBER_OR_COUNTRY_CODE:
421
- errorCode = 4027;
422
- break;
423
- case MEETING_ERRORS.INVALID_SINCE_OR_SEQUENCE_HASH_IN_REQUEST:
424
- errorCode = 1006;
425
- break;
426
- case MEETING_ERRORS.CONVERSATION_NOT_FOUND:
427
- errorCode = 4028;
428
- break;
429
- case MEETING_ERRORS.RECORDING_CONTROL_NOT_SUPPORTED:
430
- case MEETING_ERRORS.RECORDING_NOT_STARTED:
431
- case MEETING_ERRORS.RECORDING_NOT_ENABLED:
432
- errorCode = 4029;
433
- break;
434
- default:
435
- errorCode = 4008;
436
- }
437
- }
438
- else {
439
- errorCode = 4008;
440
- }
441
-
442
- return this.generateErrorPayload(
443
- errorCode, showToUser, error.name.LOCUS_RESPONSE, err
444
- );
445
- }
446
-
447
-
448
- generateErrorPayload(errorCode, shownToUser, name, err) {
449
- if (error.errors[errorCode]) {
450
- const errorPayload = {
451
- shownToUser: shownToUser || false,
452
- category: error.errors[errorCode][2],
453
- errorDescription: error.errors[errorCode][0],
454
- errorCode,
455
- fatal: !includes(error.notFatalErrorList, errorCode),
456
- name: name || error.name.OTHER
457
- };
458
-
459
- if (err && err.body) {
460
- errorPayload.errorData = err.body;
461
- }
462
-
463
- if (err && err.statusCode) {
464
- errorPayload.httpCode = err.statusCode;
465
- }
466
-
467
- return errorPayload;
468
- }
469
-
470
- return null;
471
- }
472
-
473
- /**
474
- * Returns a formated string of the user agent.
475
- *
476
- * @returns {string} formatted user agent information
477
- */
478
- userAgentToString() {
479
- let userAgentOption;
480
- let browserInfo;
481
- const clientInfo = util.format('client=%s', `${this.webex.meetings?.metrics?.clientName}`);
482
-
483
- if (['chrome', 'firefox', 'msie', 'msedge', 'safari'].indexOf(getBrowserName().toLowerCase()) !== -1) {
484
- browserInfo = util.format('browser=%s', `${getBrowserName().toLowerCase()}/${getBrowserVersion().split('.')[0]}`);
485
- }
486
- const osInfo = util.format('os=%s', `${getOSName()}/${getOSVersion().split('.')[0]}`);
487
-
488
- if (browserInfo) {
489
- userAgentOption = `(${browserInfo}`;
490
- }
491
- if (osInfo) {
492
- userAgentOption = userAgentOption ? `${userAgentOption}; ${clientInfo}; ${osInfo}` : `${clientInfo}; (${osInfo}`;
493
- }
494
- if (userAgentOption) {
495
- userAgentOption += ')';
496
-
497
- return util.format('webex-js-sdk/%s %s', `${process.env.NODE_ENV}-${this.webex.version}`, userAgentOption);
498
- }
499
-
500
- return util.format('webex-js-sdk/%s', `${process.env.NODE_ENV}-${this.webex.version}`);
501
- }
502
-
503
- /**
504
- * Uploads given metric to the Metrics service as an Behavioral metric.
505
- * Metadata about the environment such as browser, OS, SDK and their versions
506
- * are automatically added when the metric is sent.
507
- *
508
- * The Metrics service will send an Behavioral metric to InfluxDB for
509
- * aggregation.
510
- * See https://confluence-eng-gpk2.cisco.com/conf/display/WBXT/Getting+started+with+Metrics+Service.
511
- *
512
- * @param {string} metricName Name of the metric (measurement) to send
513
- * @param {Object} metricFields Key-valye pairs of data or values about this metric
514
- * @param {Object} metricTags Key-value pairs of metric metadata
515
- *
516
- * @returns {void}
517
- */
518
- sendBehavioralMetric(metricName, metricFields = {}, metricTags = {}) {
519
- this.webex.internal.metrics.submitClientMetrics(metricName, {
520
- type: this.webex.config.metrics.type,
521
- fields: metricFields,
522
- tags: metricTags
523
- });
524
- }
525
- }
526
-
527
- // Export Metrics singleton ---------------------------------------------------
528
- const instance = new Metrics();
529
-
530
- export default instance;
@@ -1,92 +0,0 @@
1
- /* eslint-disable import/prefer-default-export */
2
-
3
- import {AUDIO, VIDEO} from '../constants';
4
- import createMuteState from '../meeting/muteState';
5
- import Meeting from '../meeting';
6
-
7
- /**
8
- * Class wrapping all the multistream specific APIs that need to be exposed at meeting level.
9
- *
10
- */
11
- export class MultistreamMedia {
12
- private meeting: Meeting;
13
-
14
- /**
15
- * Constructor
16
- * @param {Meeting} meeting
17
- */
18
- constructor(meeting: Meeting) {
19
- this.meeting = meeting;
20
- }
21
-
22
- /**
23
- * throws if we don't have a media connection created
24
- */
25
- private checkMediaConnection() {
26
- if (this.meeting?.mediaProperties?.webrtcMediaConnection) {
27
- return;
28
- }
29
- throw new Error('Webrtc media connection is missing');
30
- }
31
-
32
- /**
33
- * Publishes a local track in the meeting
34
- *
35
- * @param {MediaStreamTrack} track
36
- * @returns {Promise}
37
- */
38
- publishTrack(track: MediaStreamTrack): Promise<void> {
39
- this.checkMediaConnection();
40
-
41
- /* todo: for now we don't support screen share (waiting for server to support bundling, see SPARK-377812)
42
- for sharing:
43
- we have to call meeting.stopFloorRequest() before unpublishing a track
44
- we have to call meeting.share() after publishing a track
45
- */
46
-
47
- // todo: depending on how muting is done with Local tracks, this code here might need to change...
48
-
49
- if (track.kind === 'audio') {
50
- this.meeting.setLocalAudioTrack(track);
51
- this.meeting.mediaProperties.mediaDirection.sendAudio = true;
52
-
53
- // audio state could be undefined if you have not sent audio before
54
- this.meeting.audio =
55
- this.meeting.audio ||
56
- createMuteState(AUDIO, this.meeting, this.meeting.mediaProperties.mediaDirection);
57
- } else if (track.kind === 'video') {
58
- this.meeting.setLocalVideoTrack(track);
59
- this.meeting.mediaProperties.mediaDirection.sendVideo = true;
60
-
61
- // video state could be undefined if you have not sent video before
62
- this.meeting.video =
63
- this.meeting.video ||
64
- createMuteState(VIDEO, this.meeting, this.meeting.mediaProperties.mediaDirection);
65
- }
66
-
67
- return this.meeting.mediaProperties.webrtcMediaConnection.publishTrack(track);
68
- }
69
-
70
- /**
71
- * Unpublishes a local track in the meeting
72
- *
73
- * @param {MediaStreamTrack} track
74
- * @returns {Promise}
75
- */
76
- unpublishTrack(track: MediaStreamTrack): Promise<void> {
77
- // todo: see todos in publishTrack() - they all apply here too:
78
- // screen sharing - SPARK-377812
79
- // muting etc
80
-
81
- if (track.kind === 'audio') {
82
- this.meeting.setLocalVideoTrack(null);
83
- this.meeting.mediaProperties.mediaDirection.sendAudio = false;
84
- } else if (track.kind === 'video') {
85
- this.meeting.setLocalAudioTrack(null);
86
- this.meeting.mediaProperties.mediaDirection.sendVideo = false;
87
- }
88
- this.checkMediaConnection();
89
-
90
- return this.meeting.mediaProperties.webrtcMediaConnection.unpublishTrack(track);
91
- }
92
- }