@webex/plugin-meetings 2.60.1-next.9 → 2.60.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/README.md +8 -58
  2. package/dist/common/browser-detection.js +3 -2
  3. package/dist/common/browser-detection.js.map +1 -1
  4. package/dist/common/collection.js +4 -3
  5. package/dist/common/collection.js.map +1 -1
  6. package/dist/common/config.js +2 -1
  7. package/dist/common/config.js.map +1 -1
  8. package/dist/common/errors/captcha-error.js +2 -1
  9. package/dist/common/errors/captcha-error.js.map +1 -1
  10. package/dist/common/errors/intent-to-join.js +2 -1
  11. package/dist/common/errors/intent-to-join.js.map +1 -1
  12. package/dist/common/errors/join-meeting.js +2 -1
  13. package/dist/common/errors/join-meeting.js.map +1 -1
  14. package/dist/common/errors/media.js +2 -1
  15. package/dist/common/errors/media.js.map +1 -1
  16. package/dist/common/errors/parameter.js +4 -3
  17. package/dist/common/errors/parameter.js.map +1 -1
  18. package/dist/common/errors/password-error.js +2 -1
  19. package/dist/common/errors/password-error.js.map +1 -1
  20. package/dist/common/errors/permission.js +2 -1
  21. package/dist/common/errors/permission.js.map +1 -1
  22. package/dist/common/errors/{reclaim-host-role-errors.js → reclaim-host-role-error.js} +11 -7
  23. package/dist/common/errors/reclaim-host-role-error.js.map +1 -0
  24. package/dist/common/errors/reconnection-in-progress.js +2 -1
  25. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  26. package/dist/common/errors/reconnection.js +2 -1
  27. package/dist/common/errors/reconnection.js.map +1 -1
  28. package/dist/common/errors/stats.js +2 -1
  29. package/dist/common/errors/stats.js.map +1 -1
  30. package/dist/common/errors/webex-errors.d.ts +8 -20
  31. package/dist/common/errors/webex-errors.js +28 -48
  32. package/dist/common/errors/webex-errors.js.map +1 -1
  33. package/dist/common/errors/webex-meetings-error.js +2 -1
  34. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  35. package/dist/common/events/events-scope.js +2 -1
  36. package/dist/common/events/events-scope.js.map +1 -1
  37. package/dist/common/events/events.js +2 -1
  38. package/dist/common/events/events.js.map +1 -1
  39. package/dist/common/events/trigger-proxy.js +2 -1
  40. package/dist/common/events/trigger-proxy.js.map +1 -1
  41. package/dist/common/events/util.js +2 -1
  42. package/dist/common/events/util.js.map +1 -1
  43. package/dist/common/logs/logger-config.js +2 -1
  44. package/dist/common/logs/logger-config.js.map +1 -1
  45. package/dist/common/logs/logger-proxy.js +3 -2
  46. package/dist/common/logs/logger-proxy.js.map +1 -1
  47. package/dist/common/logs/request.d.ts +1 -3
  48. package/dist/common/logs/request.js +5 -8
  49. package/dist/common/logs/request.js.map +1 -1
  50. package/dist/common/queue.d.ts +7 -9
  51. package/dist/common/queue.js +9 -22
  52. package/dist/common/queue.js.map +1 -1
  53. package/dist/config.d.ts +7 -6
  54. package/dist/config.js +10 -8
  55. package/dist/config.js.map +1 -1
  56. package/dist/constants.d.ts +100 -234
  57. package/dist/constants.js +444 -433
  58. package/dist/constants.js.map +1 -1
  59. package/dist/controls-options-manager/constants.js +6 -3
  60. package/dist/controls-options-manager/constants.js.map +1 -1
  61. package/dist/controls-options-manager/enums.d.ts +1 -11
  62. package/dist/controls-options-manager/enums.js +6 -15
  63. package/dist/controls-options-manager/enums.js.map +1 -1
  64. package/dist/controls-options-manager/index.d.ts +1 -17
  65. package/dist/controls-options-manager/index.js +38 -127
  66. package/dist/controls-options-manager/index.js.map +1 -1
  67. package/dist/controls-options-manager/util.d.ts +7 -1
  68. package/dist/controls-options-manager/util.js +19 -309
  69. package/dist/controls-options-manager/util.js.map +1 -1
  70. package/dist/index.d.ts +3 -6
  71. package/dist/index.js +5 -121
  72. package/dist/index.js.map +1 -1
  73. package/dist/locus-info/controlsUtils.js +11 -100
  74. package/dist/locus-info/controlsUtils.js.map +1 -1
  75. package/dist/locus-info/embeddedAppsUtils.js +4 -3
  76. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  77. package/dist/locus-info/fullState.js +2 -1
  78. package/dist/locus-info/fullState.js.map +1 -1
  79. package/dist/locus-info/hostUtils.js +2 -1
  80. package/dist/locus-info/hostUtils.js.map +1 -1
  81. package/dist/locus-info/index.d.ts +4 -57
  82. package/dist/locus-info/index.js +84 -425
  83. package/dist/locus-info/index.js.map +1 -1
  84. package/dist/locus-info/infoUtils.js +5 -13
  85. package/dist/locus-info/infoUtils.js.map +1 -1
  86. package/dist/locus-info/mediaSharesUtils.js +3 -58
  87. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  88. package/dist/locus-info/parser.d.ts +6 -66
  89. package/dist/locus-info/parser.js +80 -253
  90. package/dist/locus-info/parser.js.map +1 -1
  91. package/dist/locus-info/selfUtils.js +13 -97
  92. package/dist/locus-info/selfUtils.js.map +1 -1
  93. package/dist/media/index.d.ts +0 -2
  94. package/dist/media/index.js +319 -107
  95. package/dist/media/index.js.map +1 -1
  96. package/dist/media/properties.d.ts +53 -38
  97. package/dist/media/properties.js +153 -96
  98. package/dist/media/properties.js.map +1 -1
  99. package/dist/media/util.js +22 -1
  100. package/dist/media/util.js.map +1 -1
  101. package/dist/mediaQualityMetrics/config.d.ts +230 -234
  102. package/dist/mediaQualityMetrics/config.js +498 -302
  103. package/dist/mediaQualityMetrics/config.js.map +1 -1
  104. package/dist/meeting/effectsState.d.ts +42 -0
  105. package/dist/meeting/effectsState.js +260 -0
  106. package/dist/meeting/effectsState.js.map +1 -0
  107. package/dist/meeting/in-meeting-actions.d.ts +0 -88
  108. package/dist/meeting/in-meeting-actions.js +3 -94
  109. package/dist/meeting/in-meeting-actions.js.map +1 -1
  110. package/dist/meeting/index.d.ts +520 -705
  111. package/dist/meeting/index.js +3083 -5041
  112. package/dist/meeting/index.js.map +1 -1
  113. package/dist/meeting/muteState.d.ts +25 -93
  114. package/dist/meeting/muteState.js +133 -224
  115. package/dist/meeting/muteState.js.map +1 -1
  116. package/dist/meeting/request.d.ts +47 -82
  117. package/dist/meeting/request.js +199 -304
  118. package/dist/meeting/request.js.map +1 -1
  119. package/dist/meeting/state.js +2 -1
  120. package/dist/meeting/state.js.map +1 -1
  121. package/dist/meeting/util.d.ts +1 -118
  122. package/dist/meeting/util.js +435 -676
  123. package/dist/meeting/util.js.map +1 -1
  124. package/dist/meeting-info/collection.js +4 -3
  125. package/dist/meeting-info/collection.js.map +1 -1
  126. package/dist/meeting-info/index.d.ts +1 -13
  127. package/dist/meeting-info/index.js +7 -74
  128. package/dist/meeting-info/index.js.map +1 -1
  129. package/dist/meeting-info/meeting-info-v2.d.ts +1 -31
  130. package/dist/meeting-info/meeting-info-v2.js +63 -200
  131. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  132. package/dist/meeting-info/request.js +2 -1
  133. package/dist/meeting-info/request.js.map +1 -1
  134. package/dist/meeting-info/util.js +3 -2
  135. package/dist/meeting-info/util.js.map +1 -1
  136. package/dist/meeting-info/utilv2.js +41 -39
  137. package/dist/meeting-info/utilv2.js.map +1 -1
  138. package/dist/meetings/collection.d.ts +0 -17
  139. package/dist/meetings/collection.js +4 -42
  140. package/dist/meetings/collection.js.map +1 -1
  141. package/dist/meetings/index.d.ts +20 -114
  142. package/dist/meetings/index.js +133 -540
  143. package/dist/meetings/index.js.map +1 -1
  144. package/dist/meetings/request.js +3 -4
  145. package/dist/meetings/request.js.map +1 -1
  146. package/dist/meetings/util.js +6 -107
  147. package/dist/meetings/util.js.map +1 -1
  148. package/dist/member/index.d.ts +1 -13
  149. package/dist/member/index.js +2 -45
  150. package/dist/member/index.js.map +1 -1
  151. package/dist/member/member.types.js +4 -3
  152. package/dist/member/member.types.js.map +1 -1
  153. package/dist/member/util.js +29 -120
  154. package/dist/member/util.js.map +1 -1
  155. package/dist/members/collection.d.ts +0 -5
  156. package/dist/members/collection.js +2 -11
  157. package/dist/members/collection.js.map +1 -1
  158. package/dist/members/index.d.ts +11 -56
  159. package/dist/members/index.js +47 -174
  160. package/dist/members/index.js.map +1 -1
  161. package/dist/members/request.d.ts +11 -67
  162. package/dist/members/request.js +54 -102
  163. package/dist/members/request.js.map +1 -1
  164. package/dist/members/types.js +4 -3
  165. package/dist/members/types.js.map +1 -1
  166. package/dist/members/util.d.ts +1 -214
  167. package/dist/members/util.js +284 -327
  168. package/dist/members/util.js.map +1 -1
  169. package/dist/metrics/config.d.ts +169 -0
  170. package/dist/metrics/config.js +289 -0
  171. package/dist/metrics/config.js.map +1 -0
  172. package/dist/metrics/constants.d.ts +6 -15
  173. package/dist/metrics/constants.js +9 -17
  174. package/dist/metrics/constants.js.map +1 -1
  175. package/dist/metrics/index.d.ts +111 -4
  176. package/dist/metrics/index.js +452 -4
  177. package/dist/metrics/index.js.map +1 -1
  178. package/dist/networkQualityMonitor/index.js +4 -5
  179. package/dist/networkQualityMonitor/index.js.map +1 -1
  180. package/dist/peer-connection-manager/index.d.ts +6 -0
  181. package/dist/peer-connection-manager/index.js +671 -0
  182. package/dist/peer-connection-manager/index.js.map +1 -0
  183. package/dist/peer-connection-manager/util.d.ts +6 -0
  184. package/dist/peer-connection-manager/util.js +110 -0
  185. package/dist/peer-connection-manager/util.js.map +1 -0
  186. package/dist/personal-meeting-room/index.js +3 -2
  187. package/dist/personal-meeting-room/index.js.map +1 -1
  188. package/dist/personal-meeting-room/request.js +3 -2
  189. package/dist/personal-meeting-room/request.js.map +1 -1
  190. package/dist/personal-meeting-room/util.js +2 -1
  191. package/dist/personal-meeting-room/util.js.map +1 -1
  192. package/dist/reachability/index.d.ts +95 -61
  193. package/dist/reachability/index.js +392 -304
  194. package/dist/reachability/index.js.map +1 -1
  195. package/dist/reachability/request.d.ts +3 -7
  196. package/dist/reachability/request.js +10 -18
  197. package/dist/reachability/request.js.map +1 -1
  198. package/dist/reactions/reactions.d.ts +2 -2
  199. package/dist/reactions/reactions.js +6 -4
  200. package/dist/reactions/reactions.js.map +1 -1
  201. package/dist/reactions/reactions.type.d.ts +3 -23
  202. package/dist/reactions/reactions.type.js +23 -21
  203. package/dist/reactions/reactions.type.js.map +1 -1
  204. package/dist/reconnection-manager/index.d.ts +8 -32
  205. package/dist/reconnection-manager/index.js +232 -285
  206. package/dist/reconnection-manager/index.js.map +1 -1
  207. package/dist/recording-controller/enums.js +5 -4
  208. package/dist/recording-controller/enums.js.map +1 -1
  209. package/dist/recording-controller/index.d.ts +1 -15
  210. package/dist/recording-controller/index.js +46 -57
  211. package/dist/recording-controller/index.js.map +1 -1
  212. package/dist/recording-controller/util.d.ts +4 -5
  213. package/dist/recording-controller/util.js +10 -10
  214. package/dist/recording-controller/util.js.map +1 -1
  215. package/dist/roap/collection.d.ts +10 -0
  216. package/dist/roap/collection.js +63 -0
  217. package/dist/roap/collection.js.map +1 -0
  218. package/dist/roap/handler.d.ts +47 -0
  219. package/dist/roap/handler.js +279 -0
  220. package/dist/roap/handler.js.map +1 -0
  221. package/dist/roap/index.d.ts +47 -9
  222. package/dist/roap/index.js +238 -100
  223. package/dist/roap/index.js.map +1 -1
  224. package/dist/roap/request.d.ts +12 -18
  225. package/dist/roap/request.js +180 -126
  226. package/dist/roap/request.js.map +1 -1
  227. package/dist/roap/state.d.ts +9 -0
  228. package/dist/roap/state.js +127 -0
  229. package/dist/roap/state.js.map +1 -0
  230. package/dist/roap/turnDiscovery.d.ts +16 -27
  231. package/dist/roap/turnDiscovery.js +105 -115
  232. package/dist/roap/turnDiscovery.js.map +1 -1
  233. package/dist/roap/util.d.ts +2 -0
  234. package/dist/roap/util.js +76 -0
  235. package/dist/roap/util.js.map +1 -0
  236. package/dist/statsAnalyzer/global.d.ts +83 -1
  237. package/dist/statsAnalyzer/global.js +85 -2
  238. package/dist/statsAnalyzer/global.js.map +1 -1
  239. package/dist/statsAnalyzer/index.d.ts +30 -50
  240. package/dist/statsAnalyzer/index.js +511 -436
  241. package/dist/statsAnalyzer/index.js.map +1 -1
  242. package/dist/statsAnalyzer/mqaUtil.d.ts +6 -8
  243. package/dist/statsAnalyzer/mqaUtil.js +90 -130
  244. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  245. package/dist/transcription/index.js +2 -1
  246. package/dist/transcription/index.js.map +1 -1
  247. package/package.json +26 -39
  248. package/src/common/errors/webex-errors.ts +12 -36
  249. package/src/common/logs/logger-proxy.ts +1 -1
  250. package/src/common/logs/request.ts +1 -5
  251. package/src/common/queue.ts +8 -22
  252. package/src/config.ts +7 -6
  253. package/src/constants.ts +100 -265
  254. package/src/controls-options-manager/enums.ts +0 -12
  255. package/src/controls-options-manager/index.ts +21 -116
  256. package/src/controls-options-manager/util.ts +14 -294
  257. package/src/index.js +15 -0
  258. package/src/locus-info/controlsUtils.ts +0 -110
  259. package/src/locus-info/index.ts +61 -450
  260. package/src/locus-info/infoUtils.ts +2 -14
  261. package/src/locus-info/mediaSharesUtils.ts +0 -64
  262. package/src/locus-info/parser.ts +47 -258
  263. package/src/locus-info/selfUtils.ts +2 -85
  264. package/src/media/index.ts +370 -153
  265. package/src/media/properties.ts +136 -106
  266. package/src/media/util.ts +21 -0
  267. package/src/mediaQualityMetrics/config.ts +377 -244
  268. package/src/meeting/effectsState.ts +209 -0
  269. package/src/meeting/in-meeting-actions.ts +0 -176
  270. package/src/meeting/index.ts +2581 -4306
  271. package/src/meeting/muteState.ts +138 -224
  272. package/src/meeting/request.ts +127 -214
  273. package/src/meeting/util.ts +423 -687
  274. package/src/meeting-info/index.ts +8 -81
  275. package/src/meeting-info/meeting-info-v2.ts +13 -163
  276. package/src/meeting-info/util.ts +1 -1
  277. package/src/meeting-info/utilv2.ts +28 -28
  278. package/src/meetings/collection.ts +0 -33
  279. package/src/meetings/index.ts +136 -531
  280. package/src/meetings/request.ts +0 -2
  281. package/src/meetings/util.ts +5 -116
  282. package/src/member/index.ts +1 -43
  283. package/src/member/util.ts +28 -125
  284. package/src/members/collection.ts +0 -8
  285. package/src/members/index.ts +52 -187
  286. package/src/members/request.ts +27 -87
  287. package/src/members/util.ts +291 -332
  288. package/src/metrics/config.ts +485 -0
  289. package/src/metrics/constants.ts +6 -15
  290. package/src/metrics/index.ts +471 -1
  291. package/src/networkQualityMonitor/index.ts +6 -6
  292. package/src/peer-connection-manager/index.ts +847 -0
  293. package/src/peer-connection-manager/util.ts +119 -0
  294. package/src/reachability/index.ts +347 -246
  295. package/src/reachability/request.ts +8 -17
  296. package/src/reactions/reactions.ts +4 -4
  297. package/src/reactions/reactions.type.ts +4 -30
  298. package/src/reconnection-manager/index.ts +156 -168
  299. package/src/recording-controller/index.ts +3 -20
  300. package/src/recording-controller/util.ts +9 -26
  301. package/src/roap/collection.ts +62 -0
  302. package/src/roap/handler.ts +294 -0
  303. package/src/roap/index.ts +241 -96
  304. package/src/roap/request.ts +148 -74
  305. package/src/roap/state.ts +156 -0
  306. package/src/roap/turnDiscovery.ts +56 -62
  307. package/src/roap/util.ts +100 -0
  308. package/src/statsAnalyzer/global.ts +84 -1
  309. package/src/statsAnalyzer/index.ts +645 -479
  310. package/src/statsAnalyzer/mqaUtil.ts +126 -128
  311. package/test/integration/spec/journey.js +264 -320
  312. package/test/integration/spec/space-meeting.js +4 -77
  313. package/test/unit/spec/common/queue.js +2 -31
  314. package/test/unit/spec/controls-options-manager/index.js +0 -163
  315. package/test/unit/spec/controls-options-manager/util.js +60 -576
  316. package/test/unit/spec/fixture/locus.js +0 -1
  317. package/test/unit/spec/locus-info/controlsUtils.js +30 -323
  318. package/test/unit/spec/locus-info/index.js +15 -1437
  319. package/test/unit/spec/locus-info/infoUtils.js +16 -54
  320. package/test/unit/spec/locus-info/lib/SeqCmp.json +0 -16
  321. package/test/unit/spec/locus-info/lib/selfConstant.js +0 -48
  322. package/test/unit/spec/locus-info/parser.js +35 -116
  323. package/test/unit/spec/locus-info/selfUtils.js +0 -275
  324. package/test/unit/spec/media/properties.ts +84 -75
  325. package/test/unit/spec/meeting/effectsState.js +281 -0
  326. package/test/unit/spec/meeting/in-meeting-actions.ts +0 -86
  327. package/test/unit/spec/meeting/index.js +2313 -8384
  328. package/test/unit/spec/meeting/muteState.js +213 -409
  329. package/test/unit/spec/meeting/request.js +43 -523
  330. package/test/unit/spec/meeting/utils.js +24 -834
  331. package/test/unit/spec/meeting-info/meetinginfov2.js +5 -527
  332. package/test/unit/spec/meeting-info/utilv2.js +0 -21
  333. package/test/unit/spec/meetings/collection.js +0 -26
  334. package/test/unit/spec/meetings/index.js +232 -1445
  335. package/test/unit/spec/meetings/utils.js +2 -202
  336. package/test/unit/spec/member/index.js +9 -32
  337. package/test/unit/spec/member/util.js +61 -499
  338. package/test/unit/spec/members/index.js +5 -394
  339. package/test/unit/spec/members/request.js +27 -206
  340. package/test/unit/spec/members/utils.js +38 -173
  341. package/test/unit/spec/metrics/index.js +50 -1
  342. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  343. package/test/unit/spec/peerconnection-manager/index.js +218 -0
  344. package/test/unit/spec/peerconnection-manager/utils.js +49 -0
  345. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -0
  346. package/test/unit/spec/reachability/index.ts +24 -532
  347. package/test/unit/spec/reconnection-manager/index.js +24 -163
  348. package/test/unit/spec/recording-controller/index.js +218 -293
  349. package/test/unit/spec/recording-controller/util.js +96 -223
  350. package/test/unit/spec/roap/index.ts +77 -187
  351. package/test/unit/spec/roap/turnDiscovery.ts +48 -86
  352. package/test/unit/spec/roap/util.js +30 -0
  353. package/test/unit/spec/stats-analyzer/index.js +165 -644
  354. package/test/utils/testUtils.js +45 -0
  355. package/test/utils/webex-config.js +0 -4
  356. package/test/utils/webex-test-users.js +3 -7
  357. package/dist/annotation/annotation.types.d.ts +0 -42
  358. package/dist/annotation/annotation.types.js +0 -7
  359. package/dist/annotation/annotation.types.js.map +0 -1
  360. package/dist/annotation/constants.d.ts +0 -31
  361. package/dist/annotation/constants.js +0 -41
  362. package/dist/annotation/constants.js.map +0 -1
  363. package/dist/annotation/index.d.ts +0 -117
  364. package/dist/annotation/index.js +0 -357
  365. package/dist/annotation/index.js.map +0 -1
  366. package/dist/breakouts/breakout.d.ts +0 -8
  367. package/dist/breakouts/breakout.js +0 -215
  368. package/dist/breakouts/breakout.js.map +0 -1
  369. package/dist/breakouts/collection.d.ts +0 -5
  370. package/dist/breakouts/collection.js +0 -22
  371. package/dist/breakouts/collection.js.map +0 -1
  372. package/dist/breakouts/edit-lock-error.d.ts +0 -15
  373. package/dist/breakouts/edit-lock-error.js +0 -51
  374. package/dist/breakouts/edit-lock-error.js.map +0 -1
  375. package/dist/breakouts/events.d.ts +0 -8
  376. package/dist/breakouts/events.js +0 -44
  377. package/dist/breakouts/events.js.map +0 -1
  378. package/dist/breakouts/index.d.ts +0 -5
  379. package/dist/breakouts/index.js +0 -1047
  380. package/dist/breakouts/index.js.map +0 -1
  381. package/dist/breakouts/request.d.ts +0 -22
  382. package/dist/breakouts/request.js +0 -77
  383. package/dist/breakouts/request.js.map +0 -1
  384. package/dist/breakouts/utils.d.ts +0 -15
  385. package/dist/breakouts/utils.js +0 -64
  386. package/dist/breakouts/utils.js.map +0 -1
  387. package/dist/common/errors/no-meeting-info.d.ts +0 -14
  388. package/dist/common/errors/no-meeting-info.js +0 -50
  389. package/dist/common/errors/no-meeting-info.js.map +0 -1
  390. package/dist/common/errors/reclaim-host-role-errors.js.map +0 -1
  391. package/dist/controls-options-manager/types.d.ts +0 -43
  392. package/dist/controls-options-manager/types.js +0 -7
  393. package/dist/controls-options-manager/types.js.map +0 -1
  394. package/dist/interceptors/index.d.ts +0 -2
  395. package/dist/interceptors/index.js +0 -15
  396. package/dist/interceptors/index.js.map +0 -1
  397. package/dist/interceptors/locusRetry.d.ts +0 -27
  398. package/dist/interceptors/locusRetry.js +0 -94
  399. package/dist/interceptors/locusRetry.js.map +0 -1
  400. package/dist/interpretation/collection.d.ts +0 -5
  401. package/dist/interpretation/collection.js +0 -22
  402. package/dist/interpretation/collection.js.map +0 -1
  403. package/dist/interpretation/index.d.ts +0 -5
  404. package/dist/interpretation/index.js +0 -365
  405. package/dist/interpretation/index.js.map +0 -1
  406. package/dist/interpretation/siLanguage.d.ts +0 -5
  407. package/dist/interpretation/siLanguage.js +0 -24
  408. package/dist/interpretation/siLanguage.js.map +0 -1
  409. package/dist/meeting/locusMediaRequest.d.ts +0 -74
  410. package/dist/meeting/locusMediaRequest.js +0 -291
  411. package/dist/meeting/locusMediaRequest.js.map +0 -1
  412. package/dist/meeting/request.type.d.ts +0 -11
  413. package/dist/meeting/request.type.js +0 -7
  414. package/dist/meeting/request.type.js.map +0 -1
  415. package/dist/meeting/voicea-meeting.d.ts +0 -20
  416. package/dist/meeting/voicea-meeting.js +0 -201
  417. package/dist/meeting/voicea-meeting.js.map +0 -1
  418. package/dist/meetings/meetings.types.d.ts +0 -4
  419. package/dist/meetings/meetings.types.js +0 -7
  420. package/dist/meetings/meetings.types.js.map +0 -1
  421. package/dist/member/types.d.ts +0 -32
  422. package/dist/member/types.js +0 -23
  423. package/dist/member/types.js.map +0 -1
  424. package/dist/multistream/mediaRequestManager.d.ts +0 -118
  425. package/dist/multistream/mediaRequestManager.js +0 -344
  426. package/dist/multistream/mediaRequestManager.js.map +0 -1
  427. package/dist/multistream/receiveSlot.d.ts +0 -68
  428. package/dist/multistream/receiveSlot.js +0 -200
  429. package/dist/multistream/receiveSlot.js.map +0 -1
  430. package/dist/multistream/receiveSlotManager.d.ts +0 -56
  431. package/dist/multistream/receiveSlotManager.js +0 -174
  432. package/dist/multistream/receiveSlotManager.js.map +0 -1
  433. package/dist/multistream/remoteMedia.d.ts +0 -72
  434. package/dist/multistream/remoteMedia.js +0 -268
  435. package/dist/multistream/remoteMedia.js.map +0 -1
  436. package/dist/multistream/remoteMediaGroup.d.ts +0 -47
  437. package/dist/multistream/remoteMediaGroup.js +0 -267
  438. package/dist/multistream/remoteMediaGroup.js.map +0 -1
  439. package/dist/multistream/remoteMediaManager.d.ts +0 -285
  440. package/dist/multistream/remoteMediaManager.js +0 -1211
  441. package/dist/multistream/remoteMediaManager.js.map +0 -1
  442. package/dist/multistream/sendSlotManager.d.ts +0 -61
  443. package/dist/multistream/sendSlotManager.js +0 -236
  444. package/dist/multistream/sendSlotManager.js.map +0 -1
  445. package/dist/reachability/clusterReachability.d.ts +0 -109
  446. package/dist/reachability/clusterReachability.js +0 -357
  447. package/dist/reachability/clusterReachability.js.map +0 -1
  448. package/dist/reachability/util.d.ts +0 -8
  449. package/dist/reachability/util.js +0 -29
  450. package/dist/reachability/util.js.map +0 -1
  451. package/dist/reactions/constants.d.ts +0 -3
  452. package/dist/reactions/constants.js +0 -12
  453. package/dist/reactions/constants.js.map +0 -1
  454. package/dist/rtcMetrics/constants.d.ts +0 -4
  455. package/dist/rtcMetrics/constants.js +0 -11
  456. package/dist/rtcMetrics/constants.js.map +0 -1
  457. package/dist/rtcMetrics/index.d.ts +0 -54
  458. package/dist/rtcMetrics/index.js +0 -140
  459. package/dist/rtcMetrics/index.js.map +0 -1
  460. package/dist/webinar/collection.d.ts +0 -16
  461. package/dist/webinar/collection.js +0 -43
  462. package/dist/webinar/collection.js.map +0 -1
  463. package/dist/webinar/index.d.ts +0 -5
  464. package/dist/webinar/index.js +0 -68
  465. package/dist/webinar/index.js.map +0 -1
  466. package/src/annotation/annotation.types.ts +0 -50
  467. package/src/annotation/constants.ts +0 -36
  468. package/src/annotation/index.ts +0 -328
  469. package/src/breakouts/README.md +0 -220
  470. package/src/breakouts/breakout.ts +0 -188
  471. package/src/breakouts/collection.ts +0 -19
  472. package/src/breakouts/edit-lock-error.ts +0 -25
  473. package/src/breakouts/events.ts +0 -56
  474. package/src/breakouts/index.ts +0 -925
  475. package/src/breakouts/request.ts +0 -55
  476. package/src/breakouts/utils.ts +0 -57
  477. package/src/common/errors/no-meeting-info.ts +0 -24
  478. package/src/controls-options-manager/types.ts +0 -59
  479. package/src/index.ts +0 -44
  480. package/src/interceptors/index.ts +0 -3
  481. package/src/interceptors/locusRetry.ts +0 -67
  482. package/src/interpretation/README.md +0 -60
  483. package/src/interpretation/collection.ts +0 -19
  484. package/src/interpretation/index.ts +0 -332
  485. package/src/interpretation/siLanguage.ts +0 -18
  486. package/src/meeting/locusMediaRequest.ts +0 -313
  487. package/src/meeting/request.type.ts +0 -13
  488. package/src/meeting/voicea-meeting.ts +0 -161
  489. package/src/meetings/meetings.types.ts +0 -12
  490. package/src/member/types.ts +0 -38
  491. package/src/multistream/mediaRequestManager.ts +0 -440
  492. package/src/multistream/receiveSlot.ts +0 -184
  493. package/src/multistream/receiveSlotManager.ts +0 -166
  494. package/src/multistream/remoteMedia.ts +0 -254
  495. package/src/multistream/remoteMediaGroup.ts +0 -284
  496. package/src/multistream/remoteMediaManager.ts +0 -1145
  497. package/src/multistream/sendSlotManager.ts +0 -170
  498. package/src/reachability/clusterReachability.ts +0 -320
  499. package/src/reachability/util.ts +0 -24
  500. package/src/reactions/constants.ts +0 -4
  501. package/src/rtcMetrics/constants.ts +0 -3
  502. package/src/rtcMetrics/index.ts +0 -124
  503. package/src/webinar/collection.ts +0 -31
  504. package/src/webinar/index.ts +0 -62
  505. package/test/integration/spec/converged-space-meetings.js +0 -233
  506. package/test/unit/spec/annotation/index.ts +0 -418
  507. package/test/unit/spec/breakouts/breakout.ts +0 -237
  508. package/test/unit/spec/breakouts/collection.ts +0 -15
  509. package/test/unit/spec/breakouts/edit-lock-error.ts +0 -30
  510. package/test/unit/spec/breakouts/events.ts +0 -89
  511. package/test/unit/spec/breakouts/index.ts +0 -1790
  512. package/test/unit/spec/breakouts/request.ts +0 -104
  513. package/test/unit/spec/breakouts/utils.js +0 -72
  514. package/test/unit/spec/interceptors/locusRetry.ts +0 -131
  515. package/test/unit/spec/interpretation/collection.ts +0 -15
  516. package/test/unit/spec/interpretation/index.ts +0 -589
  517. package/test/unit/spec/interpretation/siLanguage.ts +0 -28
  518. package/test/unit/spec/locus-info/mediaSharesUtils.ts +0 -32
  519. package/test/unit/spec/media/index.ts +0 -290
  520. package/test/unit/spec/meeting/locusMediaRequest.ts +0 -442
  521. package/test/unit/spec/meeting-info/index.js +0 -300
  522. package/test/unit/spec/multistream/mediaRequestManager.ts +0 -1418
  523. package/test/unit/spec/multistream/receiveSlot.ts +0 -163
  524. package/test/unit/spec/multistream/receiveSlotManager.ts +0 -203
  525. package/test/unit/spec/multistream/remoteMedia.ts +0 -255
  526. package/test/unit/spec/multistream/remoteMediaGroup.ts +0 -662
  527. package/test/unit/spec/multistream/remoteMediaManager.ts +0 -1924
  528. package/test/unit/spec/multistream/sendSlotManager.ts +0 -242
  529. package/test/unit/spec/reachability/clusterReachability.ts +0 -279
  530. package/test/unit/spec/reachability/request.js +0 -68
  531. package/test/unit/spec/reachability/util.ts +0 -40
  532. package/test/unit/spec/roap/request.ts +0 -255
  533. package/test/unit/spec/rtcMetrics/index.ts +0 -93
  534. package/test/unit/spec/webinar/collection.ts +0 -13
  535. package/test/unit/spec/webinar/index.ts +0 -60
  536. package/test/utils/constants.js +0 -9
  537. package/test/utils/integrationTestUtils.js +0 -46
  538. /package/dist/common/errors/{reclaim-host-role-errors.d.ts → reclaim-host-role-error.d.ts} +0 -0
  539. /package/src/common/errors/{reclaim-host-role-errors.ts → reclaim-host-role-error.ts} +0 -0
