@webex/plugin-meetings 2.59.3-next.1 → 2.59.4

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 (420) hide show
  1. package/.eslintrc.js +6 -6
  2. package/LICENSE +1 -1
  3. package/README.md +1204 -1204
  4. package/UPGRADING.md +287 -287
  5. package/babel.config.js +3 -3
  6. package/browsers.js +108 -108
  7. package/dist/common/browser-detection.d.ts +9 -9
  8. package/dist/common/browser-detection.js.map +1 -1
  9. package/dist/common/collection.d.ts +48 -48
  10. package/dist/common/collection.js +43 -43
  11. package/dist/common/collection.js.map +1 -1
  12. package/dist/common/config.d.ts +2 -2
  13. package/dist/common/config.js.map +1 -1
  14. package/dist/common/errors/captcha-error.d.ts +15 -15
  15. package/dist/common/errors/captcha-error.js +7 -7
  16. package/dist/common/errors/captcha-error.js.map +1 -1
  17. package/dist/common/errors/intent-to-join.d.ts +16 -16
  18. package/dist/common/errors/intent-to-join.js +7 -7
  19. package/dist/common/errors/intent-to-join.js.map +1 -1
  20. package/dist/common/errors/join-meeting.d.ts +17 -17
  21. package/dist/common/errors/join-meeting.js +8 -8
  22. package/dist/common/errors/join-meeting.js.map +1 -1
  23. package/dist/common/errors/media.d.ts +15 -15
  24. package/dist/common/errors/media.js +7 -7
  25. package/dist/common/errors/media.js.map +1 -1
  26. package/dist/common/errors/parameter.d.ts +15 -15
  27. package/dist/common/errors/parameter.js +7 -7
  28. package/dist/common/errors/parameter.js.map +1 -1
  29. package/dist/common/errors/password-error.d.ts +15 -15
  30. package/dist/common/errors/password-error.js +7 -7
  31. package/dist/common/errors/password-error.js.map +1 -1
  32. package/dist/common/errors/permission.d.ts +14 -14
  33. package/dist/common/errors/permission.js +6 -6
  34. package/dist/common/errors/permission.js.map +1 -1
  35. package/dist/common/errors/reconnection-in-progress.d.ts +9 -9
  36. package/dist/common/errors/reconnection-in-progress.js +6 -6
  37. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  38. package/dist/common/errors/reconnection.d.ts +15 -15
  39. package/dist/common/errors/reconnection.js +7 -7
  40. package/dist/common/errors/reconnection.js.map +1 -1
  41. package/dist/common/errors/stats.d.ts +15 -15
  42. package/dist/common/errors/stats.js +7 -7
  43. package/dist/common/errors/stats.js.map +1 -1
  44. package/dist/common/errors/webex-errors.d.ts +81 -81
  45. package/dist/common/errors/webex-errors.js +42 -42
  46. package/dist/common/errors/webex-errors.js.map +1 -1
  47. package/dist/common/errors/webex-meetings-error.d.ts +20 -20
  48. package/dist/common/errors/webex-meetings-error.js +12 -12
  49. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  50. package/dist/common/events/events-scope.d.ts +17 -17
  51. package/dist/common/events/events-scope.js +10 -10
  52. package/dist/common/events/events-scope.js.map +1 -1
  53. package/dist/common/events/events.d.ts +12 -12
  54. package/dist/common/events/events.js +4 -4
  55. package/dist/common/events/events.js.map +1 -1
  56. package/dist/common/events/trigger-proxy.d.ts +2 -2
  57. package/dist/common/events/trigger-proxy.js.map +1 -1
  58. package/dist/common/events/util.d.ts +2 -2
  59. package/dist/common/events/util.js.map +1 -1
  60. package/dist/common/logs/logger-config.d.ts +2 -2
  61. package/dist/common/logs/logger-config.js.map +1 -1
  62. package/dist/common/logs/logger-proxy.d.ts +2 -2
  63. package/dist/common/logs/logger-proxy.js.map +1 -1
  64. package/dist/common/logs/request.d.ts +34 -34
  65. package/dist/common/logs/request.js +18 -18
  66. package/dist/common/logs/request.js.map +1 -1
  67. package/dist/common/queue.d.ts +32 -32
  68. package/dist/common/queue.js +18 -18
  69. package/dist/common/queue.js.map +1 -1
  70. package/dist/config.d.ts +73 -73
  71. package/dist/config.js +2 -2
  72. package/dist/config.js.map +1 -1
  73. package/dist/constants.d.ts +926 -924
  74. package/dist/constants.js +11 -9
  75. package/dist/constants.js.map +1 -1
  76. package/dist/controls-options-manager/constants.d.ts +4 -4
  77. package/dist/controls-options-manager/constants.js.map +1 -1
  78. package/dist/controls-options-manager/enums.d.ts +5 -5
  79. package/dist/controls-options-manager/enums.js.map +1 -1
  80. package/dist/controls-options-manager/index.d.ts +120 -120
  81. package/dist/controls-options-manager/index.js +81 -81
  82. package/dist/controls-options-manager/index.js.map +1 -1
  83. package/dist/controls-options-manager/util.d.ts +7 -7
  84. package/dist/controls-options-manager/util.js.map +1 -1
  85. package/dist/index.d.ts +4 -4
  86. package/dist/index.js.map +1 -1
  87. package/dist/locus-info/controlsUtils.d.ts +2 -2
  88. package/dist/locus-info/controlsUtils.js +21 -21
  89. package/dist/locus-info/controlsUtils.js.map +1 -1
  90. package/dist/locus-info/embeddedAppsUtils.d.ts +2 -2
  91. package/dist/locus-info/embeddedAppsUtils.js +14 -14
  92. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  93. package/dist/locus-info/fullState.d.ts +2 -2
  94. package/dist/locus-info/fullState.js.map +1 -1
  95. package/dist/locus-info/hostUtils.d.ts +2 -2
  96. package/dist/locus-info/hostUtils.js +19 -19
  97. package/dist/locus-info/hostUtils.js.map +1 -1
  98. package/dist/locus-info/index.d.ts +269 -269
  99. package/dist/locus-info/index.js +180 -180
  100. package/dist/locus-info/index.js.map +1 -1
  101. package/dist/locus-info/infoUtils.d.ts +2 -2
  102. package/dist/locus-info/infoUtils.js.map +1 -1
  103. package/dist/locus-info/mediaSharesUtils.d.ts +2 -2
  104. package/dist/locus-info/mediaSharesUtils.js +50 -50
  105. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  106. package/dist/locus-info/parser.d.ts +212 -212
  107. package/dist/locus-info/parser.js +136 -136
  108. package/dist/locus-info/parser.js.map +1 -1
  109. package/dist/locus-info/selfUtils.d.ts +2 -2
  110. package/dist/locus-info/selfUtils.js +52 -52
  111. package/dist/locus-info/selfUtils.js.map +1 -1
  112. package/dist/media/index.d.ts +32 -32
  113. package/dist/media/index.js +145 -145
  114. package/dist/media/index.js.map +1 -1
  115. package/dist/media/properties.d.ts +108 -108
  116. package/dist/media/properties.js +49 -49
  117. package/dist/media/properties.js.map +1 -1
  118. package/dist/media/util.d.ts +2 -2
  119. package/dist/media/util.js.map +1 -1
  120. package/dist/mediaQualityMetrics/config.d.ts +233 -233
  121. package/dist/mediaQualityMetrics/config.js.map +1 -1
  122. package/dist/meeting/effectsState.d.ts +42 -42
  123. package/dist/meeting/effectsState.js +24 -24
  124. package/dist/meeting/effectsState.js.map +1 -1
  125. package/dist/meeting/in-meeting-actions.d.ts +79 -79
  126. package/dist/meeting/in-meeting-actions.js +11 -11
  127. package/dist/meeting/in-meeting-actions.js.map +1 -1
  128. package/dist/meeting/index.d.ts +1621 -1621
  129. package/dist/meeting/index.js +1538 -1518
  130. package/dist/meeting/index.js.map +1 -1
  131. package/dist/meeting/muteState.d.ts +116 -116
  132. package/dist/meeting/muteState.js +85 -85
  133. package/dist/meeting/muteState.js.map +1 -1
  134. package/dist/meeting/request.d.ts +255 -255
  135. package/dist/meeting/request.js +141 -141
  136. package/dist/meeting/request.js.map +1 -1
  137. package/dist/meeting/state.d.ts +9 -9
  138. package/dist/meeting/state.js +30 -30
  139. package/dist/meeting/state.js.map +1 -1
  140. package/dist/meeting/util.d.ts +2 -2
  141. package/dist/meeting/util.js.map +1 -1
  142. package/dist/meeting-info/collection.d.ts +20 -20
  143. package/dist/meeting-info/collection.js +11 -11
  144. package/dist/meeting-info/collection.js.map +1 -1
  145. package/dist/meeting-info/index.d.ts +57 -57
  146. package/dist/meeting-info/index.js +50 -50
  147. package/dist/meeting-info/index.js.map +1 -1
  148. package/dist/meeting-info/meeting-info-v2.d.ts +93 -93
  149. package/dist/meeting-info/meeting-info-v2.js +52 -52
  150. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  151. package/dist/meeting-info/request.d.ts +22 -22
  152. package/dist/meeting-info/request.js +14 -14
  153. package/dist/meeting-info/request.js.map +1 -1
  154. package/dist/meeting-info/util.d.ts +2 -2
  155. package/dist/meeting-info/util.js +9 -9
  156. package/dist/meeting-info/util.js.map +1 -1
  157. package/dist/meeting-info/utilv2.d.ts +2 -2
  158. package/dist/meeting-info/utilv2.js +20 -20
  159. package/dist/meeting-info/utilv2.js.map +1 -1
  160. package/dist/meetings/collection.d.ts +23 -23
  161. package/dist/meetings/collection.js +14 -14
  162. package/dist/meetings/collection.js.map +1 -1
  163. package/dist/meetings/index.d.ts +296 -296
  164. package/dist/meetings/index.js +259 -259
  165. package/dist/meetings/index.js.map +1 -1
  166. package/dist/meetings/request.d.ts +27 -27
  167. package/dist/meetings/request.js +15 -15
  168. package/dist/meetings/request.js.map +1 -1
  169. package/dist/meetings/util.d.ts +18 -18
  170. package/dist/meetings/util.js +29 -29
  171. package/dist/meetings/util.js.map +1 -1
  172. package/dist/member/index.d.ts +147 -147
  173. package/dist/member/index.js +214 -214
  174. package/dist/member/index.js.map +1 -1
  175. package/dist/member/member.types.d.ts +11 -11
  176. package/dist/member/member.types.js.map +1 -1
  177. package/dist/member/util.d.ts +2 -2
  178. package/dist/member/util.js +60 -60
  179. package/dist/member/util.js.map +1 -1
  180. package/dist/members/collection.d.ts +24 -24
  181. package/dist/members/collection.js +11 -11
  182. package/dist/members/collection.js.map +1 -1
  183. package/dist/members/index.d.ts +298 -298
  184. package/dist/members/index.js +275 -275
  185. package/dist/members/index.js.map +1 -1
  186. package/dist/members/request.d.ts +50 -50
  187. package/dist/members/request.js +27 -27
  188. package/dist/members/request.js.map +1 -1
  189. package/dist/members/util.d.ts +2 -2
  190. package/dist/members/util.js +21 -21
  191. package/dist/members/util.js.map +1 -1
  192. package/dist/metrics/config.d.ts +169 -169
  193. package/dist/metrics/config.js.map +1 -1
  194. package/dist/metrics/constants.d.ts +59 -57
  195. package/dist/metrics/constants.js +2 -0
  196. package/dist/metrics/constants.js.map +1 -1
  197. package/dist/metrics/index.d.ts +152 -152
  198. package/dist/metrics/index.js +90 -90
  199. package/dist/metrics/index.js.map +1 -1
  200. package/dist/networkQualityMonitor/index.d.ts +70 -70
  201. package/dist/networkQualityMonitor/index.js +65 -65
  202. package/dist/networkQualityMonitor/index.js.map +1 -1
  203. package/dist/peer-connection-manager/index.d.ts +6 -6
  204. package/dist/peer-connection-manager/index.js +87 -87
  205. package/dist/peer-connection-manager/index.js.map +1 -1
  206. package/dist/peer-connection-manager/util.d.ts +6 -6
  207. package/dist/peer-connection-manager/util.js +9 -9
  208. package/dist/peer-connection-manager/util.js.map +1 -1
  209. package/dist/personal-meeting-room/index.d.ts +47 -47
  210. package/dist/personal-meeting-room/index.js +67 -67
  211. package/dist/personal-meeting-room/index.js.map +1 -1
  212. package/dist/personal-meeting-room/request.d.ts +14 -14
  213. package/dist/personal-meeting-room/request.js +7 -7
  214. package/dist/personal-meeting-room/request.js.map +1 -1
  215. package/dist/personal-meeting-room/util.d.ts +2 -2
  216. package/dist/personal-meeting-room/util.js.map +1 -1
  217. package/dist/reachability/index.d.ts +139 -139
  218. package/dist/reachability/index.js +110 -110
  219. package/dist/reachability/index.js.map +1 -1
  220. package/dist/reachability/request.d.ts +35 -35
  221. package/dist/reachability/request.js +15 -15
  222. package/dist/reachability/request.js.map +1 -1
  223. package/dist/reactions/reactions.d.ts +4 -4
  224. package/dist/reactions/reactions.js.map +1 -1
  225. package/dist/reactions/reactions.type.d.ts +32 -32
  226. package/dist/reactions/reactions.type.js.map +1 -1
  227. package/dist/reconnection-manager/index.d.ts +112 -112
  228. package/dist/reconnection-manager/index.js +112 -112
  229. package/dist/reconnection-manager/index.js.map +1 -1
  230. package/dist/recording-controller/enums.d.ts +7 -7
  231. package/dist/recording-controller/enums.js.map +1 -1
  232. package/dist/recording-controller/index.d.ts +193 -193
  233. package/dist/recording-controller/index.js +127 -127
  234. package/dist/recording-controller/index.js.map +1 -1
  235. package/dist/recording-controller/util.d.ts +13 -13
  236. package/dist/recording-controller/util.js.map +1 -1
  237. package/dist/roap/collection.d.ts +10 -10
  238. package/dist/roap/collection.js.map +1 -1
  239. package/dist/roap/handler.d.ts +47 -47
  240. package/dist/roap/handler.js +27 -27
  241. package/dist/roap/handler.js.map +1 -1
  242. package/dist/roap/index.d.ts +116 -116
  243. package/dist/roap/index.js +111 -111
  244. package/dist/roap/index.js.map +1 -1
  245. package/dist/roap/request.d.ts +35 -35
  246. package/dist/roap/request.js +17 -17
  247. package/dist/roap/request.js.map +1 -1
  248. package/dist/roap/state.d.ts +9 -9
  249. package/dist/roap/state.js +14 -14
  250. package/dist/roap/state.js.map +1 -1
  251. package/dist/roap/turnDiscovery.d.ts +67 -67
  252. package/dist/roap/turnDiscovery.js +46 -46
  253. package/dist/roap/turnDiscovery.js.map +1 -1
  254. package/dist/roap/util.d.ts +2 -2
  255. package/dist/roap/util.js.map +1 -1
  256. package/dist/statsAnalyzer/global.d.ts +118 -126
  257. package/dist/statsAnalyzer/global.js +4 -12
  258. package/dist/statsAnalyzer/global.js.map +1 -1
  259. package/dist/statsAnalyzer/index.d.ts +193 -190
  260. package/dist/statsAnalyzer/index.js +182 -140
  261. package/dist/statsAnalyzer/index.js.map +1 -1
  262. package/dist/statsAnalyzer/mqaUtil.d.ts +22 -22
  263. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  264. package/dist/transcription/index.d.ts +64 -64
  265. package/dist/transcription/index.js +42 -42
  266. package/dist/transcription/index.js.map +1 -1
  267. package/internal-README.md +172 -172
  268. package/jest.config.js +3 -3
  269. package/package.json +21 -22
  270. package/process +1 -1
  271. package/src/common/browser-detection.ts +39 -39
  272. package/src/common/collection.ts +94 -94
  273. package/src/common/config.ts +9 -9
  274. package/src/common/errors/captcha-error.ts +25 -25
  275. package/src/common/errors/intent-to-join.ts +27 -27
  276. package/src/common/errors/join-meeting.ts +32 -32
  277. package/src/common/errors/media.ts +25 -25
  278. package/src/common/errors/parameter.ts +33 -33
  279. package/src/common/errors/password-error.ts +25 -25
  280. package/src/common/errors/permission.ts +24 -24
  281. package/src/common/errors/reconnection-in-progress.ts +8 -8
  282. package/src/common/errors/reconnection.ts +25 -25
  283. package/src/common/errors/stats.ts +25 -25
  284. package/src/common/errors/webex-errors.ts +140 -140
  285. package/src/common/errors/webex-meetings-error.ts +35 -35
  286. package/src/common/events/events-scope.ts +30 -30
  287. package/src/common/events/events.ts +25 -25
  288. package/src/common/events/trigger-proxy.ts +25 -25
  289. package/src/common/events/util.ts +39 -39
  290. package/src/common/logs/logger-config.ts +8 -8
  291. package/src/common/logs/logger-proxy.ts +44 -44
  292. package/src/common/logs/request.ts +65 -65
  293. package/src/common/queue.ts +50 -50
  294. package/src/config.ts +96 -96
  295. package/src/constants.ts +1123 -1121
  296. package/src/controls-options-manager/constants.ts +5 -5
  297. package/src/controls-options-manager/enums.ts +6 -6
  298. package/src/controls-options-manager/index.ts +183 -183
  299. package/src/controls-options-manager/util.ts +20 -20
  300. package/src/index.js +15 -15
  301. package/src/locus-info/controlsUtils.ts +112 -112
  302. package/src/locus-info/embeddedAppsUtils.ts +57 -57
  303. package/src/locus-info/fullState.ts +69 -69
  304. package/src/locus-info/hostUtils.ts +60 -60
  305. package/src/locus-info/index.ts +1303 -1303
  306. package/src/locus-info/infoUtils.ts +101 -101
  307. package/src/locus-info/mediaSharesUtils.ts +173 -173
  308. package/src/locus-info/parser.ts +680 -680
  309. package/src/locus-info/selfUtils.ts +428 -428
  310. package/src/media/index.ts +675 -675
  311. package/src/media/properties.ts +313 -313
  312. package/src/media/util.ts +37 -37
  313. package/src/mediaQualityMetrics/config.ts +382 -382
  314. package/src/meeting/effectsState.ts +209 -209
  315. package/src/meeting/in-meeting-actions.ts +153 -153
  316. package/src/meeting/index.ts +6572 -6537
  317. package/src/meeting/muteState.ts +365 -365
  318. package/src/meeting/request.ts +810 -810
  319. package/src/meeting/state.ts +194 -194
  320. package/src/meeting/util.ts +530 -530
  321. package/src/meeting-info/collection.ts +41 -41
  322. package/src/meeting-info/index.ts +137 -137
  323. package/src/meeting-info/meeting-info-v2.ts +273 -273
  324. package/src/meeting-info/request.ts +46 -46
  325. package/src/meeting-info/util.ts +314 -314
  326. package/src/meeting-info/utilv2.ts +324 -324
  327. package/src/meetings/collection.ts +43 -43
  328. package/src/meetings/index.ts +1128 -1128
  329. package/src/meetings/request.ts +81 -81
  330. package/src/meetings/util.ts +181 -181
  331. package/src/member/index.ts +446 -446
  332. package/src/member/member.types.ts +13 -13
  333. package/src/member/util.ts +286 -286
  334. package/src/members/collection.ts +40 -40
  335. package/src/members/index.ts +900 -900
  336. package/src/members/request.ts +175 -175
  337. package/src/members/util.ts +260 -260
  338. package/src/metrics/config.ts +485 -485
  339. package/src/metrics/constants.ts +63 -61
  340. package/src/metrics/index.ts +543 -543
  341. package/src/networkQualityMonitor/index.ts +211 -211
  342. package/src/peer-connection-manager/index.ts +847 -847
  343. package/src/peer-connection-manager/util.ts +119 -119
  344. package/src/personal-meeting-room/index.ts +157 -157
  345. package/src/personal-meeting-room/request.ts +48 -48
  346. package/src/personal-meeting-room/util.ts +49 -49
  347. package/src/reachability/index.ts +478 -478
  348. package/src/reachability/request.ts +81 -81
  349. package/src/reactions/reactions.ts +104 -104
  350. package/src/reactions/reactions.type.ts +36 -36
  351. package/src/reconnection-manager/index.ts +622 -622
  352. package/src/recording-controller/enums.ts +8 -8
  353. package/src/recording-controller/index.ts +315 -315
  354. package/src/recording-controller/util.ts +58 -58
  355. package/src/roap/collection.ts +62 -62
  356. package/src/roap/handler.ts +294 -294
  357. package/src/roap/index.ts +413 -413
  358. package/src/roap/request.ts +229 -229
  359. package/src/roap/state.ts +156 -156
  360. package/src/roap/turnDiscovery.ts +283 -283
  361. package/src/roap/util.ts +100 -100
  362. package/src/statsAnalyzer/global.ts +120 -128
  363. package/src/statsAnalyzer/index.ts +1329 -1266
  364. package/src/statsAnalyzer/mqaUtil.ts +290 -290
  365. package/src/transcription/index.ts +154 -154
  366. package/test/integration/spec/journey.js +941 -941
  367. package/test/integration/spec/space-meeting.js +457 -457
  368. package/test/integration/spec/transcription.js +55 -55
  369. package/test/unit/spec/common/browser-detection.js +119 -119
  370. package/test/unit/spec/common/queue.js +69 -69
  371. package/test/unit/spec/controls-options-manager/index.js +123 -123
  372. package/test/unit/spec/controls-options-manager/util.js +65 -65
  373. package/test/unit/spec/fixture/locus.js +406 -406
  374. package/test/unit/spec/locus-info/controlsUtils.js +82 -82
  375. package/test/unit/spec/locus-info/embeddedAppsUtils.js +104 -104
  376. package/test/unit/spec/locus-info/index.js +1272 -1272
  377. package/test/unit/spec/locus-info/infoUtils.js +138 -138
  378. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +975 -975
  379. package/test/unit/spec/locus-info/lib/SeqCmp.json +522 -522
  380. package/test/unit/spec/locus-info/lib/selfConstant.js +286 -286
  381. package/test/unit/spec/locus-info/parser.js +298 -298
  382. package/test/unit/spec/locus-info/selfUtils.js +185 -185
  383. package/test/unit/spec/media/properties.ts +305 -305
  384. package/test/unit/spec/meeting/effectsState.js +281 -281
  385. package/test/unit/spec/meeting/in-meeting-actions.ts +90 -90
  386. package/test/unit/spec/meeting/index.js +5298 -5227
  387. package/test/unit/spec/meeting/muteState.js +430 -430
  388. package/test/unit/spec/meeting/request.js +317 -317
  389. package/test/unit/spec/meeting/utils.js +319 -319
  390. package/test/unit/spec/meeting-info/meetinginfov2.js +376 -376
  391. package/test/unit/spec/meeting-info/request.js +64 -64
  392. package/test/unit/spec/meeting-info/util.js +37 -37
  393. package/test/unit/spec/meeting-info/utilv2.js +330 -330
  394. package/test/unit/spec/meetings/collection.js +52 -52
  395. package/test/unit/spec/meetings/index.js +1375 -1375
  396. package/test/unit/spec/meetings/utils.js +66 -66
  397. package/test/unit/spec/member/index.js +47 -47
  398. package/test/unit/spec/member/util.js +80 -80
  399. package/test/unit/spec/members/index.js +364 -364
  400. package/test/unit/spec/members/request.js +200 -200
  401. package/test/unit/spec/members/utils.js +42 -42
  402. package/test/unit/spec/metrics/index.js +111 -111
  403. package/test/unit/spec/networkQualityMonitor/index.js +99 -99
  404. package/test/unit/spec/peerconnection-manager/index.js +218 -218
  405. package/test/unit/spec/peerconnection-manager/utils.js +49 -49
  406. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -388
  407. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +29 -29
  408. package/test/unit/spec/reachability/index.ts +50 -50
  409. package/test/unit/spec/reconnection-manager/index.js +206 -206
  410. package/test/unit/spec/recording-controller/index.js +230 -230
  411. package/test/unit/spec/recording-controller/util.js +101 -101
  412. package/test/unit/spec/roap/index.ts +128 -128
  413. package/test/unit/spec/roap/turnDiscovery.ts +372 -372
  414. package/test/unit/spec/roap/util.js +30 -30
  415. package/test/unit/spec/stats-analyzer/index.js +438 -287
  416. package/test/utils/cmr.js +104 -104
  417. package/test/utils/testUtils.js +287 -287
  418. package/test/utils/webex-config.js +77 -77
  419. package/test/utils/webex-test-users.js +82 -82
  420. package/tsconfig.json +5 -5
