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

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 (418) 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.map +1 -1
  72. package/dist/constants.d.ts +924 -924
  73. package/dist/constants.js +9 -9
  74. package/dist/constants.js.map +1 -1
  75. package/dist/controls-options-manager/constants.d.ts +4 -4
  76. package/dist/controls-options-manager/constants.js.map +1 -1
  77. package/dist/controls-options-manager/enums.d.ts +5 -5
  78. package/dist/controls-options-manager/enums.js.map +1 -1
  79. package/dist/controls-options-manager/index.d.ts +120 -120
  80. package/dist/controls-options-manager/index.js +81 -81
  81. package/dist/controls-options-manager/index.js.map +1 -1
  82. package/dist/controls-options-manager/util.d.ts +7 -7
  83. package/dist/controls-options-manager/util.js.map +1 -1
  84. package/dist/index.d.ts +4 -4
  85. package/dist/index.js.map +1 -1
  86. package/dist/locus-info/controlsUtils.d.ts +2 -2
  87. package/dist/locus-info/controlsUtils.js +21 -21
  88. package/dist/locus-info/controlsUtils.js.map +1 -1
  89. package/dist/locus-info/embeddedAppsUtils.d.ts +2 -2
  90. package/dist/locus-info/embeddedAppsUtils.js +14 -14
  91. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  92. package/dist/locus-info/fullState.d.ts +2 -2
  93. package/dist/locus-info/fullState.js.map +1 -1
  94. package/dist/locus-info/hostUtils.d.ts +2 -2
  95. package/dist/locus-info/hostUtils.js +19 -19
  96. package/dist/locus-info/hostUtils.js.map +1 -1
  97. package/dist/locus-info/index.d.ts +269 -269
  98. package/dist/locus-info/index.js +180 -180
  99. package/dist/locus-info/index.js.map +1 -1
  100. package/dist/locus-info/infoUtils.d.ts +2 -2
  101. package/dist/locus-info/infoUtils.js.map +1 -1
  102. package/dist/locus-info/mediaSharesUtils.d.ts +2 -2
  103. package/dist/locus-info/mediaSharesUtils.js +50 -50
  104. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  105. package/dist/locus-info/parser.d.ts +212 -212
  106. package/dist/locus-info/parser.js +136 -136
  107. package/dist/locus-info/parser.js.map +1 -1
  108. package/dist/locus-info/selfUtils.d.ts +2 -2
  109. package/dist/locus-info/selfUtils.js +52 -52
  110. package/dist/locus-info/selfUtils.js.map +1 -1
  111. package/dist/media/index.d.ts +32 -32
  112. package/dist/media/index.js +145 -145
  113. package/dist/media/index.js.map +1 -1
  114. package/dist/media/properties.d.ts +108 -108
  115. package/dist/media/properties.js +49 -49
  116. package/dist/media/properties.js.map +1 -1
  117. package/dist/media/util.d.ts +2 -2
  118. package/dist/media/util.js.map +1 -1
  119. package/dist/mediaQualityMetrics/config.d.ts +233 -233
  120. package/dist/mediaQualityMetrics/config.js.map +1 -1
  121. package/dist/meeting/effectsState.d.ts +42 -42
  122. package/dist/meeting/effectsState.js +24 -24
  123. package/dist/meeting/effectsState.js.map +1 -1
  124. package/dist/meeting/in-meeting-actions.d.ts +79 -79
  125. package/dist/meeting/in-meeting-actions.js +11 -11
  126. package/dist/meeting/in-meeting-actions.js.map +1 -1
  127. package/dist/meeting/index.d.ts +1621 -1621
  128. package/dist/meeting/index.js +1502 -1505
  129. package/dist/meeting/index.js.map +1 -1
  130. package/dist/meeting/muteState.d.ts +116 -116
  131. package/dist/meeting/muteState.js +85 -85
  132. package/dist/meeting/muteState.js.map +1 -1
  133. package/dist/meeting/request.d.ts +255 -255
  134. package/dist/meeting/request.js +141 -141
  135. package/dist/meeting/request.js.map +1 -1
  136. package/dist/meeting/state.d.ts +9 -9
  137. package/dist/meeting/state.js +30 -30
  138. package/dist/meeting/state.js.map +1 -1
  139. package/dist/meeting/util.d.ts +2 -2
  140. package/dist/meeting/util.js.map +1 -1
  141. package/dist/meeting-info/collection.d.ts +20 -20
  142. package/dist/meeting-info/collection.js +11 -11
  143. package/dist/meeting-info/collection.js.map +1 -1
  144. package/dist/meeting-info/index.d.ts +57 -57
  145. package/dist/meeting-info/index.js +50 -50
  146. package/dist/meeting-info/index.js.map +1 -1
  147. package/dist/meeting-info/meeting-info-v2.d.ts +93 -93
  148. package/dist/meeting-info/meeting-info-v2.js +52 -52
  149. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  150. package/dist/meeting-info/request.d.ts +22 -22
  151. package/dist/meeting-info/request.js +14 -14
  152. package/dist/meeting-info/request.js.map +1 -1
  153. package/dist/meeting-info/util.d.ts +2 -2
  154. package/dist/meeting-info/util.js +9 -9
  155. package/dist/meeting-info/util.js.map +1 -1
  156. package/dist/meeting-info/utilv2.d.ts +2 -2
  157. package/dist/meeting-info/utilv2.js +20 -20
  158. package/dist/meeting-info/utilv2.js.map +1 -1
  159. package/dist/meetings/collection.d.ts +23 -23
  160. package/dist/meetings/collection.js +14 -14
  161. package/dist/meetings/collection.js.map +1 -1
  162. package/dist/meetings/index.d.ts +296 -296
  163. package/dist/meetings/index.js +259 -259
  164. package/dist/meetings/index.js.map +1 -1
  165. package/dist/meetings/request.d.ts +27 -27
  166. package/dist/meetings/request.js +15 -15
  167. package/dist/meetings/request.js.map +1 -1
  168. package/dist/meetings/util.d.ts +18 -18
  169. package/dist/meetings/util.js +29 -29
  170. package/dist/meetings/util.js.map +1 -1
  171. package/dist/member/index.d.ts +147 -147
  172. package/dist/member/index.js +214 -214
  173. package/dist/member/index.js.map +1 -1
  174. package/dist/member/member.types.d.ts +11 -11
  175. package/dist/member/member.types.js.map +1 -1
  176. package/dist/member/util.d.ts +2 -2
  177. package/dist/member/util.js +60 -60
  178. package/dist/member/util.js.map +1 -1
  179. package/dist/members/collection.d.ts +24 -24
  180. package/dist/members/collection.js +11 -11
  181. package/dist/members/collection.js.map +1 -1
  182. package/dist/members/index.d.ts +298 -298
  183. package/dist/members/index.js +275 -275
  184. package/dist/members/index.js.map +1 -1
  185. package/dist/members/request.d.ts +50 -50
  186. package/dist/members/request.js +27 -27
  187. package/dist/members/request.js.map +1 -1
  188. package/dist/members/util.d.ts +2 -2
  189. package/dist/members/util.js +21 -21
  190. package/dist/members/util.js.map +1 -1
  191. package/dist/metrics/config.d.ts +169 -169
  192. package/dist/metrics/config.js.map +1 -1
  193. package/dist/metrics/constants.d.ts +57 -57
  194. package/dist/metrics/constants.js.map +1 -1
  195. package/dist/metrics/index.d.ts +152 -152
  196. package/dist/metrics/index.js +90 -90
  197. package/dist/metrics/index.js.map +1 -1
  198. package/dist/networkQualityMonitor/index.d.ts +70 -70
  199. package/dist/networkQualityMonitor/index.js +65 -65
  200. package/dist/networkQualityMonitor/index.js.map +1 -1
  201. package/dist/peer-connection-manager/index.d.ts +6 -6
  202. package/dist/peer-connection-manager/index.js +87 -87
  203. package/dist/peer-connection-manager/index.js.map +1 -1
  204. package/dist/peer-connection-manager/util.d.ts +6 -6
  205. package/dist/peer-connection-manager/util.js +9 -9
  206. package/dist/peer-connection-manager/util.js.map +1 -1
  207. package/dist/personal-meeting-room/index.d.ts +47 -47
  208. package/dist/personal-meeting-room/index.js +67 -67
  209. package/dist/personal-meeting-room/index.js.map +1 -1
  210. package/dist/personal-meeting-room/request.d.ts +14 -14
  211. package/dist/personal-meeting-room/request.js +7 -7
  212. package/dist/personal-meeting-room/request.js.map +1 -1
  213. package/dist/personal-meeting-room/util.d.ts +2 -2
  214. package/dist/personal-meeting-room/util.js.map +1 -1
  215. package/dist/reachability/index.d.ts +139 -139
  216. package/dist/reachability/index.js +110 -110
  217. package/dist/reachability/index.js.map +1 -1
  218. package/dist/reachability/request.d.ts +35 -35
  219. package/dist/reachability/request.js +15 -15
  220. package/dist/reachability/request.js.map +1 -1
  221. package/dist/reactions/reactions.d.ts +4 -4
  222. package/dist/reactions/reactions.js.map +1 -1
  223. package/dist/reactions/reactions.type.d.ts +32 -32
  224. package/dist/reactions/reactions.type.js.map +1 -1
  225. package/dist/reconnection-manager/index.d.ts +112 -112
  226. package/dist/reconnection-manager/index.js +112 -112
  227. package/dist/reconnection-manager/index.js.map +1 -1
  228. package/dist/recording-controller/enums.d.ts +7 -7
  229. package/dist/recording-controller/enums.js.map +1 -1
  230. package/dist/recording-controller/index.d.ts +193 -193
  231. package/dist/recording-controller/index.js +127 -127
  232. package/dist/recording-controller/index.js.map +1 -1
  233. package/dist/recording-controller/util.d.ts +13 -13
  234. package/dist/recording-controller/util.js.map +1 -1
  235. package/dist/roap/collection.d.ts +10 -10
  236. package/dist/roap/collection.js.map +1 -1
  237. package/dist/roap/handler.d.ts +47 -47
  238. package/dist/roap/handler.js +27 -27
  239. package/dist/roap/handler.js.map +1 -1
  240. package/dist/roap/index.d.ts +116 -116
  241. package/dist/roap/index.js +111 -111
  242. package/dist/roap/index.js.map +1 -1
  243. package/dist/roap/request.d.ts +35 -35
  244. package/dist/roap/request.js +17 -17
  245. package/dist/roap/request.js.map +1 -1
  246. package/dist/roap/state.d.ts +9 -9
  247. package/dist/roap/state.js +14 -14
  248. package/dist/roap/state.js.map +1 -1
  249. package/dist/roap/turnDiscovery.d.ts +67 -67
  250. package/dist/roap/turnDiscovery.js +46 -46
  251. package/dist/roap/turnDiscovery.js.map +1 -1
  252. package/dist/roap/util.d.ts +2 -2
  253. package/dist/roap/util.js.map +1 -1
  254. package/dist/statsAnalyzer/global.d.ts +126 -116
  255. package/dist/statsAnalyzer/global.js +10 -0
  256. package/dist/statsAnalyzer/global.js.map +1 -1
  257. package/dist/statsAnalyzer/index.d.ts +190 -191
  258. package/dist/statsAnalyzer/index.js +137 -139
  259. package/dist/statsAnalyzer/index.js.map +1 -1
  260. package/dist/statsAnalyzer/mqaUtil.d.ts +22 -22
  261. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  262. package/dist/transcription/index.d.ts +64 -64
  263. package/dist/transcription/index.js +42 -42
  264. package/dist/transcription/index.js.map +1 -1
  265. package/internal-README.md +172 -172
  266. package/jest.config.js +3 -3
  267. package/package.json +22 -21
  268. package/process +1 -1
  269. package/src/common/browser-detection.ts +39 -39
  270. package/src/common/collection.ts +94 -94
  271. package/src/common/config.ts +9 -9
  272. package/src/common/errors/captcha-error.ts +25 -25
  273. package/src/common/errors/intent-to-join.ts +27 -27
  274. package/src/common/errors/join-meeting.ts +32 -32
  275. package/src/common/errors/media.ts +25 -25
  276. package/src/common/errors/parameter.ts +33 -33
  277. package/src/common/errors/password-error.ts +25 -25
  278. package/src/common/errors/permission.ts +24 -24
  279. package/src/common/errors/reconnection-in-progress.ts +8 -8
  280. package/src/common/errors/reconnection.ts +25 -25
  281. package/src/common/errors/stats.ts +25 -25
  282. package/src/common/errors/webex-errors.ts +140 -140
  283. package/src/common/errors/webex-meetings-error.ts +35 -35
  284. package/src/common/events/events-scope.ts +30 -30
  285. package/src/common/events/events.ts +25 -25
  286. package/src/common/events/trigger-proxy.ts +25 -25
  287. package/src/common/events/util.ts +39 -39
  288. package/src/common/logs/logger-config.ts +8 -8
  289. package/src/common/logs/logger-proxy.ts +44 -44
  290. package/src/common/logs/request.ts +65 -65
  291. package/src/common/queue.ts +50 -50
  292. package/src/config.ts +96 -96
  293. package/src/constants.ts +1121 -1121
  294. package/src/controls-options-manager/constants.ts +5 -5
  295. package/src/controls-options-manager/enums.ts +6 -6
  296. package/src/controls-options-manager/index.ts +183 -183
  297. package/src/controls-options-manager/util.ts +20 -20
  298. package/src/index.js +15 -15
  299. package/src/locus-info/controlsUtils.ts +112 -112
  300. package/src/locus-info/embeddedAppsUtils.ts +57 -57
  301. package/src/locus-info/fullState.ts +69 -69
  302. package/src/locus-info/hostUtils.ts +60 -60
  303. package/src/locus-info/index.ts +1303 -1303
  304. package/src/locus-info/infoUtils.ts +101 -101
  305. package/src/locus-info/mediaSharesUtils.ts +173 -173
  306. package/src/locus-info/parser.ts +680 -680
  307. package/src/locus-info/selfUtils.ts +428 -428
  308. package/src/media/index.ts +675 -675
  309. package/src/media/properties.ts +313 -313
  310. package/src/media/util.ts +37 -37
  311. package/src/mediaQualityMetrics/config.ts +382 -382
  312. package/src/meeting/effectsState.ts +209 -209
  313. package/src/meeting/in-meeting-actions.ts +153 -153
  314. package/src/meeting/index.ts +6537 -6543
  315. package/src/meeting/muteState.ts +365 -365
  316. package/src/meeting/request.ts +810 -810
  317. package/src/meeting/state.ts +194 -194
  318. package/src/meeting/util.ts +530 -530
  319. package/src/meeting-info/collection.ts +41 -41
  320. package/src/meeting-info/index.ts +137 -137
  321. package/src/meeting-info/meeting-info-v2.ts +273 -273
  322. package/src/meeting-info/request.ts +46 -46
  323. package/src/meeting-info/util.ts +314 -314
  324. package/src/meeting-info/utilv2.ts +324 -324
  325. package/src/meetings/collection.ts +43 -43
  326. package/src/meetings/index.ts +1128 -1128
  327. package/src/meetings/request.ts +81 -81
  328. package/src/meetings/util.ts +181 -181
  329. package/src/member/index.ts +446 -446
  330. package/src/member/member.types.ts +13 -13
  331. package/src/member/util.ts +286 -286
  332. package/src/members/collection.ts +40 -40
  333. package/src/members/index.ts +900 -900
  334. package/src/members/request.ts +175 -175
  335. package/src/members/util.ts +260 -260
  336. package/src/metrics/config.ts +485 -485
  337. package/src/metrics/constants.ts +61 -61
  338. package/src/metrics/index.ts +543 -543
  339. package/src/networkQualityMonitor/index.ts +211 -211
  340. package/src/peer-connection-manager/index.ts +847 -847
  341. package/src/peer-connection-manager/util.ts +119 -119
  342. package/src/personal-meeting-room/index.ts +157 -157
  343. package/src/personal-meeting-room/request.ts +48 -48
  344. package/src/personal-meeting-room/util.ts +49 -49
  345. package/src/reachability/index.ts +478 -478
  346. package/src/reachability/request.ts +81 -81
  347. package/src/reactions/reactions.ts +104 -104
  348. package/src/reactions/reactions.type.ts +36 -36
  349. package/src/reconnection-manager/index.ts +622 -622
  350. package/src/recording-controller/enums.ts +8 -8
  351. package/src/recording-controller/index.ts +315 -315
  352. package/src/recording-controller/util.ts +58 -58
  353. package/src/roap/collection.ts +62 -62
  354. package/src/roap/handler.ts +294 -294
  355. package/src/roap/index.ts +413 -413
  356. package/src/roap/request.ts +229 -229
  357. package/src/roap/state.ts +156 -156
  358. package/src/roap/turnDiscovery.ts +283 -283
  359. package/src/roap/util.ts +100 -100
  360. package/src/statsAnalyzer/global.ts +128 -118
  361. package/src/statsAnalyzer/index.ts +1266 -1265
  362. package/src/statsAnalyzer/mqaUtil.ts +290 -290
  363. package/src/transcription/index.ts +154 -154
  364. package/test/integration/spec/journey.js +941 -941
  365. package/test/integration/spec/space-meeting.js +457 -457
  366. package/test/integration/spec/transcription.js +55 -55
  367. package/test/unit/spec/common/browser-detection.js +119 -119
  368. package/test/unit/spec/common/queue.js +69 -69
  369. package/test/unit/spec/controls-options-manager/index.js +123 -123
  370. package/test/unit/spec/controls-options-manager/util.js +65 -65
  371. package/test/unit/spec/fixture/locus.js +406 -406
  372. package/test/unit/spec/locus-info/controlsUtils.js +82 -82
  373. package/test/unit/spec/locus-info/embeddedAppsUtils.js +104 -104
  374. package/test/unit/spec/locus-info/index.js +1272 -1272
  375. package/test/unit/spec/locus-info/infoUtils.js +138 -138
  376. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +975 -975
  377. package/test/unit/spec/locus-info/lib/SeqCmp.json +522 -522
  378. package/test/unit/spec/locus-info/lib/selfConstant.js +286 -286
  379. package/test/unit/spec/locus-info/parser.js +298 -298
  380. package/test/unit/spec/locus-info/selfUtils.js +185 -185
  381. package/test/unit/spec/media/properties.ts +305 -305
  382. package/test/unit/spec/meeting/effectsState.js +281 -281
  383. package/test/unit/spec/meeting/in-meeting-actions.ts +90 -90
  384. package/test/unit/spec/meeting/index.js +5227 -5227
  385. package/test/unit/spec/meeting/muteState.js +430 -430
  386. package/test/unit/spec/meeting/request.js +317 -317
  387. package/test/unit/spec/meeting/utils.js +319 -319
  388. package/test/unit/spec/meeting-info/meetinginfov2.js +376 -376
  389. package/test/unit/spec/meeting-info/request.js +64 -64
  390. package/test/unit/spec/meeting-info/util.js +37 -37
  391. package/test/unit/spec/meeting-info/utilv2.js +330 -330
  392. package/test/unit/spec/meetings/collection.js +52 -52
  393. package/test/unit/spec/meetings/index.js +1375 -1375
  394. package/test/unit/spec/meetings/utils.js +66 -66
  395. package/test/unit/spec/member/index.js +47 -47
  396. package/test/unit/spec/member/util.js +80 -80
  397. package/test/unit/spec/members/index.js +364 -364
  398. package/test/unit/spec/members/request.js +200 -200
  399. package/test/unit/spec/members/utils.js +42 -42
  400. package/test/unit/spec/metrics/index.js +111 -111
  401. package/test/unit/spec/networkQualityMonitor/index.js +99 -99
  402. package/test/unit/spec/peerconnection-manager/index.js +218 -218
  403. package/test/unit/spec/peerconnection-manager/utils.js +49 -49
  404. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -388
  405. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +29 -29
  406. package/test/unit/spec/reachability/index.ts +50 -50
  407. package/test/unit/spec/reconnection-manager/index.js +206 -206
  408. package/test/unit/spec/recording-controller/index.js +230 -230
  409. package/test/unit/spec/recording-controller/util.js +101 -101
  410. package/test/unit/spec/roap/index.ts +128 -128
  411. package/test/unit/spec/roap/turnDiscovery.ts +372 -372
  412. package/test/unit/spec/roap/util.js +30 -30
  413. package/test/unit/spec/stats-analyzer/index.js +287 -355
  414. package/test/utils/cmr.js +104 -104
  415. package/test/utils/testUtils.js +287 -287
  416. package/test/utils/webex-config.js +77 -77
  417. package/test/utils/webex-test-users.js +82 -82
  418. package/tsconfig.json +5 -5
