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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (528) hide show
  1. package/README.md +46 -8
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +41 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +357 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +215 -0
  9. package/dist/breakouts/breakout.js.map +1 -0
  10. package/dist/breakouts/collection.js +22 -0
  11. package/dist/breakouts/collection.js.map +1 -0
  12. package/dist/breakouts/edit-lock-error.js +51 -0
  13. package/dist/breakouts/edit-lock-error.js.map +1 -0
  14. package/dist/breakouts/events.js +44 -0
  15. package/dist/breakouts/events.js.map +1 -0
  16. package/dist/breakouts/index.js +1047 -0
  17. package/dist/breakouts/index.js.map +1 -0
  18. package/dist/breakouts/request.js +77 -0
  19. package/dist/breakouts/request.js.map +1 -0
  20. package/dist/breakouts/utils.js +64 -0
  21. package/dist/breakouts/utils.js.map +1 -0
  22. package/dist/common/browser-detection.js +2 -3
  23. package/dist/common/browser-detection.js.map +1 -1
  24. package/dist/common/collection.js +3 -4
  25. package/dist/common/collection.js.map +1 -1
  26. package/dist/common/config.js +1 -2
  27. package/dist/common/config.js.map +1 -1
  28. package/dist/common/errors/captcha-error.js +1 -2
  29. package/dist/common/errors/captcha-error.js.map +1 -1
  30. package/dist/common/errors/intent-to-join.js +1 -2
  31. package/dist/common/errors/intent-to-join.js.map +1 -1
  32. package/dist/common/errors/join-meeting.js +1 -2
  33. package/dist/common/errors/join-meeting.js.map +1 -1
  34. package/dist/common/errors/media.js +1 -2
  35. package/dist/common/errors/media.js.map +1 -1
  36. package/dist/common/errors/no-meeting-info.js +50 -0
  37. package/dist/common/errors/no-meeting-info.js.map +1 -0
  38. package/dist/common/errors/parameter.js +3 -4
  39. package/dist/common/errors/parameter.js.map +1 -1
  40. package/dist/common/errors/password-error.js +1 -2
  41. package/dist/common/errors/password-error.js.map +1 -1
  42. package/dist/common/errors/permission.js +1 -2
  43. package/dist/common/errors/permission.js.map +1 -1
  44. package/dist/common/errors/reclaim-host-role-errors.js +154 -0
  45. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  46. package/dist/common/errors/reconnection-in-progress.js +1 -2
  47. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  48. package/dist/common/errors/reconnection.js +1 -2
  49. package/dist/common/errors/reconnection.js.map +1 -1
  50. package/dist/common/errors/stats.js +1 -2
  51. package/dist/common/errors/stats.js.map +1 -1
  52. package/dist/common/errors/webex-errors.js +48 -28
  53. package/dist/common/errors/webex-errors.js.map +1 -1
  54. package/dist/common/errors/webex-meetings-error.js +1 -2
  55. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  56. package/dist/common/events/events-scope.js +1 -2
  57. package/dist/common/events/events-scope.js.map +1 -1
  58. package/dist/common/events/events.js +1 -2
  59. package/dist/common/events/events.js.map +1 -1
  60. package/dist/common/events/trigger-proxy.js +1 -2
  61. package/dist/common/events/trigger-proxy.js.map +1 -1
  62. package/dist/common/events/util.js +1 -2
  63. package/dist/common/events/util.js.map +1 -1
  64. package/dist/common/logs/logger-config.js +1 -2
  65. package/dist/common/logs/logger-config.js.map +1 -1
  66. package/dist/common/logs/logger-proxy.js +2 -3
  67. package/dist/common/logs/logger-proxy.js.map +1 -1
  68. package/dist/common/logs/request.js +8 -5
  69. package/dist/common/logs/request.js.map +1 -1
  70. package/dist/common/queue.js +22 -9
  71. package/dist/common/queue.js.map +1 -1
  72. package/dist/config.js +8 -11
  73. package/dist/config.js.map +1 -1
  74. package/dist/constants.js +437 -435
  75. package/dist/constants.js.map +1 -1
  76. package/dist/controls-options-manager/constants.js +3 -6
  77. package/dist/controls-options-manager/constants.js.map +1 -1
  78. package/dist/controls-options-manager/enums.js +15 -6
  79. package/dist/controls-options-manager/enums.js.map +1 -1
  80. package/dist/controls-options-manager/index.js +127 -38
  81. package/dist/controls-options-manager/index.js.map +1 -1
  82. package/dist/controls-options-manager/types.js +7 -0
  83. package/dist/controls-options-manager/types.js.map +1 -0
  84. package/dist/controls-options-manager/util.js +309 -19
  85. package/dist/controls-options-manager/util.js.map +1 -1
  86. package/dist/index.js +116 -4
  87. package/dist/index.js.map +1 -1
  88. package/dist/interpretation/collection.js +22 -0
  89. package/dist/interpretation/collection.js.map +1 -0
  90. package/dist/interpretation/index.js +365 -0
  91. package/dist/interpretation/index.js.map +1 -0
  92. package/dist/interpretation/siLanguage.js +24 -0
  93. package/dist/interpretation/siLanguage.js.map +1 -0
  94. package/dist/locus-info/controlsUtils.js +100 -11
  95. package/dist/locus-info/controlsUtils.js.map +1 -1
  96. package/dist/locus-info/embeddedAppsUtils.js +3 -4
  97. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  98. package/dist/locus-info/fullState.js +1 -2
  99. package/dist/locus-info/fullState.js.map +1 -1
  100. package/dist/locus-info/hostUtils.js +1 -2
  101. package/dist/locus-info/hostUtils.js.map +1 -1
  102. package/dist/locus-info/index.js +425 -84
  103. package/dist/locus-info/index.js.map +1 -1
  104. package/dist/locus-info/infoUtils.js +13 -5
  105. package/dist/locus-info/infoUtils.js.map +1 -1
  106. package/dist/locus-info/mediaSharesUtils.js +58 -3
  107. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  108. package/dist/locus-info/parser.js +253 -80
  109. package/dist/locus-info/parser.js.map +1 -1
  110. package/dist/locus-info/selfUtils.js +97 -13
  111. package/dist/locus-info/selfUtils.js.map +1 -1
  112. package/dist/media/index.js +106 -319
  113. package/dist/media/index.js.map +1 -1
  114. package/dist/media/properties.js +96 -153
  115. package/dist/media/properties.js.map +1 -1
  116. package/dist/media/util.js +1 -22
  117. package/dist/media/util.js.map +1 -1
  118. package/dist/mediaQualityMetrics/config.js +498 -493
  119. package/dist/mediaQualityMetrics/config.js.map +1 -1
  120. package/dist/meeting/in-meeting-actions.js +92 -3
  121. package/dist/meeting/in-meeting-actions.js.map +1 -1
  122. package/dist/meeting/index.js +4628 -2971
  123. package/dist/meeting/index.js.map +1 -1
  124. package/dist/meeting/locusMediaRequest.js +291 -0
  125. package/dist/meeting/locusMediaRequest.js.map +1 -0
  126. package/dist/meeting/muteState.js +224 -133
  127. package/dist/meeting/muteState.js.map +1 -1
  128. package/dist/meeting/request.js +297 -199
  129. package/dist/meeting/request.js.map +1 -1
  130. package/dist/meeting/request.type.js +7 -0
  131. package/dist/meeting/request.type.js.map +1 -0
  132. package/dist/meeting/state.js +1 -2
  133. package/dist/meeting/state.js.map +1 -1
  134. package/dist/meeting/util.js +605 -435
  135. package/dist/meeting/util.js.map +1 -1
  136. package/dist/meeting-info/collection.js +3 -4
  137. package/dist/meeting-info/collection.js.map +1 -1
  138. package/dist/meeting-info/index.js +74 -7
  139. package/dist/meeting-info/index.js.map +1 -1
  140. package/dist/meeting-info/meeting-info-v2.js +200 -63
  141. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  142. package/dist/meeting-info/request.js +1 -2
  143. package/dist/meeting-info/request.js.map +1 -1
  144. package/dist/meeting-info/util.js +2 -3
  145. package/dist/meeting-info/util.js.map +1 -1
  146. package/dist/meeting-info/utilv2.js +39 -41
  147. package/dist/meeting-info/utilv2.js.map +1 -1
  148. package/dist/meetings/collection.js +42 -4
  149. package/dist/meetings/collection.js.map +1 -1
  150. package/dist/meetings/index.js +477 -123
  151. package/dist/meetings/index.js.map +1 -1
  152. package/dist/meetings/meetings.types.js +7 -0
  153. package/dist/meetings/meetings.types.js.map +1 -0
  154. package/dist/meetings/request.js +4 -3
  155. package/dist/meetings/request.js.map +1 -1
  156. package/dist/meetings/util.js +107 -6
  157. package/dist/meetings/util.js.map +1 -1
  158. package/dist/member/index.js +54 -2
  159. package/dist/member/index.js.map +1 -1
  160. package/dist/member/member.types.js +3 -4
  161. package/dist/member/member.types.js.map +1 -1
  162. package/dist/member/types.js +23 -0
  163. package/dist/member/types.js.map +1 -0
  164. package/dist/member/util.js +131 -29
  165. package/dist/member/util.js.map +1 -1
  166. package/dist/members/collection.js +11 -2
  167. package/dist/members/collection.js.map +1 -1
  168. package/dist/members/index.js +174 -10
  169. package/dist/members/index.js.map +1 -1
  170. package/dist/members/request.js +108 -41
  171. package/dist/members/request.js.map +1 -1
  172. package/dist/members/types.js +14 -0
  173. package/dist/members/types.js.map +1 -0
  174. package/dist/members/util.js +327 -234
  175. package/dist/members/util.js.map +1 -1
  176. package/dist/metrics/constants.js +15 -9
  177. package/dist/metrics/constants.js.map +1 -1
  178. package/dist/metrics/index.js +4 -452
  179. package/dist/metrics/index.js.map +1 -1
  180. package/dist/multistream/mediaRequestManager.js +344 -0
  181. package/dist/multistream/mediaRequestManager.js.map +1 -0
  182. package/dist/multistream/receiveSlot.js +200 -0
  183. package/dist/multistream/receiveSlot.js.map +1 -0
  184. package/dist/multistream/receiveSlotManager.js +174 -0
  185. package/dist/multistream/receiveSlotManager.js.map +1 -0
  186. package/dist/multistream/remoteMedia.js +268 -0
  187. package/dist/multistream/remoteMedia.js.map +1 -0
  188. package/dist/multistream/remoteMediaGroup.js +267 -0
  189. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  190. package/dist/multistream/remoteMediaManager.js +1211 -0
  191. package/dist/multistream/remoteMediaManager.js.map +1 -0
  192. package/dist/multistream/sendSlotManager.js +236 -0
  193. package/dist/multistream/sendSlotManager.js.map +1 -0
  194. package/dist/networkQualityMonitor/index.js +5 -4
  195. package/dist/networkQualityMonitor/index.js.map +1 -1
  196. package/dist/personal-meeting-room/index.js +2 -3
  197. package/dist/personal-meeting-room/index.js.map +1 -1
  198. package/dist/personal-meeting-room/request.js +2 -3
  199. package/dist/personal-meeting-room/request.js.map +1 -1
  200. package/dist/personal-meeting-room/util.js +1 -2
  201. package/dist/personal-meeting-room/util.js.map +1 -1
  202. package/dist/reachability/index.js +265 -72
  203. package/dist/reachability/index.js.map +1 -1
  204. package/dist/reachability/request.js +18 -10
  205. package/dist/reachability/request.js.map +1 -1
  206. package/dist/reactions/constants.js +12 -0
  207. package/dist/reactions/constants.js.map +1 -0
  208. package/dist/reactions/reactions.js +4 -6
  209. package/dist/reactions/reactions.js.map +1 -1
  210. package/dist/reactions/reactions.type.js +21 -23
  211. package/dist/reactions/reactions.type.js.map +1 -1
  212. package/dist/reconnection-manager/index.js +281 -229
  213. package/dist/reconnection-manager/index.js.map +1 -1
  214. package/dist/recording-controller/enums.js +4 -5
  215. package/dist/recording-controller/enums.js.map +1 -1
  216. package/dist/recording-controller/index.js +57 -46
  217. package/dist/recording-controller/index.js.map +1 -1
  218. package/dist/recording-controller/util.js +10 -10
  219. package/dist/recording-controller/util.js.map +1 -1
  220. package/dist/roap/index.js +101 -235
  221. package/dist/roap/index.js.map +1 -1
  222. package/dist/roap/request.js +126 -180
  223. package/dist/roap/request.js.map +1 -1
  224. package/dist/roap/turnDiscovery.js +115 -105
  225. package/dist/roap/turnDiscovery.js.map +1 -1
  226. package/dist/rtcMetrics/constants.js +11 -0
  227. package/dist/rtcMetrics/constants.js.map +1 -0
  228. package/dist/rtcMetrics/index.js +140 -0
  229. package/dist/rtcMetrics/index.js.map +1 -0
  230. package/dist/statsAnalyzer/global.js +2 -85
  231. package/dist/statsAnalyzer/global.js.map +1 -1
  232. package/dist/statsAnalyzer/index.js +402 -424
  233. package/dist/statsAnalyzer/index.js.map +1 -1
  234. package/dist/statsAnalyzer/mqaUtil.js +117 -83
  235. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  236. package/dist/transcription/index.js +1 -2
  237. package/dist/transcription/index.js.map +1 -1
  238. package/dist/webinar/collection.js +43 -0
  239. package/dist/webinar/collection.js.map +1 -0
  240. package/dist/webinar/index.js +68 -0
  241. package/dist/webinar/index.js.map +1 -0
  242. package/package.json +34 -25
  243. package/src/annotation/annotation.types.ts +50 -0
  244. package/src/annotation/constants.ts +36 -0
  245. package/src/annotation/index.ts +328 -0
  246. package/src/breakouts/README.md +220 -0
  247. package/src/breakouts/breakout.ts +188 -0
  248. package/src/breakouts/collection.ts +19 -0
  249. package/src/breakouts/edit-lock-error.ts +25 -0
  250. package/src/breakouts/events.ts +56 -0
  251. package/src/breakouts/index.ts +925 -0
  252. package/src/breakouts/request.ts +55 -0
  253. package/src/breakouts/utils.ts +57 -0
  254. package/src/common/errors/no-meeting-info.ts +24 -0
  255. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  256. package/src/common/errors/webex-errors.ts +36 -12
  257. package/src/common/logs/logger-proxy.ts +1 -1
  258. package/src/common/logs/request.ts +5 -1
  259. package/src/common/queue.ts +22 -8
  260. package/src/config.ts +5 -7
  261. package/src/constants.ts +271 -93
  262. package/src/controls-options-manager/enums.ts +12 -0
  263. package/src/controls-options-manager/index.ts +116 -21
  264. package/src/controls-options-manager/types.ts +59 -0
  265. package/src/controls-options-manager/util.ts +294 -14
  266. package/src/index.ts +40 -0
  267. package/src/interpretation/README.md +60 -0
  268. package/src/interpretation/collection.ts +19 -0
  269. package/src/interpretation/index.ts +332 -0
  270. package/src/interpretation/siLanguage.ts +18 -0
  271. package/src/locus-info/controlsUtils.ts +110 -0
  272. package/src/locus-info/index.ts +449 -61
  273. package/src/locus-info/infoUtils.ts +14 -2
  274. package/src/locus-info/mediaSharesUtils.ts +64 -0
  275. package/src/locus-info/parser.ts +258 -47
  276. package/src/locus-info/selfUtils.ts +85 -2
  277. package/src/media/index.ts +153 -370
  278. package/src/media/properties.ts +106 -136
  279. package/src/media/util.ts +0 -21
  280. package/src/mediaQualityMetrics/config.ts +379 -377
  281. package/src/meeting/in-meeting-actions.ts +172 -0
  282. package/src/meeting/index.ts +3861 -2504
  283. package/src/meeting/locusMediaRequest.ts +313 -0
  284. package/src/meeting/muteState.ts +224 -138
  285. package/src/meeting/request.ts +207 -127
  286. package/src/meeting/request.type.ts +13 -0
  287. package/src/meeting/util.ts +590 -423
  288. package/src/meeting-info/index.ts +81 -8
  289. package/src/meeting-info/meeting-info-v2.ts +163 -13
  290. package/src/meeting-info/util.ts +1 -1
  291. package/src/meeting-info/utilv2.ts +28 -28
  292. package/src/meetings/collection.ts +33 -0
  293. package/src/meetings/index.ts +477 -124
  294. package/src/meetings/meetings.types.ts +12 -0
  295. package/src/meetings/request.ts +2 -0
  296. package/src/meetings/util.ts +116 -5
  297. package/src/member/index.ts +52 -1
  298. package/src/member/types.ts +38 -0
  299. package/src/member/util.ts +139 -28
  300. package/src/members/collection.ts +8 -0
  301. package/src/members/index.ts +196 -7
  302. package/src/members/request.ts +97 -17
  303. package/src/members/types.ts +29 -0
  304. package/src/members/util.ts +333 -240
  305. package/src/metrics/constants.ts +13 -6
  306. package/src/metrics/index.ts +1 -471
  307. package/src/multistream/mediaRequestManager.ts +440 -0
  308. package/src/multistream/receiveSlot.ts +184 -0
  309. package/src/multistream/receiveSlotManager.ts +166 -0
  310. package/src/multistream/remoteMedia.ts +254 -0
  311. package/src/multistream/remoteMediaGroup.ts +284 -0
  312. package/src/multistream/remoteMediaManager.ts +1145 -0
  313. package/src/multistream/sendSlotManager.ts +170 -0
  314. package/src/networkQualityMonitor/index.ts +6 -6
  315. package/src/reachability/index.ts +238 -45
  316. package/src/reachability/request.ts +17 -8
  317. package/src/reactions/constants.ts +4 -0
  318. package/src/reactions/reactions.ts +4 -4
  319. package/src/reactions/reactions.type.ts +30 -4
  320. package/src/reconnection-manager/index.ts +167 -154
  321. package/src/recording-controller/index.ts +20 -3
  322. package/src/recording-controller/util.ts +26 -9
  323. package/src/roap/index.ts +98 -241
  324. package/src/roap/request.ts +74 -148
  325. package/src/roap/turnDiscovery.ts +62 -56
  326. package/src/rtcMetrics/constants.ts +3 -0
  327. package/src/rtcMetrics/index.ts +124 -0
  328. package/src/statsAnalyzer/global.ts +1 -84
  329. package/src/statsAnalyzer/index.ts +470 -522
  330. package/src/statsAnalyzer/mqaUtil.ts +117 -112
  331. package/src/webinar/collection.ts +31 -0
  332. package/src/webinar/index.ts +62 -0
  333. package/test/integration/spec/converged-space-meetings.js +233 -0
  334. package/test/integration/spec/journey.js +320 -264
  335. package/test/integration/spec/space-meeting.js +77 -4
  336. package/test/unit/spec/annotation/index.ts +418 -0
  337. package/test/unit/spec/breakouts/breakout.ts +237 -0
  338. package/test/unit/spec/breakouts/collection.ts +15 -0
  339. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  340. package/test/unit/spec/breakouts/events.ts +89 -0
  341. package/test/unit/spec/breakouts/index.ts +1790 -0
  342. package/test/unit/spec/breakouts/request.ts +104 -0
  343. package/test/unit/spec/breakouts/utils.js +72 -0
  344. package/test/unit/spec/common/queue.js +31 -2
  345. package/test/unit/spec/controls-options-manager/index.js +163 -0
  346. package/test/unit/spec/controls-options-manager/util.js +576 -60
  347. package/test/unit/spec/fixture/locus.js +1 -0
  348. package/test/unit/spec/interpretation/collection.ts +15 -0
  349. package/test/unit/spec/interpretation/index.ts +589 -0
  350. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  351. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  352. package/test/unit/spec/locus-info/index.js +1390 -16
  353. package/test/unit/spec/locus-info/infoUtils.js +54 -16
  354. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  355. package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
  356. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  357. package/test/unit/spec/locus-info/parser.js +116 -35
  358. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  359. package/test/unit/spec/media/index.ts +274 -0
  360. package/test/unit/spec/media/properties.ts +75 -84
  361. package/test/unit/spec/meeting/in-meeting-actions.ts +84 -0
  362. package/test/unit/spec/meeting/index.js +8269 -3145
  363. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  364. package/test/unit/spec/meeting/muteState.js +409 -213
  365. package/test/unit/spec/meeting/request.js +512 -42
  366. package/test/unit/spec/meeting/utils.js +741 -24
  367. package/test/unit/spec/meeting-info/index.js +300 -0
  368. package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
  369. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  370. package/test/unit/spec/meetings/collection.js +26 -0
  371. package/test/unit/spec/meetings/index.js +1201 -210
  372. package/test/unit/spec/meetings/utils.js +202 -2
  373. package/test/unit/spec/member/index.js +38 -8
  374. package/test/unit/spec/member/util.js +499 -29
  375. package/test/unit/spec/members/index.js +597 -3
  376. package/test/unit/spec/members/request.js +206 -27
  377. package/test/unit/spec/members/utils.js +210 -0
  378. package/test/unit/spec/metrics/index.js +1 -50
  379. package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
  380. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  381. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  382. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  383. package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
  384. package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
  385. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  386. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  387. package/test/unit/spec/reachability/index.ts +598 -24
  388. package/test/unit/spec/reachability/request.js +68 -0
  389. package/test/unit/spec/reconnection-manager/index.js +145 -22
  390. package/test/unit/spec/recording-controller/index.js +293 -218
  391. package/test/unit/spec/recording-controller/util.js +223 -96
  392. package/test/unit/spec/roap/index.ts +200 -76
  393. package/test/unit/spec/roap/request.ts +232 -0
  394. package/test/unit/spec/roap/turnDiscovery.ts +86 -48
  395. package/test/unit/spec/rtcMetrics/index.ts +93 -0
  396. package/test/unit/spec/stats-analyzer/index.js +188 -174
  397. package/test/unit/spec/webinar/collection.ts +13 -0
  398. package/test/unit/spec/webinar/index.ts +60 -0
  399. package/test/utils/constants.js +9 -0
  400. package/test/utils/integrationTestUtils.js +46 -0
  401. package/test/utils/testUtils.js +0 -45
  402. package/test/utils/webex-config.js +4 -0
  403. package/test/utils/webex-test-users.js +7 -3
  404. package/dist/common/browser-detection.d.ts +0 -9
  405. package/dist/common/collection.d.ts +0 -48
  406. package/dist/common/config.d.ts +0 -2
  407. package/dist/common/errors/captcha-error.d.ts +0 -15
  408. package/dist/common/errors/intent-to-join.d.ts +0 -16
  409. package/dist/common/errors/join-meeting.d.ts +0 -17
  410. package/dist/common/errors/media.d.ts +0 -15
  411. package/dist/common/errors/parameter.d.ts +0 -15
  412. package/dist/common/errors/password-error.d.ts +0 -15
  413. package/dist/common/errors/permission.d.ts +0 -14
  414. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  415. package/dist/common/errors/reconnection.d.ts +0 -15
  416. package/dist/common/errors/stats.d.ts +0 -15
  417. package/dist/common/errors/webex-errors.d.ts +0 -81
  418. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  419. package/dist/common/events/events-scope.d.ts +0 -17
  420. package/dist/common/events/events.d.ts +0 -12
  421. package/dist/common/events/trigger-proxy.d.ts +0 -2
  422. package/dist/common/events/util.d.ts +0 -2
  423. package/dist/common/logs/logger-config.d.ts +0 -2
  424. package/dist/common/logs/logger-proxy.d.ts +0 -2
  425. package/dist/common/logs/request.d.ts +0 -34
  426. package/dist/common/queue.d.ts +0 -32
  427. package/dist/config.d.ts +0 -73
  428. package/dist/constants.d.ts +0 -926
  429. package/dist/controls-options-manager/constants.d.ts +0 -4
  430. package/dist/controls-options-manager/enums.d.ts +0 -5
  431. package/dist/controls-options-manager/index.d.ts +0 -120
  432. package/dist/controls-options-manager/util.d.ts +0 -7
  433. package/dist/index.d.ts +0 -4
  434. package/dist/locus-info/controlsUtils.d.ts +0 -2
  435. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  436. package/dist/locus-info/fullState.d.ts +0 -2
  437. package/dist/locus-info/hostUtils.d.ts +0 -2
  438. package/dist/locus-info/index.d.ts +0 -269
  439. package/dist/locus-info/infoUtils.d.ts +0 -2
  440. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  441. package/dist/locus-info/parser.d.ts +0 -212
  442. package/dist/locus-info/selfUtils.d.ts +0 -2
  443. package/dist/media/index.d.ts +0 -32
  444. package/dist/media/properties.d.ts +0 -108
  445. package/dist/media/util.d.ts +0 -2
  446. package/dist/mediaQualityMetrics/config.d.ts +0 -233
  447. package/dist/meeting/effectsState.d.ts +0 -42
  448. package/dist/meeting/effectsState.js +0 -260
  449. package/dist/meeting/effectsState.js.map +0 -1
  450. package/dist/meeting/in-meeting-actions.d.ts +0 -79
  451. package/dist/meeting/index.d.ts +0 -1622
  452. package/dist/meeting/muteState.d.ts +0 -116
  453. package/dist/meeting/request.d.ts +0 -255
  454. package/dist/meeting/state.d.ts +0 -9
  455. package/dist/meeting/util.d.ts +0 -2
  456. package/dist/meeting-info/collection.d.ts +0 -20
  457. package/dist/meeting-info/index.d.ts +0 -57
  458. package/dist/meeting-info/meeting-info-v2.d.ts +0 -93
  459. package/dist/meeting-info/request.d.ts +0 -22
  460. package/dist/meeting-info/util.d.ts +0 -2
  461. package/dist/meeting-info/utilv2.d.ts +0 -2
  462. package/dist/meetings/collection.d.ts +0 -23
  463. package/dist/meetings/index.d.ts +0 -296
  464. package/dist/meetings/request.d.ts +0 -27
  465. package/dist/meetings/util.d.ts +0 -18
  466. package/dist/member/index.d.ts +0 -147
  467. package/dist/member/member.types.d.ts +0 -11
  468. package/dist/member/util.d.ts +0 -2
  469. package/dist/members/collection.d.ts +0 -24
  470. package/dist/members/index.d.ts +0 -298
  471. package/dist/members/request.d.ts +0 -50
  472. package/dist/members/util.d.ts +0 -2
  473. package/dist/metrics/config.d.ts +0 -169
  474. package/dist/metrics/config.js +0 -289
  475. package/dist/metrics/config.js.map +0 -1
  476. package/dist/metrics/constants.d.ts +0 -59
  477. package/dist/metrics/index.d.ts +0 -152
  478. package/dist/networkQualityMonitor/index.d.ts +0 -70
  479. package/dist/peer-connection-manager/index.d.ts +0 -6
  480. package/dist/peer-connection-manager/index.js +0 -671
  481. package/dist/peer-connection-manager/index.js.map +0 -1
  482. package/dist/peer-connection-manager/util.d.ts +0 -6
  483. package/dist/peer-connection-manager/util.js +0 -110
  484. package/dist/peer-connection-manager/util.js.map +0 -1
  485. package/dist/personal-meeting-room/index.d.ts +0 -47
  486. package/dist/personal-meeting-room/request.d.ts +0 -14
  487. package/dist/personal-meeting-room/util.d.ts +0 -2
  488. package/dist/reachability/index.d.ts +0 -139
  489. package/dist/reachability/request.d.ts +0 -35
  490. package/dist/reactions/reactions.d.ts +0 -4
  491. package/dist/reactions/reactions.type.d.ts +0 -32
  492. package/dist/reconnection-manager/index.d.ts +0 -112
  493. package/dist/recording-controller/enums.d.ts +0 -7
  494. package/dist/recording-controller/index.d.ts +0 -193
  495. package/dist/recording-controller/util.d.ts +0 -13
  496. package/dist/roap/collection.d.ts +0 -10
  497. package/dist/roap/collection.js +0 -63
  498. package/dist/roap/collection.js.map +0 -1
  499. package/dist/roap/handler.d.ts +0 -47
  500. package/dist/roap/handler.js +0 -279
  501. package/dist/roap/handler.js.map +0 -1
  502. package/dist/roap/index.d.ts +0 -116
  503. package/dist/roap/request.d.ts +0 -35
  504. package/dist/roap/state.d.ts +0 -9
  505. package/dist/roap/state.js +0 -127
  506. package/dist/roap/state.js.map +0 -1
  507. package/dist/roap/turnDiscovery.d.ts +0 -81
  508. package/dist/roap/util.d.ts +0 -2
  509. package/dist/roap/util.js +0 -76
  510. package/dist/roap/util.js.map +0 -1
  511. package/dist/statsAnalyzer/global.d.ts +0 -118
  512. package/dist/statsAnalyzer/index.d.ts +0 -193
  513. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -22
  514. package/dist/transcription/index.d.ts +0 -64
  515. package/src/index.js +0 -15
  516. package/src/meeting/effectsState.ts +0 -209
  517. package/src/metrics/config.ts +0 -485
  518. package/src/peer-connection-manager/index.ts +0 -847
  519. package/src/peer-connection-manager/util.ts +0 -119
  520. package/src/roap/collection.ts +0 -62
  521. package/src/roap/handler.ts +0 -294
  522. package/src/roap/state.ts +0 -156
  523. package/src/roap/util.ts +0 -100
  524. package/test/unit/spec/meeting/effectsState.js +0 -281
  525. package/test/unit/spec/peerconnection-manager/index.js +0 -218
  526. package/test/unit/spec/peerconnection-manager/utils.js +0 -49
  527. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
  528. package/test/unit/spec/roap/util.js +0 -30
