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

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 (539) hide show
  1. package/README.md +58 -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 +234 -100
  90. package/dist/constants.js +433 -444
  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 +705 -520
  159. package/dist/meeting/index.js +5047 -3089
  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 +304 -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 +118 -1
  176. package/dist/meeting/util.js +676 -435
  177. package/dist/meeting/util.js.map +1 -1
  178. package/dist/meeting/voicea-meeting.d.ts +20 -0
  179. package/dist/meeting/voicea-meeting.js +201 -0
  180. package/dist/meeting/voicea-meeting.js.map +1 -0
  181. package/dist/meeting-info/collection.js +3 -4
  182. package/dist/meeting-info/collection.js.map +1 -1
  183. package/dist/meeting-info/index.d.ts +13 -1
  184. package/dist/meeting-info/index.js +74 -7
  185. package/dist/meeting-info/index.js.map +1 -1
  186. package/dist/meeting-info/meeting-info-v2.d.ts +31 -1
  187. package/dist/meeting-info/meeting-info-v2.js +200 -63
  188. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  189. package/dist/meeting-info/request.js +1 -2
  190. package/dist/meeting-info/request.js.map +1 -1
  191. package/dist/meeting-info/util.js +2 -3
  192. package/dist/meeting-info/util.js.map +1 -1
  193. package/dist/meeting-info/utilv2.js +39 -41
  194. package/dist/meeting-info/utilv2.js.map +1 -1
  195. package/dist/meetings/collection.d.ts +17 -0
  196. package/dist/meetings/collection.js +42 -4
  197. package/dist/meetings/collection.js.map +1 -1
  198. package/dist/meetings/index.d.ts +114 -20
  199. package/dist/meetings/index.js +540 -126
  200. package/dist/meetings/index.js.map +1 -1
  201. package/dist/meetings/meetings.types.d.ts +4 -0
  202. package/dist/meetings/meetings.types.js +7 -0
  203. package/dist/meetings/meetings.types.js.map +1 -0
  204. package/dist/meetings/request.js +4 -3
  205. package/dist/meetings/request.js.map +1 -1
  206. package/dist/meetings/util.js +107 -6
  207. package/dist/meetings/util.js.map +1 -1
  208. package/dist/member/index.d.ts +13 -1
  209. package/dist/member/index.js +45 -2
  210. package/dist/member/index.js.map +1 -1
  211. package/dist/member/member.types.js +3 -4
  212. package/dist/member/member.types.js.map +1 -1
  213. package/dist/member/types.d.ts +32 -0
  214. package/dist/member/types.js +23 -0
  215. package/dist/member/types.js.map +1 -0
  216. package/dist/member/util.js +120 -29
  217. package/dist/member/util.js.map +1 -1
  218. package/dist/members/collection.d.ts +5 -0
  219. package/dist/members/collection.js +11 -2
  220. package/dist/members/collection.js.map +1 -1
  221. package/dist/members/index.d.ts +56 -11
  222. package/dist/members/index.js +174 -47
  223. package/dist/members/index.js.map +1 -1
  224. package/dist/members/request.d.ts +67 -11
  225. package/dist/members/request.js +102 -54
  226. package/dist/members/request.js.map +1 -1
  227. package/dist/members/types.js +3 -4
  228. package/dist/members/types.js.map +1 -1
  229. package/dist/members/util.d.ts +214 -1
  230. package/dist/members/util.js +327 -284
  231. package/dist/members/util.js.map +1 -1
  232. package/dist/metrics/constants.d.ts +15 -6
  233. package/dist/metrics/constants.js +17 -9
  234. package/dist/metrics/constants.js.map +1 -1
  235. package/dist/metrics/index.d.ts +4 -111
  236. package/dist/metrics/index.js +4 -452
  237. package/dist/metrics/index.js.map +1 -1
  238. package/dist/multistream/mediaRequestManager.d.ts +118 -0
  239. package/dist/multistream/mediaRequestManager.js +344 -0
  240. package/dist/multistream/mediaRequestManager.js.map +1 -0
  241. package/dist/multistream/receiveSlot.d.ts +68 -0
  242. package/dist/multistream/receiveSlot.js +200 -0
  243. package/dist/multistream/receiveSlot.js.map +1 -0
  244. package/dist/multistream/receiveSlotManager.d.ts +56 -0
  245. package/dist/multistream/receiveSlotManager.js +174 -0
  246. package/dist/multistream/receiveSlotManager.js.map +1 -0
  247. package/dist/multistream/remoteMedia.d.ts +72 -0
  248. package/dist/multistream/remoteMedia.js +268 -0
  249. package/dist/multistream/remoteMedia.js.map +1 -0
  250. package/dist/multistream/remoteMediaGroup.d.ts +47 -0
  251. package/dist/multistream/remoteMediaGroup.js +267 -0
  252. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  253. package/dist/multistream/remoteMediaManager.d.ts +285 -0
  254. package/dist/multistream/remoteMediaManager.js +1211 -0
  255. package/dist/multistream/remoteMediaManager.js.map +1 -0
  256. package/dist/multistream/sendSlotManager.d.ts +61 -0
  257. package/dist/multistream/sendSlotManager.js +236 -0
  258. package/dist/multistream/sendSlotManager.js.map +1 -0
  259. package/dist/networkQualityMonitor/index.js +5 -4
  260. package/dist/networkQualityMonitor/index.js.map +1 -1
  261. package/dist/personal-meeting-room/index.js +2 -3
  262. package/dist/personal-meeting-room/index.js.map +1 -1
  263. package/dist/personal-meeting-room/request.js +2 -3
  264. package/dist/personal-meeting-room/request.js.map +1 -1
  265. package/dist/personal-meeting-room/util.js +1 -2
  266. package/dist/personal-meeting-room/util.js.map +1 -1
  267. package/dist/reachability/clusterReachability.d.ts +109 -0
  268. package/dist/reachability/clusterReachability.js +357 -0
  269. package/dist/reachability/clusterReachability.js.map +1 -0
  270. package/dist/reachability/index.d.ts +61 -95
  271. package/dist/reachability/index.js +304 -392
  272. package/dist/reachability/index.js.map +1 -1
  273. package/dist/reachability/request.d.ts +7 -3
  274. package/dist/reachability/request.js +18 -10
  275. package/dist/reachability/request.js.map +1 -1
  276. package/dist/reachability/util.d.ts +8 -0
  277. package/dist/reachability/util.js +29 -0
  278. package/dist/reachability/util.js.map +1 -0
  279. package/dist/reactions/constants.d.ts +3 -0
  280. package/dist/reactions/constants.js +12 -0
  281. package/dist/reactions/constants.js.map +1 -0
  282. package/dist/reactions/reactions.d.ts +2 -2
  283. package/dist/reactions/reactions.js +4 -6
  284. package/dist/reactions/reactions.js.map +1 -1
  285. package/dist/reactions/reactions.type.d.ts +23 -3
  286. package/dist/reactions/reactions.type.js +21 -23
  287. package/dist/reactions/reactions.type.js.map +1 -1
  288. package/dist/reconnection-manager/index.d.ts +32 -8
  289. package/dist/reconnection-manager/index.js +285 -232
  290. package/dist/reconnection-manager/index.js.map +1 -1
  291. package/dist/recording-controller/enums.js +4 -5
  292. package/dist/recording-controller/enums.js.map +1 -1
  293. package/dist/recording-controller/index.d.ts +15 -1
  294. package/dist/recording-controller/index.js +57 -46
  295. package/dist/recording-controller/index.js.map +1 -1
  296. package/dist/recording-controller/util.d.ts +5 -4
  297. package/dist/recording-controller/util.js +10 -10
  298. package/dist/recording-controller/util.js.map +1 -1
  299. package/dist/roap/index.d.ts +9 -47
  300. package/dist/roap/index.js +100 -238
  301. package/dist/roap/index.js.map +1 -1
  302. package/dist/roap/request.d.ts +18 -12
  303. package/dist/roap/request.js +126 -180
  304. package/dist/roap/request.js.map +1 -1
  305. package/dist/roap/turnDiscovery.d.ts +27 -16
  306. package/dist/roap/turnDiscovery.js +115 -105
  307. package/dist/roap/turnDiscovery.js.map +1 -1
  308. package/dist/rtcMetrics/constants.d.ts +4 -0
  309. package/dist/rtcMetrics/constants.js +11 -0
  310. package/dist/rtcMetrics/constants.js.map +1 -0
  311. package/dist/rtcMetrics/index.d.ts +54 -0
  312. package/dist/rtcMetrics/index.js +140 -0
  313. package/dist/rtcMetrics/index.js.map +1 -0
  314. package/dist/statsAnalyzer/global.d.ts +1 -83
  315. package/dist/statsAnalyzer/global.js +2 -85
  316. package/dist/statsAnalyzer/global.js.map +1 -1
  317. package/dist/statsAnalyzer/index.d.ts +50 -30
  318. package/dist/statsAnalyzer/index.js +436 -511
  319. package/dist/statsAnalyzer/index.js.map +1 -1
  320. package/dist/statsAnalyzer/mqaUtil.d.ts +8 -6
  321. package/dist/statsAnalyzer/mqaUtil.js +130 -90
  322. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  323. package/dist/transcription/index.js +1 -2
  324. package/dist/transcription/index.js.map +1 -1
  325. package/dist/webinar/collection.d.ts +16 -0
  326. package/dist/webinar/collection.js +43 -0
  327. package/dist/webinar/collection.js.map +1 -0
  328. package/dist/webinar/index.d.ts +5 -0
  329. package/dist/webinar/index.js +68 -0
  330. package/dist/webinar/index.js.map +1 -0
  331. package/package.json +39 -26
  332. package/src/annotation/annotation.types.ts +50 -0
  333. package/src/annotation/constants.ts +36 -0
  334. package/src/annotation/index.ts +328 -0
  335. package/src/breakouts/README.md +220 -0
  336. package/src/breakouts/breakout.ts +188 -0
  337. package/src/breakouts/collection.ts +19 -0
  338. package/src/breakouts/edit-lock-error.ts +25 -0
  339. package/src/breakouts/events.ts +56 -0
  340. package/src/breakouts/index.ts +925 -0
  341. package/src/breakouts/request.ts +55 -0
  342. package/src/breakouts/utils.ts +57 -0
  343. package/src/common/errors/no-meeting-info.ts +24 -0
  344. package/src/common/errors/webex-errors.ts +36 -12
  345. package/src/common/logs/logger-proxy.ts +1 -1
  346. package/src/common/logs/request.ts +5 -1
  347. package/src/common/queue.ts +22 -8
  348. package/src/config.ts +6 -7
  349. package/src/constants.ts +265 -100
  350. package/src/controls-options-manager/enums.ts +12 -0
  351. package/src/controls-options-manager/index.ts +116 -21
  352. package/src/controls-options-manager/types.ts +59 -0
  353. package/src/controls-options-manager/util.ts +294 -14
  354. package/src/index.ts +44 -0
  355. package/src/interceptors/index.ts +3 -0
  356. package/src/interceptors/locusRetry.ts +67 -0
  357. package/src/interpretation/README.md +60 -0
  358. package/src/interpretation/collection.ts +19 -0
  359. package/src/interpretation/index.ts +332 -0
  360. package/src/interpretation/siLanguage.ts +18 -0
  361. package/src/locus-info/controlsUtils.ts +110 -0
  362. package/src/locus-info/index.ts +450 -61
  363. package/src/locus-info/infoUtils.ts +14 -2
  364. package/src/locus-info/mediaSharesUtils.ts +64 -0
  365. package/src/locus-info/parser.ts +258 -47
  366. package/src/locus-info/selfUtils.ts +85 -2
  367. package/src/media/index.ts +153 -370
  368. package/src/media/properties.ts +106 -136
  369. package/src/media/util.ts +0 -21
  370. package/src/mediaQualityMetrics/config.ts +244 -377
  371. package/src/meeting/in-meeting-actions.ts +176 -0
  372. package/src/meeting/index.ts +4306 -2581
  373. package/src/meeting/locusMediaRequest.ts +313 -0
  374. package/src/meeting/muteState.ts +224 -138
  375. package/src/meeting/request.ts +214 -127
  376. package/src/meeting/request.type.ts +13 -0
  377. package/src/meeting/util.ts +687 -423
  378. package/src/meeting/voicea-meeting.ts +161 -0
  379. package/src/meeting-info/index.ts +81 -8
  380. package/src/meeting-info/meeting-info-v2.ts +163 -13
  381. package/src/meeting-info/util.ts +1 -1
  382. package/src/meeting-info/utilv2.ts +28 -28
  383. package/src/meetings/collection.ts +33 -0
  384. package/src/meetings/index.ts +529 -127
  385. package/src/meetings/meetings.types.ts +12 -0
  386. package/src/meetings/request.ts +2 -0
  387. package/src/meetings/util.ts +116 -5
  388. package/src/member/index.ts +43 -1
  389. package/src/member/types.ts +38 -0
  390. package/src/member/util.ts +125 -28
  391. package/src/members/collection.ts +8 -0
  392. package/src/members/index.ts +187 -52
  393. package/src/members/request.ts +87 -27
  394. package/src/members/util.ts +332 -291
  395. package/src/metrics/constants.ts +15 -6
  396. package/src/metrics/index.ts +1 -471
  397. package/src/multistream/mediaRequestManager.ts +440 -0
  398. package/src/multistream/receiveSlot.ts +184 -0
  399. package/src/multistream/receiveSlotManager.ts +166 -0
  400. package/src/multistream/remoteMedia.ts +254 -0
  401. package/src/multistream/remoteMediaGroup.ts +284 -0
  402. package/src/multistream/remoteMediaManager.ts +1145 -0
  403. package/src/multistream/sendSlotManager.ts +170 -0
  404. package/src/networkQualityMonitor/index.ts +6 -6
  405. package/src/reachability/clusterReachability.ts +320 -0
  406. package/src/reachability/index.ts +246 -347
  407. package/src/reachability/request.ts +17 -8
  408. package/src/reachability/util.ts +24 -0
  409. package/src/reactions/constants.ts +4 -0
  410. package/src/reactions/reactions.ts +4 -4
  411. package/src/reactions/reactions.type.ts +30 -4
  412. package/src/reconnection-manager/index.ts +168 -156
  413. package/src/recording-controller/index.ts +20 -3
  414. package/src/recording-controller/util.ts +26 -9
  415. package/src/roap/index.ts +96 -241
  416. package/src/roap/request.ts +74 -148
  417. package/src/roap/turnDiscovery.ts +62 -56
  418. package/src/rtcMetrics/constants.ts +3 -0
  419. package/src/rtcMetrics/index.ts +124 -0
  420. package/src/statsAnalyzer/global.ts +1 -84
  421. package/src/statsAnalyzer/index.ts +479 -645
  422. package/src/statsAnalyzer/mqaUtil.ts +128 -126
  423. package/src/webinar/collection.ts +31 -0
  424. package/src/webinar/index.ts +62 -0
  425. package/test/integration/spec/converged-space-meetings.js +233 -0
  426. package/test/integration/spec/journey.js +320 -264
  427. package/test/integration/spec/space-meeting.js +77 -4
  428. package/test/unit/spec/annotation/index.ts +418 -0
  429. package/test/unit/spec/breakouts/breakout.ts +237 -0
  430. package/test/unit/spec/breakouts/collection.ts +15 -0
  431. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  432. package/test/unit/spec/breakouts/events.ts +89 -0
  433. package/test/unit/spec/breakouts/index.ts +1790 -0
  434. package/test/unit/spec/breakouts/request.ts +104 -0
  435. package/test/unit/spec/breakouts/utils.js +72 -0
  436. package/test/unit/spec/common/queue.js +31 -2
  437. package/test/unit/spec/controls-options-manager/index.js +163 -0
  438. package/test/unit/spec/controls-options-manager/util.js +576 -60
  439. package/test/unit/spec/fixture/locus.js +1 -0
  440. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  441. package/test/unit/spec/interpretation/collection.ts +15 -0
  442. package/test/unit/spec/interpretation/index.ts +589 -0
  443. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  444. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  445. package/test/unit/spec/locus-info/index.js +1438 -16
  446. package/test/unit/spec/locus-info/infoUtils.js +54 -16
  447. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  448. package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
  449. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  450. package/test/unit/spec/locus-info/parser.js +116 -35
  451. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  452. package/test/unit/spec/media/index.ts +290 -0
  453. package/test/unit/spec/media/properties.ts +75 -84
  454. package/test/unit/spec/meeting/in-meeting-actions.ts +86 -0
  455. package/test/unit/spec/meeting/index.js +8886 -2815
  456. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  457. package/test/unit/spec/meeting/muteState.js +409 -213
  458. package/test/unit/spec/meeting/request.js +523 -43
  459. package/test/unit/spec/meeting/utils.js +834 -24
  460. package/test/unit/spec/meeting-info/index.js +300 -0
  461. package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
  462. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  463. package/test/unit/spec/meetings/collection.js +26 -0
  464. package/test/unit/spec/meetings/index.js +1446 -217
  465. package/test/unit/spec/meetings/utils.js +202 -2
  466. package/test/unit/spec/member/index.js +32 -9
  467. package/test/unit/spec/member/util.js +499 -61
  468. package/test/unit/spec/members/index.js +394 -5
  469. package/test/unit/spec/members/request.js +206 -27
  470. package/test/unit/spec/members/utils.js +173 -38
  471. package/test/unit/spec/metrics/index.js +1 -50
  472. package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
  473. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  474. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  475. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  476. package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
  477. package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
  478. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  479. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  480. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  481. package/test/unit/spec/reachability/index.ts +532 -24
  482. package/test/unit/spec/reachability/request.js +68 -0
  483. package/test/unit/spec/reachability/util.ts +40 -0
  484. package/test/unit/spec/reconnection-manager/index.js +163 -24
  485. package/test/unit/spec/recording-controller/index.js +293 -218
  486. package/test/unit/spec/recording-controller/util.js +223 -96
  487. package/test/unit/spec/roap/index.ts +187 -77
  488. package/test/unit/spec/roap/request.ts +255 -0
  489. package/test/unit/spec/roap/turnDiscovery.ts +86 -48
  490. package/test/unit/spec/rtcMetrics/index.ts +93 -0
  491. package/test/unit/spec/stats-analyzer/index.js +644 -165
  492. package/test/unit/spec/webinar/collection.ts +13 -0
  493. package/test/unit/spec/webinar/index.ts +60 -0
  494. package/test/utils/constants.js +9 -0
  495. package/test/utils/integrationTestUtils.js +46 -0
  496. package/test/utils/testUtils.js +0 -45
  497. package/test/utils/webex-config.js +4 -0
  498. package/test/utils/webex-test-users.js +7 -3
  499. package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
  500. package/dist/meeting/effectsState.d.ts +0 -42
  501. package/dist/meeting/effectsState.js +0 -260
  502. package/dist/meeting/effectsState.js.map +0 -1
  503. package/dist/metrics/config.d.ts +0 -169
  504. package/dist/metrics/config.js +0 -289
  505. package/dist/metrics/config.js.map +0 -1
  506. package/dist/peer-connection-manager/index.d.ts +0 -6
  507. package/dist/peer-connection-manager/index.js +0 -671
  508. package/dist/peer-connection-manager/index.js.map +0 -1
  509. package/dist/peer-connection-manager/util.d.ts +0 -6
  510. package/dist/peer-connection-manager/util.js +0 -110
  511. package/dist/peer-connection-manager/util.js.map +0 -1
  512. package/dist/roap/collection.d.ts +0 -10
  513. package/dist/roap/collection.js +0 -63
  514. package/dist/roap/collection.js.map +0 -1
  515. package/dist/roap/handler.d.ts +0 -47
  516. package/dist/roap/handler.js +0 -279
  517. package/dist/roap/handler.js.map +0 -1
  518. package/dist/roap/state.d.ts +0 -9
  519. package/dist/roap/state.js +0 -127
  520. package/dist/roap/state.js.map +0 -1
  521. package/dist/roap/util.d.ts +0 -2
  522. package/dist/roap/util.js +0 -76
  523. package/dist/roap/util.js.map +0 -1
  524. package/src/index.js +0 -15
  525. package/src/meeting/effectsState.ts +0 -209
  526. package/src/metrics/config.ts +0 -485
  527. package/src/peer-connection-manager/index.ts +0 -847
  528. package/src/peer-connection-manager/util.ts +0 -119
  529. package/src/roap/collection.ts +0 -62
  530. package/src/roap/handler.ts +0 -294
  531. package/src/roap/state.ts +0 -156
  532. package/src/roap/util.ts +0 -100
  533. package/test/unit/spec/meeting/effectsState.js +0 -281
  534. package/test/unit/spec/peerconnection-manager/index.js +0 -218
  535. package/test/unit/spec/peerconnection-manager/utils.js +0 -49
  536. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
  537. package/test/unit/spec/roap/util.js +0 -30
  538. /package/dist/common/errors/{reclaim-host-role-error.d.ts → reclaim-host-role-errors.d.ts} +0 -0
  539. /package/src/common/errors/{reclaim-host-role-error.ts → reclaim-host-role-errors.ts} +0 -0