@@ -28,42 +28,42 @@ var _collection = _interopRequireDefault(require("./collection"));
28
28
  var _turnDiscovery = _interopRequireDefault(require("./turnDiscovery"));
29
29
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
30
30
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
31
- /**
32
- * Roap options
33
- * @typedef {Object} RoapOptions
34
- * @property {String} sdp
35
- * @property {Meeting} meeting
36
- * @property {Number} roapSeq
37
- * @property {Boolean} reconnect
31
+ /**
32
+ * Roap options
33
+ * @typedef {Object} RoapOptions
34
+ * @property {String} sdp
35
+ * @property {Meeting} meeting
36
+ * @property {Number} roapSeq
37
+ * @property {Boolean} reconnect
38
38
  */
39
- /**
40
- * @typedef {Object} SeqOptions
41
- * @property {String} correlationId
42
- * @property {String} mediaId
43
- * @property {Number} seq
39
+ /**
40
+ * @typedef {Object} SeqOptions
41
+ * @property {String} correlationId
42
+ * @property {String} mediaId
43
+ * @property {Number} seq
44
44
  */
45
- /**
46
- * @class Roap
47
- * @export
48
- * @private
45
+ /**
46
+ * @class Roap
47
+ * @export
48
+ * @private
49
49
  */
50
50
  var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