@@ -7,6 +7,9 @@ _Object$defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
9
  exports.default = void 0;
10
+ var _isNan = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/number/is-nan"));
11
+ var _parseFloat2 = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/parse-float"));
12
+ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
10
13
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
11
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
12
15
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
@@ -18,21 +21,20 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
18
21
  var _webexCore = require("@webex/webex-core");
19
22
  var _constants = require("../constants");
20
23
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
24
+ var _util = _interopRequireDefault(require("../meeting/util"));
25
+ var _handler = _interopRequireDefault(require("./handler"));
21
26
  var _request = _interopRequireDefault(require("./request"));
27
+ var _collection = _interopRequireDefault(require("./collection"));
22
28
  var _turnDiscovery = _interopRequireDefault(require("./turnDiscovery"));
23
- var _util = _interopRequireDefault(require("../meeting/util"));
24
- var _metrics = _interopRequireDefault(require("../metrics"));
25
- var _constants2 = _interopRequireDefault(require("../metrics/constants"));
26
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); }; }
27
- 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; } } // @ts-ignore
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; } }
28
31
  /**
29
32
  * Roap options
30
33
  * @typedef {Object} RoapOptions
31
34
  * @property {String} sdp
32
35
  * @property {Meeting} meeting
33
- * @property {Number} seq
34
- * @property {Number} tieBreaker
35
- * @property {Boolean} reconnect
36
+ * @property {Number} roapSeq
37
+ * @property {Boolean} reconnect
36
38
  */