@@ -1,67 +1,6 @@
1
1
  /*!
2
2
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
3
  */
4
- import util from 'util';
5
-
6
- import {includes} from 'lodash';
7
- import uuid from 'uuid';
8
- // @ts-ignore
9
- import window from 'global/window';
10
- import anonymize from 'ip-anonymize';
11
-
12
- // @ts-ignore
13
- import {getOSNameInternal} from '@webex/internal-plugin-metrics';
14
- import LoggerProxy from '../common/logs/logger-proxy';
15
- import {MEETING_ERRORS} from '../constants';
16
- import BrowserDetection from '../common/browser-detection';
17
-
18
- import {
19
- error,
20
- eventType,
21
- errorCodes as ERROR_CODE,
22
- UNKNOWN,
23
- CLIENT_NAME,
24
- mediaType,
25
- } from './config';
26
-
27
- const {getOSName, getOSVersion, getBrowserName, getBrowserVersion} = BrowserDetection();
28
-
29
- // Apply a CIDR /28 format to the IPV4 and /96 to the IPV6 addresses
30
- // For reference : https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing
31
- const anonymizeIPAddress = (localIp) => anonymize(localIp, 28, 96);
32
-
33
- const triggerTimers = ({event, meeting, data}) => {
34
- switch (event) {
35
- case eventType.CALL_INITIATED:
36
- meeting.setStartCallInitiateJoinReq();
37
- break;
38
- case eventType.LOCUS_JOIN_REQUEST:
39
- meeting.setEndCallInitiateJoinReq();
40
- meeting.setStartJoinReqResp();
41
- break;
42
- case eventType.LOCUS_JOIN_RESPONSE:
43
- meeting.setEndJoinReqResp();
44
- meeting.setStartSetupDelay(mediaType.AUDIO);
45
- meeting.setStartSetupDelay(mediaType.VIDEO);
46
- meeting.setStartSendingMediaDelay(mediaType.AUDIO);
47
- meeting.setStartSendingMediaDelay(mediaType.VIDEO);
48
- break;
49
- case eventType.RECEIVING_MEDIA_START:
50
- meeting.setEndSetupDelay(data.mediaType);
51
- break;
52
- case eventType.SENDING_MEDIA_START:
53
- meeting.setEndSendingMediaDelay(data.mediaType);
54
- break;
55
- case eventType.LOCAL_SDP_GENERATED:
56
- meeting.setStartLocalSDPGenRemoteSDPRecvDelay();
57
- break;
58
- case eventType.REMOTE_SDP_RECEIVED:
59
- meeting.setEndLocalSDPGenRemoteSDPRecvDelay();
60
- break;
61
- default:
62
- break;
63
- }
64
- };
65
4
 