51
51
  (0, _inherits2.default)(Roap, _StatelessWebexPlugin);
52
52
  var _super = _createSuper(Roap);
53
- /**
54
- *
55
- * @param {Object} attrs
56
- * @param {Object} options
53
+ /**
54
+ *
55
+ * @param {Object} attrs
56
+ * @param {Object} options
57
57
  */
58
58
  function Roap(attrs, _options) {
59
59
  var _this;
60
60
  (0, _classCallCheck2.default)(this, Roap);
61
61
  _this = _super.call(this, {}, _options);
62
- /**
63
- * @instance
64
- * @type {Object}
65
- * @private
66
- * @memberof Roap
62
+ /**
63
+ * @instance
64
+ * @type {Object}
65
+ * @private
66
+ * @memberof Roap
67
67
  */
68
68
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "attrs", void 0);
69
69
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "lastRoapOffer", void 0);
@@ -71,12 +71,12 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
71
71
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "roapHandler", void 0);
72
72
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "roapRequest", void 0);
73
73
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "turnDiscovery", void 0);
74
- /**
75
- * sends a roap media request
76
- * @param {RoapOptions} options
77
- * @returns {Promise}
78
- * @private
79
- * @memberof Roap
74
+ /**
75
+ * sends a roap media request
76
+ * @param {RoapOptions} options
77
+ * @returns {Promise}
78
+ * @private
79
+ * @memberof Roap
80
80
  */
81
81
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sendRoapCallRequest", function (options) {
82
82
  var _meeting$audio, _meeting$video;
@@ -125,48 +125,48 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
125
125
  });
126
126
  });
127
127
  _this.attrs = attrs;
128
- /**
129
- * @instance
130
- * @type {Object}
131
- * @private
132
- * @memberof Roap
128
+ /**
129
+ * @instance
130
+ * @type {Object}
131
+ * @private
132
+ * @memberof Roap
133
133
  */
134
134
  _this.options = _options;
135
- /**
136
- * The Roap Process State Handler
137
- * @instance
138
- * @type {RoapHandler}
139
- * @private
140
- * @memberof Roap
135
+ /**
136
+ * The Roap Process State Handler
137
+ * @instance
138
+ * @type {RoapHandler}
139
+ * @private
140
+ * @memberof Roap
141
141
  */
142
142
  _this.roapHandler = new _handler.default(_this.attrs, _this.options, _this.sendRoapOK.bind((0, _assertThisInitialized2.default)(_this)), _this.sendRoapAnswer.bind((0, _assertThisInitialized2.default)(_this)), _this.roapFinished.bind((0, _assertThisInitialized2.default)(_this)));
143
- /**
144
- * The Roap Request Server Proxy Object
145
- * @instance
146
- * @type {RoapRequest}
147
- * @private
148
- * @memberof Roap
143
+ /**
144
+ * The Roap Request Server Proxy Object
145
+ * @instance
146
+ * @type {RoapRequest}
147
+ * @private
148
+ * @memberof Roap
149
149
  */
150
150
  // @ts-ignore
151
151
  _this.roapRequest = new _request.default({}, _options);
152
- /**
153
- * The last roap offer sent to server and acked
154
- * @instance
155
- * @type {Object}
156
- * @private
157
- * @memberof Roap
152
+ /**
153
+ * The last roap offer sent to server and acked
154
+ * @instance
155
+ * @type {Object}
156
+ * @private
157
+ * @memberof Roap
158
158
  */
159
159
  _this.lastRoapOffer = {};
160
160
  _this.turnDiscovery = new _turnDiscovery.default(_this.roapRequest);
161
161
  return _this;
162
162
  }
163
163
 
164
- /**
165
- * Starts listening to mercury events for Roap messages
166
- * @param {object} data event object
167
- * @returns {Promise}
168
- * @private
169
- * @memberof Roap
164
+ /**
165
+ * Starts listening to mercury events for Roap messages
166
+ * @param {object} data event object
167
+ * @returns {Promise}
168
+ * @private
169
+ * @memberof Roap
170
170
  */
171
171
  (0, _createClass2.default)(Roap, [{
172
172
  key: "roapEvent",
@@ -187,13 +187,13 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
187
187
  }
188
188
  }
189
189
 
190
- /**
191
- *
192
- * @param {String} correlationId correlation id of a meeting
193
- * @param {Number} seq ROAP sequence number
194
- * @returns {Promise}
195
- * @private
196
- * @memberof Roap
190
+ /**
191
+ *
192
+ * @param {String} correlationId correlation id of a meeting
193
+ * @param {Number} seq ROAP sequence number
194
+ * @returns {Promise}
195
+ * @private
196
+ * @memberof Roap
197
197
  */
198
198
  }, {
199
199
  key: "stop",
@@ -206,12 +206,12 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
206
206
  return _promise.default.resolve();
207
207
  }
208
208
 
209
- /**
210
- *
211
- * @param {SeqOptions} options
212
- * @returns {null}
213
- * @private
214
- * @memberof Roap
209
+ /**
210
+ *
211
+ * @param {SeqOptions} options
212
+ * @returns {null}
213
+ * @private
214
+ * @memberof Roap
215
215
  */
216
216
  }, {
217
217
  key: "sendRoapOK",
@@ -249,14 +249,14 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
249
249
 
250
250
  // eslint-disable-next-line no-warning-comments
251
251
  // TODO: try to merge sendRoapOk and roapAnswer
252
- /**
253
- * Sends a ROAP answer...
254
- * @param {SeqOptions} options
255
- * @param {Boolean} options.audioMuted
256
- * @param {Boolean} options.videoMuted
257
- * @returns {Promise}
258
- * @private
259
- * @memberof Roap
252
+ /**
253
+ * Sends a ROAP answer...
254
+ * @param {SeqOptions} options
255
+ * @param {Boolean} options.audioMuted
256
+ * @param {Boolean} options.videoMuted
257
+ * @returns {Promise}
258
+ * @private
259
+ * @memberof Roap
260
260
  */
261
261
  }, {
262
262
  key: "sendRoapAnswer",
@@ -295,14 +295,14 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
295
295
  });
296
296
  }
297
297
 
298
- /**
299
- * Sends a ROAP error...
300
- * @param {Object} session
301
- * @param {Object} locus
302
- * @param {String} errorType
303
- * @returns {Promise}
304
- * @private
305
- * @memberof Roap
298
+ /**
299
+ * Sends a ROAP error...
300
+ * @param {Object} session
301
+ * @param {Object} locus
302
+ * @param {String} errorType
303
+ * @returns {Promise}
304
+ * @private
305
+ * @memberof Roap
306
306
  */
307
307
  }, {
308
308
  key: "sendRoapError",
@@ -316,12 +316,12 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
316
316
  return this.roapRequest.sendRoap(msg, locus);
317
317
  }
318
318
 
319
- /**
320
- * sends a roap media request
321
- * @param {RoapOptions} options
322
- * @returns {Promise}
323
- * @private
324
- * @memberof Roap
319
+ /**
320
+ * sends a roap media request
321
+ * @param {RoapOptions} options
322
+ * @returns {Promise}
323
+ * @private
324
+ * @memberof Roap
325
325
  */
326
326
  }, {
327
327
  key: "sendRoapMediaRequest",
@@ -381,13 +381,13 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
381
381
  }, {
382
382
  key: "roapFinished",
383
383
  value:
384
- /**
385
- * Called when the roap sequence is finished (completed successfully or failed)
386
- * @param {String} correlationId id of the meeting affected
387
- * @param {String} sequenceId the id of the finished sequence
388
- * @returns {undefined}
389
- * @private
390
- * @memberof Roap
384
+ /**
385
+ * Called when the roap sequence is finished (completed successfully or failed)
386
+ * @param {String} correlationId id of the meeting affected
387
+ * @param {String} sequenceId the id of the finished sequence
388
+ * @returns {undefined}
389
+ * @private
390
+ * @memberof Roap
391
391
  */
392
392
  function roapFinished(correlationId, sequenceId) {
393
393
  _collection.default.onSessionSequenceFinish(correlationId, sequenceId);
@@ -399,15 +399,15 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
399
399
  }
400
400
  }
401
401
 
402
- /**
403
- * Performs a TURN server discovery procedure, which involves exchanging
404
- * some roap messages with the server. This exchange has to be done before
405
- * any other roap messages are sent
406
- *
407
- * @param {Meeting} meeting
408
- * @param {Boolean} isReconnecting should be set to true if this is a new
409
- * media connection just after a reconnection
410
- * @returns {Promise}
402
+ /**
403
+ * Performs a TURN server discovery procedure, which involves exchanging
404
+ * some roap messages with the server. This exchange has to be done before
405
+ * any other roap messages are sent
406
+ *
407
+ * @param {Meeting} meeting
408
+ * @param {Boolean} isReconnecting should be set to true if this is a new
409
+ * media connection just after a reconnection
410
+ * @returns {Promise}
411
411
  */