37
39
  /**
38
40
  * @typedef {Object} SeqOptions
@@ -45,7 +47,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_R
45
47
  * @export
46
48
  * @private
47
49
  */
48
- var Roap = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
50
+ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
49
51
  (0, _inherits2.default)(Roap, _StatelessWebexPlugin);
50
52
  var _super = _createSuper(Roap);
51
53
  /**
@@ -53,10 +55,10 @@ var Roap = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
53
55
  * @param {Object} attrs
54
56
  * @param {Object} options
55
57
  */
56
- function Roap(attrs, options) {
58
+ function Roap(attrs, _options) {
57
59
  var _this;
58
60
  (0, _classCallCheck2.default)(this, Roap);
59
- _this = _super.call(this, {}, options);
61
+ _this = _super.call(this, {}, _options);
60
62
  /**
61
63
  * @instance
62
64
  * @type {Object}
@@ -69,6 +71,59 @@ var Roap = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
69
71
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "roapHandler", void 0);
70
72
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "roapRequest", void 0);
71
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
80
+ */
81
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sendRoapCallRequest", function (options) {
82
+ var _meeting$audio, _meeting$video;
83
+ var meeting = options.meeting;
84
+ var roapMessage = {
85
+ messageType: _constants.ROAP.ROAP_TYPES.OFFER,
86
+ sdps: [options.sdp],
87
+ version: _constants.ROAP.ROAP_VERSION,
88
+ seq: typeof options.roapSeq !== 'number' && (0, _isNan.default)((0, _parseFloat2.default)(options.roapSeq)) ? 0 : options.roapSeq + 1,
89
+ tieBreaker: 4294967294 // Math.floor(Math.random() * (2 ** 32) - 1) // TODO: Handle the roap conflict scenario
90
+ };
91
+
92
+ _this.roapHandler.submit({
93
+ type: _constants.ROAP.SEND_ROAP_MSG,
94
+ msg: roapMessage,
95
+ correlationId: meeting.correlationId
96
+ });
97
+ var roapBody = {
98
+ localMedias: [{
99
+ localSdp: (0, _stringify.default)(_this.roapRequest.attachRechabilityData({
100
+ roapMessage: roapMessage,
101
+ // eslint-disable-next-line no-warning-comments
102
+ // TODO: check whats the need for video and audiomute
103
+ audioMuted: (_meeting$audio = meeting.audio) === null || _meeting$audio === void 0 ? void 0 : _meeting$audio.isLocallyMuted(),
104
+ videoMuted: (_meeting$video = meeting.video) === null || _meeting$video === void 0 ? void 0 : _meeting$video.isLocallyMuted()
105
+ }))
106
+ // mediaId: meeting.mediaId
107
+ }]
108
+ };
109
+
110
+ return _util.default.joinMeetingOptions(meeting, {
111
+ roapMessage: roapBody
112
+ }).then(function (locus) {
113
+ _this.roapHandler.submit({
114
+ type: _constants.ROAP.SEND_ROAP_MSG_SUCCESS,
115
+ seq: roapMessage.seq,
116
+ correlationId: meeting.correlationId
117
+ });
118
+ meeting.setRoapSeq(roapMessage.seq);
119
+
120
+ // eslint-disable-next-line no-warning-comments
121
+ // TODO: we need to attach peerconenction to locus not sure if we need to pass everything here
122
+ return locus;
123
+ // eslint-disable-next-line no-warning-comments
124
+ // TODO: check where to update the sequence number
125
+ });
126
+ });
72
127
  _this.attrs = attrs;