@@ -74,8 +74,8 @@ var handleSessionStep = function handleSessionStep(_ref) {
74
74
  }
75
75
  };
76
76
 
77
- /**
78
- * @class RoapHandler
77
+ /**
78
+ * @class RoapHandler
79
79
  */
80
80
  var RoapHandler = /*#__PURE__*/function (_StatelessWebexPlugin) {
81
81
  (0, _inherits2.default)(RoapHandler, _StatelessWebexPlugin);
@@ -99,12 +99,12 @@ var RoapHandler = /*#__PURE__*/function (_StatelessWebexPlugin) {
99
99
  return _this;
100
100
  }
101
101
 
102
- /**
103
- *
104
- * @param {Object} session
105
- * @param {Meeting} meeting
106
- * @param {Object} action
107
- * @returns {null}
102
+ /**
103
+ *
104
+ * @param {Object} session
105
+ * @param {Meeting} meeting
106
+ * @param {Object} action
107
+ * @returns {null}
108
108
  */
109
109
  (0, _createClass2.default)(RoapHandler, [{
110
110
  key: "perform",
@@ -179,14 +179,14 @@ var RoapHandler = /*#__PURE__*/function (_StatelessWebexPlugin) {
179
179
  }
180
180
  }
181
181
 
182
- /**
183
- *
184
- * @param {String} signal
185
- * @param {Object} session
186
- * @param {Object} action
187
- * @param {Meeting} meeting
188
- * @param {String} prefix
189
- * @returns {null}
182
+ /**
183
+ *
184
+ * @param {String} signal
185
+ * @param {Object} session
186
+ * @param {Object} action
187
+ * @param {Meeting} meeting
188
+ * @param {String} prefix
189
+ * @returns {null}
190
190
  */
191
191
  }, {
192
192
  key: "execute",
@@ -204,13 +204,13 @@ var RoapHandler = /*#__PURE__*/function (_StatelessWebexPlugin) {
204
204
  }
205
205
  }
206
206
 
207
- /**
208
- *
209
- * @param {Object} session
210
- * @param {Object} action
211
- * @param {Meeting} meeting
212
- * @param {String} correlationId
213
- * @returns {Boolean}
207
+ /**
208
+ *
209
+ * @param {Object} session
210
+ * @param {Object} action
211
+ * @param {Meeting} meeting
212
+ * @param {String} correlationId
213
+ * @returns {Boolean}
214
214
  */
215
215
  }, {
216
216
  key: "handleAction",
@@ -251,10 +251,10 @@ var RoapHandler = /*#__PURE__*/function (_StatelessWebexPlugin) {
251
251
  return true;
252
252
  }
253
253
 
254
- /**
255
- *
256
- * @param {Object} action
257
- * @returns {Boolean}
254
+ /**
255
+ *
256
+ * @param {Object} action
257
+ * @returns {Boolean}
258
258
  */
259
259
  }, {
260
260
  key: "submit",
@@ -1 +1 @@
1
- {"version":3,"names":["_webexCore","require","_loggerProxy","_interopRequireDefault","_constants","_metrics","_constants2","_util","_collection","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","checkForAndHandleErrors","action","meeting","correlationId","type","msg","messageType","errorType","RoapUtil","findError","handleError","mediaProperties","peerConnection","then","res","RoapCollection","deleteSessionSequence","seq","catch","err","LoggerProxy","logger","warn","concat","ensureMeeting","compareWithLastRoapMessage","lastRoapMessage","currentRoapMessage","_lastRoapMessage$msg","_lastRoapMessage$msg2","handleSessionStep","_ref","roap","session","locusUrl","_roap$msg","sequenceId","OFFER","_OFFER_","GLARE_OFFER","remote","metricName","BEHAVIORAL_METRICS","ROAP_GLARE_CONDITION","data","correlation_id","locus_id","split","pop","sequence","Metrics","sendBehavioralMetric","info","_stringify","state","RoapHandler","_StatelessWebexPlugin","_inherits2","_super","attrs","options","roapOk","roapAnswer","roapFinished","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_createClass2","key","value","perform","_this2","ROAP","ROAP_STATE","INIT","WAIT_TX_ANSWER","shouldHandleMedia","updatePeerConnection","answerSdps","mediaId","sdps","audioMuted","isAudioMuted","videoMuted","isVideoMuted","error","ROAP_ANSWER_FAILURE","reason","message","stack","metadata","name","WAIT_TX_OK","setRemoteDescription","ERROR","GLARE","tieBreaker","log","step","ROAP_SIGNAL","GLARE_RESOLVED","execute","signal","prefix","handleAction","RECEIVE_ROAP_MSG","RX_","SEND_ROAP_MSG","local","TX_","SEND_ROAP_MSG_SUCCESS","RECEIVE_CALL_LEAVE","deleteSession","RESET_ROAP_STATE","submit","getSessionSequence","webex","meetings","meetingCollection","getByKey","StatelessWebexPlugin","exports"],"sources":["handler.ts"],"sourcesContent":["/* no-param-reassign */\r\n// @ts-ignore\r\nimport {StatelessWebexPlugin} from '@webex/webex-core';\r\n\r\nimport LoggerProxy from '../common/logs/logger-proxy';\r\nimport {ROAP, _OFFER_} from '../constants';\r\nimport Metrics from '../metrics';\r\nimport BEHAVIORAL_METRICS from '../metrics/constants';\r\n\r\nimport RoapUtil from './util';\r\nimport RoapCollection from './collection';\r\nimport Meeting from '../meeting';\r\n\r\nconst checkForAndHandleErrors = (action, meeting, correlationId) => {\r\n if (action && action.type) {\r\n if (action.msg && action.msg.messageType && action.msg.errorType) {\r\n if (RoapUtil.findError(action.msg.messageType, action.msg.errorType, action.type)) {\r\n RoapUtil.handleError(meeting.mediaProperties.peerConnection)\r\n .then((res) => {\r\n if (res) {\r\n RoapCollection.deleteSessionSequence(correlationId, action.msg.seq);\r\n }\r\n })\r\n .catch((err) => {\r\n LoggerProxy.logger.warn(\r\n `Roap:handler#checkForAndHandleErrors --> Cannot reset the peer connection with error: ${err}`\r\n );\r\n });\r\n\r\n return true;\r\n }\r\n }\r\n if (!RoapUtil.ensureMeeting(meeting, action.type)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst compareWithLastRoapMessage = (lastRoapMessage, currentRoapMessage) =>\r\n lastRoapMessage?.msg?.seq === currentRoapMessage.msg.seq &&\r\n lastRoapMessage?.msg?.messageType === currentRoapMessage.msg.messageType;\r\n\r\nconst handleSessionStep = ({roap, session, locusUrl, correlationId}) => {\r\n const {seq: sequenceId, messageType} = roap.msg;\r\n\r\n if (session.OFFER && messageType === _OFFER_) {\r\n session.GLARE_OFFER = roap.msg;\r\n session.GLARE_OFFER.remote = !!roap.remote;\r\n const metricName = BEHAVIORAL_METRICS.ROAP_GLARE_CONDITION;\r\n const data = {\r\n correlation_id: correlationId,\r\n locus_id: locusUrl.split('/').pop(),\r\n sequence: sequenceId,\r\n };\r\n\r\n Metrics.sendBehavioralMetric(metricName, data);\r\n\r\n LoggerProxy.logger.warn(\r\n `Roap:handler#handleSessionStep --> Glare condition occurred with new mercury event, sequenceId: ${sequenceId}`\r\n );\r\n } else {\r\n LoggerProxy.logger.info(\r\n `Roap:handler#handleSessionStep --> Save OFFER/ANSWER seq:${sequenceId} new mercury event ${messageType}local state: ${JSON.stringify(\r\n session.state.state,\r\n null,\r\n 2\r\n )}`\r\n );\r\n session[messageType] = roap.msg;\r\n session[messageType].remote = !!roap.remote;\r\n }\r\n};\r\n\r\n/**\r\n * @class RoapHandler\r\n */\r\nexport default class RoapHandler extends StatelessWebexPlugin {\r\n attrs: any;\r\n lastRoapMessage: any;\r\n options: any;\r\n roapAnswer: any;\r\n roapFinished: any;\r\n roapOk: any;\r\n\r\n constructor(attrs, options, roapOk, roapAnswer, roapFinished) {\r\n super({}, options);\r\n this.attrs = attrs;\r\n this.options = options;\r\n this.roapOk = roapOk;\r\n this.roapFinished = roapFinished;\r\n this.roapAnswer = roapAnswer;\r\n this.lastRoapMessage = null;\r\n }\r\n\r\n /**\r\n *\r\n * @param {Object} session\r\n * @param {Meeting} meeting\r\n * @param {Object} action\r\n * @returns {null}\r\n */\r\n perform(session: any, meeting: any, action: any) {\r\n switch (session.state.state) {\r\n case ROAP.ROAP_STATE.INIT:\r\n this.roapFinished(meeting.correlationId, action.msg.seq);\r\n break;\r\n\r\n // TODO: (important )handle roap state for sending offers as well\r\n // case ROAP.ROAP_STATE.WAIT_RX_OFFER:\r\n // case ROAP.ROAP_STATE.WAIT_RX_ANSWER:\r\n // case ROAP.ROAP_STATE.WAIT_RX_OK:\r\n case ROAP.ROAP_STATE.WAIT_TX_ANSWER:\r\n // eslint-disable-next-line no-warning-comments\r\n // TODO: sometime the you get an answer while you are creating an offer so SKIP\r\n // Server will send the mercury event comes back\r\n if (RoapUtil.shouldHandleMedia(meeting)) {\r\n RoapUtil.updatePeerConnection(meeting, session)\r\n .then((answerSdps) => {\r\n this.roapAnswer({\r\n mediaId: meeting.mediaId,\r\n sdps: answerSdps,\r\n seq: session.OFFER.seq,\r\n correlationId: meeting.correlationId,\r\n audioMuted: meeting.isAudioMuted(),\r\n videoMuted: meeting.isVideoMuted(),\r\n });\r\n })\r\n .catch((error) => {\r\n const metricName = BEHAVIORAL_METRICS.ROAP_ANSWER_FAILURE;\r\n const data = {\r\n correlation_id: meeting.correlationId,\r\n locus_id: meeting.locusUrl.split('/').pop(),\r\n reason: error.message,\r\n stack: error.stack,\r\n };\r\n const metadata = {\r\n type: error.name,\r\n };\r\n\r\n Metrics.sendBehavioralMetric(metricName, data, metadata);\r\n LoggerProxy.logger.error(\r\n `Roap:handler#perform --> Error occured during wait receive answer, continuing, ${error}`\r\n );\r\n });\r\n }\r\n break;\r\n case ROAP.ROAP_STATE.WAIT_TX_OK:\r\n if (!RoapUtil.shouldHandleMedia(meeting)) {\r\n RoapUtil.setRemoteDescription(meeting, session).then((res) => {\r\n this.roapOk(res);\r\n });\r\n }\r\n break;\r\n // case ROAP.ROAP_STATE.IDLE_LOCAL_OFFER:\r\n case ROAP.ROAP_STATE.ERROR:\r\n LoggerProxy.logger.error(\r\n `Roap:handler#perform --> Roap State ERROR for session: ${session}`\r\n );\r\n break;\r\n case ROAP.ROAP_STATE.GLARE:\r\n session.GLARE_OFFER.tieBreaker = session.GLARE_OFFER.tieBreaker || 0;\r\n session.OFFER.tieBreaker = session.OFFER.tieBreaker || 0;\r\n LoggerProxy.logger.warn(\r\n 'Roap:handler#perform --> Roap State resolved the GLARE condition.'\r\n );\r\n if (session.GLARE_OFFER.tieBreaker < session.OFFER.tieBreaker) {\r\n // 2\r\n LoggerProxy.logger.log(\r\n 'Roap:handler#perform --> Roap State local offer won after GLARE.'\r\n );\r\n } else {\r\n LoggerProxy.logger.log(\r\n 'Roap:handler#perform --> Roap State remote offer won after GLARE.'\r\n );\r\n }\r\n session.state.step(ROAP.ROAP_SIGNAL.GLARE_RESOLVED, meeting, action);\r\n // @ts-ignore\r\n this.perform(session, meeting);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {String} signal\r\n * @param {Object} session\r\n * @param {Object} action\r\n * @param {Meeting} meeting\r\n * @param {String} prefix\r\n * @returns {null}\r\n */\r\n execute(signal: string, session: any, action: any, meeting: Meeting, prefix: string) {\r\n if (session && session.state) {\r\n handleSessionStep({\r\n roap: action,\r\n locusUrl: meeting.locusUrl,\r\n correlationId: meeting.correlationId,\r\n session,\r\n });\r\n signal = ROAP.ROAP_SIGNAL[`${prefix}${action.msg.messageType}`];\r\n session.state.step(signal, meeting, action);\r\n this.perform(session, meeting, action);\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {Object} session\r\n * @param {Object} action\r\n * @param {Meeting} meeting\r\n * @param {String} correlationId\r\n * @returns {Boolean}\r\n */\r\n handleAction(session: object, action: any, meeting: Meeting, correlationId: string) {\r\n let signal;\r\n\r\n switch (action.type) {\r\n case ROAP.RECEIVE_ROAP_MSG:\r\n LoggerProxy.logger.log(\r\n `Roap:handler#handleAction --> RECEIVE_ROAP_MSG event captured, reciving a roap message : ${JSON.stringify(\r\n action\r\n )}`\r\n );\r\n if (compareWithLastRoapMessage(this.lastRoapMessage, action)) {\r\n LoggerProxy.logger.warn(\r\n `Roap:handler#handleAction --> duplicate roap offer from server: ${action.msg.seq}`\r\n );\r\n } else {\r\n this.lastRoapMessage = action;\r\n action.remote = true;\r\n this.execute(signal, session, action, meeting, ROAP.RX_);\r\n }\r\n break;\r\n case ROAP.SEND_ROAP_MSG:\r\n LoggerProxy.logger.log(\r\n `Roap:handler#handleAction --> SEND_ROAP_MSG event captured, sending roap message ${JSON.stringify(\r\n action\r\n )}`\r\n );\r\n\r\n action.local = true;\r\n this.execute(signal, session, action, meeting, ROAP.TX_);\r\n break;\r\n case ROAP.SEND_ROAP_MSG_SUCCESS:\r\n // NOTE: When server send back an answer via mercury the\r\n // remote SDP is already saved sent and ok message is sent back\r\n // We dont have to indicate the roapHandler about the RX_ANSWER via SEND_ROAP_MSG_SUCCESS\r\n break;\r\n case ROAP.RECEIVE_CALL_LEAVE:\r\n RoapCollection.deleteSession(correlationId);\r\n LoggerProxy.logger.log(\r\n `Roap:handler#handleAction --> RECEIVE_CALL_LEAVE event captured, cleaning up the RoapHandler for correlationId: ${correlationId}`\r\n );\r\n break;\r\n case ROAP.RESET_ROAP_STATE:\r\n RoapCollection.deleteSessionSequence(correlationId, action.msg.seq);\r\n LoggerProxy.logger.log(\r\n `Roap:handler#handleAction --> RESET_ROAP_STATE event captured, resetting the RoapHandler state based on sequenceId: ${action.msg.seq}`\r\n );\r\n break;\r\n default:\r\n return true;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n *\r\n * @param {Object} action\r\n * @returns {Boolean}\r\n */\r\n submit(action: any) {\r\n const {correlationId} = action;\r\n let {seq} = action;\r\n\r\n if (!seq && action.msg) {\r\n seq = action.msg.seq;\r\n }\r\n const session = RoapCollection.getSessionSequence(correlationId, seq);\r\n // @ts-ignore\r\n const meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', correlationId);\r\n\r\n if (checkForAndHandleErrors(action, meeting, correlationId)) {\r\n return true;\r\n }\r\n\r\n return this.handleAction(session, action, meeting, correlationId);\r\n }\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"names":["_webexCore","require","_loggerProxy","_interopRequireDefault","_constants","_metrics","_constants2","_util","_collection","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","checkForAndHandleErrors","action","meeting","correlationId","type","msg","messageType","errorType","RoapUtil","findError","handleError","mediaProperties","peerConnection","then","res","RoapCollection","deleteSessionSequence","seq","catch","err","LoggerProxy","logger","warn","concat","ensureMeeting","compareWithLastRoapMessage","lastRoapMessage","currentRoapMessage","_lastRoapMessage$msg","_lastRoapMessage$msg2","handleSessionStep","_ref","roap","session","locusUrl","_roap$msg","sequenceId","OFFER","_OFFER_","GLARE_OFFER","remote","metricName","BEHAVIORAL_METRICS","ROAP_GLARE_CONDITION","data","correlation_id","locus_id","split","pop","sequence","Metrics","sendBehavioralMetric","info","_stringify","state","RoapHandler","_StatelessWebexPlugin","_inherits2","_super","attrs","options","roapOk","roapAnswer","roapFinished","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_createClass2","key","value","perform","_this2","ROAP","ROAP_STATE","INIT","WAIT_TX_ANSWER","shouldHandleMedia","updatePeerConnection","answerSdps","mediaId","sdps","audioMuted","isAudioMuted","videoMuted","isVideoMuted","error","ROAP_ANSWER_FAILURE","reason","message","stack","metadata","name","WAIT_TX_OK","setRemoteDescription","ERROR","GLARE","tieBreaker","log","step","ROAP_SIGNAL","GLARE_RESOLVED","execute","signal","prefix","handleAction","RECEIVE_ROAP_MSG","RX_","SEND_ROAP_MSG","local","TX_","SEND_ROAP_MSG_SUCCESS","RECEIVE_CALL_LEAVE","deleteSession","RESET_ROAP_STATE","submit","getSessionSequence","webex","meetings","meetingCollection","getByKey","StatelessWebexPlugin","exports"],"sources":["handler.ts"],"sourcesContent":["/* no-param-reassign */\n// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {ROAP, _OFFER_} from '../constants';\nimport Metrics from '../metrics';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\n\nimport RoapUtil from './util';\nimport RoapCollection from './collection';\nimport Meeting from '../meeting';\n\nconst checkForAndHandleErrors = (action, meeting, correlationId) => {\n if (action && action.type) {\n if (action.msg && action.msg.messageType && action.msg.errorType) {\n if (RoapUtil.findError(action.msg.messageType, action.msg.errorType, action.type)) {\n RoapUtil.handleError(meeting.mediaProperties.peerConnection)\n .then((res) => {\n if (res) {\n RoapCollection.deleteSessionSequence(correlationId, action.msg.seq);\n }\n })\n .catch((err) => {\n LoggerProxy.logger.warn(\n `Roap:handler#checkForAndHandleErrors --> Cannot reset the peer connection with error: ${err}`\n );\n });\n\n return true;\n }\n }\n if (!RoapUtil.ensureMeeting(meeting, action.type)) {\n return true;\n }\n }\n\n return false;\n};\n\nconst compareWithLastRoapMessage = (lastRoapMessage, currentRoapMessage) =>\n lastRoapMessage?.msg?.seq === currentRoapMessage.msg.seq &&\n lastRoapMessage?.msg?.messageType === currentRoapMessage.msg.messageType;\n\nconst handleSessionStep = ({roap, session, locusUrl, correlationId}) => {\n const {seq: sequenceId, messageType} = roap.msg;\n\n if (session.OFFER && messageType === _OFFER_) {\n session.GLARE_OFFER = roap.msg;\n session.GLARE_OFFER.remote = !!roap.remote;\n const metricName = BEHAVIORAL_METRICS.ROAP_GLARE_CONDITION;\n const data = {\n correlation_id: correlationId,\n locus_id: locusUrl.split('/').pop(),\n sequence: sequenceId,\n };\n\n Metrics.sendBehavioralMetric(metricName, data);\n\n LoggerProxy.logger.warn(\n `Roap:handler#handleSessionStep --> Glare condition occurred with new mercury event, sequenceId: ${sequenceId}`\n );\n } else {\n LoggerProxy.logger.info(\n `Roap:handler#handleSessionStep --> Save OFFER/ANSWER seq:${sequenceId} new mercury event ${messageType}local state: ${JSON.stringify(\n session.state.state,\n null,\n 2\n )}`\n );\n session[messageType] = roap.msg;\n session[messageType].remote = !!roap.remote;\n }\n};\n\n/**\n * @class RoapHandler\n */\nexport default class RoapHandler extends StatelessWebexPlugin {\n attrs: any;\n lastRoapMessage: any;\n options: any;\n roapAnswer: any;\n roapFinished: any;\n roapOk: any;\n\n constructor(attrs, options, roapOk, roapAnswer, roapFinished) {\n super({}, options);\n this.attrs = attrs;\n this.options = options;\n this.roapOk = roapOk;\n this.roapFinished = roapFinished;\n this.roapAnswer = roapAnswer;\n this.lastRoapMessage = null;\n }\n\n /**\n *\n * @param {Object} session\n * @param {Meeting} meeting\n * @param {Object} action\n * @returns {null}\n */\n perform(session: any, meeting: any, action: any) {\n switch (session.state.state) {\n case ROAP.ROAP_STATE.INIT:\n this.roapFinished(meeting.correlationId, action.msg.seq);\n break;\n\n // TODO: (important )handle roap state for sending offers as well\n // case ROAP.ROAP_STATE.WAIT_RX_OFFER:\n // case ROAP.ROAP_STATE.WAIT_RX_ANSWER:\n // case ROAP.ROAP_STATE.WAIT_RX_OK:\n case ROAP.ROAP_STATE.WAIT_TX_ANSWER:\n // eslint-disable-next-line no-warning-comments\n // TODO: sometime the you get an answer while you are creating an offer so SKIP\n // Server will send the mercury event comes back\n if (RoapUtil.shouldHandleMedia(meeting)) {\n RoapUtil.updatePeerConnection(meeting, session)\n .then((answerSdps) => {\n this.roapAnswer({\n mediaId: meeting.mediaId,\n sdps: answerSdps,\n seq: session.OFFER.seq,\n correlationId: meeting.correlationId,\n audioMuted: meeting.isAudioMuted(),\n videoMuted: meeting.isVideoMuted(),\n });\n })\n .catch((error) => {\n const metricName = BEHAVIORAL_METRICS.ROAP_ANSWER_FAILURE;\n const data = {\n correlation_id: meeting.correlationId,\n locus_id: meeting.locusUrl.split('/').pop(),\n reason: error.message,\n stack: error.stack,\n };\n const metadata = {\n type: error.name,\n };\n\n Metrics.sendBehavioralMetric(metricName, data, metadata);\n LoggerProxy.logger.error(\n `Roap:handler#perform --> Error occured during wait receive answer, continuing, ${error}`\n );\n });\n }\n break;\n case ROAP.ROAP_STATE.WAIT_TX_OK:\n if (!RoapUtil.shouldHandleMedia(meeting)) {\n RoapUtil.setRemoteDescription(meeting, session).then((res) => {\n this.roapOk(res);\n });\n }\n break;\n // case ROAP.ROAP_STATE.IDLE_LOCAL_OFFER:\n case ROAP.ROAP_STATE.ERROR:\n LoggerProxy.logger.error(\n `Roap:handler#perform --> Roap State ERROR for session: ${session}`\n );\n break;\n case ROAP.ROAP_STATE.GLARE:\n session.GLARE_OFFER.tieBreaker = session.GLARE_OFFER.tieBreaker || 0;\n session.OFFER.tieBreaker = session.OFFER.tieBreaker || 0;\n LoggerProxy.logger.warn(\n 'Roap:handler#perform --> Roap State resolved the GLARE condition.'\n );\n if (session.GLARE_OFFER.tieBreaker < session.OFFER.tieBreaker) {\n // 2\n LoggerProxy.logger.log(\n 'Roap:handler#perform --> Roap State local offer won after GLARE.'\n );\n } else {\n LoggerProxy.logger.log(\n 'Roap:handler#perform --> Roap State remote offer won after GLARE.'\n );\n }\n session.state.step(ROAP.ROAP_SIGNAL.GLARE_RESOLVED, meeting, action);\n // @ts-ignore\n this.perform(session, meeting);\n break;\n default:\n break;\n }\n }\n\n /**\n *\n * @param {String} signal\n * @param {Object} session\n * @param {Object} action\n * @param {Meeting} meeting\n * @param {String} prefix\n * @returns {null}\n */\n execute(signal: string, session: any, action: any, meeting: Meeting, prefix: string) {\n if (session && session.state) {\n handleSessionStep({\n roap: action,\n locusUrl: meeting.locusUrl,\n correlationId: meeting.correlationId,\n session,\n });\n signal = ROAP.ROAP_SIGNAL[`${prefix}${action.msg.messageType}`];\n session.state.step(signal, meeting, action);\n this.perform(session, meeting, action);\n }\n }\n\n /**\n *\n * @param {Object} session\n * @param {Object} action\n * @param {Meeting} meeting\n * @param {String} correlationId\n * @returns {Boolean}\n */\n handleAction(session: object, action: any, meeting: Meeting, correlationId: string) {\n let signal;\n\n switch (action.type) {\n case ROAP.RECEIVE_ROAP_MSG:\n LoggerProxy.logger.log(\n `Roap:handler#handleAction --> RECEIVE_ROAP_MSG event captured, reciving a roap message : ${JSON.stringify(\n action\n )}`\n );\n if (compareWithLastRoapMessage(this.lastRoapMessage, action)) {\n LoggerProxy.logger.warn(\n `Roap:handler#handleAction --> duplicate roap offer from server: ${action.msg.seq}`\n );\n } else {\n this.lastRoapMessage = action;\n action.remote = true;\n this.execute(signal, session, action, meeting, ROAP.RX_);\n }\n break;\n case ROAP.SEND_ROAP_MSG:\n LoggerProxy.logger.log(\n `Roap:handler#handleAction --> SEND_ROAP_MSG event captured, sending roap message ${JSON.stringify(\n action\n )}`\n );\n\n action.local = true;\n this.execute(signal, session, action, meeting, ROAP.TX_);\n break;\n case ROAP.SEND_ROAP_MSG_SUCCESS:\n // NOTE: When server send back an answer via mercury the\n // remote SDP is already saved sent and ok message is sent back\n // We dont have to indicate the roapHandler about the RX_ANSWER via SEND_ROAP_MSG_SUCCESS\n break;\n case ROAP.RECEIVE_CALL_LEAVE:\n RoapCollection.deleteSession(correlationId);\n LoggerProxy.logger.log(\n `Roap:handler#handleAction --> RECEIVE_CALL_LEAVE event captured, cleaning up the RoapHandler for correlationId: ${correlationId}`\n );\n break;\n case ROAP.RESET_ROAP_STATE:\n RoapCollection.deleteSessionSequence(correlationId, action.msg.seq);\n LoggerProxy.logger.log(\n `Roap:handler#handleAction --> RESET_ROAP_STATE event captured, resetting the RoapHandler state based on sequenceId: ${action.msg.seq}`\n );\n break;\n default:\n return true;\n }\n\n return true;\n }\n\n /**\n *\n * @param {Object} action\n * @returns {Boolean}\n */\n submit(action: any) {\n const {correlationId} = action;\n let {seq} = action;\n\n if (!seq && action.msg) {\n seq = action.msg.seq;\n }\n const session = RoapCollection.getSessionSequence(correlationId, seq);\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', correlationId);\n\n if (checkForAndHandleErrors(action, meeting, correlationId)) {\n return true;\n }\n\n return this.handleAction(session, action, meeting, correlationId);\n }\n}\n"],"mappings":"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"}
@@ -1,116 +1,116 @@
1
- import { StatelessWebexPlugin } from '@webex/webex-core';
2
- import Meeting from '../meeting';
3
- /**
4
- * Roap options
5
- * @typedef {Object} RoapOptions
6
- * @property {String} sdp
7
- * @property {Meeting} meeting
8
- * @property {Number} roapSeq
9
- * @property {Boolean} reconnect
10
- */
11
- /**
12
- * @typedef {Object} SeqOptions
13
- * @property {String} correlationId
14
- * @property {String} mediaId
15
- * @property {Number} seq
16
- */
17
- /**
18
- * @class Roap
19
- * @export
20
- * @private
21
- */
22
- export default class Roap extends StatelessWebexPlugin {
23
- attrs: any;
24
- lastRoapOffer: any;
25
- options: any;
26
- roapHandler: any;
27
- roapRequest: any;
28
- turnDiscovery: any;
29
- /**
30
- *
31
- * @param {Object} attrs
32
- * @param {Object} options
33
- */
34
- constructor(attrs: any, options: any);
35
- /**
36
- * Starts listening to mercury events for Roap messages
37
- * @param {object} data event object
38
- * @returns {Promise}
39
- * @private
40
- * @memberof Roap
41
- */
42
- private roapEvent;
43
- /**
44
- *
45
- * @param {String} correlationId correlation id of a meeting
46
- * @param {Number} seq ROAP sequence number
47
- * @returns {Promise}
48
- * @private
49
- * @memberof Roap
50
- */
51
- private stop;
52
- /**
53
- *
54
- * @param {SeqOptions} options
55
- * @returns {null}
56
- * @private
57
- * @memberof Roap
58
- */
59
- private sendRoapOK;
60
- /**
61
- * Sends a ROAP answer...
62
- * @param {SeqOptions} options
63
- * @param {Boolean} options.audioMuted
64
- * @param {Boolean} options.videoMuted
65
- * @returns {Promise}
66
- * @private
67
- * @memberof Roap
68
- */
69
- private sendRoapAnswer;
70
- /**
71
- * Sends a ROAP error...
72
- * @param {Object} session
73
- * @param {Object} locus
74
- * @param {String} errorType
75
- * @returns {Promise}
76
- * @private
77
- * @memberof Roap
78
- */
79
- private sendRoapError;
80
- /**
81
- * sends a roap media request
82
- * @param {RoapOptions} options
83
- * @returns {Promise}
84
- * @private
85
- * @memberof Roap
86
- */
87
- sendRoapMediaRequest(options: any): any;
88
- /**
89
- * sends a roap media request
90
- * @param {RoapOptions} options
91
- * @returns {Promise}
92
- * @private
93
- * @memberof Roap
94
- */
95
- sendRoapCallRequest: (options: any) => any;
96
- /**
97
- * Called when the roap sequence is finished (completed successfully or failed)
98
- * @param {String} correlationId id of the meeting affected
99
- * @param {String} sequenceId the id of the finished sequence
100
- * @returns {undefined}
101
- * @private
102
- * @memberof Roap
103
- */
104
- private roapFinished;
105
- /**
106
- * Performs a TURN server discovery procedure, which involves exchanging
107
- * some roap messages with the server. This exchange has to be done before
108
- * any other roap messages are sent
109
- *
110
- * @param {Meeting} meeting
111
- * @param {Boolean} isReconnecting should be set to true if this is a new
112
- * media connection just after a reconnection
113
- * @returns {Promise}
114
- */
115
- doTurnDiscovery(meeting: Meeting, isReconnecting: boolean): any;
116
- }
1
+ import { StatelessWebexPlugin } from '@webex/webex-core';
2
+ import Meeting from '../meeting';
3
+ /**
4
+ * Roap options
5
+ * @typedef {Object} RoapOptions
6
+ * @property {String} sdp
7
+ * @property {Meeting} meeting
8
+ * @property {Number} roapSeq
9
+ * @property {Boolean} reconnect
10
+ */
11
+ /**
12
+ * @typedef {Object} SeqOptions
13
+ * @property {String} correlationId
14
+ * @property {String} mediaId
15
+ * @property {Number} seq
16
+ */
17
+ /**
18
+ * @class Roap
19
+ * @export
20
+ * @private
21
+ */
22
+ export default class Roap extends StatelessWebexPlugin {
23
+ attrs: any;
24
+ lastRoapOffer: any;
25
+ options: any;
26
+ roapHandler: any;
27
+ roapRequest: any;
28
+ turnDiscovery: any;
29
+ /**
30
+ *
31
+ * @param {Object} attrs
32
+ * @param {Object} options
33
+ */
34
+ constructor(attrs: any, options: any);
35
+ /**
36
+ * Starts listening to mercury events for Roap messages
37
+ * @param {object} data event object
38
+ * @returns {Promise}
39
+ * @private
40
+ * @memberof Roap
41
+ */
42
+ private roapEvent;
43
+ /**
44
+ *
45
+ * @param {String} correlationId correlation id of a meeting
46
+ * @param {Number} seq ROAP sequence number
47
+ * @returns {Promise}
48
+ * @private
49
+ * @memberof Roap
50
+ */
51
+ private stop;
52
+ /**
53
+ *
54
+ * @param {SeqOptions} options
55
+ * @returns {null}
56
+ * @private
57
+ * @memberof Roap
58
+ */
59
+ private sendRoapOK;
60
+ /**
61
+ * Sends a ROAP answer...
62
+ * @param {SeqOptions} options
63
+ * @param {Boolean} options.audioMuted
64
+ * @param {Boolean} options.videoMuted
65
+ * @returns {Promise}
66
+ * @private
67
+ * @memberof Roap
68
+ */
69
+ private sendRoapAnswer;
70
+ /**
71
+ * Sends a ROAP error...
72
+ * @param {Object} session
73
+ * @param {Object} locus
74
+ * @param {String} errorType
75
+ * @returns {Promise}
76
+ * @private
77
+ * @memberof Roap
78
+ */
79
+ private sendRoapError;
80
+ /**
81
+ * sends a roap media request
82
+ * @param {RoapOptions} options
83
+ * @returns {Promise}
84
+ * @private
85
+ * @memberof Roap
86
+ */
87
+ sendRoapMediaRequest(options: any): any;
88
+ /**
89
+ * sends a roap media request
90
+ * @param {RoapOptions} options
91
+ * @returns {Promise}
92
+ * @private
93
+ * @memberof Roap
94
+ */
95
+ sendRoapCallRequest: (options: any) => any;
96
+ /**
97
+ * Called when the roap sequence is finished (completed successfully or failed)
98
+ * @param {String} correlationId id of the meeting affected
99
+ * @param {String} sequenceId the id of the finished sequence
100
+ * @returns {undefined}
101
+ * @private
102
+ * @memberof Roap
103
+ */
104
+ private roapFinished;
105
+ /**
106
+ * Performs a TURN server discovery procedure, which involves exchanging
107
+ * some roap messages with the server. This exchange has to be done before
108
+ * any other roap messages are sent
109
+ *
110
+ * @param {Meeting} meeting
111
+ * @param {Boolean} isReconnecting should be set to true if this is a new
112
+ * media connection just after a reconnection
113
+ * @returns {Promise}
114
+ */
115
+ doTurnDiscovery(meeting: Meeting, isReconnecting: boolean): any;
116
+ }