66
5
  /**
67
6
  * @description Metrics handles all the call metrics events
@@ -70,10 +9,6 @@ const triggerTimers = ({event, meeting, data}) => {
70
9
  */
71
10
  class Metrics {
72
11
  static instance: Metrics;
73
-
74
- _events: any;
75
- keys: any;
76
- meetingCollection: any;
77
12
  webex: any;
78
13
 
79
14
  /**
@@ -84,27 +19,6 @@ class Metrics {
84
19
  */
85
20
  constructor() {
86
21
  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
22
  /**
109
23
  * @instance
110
24
  * @type {Metrics}
@@ -121,398 +35,14 @@ class Metrics {
121
35
  /**
122
36
  * Initializes the Metrics singleton with a meeting Collection.
123
37
  *
124
- * @param {Object} meetingCollection meetings object
125
38
  * @param {Object} webex webex SDK object
126
39
  *
127
40
  * @returns {void}
128
41
  */
129
- initialSetup(meetingCollection: object, webex: object) {
130
- this.meetingCollection = meetingCollection;
42
+ initialSetup(webex: object) {
131
43
  this.webex = webex;
132
44
  }
133
45
 
134
- /**
135
- * poste Meeting event metrics
136
- * @param {object} options {meetingId/meeting} as a json object
137
- * @param {Meeting} options.meeting Meeting object
138
- * @param {String} options.meetingId
139
- * @param {object} options.data
140
- * @param {object} options.event
141
- * @returns {object} null
142
- */
143
- postEvent(options: {meeting?: any; meetingId?: string; data?: object; event?: any} | any) {
144
- const {meetingId, data = {}, event} = options;
145
- let {meeting} = options;
146
-
147
- if (this.keys.indexOf(event) === -1) {
148
- LoggerProxy.logger.error(
149
- `Metrics:index#postEvent --> Event ${event} doesn't exist in dictionary`
150
- );
151
- }
152
-
153
- if (!meeting && meetingId) {
154
- meeting = this.meetingCollection.get(meetingId);
155
- options.meeting = meeting;
156
- }
157
-
158
- if (meeting) {
159
- triggerTimers(options);
160
-
161
- if (!meeting.callEvents) {
162
- meeting.callEvents = [];
163
- }
164
- if (event === eventType.MEDIA_QUALITY) {
165
- data.event = event;
166
- meeting.sendMediaQualityAnalyzerMetrics(data);
167
- } else {
168
- meeting.callEvents.push(event);
169
- data.event = event;
170
- meeting.sendCallAnalyzerMetrics(data);
171
- }
172
- } else {
173
- LoggerProxy.logger.info(
174
- `Metrics:index#postEvent --> Event received for meetingId:${meetingId}, but meeting not found in collection.`
175
- );
176
- }
177
- }
178
-
179
- /**
180
- * Docs for Call analyzer metrics
181
- * https://sqbu-github.cisco.com/WebExSquared/call-analyzer/wiki
182
- * https://sqbu-github.cisco.com/WebExSquared/event-dictionary/blob/master/diagnostic-events.raml
183
- */
184
-
185
- // eslint-disable-next-line @typescript-eslint/no-shadow
186
- initPayload(eventType, identifiers, options) {
187
- const payload: any = {
188
- eventId: uuid.v4(),
189
- version: 1,
190
- origin: {
191
- name: 'endpoint',
192
- networkType: 'unknown',
193
- userAgent: this.userAgentToString(),
194
- clientInfo: {
195
- clientType: options.clientType,
196
- clientVersion: `${CLIENT_NAME}/${this.webex.version}`,
197
- localNetworkPrefix: anonymizeIPAddress(this.webex.meetings.geoHintInfo?.clientAddress),
198
- osVersion: getOSVersion() || 'unknown',
199
- subClientType: options.subClientType,
200
- os: getOSNameInternal(),
201
- browser: getBrowserName(),
202
- browserVersion: getBrowserVersion(),
203
- },
204
- },
205
- originTime: {
206
- triggered: new Date().toISOString(),
207
- },
208
- senderCountryCode: this.webex.meetings.geoHintInfo?.countryCode,
209
- event: {
210
- name: eventType,
211
- canProceed: true,
212
- identifiers,
213
- eventData: {webClientDomain: window.location.hostname},
214
- },
215
- };
216
-
217
- // TODO: more options should be checked and some of them should be mandatory in certain conditions
218
- if (options) {
219
- if (Object.prototype.hasOwnProperty.call(options, 'canProceed')) {
220
- payload.event.canProceed = options.canProceed;
221
- }
222
- if (options.errors) {
223
- payload.event.errors = options.errors;
224
- }
225
- if (options.mediaType) {
226
- payload.event.mediaType = options.mediaType;
227
- }
228
- if (options.trigger) {
229
- payload.event.trigger = options.trigger;
230
- }
231
- if (options.pstnAudioType) {
232
- payload.event.pstnAudioType = options.pstnAudioType;
233
- }
234
- if (options.mediaCapabilities) {
235
- payload.event.mediaCapabilities = options.mediaCapabilities;
236
- }
237
- if (options.recoveredBy) {
238
- payload.event.recoveredBy = options.recoveredBy;
239
- }
240
- if (options.joinTimes) {
241
- payload.event.joinTimes = options.joinTimes;
242
- }
243
- if (options.isRoapCallEnabled) {
244
- payload.event.isRoapCallEnabled = options.isRoapCallEnabled;
245
- }
246
- }
247
-
248
- return payload;
249
- }
250
-
251
- /**
252
- * get the payload specific for a media quality event through call analyzer
253
- * @param {String} eventType the event name
254
- * @param {Object} identifiers contains the identifiers needed for CA
255
- * @param {String} identifiers.correlationId
256
- * @param {String} identifiers.locusUrl
257
- * @param {String} identifiers.locusId
258
- * @param {Object} options
259
- * @param {Object} options.intervalData
260
- * @param {String} options.clientType
261
- * @returns {Object}
262
- * @public
263
- * @memberof Metrics
264
- */
265
- public initMediaPayload(
266
- // eslint-disable-next-line @typescript-eslint/no-shadow
267
- eventType: string,
268
- identifiers: {
269
- correlationId: string;
270
- locusUrl: string;
271
- locusId: string;
272
- },
273
- options:
274
- | {
275
- intervalData: object;
276
- clientType: string;
277
- }
278
- | any = {}
279
- ) {
280
- const {audioSetupDelay, videoSetupDelay, joinTimes} = options;
281
-
282
- const payload = {
283
- eventId: uuid.v4(),
284
- version: 1,
285
- origin: {
286
- audioSetupDelay,
287
- videoSetupDelay,
288
- name: 'endpoint',
289
- networkType: options.networkType || UNKNOWN,
290
- userAgent: this.userAgentToString(),
291
- clientInfo: {
292
- clientType: options.clientType, // TODO: Only clientType: 'TEAMS_CLIENT' is whitelisted
293
- clientVersion: `${CLIENT_NAME}/${this.webex.version}`,
294
- localNetworkPrefix: anonymizeIPAddress(this.webex.meetings.geoHintInfo?.clientAddress),
295
- os: getOSNameInternal(),
296
- osVersion: getOSVersion() || UNKNOWN,
297
- subClientType: options.subClientType,
298
- browser: getBrowserName(),
299
- browserVersion: getBrowserVersion(),
300
- },
301
- },
302
- originTime: {
303
- triggered: new Date().toISOString(),
304
- },
305
- senderCountryCode: this.webex.meetings.geoHintInfo?.countryCode,
306
- event: {
307
- name: eventType,
308
- canProceed: true,
309
- identifiers,
310
- intervals: [options.intervalData],
311
- joinTimes,
312
- eventData: {
313
- webClientDomain: window.location.hostname,
314
- },
315
- sourceMetadata: {
316
- applicationSoftwareType: CLIENT_NAME,
317
- applicationSoftwareVersion: this.webex.version,
318
- mediaEngineSoftwareType: getBrowserName() || 'browser',
319
- mediaEngineSoftwareVersion: getOSVersion() || UNKNOWN,
320
- startTime: new Date().toISOString(),
321
- },
322
- },
323
- };
324
-
325
- return payload;
326
- }
327
-
328
- /**
329
- * This function Parses a Locus error and returns a diagnostic event payload.
330
- * It should keep updating from:
331
- * https://sqbu-github.cisco.com/WebExSquared/spark-client-framework/blob/master/spark-client-framework/Adapters/TelephonyAdapter/TelephonyAdapter.cpp#L920
332
- *
333
- * @param {Object} err the error Object from Locus response
334
- * @param {boolean} showToUser true if a toast is shown to user
335
- * @returns {{showToUser: boolean, category: string, errorDescription: string,
336
- * errorCode: number, errorData: *, fatal: boolean, name: string}}
337
- */
338
- parseLocusError(err: any, showToUser: boolean) {
339
- let errorCode;
340
-
341
- if (err && err.statusCode && err.statusCode >= 500) {
342
- errorCode = 1003;
343
- } else if (err && err.body && err.body.errorCode) {
344
- // locus error codes: https://sqbu-github.cisco.com/WebExSquared/locus/blob/master/server/src/main/resources/locus-error-codes.properties
345
- switch (ERROR_CODE[err.body.errorCode]) {
346
- case MEETING_ERRORS.FREE_USER_MAX_PARTICIPANTS_EXCEEDED:
347
- errorCode = 3007;
348
- break;
349
- case MEETING_ERRORS.PAID_USER_MAX_PARTICIPANTS_EXCEEDED:
350
- case MEETING_ERRORS.SERVICE_MAX_PARTICIPANTS_EXCEEDED:
351
- errorCode = 3002;
352
- break;
353
- case MEETING_ERRORS.INACTIVE:
354
- errorCode = 4001;
355
- break;
356
- case MEETING_ERRORS.EXCEEDED_MAX_JOINED_PARTICIPANTS:
357
- case MEETING_ERRORS.EXCEEDED_SERVICE_MAX_PARTICIPANTS:
358
- errorCode = 3001;
359
- break;
360
- case MEETING_ERRORS.MEETING_IS_LOCKED:
361
- errorCode = 4002;
362
- break;
363
- case MEETING_ERRORS.MEETING_IS_TERMINATING:
364
- errorCode = 4003;
365
- break;
366
- case MEETING_ERRORS.MEETING_REQUIRE_MODERATOR_PIN_INTENT:
367
- errorCode = 4004;
368
- break;
369
- case MEETING_ERRORS.MEETING_REQUIRE_MODERATOR_PIN:
370
- errorCode = 4005;
371
- break;
372
- case MEETING_ERRORS.MEETING_REQUIRE_MODERATOR_ROLE:
373
- errorCode = 4006;
374
- break;
375
- case MEETING_ERRORS.JOIN_RESTRICTED_USER:
376
- case MEETING_ERRORS.GET_RESTRICTED_USER:
377
- case MEETING_ERRORS.CREATE_MEDIA_RESTRICTED_USER:
378
- errorCode = 3005;
379
- break;
380
- case MEETING_ERRORS.JOIN_RESTRICTED_USER_NOT_IN_ROOM:
381
- errorCode = 4007;
382
- break;
383
- case MEETING_ERRORS.MEETING_NOT_FOUND:
384
- errorCode = 4011;
385
- break;
386
- case MEETING_ERRORS.NOT_WEBEX_SITE:
387
- errorCode = 4012;
388
- break;
389
- case MEETING_ERRORS.INVALID_JOIN_TIME:
390
- errorCode = 4013;
391
- break;
392
- case MEETING_ERRORS.PHONE_NUMBER_NOT_A_NUMBER:
393
- errorCode = 4016;
394
- break;
395
- case MEETING_ERRORS.PHONE_NUMBER_TOO_LONG:
396
- errorCode = 4017;
397
- break;
398
- case MEETING_ERRORS.INVALID_DIALABLE_KEY:
399
- errorCode = 4018;
400
- break;
401
- case MEETING_ERRORS.ONE_ON_ONE_TO_SELF_NOT_ALLOWED:
402
- errorCode = 4019;
403
- break;
404
- case MEETING_ERRORS.REMOVED_PARTICIPANT:
405
- errorCode = 4020;
406
- break;
407
- case MEETING_ERRORS.MEETING_LINK_NOT_FOUND:
408
- errorCode = 4021;
409
- break;
410
- case MEETING_ERRORS.PHONE_NUMBER_TOO_SHORT_AFTER_IDD:
411
- errorCode = 4022;
412
- break;
413
- case MEETING_ERRORS.INVALID_INVITEE_ADDRESS:
414
- errorCode = 4023;
415
- break;
416
- case MEETING_ERRORS.PMR_ACCOUNT_LOCKED:
417
- errorCode = 4024;
418
- break;
419
- case MEETING_ERRORS.RESOURCE_GUEST_FORBIDDEN:
420
- errorCode = 4025;
421
- break;
422
- case MEETING_ERRORS.PMR_ACCOUNT_SUSPENDED:
423
- errorCode = 4026;
424
- break;
425
- case MEETING_ERRORS.EMPTY_PHONE_NUMBER_OR_COUNTRY_CODE:
426
- errorCode = 4027;
427
- break;
428
- case MEETING_ERRORS.INVALID_SINCE_OR_SEQUENCE_HASH_IN_REQUEST:
429
- errorCode = 1006;
430
- break;
431
- case MEETING_ERRORS.CONVERSATION_NOT_FOUND:
432
- errorCode = 4028;
433
- break;
434
- case MEETING_ERRORS.RECORDING_CONTROL_NOT_SUPPORTED:
435
- case MEETING_ERRORS.RECORDING_NOT_STARTED:
436
- case MEETING_ERRORS.RECORDING_NOT_ENABLED:
437
- errorCode = 4029;
438
- break;
439
- default:
440
- errorCode = 4008;
441
- }
442
- } else {
443
- errorCode = 4008;
444
- }
445
-
446
- return this.generateErrorPayload(errorCode, showToUser, error.name.LOCUS_RESPONSE, err);
447
- }
448
-
449
- generateErrorPayload(errorCode, shownToUser, name, err) {
450
- if (error.errors[errorCode]) {
451
- const errorPayload: any = {
452
- shownToUser: shownToUser || false,
453
- category: error.errors[errorCode][2],
454
- errorDescription: error.errors[errorCode][0],
455
- errorCode,
456
- fatal: !includes(error.notFatalErrorList, errorCode),
457
- name: name || error.name.OTHER,
458
- };
459
-
460
- if (err && err.body) {
461
- errorPayload.errorData = err.body;
462
- }
463
-
464
- if (err && err.statusCode) {
465
- errorPayload.httpCode = err.statusCode;
466
- }
467
-
468
- return errorPayload;
469
- }
470
-
471
- return null;
472
- }
473
-
474
- /**
475
- * Returns a formated string of the user agent.
476
- *
477
- * @returns {string} formatted user agent information
478
- */
479
- userAgentToString() {
480
- let userAgentOption;
481
- let browserInfo;
482
- const clientInfo = util.format('client=%s', `${this.webex.meetings?.metrics?.clientName}`);
483
-
484
- if (
485
- ['chrome', 'firefox', 'msie', 'msedge', 'safari'].indexOf(getBrowserName().toLowerCase()) !==
486
- -1
487
- ) {
488
- browserInfo = util.format(
489
- 'browser=%s',
490
- `${getBrowserName().toLowerCase()}/${getBrowserVersion().split('.')[0]}`
491
- );
492
- }
493
- const osInfo = util.format('os=%s', `${getOSName()}/${getOSVersion().split('.')[0]}`);
494
-
495
- if (browserInfo) {
496
- userAgentOption = `(${browserInfo}`;
497
- }
498
- if (osInfo) {
499
- userAgentOption = userAgentOption
500
- ? `${userAgentOption}; ${clientInfo}; ${osInfo}`
501
- : `${clientInfo}; (${osInfo}`;
502
- }
503
- if (userAgentOption) {
504
- userAgentOption += ')';
505
-
506
- return util.format(
507
- 'webex-js-sdk/%s %s',
508
- `${process.env.NODE_ENV}-${this.webex.version}`,
509
- userAgentOption
510
- );
511
- }
512
-
513
- return util.format('webex-js-sdk/%s', `${process.env.NODE_ENV}-${this.webex.version}`);
514
- }
515
-
516
46
  /**
517
47
  * Uploads given metric to the Metrics service as an Behavioral metric.
518
48
  * Metadata about the environment such as browser, OS, SDK and their versions