@@ -1,119 +0,0 @@
1
- import {parse} from '@webex/ts-sdp';
2
-
3
- interface IPeerConnectionUtils {
4
- convertCLineToIpv4: (sdp: string) => string;
5
- adjustH264Profile: (sdp: string, maxFsValue: number) => string;
6
- }
7
-
8
- const PeerConnectionUtils = {} as IPeerConnectionUtils;
9
-
10
- // max-fs values for all H264 profile levels
11
- const maxFsForProfileLevel = {
12
- 10: 99,
13
- 11: 396,
14
- 12: 396,
15
- 13: 396,
16
- 20: 396,
17
- 21: 792,
18
- 22: 1620,
19
- 30: 1620,
20
- 31: 3600,
21
- 32: 5120,
22
- 40: 8192,
23
- 41: 8192,
24
- 42: 8704,
25
- 50: 22080,
26
- 51: 36864,
27
- 52: 36864,
28
- 60: 139264,
29
- 61: 139264,
30
- 62: 139264,
31
- };
32
-
33
- const framesPerSecond = 30;
34
-
35
- /**
36
- * Convert C line to IPv4
37
- * @param {string} sdp
38
- * @returns {string}
39
- */
40
- PeerConnectionUtils.convertCLineToIpv4 = (sdp: string) => {
41
- let replaceSdp = sdp;
42
-
43
- // TODO: remove this once linus supports Ipv6 c line.currently linus rejects SDP with c line having ipv6 candidates we are
44
- // mocking ipv6 to ipv4 candidates
45
- // https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-299232
46
- replaceSdp = replaceSdp.replace(/c=IN IP6 .*/gi, 'c=IN IP4 0.0.0.0');
47
-
48
- return replaceSdp;
49
- };
50
-
51
- /**
52
- * estimate profile levels for max-fs & max-mbps values
53
- * @param {string} sdp
54
- * @param {number} maxFsValue
55
- * @returns {string}
56
- */
57
- PeerConnectionUtils.adjustH264Profile = (sdp: string, maxFsValue: number) => {
58
- // converting with ts-sdp parser, no munging
59
- const parsedSdp = parse(sdp);
60
-
61
- parsedSdp.avMedia.forEach((media) => {
62
- if (media.type === 'video') {
63
- media.codecs.forEach((codec) => {
64
- if (codec.name?.toUpperCase() === 'H264') {
65
- // there should really be just 1 fmtp line, but just in case, we process all of them
66
- codec.fmtParams = codec.fmtParams.map((fmtp) => {
67
- const parsedRegex = fmtp.match(/(.*)profile-level-id=(\w{4})(\w{2})(.*)/);
68
-
69
- if (parsedRegex && parsedRegex.length === 5) {
70
- const stuffBeforeProfileLevelId = parsedRegex[1];
71
- const profile = parsedRegex[2].toLowerCase();
72
- const levelId = parseInt(parsedRegex[3], 16);
73
- const stuffAfterProfileLevelId = parsedRegex[4];
74
-
75
- if (!maxFsForProfileLevel[levelId]) {
76
- throw new Error(
77
- `found unsupported h264 profile level id value in the SDP: ${levelId}`
78
- );
79
- }
80
-
81
- if (maxFsForProfileLevel[levelId] === maxFsValue) {
82
- // profile level already matches our desired max-fs value, so we don't need to do anything
83
- return fmtp;
84
- }
85
- if (maxFsForProfileLevel[levelId] < maxFsValue) {
86
- // profile level has too low max-fs, so we need to override it (this is upgrading)
87
- return `${fmtp};max-fs=${maxFsValue};max-mbps=${maxFsValue * framesPerSecond}`;
88
- }
89
-
90
- // profile level has too high max-fs value, so we need to use a lower level
91
-
92
- // find highest level that has the matching maxFs
93
- const newLevelId = Object.keys(maxFsForProfileLevel)
94
- .reverse()
95
- .find((key) => maxFsForProfileLevel[key] === maxFsValue);
96
-
97
- if (newLevelId) {
98
- // Object.keys returns keys as strings, so we need to parse it to an int again and then convert to hex
99
- const newLevelIdHex = parseInt(newLevelId, 10).toString(16);
100
-
101
- return `${stuffBeforeProfileLevelId}profile-level-id=${profile}${newLevelIdHex};max-mbps=${
102
- maxFsValue * framesPerSecond
103
- }${stuffAfterProfileLevelId}`;
104
- }
105
-
106
- throw new Error(`unsupported maxFsValue: ${maxFsValue}`);
107
- }
108
-
109
- return fmtp;
110
- });
111
- }
112
- });
113
- }
114
- });
115
-
116
- return parsedSdp.toString();
117
- };
118
-
119
- export default PeerConnectionUtils;
@@ -1,62 +0,0 @@
1
- import RoapStateMachine from './state';
2
-
3
- /* eslint-disable */
4
- const RoapCollection = {
5
- sessions: {},
6
-
7
- getSession(id) {
8
- if (!this.sessions[id]) {
9
- this.sessions[id] = {
10
- activeSequences: 0,
11
- };
12
- }
13
- return this.sessions[id];
14
- },
15
-
16
- deleteSession(id) {
17
- if (this.getSession(id)) {
18
- delete this.sessions[id];
19
- }
20
- },
21
-
22
- getSessionSequence(id, seqId) {
23
- const session = this.getSession(id);
24
- if (!session[seqId]) {
25
- session[seqId] = {
26
- state: RoapStateMachine.createState(),
27
- finished: false,
28
- };
29
- session.activeSequences += 1;
30
- }
31
- return session[seqId];
32
- },
33
-
34
- deleteSessionSequence(id, seqId) {
35
- const seq = this.getSessionSequence(id, seqId);
36
- if (seq) {
37
- if (!seq.finished) {
38
- // @ts-ignore
39
- session.activeSequences -= 1;
40
- }
41
- delete this.sessions[id][seqId];
42
- }
43
- },
44
-
45
- isBusy(id) {
46
- const session = this.getSession(id);
47
- if (!session) return false;
48
-
49
- return session.activeSequences > 0;
50
- },
51
-
52
- onSessionSequenceFinish(id, seqId) {
53
- const session = this.getSession(id);
54
- const seq = session[seqId];
55
- if (seq && !seq.finished) {
56
- seq.finished = true;
57
- session.activeSequences -= 1;
58
- }
59
- },
60
- };
61
-
62
- export default RoapCollection;
@@ -1,294 +0,0 @@
1
- /* no-param-reassign */
2
- // @ts-ignore
3
- import {StatelessWebexPlugin} from '@webex/webex-core';
4
-
5
- import LoggerProxy from '../common/logs/logger-proxy';
6
- import {ROAP, _OFFER_} from '../constants';
7
- import Metrics from '../metrics';
8
- import BEHAVIORAL_METRICS from '../metrics/constants';
9
-
10
- import RoapUtil from './util';
11
- import RoapCollection from './collection';
12
- import Meeting from '../meeting';
13
-
14
- const checkForAndHandleErrors = (action, meeting, correlationId) => {
15
- if (action && action.type) {
16
- if (action.msg && action.msg.messageType && action.msg.errorType) {
17
- if (RoapUtil.findError(action.msg.messageType, action.msg.errorType, action.type)) {
18
- RoapUtil.handleError(meeting.mediaProperties.peerConnection)
19
- .then((res) => {
20
- if (res) {
21
- RoapCollection.deleteSessionSequence(correlationId, action.msg.seq);
22
- }
23
- })
24
- .catch((err) => {
25
- LoggerProxy.logger.warn(
26
- `Roap:handler#checkForAndHandleErrors --> Cannot reset the peer connection with error: ${err}`
27
- );
28
- });
29
-
30
- return true;
31
- }
32
- }
33
- if (!RoapUtil.ensureMeeting(meeting, action.type)) {
34
- return true;
35
- }
36
- }
37
-
38
- return false;
39
- };
40
-
41
- const compareWithLastRoapMessage = (lastRoapMessage, currentRoapMessage) =>
42
- lastRoapMessage?.msg?.seq === currentRoapMessage.msg.seq &&
43
- lastRoapMessage?.msg?.messageType === currentRoapMessage.msg.messageType;
44
-
45
- const handleSessionStep = ({roap, session, locusUrl, correlationId}) => {
46
- const {seq: sequenceId, messageType} = roap.msg;
47
-
48
- if (session.OFFER && messageType === _OFFER_) {
49
- session.GLARE_OFFER = roap.msg;
50
- session.GLARE_OFFER.remote = !!roap.remote;
51
- const metricName = BEHAVIORAL_METRICS.ROAP_GLARE_CONDITION;
52
- const data = {
53
- correlation_id: correlationId,
54
- locus_id: locusUrl.split('/').pop(),
55
- sequence: sequenceId,
56
- };
57
-
58
- Metrics.sendBehavioralMetric(metricName, data);
59
-
60
- LoggerProxy.logger.warn(
61
- `Roap:handler#handleSessionStep --> Glare condition occurred with new mercury event, sequenceId: ${sequenceId}`
62
- );
63
- } else {
64
- LoggerProxy.logger.info(
65
- `Roap:handler#handleSessionStep --> Save OFFER/ANSWER seq:${sequenceId} new mercury event ${messageType}local state: ${JSON.stringify(
66
- session.state.state,
67
- null,
68
- 2
69
- )}`
70
- );
71
- session[messageType] = roap.msg;
72
- session[messageType].remote = !!roap.remote;
73
- }
74
- };
75
-
76
- /**
77
- * @class RoapHandler
78
- */
79
- export default class RoapHandler extends StatelessWebexPlugin {
80
- attrs: any;
81
- lastRoapMessage: any;
82
- options: any;
83
- roapAnswer: any;
84
- roapFinished: any;
85
- roapOk: any;
86
-
87
- constructor(attrs, options, roapOk, roapAnswer, roapFinished) {
88
- super({}, options);
89
- this.attrs = attrs;
90
- this.options = options;
91
- this.roapOk = roapOk;
92
- this.roapFinished = roapFinished;
93
- this.roapAnswer = roapAnswer;
94
- this.lastRoapMessage = null;
95
- }
96
-
97
- /**
98
- *
99
- * @param {Object} session
100
- * @param {Meeting} meeting
101
- * @param {Object} action
102
- * @returns {null}
103
- */
104
- perform(session: any, meeting: any, action: any) {
105
- switch (session.state.state) {
106
- case ROAP.ROAP_STATE.INIT:
107
- this.roapFinished(meeting.correlationId, action.msg.seq);
108
- break;
109
-
110
- // TODO: (important )handle roap state for sending offers as well
111
- // case ROAP.ROAP_STATE.WAIT_RX_OFFER:
112
- // case ROAP.ROAP_STATE.WAIT_RX_ANSWER:
113
- // case ROAP.ROAP_STATE.WAIT_RX_OK:
114
- case ROAP.ROAP_STATE.WAIT_TX_ANSWER:
115
- // eslint-disable-next-line no-warning-comments
116
- // TODO: sometime the you get an answer while you are creating an offer so SKIP
117
- // Server will send the mercury event comes back
118
- if (RoapUtil.shouldHandleMedia(meeting)) {
119
- RoapUtil.updatePeerConnection(meeting, session)
120
- .then((answerSdps) => {
121
- this.roapAnswer({
122
- mediaId: meeting.mediaId,
123
- sdps: answerSdps,
124
- seq: session.OFFER.seq,
125
- correlationId: meeting.correlationId,
126
- audioMuted: meeting.isAudioMuted(),
127
- videoMuted: meeting.isVideoMuted(),
128
- });
129
- })
130
- .catch((error) => {
131
- const metricName = BEHAVIORAL_METRICS.ROAP_ANSWER_FAILURE;
132
- const data = {
133
- correlation_id: meeting.correlationId,
134
- locus_id: meeting.locusUrl.split('/').pop(),
135
- reason: error.message,
136
- stack: error.stack,
137
- };
138
- const metadata = {
139
- type: error.name,
140
- };
141
-
142
- Metrics.sendBehavioralMetric(metricName, data, metadata);
143
- LoggerProxy.logger.error(
144
- `Roap:handler#perform --> Error occured during wait receive answer, continuing, ${error}`
145
- );
146
- });
147
- }
148
- break;
149
- case ROAP.ROAP_STATE.WAIT_TX_OK:
150
- if (!RoapUtil.shouldHandleMedia(meeting)) {
151
- RoapUtil.setRemoteDescription(meeting, session).then((res) => {
152
- this.roapOk(res);
153
- });
154
- }
155
- break;
156
- // case ROAP.ROAP_STATE.IDLE_LOCAL_OFFER:
157
- case ROAP.ROAP_STATE.ERROR:
158
- LoggerProxy.logger.error(
159
- `Roap:handler#perform --> Roap State ERROR for session: ${session}`
160
- );
161
- break;
162
- case ROAP.ROAP_STATE.GLARE:
163
- session.GLARE_OFFER.tieBreaker = session.GLARE_OFFER.tieBreaker || 0;
164
- session.OFFER.tieBreaker = session.OFFER.tieBreaker || 0;
165
- LoggerProxy.logger.warn(
166
- 'Roap:handler#perform --> Roap State resolved the GLARE condition.'
167
- );
168
- if (session.GLARE_OFFER.tieBreaker < session.OFFER.tieBreaker) {
169
- // 2
170
- LoggerProxy.logger.log(
171
- 'Roap:handler#perform --> Roap State local offer won after GLARE.'
172
- );
173
- } else {
174
- LoggerProxy.logger.log(
175
- 'Roap:handler#perform --> Roap State remote offer won after GLARE.'
176
- );
177
- }
178
- session.state.step(ROAP.ROAP_SIGNAL.GLARE_RESOLVED, meeting, action);
179
- // @ts-ignore
180
- this.perform(session, meeting);
181
- break;
182
- default:
183
- break;
184
- }
185
- }
186
-
187
- /**
188
- *
189
- * @param {String} signal
190
- * @param {Object} session
191
- * @param {Object} action
192
- * @param {Meeting} meeting
193
- * @param {String} prefix
194
- * @returns {null}
195
- */
196
- execute(signal: string, session: any, action: any, meeting: Meeting, prefix: string) {
197
- if (session && session.state) {
198
- handleSessionStep({
199
- roap: action,
200
- locusUrl: meeting.locusUrl,
201
- correlationId: meeting.correlationId,
202
- session,
203
- });
204
- signal = ROAP.ROAP_SIGNAL[`${prefix}${action.msg.messageType}`];
205
- session.state.step(signal, meeting, action);
206
- this.perform(session, meeting, action);
207
- }
208
- }
209
-
210
- /**
211
- *
212
- * @param {Object} session
213
- * @param {Object} action
214
- * @param {Meeting} meeting
215
- * @param {String} correlationId
216
- * @returns {Boolean}
217
- */
218
- handleAction(session: object, action: any, meeting: Meeting, correlationId: string) {
219
- let signal;
220
-
221
- switch (action.type) {
222
- case ROAP.RECEIVE_ROAP_MSG:
223
- LoggerProxy.logger.log(
224
- `Roap:handler#handleAction --> RECEIVE_ROAP_MSG event captured, reciving a roap message : ${JSON.stringify(
225
- action
226
- )}`
227
- );
228
- if (compareWithLastRoapMessage(this.lastRoapMessage, action)) {
229
- LoggerProxy.logger.warn(
230
- `Roap:handler#handleAction --> duplicate roap offer from server: ${action.msg.seq}`
231
- );
232
- } else {
233
- this.lastRoapMessage = action;
234
- action.remote = true;
235
- this.execute(signal, session, action, meeting, ROAP.RX_);
236
- }
237
- break;
238
- case ROAP.SEND_ROAP_MSG:
239
- LoggerProxy.logger.log(
240
- `Roap:handler#handleAction --> SEND_ROAP_MSG event captured, sending roap message ${JSON.stringify(
241
- action
242
- )}`
243
- );
244
-
245
- action.local = true;
246
- this.execute(signal, session, action, meeting, ROAP.TX_);
247
- break;
248
- case ROAP.SEND_ROAP_MSG_SUCCESS:
249
- // NOTE: When server send back an answer via mercury the
250
- // remote SDP is already saved sent and ok message is sent back
251
- // We dont have to indicate the roapHandler about the RX_ANSWER via SEND_ROAP_MSG_SUCCESS
252
- break;
253
- case ROAP.RECEIVE_CALL_LEAVE:
254
- RoapCollection.deleteSession(correlationId);
255
- LoggerProxy.logger.log(
256
- `Roap:handler#handleAction --> RECEIVE_CALL_LEAVE event captured, cleaning up the RoapHandler for correlationId: ${correlationId}`
257
- );
258
- break;
259
- case ROAP.RESET_ROAP_STATE:
260
- RoapCollection.deleteSessionSequence(correlationId, action.msg.seq);
261
- LoggerProxy.logger.log(
262
- `Roap:handler#handleAction --> RESET_ROAP_STATE event captured, resetting the RoapHandler state based on sequenceId: ${action.msg.seq}`
263
- );
264
- break;
265
- default:
266
- return true;
267
- }
268
-
269
- return true;
270
- }
271
-
272
- /**
273
- *
274
- * @param {Object} action
275
- * @returns {Boolean}
276
- */
277
- submit(action: any) {
278
- const {correlationId} = action;
279
- let {seq} = action;
280
-
281
- if (!seq && action.msg) {
282
- seq = action.msg.seq;
283
- }
284
- const session = RoapCollection.getSessionSequence(correlationId, seq);
285
- // @ts-ignore
286
- const meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', correlationId);
287
-
288
- if (checkForAndHandleErrors(action, meeting, correlationId)) {
289
- return true;
290
- }
291
-
292
- return this.handleAction(session, action, meeting, correlationId);
293
- }
294
- }
package/src/roap/state.ts DELETED
@@ -1,156 +0,0 @@
1
- import StateMachine from 'javascript-state-machine';
2
-
3
- import LoggerProxy from '../common/logs/logger-proxy';
4
- import {ROAP, _OFFER_, _ANSWER_, _REQUESTED_} from '../constants';
5
- import Meeting from '../meeting';
6
-
7
- const shouldStep = (roap, meeting) => {
8
- const {messageType} = roap.msg;
9
-
10
- if (meeting) {
11
- if (messageType === _OFFER_ && roap.remote && meeting.shareStatus === _REQUESTED_) {
12
- // The peer-connection is waiting for answer but got an offer Reset. Try to
13
- // send the offer later after you accept the answer
14
- return false;
15
- }
16
- // Assuming the mercury event has come first before the response for the event
17
- // we have to wait for the response and trigger the ROAP request later on
18
- if (!meeting.mediaProperties.peerConnection && messageType === _ANSWER_) {
19
- return false;
20
- }
21
- }
22
- LoggerProxy.logger.log(
23
- 'Roap:state#shouldStep --> RoapStateMachine: PeerConnectionState, ',
24
- meeting.mediaProperties.peerConnection.signalingState
25
- );
26
- LoggerProxy.logger.log(
27
- 'Roap:state#shouldStep --> RoapStateMachine: success save proceeding with transition, ',
28
- roap.msg
29
- );
30
-
31
- return true;
32
- };
33
-
34
- const handleTransition = (value, signal, meeting) => {
35
- LoggerProxy.logger.log(`Roap:state#handleTransition --> current ${value} to ${signal}`);
36
-
37
- switch (value) {
38
- case ROAP.ROAP_STATE.INIT:
39
- if (signal === ROAP.ROAP_SIGNAL.RX_OFFER) {
40
- return ROAP.ROAP_STATE.WAIT_TX_ANSWER;
41
- }
42
- if (signal === ROAP.ROAP_SIGNAL.TX_OFFER) {
43
- return ROAP.ROAP_STATE.WAIT_RX_ANSWER;
44
- }
45
-
46
- return value;
47
-
48
- case ROAP.ROAP_STATE.WAIT_RX_OFFER:
49
- return value;
50
-
51
- case ROAP.ROAP_STATE.WAIT_RX_ANSWER:
52
- if (signal === ROAP.ROAP_SIGNAL.RX_ANSWER) {
53
- // There is a race condition where the /call response comes after mercury event from the server
54
- // As mercury sends roap event if it didnt get back a response. We can send the roap ok after that
55
- if (meeting.mediaId) {
56
- return ROAP.ROAP_STATE.WAIT_TX_OK;
57
- }
58
- LoggerProxy.logger.error(
59
- 'Roap:state#handleTransition --> Race Condition no mediaId, continuing.'
60
- );
61
-
62
- return value;
63
- }
64
-
65
- if (signal === ROAP.ROAP_SIGNAL.RX_OFFER) {
66
- return ROAP.ROAP_STATE.GLARE;
67
- }
68
-
69
- return value;
70
-
71
- case ROAP.ROAP_STATE.WAIT_TX_OFFER:
72
- return value;
73
-
74
- case ROAP.ROAP_STATE.WAIT_TX_ANSWER:
75
- if (signal === ROAP.ROAP_SIGNAL.TX_ANSWER) {
76
- return ROAP.ROAP_STATE.WAIT_RX_OK;
77
- }
78
-
79
- return value;
80
-
81
- case ROAP.ROAP_STATE.WAIT_TX_OK:
82
- if (signal === ROAP.ROAP_SIGNAL.TX_OK) {
83
- return ROAP.ROAP_STATE.INIT;
84
- }
85
-
86
- return value;
87
-
88
- case ROAP.ROAP_STATE.WAIT_RX_OK:
89
- if (signal === ROAP.ROAP_SIGNAL.RX_OK) {
90
- return ROAP.ROAP_STATE.INIT;
91
- }
92
-
93
- return value;
94
-
95
- case ROAP.ROAP_STATE.ERROR:
96
- // eslint-disable-next-line no-warning-comments
97
- // TODO: resolve error state. Add a signal constant and handle the cleanup
98
- return ROAP.ROAP_STATE.INIT;
99
-
100
- case ROAP.ROAP_STATE.GLARE:
101
- return ROAP.ROAP_STATE.WAIT_RX_ANSWER;
102
- default:
103
- return value;
104
- }
105
- };
106
-
107
- const RoapStateMachine = {
108
- /**
109
- * @param {Roap} roapRef
110
- * initializes the state machine
111
- * @returns {StateMachine} an instance of a state machine
112
- */
113
- createState() {
114
- const RoapState = StateMachine.factory({
115
- init: ROAP.ROAP_STATE.INIT,
116
- transitions: [
117
- {
118
- name: ROAP.ROAP_TRANSITIONS.STEP,
119
- from: '*',
120
- /**
121
- * Method to handle the transitions between states
122
- * @param {String} signal
123
- * @param {Meeting} meeting instance of a Meeting
124
- * @param {Object} roap
125
- * @returns {String} new state value
126
- */
127
- to(signal: string, meeting: Meeting, roap: object) {
128
- const value = this.state;
129
-
130
- if (!shouldStep(roap, meeting)) {
131
- return value;
132
- }
133
-
134
- return handleTransition(value, signal, meeting);
135
- },
136
- },
137
- ],
138
- methods: {
139
- /**
140
- * Event that fires after we've transitioned to a new state
141
- * @param {Object} transition
142
- * @returns {null}
143
- */
144
- onAfterStep(transition: any) {
145
- LoggerProxy.logger.log(
146
- `Roap:state#onAfterStep --> RoapStateMachine->onAfterStep#fired! State changed from '${transition.from}' to '${transition.to}' with transition '${transition.transition}''.`
147
- );
148
- },
149
- },
150
- });
151
-
152
- return new RoapState();
153
- },
154
- };
155
-
156
- export default RoapStateMachine;