73
128
  /**
74
129
  * @instance
@@ -76,7 +131,15 @@ var Roap = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
76
131
  * @private
77
132
  * @memberof Roap
78
133
  */
79
- _this.options = options;
134
+ _this.options = _options;
135
+ /**
136
+ * The Roap Process State Handler
137
+ * @instance
138
+ * @type {RoapHandler}
139
+ * @private
140
+ * @memberof Roap
141
+ */
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)));
80
143
  /**
81
144
  * The Roap Request Server Proxy Object
82
145
  * @instance
@@ -85,23 +148,77 @@ var Roap = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
85
148
  * @memberof Roap
86
149
  */
87
150
  // @ts-ignore
88
- _this.roapRequest = new _request.default({}, options);
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
158
+ */
159
+ _this.lastRoapOffer = {};
89
160
  _this.turnDiscovery = new _turnDiscovery.default(_this.roapRequest);
90
161
  return _this;
91
162
  }
92
163
 
93
164
  /**
94
- *
95
- * @param {SeqOptions} options
96
- * @returns {null}
165
+ * Starts listening to mercury events for Roap messages
166
+ * @param {object} data event object
167
+ * @returns {Promise}
168
+ * @private
97
169
  * @memberof Roap
98
170
  */
99
171
  (0, _createClass2.default)(Roap, [{
172
+ key: "roapEvent",
173
+ value: function roapEvent(data) {
174
+ var msg = data.message;
175
+ var correlationId = data.correlationId;
176
+ _loggerProxy.default.logger.log("Roap:index#roapEvent --> Received Roap Message [".concat((0, _stringify.default)(msg, null, 2), "]"));
177
+ if (msg.messageType === _constants.ROAP.ROAP_TYPES.TURN_DISCOVERY_RESPONSE) {
178
+ // turn discovery is not part of normal roap protocol and so we are not handling it
179
+ // through the usual roap state machine
180
+ this.turnDiscovery.handleTurnDiscoveryResponse(msg);
181
+ } else {
182
+ this.roapHandler.submit({
183
+ type: _constants.ROAP.RECEIVE_ROAP_MSG,
184
+ msg: msg,
185
+ correlationId: correlationId
186
+ });
187
+ }
188
+ }
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
197
+ */
198
+ }, {
199
+ key: "stop",
200
+ value: function stop(correlationId, seq) {
201
+ this.roapHandler.submit({
202
+ type: _constants.ROAP.RECEIVE_CALL_LEAVE,
203
+ seq: seq,
204
+ correlationId: correlationId
205
+ });
206
+ return _promise.default.resolve();
207
+ }
208
+
209
+ /**
210
+ *
211
+ * @param {SeqOptions} options
212
+ * @returns {null}
213
+ * @private
214
+ * @memberof Roap
215
+ */
216
+ }, {
100
217
  key: "sendRoapOK",
101
218
  value: function sendRoapOK(options) {
102
219
  var _this2 = this;
103
220
  return _promise.default.resolve().then(function () {
104
- var _meeting$audio, _meeting$video;
221
+ var _meeting$audio2, _meeting$video2;
105
222
  // @ts-ignore
106
223
  var meeting = _this2.webex.meetings.meetingCollection.getByKey('correlationId', options.correlationId);
107
224
  var roapMessage = {
@@ -114,153 +231,174 @@ var Roap = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
114
231
  roapMessage: roapMessage,
115
232
  locusSelfUrl: meeting.selfUrl,
116
233
  mediaId: options.mediaId,
117
- audioMuted: (_meeting$audio = meeting.audio) === null || _meeting$audio === void 0 ? void 0 : _meeting$audio.isLocallyMuted(),
118
- videoMuted: (_meeting$video = meeting.video) === null || _meeting$video === void 0 ? void 0 : _meeting$video.isLocallyMuted(),
119
- meetingId: meeting.id,
120
- locusMediaRequest: meeting.locusMediaRequest
234
+ correlationId: options.correlationId,
235
+ audioMuted: (_meeting$audio2 = meeting.audio) === null || _meeting$audio2 === void 0 ? void 0 : _meeting$audio2.isLocallyMuted(),
236
+ videoMuted: (_meeting$video2 = meeting.video) === null || _meeting$video2 === void 0 ? void 0 : _meeting$video2.isLocallyMuted(),
237
+ meetingId: meeting.id
121
238
  }).then(function () {
239
+ _this2.roapHandler.submit({
240
+ type: _constants.ROAP.SEND_ROAP_MSG,
241
+ msg: roapMessage,
242
+ correlationId: options.correlationId
243
+ });
122
244
  _loggerProxy.default.logger.log("Roap:index#sendRoapOK --> ROAP OK sent with seq ".concat(options.seq));
245
+ meeting.setRoapSeq(options.seq);
123
246
  });
124
247
  });
125
248
  }
126
249
 
250
+ // eslint-disable-next-line no-warning-comments
251
+ // TODO: try to merge sendRoapOk and roapAnswer
127
252
  /**
128
253
  * Sends a ROAP answer...
129
254
  * @param {SeqOptions} options
130
255
  * @param {Boolean} options.audioMuted
131
256
  * @param {Boolean} options.videoMuted
132
257
  * @returns {Promise}
258
+ * @private
133
259
  * @memberof Roap
134
260
  */
135
261
  }, {
136
262
  key: "sendRoapAnswer",
137
263
  value: function sendRoapAnswer(options) {
138
- var _meeting$audio2, _meeting$video2;
264
+ var _meeting$audio3,
265
+ _meeting$video3,
266
+ _this3 = this;
139
267
  // @ts-ignore
140
268
  var meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', options.correlationId);
141
269
  var roapMessage = {
142
270
  messageType: _constants.ROAP.ROAP_TYPES.ANSWER,
143
- sdps: [options.sdp],
271
+ sdps: options.sdps,
144
272
  version: _constants.ROAP.ROAP_VERSION,
145
273
  seq: options.seq
146
274
  };
275
+ this.roapHandler.submit({
276
+ type: _constants.ROAP.SEND_ROAP_MSG,
277
+ msg: roapMessage,
278
+ correlationId: options.correlationId
279
+ });
147
280
  return this.roapRequest.sendRoap({
148
281
  roapMessage: roapMessage,
149
282
  locusSelfUrl: meeting.selfUrl,
150
283
  mediaId: options.mediaId,
151
- meetingId: meeting.id,
152
- audioMuted: (_meeting$audio2 = meeting.audio) === null || _meeting$audio2 === void 0 ? void 0 : _meeting$audio2.isLocallyMuted(),
153
- videoMuted: (_meeting$video2 = meeting.video) === null || _meeting$video2 === void 0 ? void 0 : _meeting$video2.isLocallyMuted(),
154
- locusMediaRequest: meeting.locusMediaRequest
284
+ correlationId: options.correlationId,
285
+ audioMuted: (_meeting$audio3 = meeting.audio) === null || _meeting$audio3 === void 0 ? void 0 : _meeting$audio3.isLocallyMuted(),
286
+ videoMuted: (_meeting$video3 = meeting.video) === null || _meeting$video3 === void 0 ? void 0 : _meeting$video3.isLocallyMuted(),
287
+ meetingId: meeting.id
288
+ }).then(function () {
289
+ meeting.setRoapSeq(options.seq);
290
+ _this3.roapHandler.submit({
291
+ type: _constants.ROAP.SEND_ROAP_MSG_SUCCESS,
292
+ seq: roapMessage.seq,
293
+ correlationId: meeting.correlationId
294
+ });
155
295
  });
156
296
  }
157
297
 
158
298
  /**
159
299
  * Sends a ROAP error...
160
- * @param {Object} options
300
+ * @param {Object} session
301
+ * @param {Object} locus
302
+ * @param {String} errorType
161
303
  * @returns {Promise}
304
+ * @private
162
305
  * @memberof Roap
163
306
  */
164
307
  }, {
165
308
  key: "sendRoapError",
166
- value: function sendRoapError(options) {
167
- var _meeting$audio3, _meeting$video3;
168
- // @ts-ignore
169
- var meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', options.correlationId);
170
- var roapMessage = {
309
+ value: function sendRoapError(session, locus, errorType) {
310
+ var msg = {
171
311
  messageType: _constants.ROAP.ROAP_TYPES.ERROR,
172
312
  version: _constants.ROAP.ROAP_VERSION,
173
- errorType: options.errorType,
174
- seq: options.seq
313
+ errorType: errorType,
314
+ seq: session.OFFER.seq
175
315
  };
176
- return this.roapRequest.sendRoap({
177
- roapMessage: roapMessage,
178
- locusSelfUrl: meeting.selfUrl,
179
- mediaId: options.mediaId,
180
- audioMuted: (_meeting$audio3 = meeting.audio) === null || _meeting$audio3 === void 0 ? void 0 : _meeting$audio3.isLocallyMuted(),
181
- videoMuted: (_meeting$video3 = meeting.video) === null || _meeting$video3 === void 0 ? void 0 : _meeting$video3.isLocallyMuted(),
182
- meetingId: meeting.id,
183
- locusMediaRequest: meeting.locusMediaRequest
184
- }).then(function () {
185
- _loggerProxy.default.logger.log("Roap:index#sendRoapError --> ROAP ERROR sent with seq ".concat(options.seq));
186
- });
316
+ return this.roapRequest.sendRoap(msg, locus);
187
317
  }
188
318
 
189
319
  /**
190
320
  * sends a roap media request
191
321
  * @param {RoapOptions} options
192
322
  * @returns {Promise}
323
+ * @private
193
324
  * @memberof Roap
194
325
  */
195
326
  }, {
196
327
  key: "sendRoapMediaRequest",
197
328
  value: function sendRoapMediaRequest(options) {
329
+ var _this4 = this;
198
330
  var meeting = options.meeting,
199
- seq = options.seq,
200
- sdp = options.sdp,
201
- tieBreaker = options.tieBreaker;
331
+ reconnect = options.reconnect;
202
332
  var roapMessage = {
203
333
  messageType: _constants.ROAP.ROAP_TYPES.OFFER,
204
- sdps: [sdp],
334
+ sdps: [options.sdp],
335
+ // sdps: [options.sdp],
205
336
  version: _constants.ROAP.ROAP_VERSION,
206
- seq: seq,
207
- tieBreaker: tieBreaker,
208
- headers: ['includeAnswerInHttpResponse', 'noOkInTransaction']
337
+ seq: typeof options.roapSeq !== 'number' && (0, _isNan.default)((0, _parseFloat2.default)(options.roapSeq)) ? 0 : options.roapSeq + 1,
338
+ tieBreaker: 4294967294 // Math.floor(Math.random() * (2 ** 32) - 1) // TODO: Handle the roap conflict scenario
209
339
  };
210
340
 
211
- // The only time we want to send an empty media id is when we are reconnecting, because this way we tell Locus
212
- // that it needs to create a new confluence, but when reconnecting we always send TURN_DISCOVERY_REQUEST first,
213
- // so we don't need to ever send an empty media id here
214
- var sendEmptyMediaId = false;
215
- return this.roapRequest.sendRoap({
216
- roapMessage: roapMessage,
217
- locusSelfUrl: meeting.selfUrl,
218
- mediaId: sendEmptyMediaId ? '' : meeting.mediaId,
219
- meetingId: meeting.id,
220
- preferTranscoding: !meeting.isMultistream,
221
- locusMediaRequest: meeting.locusMediaRequest,
222
- ipVersion: _util.default.getIpVersion(meeting.webex)
341
+ this.roapHandler.submit({
342
+ type: _constants.ROAP.SEND_ROAP_MSG,
343
+ msg: roapMessage,
344
+ correlationId: meeting.correlationId
345
+ });
346
+
347
+ // When reconnecting, it's important that the first roap message being sent out has empty media id.
348
+ // Normally this is the roap offer, but when TURN discovery is enabled,
349
+ // then this is the TURN discovery request message
350
+ return this.turnDiscovery.isSkipped(meeting).then(function (isTurnDiscoverySkipped) {
351
+ var _meeting$audio4, _meeting$video4;
352
+ var sendEmptyMediaId = reconnect && isTurnDiscoverySkipped;
353
+ return _this4.roapRequest.sendRoap({
354
+ roapMessage: roapMessage,
355
+ correlationId: meeting.correlationId,
356
+ locusSelfUrl: meeting.selfUrl,
357
+ mediaId: sendEmptyMediaId ? '' : meeting.mediaId,
358
+ audioMuted: (_meeting$audio4 = meeting.audio) === null || _meeting$audio4 === void 0 ? void 0 : _meeting$audio4.isLocallyMuted(),
359
+ videoMuted: (_meeting$video4 = meeting.video) === null || _meeting$video4 === void 0 ? void 0 : _meeting$video4.isLocallyMuted(),
360
+ meetingId: meeting.id
361
+ });
223
362
  }).then(function (_ref) {
224
- var _mediaConnections$;
225
363
  var locus = _ref.locus,
226
364
  mediaConnections = _ref.mediaConnections;
365
+ _this4.roapHandler.submit({
366
+ type: _constants.ROAP.SEND_ROAP_MSG_SUCCESS,
367
+ seq: roapMessage.seq,
368
+ correlationId: meeting.correlationId
369
+ });
370
+ meeting.setRoapSeq(roapMessage.seq);
227
371
  if (mediaConnections) {
228
372
  meeting.updateMediaConnections(mediaConnections);
229
373
  }
230
- var roapAnswer;
231
- if (mediaConnections !== null && mediaConnections !== void 0 && (_mediaConnections$ = mediaConnections[0]) !== null && _mediaConnections$ !== void 0 && _mediaConnections$.remoteSdp) {
232
- var remoteSdp = JSON.parse(mediaConnections[0].remoteSdp);
233
- if (remoteSdp.roapMessage) {
234
- var _remoteSdp$roapMessag = remoteSdp.roapMessage,
235
- answerSeq = _remoteSdp$roapMessag.seq,
236
- messageType = _remoteSdp$roapMessag.messageType,
237
- sdps = _remoteSdp$roapMessag.sdps,
238
- errorType = _remoteSdp$roapMessag.errorType,
239
- errorCause = _remoteSdp$roapMessag.errorCause,
240
- headers = _remoteSdp$roapMessag.headers;
241
- roapAnswer = {
242
- seq: answerSeq,
243
- messageType: messageType,
244
- sdp: sdps[0],
245
- errorType: errorType,
246
- errorCause: errorCause,
247
- headers: headers
248
- };
249
- }
250
- }
251
- if (!roapAnswer) {
252
- _metrics.default.sendBehavioralMetric(_constants2.default.ROAP_HTTP_RESPONSE_MISSING, {
253
- correlationId: meeting.correlationId,
254
- messageType: 'ANSWER',
255
- isMultistream: meeting.isMultistream
256
- });
257
- }
258
- return {
259
- locus: locus,
260
- roapAnswer: roapAnswer
261
- };
374
+
375
+ // eslint-disable-next-line no-warning-comments
376
+ // TODO: we need to attach peerconenction to locus not sure if we need to pass everything here
377
+ return locus;
378
+ // eslint-disable-next-line no-warning-comments
379
+ // TODO: check where to update the sequence number
262
380
  });
263
381
  }
382
+ }, {
383
+ key: "roapFinished",
384
+ value:
385
+ /**
386
+ * Called when the roap sequence is finished (completed successfully or failed)
387
+ * @param {String} correlationId id of the meeting affected
388
+ * @param {String} sequenceId the id of the finished sequence
389
+ * @returns {undefined}
390
+ * @private
391
+ * @memberof Roap
392
+ */
393
+ function roapFinished(correlationId, sequenceId) {
394
+ _collection.default.onSessionSequenceFinish(correlationId, sequenceId);
395
+ // @ts-ignore
396
+ var meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', correlationId);
397
+ meeting.mediaNegotiatedEvent();
398
+ if (!_collection.default.isBusy(correlationId)) {
399
+ meeting.processNextQueuedMediaUpdate();
400
+ }
401
+ }
264
402
 
265
403
  /**
266
404
  * Performs a TURN server discovery procedure, which involves exchanging
@@ -270,15 +408,15 @@ var Roap = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
270
408
  * @param {Meeting} meeting
271
409
  * @param {Boolean} isReconnecting should be set to true if this is a new
272
410
  * media connection just after a reconnection
273
- * @param {Boolean} [isForced]
274
411
  * @returns {Promise}
275
412
  */
276
413
  }, {
277
414
  key: "doTurnDiscovery",
278
- value: function doTurnDiscovery(meeting, isReconnecting, isForced) {
279
- return this.turnDiscovery.doTurnDiscovery(meeting, isReconnecting, isForced);
415
+ value: function doTurnDiscovery(meeting, isReconnecting) {
416
+ return this.turnDiscovery.doTurnDiscovery(meeting, isReconnecting);
280
417
  }
281
418
  }]);
282
419
  return Roap;
283
420
  }(_webexCore.StatelessWebexPlugin);
421
+ exports.default = Roap;
284
422
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_webexCore","require","_constants","_loggerProxy","_interopRequireDefault","_request","_turnDiscovery","_util","_metrics","_constants2","_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","exports","_StatelessWebexPlugin","_inherits2","_super","attrs","options","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","roapRequest","RoapRequest","turnDiscovery","TurnDiscovery","_createClass2","key","value","sendRoapOK","_this2","_promise","resolve","then","_meeting$audio","_meeting$video","meeting","webex","meetings","meetingCollection","getByKey","correlationId","roapMessage","messageType","ROAP","ROAP_TYPES","OK","version","ROAP_VERSION","seq","LoggerProxy","logger","log","concat","sendRoap","locusSelfUrl","selfUrl","mediaId","audioMuted","audio","isLocallyMuted","videoMuted","video","meetingId","id","locusMediaRequest","sendRoapAnswer","_meeting$audio2","_meeting$video2","ANSWER","sdps","sdp","sendRoapError","_meeting$audio3","_meeting$video3","ERROR","errorType","sendRoapMediaRequest","tieBreaker","OFFER","headers","sendEmptyMediaId","preferTranscoding","isMultistream","ipVersion","MeetingUtil","getIpVersion","_ref","_mediaConnections$","locus","mediaConnections","updateMediaConnections","roapAnswer","remoteSdp","JSON","parse","_remoteSdp$roapMessag","answerSeq","errorCause","Metrics","sendBehavioralMetric","BEHAVIORAL_METRICS","ROAP_HTTP_RESPONSE_MISSING","doTurnDiscovery","isReconnecting","isForced","StatelessWebexPlugin"],"sources":["index.ts"],"sourcesContent":["// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport {ROAP} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport RoapRequest from './request';\nimport TurnDiscovery from './turnDiscovery';\nimport Meeting from '../meeting';\nimport MeetingUtil from '../meeting/util';\nimport Metrics from '../metrics';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\n\n/**\n * Roap options\n * @typedef {Object} RoapOptions\n * @property {String} sdp\n * @property {Meeting} meeting\n * @property {Number} seq\n * @property {Number} tieBreaker\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 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 this.turnDiscovery = new TurnDiscovery(this.roapRequest);\n }\n\n /**\n *\n * @param {SeqOptions} options\n * @returns {null}\n * @memberof Roap\n */\n public 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 audioMuted: meeting.audio?.isLocallyMuted(),\n videoMuted: meeting.video?.isLocallyMuted(),\n meetingId: meeting.id,\n locusMediaRequest: meeting.locusMediaRequest,\n })\n .then(() => {\n LoggerProxy.logger.log(`Roap:index#sendRoapOK --> ROAP OK sent with seq ${options.seq}`);\n });\n });\n }\n\n /**\n * Sends a ROAP answer...\n * @param {SeqOptions} options\n * @param {Boolean} options.audioMuted\n * @param {Boolean} options.videoMuted\n * @returns {Promise}\n * @memberof Roap\n */\n public 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.sdp],\n version: ROAP.ROAP_VERSION,\n seq: options.seq,\n };\n\n return this.roapRequest.sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n meetingId: meeting.id,\n audioMuted: meeting.audio?.isLocallyMuted(),\n videoMuted: meeting.video?.isLocallyMuted(),\n locusMediaRequest: meeting.locusMediaRequest,\n });\n }\n\n /**\n * Sends a ROAP error...\n * @param {Object} options\n * @returns {Promise}\n * @memberof Roap\n */\n sendRoapError(options) {\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.ERROR,\n version: ROAP.ROAP_VERSION,\n errorType: options.errorType,\n seq: options.seq,\n };\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n audioMuted: meeting.audio?.isLocallyMuted(),\n videoMuted: meeting.video?.isLocallyMuted(),\n meetingId: meeting.id,\n locusMediaRequest: meeting.locusMediaRequest,\n })\n .then(() => {\n LoggerProxy.logger.log(\n `Roap:index#sendRoapError --> ROAP ERROR sent with seq ${options.seq}`\n );\n });\n }\n\n /**\n * sends a roap media request\n * @param {RoapOptions} options\n * @returns {Promise}\n * @memberof Roap\n */\n sendRoapMediaRequest(options: any) {\n const {meeting, seq, sdp, tieBreaker} = options;\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.OFFER,\n sdps: [sdp],\n version: ROAP.ROAP_VERSION,\n seq,\n tieBreaker,\n headers: ['includeAnswerInHttpResponse', 'noOkInTransaction'],\n };\n\n // The only time we want to send an empty media id is when we are reconnecting, because this way we tell Locus\n // that it needs to create a new confluence, but when reconnecting we always send TURN_DISCOVERY_REQUEST first,\n // so we don't need to ever send an empty media id here\n const sendEmptyMediaId = false;\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: sendEmptyMediaId ? '' : meeting.mediaId,\n meetingId: meeting.id,\n preferTranscoding: !meeting.isMultistream,\n locusMediaRequest: meeting.locusMediaRequest,\n ipVersion: MeetingUtil.getIpVersion(meeting.webex),\n })\n .then(({locus, mediaConnections}) => {\n if (mediaConnections) {\n meeting.updateMediaConnections(mediaConnections);\n }\n\n let roapAnswer;\n\n if (mediaConnections?.[0]?.remoteSdp) {\n const remoteSdp = JSON.parse(mediaConnections[0].remoteSdp);\n\n if (remoteSdp.roapMessage) {\n const {\n seq: answerSeq,\n messageType,\n sdps,\n errorType,\n errorCause,\n headers,\n } = remoteSdp.roapMessage;\n\n roapAnswer = {\n seq: answerSeq,\n messageType,\n sdp: sdps[0],\n errorType,\n errorCause,\n headers,\n };\n }\n }\n\n if (!roapAnswer) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ROAP_HTTP_RESPONSE_MISSING, {\n correlationId: meeting.correlationId,\n messageType: 'ANSWER',\n isMultistream: meeting.isMultistream,\n });\n }\n\n return {locus, roapAnswer};\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 * @param {Boolean} [isForced]\n * @returns {Promise}\n */\n doTurnDiscovery(meeting: Meeting, isReconnecting: boolean, isForced?: boolean) {\n return this.turnDiscovery.doTurnDiscovery(meeting, isReconnecting, isForced);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,QAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,cAAA,GAAAF,sBAAA,CAAAH,OAAA;AAEA,IAAAM,KAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,QAAA,GAAAJ,sBAAA,CAAAH,OAAA;AACA,IAAAQ,WAAA,GAAAL,sBAAA,CAAAH,OAAA;AAAsD,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,sBAXtD;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAJA,IAKqBC,IAAI,GAAAC,OAAA,CAAAjB,OAAA,0BAAAkB,qBAAA;EAAA,IAAAC,UAAA,CAAAnB,OAAA,EAAAgB,IAAA,EAAAE,qBAAA;EAAA,IAAAE,MAAA,GAAA3B,YAAA,CAAAuB,IAAA;EAQvB;AACF;AACA;AACA;AACA;EACE,SAAAA,KAAYK,KAAU,EAAEC,OAAY,EAAE;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAAxB,OAAA,QAAAgB,IAAA;IACpCO,KAAA,GAAAH,MAAA,CAAAN,IAAA,OAAM,CAAC,CAAC,EAAEQ,OAAO;IACjB;AACJ;AACA;AACA;AACA;AACA;IALI,IAAAG,gBAAA,CAAAzB,OAAA,MAAA0B,uBAAA,CAAA1B,OAAA,EAAAuB,KAAA;IAAA,IAAAE,gBAAA,CAAAzB,OAAA,MAAA0B,uBAAA,CAAA1B,OAAA,EAAAuB,KAAA;IAAA,IAAAE,gBAAA,CAAAzB,OAAA,MAAA0B,uBAAA,CAAA1B,OAAA,EAAAuB,KAAA;IAAA,IAAAE,gBAAA,CAAAzB,OAAA,MAAA0B,uBAAA,CAAA1B,OAAA,EAAAuB,KAAA;IAAA,IAAAE,gBAAA,CAAAzB,OAAA,MAAA0B,uBAAA,CAAA1B,OAAA,EAAAuB,KAAA;IAAA,IAAAE,gBAAA,CAAAzB,OAAA,MAAA0B,uBAAA,CAAA1B,OAAA,EAAAuB,KAAA;IAMAA,KAAA,CAAKF,KAAK,GAAGA,KAAK;IAClB;AACJ;AACA;AACA;AACA;AACA;IACIE,KAAA,CAAKD,OAAO,GAAGA,OAAO;IACtB;AACJ;AACA;AACA;AACA;AACA;AACA;IACI;IACAC,KAAA,CAAKI,WAAW,GAAG,IAAIC,gBAAW,CAAC,CAAC,CAAC,EAAEN,OAAO,CAAC;IAE/CC,KAAA,CAAKM,aAAa,GAAG,IAAIC,sBAAa,CAACP,KAAA,CAAKI,WAAW,CAAC;IAAC,OAAAJ,KAAA;EAC3D;;EAEA;AACF;AACA;AACA;AACA;AACA;EALE,IAAAQ,aAAA,CAAA/B,OAAA,EAAAgB,IAAA;IAAAgB,GAAA;IAAAC,KAAA,EAMA,SAAAC,WAAkBZ,OAAY,EAAE;MAAA,IAAAa,MAAA;MAC9B,OAAOC,QAAA,CAAApC,OAAA,CAAQqC,OAAO,CAAC,CAAC,CAACC,IAAI,CAAC,YAAM;QAAA,IAAAC,cAAA,EAAAC,cAAA;QAClC;QACA,IAAMC,OAAO,GAAGN,MAAI,CAACO,KAAK,CAACC,QAAQ,CAACC,iBAAiB,CAACC,QAAQ,CAC5D,eAAe,EACfvB,OAAO,CAACwB,aACV,CAAC;QACD,IAAMC,WAAW,GAAG;UAClBC,WAAW,EAAEC,eAAI,CAACC,UAAU,CAACC,EAAE;UAC/BC,OAAO,EAAEH,eAAI,CAACI,YAAY;UAC1BC,GAAG,EAAEhC,OAAO,CAACgC;QACf,CAAC;QAEDC,oBAAW,CAACC,MAAM,CAACC,GAAG,uDAAAC,MAAA,CAAuDpC,OAAO,CAACgC,GAAG,CAAE,CAAC;QAE3F,OAAOnB,MAAI,CAACR,WAAW,CACpBgC,QAAQ,CAAC;UACRZ,WAAW,EAAXA,WAAW;UACXa,YAAY,EAAEnB,OAAO,CAACoB,OAAO;UAC7BC,OAAO,EAAExC,OAAO,CAACwC,OAAO;UACxBC,UAAU,GAAAxB,cAAA,GAAEE,OAAO,CAACuB,KAAK,cAAAzB,cAAA,uBAAbA,cAAA,CAAe0B,cAAc,CAAC,CAAC;UAC3CC,UAAU,GAAA1B,cAAA,GAAEC,OAAO,CAAC0B,KAAK,cAAA3B,cAAA,uBAAbA,cAAA,CAAeyB,cAAc,CAAC,CAAC;UAC3CG,SAAS,EAAE3B,OAAO,CAAC4B,EAAE;UACrBC,iBAAiB,EAAE7B,OAAO,CAAC6B;QAC7B,CAAC,CAAC,CACDhC,IAAI,CAAC,YAAM;UACViB,oBAAW,CAACC,MAAM,CAACC,GAAG,oDAAAC,MAAA,CAAoDpC,OAAO,CAACgC,GAAG,CAAE,CAAC;QAC1F,CAAC,CAAC;MACN,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAAtB,GAAA;IAAAC,KAAA,EAQA,SAAAsC,eAAsBjD,OAAY,EAAE;MAAA,IAAAkD,eAAA,EAAAC,eAAA;MAClC;MACA,IAAMhC,OAAO,GAAG,IAAI,CAACC,KAAK,CAACC,QAAQ,CAACC,iBAAiB,CAACC,QAAQ,CAC5D,eAAe,EACfvB,OAAO,CAACwB,aACV,CAAC;MACD,IAAMC,WAAW,GAAG;QAClBC,WAAW,EAAEC,eAAI,CAACC,UAAU,CAACwB,MAAM;QACnCC,IAAI,EAAE,CAACrD,OAAO,CAACsD,GAAG,CAAC;QACnBxB,OAAO,EAAEH,eAAI,CAACI,YAAY;QAC1BC,GAAG,EAAEhC,OAAO,CAACgC;MACf,CAAC;MAED,OAAO,IAAI,CAAC3B,WAAW,CAACgC,QAAQ,CAAC;QAC/BZ,WAAW,EAAXA,WAAW;QACXa,YAAY,EAAEnB,OAAO,CAACoB,OAAO;QAC7BC,OAAO,EAAExC,OAAO,CAACwC,OAAO;QACxBM,SAAS,EAAE3B,OAAO,CAAC4B,EAAE;QACrBN,UAAU,GAAAS,eAAA,GAAE/B,OAAO,CAACuB,KAAK,cAAAQ,eAAA,uBAAbA,eAAA,CAAeP,cAAc,CAAC,CAAC;QAC3CC,UAAU,GAAAO,eAAA,GAAEhC,OAAO,CAAC0B,KAAK,cAAAM,eAAA,uBAAbA,eAAA,CAAeR,cAAc,CAAC,CAAC;QAC3CK,iBAAiB,EAAE7B,OAAO,CAAC6B;MAC7B,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAtC,GAAA;IAAAC,KAAA,EAMA,SAAA4C,cAAcvD,OAAO,EAAE;MAAA,IAAAwD,eAAA,EAAAC,eAAA;MACrB;MACA,IAAMtC,OAAO,GAAG,IAAI,CAACC,KAAK,CAACC,QAAQ,CAACC,iBAAiB,CAACC,QAAQ,CAC5D,eAAe,EACfvB,OAAO,CAACwB,aACV,CAAC;MACD,IAAMC,WAAW,GAAG;QAClBC,WAAW,EAAEC,eAAI,CAACC,UAAU,CAAC8B,KAAK;QAClC5B,OAAO,EAAEH,eAAI,CAACI,YAAY;QAC1B4B,SAAS,EAAE3D,OAAO,CAAC2D,SAAS;QAC5B3B,GAAG,EAAEhC,OAAO,CAACgC;MACf,CAAC;MAED,OAAO,IAAI,CAAC3B,WAAW,CACpBgC,QAAQ,CAAC;QACRZ,WAAW,EAAXA,WAAW;QACXa,YAAY,EAAEnB,OAAO,CAACoB,OAAO;QAC7BC,OAAO,EAAExC,OAAO,CAACwC,OAAO;QACxBC,UAAU,GAAAe,eAAA,GAAErC,OAAO,CAACuB,KAAK,cAAAc,eAAA,uBAAbA,eAAA,CAAeb,cAAc,CAAC,CAAC;QAC3CC,UAAU,GAAAa,eAAA,GAAEtC,OAAO,CAAC0B,KAAK,cAAAY,eAAA,uBAAbA,eAAA,CAAed,cAAc,CAAC,CAAC;QAC3CG,SAAS,EAAE3B,OAAO,CAAC4B,EAAE;QACrBC,iBAAiB,EAAE7B,OAAO,CAAC6B;MAC7B,CAAC,CAAC,CACDhC,IAAI,CAAC,YAAM;QACViB,oBAAW,CAACC,MAAM,CAACC,GAAG,0DAAAC,MAAA,CACqCpC,OAAO,CAACgC,GAAG,CACtE,CAAC;MACH,CAAC,CAAC;IACN;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAtB,GAAA;IAAAC,KAAA,EAMA,SAAAiD,qBAAqB5D,OAAY,EAAE;MACjC,IAAOmB,OAAO,GAA0BnB,OAAO,CAAxCmB,OAAO;QAAEa,GAAG,GAAqBhC,OAAO,CAA/BgC,GAAG;QAAEsB,GAAG,GAAgBtD,OAAO,CAA1BsD,GAAG;QAAEO,UAAU,GAAI7D,OAAO,CAArB6D,UAAU;MACpC,IAAMpC,WAAW,GAAG;QAClBC,WAAW,EAAEC,eAAI,CAACC,UAAU,CAACkC,KAAK;QAClCT,IAAI,EAAE,CAACC,GAAG,CAAC;QACXxB,OAAO,EAAEH,eAAI,CAACI,YAAY;QAC1BC,GAAG,EAAHA,GAAG;QACH6B,UAAU,EAAVA,UAAU;QACVE,OAAO,EAAE,CAAC,6BAA6B,EAAE,mBAAmB;MAC9D,CAAC;;MAED;MACA;MACA;MACA,IAAMC,gBAAgB,GAAG,KAAK;MAE9B,OAAO,IAAI,CAAC3D,WAAW,CACpBgC,QAAQ,CAAC;QACRZ,WAAW,EAAXA,WAAW;QACXa,YAAY,EAAEnB,OAAO,CAACoB,OAAO;QAC7BC,OAAO,EAAEwB,gBAAgB,GAAG,EAAE,GAAG7C,OAAO,CAACqB,OAAO;QAChDM,SAAS,EAAE3B,OAAO,CAAC4B,EAAE;QACrBkB,iBAAiB,EAAE,CAAC9C,OAAO,CAAC+C,aAAa;QACzClB,iBAAiB,EAAE7B,OAAO,CAAC6B,iBAAiB;QAC5CmB,SAAS,EAAEC,aAAW,CAACC,YAAY,CAAClD,OAAO,CAACC,KAAK;MACnD,CAAC,CAAC,CACDJ,IAAI,CAAC,UAAAsD,IAAA,EAA+B;QAAA,IAAAC,kBAAA;QAAA,IAA7BC,KAAK,GAAAF,IAAA,CAALE,KAAK;UAAEC,gBAAgB,GAAAH,IAAA,CAAhBG,gBAAgB;QAC7B,IAAIA,gBAAgB,EAAE;UACpBtD,OAAO,CAACuD,sBAAsB,CAACD,gBAAgB,CAAC;QAClD;QAEA,IAAIE,UAAU;QAEd,IAAIF,gBAAgB,aAAhBA,gBAAgB,gBAAAF,kBAAA,GAAhBE,gBAAgB,CAAG,CAAC,CAAC,cAAAF,kBAAA,eAArBA,kBAAA,CAAuBK,SAAS,EAAE;UACpC,IAAMA,SAAS,GAAGC,IAAI,CAACC,KAAK,CAACL,gBAAgB,CAAC,CAAC,CAAC,CAACG,SAAS,CAAC;UAE3D,IAAIA,SAAS,CAACnD,WAAW,EAAE;YACzB,IAAAsD,qBAAA,GAOIH,SAAS,CAACnD,WAAW;cANlBuD,SAAS,GAAAD,qBAAA,CAAd/C,GAAG;cACHN,WAAW,GAAAqD,qBAAA,CAAXrD,WAAW;cACX2B,IAAI,GAAA0B,qBAAA,CAAJ1B,IAAI;cACJM,SAAS,GAAAoB,qBAAA,CAATpB,SAAS;cACTsB,UAAU,GAAAF,qBAAA,CAAVE,UAAU;cACVlB,OAAO,GAAAgB,qBAAA,CAAPhB,OAAO;YAGTY,UAAU,GAAG;cACX3C,GAAG,EAAEgD,SAAS;cACdtD,WAAW,EAAXA,WAAW;cACX4B,GAAG,EAAED,IAAI,CAAC,CAAC,CAAC;cACZM,SAAS,EAATA,SAAS;cACTsB,UAAU,EAAVA,UAAU;cACVlB,OAAO,EAAPA;YACF,CAAC;UACH;QACF;QAEA,IAAI,CAACY,UAAU,EAAE;UACfO,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACC,0BAA0B,EAAE;YAC1E7D,aAAa,EAAEL,OAAO,CAACK,aAAa;YACpCE,WAAW,EAAE,QAAQ;YACrBwC,aAAa,EAAE/C,OAAO,CAAC+C;UACzB,CAAC,CAAC;QACJ;QAEA,OAAO;UAACM,KAAK,EAALA,KAAK;UAAEG,UAAU,EAAVA;QAAU,CAAC;MAC5B,CAAC,CAAC;IACN;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAVE;IAAAjE,GAAA;IAAAC,KAAA,EAWA,SAAA2E,gBAAgBnE,OAAgB,EAAEoE,cAAuB,EAAEC,QAAkB,EAAE;MAC7E,OAAO,IAAI,CAACjF,aAAa,CAAC+E,eAAe,CAACnE,OAAO,EAAEoE,cAAc,EAAEC,QAAQ,CAAC;IAC9E;EAAC;EAAA,OAAA9F,IAAA;AAAA,EA3O+B+F,+BAAoB"}
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","_this4","reconnect","isSkipped","isTurnDiscoverySkipped","_meeting$audio4","_meeting$video4","sendEmptyMediaId","_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 return this.turnDiscovery\n .isSkipped(meeting)\n .then((isTurnDiscoverySkipped) => {\n const sendEmptyMediaId = reconnect && isTurnDiscoverySkipped;\n\n return this.roapRequest.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 })\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;IAoRF;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;IAvUCzC,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,MAAA;MACjC,IAAOvF,OAAO,GAAeP,OAAO,CAA7BO,OAAO;QAAEwF,SAAS,GAAI/F,OAAO,CAApB+F,SAAS;MACzB,IAAMvF,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,OAAO,IAAI,CAACyB,aAAa,CACtB4C,SAAS,CAACzF,OAAO,CAAC,CAClBkC,IAAI,CAAC,UAACwD,sBAAsB,EAAK;QAAA,IAAAC,eAAA,EAAAC,eAAA;QAChC,IAAMC,gBAAgB,GAAGL,SAAS,IAAIE,sBAAsB;QAE5D,OAAOH,MAAI,CAAC9D,WAAW,CAAC+C,QAAQ,CAAC;UAC/BvE,WAAW,EAAXA,WAAW;UACXmB,aAAa,EAAEpB,OAAO,CAACoB,aAAa;UACpCqD,YAAY,EAAEzE,OAAO,CAAC0E,OAAO;UAC7BC,OAAO,EAAEkB,gBAAgB,GAAG,EAAE,GAAG7F,OAAO,CAAC2E,OAAO;UAChDhD,UAAU,GAAAgE,eAAA,GAAE3F,OAAO,CAAC4B,KAAK,cAAA+D,eAAA,uBAAbA,eAAA,CAAe9D,cAAc,EAAE;UAC3CC,UAAU,GAAA8D,eAAA,GAAE5F,OAAO,CAAC+B,KAAK,cAAA6D,eAAA,uBAAbA,eAAA,CAAe/D,cAAc,EAAE;UAC3C+C,SAAS,EAAE5E,OAAO,CAAC6E;QACrB,CAAC,CAAC;MACJ,CAAC,CAAC,CAED3C,IAAI,CAAC,UAAA4D,IAAA,EAA+B;QAAA,IAA7B3D,KAAK,GAAA2D,IAAA,CAAL3D,KAAK;UAAE4D,gBAAgB,GAAAD,IAAA,CAAhBC,gBAAgB;QAC7BR,MAAI,CAACxE,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,IAAIqF,gBAAgB,EAAE;UACpB/F,OAAO,CAACgG,sBAAsB,CAACD,gBAAgB,CAAC;QAClD;;QAEA;QACA;QACA,OAAO5D,KAAK;QACZ;QACA;MACF,CAAC,CAAC;IACN;EAAC;IAAAa,GAAA;IAAAC,KAAA;IA6DD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;IACE,SAAAP,aAAqBtB,aAAqB,EAAE6E,UAAkB,EAAE;MAC9DC,mBAAc,CAACC,uBAAuB,CAAC/E,aAAa,EAAE6E,UAAU,CAAC;MACjE;MACA,IAAMjG,OAAO,GAAG,IAAI,CAACmE,KAAK,CAACC,QAAQ,CAACC,iBAAiB,CAACC,QAAQ,CAAC,eAAe,EAAElD,aAAa,CAAC;MAE9FpB,OAAO,CAACoG,oBAAoB,EAAE;MAC9B,IAAI,CAACF,mBAAc,CAACG,MAAM,CAACjF,aAAa,CAAC,EAAE;QACzCpB,OAAO,CAACsG,4BAA4B,EAAE;MACxC;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EATE;IAAAtD,GAAA;IAAAC,KAAA,EAUA,SAAAsD,gBAAgBvG,OAAgB,EAAEwG,cAAuB,EAAE;MACzD,OAAO,IAAI,CAAC3D,aAAa,CAAC0D,eAAe,CAACvG,OAAO,EAAEwG,cAAc,CAAC;IACpE;EAAC;EAAA,OAAApH,IAAA;AAAA,EA7X+BqH,+BAAoB;AAAAC,OAAA,CAAAtI,OAAA,GAAAgB,IAAA"}
@@ -1,19 +1,15 @@
1
1
  import { StatelessWebexPlugin } from '@webex/webex-core';
2
- import { IP_VERSION } from '../constants';
3
- import { LocusMediaRequest } from '../meeting/locusMediaRequest';
4
2
  /**
5
3
  * @class RoapRequest
6
4
  */
7
5
  export default class RoapRequest extends StatelessWebexPlugin {
8
6
  /**
9
- * Returns reachability data.
10
- * @param {Object} localSdp
11
- * @returns {Object}
7
+ * Joins a meeting via ROAP
8
+ * @param {Object} options
9
+ * @returns {Promise} returns a promise that resolves/rejects whatever the request does
12
10
  */
13
- attachReachabilityData(localSdp: any): Promise<{
14
- localSdp: any;
15
- joinCookie: any;
16
- }>;
11
+ attachRechabilityData(localSdp: any): any;
12
+ joinMeetingWithRoap(options: any): Promise<any>;
17
13
  /**
18
14
  * Sends a ROAP message
19
15
  * @param {Object} options
@@ -21,21 +17,19 @@ export default class RoapRequest extends StatelessWebexPlugin {
21
17
  * @param {String} options.locusSelfUrl
22
18
  * @param {String} options.mediaId
23
19
  * @param {String} options.correlationId
20
+ * @param {Boolean} options.audioMuted
21
+ * @param {Boolean} options.videoMuted
24
22
  * @param {String} options.meetingId
25
- * @param {IP_VERSION} options.ipVersion only required for offers
26
23
  * @returns {Promise} returns the response/failure of the request
27
24
  */
28
25
  sendRoap(options: {
29
26
  roapMessage: any;
30
27
  locusSelfUrl: string;
31
28
  mediaId: string;
29
+ correlationId: string;
30
+ audioMuted: boolean;
31
+ videoMuted: boolean;
32
32
  meetingId: string;
33
- ipVersion?: IP_VERSION;
34
- locusMediaRequest?: LocusMediaRequest;
35
- audioMuted?: boolean;
36
- videoMuted?: boolean;
37
- }): Promise<{
38
- mediaConnections: any;
39
- locus: any;
40
- }>;
33
+ preferTranscoding?: boolean;
34
+ }): any;
41
35
  }