412
412
  }, {
413
413
  key: "doTurnDiscovery",
@@ -1 +1 @@
1
- {"version":3,"names":["_webexCore","require","_constants","_loggerProxy","_interopRequireDefault","_util","_handler","_request","_collection","_turnDiscovery","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","Roap","_StatelessWebexPlugin","_inherits2","_super","attrs","options","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_meeting$audio","_meeting$video","meeting","roapMessage","messageType","ROAP","ROAP_TYPES","OFFER","sdps","sdp","version","ROAP_VERSION","seq","roapSeq","_isNan","_parseFloat2","tieBreaker","roapHandler","submit","type","SEND_ROAP_MSG","msg","correlationId","roapBody","localMedias","localSdp","_stringify","roapRequest","attachRechabilityData","audioMuted","audio","isLocallyMuted","videoMuted","video","MeetingUtil","joinMeetingOptions","then","locus","SEND_ROAP_MSG_SUCCESS","setRoapSeq","RoapHandler","sendRoapOK","bind","sendRoapAnswer","roapFinished","RoapRequest","lastRoapOffer","turnDiscovery","TurnDiscovery","_createClass2","key","value","roapEvent","data","message","LoggerProxy","logger","log","concat","TURN_DISCOVERY_RESPONSE","handleTurnDiscoveryResponse","RECEIVE_ROAP_MSG","stop","RECEIVE_CALL_LEAVE","_promise","resolve","_this2","_meeting$audio2","_meeting$video2","webex","meetings","meetingCollection","getByKey","OK","sendRoap","locusSelfUrl","selfUrl","mediaId","meetingId","id","_meeting$audio3","_meeting$video3","_this3","ANSWER","sendRoapError","session","errorType","ERROR","sendRoapMediaRequest","_meeting$audio4","_meeting$video4","_this4","reconnect","sendEmptyMediaId","config","experimental","enableTurnDiscovery","_ref","mediaConnections","updateMediaConnections","sequenceId","RoapCollection","onSessionSequenceFinish","mediaNegotiatedEvent","isBusy","processNextQueuedMediaUpdate","doTurnDiscovery","isReconnecting","StatelessWebexPlugin","exports"],"sources":["index.ts"],"sourcesContent":["// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport {ROAP} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport MeetingUtil from '../meeting/util';\n\nimport RoapHandler from './handler';\nimport RoapRequest from './request';\nimport RoapCollection from './collection';\nimport TurnDiscovery from './turnDiscovery';\nimport Meeting from '../meeting';\n\n/**\n * Roap options\n * @typedef {Object} RoapOptions\n * @property {String} sdp\n * @property {Meeting} meeting\n * @property {Number} roapSeq\n * @property {Boolean} reconnect\n */\n\n/**\n * @typedef {Object} SeqOptions\n * @property {String} correlationId\n * @property {String} mediaId\n * @property {Number} seq\n */\n\n/**\n * @class Roap\n * @export\n * @private\n */\nexport default class Roap extends StatelessWebexPlugin {\n attrs: any;\n lastRoapOffer: any;\n options: any;\n roapHandler: any;\n roapRequest: any;\n turnDiscovery: any;\n\n /**\n *\n * @param {Object} attrs\n * @param {Object} options\n */\n constructor(attrs: any, options: any) {\n super({}, options);\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof Roap\n */\n this.attrs = attrs;\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof Roap\n */\n this.options = options;\n /**\n * The Roap Process State Handler\n * @instance\n * @type {RoapHandler}\n * @private\n * @memberof Roap\n */\n this.roapHandler = new RoapHandler(\n this.attrs,\n this.options,\n this.sendRoapOK.bind(this),\n this.sendRoapAnswer.bind(this),\n this.roapFinished.bind(this)\n );\n /**\n * The Roap Request Server Proxy Object\n * @instance\n * @type {RoapRequest}\n * @private\n * @memberof Roap\n */\n // @ts-ignore\n this.roapRequest = new RoapRequest({}, options);\n /**\n * The last roap offer sent to server and acked\n * @instance\n * @type {Object}\n * @private\n * @memberof Roap\n */\n this.lastRoapOffer = {};\n\n this.turnDiscovery = new TurnDiscovery(this.roapRequest);\n }\n\n /**\n * Starts listening to mercury events for Roap messages\n * @param {object} data event object\n * @returns {Promise}\n * @private\n * @memberof Roap\n */\n private roapEvent(data: any) {\n const msg = data.message;\n const {correlationId} = data;\n\n LoggerProxy.logger.log(\n `Roap:index#roapEvent --> Received Roap Message [${JSON.stringify(msg, null, 2)}]`\n );\n\n if (msg.messageType === ROAP.ROAP_TYPES.TURN_DISCOVERY_RESPONSE) {\n // turn discovery is not part of normal roap protocol and so we are not handling it\n // through the usual roap state machine\n this.turnDiscovery.handleTurnDiscoveryResponse(msg);\n } else {\n this.roapHandler.submit({\n type: ROAP.RECEIVE_ROAP_MSG,\n msg,\n correlationId,\n });\n }\n }\n\n /**\n *\n * @param {String} correlationId correlation id of a meeting\n * @param {Number} seq ROAP sequence number\n * @returns {Promise}\n * @private\n * @memberof Roap\n */\n private stop(correlationId: string, seq: number) {\n this.roapHandler.submit({\n type: ROAP.RECEIVE_CALL_LEAVE,\n seq,\n correlationId,\n });\n\n return Promise.resolve();\n }\n\n /**\n *\n * @param {SeqOptions} options\n * @returns {null}\n * @private\n * @memberof Roap\n */\n private sendRoapOK(options: any) {\n return Promise.resolve().then(() => {\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey(\n 'correlationId',\n options.correlationId\n );\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.OK,\n version: ROAP.ROAP_VERSION,\n seq: options.seq,\n };\n\n LoggerProxy.logger.log(`Roap:index#sendRoapOK --> ROAP OK sending with seq ${options.seq}`);\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n correlationId: options.correlationId,\n audioMuted: meeting.audio?.isLocallyMuted(),\n videoMuted: meeting.video?.isLocallyMuted(),\n meetingId: meeting.id,\n })\n .then(() => {\n this.roapHandler.submit({\n type: ROAP.SEND_ROAP_MSG,\n msg: roapMessage,\n correlationId: options.correlationId,\n });\n LoggerProxy.logger.log(`Roap:index#sendRoapOK --> ROAP OK sent with seq ${options.seq}`);\n meeting.setRoapSeq(options.seq);\n });\n });\n }\n\n // eslint-disable-next-line no-warning-comments\n // TODO: try to merge sendRoapOk and roapAnswer\n /**\n * Sends a ROAP answer...\n * @param {SeqOptions} options\n * @param {Boolean} options.audioMuted\n * @param {Boolean} options.videoMuted\n * @returns {Promise}\n * @private\n * @memberof Roap\n */\n private sendRoapAnswer(options: any) {\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey(\n 'correlationId',\n options.correlationId\n );\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.ANSWER,\n sdps: options.sdps,\n version: ROAP.ROAP_VERSION,\n seq: options.seq,\n };\n\n this.roapHandler.submit({\n type: ROAP.SEND_ROAP_MSG,\n msg: roapMessage,\n correlationId: options.correlationId,\n });\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n correlationId: options.correlationId,\n audioMuted: meeting.audio?.isLocallyMuted(),\n videoMuted: meeting.video?.isLocallyMuted(),\n meetingId: meeting.id,\n })\n .then(() => {\n meeting.setRoapSeq(options.seq);\n\n this.roapHandler.submit({\n type: ROAP.SEND_ROAP_MSG_SUCCESS,\n seq: roapMessage.seq,\n correlationId: meeting.correlationId,\n });\n });\n }\n\n /**\n * Sends a ROAP error...\n * @param {Object} session\n * @param {Object} locus\n * @param {String} errorType\n * @returns {Promise}\n * @private\n * @memberof Roap\n */\n private sendRoapError(session: any, locus: object, errorType: string) {\n const msg = {\n messageType: ROAP.ROAP_TYPES.ERROR,\n version: ROAP.ROAP_VERSION,\n errorType,\n seq: session.OFFER.seq,\n };\n\n return this.roapRequest.sendRoap(msg, locus);\n }\n\n /**\n * sends a roap media request\n * @param {RoapOptions} options\n * @returns {Promise}\n * @private\n * @memberof Roap\n */\n sendRoapMediaRequest(options: any) {\n const {meeting, reconnect} = options;\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.OFFER,\n sdps: [options.sdp],\n // sdps: [options.sdp],\n version: ROAP.ROAP_VERSION,\n seq:\n typeof options.roapSeq !== 'number' && Number.isNaN(parseFloat(options.roapSeq))\n ? 0\n : options.roapSeq + 1,\n tieBreaker: 4294967294, // Math.floor(Math.random() * (2 ** 32) - 1) // TODO: Handle the roap conflict scenario\n };\n\n this.roapHandler.submit({\n type: ROAP.SEND_ROAP_MSG,\n msg: roapMessage,\n correlationId: meeting.correlationId,\n });\n\n // When reconnecting, it's important that the first roap message being sent out has empty media id.\n // Normally this is the roap offer, but when TURN discovery is enabled,\n // then this is the TURN discovery request message\n const sendEmptyMediaId = reconnect && !meeting.config.experimental.enableTurnDiscovery;\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n correlationId: meeting.correlationId,\n locusSelfUrl: meeting.selfUrl,\n mediaId: sendEmptyMediaId ? '' : meeting.mediaId,\n audioMuted: meeting.audio?.isLocallyMuted(),\n videoMuted: meeting.video?.isLocallyMuted(),\n meetingId: meeting.id,\n })\n .then(({locus, mediaConnections}) => {\n this.roapHandler.submit({\n type: ROAP.SEND_ROAP_MSG_SUCCESS,\n seq: roapMessage.seq,\n correlationId: meeting.correlationId,\n });\n meeting.setRoapSeq(roapMessage.seq);\n\n if (mediaConnections) {\n meeting.updateMediaConnections(mediaConnections);\n }\n\n // eslint-disable-next-line no-warning-comments\n // TODO: we need to attach peerconenction to locus not sure if we need to pass everything here\n return locus;\n // eslint-disable-next-line no-warning-comments\n // TODO: check where to update the sequence number\n });\n }\n\n /**\n * sends a roap media request\n * @param {RoapOptions} options\n * @returns {Promise}\n * @private\n * @memberof Roap\n */\n sendRoapCallRequest = (options: any) => {\n const {meeting} = options;\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.OFFER,\n sdps: [options.sdp],\n version: ROAP.ROAP_VERSION,\n seq:\n typeof options.roapSeq !== 'number' && Number.isNaN(parseFloat(options.roapSeq))\n ? 0\n : options.roapSeq + 1,\n tieBreaker: 4294967294, // Math.floor(Math.random() * (2 ** 32) - 1) // TODO: Handle the roap conflict scenario\n };\n\n this.roapHandler.submit({\n type: ROAP.SEND_ROAP_MSG,\n msg: roapMessage,\n correlationId: meeting.correlationId,\n });\n\n const roapBody = {\n localMedias: [\n {\n localSdp: JSON.stringify(\n this.roapRequest.attachRechabilityData({\n roapMessage,\n // eslint-disable-next-line no-warning-comments\n // TODO: check whats the need for video and audiomute\n audioMuted: meeting.audio?.isLocallyMuted(),\n videoMuted: meeting.video?.isLocallyMuted(),\n })\n ),\n // mediaId: meeting.mediaId\n },\n ],\n };\n\n return MeetingUtil.joinMeetingOptions(meeting, {roapMessage: roapBody}).then((locus) => {\n this.roapHandler.submit({\n type: ROAP.SEND_ROAP_MSG_SUCCESS,\n seq: roapMessage.seq,\n correlationId: meeting.correlationId,\n });\n meeting.setRoapSeq(roapMessage.seq);\n\n // eslint-disable-next-line no-warning-comments\n // TODO: we need to attach peerconenction to locus not sure if we need to pass everything here\n return locus;\n // eslint-disable-next-line no-warning-comments\n // TODO: check where to update the sequence number\n });\n };\n\n /**\n * Called when the roap sequence is finished (completed successfully or failed)\n * @param {String} correlationId id of the meeting affected\n * @param {String} sequenceId the id of the finished sequence\n * @returns {undefined}\n * @private\n * @memberof Roap\n */\n private roapFinished(correlationId: string, sequenceId: string) {\n RoapCollection.onSessionSequenceFinish(correlationId, sequenceId);\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', correlationId);\n\n meeting.mediaNegotiatedEvent();\n if (!RoapCollection.isBusy(correlationId)) {\n meeting.processNextQueuedMediaUpdate();\n }\n }\n\n /**\n * Performs a TURN server discovery procedure, which involves exchanging\n * some roap messages with the server. This exchange has to be done before\n * any other roap messages are sent\n *\n * @param {Meeting} meeting\n * @param {Boolean} isReconnecting should be set to true if this is a new\n * media connection just after a reconnection\n * @returns {Promise}\n */\n doTurnDiscovery(meeting: Meeting, isReconnecting: boolean) {\n return this.turnDiscovery.doTurnDiscovery(meeting, isReconnecting);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,KAAA,GAAAD,sBAAA,CAAAH,OAAA;AAEA,IAAAK,QAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,QAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,WAAA,GAAAJ,sBAAA,CAAAH,OAAA;AACA,IAAAQ,cAAA,GAAAL,sBAAA,CAAAH,OAAA;AAA4C,SAAAS,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA;AAG5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAJA,IAKqBC,IAAI,0BAAAC,qBAAA;EAAA,IAAAC,UAAA,CAAAlB,OAAA,EAAAgB,IAAA,EAAAC,qBAAA;EAAA,IAAAE,MAAA,GAAA1B,YAAA,CAAAuB,IAAA;EAQvB;AACF;AACA;AACA;AACA;EACE,SAAAA,KAAYI,KAAU,EAAEC,QAAY,EAAE;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAAvB,OAAA,QAAAgB,IAAA;IACpCM,KAAA,GAAAH,MAAA,CAAAL,IAAA,OAAM,CAAC,CAAC,EAAEO,QAAO;IACjB;AACJ;AACA;AACA;AACA;AACA;IALI,IAAAG,gBAAA,CAAAxB,OAAA,MAAAyB,uBAAA,CAAAzB,OAAA,EAAAsB,KAAA;IAAA,IAAAE,gBAAA,CAAAxB,OAAA,MAAAyB,uBAAA,CAAAzB,OAAA,EAAAsB,KAAA;IAAA,IAAAE,gBAAA,CAAAxB,OAAA,MAAAyB,uBAAA,CAAAzB,OAAA,EAAAsB,KAAA;IAAA,IAAAE,gBAAA,CAAAxB,OAAA,MAAAyB,uBAAA,CAAAzB,OAAA,EAAAsB,KAAA;IAAA,IAAAE,gBAAA,CAAAxB,OAAA,MAAAyB,uBAAA,CAAAzB,OAAA,EAAAsB,KAAA;IAAA,IAAAE,gBAAA,CAAAxB,OAAA,MAAAyB,uBAAA,CAAAzB,OAAA,EAAAsB,KAAA;IAgRF;AACF;AACA;AACA;AACA;AACA;AACA;IANE,IAAAE,gBAAA,CAAAxB,OAAA,MAAAyB,uBAAA,CAAAzB,OAAA,EAAAsB,KAAA,0BAOsB,UAACD,OAAY,EAAK;MAAA,IAAAK,cAAA,EAAAC,cAAA;MACtC,IAAOC,OAAO,GAAIP,OAAO,CAAlBO,OAAO;MACd,IAAMC,WAAW,GAAG;QAClBC,WAAW,EAAEC,eAAI,CAACC,UAAU,CAACC,KAAK;QAClCC,IAAI,EAAE,CAACb,OAAO,CAACc,GAAG,CAAC;QACnBC,OAAO,EAAEL,eAAI,CAACM,YAAY;QAC1BC,GAAG,EACD,OAAOjB,OAAO,CAACkB,OAAO,KAAK,QAAQ,IAAI,IAAAC,MAAA,CAAAxC,OAAA,EAAa,IAAAyC,YAAA,CAAAzC,OAAA,EAAWqB,OAAO,CAACkB,OAAO,CAAC,CAAC,GAC5E,CAAC,GACDlB,OAAO,CAACkB,OAAO,GAAG,CAAC;QACzBG,UAAU,EAAE,UAAU,CAAE;MAC1B,CAAC;;MAEDpB,KAAA,CAAKqB,WAAW,CAACC,MAAM,CAAC;QACtBC,IAAI,EAAEd,eAAI,CAACe,aAAa;QACxBC,GAAG,EAAElB,WAAW;QAChBmB,aAAa,EAAEpB,OAAO,CAACoB;MACzB,CAAC,CAAC;MAEF,IAAMC,QAAQ,GAAG;QACfC,WAAW,EAAE,CACX;UACEC,QAAQ,EAAE,IAAAC,UAAA,CAAApD,OAAA,EACRsB,KAAA,CAAK+B,WAAW,CAACC,qBAAqB,CAAC;YACrCzB,WAAW,EAAXA,WAAW;YACX;YACA;YACA0B,UAAU,GAAA7B,cAAA,GAAEE,OAAO,CAAC4B,KAAK,cAAA9B,cAAA,uBAAbA,cAAA,CAAe+B,cAAc,EAAE;YAC3CC,UAAU,GAAA/B,cAAA,GAAEC,OAAO,CAAC+B,KAAK,cAAAhC,cAAA,uBAAbA,cAAA,CAAe8B,cAAc;UAC3C,CAAC,CAAC;UAEJ;QACF,CAAC;MAEL,CAAC;;MAED,OAAOG,aAAW,CAACC,kBAAkB,CAACjC,OAAO,EAAE;QAACC,WAAW,EAAEoB;MAAQ,CAAC,CAAC,CAACa,IAAI,CAAC,UAACC,KAAK,EAAK;QACtFzC,KAAA,CAAKqB,WAAW,CAACC,MAAM,CAAC;UACtBC,IAAI,EAAEd,eAAI,CAACiC,qBAAqB;UAChC1B,GAAG,EAAET,WAAW,CAACS,GAAG;UACpBU,aAAa,EAAEpB,OAAO,CAACoB;QACzB,CAAC,CAAC;QACFpB,OAAO,CAACqC,UAAU,CAACpC,WAAW,CAACS,GAAG,CAAC;;QAEnC;QACA;QACA,OAAOyB,KAAK;QACZ;QACA;MACF,CAAC,CAAC;IACJ,CAAC;IAnUCzC,KAAA,CAAKF,KAAK,GAAGA,KAAK;IAClB;AACJ;AACA;AACA;AACA;AACA;IACIE,KAAA,CAAKD,OAAO,GAAGA,QAAO;IACtB;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,KAAA,CAAKqB,WAAW,GAAG,IAAIuB,gBAAW,CAChC5C,KAAA,CAAKF,KAAK,EACVE,KAAA,CAAKD,OAAO,EACZC,KAAA,CAAK6C,UAAU,CAACC,IAAI,KAAA3C,uBAAA,CAAAzB,OAAA,EAAAsB,KAAA,EAAM,EAC1BA,KAAA,CAAK+C,cAAc,CAACD,IAAI,KAAA3C,uBAAA,CAAAzB,OAAA,EAAAsB,KAAA,EAAM,EAC9BA,KAAA,CAAKgD,YAAY,CAACF,IAAI,KAAA3C,uBAAA,CAAAzB,OAAA,EAAAsB,KAAA,EAAM,CAC7B;IACD;AACJ;AACA;AACA;AACA;AACA;AACA;IACI;IACAA,KAAA,CAAK+B,WAAW,GAAG,IAAIkB,gBAAW,CAAC,CAAC,CAAC,EAAElD,QAAO,CAAC;IAC/C;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,KAAA,CAAKkD,aAAa,GAAG,CAAC,CAAC;IAEvBlD,KAAA,CAAKmD,aAAa,GAAG,IAAIC,sBAAa,CAACpD,KAAA,CAAK+B,WAAW,CAAC;IAAC,OAAA/B,KAAA;EAC3D;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE,IAAAqD,aAAA,CAAA3E,OAAA,EAAAgB,IAAA;IAAA4D,GAAA;IAAAC,KAAA,EAOA,SAAAC,UAAkBC,IAAS,EAAE;MAC3B,IAAMhC,GAAG,GAAGgC,IAAI,CAACC,OAAO;MACxB,IAAOhC,aAAa,GAAI+B,IAAI,CAArB/B,aAAa;MAEpBiC,oBAAW,CAACC,MAAM,CAACC,GAAG,oDAAAC,MAAA,CAC+B,IAAAhC,UAAA,CAAApD,OAAA,EAAe+C,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,OAChF;MAED,IAAIA,GAAG,CAACjB,WAAW,KAAKC,eAAI,CAACC,UAAU,CAACqD,uBAAuB,EAAE;QAC/D;QACA;QACA,IAAI,CAACZ,aAAa,CAACa,2BAA2B,CAACvC,GAAG,CAAC;MACrD,CAAC,MAAM;QACL,IAAI,CAACJ,WAAW,CAACC,MAAM,CAAC;UACtBC,IAAI,EAAEd,eAAI,CAACwD,gBAAgB;UAC3BxC,GAAG,EAAHA,GAAG;UACHC,aAAa,EAAbA;QACF,CAAC,CAAC;MACJ;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA4B,GAAA;IAAAC,KAAA,EAQA,SAAAW,KAAaxC,aAAqB,EAAEV,GAAW,EAAE;MAC/C,IAAI,CAACK,WAAW,CAACC,MAAM,CAAC;QACtBC,IAAI,EAAEd,eAAI,CAAC0D,kBAAkB;QAC7BnD,GAAG,EAAHA,GAAG;QACHU,aAAa,EAAbA;MACF,CAAC,CAAC;MAEF,OAAO0C,QAAA,CAAA1F,OAAA,CAAQ2F,OAAO,EAAE;IAC1B;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAAf,GAAA;IAAAC,KAAA,EAOA,SAAAV,WAAmB9C,OAAY,EAAE;MAAA,IAAAuE,MAAA;MAC/B,OAAOF,QAAA,CAAA1F,OAAA,CAAQ2F,OAAO,EAAE,CAAC7B,IAAI,CAAC,YAAM;QAAA,IAAA+B,eAAA,EAAAC,eAAA;QAClC;QACA,IAAMlE,OAAO,GAAGgE,MAAI,CAACG,KAAK,CAACC,QAAQ,CAACC,iBAAiB,CAACC,QAAQ,CAC5D,eAAe,EACf7E,OAAO,CAAC2B,aAAa,CACtB;QACD,IAAMnB,WAAW,GAAG;UAClBC,WAAW,EAAEC,eAAI,CAACC,UAAU,CAACmE,EAAE;UAC/B/D,OAAO,EAAEL,eAAI,CAACM,YAAY;UAC1BC,GAAG,EAAEjB,OAAO,CAACiB;QACf,CAAC;QAED2C,oBAAW,CAACC,MAAM,CAACC,GAAG,uDAAAC,MAAA,CAAuD/D,OAAO,CAACiB,GAAG,EAAG;QAE3F,OAAOsD,MAAI,CAACvC,WAAW,CACpB+C,QAAQ,CAAC;UACRvE,WAAW,EAAXA,WAAW;UACXwE,YAAY,EAAEzE,OAAO,CAAC0E,OAAO;UAC7BC,OAAO,EAAElF,OAAO,CAACkF,OAAO;UACxBvD,aAAa,EAAE3B,OAAO,CAAC2B,aAAa;UACpCO,UAAU,GAAAsC,eAAA,GAAEjE,OAAO,CAAC4B,KAAK,cAAAqC,eAAA,uBAAbA,eAAA,CAAepC,cAAc,EAAE;UAC3CC,UAAU,GAAAoC,eAAA,GAAElE,OAAO,CAAC+B,KAAK,cAAAmC,eAAA,uBAAbA,eAAA,CAAerC,cAAc,EAAE;UAC3C+C,SAAS,EAAE5E,OAAO,CAAC6E;QACrB,CAAC,CAAC,CACD3C,IAAI,CAAC,YAAM;UACV8B,MAAI,CAACjD,WAAW,CAACC,MAAM,CAAC;YACtBC,IAAI,EAAEd,eAAI,CAACe,aAAa;YACxBC,GAAG,EAAElB,WAAW;YAChBmB,aAAa,EAAE3B,OAAO,CAAC2B;UACzB,CAAC,CAAC;UACFiC,oBAAW,CAACC,MAAM,CAACC,GAAG,oDAAAC,MAAA,CAAoD/D,OAAO,CAACiB,GAAG,EAAG;UACxFV,OAAO,CAACqC,UAAU,CAAC5C,OAAO,CAACiB,GAAG,CAAC;QACjC,CAAC,CAAC;MACN,CAAC,CAAC;IACJ;;IAEA;IACA;IACA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EARE;IAAAsC,GAAA;IAAAC,KAAA,EASA,SAAAR,eAAuBhD,OAAY,EAAE;MAAA,IAAAqF,eAAA;QAAAC,eAAA;QAAAC,MAAA;MACnC;MACA,IAAMhF,OAAO,GAAG,IAAI,CAACmE,KAAK,CAACC,QAAQ,CAACC,iBAAiB,CAACC,QAAQ,CAC5D,eAAe,EACf7E,OAAO,CAAC2B,aAAa,CACtB;MACD,IAAMnB,WAAW,GAAG;QAClBC,WAAW,EAAEC,eAAI,CAACC,UAAU,CAAC6E,MAAM;QACnC3E,IAAI,EAAEb,OAAO,CAACa,IAAI;QAClBE,OAAO,EAAEL,eAAI,CAACM,YAAY;QAC1BC,GAAG,EAAEjB,OAAO,CAACiB;MACf,CAAC;MAED,IAAI,CAACK,WAAW,CAACC,MAAM,CAAC;QACtBC,IAAI,EAAEd,eAAI,CAACe,aAAa;QACxBC,GAAG,EAAElB,WAAW;QAChBmB,aAAa,EAAE3B,OAAO,CAAC2B;MACzB,CAAC,CAAC;MAEF,OAAO,IAAI,CAACK,WAAW,CACpB+C,QAAQ,CAAC;QACRvE,WAAW,EAAXA,WAAW;QACXwE,YAAY,EAAEzE,OAAO,CAAC0E,OAAO;QAC7BC,OAAO,EAAElF,OAAO,CAACkF,OAAO;QACxBvD,aAAa,EAAE3B,OAAO,CAAC2B,aAAa;QACpCO,UAAU,GAAAmD,eAAA,GAAE9E,OAAO,CAAC4B,KAAK,cAAAkD,eAAA,uBAAbA,eAAA,CAAejD,cAAc,EAAE;QAC3CC,UAAU,GAAAiD,eAAA,GAAE/E,OAAO,CAAC+B,KAAK,cAAAgD,eAAA,uBAAbA,eAAA,CAAelD,cAAc,EAAE;QAC3C+C,SAAS,EAAE5E,OAAO,CAAC6E;MACrB,CAAC,CAAC,CACD3C,IAAI,CAAC,YAAM;QACVlC,OAAO,CAACqC,UAAU,CAAC5C,OAAO,CAACiB,GAAG,CAAC;QAE/BsE,MAAI,CAACjE,WAAW,CAACC,MAAM,CAAC;UACtBC,IAAI,EAAEd,eAAI,CAACiC,qBAAqB;UAChC1B,GAAG,EAAET,WAAW,CAACS,GAAG;UACpBU,aAAa,EAAEpB,OAAO,CAACoB;QACzB,CAAC,CAAC;MACJ,CAAC,CAAC;IACN;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EARE;IAAA4B,GAAA;IAAAC,KAAA,EASA,SAAAiC,cAAsBC,OAAY,EAAEhD,KAAa,EAAEiD,SAAiB,EAAE;MACpE,IAAMjE,GAAG,GAAG;QACVjB,WAAW,EAAEC,eAAI,CAACC,UAAU,CAACiF,KAAK;QAClC7E,OAAO,EAAEL,eAAI,CAACM,YAAY;QAC1B2E,SAAS,EAATA,SAAS;QACT1E,GAAG,EAAEyE,OAAO,CAAC9E,KAAK,CAACK;MACrB,CAAC;MAED,OAAO,IAAI,CAACe,WAAW,CAAC+C,QAAQ,CAACrD,GAAG,EAAEgB,KAAK,CAAC;IAC9C;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAAa,GAAA;IAAAC,KAAA,EAOA,SAAAqC,qBAAqB7F,OAAY,EAAE;MAAA,IAAA8F,eAAA;QAAAC,eAAA;QAAAC,MAAA;MACjC,IAAOzF,OAAO,GAAeP,OAAO,CAA7BO,OAAO;QAAE0F,SAAS,GAAIjG,OAAO,CAApBiG,SAAS;MACzB,IAAMzF,WAAW,GAAG;QAClBC,WAAW,EAAEC,eAAI,CAACC,UAAU,CAACC,KAAK;QAClCC,IAAI,EAAE,CAACb,OAAO,CAACc,GAAG,CAAC;QACnB;QACAC,OAAO,EAAEL,eAAI,CAACM,YAAY;QAC1BC,GAAG,EACD,OAAOjB,OAAO,CAACkB,OAAO,KAAK,QAAQ,IAAI,IAAAC,MAAA,CAAAxC,OAAA,EAAa,IAAAyC,YAAA,CAAAzC,OAAA,EAAWqB,OAAO,CAACkB,OAAO,CAAC,CAAC,GAC5E,CAAC,GACDlB,OAAO,CAACkB,OAAO,GAAG,CAAC;QACzBG,UAAU,EAAE,UAAU,CAAE;MAC1B,CAAC;;MAED,IAAI,CAACC,WAAW,CAACC,MAAM,CAAC;QACtBC,IAAI,EAAEd,eAAI,CAACe,aAAa;QACxBC,GAAG,EAAElB,WAAW;QAChBmB,aAAa,EAAEpB,OAAO,CAACoB;MACzB,CAAC,CAAC;;MAEF;MACA;MACA;MACA,IAAMuE,gBAAgB,GAAGD,SAAS,IAAI,CAAC1F,OAAO,CAAC4F,MAAM,CAACC,YAAY,CAACC,mBAAmB;MAEtF,OAAO,IAAI,CAACrE,WAAW,CACpB+C,QAAQ,CAAC;QACRvE,WAAW,EAAXA,WAAW;QACXmB,aAAa,EAAEpB,OAAO,CAACoB,aAAa;QACpCqD,YAAY,EAAEzE,OAAO,CAAC0E,OAAO;QAC7BC,OAAO,EAAEgB,gBAAgB,GAAG,EAAE,GAAG3F,OAAO,CAAC2E,OAAO;QAChDhD,UAAU,GAAA4D,eAAA,GAAEvF,OAAO,CAAC4B,KAAK,cAAA2D,eAAA,uBAAbA,eAAA,CAAe1D,cAAc,EAAE;QAC3CC,UAAU,GAAA0D,eAAA,GAAExF,OAAO,CAAC+B,KAAK,cAAAyD,eAAA,uBAAbA,eAAA,CAAe3D,cAAc,EAAE;QAC3C+C,SAAS,EAAE5E,OAAO,CAAC6E;MACrB,CAAC,CAAC,CACD3C,IAAI,CAAC,UAAA6D,IAAA,EAA+B;QAAA,IAA7B5D,KAAK,GAAA4D,IAAA,CAAL5D,KAAK;UAAE6D,gBAAgB,GAAAD,IAAA,CAAhBC,gBAAgB;QAC7BP,MAAI,CAAC1E,WAAW,CAACC,MAAM,CAAC;UACtBC,IAAI,EAAEd,eAAI,CAACiC,qBAAqB;UAChC1B,GAAG,EAAET,WAAW,CAACS,GAAG;UACpBU,aAAa,EAAEpB,OAAO,CAACoB;QACzB,CAAC,CAAC;QACFpB,OAAO,CAACqC,UAAU,CAACpC,WAAW,CAACS,GAAG,CAAC;QAEnC,IAAIsF,gBAAgB,EAAE;UACpBhG,OAAO,CAACiG,sBAAsB,CAACD,gBAAgB,CAAC;QAClD;;QAEA;QACA;QACA,OAAO7D,KAAK;QACZ;QACA;MACF,CAAC,CAAC;IACN;EAAC;IAAAa,GAAA;IAAAC,KAAA;IA6DD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;IACE,SAAAP,aAAqBtB,aAAqB,EAAE8E,UAAkB,EAAE;MAC9DC,mBAAc,CAACC,uBAAuB,CAAChF,aAAa,EAAE8E,UAAU,CAAC;MACjE;MACA,IAAMlG,OAAO,GAAG,IAAI,CAACmE,KAAK,CAACC,QAAQ,CAACC,iBAAiB,CAACC,QAAQ,CAAC,eAAe,EAAElD,aAAa,CAAC;MAE9FpB,OAAO,CAACqG,oBAAoB,EAAE;MAC9B,IAAI,CAACF,mBAAc,CAACG,MAAM,CAAClF,aAAa,CAAC,EAAE;QACzCpB,OAAO,CAACuG,4BAA4B,EAAE;MACxC;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EATE;IAAAvD,GAAA;IAAAC,KAAA,EAUA,SAAAuD,gBAAgBxG,OAAgB,EAAEyG,cAAuB,EAAE;MACzD,OAAO,IAAI,CAAC5D,aAAa,CAAC2D,eAAe,CAACxG,OAAO,EAAEyG,cAAc,CAAC;IACpE;EAAC;EAAA,OAAArH,IAAA;AAAA,EAzX+BsH,+BAAoB;AAAAC,OAAA,CAAAvI,OAAA,GAAAgB,IAAA"}
1
+ {"version":3,"names":["_webexCore","require","_constants","_loggerProxy","_interopRequireDefault","_util","_handler","_request","_collection","_turnDiscovery","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","Roap","_StatelessWebexPlugin","_inherits2","_super","attrs","options","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_meeting$audio","_meeting$video","meeting","roapMessage","messageType","ROAP","ROAP_TYPES","OFFER","sdps","sdp","version","ROAP_VERSION","seq","roapSeq","_isNan","_parseFloat2","tieBreaker","roapHandler","submit","type","SEND_ROAP_MSG","msg","correlationId","roapBody","localMedias","localSdp","_stringify","roapRequest","attachRechabilityData","audioMuted","audio","isLocallyMuted","videoMuted","video","MeetingUtil","joinMeetingOptions","then","locus","SEND_ROAP_MSG_SUCCESS","setRoapSeq","RoapHandler","sendRoapOK","bind","sendRoapAnswer","roapFinished","RoapRequest","lastRoapOffer","turnDiscovery","TurnDiscovery","_createClass2","key","value","roapEvent","data","message","LoggerProxy","logger","log","concat","TURN_DISCOVERY_RESPONSE","handleTurnDiscoveryResponse","RECEIVE_ROAP_MSG","stop","RECEIVE_CALL_LEAVE","_promise","resolve","_this2","_meeting$audio2","_meeting$video2","webex","meetings","meetingCollection","getByKey","OK","sendRoap","locusSelfUrl","selfUrl","mediaId","meetingId","id","_meeting$audio3","_meeting$video3","_this3","ANSWER","sendRoapError","session","errorType","ERROR","sendRoapMediaRequest","_meeting$audio4","_meeting$video4","_this4","reconnect","sendEmptyMediaId","config","experimental","enableTurnDiscovery","_ref","mediaConnections","updateMediaConnections","sequenceId","RoapCollection","onSessionSequenceFinish","mediaNegotiatedEvent","isBusy","processNextQueuedMediaUpdate","doTurnDiscovery","isReconnecting","StatelessWebexPlugin","exports"],"sources":["index.ts"],"sourcesContent":["// @ts-ignore\r\nimport {StatelessWebexPlugin} from '@webex/webex-core';\r\n\r\nimport {ROAP} from '../constants';\r\nimport LoggerProxy from '../common/logs/logger-proxy';\r\nimport MeetingUtil from '../meeting/util';\r\n\r\nimport RoapHandler from './handler';\r\nimport RoapRequest from './request';\r\nimport RoapCollection from './collection';\r\nimport TurnDiscovery from './turnDiscovery';\r\nimport Meeting from '../meeting';\r\n\r\n/**\r\n * Roap options\r\n * @typedef {Object} RoapOptions\r\n * @property {String} sdp\r\n * @property {Meeting} meeting\r\n * @property {Number} roapSeq\r\n * @property {Boolean} reconnect\r\n */\r\n\r\n/**\r\n * @typedef {Object} SeqOptions\r\n * @property {String} correlationId\r\n * @property {String} mediaId\r\n * @property {Number} seq\r\n */\r\n\r\n/**\r\n * @class Roap\r\n * @export\r\n * @private\r\n */\r\nexport default class Roap extends StatelessWebexPlugin {\r\n attrs: any;\r\n lastRoapOffer: any;\r\n options: any;\r\n roapHandler: any;\r\n roapRequest: any;\r\n turnDiscovery: any;\r\n\r\n /**\r\n *\r\n * @param {Object} attrs\r\n * @param {Object} options\r\n */\r\n constructor(attrs: any, options: any) {\r\n super({}, options);\r\n /**\r\n * @instance\r\n * @type {Object}\r\n * @private\r\n * @memberof Roap\r\n */\r\n this.attrs = attrs;\r\n /**\r\n * @instance\r\n * @type {Object}\r\n * @private\r\n * @memberof Roap\r\n */\r\n this.options = options;\r\n /**\r\n * The Roap Process State Handler\r\n * @instance\r\n * @type {RoapHandler}\r\n * @private\r\n * @memberof Roap\r\n */\r\n this.roapHandler = new RoapHandler(\r\n this.attrs,\r\n this.options,\r\n this.sendRoapOK.bind(this),\r\n this.sendRoapAnswer.bind(this),\r\n this.roapFinished.bind(this)\r\n );\r\n /**\r\n * The Roap Request Server Proxy Object\r\n * @instance\r\n * @type {RoapRequest}\r\n * @private\r\n * @memberof Roap\r\n */\r\n // @ts-ignore\r\n this.roapRequest = new RoapRequest({}, options);\r\n /**\r\n * The last roap offer sent to server and acked\r\n * @instance\r\n * @type {Object}\r\n * @private\r\n * @memberof Roap\r\n */\r\n this.lastRoapOffer = {};\r\n\r\n this.turnDiscovery = new TurnDiscovery(this.roapRequest);\r\n }\r\n\r\n /**\r\n * Starts listening to mercury events for Roap messages\r\n * @param {object} data event object\r\n * @returns {Promise}\r\n * @private\r\n * @memberof Roap\r\n */\r\n private roapEvent(data: any) {\r\n const msg = data.message;\r\n const {correlationId} = data;\r\n\r\n LoggerProxy.logger.log(\r\n `Roap:index#roapEvent --> Received Roap Message [${JSON.stringify(msg, null, 2)}]`\r\n );\r\n\r\n if (msg.messageType === ROAP.ROAP_TYPES.TURN_DISCOVERY_RESPONSE) {\r\n // turn discovery is not part of normal roap protocol and so we are not handling it\r\n // through the usual roap state machine\r\n this.turnDiscovery.handleTurnDiscoveryResponse(msg);\r\n } else {\r\n this.roapHandler.submit({\r\n type: ROAP.RECEIVE_ROAP_MSG,\r\n msg,\r\n correlationId,\r\n });\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {String} correlationId correlation id of a meeting\r\n * @param {Number} seq ROAP sequence number\r\n * @returns {Promise}\r\n * @private\r\n * @memberof Roap\r\n */\r\n private stop(correlationId: string, seq: number) {\r\n this.roapHandler.submit({\r\n type: ROAP.RECEIVE_CALL_LEAVE,\r\n seq,\r\n correlationId,\r\n });\r\n\r\n return Promise.resolve();\r\n }\r\n\r\n /**\r\n *\r\n * @param {SeqOptions} options\r\n * @returns {null}\r\n * @private\r\n * @memberof Roap\r\n */\r\n private sendRoapOK(options: any) {\r\n return Promise.resolve().then(() => {\r\n // @ts-ignore\r\n const meeting = this.webex.meetings.meetingCollection.getByKey(\r\n 'correlationId',\r\n options.correlationId\r\n );\r\n const roapMessage = {\r\n messageType: ROAP.ROAP_TYPES.OK,\r\n version: ROAP.ROAP_VERSION,\r\n seq: options.seq,\r\n };\r\n\r\n LoggerProxy.logger.log(`Roap:index#sendRoapOK --> ROAP OK sending with seq ${options.seq}`);\r\n\r\n return this.roapRequest\r\n .sendRoap({\r\n roapMessage,\r\n locusSelfUrl: meeting.selfUrl,\r\n mediaId: options.mediaId,\r\n correlationId: options.correlationId,\r\n audioMuted: meeting.audio?.isLocallyMuted(),\r\n videoMuted: meeting.video?.isLocallyMuted(),\r\n meetingId: meeting.id,\r\n })\r\n .then(() => {\r\n this.roapHandler.submit({\r\n type: ROAP.SEND_ROAP_MSG,\r\n msg: roapMessage,\r\n correlationId: options.correlationId,\r\n });\r\n LoggerProxy.logger.log(`Roap:index#sendRoapOK --> ROAP OK sent with seq ${options.seq}`);\r\n meeting.setRoapSeq(options.seq);\r\n });\r\n });\r\n }\r\n\r\n // eslint-disable-next-line no-warning-comments\r\n // TODO: try to merge sendRoapOk and roapAnswer\r\n /**\r\n * Sends a ROAP answer...\r\n * @param {SeqOptions} options\r\n * @param {Boolean} options.audioMuted\r\n * @param {Boolean} options.videoMuted\r\n * @returns {Promise}\r\n * @private\r\n * @memberof Roap\r\n */\r\n private sendRoapAnswer(options: any) {\r\n // @ts-ignore\r\n const meeting = this.webex.meetings.meetingCollection.getByKey(\r\n 'correlationId',\r\n options.correlationId\r\n );\r\n const roapMessage = {\r\n messageType: ROAP.ROAP_TYPES.ANSWER,\r\n sdps: options.sdps,\r\n version: ROAP.ROAP_VERSION,\r\n seq: options.seq,\r\n };\r\n\r\n this.roapHandler.submit({\r\n type: ROAP.SEND_ROAP_MSG,\r\n msg: roapMessage,\r\n correlationId: options.correlationId,\r\n });\r\n\r\n return this.roapRequest\r\n .sendRoap({\r\n roapMessage,\r\n locusSelfUrl: meeting.selfUrl,\r\n mediaId: options.mediaId,\r\n correlationId: options.correlationId,\r\n audioMuted: meeting.audio?.isLocallyMuted(),\r\n videoMuted: meeting.video?.isLocallyMuted(),\r\n meetingId: meeting.id,\r\n })\r\n .then(() => {\r\n meeting.setRoapSeq(options.seq);\r\n\r\n this.roapHandler.submit({\r\n type: ROAP.SEND_ROAP_MSG_SUCCESS,\r\n seq: roapMessage.seq,\r\n correlationId: meeting.correlationId,\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Sends a ROAP error...\r\n * @param {Object} session\r\n * @param {Object} locus\r\n * @param {String} errorType\r\n * @returns {Promise}\r\n * @private\r\n * @memberof Roap\r\n */\r\n private sendRoapError(session: any, locus: object, errorType: string) {\r\n const msg = {\r\n messageType: ROAP.ROAP_TYPES.ERROR,\r\n version: ROAP.ROAP_VERSION,\r\n errorType,\r\n seq: session.OFFER.seq,\r\n };\r\n\r\n return this.roapRequest.sendRoap(msg, locus);\r\n }\r\n\r\n /**\r\n * sends a roap media request\r\n * @param {RoapOptions} options\r\n * @returns {Promise}\r\n * @private\r\n * @memberof Roap\r\n */\r\n sendRoapMediaRequest(options: any) {\r\n const {meeting, reconnect} = options;\r\n const roapMessage = {\r\n messageType: ROAP.ROAP_TYPES.OFFER,\r\n sdps: [options.sdp],\r\n // sdps: [options.sdp],\r\n version: ROAP.ROAP_VERSION,\r\n seq:\r\n typeof options.roapSeq !== 'number' && Number.isNaN(parseFloat(options.roapSeq))\r\n ? 0\r\n : options.roapSeq + 1,\r\n tieBreaker: 4294967294, // Math.floor(Math.random() * (2 ** 32) - 1) // TODO: Handle the roap conflict scenario\r\n };\r\n\r\n this.roapHandler.submit({\r\n type: ROAP.SEND_ROAP_MSG,\r\n msg: roapMessage,\r\n correlationId: meeting.correlationId,\r\n });\r\n\r\n // When reconnecting, it's important that the first roap message being sent out has empty media id.\r\n // Normally this is the roap offer, but when TURN discovery is enabled,\r\n // then this is the TURN discovery request message\r\n const sendEmptyMediaId = reconnect && !meeting.config.experimental.enableTurnDiscovery;\r\n\r\n return this.roapRequest\r\n .sendRoap({\r\n roapMessage,\r\n correlationId: meeting.correlationId,\r\n locusSelfUrl: meeting.selfUrl,\r\n mediaId: sendEmptyMediaId ? '' : meeting.mediaId,\r\n audioMuted: meeting.audio?.isLocallyMuted(),\r\n videoMuted: meeting.video?.isLocallyMuted(),\r\n meetingId: meeting.id,\r\n })\r\n .then(({locus, mediaConnections}) => {\r\n this.roapHandler.submit({\r\n type: ROAP.SEND_ROAP_MSG_SUCCESS,\r\n seq: roapMessage.seq,\r\n correlationId: meeting.correlationId,\r\n });\r\n meeting.setRoapSeq(roapMessage.seq);\r\n\r\n if (mediaConnections) {\r\n meeting.updateMediaConnections(mediaConnections);\r\n }\r\n\r\n // eslint-disable-next-line no-warning-comments\r\n // TODO: we need to attach peerconenction to locus not sure if we need to pass everything here\r\n return locus;\r\n // eslint-disable-next-line no-warning-comments\r\n // TODO: check where to update the sequence number\r\n });\r\n }\r\n\r\n /**\r\n * sends a roap media request\r\n * @param {RoapOptions} options\r\n * @returns {Promise}\r\n * @private\r\n * @memberof Roap\r\n */\r\n sendRoapCallRequest = (options: any) => {\r\n const {meeting} = options;\r\n const roapMessage = {\r\n messageType: ROAP.ROAP_TYPES.OFFER,\r\n sdps: [options.sdp],\r\n version: ROAP.ROAP_VERSION,\r\n seq:\r\n typeof options.roapSeq !== 'number' && Number.isNaN(parseFloat(options.roapSeq))\r\n ? 0\r\n : options.roapSeq + 1,\r\n tieBreaker: 4294967294, // Math.floor(Math.random() * (2 ** 32) - 1) // TODO: Handle the roap conflict scenario\r\n };\r\n\r\n this.roapHandler.submit({\r\n type: ROAP.SEND_ROAP_MSG,\r\n msg: roapMessage,\r\n correlationId: meeting.correlationId,\r\n });\r\n\r\n const roapBody = {\r\n localMedias: [\r\n {\r\n localSdp: JSON.stringify(\r\n this.roapRequest.attachRechabilityData({\r\n roapMessage,\r\n // eslint-disable-next-line no-warning-comments\r\n // TODO: check whats the need for video and audiomute\r\n audioMuted: meeting.audio?.isLocallyMuted(),\r\n videoMuted: meeting.video?.isLocallyMuted(),\r\n })\r\n ),\r\n // mediaId: meeting.mediaId\r\n },\r\n ],\r\n };\r\n\r\n return MeetingUtil.joinMeetingOptions(meeting, {roapMessage: roapBody}).then((locus) => {\r\n this.roapHandler.submit({\r\n type: ROAP.SEND_ROAP_MSG_SUCCESS,\r\n seq: roapMessage.seq,\r\n correlationId: meeting.correlationId,\r\n });\r\n meeting.setRoapSeq(roapMessage.seq);\r\n\r\n // eslint-disable-next-line no-warning-comments\r\n // TODO: we need to attach peerconenction to locus not sure if we need to pass everything here\r\n return locus;\r\n // eslint-disable-next-line no-warning-comments\r\n // TODO: check where to update the sequence number\r\n });\r\n };\r\n\r\n /**\r\n * Called when the roap sequence is finished (completed successfully or failed)\r\n * @param {String} correlationId id of the meeting affected\r\n * @param {String} sequenceId the id of the finished sequence\r\n * @returns {undefined}\r\n * @private\r\n * @memberof Roap\r\n */\r\n private roapFinished(correlationId: string, sequenceId: string) {\r\n RoapCollection.onSessionSequenceFinish(correlationId, sequenceId);\r\n // @ts-ignore\r\n const meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', correlationId);\r\n\r\n meeting.mediaNegotiatedEvent();\r\n if (!RoapCollection.isBusy(correlationId)) {\r\n meeting.processNextQueuedMediaUpdate();\r\n }\r\n }\r\n\r\n /**\r\n * Performs a TURN server discovery procedure, which involves exchanging\r\n * some roap messages with the server. This exchange has to be done before\r\n * any other roap messages are sent\r\n *\r\n * @param {Meeting} meeting\r\n * @param {Boolean} isReconnecting should be set to true if this is a new\r\n * media connection just after a reconnection\r\n * @returns {Promise}\r\n */\r\n doTurnDiscovery(meeting: Meeting, isReconnecting: boolean) {\r\n return this.turnDiscovery.doTurnDiscovery(meeting, isReconnecting);\r\n }\r\n}\r\n"],"mappings":"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"}
@@ -1,35 +1,35 @@
1
- import { StatelessWebexPlugin } from '@webex/webex-core';
2
- /**
3
- * @class RoapRequest
4
- */
5
- export default class RoapRequest extends StatelessWebexPlugin {
6
- /**
7
- * Joins a meeting via ROAP
8
- * @param {Object} options
9
- * @returns {Promise} returns a promise that resolves/rejects whatever the request does
10
- */
11
- attachRechabilityData(localSdp: any): any;
12
- joinMeetingWithRoap(options: any): Promise<any>;
13
- /**
14
- * Sends a ROAP message
15
- * @param {Object} options
16
- * @param {Object} options.roapMessage
17
- * @param {String} options.locusSelfUrl
18
- * @param {String} options.mediaId
19
- * @param {String} options.correlationId
20
- * @param {Boolean} options.audioMuted
21
- * @param {Boolean} options.videoMuted
22
- * @param {String} options.meetingId
23
- * @returns {Promise} returns the response/failure of the request
24
- */
25
- sendRoap(options: {
26
- roapMessage: any;
27
- locusSelfUrl: string;
28
- mediaId: string;
29
- correlationId: string;
30
- audioMuted: boolean;
31
- videoMuted: boolean;
32
- meetingId: string;
33
- preferTranscoding?: boolean;
34
- }): any;
35
- }
1
+ import { StatelessWebexPlugin } from '@webex/webex-core';
2
+ /**
3
+ * @class RoapRequest
4
+ */
5
+ export default class RoapRequest extends StatelessWebexPlugin {
6
+ /**
7
+ * Joins a meeting via ROAP
8
+ * @param {Object} options
9
+ * @returns {Promise} returns a promise that resolves/rejects whatever the request does
10
+ */
11
+ attachRechabilityData(localSdp: any): any;
12
+ joinMeetingWithRoap(options: any): Promise<any>;
13
+ /**
14
+ * Sends a ROAP message
15
+ * @param {Object} options
16
+ * @param {Object} options.roapMessage
17
+ * @param {String} options.locusSelfUrl
18
+ * @param {String} options.mediaId
19
+ * @param {String} options.correlationId
20
+ * @param {Boolean} options.audioMuted
21
+ * @param {Boolean} options.videoMuted
22
+ * @param {String} options.meetingId
23
+ * @returns {Promise} returns the response/failure of the request
24
+ */
25
+ sendRoap(options: {
26
+ roapMessage: any;
27
+ locusSelfUrl: string;
28
+ mediaId: string;
29
+ correlationId: string;
30
+ audioMuted: boolean;
31
+ videoMuted: boolean;
32
+ meetingId: string;
33
+ preferTranscoding?: boolean;
34
+ }): any;
35
+ }
@@ -33,8 +33,8 @@ function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if
33
33
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
34
34
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
35
35
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
36
- /**
37
- * @class RoapRequest
36
+ /**
37
+ * @class RoapRequest
38
38
  */
39
39
  var RoapRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
40
40
  (0, _inherits2.default)(RoapRequest, _StatelessWebexPlugin);
@@ -46,10 +46,10 @@ var RoapRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
46
46
  (0, _createClass2.default)(RoapRequest, [{
47
47
  key: "attachRechabilityData",
48
48
  value:
49
- /**
50
- * Joins a meeting via ROAP
51
- * @param {Object} options
52
- * @returns {Promise} returns a promise that resolves/rejects whatever the request does
49
+ /**
50
+ * Joins a meeting via ROAP
51
+ * @param {Object} options
52
+ * @returns {Promise} returns a promise that resolves/rejects whatever the request does
53
53
  */
54
54
 
55
55
  function attachRechabilityData(localSdp) {
@@ -154,17 +154,17 @@ var RoapRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
154
154
  })));
155
155
  }
156
156
 
157
- /**
158
- * Sends a ROAP message
159
- * @param {Object} options
160
- * @param {Object} options.roapMessage
161
- * @param {String} options.locusSelfUrl
162
- * @param {String} options.mediaId
163
- * @param {String} options.correlationId
164
- * @param {Boolean} options.audioMuted
165
- * @param {Boolean} options.videoMuted
166
- * @param {String} options.meetingId
167
- * @returns {Promise} returns the response/failure of the request
157
+ /**
158
+ * Sends a ROAP message
159
+ * @param {Object} options
160
+ * @param {Object} options.roapMessage
161
+ * @param {String} options.locusSelfUrl
162
+ * @param {String} options.mediaId
163
+ * @param {String} options.correlationId
164
+ * @param {Boolean} options.audioMuted
165
+ * @param {Boolean} options.videoMuted
166
+ * @param {String} options.meetingId
167
+ * @returns {Promise} returns the response/failure of the request
168
168
  */
169
169
  }, {
170
170
  key: "sendRoap",