@webex/plugin-meetings 2.59.3-next.1 → 2.59.4-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 (420) hide show
  1. package/.eslintrc.js +6 -6
  2. package/LICENSE +1 -1
  3. package/README.md +1204 -1204
  4. package/UPGRADING.md +287 -287
  5. package/babel.config.js +3 -3
  6. package/browsers.js +108 -108
  7. package/dist/common/browser-detection.js +2 -2
  8. package/dist/common/browser-detection.js.map +1 -1
  9. package/dist/common/collection.js +45 -45
  10. package/dist/common/collection.js.map +1 -1
  11. package/dist/common/config.js.map +1 -1
  12. package/dist/common/errors/captcha-error.js +7 -7
  13. package/dist/common/errors/captcha-error.js.map +1 -1
  14. package/dist/common/errors/intent-to-join.js +7 -7
  15. package/dist/common/errors/intent-to-join.js.map +1 -1
  16. package/dist/common/errors/join-meeting.js +8 -8
  17. package/dist/common/errors/join-meeting.js.map +1 -1
  18. package/dist/common/errors/media.js +7 -7
  19. package/dist/common/errors/media.js.map +1 -1
  20. package/dist/common/errors/parameter.js +7 -7
  21. package/dist/common/errors/parameter.js.map +1 -1
  22. package/dist/common/errors/password-error.js +7 -7
  23. package/dist/common/errors/password-error.js.map +1 -1
  24. package/dist/common/errors/permission.js +6 -6
  25. package/dist/common/errors/permission.js.map +1 -1
  26. package/dist/common/errors/reconnection-in-progress.js +6 -6
  27. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  28. package/dist/common/errors/reconnection.js +7 -7
  29. package/dist/common/errors/reconnection.js.map +1 -1
  30. package/dist/common/errors/stats.js +7 -7
  31. package/dist/common/errors/stats.js.map +1 -1
  32. package/dist/common/errors/webex-errors.js +42 -42
  33. package/dist/common/errors/webex-errors.js.map +1 -1
  34. package/dist/common/errors/webex-meetings-error.js +12 -12
  35. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  36. package/dist/common/events/events-scope.js +10 -10
  37. package/dist/common/events/events-scope.js.map +1 -1
  38. package/dist/common/events/events.js +4 -4
  39. package/dist/common/events/events.js.map +1 -1
  40. package/dist/common/events/trigger-proxy.js.map +1 -1
  41. package/dist/common/events/util.js.map +1 -1
  42. package/dist/common/logs/logger-config.js.map +1 -1
  43. package/dist/common/logs/logger-proxy.js.map +1 -1
  44. package/dist/common/logs/request.js +18 -18
  45. package/dist/common/logs/request.js.map +1 -1
  46. package/dist/common/queue.js +18 -18
  47. package/dist/common/queue.js.map +1 -1
  48. package/dist/config.js.map +1 -1
  49. package/dist/constants.js +9 -9
  50. package/dist/constants.js.map +1 -1
  51. package/dist/controls-options-manager/constants.js.map +1 -1
  52. package/dist/controls-options-manager/enums.js.map +1 -1
  53. package/dist/controls-options-manager/index.js +83 -83
  54. package/dist/controls-options-manager/index.js.map +1 -1
  55. package/dist/controls-options-manager/util.js.map +1 -1
  56. package/dist/index.js.map +1 -1
  57. package/dist/locus-info/controlsUtils.js +27 -27
  58. package/dist/locus-info/controlsUtils.js.map +1 -1
  59. package/dist/locus-info/embeddedAppsUtils.js +14 -14
  60. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  61. package/dist/locus-info/fullState.js.map +1 -1
  62. package/dist/locus-info/hostUtils.js +19 -19
  63. package/dist/locus-info/hostUtils.js.map +1 -1
  64. package/dist/locus-info/index.js +198 -198
  65. package/dist/locus-info/index.js.map +1 -1
  66. package/dist/locus-info/infoUtils.js.map +1 -1
  67. package/dist/locus-info/mediaSharesUtils.js +50 -50
  68. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  69. package/dist/locus-info/parser.js +138 -138
  70. package/dist/locus-info/parser.js.map +1 -1
  71. package/dist/locus-info/selfUtils.js +52 -52
  72. package/dist/locus-info/selfUtils.js.map +1 -1
  73. package/dist/media/index.js +145 -145
  74. package/dist/media/index.js.map +1 -1
  75. package/dist/media/properties.js +49 -49
  76. package/dist/media/properties.js.map +1 -1
  77. package/dist/media/util.js.map +1 -1
  78. package/dist/mediaQualityMetrics/config.js.map +1 -1
  79. package/dist/meeting/effectsState.js +24 -24
  80. package/dist/meeting/effectsState.js.map +1 -1
  81. package/dist/meeting/in-meeting-actions.js +11 -11
  82. package/dist/meeting/in-meeting-actions.js.map +1 -1
  83. package/dist/meeting/index.js +1505 -1508
  84. package/dist/meeting/index.js.map +1 -1
  85. package/dist/meeting/muteState.js +85 -85
  86. package/dist/meeting/muteState.js.map +1 -1
  87. package/dist/meeting/request.js +143 -143
  88. package/dist/meeting/request.js.map +1 -1
  89. package/dist/meeting/state.js +30 -30
  90. package/dist/meeting/state.js.map +1 -1
  91. package/dist/meeting/util.js +4 -4
  92. package/dist/meeting/util.js.map +1 -1
  93. package/dist/meeting-info/collection.js +13 -13
  94. package/dist/meeting-info/collection.js.map +1 -1
  95. package/dist/meeting-info/index.js +50 -50
  96. package/dist/meeting-info/index.js.map +1 -1
  97. package/dist/meeting-info/meeting-info-v2.js +52 -52
  98. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  99. package/dist/meeting-info/request.js +14 -14
  100. package/dist/meeting-info/request.js.map +1 -1
  101. package/dist/meeting-info/util.js +9 -9
  102. package/dist/meeting-info/util.js.map +1 -1
  103. package/dist/meeting-info/utilv2.js +20 -20
  104. package/dist/meeting-info/utilv2.js.map +1 -1
  105. package/dist/meetings/collection.js +16 -16
  106. package/dist/meetings/collection.js.map +1 -1
  107. package/dist/meetings/index.js +259 -259
  108. package/dist/meetings/index.js.map +1 -1
  109. package/dist/meetings/request.js +15 -15
  110. package/dist/meetings/request.js.map +1 -1
  111. package/dist/meetings/util.js +29 -29
  112. package/dist/meetings/util.js.map +1 -1
  113. package/dist/member/index.js +214 -214
  114. package/dist/member/index.js.map +1 -1
  115. package/dist/member/member.types.js.map +1 -1
  116. package/dist/member/util.js +60 -60
  117. package/dist/member/util.js.map +1 -1
  118. package/dist/members/collection.js +11 -11
  119. package/dist/members/collection.js.map +1 -1
  120. package/dist/members/index.js +277 -277
  121. package/dist/members/index.js.map +1 -1
  122. package/dist/members/request.js +27 -27
  123. package/dist/members/request.js.map +1 -1
  124. package/dist/members/util.js +21 -21
  125. package/dist/members/util.js.map +1 -1
  126. package/dist/metrics/config.js.map +1 -1
  127. package/dist/metrics/constants.js.map +1 -1
  128. package/dist/metrics/index.js +92 -92
  129. package/dist/metrics/index.js.map +1 -1
  130. package/dist/networkQualityMonitor/index.js +65 -65
  131. package/dist/networkQualityMonitor/index.js.map +1 -1
  132. package/dist/peer-connection-manager/index.js +87 -87
  133. package/dist/peer-connection-manager/index.js.map +1 -1
  134. package/dist/peer-connection-manager/util.js +9 -9
  135. package/dist/peer-connection-manager/util.js.map +1 -1
  136. package/dist/personal-meeting-room/index.js +67 -67
  137. package/dist/personal-meeting-room/index.js.map +1 -1
  138. package/dist/personal-meeting-room/request.js +7 -7
  139. package/dist/personal-meeting-room/request.js.map +1 -1
  140. package/dist/personal-meeting-room/util.js.map +1 -1
  141. package/dist/reachability/index.js +119 -112
  142. package/dist/reachability/index.js.map +1 -1
  143. package/dist/reachability/request.js +15 -15
  144. package/dist/reachability/request.js.map +1 -1
  145. package/dist/reactions/reactions.js.map +1 -1
  146. package/dist/reactions/reactions.type.js.map +1 -1
  147. package/dist/reconnection-manager/index.js +112 -112
  148. package/dist/reconnection-manager/index.js.map +1 -1
  149. package/dist/recording-controller/enums.js.map +1 -1
  150. package/dist/recording-controller/index.js +127 -127
  151. package/dist/recording-controller/index.js.map +1 -1
  152. package/dist/recording-controller/util.js.map +1 -1
  153. package/dist/roap/collection.js.map +1 -1
  154. package/dist/roap/handler.js +27 -27
  155. package/dist/roap/handler.js.map +1 -1
  156. package/dist/roap/index.js +111 -111
  157. package/dist/roap/index.js.map +1 -1
  158. package/dist/roap/request.js +17 -17
  159. package/dist/roap/request.js.map +1 -1
  160. package/dist/roap/state.js +14 -14
  161. package/dist/roap/state.js.map +1 -1
  162. package/dist/roap/turnDiscovery.js +46 -46
  163. package/dist/roap/turnDiscovery.js.map +1 -1
  164. package/dist/roap/util.js.map +1 -1
  165. package/dist/statsAnalyzer/global.js.map +1 -1
  166. package/dist/statsAnalyzer/index.js +130 -130
  167. package/dist/statsAnalyzer/index.js.map +1 -1
  168. package/dist/statsAnalyzer/mqaUtil.js +15 -15
  169. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  170. package/dist/transcription/index.js +42 -42
  171. package/dist/transcription/index.js.map +1 -1
  172. package/internal-README.md +172 -172
  173. package/jest.config.js +3 -3
  174. package/package.json +15 -15
  175. package/process +1 -1
  176. package/src/common/browser-detection.ts +39 -39
  177. package/src/common/collection.ts +94 -94
  178. package/src/common/config.ts +9 -9
  179. package/src/common/errors/captcha-error.ts +25 -25
  180. package/src/common/errors/intent-to-join.ts +27 -27
  181. package/src/common/errors/join-meeting.ts +32 -32
  182. package/src/common/errors/media.ts +25 -25
  183. package/src/common/errors/parameter.ts +33 -33
  184. package/src/common/errors/password-error.ts +25 -25
  185. package/src/common/errors/permission.ts +24 -24
  186. package/src/common/errors/reconnection-in-progress.ts +8 -8
  187. package/src/common/errors/reconnection.ts +25 -25
  188. package/src/common/errors/stats.ts +25 -25
  189. package/src/common/errors/webex-errors.ts +140 -140
  190. package/src/common/errors/webex-meetings-error.ts +35 -35
  191. package/src/common/events/events-scope.ts +30 -30
  192. package/src/common/events/events.ts +25 -25
  193. package/src/common/events/trigger-proxy.ts +25 -25
  194. package/src/common/events/util.ts +39 -39
  195. package/src/common/logs/logger-config.ts +8 -8
  196. package/src/common/logs/logger-proxy.ts +44 -44
  197. package/src/common/logs/request.ts +65 -65
  198. package/src/common/queue.ts +50 -50
  199. package/src/config.ts +96 -96
  200. package/src/constants.ts +1121 -1121
  201. package/src/controls-options-manager/constants.ts +5 -5
  202. package/src/controls-options-manager/enums.ts +6 -6
  203. package/src/controls-options-manager/index.ts +183 -183
  204. package/src/controls-options-manager/util.ts +20 -20
  205. package/src/index.js +15 -15
  206. package/src/locus-info/controlsUtils.ts +112 -112
  207. package/src/locus-info/embeddedAppsUtils.ts +57 -57
  208. package/src/locus-info/fullState.ts +69 -69
  209. package/src/locus-info/hostUtils.ts +60 -60
  210. package/src/locus-info/index.ts +1303 -1303
  211. package/src/locus-info/infoUtils.ts +101 -101
  212. package/src/locus-info/mediaSharesUtils.ts +173 -173
  213. package/src/locus-info/parser.ts +680 -680
  214. package/src/locus-info/selfUtils.ts +428 -428
  215. package/src/media/index.ts +675 -675
  216. package/src/media/properties.ts +313 -313
  217. package/src/media/util.ts +37 -37
  218. package/src/mediaQualityMetrics/config.ts +382 -382
  219. package/src/meeting/effectsState.ts +209 -209
  220. package/src/meeting/in-meeting-actions.ts +153 -153
  221. package/src/meeting/index.ts +6537 -6537
  222. package/src/meeting/muteState.ts +365 -365
  223. package/src/meeting/request.ts +810 -810
  224. package/src/meeting/state.ts +194 -194
  225. package/src/meeting/util.ts +530 -530
  226. package/src/meeting-info/collection.ts +41 -41
  227. package/src/meeting-info/index.ts +137 -137
  228. package/src/meeting-info/meeting-info-v2.ts +273 -273
  229. package/src/meeting-info/request.ts +46 -46
  230. package/src/meeting-info/util.ts +314 -314
  231. package/src/meeting-info/utilv2.ts +324 -324
  232. package/src/meetings/collection.ts +43 -43
  233. package/src/meetings/index.ts +1128 -1128
  234. package/src/meetings/request.ts +81 -81
  235. package/src/meetings/util.ts +181 -181
  236. package/src/member/index.ts +446 -446
  237. package/src/member/member.types.ts +13 -13
  238. package/src/member/util.ts +286 -286
  239. package/src/members/collection.ts +40 -40
  240. package/src/members/index.ts +900 -900
  241. package/src/members/request.ts +175 -175
  242. package/src/members/util.ts +260 -260
  243. package/src/metrics/config.ts +485 -485
  244. package/src/metrics/constants.ts +61 -61
  245. package/src/metrics/index.ts +543 -543
  246. package/src/networkQualityMonitor/index.ts +211 -211
  247. package/src/peer-connection-manager/index.ts +847 -847
  248. package/src/peer-connection-manager/util.ts +119 -119
  249. package/src/personal-meeting-room/index.ts +157 -157
  250. package/src/personal-meeting-room/request.ts +48 -48
  251. package/src/personal-meeting-room/util.ts +49 -49
  252. package/src/reachability/index.ts +478 -478
  253. package/src/reachability/request.ts +81 -81
  254. package/src/reactions/reactions.ts +104 -104
  255. package/src/reactions/reactions.type.ts +36 -36
  256. package/src/reconnection-manager/index.ts +622 -622
  257. package/src/recording-controller/enums.ts +8 -8
  258. package/src/recording-controller/index.ts +315 -315
  259. package/src/recording-controller/util.ts +58 -58
  260. package/src/roap/collection.ts +62 -62
  261. package/src/roap/handler.ts +294 -294
  262. package/src/roap/index.ts +413 -413
  263. package/src/roap/request.ts +229 -229
  264. package/src/roap/state.ts +156 -156
  265. package/src/roap/turnDiscovery.ts +283 -283
  266. package/src/roap/util.ts +100 -100
  267. package/src/statsAnalyzer/global.ts +128 -128
  268. package/src/statsAnalyzer/index.ts +1266 -1266
  269. package/src/statsAnalyzer/mqaUtil.ts +290 -290
  270. package/src/transcription/index.ts +154 -154
  271. package/test/integration/spec/journey.js +941 -941
  272. package/test/integration/spec/space-meeting.js +457 -457
  273. package/test/integration/spec/transcription.js +55 -55
  274. package/test/unit/spec/common/browser-detection.js +119 -119
  275. package/test/unit/spec/common/queue.js +69 -69
  276. package/test/unit/spec/controls-options-manager/index.js +123 -123
  277. package/test/unit/spec/controls-options-manager/util.js +65 -65
  278. package/test/unit/spec/fixture/locus.js +406 -406
  279. package/test/unit/spec/locus-info/controlsUtils.js +82 -82
  280. package/test/unit/spec/locus-info/embeddedAppsUtils.js +104 -104
  281. package/test/unit/spec/locus-info/index.js +1272 -1272
  282. package/test/unit/spec/locus-info/infoUtils.js +138 -138
  283. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +975 -975
  284. package/test/unit/spec/locus-info/lib/SeqCmp.json +522 -522
  285. package/test/unit/spec/locus-info/lib/selfConstant.js +286 -286
  286. package/test/unit/spec/locus-info/parser.js +298 -298
  287. package/test/unit/spec/locus-info/selfUtils.js +185 -185
  288. package/test/unit/spec/media/properties.ts +305 -305
  289. package/test/unit/spec/meeting/effectsState.js +281 -281
  290. package/test/unit/spec/meeting/in-meeting-actions.ts +90 -90
  291. package/test/unit/spec/meeting/index.js +5227 -5227
  292. package/test/unit/spec/meeting/muteState.js +430 -430
  293. package/test/unit/spec/meeting/request.js +317 -317
  294. package/test/unit/spec/meeting/utils.js +319 -319
  295. package/test/unit/spec/meeting-info/meetinginfov2.js +376 -376
  296. package/test/unit/spec/meeting-info/request.js +64 -64
  297. package/test/unit/spec/meeting-info/util.js +37 -37
  298. package/test/unit/spec/meeting-info/utilv2.js +330 -330
  299. package/test/unit/spec/meetings/collection.js +52 -52
  300. package/test/unit/spec/meetings/index.js +1375 -1375
  301. package/test/unit/spec/meetings/utils.js +66 -66
  302. package/test/unit/spec/member/index.js +47 -47
  303. package/test/unit/spec/member/util.js +80 -80
  304. package/test/unit/spec/members/index.js +364 -364
  305. package/test/unit/spec/members/request.js +200 -200
  306. package/test/unit/spec/members/utils.js +42 -42
  307. package/test/unit/spec/metrics/index.js +111 -111
  308. package/test/unit/spec/networkQualityMonitor/index.js +99 -99
  309. package/test/unit/spec/peerconnection-manager/index.js +218 -218
  310. package/test/unit/spec/peerconnection-manager/utils.js +49 -49
  311. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -388
  312. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +29 -29
  313. package/test/unit/spec/reachability/index.ts +50 -50
  314. package/test/unit/spec/reconnection-manager/index.js +206 -206
  315. package/test/unit/spec/recording-controller/index.js +230 -230
  316. package/test/unit/spec/recording-controller/util.js +101 -101
  317. package/test/unit/spec/roap/index.ts +128 -128
  318. package/test/unit/spec/roap/turnDiscovery.ts +372 -372
  319. package/test/unit/spec/roap/util.js +30 -30
  320. package/test/unit/spec/stats-analyzer/index.js +287 -287
  321. package/test/utils/cmr.js +104 -104
  322. package/test/utils/testUtils.js +287 -287
  323. package/test/utils/webex-config.js +77 -77
  324. package/test/utils/webex-test-users.js +82 -82
  325. package/tsconfig.json +5 -5
  326. package/dist/common/browser-detection.d.ts +0 -9
  327. package/dist/common/collection.d.ts +0 -48
  328. package/dist/common/config.d.ts +0 -2
  329. package/dist/common/errors/captcha-error.d.ts +0 -15
  330. package/dist/common/errors/intent-to-join.d.ts +0 -16
  331. package/dist/common/errors/join-meeting.d.ts +0 -17
  332. package/dist/common/errors/media.d.ts +0 -15
  333. package/dist/common/errors/parameter.d.ts +0 -15
  334. package/dist/common/errors/password-error.d.ts +0 -15
  335. package/dist/common/errors/permission.d.ts +0 -14
  336. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  337. package/dist/common/errors/reconnection.d.ts +0 -15
  338. package/dist/common/errors/stats.d.ts +0 -15
  339. package/dist/common/errors/webex-errors.d.ts +0 -81
  340. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  341. package/dist/common/events/events-scope.d.ts +0 -17
  342. package/dist/common/events/events.d.ts +0 -12
  343. package/dist/common/events/trigger-proxy.d.ts +0 -2
  344. package/dist/common/events/util.d.ts +0 -2
  345. package/dist/common/logs/logger-config.d.ts +0 -2
  346. package/dist/common/logs/logger-proxy.d.ts +0 -2
  347. package/dist/common/logs/request.d.ts +0 -34
  348. package/dist/common/queue.d.ts +0 -32
  349. package/dist/config.d.ts +0 -73
  350. package/dist/constants.d.ts +0 -924
  351. package/dist/controls-options-manager/constants.d.ts +0 -4
  352. package/dist/controls-options-manager/enums.d.ts +0 -5
  353. package/dist/controls-options-manager/index.d.ts +0 -120
  354. package/dist/controls-options-manager/util.d.ts +0 -7
  355. package/dist/index.d.ts +0 -4
  356. package/dist/locus-info/controlsUtils.d.ts +0 -2
  357. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  358. package/dist/locus-info/fullState.d.ts +0 -2
  359. package/dist/locus-info/hostUtils.d.ts +0 -2
  360. package/dist/locus-info/index.d.ts +0 -269
  361. package/dist/locus-info/infoUtils.d.ts +0 -2
  362. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  363. package/dist/locus-info/parser.d.ts +0 -212
  364. package/dist/locus-info/selfUtils.d.ts +0 -2
  365. package/dist/media/index.d.ts +0 -32
  366. package/dist/media/properties.d.ts +0 -108
  367. package/dist/media/util.d.ts +0 -2
  368. package/dist/mediaQualityMetrics/config.d.ts +0 -233
  369. package/dist/meeting/effectsState.d.ts +0 -42
  370. package/dist/meeting/in-meeting-actions.d.ts +0 -79
  371. package/dist/meeting/index.d.ts +0 -1621
  372. package/dist/meeting/muteState.d.ts +0 -116
  373. package/dist/meeting/request.d.ts +0 -255
  374. package/dist/meeting/state.d.ts +0 -9
  375. package/dist/meeting/util.d.ts +0 -2
  376. package/dist/meeting-info/collection.d.ts +0 -20
  377. package/dist/meeting-info/index.d.ts +0 -57
  378. package/dist/meeting-info/meeting-info-v2.d.ts +0 -93
  379. package/dist/meeting-info/request.d.ts +0 -22
  380. package/dist/meeting-info/util.d.ts +0 -2
  381. package/dist/meeting-info/utilv2.d.ts +0 -2
  382. package/dist/meetings/collection.d.ts +0 -23
  383. package/dist/meetings/index.d.ts +0 -296
  384. package/dist/meetings/request.d.ts +0 -27
  385. package/dist/meetings/util.d.ts +0 -18
  386. package/dist/member/index.d.ts +0 -147
  387. package/dist/member/member.types.d.ts +0 -11
  388. package/dist/member/util.d.ts +0 -2
  389. package/dist/members/collection.d.ts +0 -24
  390. package/dist/members/index.d.ts +0 -298
  391. package/dist/members/request.d.ts +0 -50
  392. package/dist/members/util.d.ts +0 -2
  393. package/dist/metrics/config.d.ts +0 -169
  394. package/dist/metrics/constants.d.ts +0 -57
  395. package/dist/metrics/index.d.ts +0 -152
  396. package/dist/networkQualityMonitor/index.d.ts +0 -70
  397. package/dist/peer-connection-manager/index.d.ts +0 -6
  398. package/dist/peer-connection-manager/util.d.ts +0 -6
  399. package/dist/personal-meeting-room/index.d.ts +0 -47
  400. package/dist/personal-meeting-room/request.d.ts +0 -14
  401. package/dist/personal-meeting-room/util.d.ts +0 -2
  402. package/dist/reachability/index.d.ts +0 -139
  403. package/dist/reachability/request.d.ts +0 -35
  404. package/dist/reactions/reactions.d.ts +0 -4
  405. package/dist/reactions/reactions.type.d.ts +0 -32
  406. package/dist/reconnection-manager/index.d.ts +0 -112
  407. package/dist/recording-controller/enums.d.ts +0 -7
  408. package/dist/recording-controller/index.d.ts +0 -193
  409. package/dist/recording-controller/util.d.ts +0 -13
  410. package/dist/roap/collection.d.ts +0 -10
  411. package/dist/roap/handler.d.ts +0 -47
  412. package/dist/roap/index.d.ts +0 -116
  413. package/dist/roap/request.d.ts +0 -35
  414. package/dist/roap/state.d.ts +0 -9
  415. package/dist/roap/turnDiscovery.d.ts +0 -67
  416. package/dist/roap/util.d.ts +0 -2
  417. package/dist/statsAnalyzer/global.d.ts +0 -126
  418. package/dist/statsAnalyzer/index.d.ts +0 -190
  419. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -22
  420. package/dist/transcription/index.d.ts +0 -64
@@ -31,11 +31,11 @@ var _metrics = _interopRequireDefault(require("../metrics"));
31
31
  var _collection = _interopRequireDefault(require("../roap/collection"));
32
32
  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); }; }
33
33
  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; } }
34
- /**
35
- * Used to indicate that the reconnect logic needs to be retried.
36
- *
37
- * @class NeedsRetryError
38
- * @extends {Error}
34
+ /**
35
+ * Used to indicate that the reconnect logic needs to be retried.
36
+ *
37
+ * @class NeedsRetryError
38
+ * @extends {Error}
39
39
  */
40
40
  var NeedsRetryError = /*#__PURE__*/function (_Error) {
41
41
  (0, _inherits2.default)(NeedsRetryError, _Error);
@@ -46,21 +46,21 @@ var NeedsRetryError = /*#__PURE__*/function (_Error) {
46
46
  }
47
47
  return (0, _createClass2.default)(NeedsRetryError);
48
48
  }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
49
- /**
50
- * Used to indicate that the meeting needs to be rejoined, not just media reconnected
51
- *
52
- * @class NeedsRejoinError
53
- * @extends {Error}
49
+ /**
50
+ * Used to indicate that the meeting needs to be rejoined, not just media reconnected
51
+ *
52
+ * @class NeedsRejoinError
53
+ * @extends {Error}
54
54
  */
55
55
  var NeedsRejoinError = /*#__PURE__*/function (_Error2) {
56
56
  (0, _inherits2.default)(NeedsRejoinError, _Error2);
57
57
  var _super2 = _createSuper(NeedsRejoinError);
58
- /**
59
- * Creates an instance of NeedsRejoinError.
60
- * @param {Object} params
61
- * @param {boolean} params.wasSharing
62
- * @param {Error} params.error
63
- * @memberof NeedsRejoinError
58
+ /**
59
+ * Creates an instance of NeedsRejoinError.
60
+ * @param {Object} params
61
+ * @param {boolean} params.wasSharing
62
+ * @param {Error} params.error
63
+ * @memberof NeedsRejoinError
64
64
  */
65
65
  function NeedsRejoinError(_ref) {
66
66
  var _this;
@@ -76,13 +76,13 @@ var NeedsRejoinError = /*#__PURE__*/function (_Error2) {
76
76
  }
77
77
  return (0, _createClass2.default)(NeedsRejoinError);
78
78
  }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
79
- /**
80
- * @export
81
- * @class ReconnectionManager
79
+ /**
80
+ * @export
81
+ * @class ReconnectionManager
82
82
  */
83
83
  var ReconnectionManager = /*#__PURE__*/function () {
84
- /**
85
- * @param {Meeting} meeting
84
+ /**
85
+ * @param {Meeting} meeting
86
86
  */
87
87
  function ReconnectionManager(meeting) {
88
88
  (0, _classCallCheck2.default)(this, ReconnectionManager);
@@ -95,13 +95,13 @@ var ReconnectionManager = /*#__PURE__*/function () {
95
95
  (0, _defineProperty2.default)(this, "status", void 0);
96
96
  (0, _defineProperty2.default)(this, "tryCount", void 0);
97
97
  (0, _defineProperty2.default)(this, "webex", void 0);
98
- /**
99
- * Stores ICE reconnection state data.
100
- *
101
- * @instance
102
- * @type {Object}
103
- * @private
104
- * @memberof ReconnectionManager
98
+ /**
99
+ * Stores ICE reconnection state data.
100
+ *
101
+ * @instance
102
+ * @type {Object}
103
+ * @private
104
+ * @memberof ReconnectionManager
105
105
  */
106
106
  this.iceState = {
107
107
  disconnected: false,
@@ -111,35 +111,35 @@ var ReconnectionManager = /*#__PURE__*/function () {
111
111
  timeoutDuration: meeting.config.reconnection.iceReconnectionTimeout
112
112
  };
113
113
 
114
- /**
115
- * @instance
116
- * @type {String}
117
- * @private
118
- * @memberof ReconnectionManager
114
+ /**
115
+ * @instance
116
+ * @type {String}
117
+ * @private
118
+ * @memberof ReconnectionManager
119
119
  */
120
120
  this.status = _constants.RECONNECTION.STATE.DEFAULT_STATUS;
121
- /**
122
- * @instance
123
- * @type {Number}
124
- * @private
125
- * @memberof ReconnectionManager
121
+ /**
122
+ * @instance
123
+ * @type {Number}
124
+ * @private
125
+ * @memberof ReconnectionManager
126
126
  */
127
127
  this.tryCount = _constants.RECONNECTION.STATE.DEFAULT_TRY_COUNT;
128
- /**
129
- * @instance
130
- * @type {Object}
131
- * @private
132
- * @memberof ReconnectionManager
128
+ /**
129
+ * @instance
130
+ * @type {Object}
131
+ * @private
132
+ * @memberof ReconnectionManager
133
133
  */
134
134
  // TODO : change this logic to not save the meeting instance
135
135
  // It gets complicated when meeting ends on remote side , We have a old meeting instance which is not up to date
136
136
  // @ts-ignore
137
137
  this.webex = meeting.webex;
138
- /**
139
- * @instance
140
- * @type {Meeting}
141
- * @private
142
- * @memberof ReconnectionManager
138
+ /**
139
+ * @instance
140
+ * @type {Meeting}
141
+ * @private
142
+ * @memberof ReconnectionManager
143
143
  */
144
144
  // TODO: try removing the circular dependency for meeting and reconnection manager
145
145
  // try moving this to meetings collection
@@ -155,13 +155,13 @@ var ReconnectionManager = /*#__PURE__*/function () {
155
155
  this.reset();
156
156
  }
157
157
 
158
- /**
159
- * Sets the iceState to connected and clears any disconnect timeouts and
160
- * related timeout data within the iceState.
161
- *
162
- * @returns {undefined}
163
- * @public
164
- * @memberof ReconnectionManager
158
+ /**
159
+ * Sets the iceState to connected and clears any disconnect timeouts and
160
+ * related timeout data within the iceState.
161
+ *
162
+ * @returns {undefined}
163
+ * @public
164
+ * @memberof ReconnectionManager
165
165
  */
166
166
  (0, _createClass2.default)(ReconnectionManager, [{
167
167
  key: "iceReconnected",
@@ -178,15 +178,15 @@ var ReconnectionManager = /*#__PURE__*/function () {
178
178
  }
179
179
  }
180
180
 
181
- /**
182
- * Set the iceState to disconnected and generates a timeout that waits for the
183
- * iceState to reconnect and then resolves. If the ice state is already
184
- * processing a reconnect, it immediately resolves. Rejects if the timeout
185
- * duration is reached.
186
- *
187
- * @returns {Promise<undefined>}
188
- * @public
189
- * @memberof ReconnectionManager
181
+ /**
182
+ * Set the iceState to disconnected and generates a timeout that waits for the
183
+ * iceState to reconnect and then resolves. If the ice state is already
184
+ * processing a reconnect, it immediately resolves. Rejects if the timeout
185
+ * duration is reached.
186
+ *
187
+ * @returns {Promise<undefined>}
188
+ * @public
189
+ * @memberof ReconnectionManager
190
190
  */
191
191
  }, {
192
192
  key: "waitForIceReconnect",
@@ -212,10 +212,10 @@ var ReconnectionManager = /*#__PURE__*/function () {
212
212
  return _promise.default.resolve();
213
213
  }
214
214
 
215
- /**
216
- * @returns {undefined}
217
- * @public
218
- * @memberof ReconnectionManager
215
+ /**
216
+ * @returns {undefined}
217
+ * @public
218
+ * @memberof ReconnectionManager
219
219
  */
220
220
  }, {
221
221
  key: "reset",
@@ -225,10 +225,10 @@ var ReconnectionManager = /*#__PURE__*/function () {
225
225
  this.rejoinAttempts = _constants.RECONNECTION.STATE.DEFAULT_TRY_COUNT;
226
226
  }
227
227
 
228
- /**
229
- * @returns {undefined}
230
- * @public
231
- * @memberof ReconnectionManager
228
+ /**
229
+ * @returns {undefined}
230
+ * @public
231
+ * @memberof ReconnectionManager
232
232
  */
233
233
  }, {
234
234
  key: "cleanUp",
@@ -237,11 +237,11 @@ var ReconnectionManager = /*#__PURE__*/function () {
237
237
  this.meeting = null;
238
238
  }
239
239
 
240
- /**
241
- * @returns {Boolean}
242
- * @throws {ReconnectionError}
243
- * @private
244
- * @memberof ReconnectionManager
240
+ /**
241
+ * @returns {Boolean}
242
+ * @throws {ReconnectionError}
243
+ * @private
244
+ * @memberof ReconnectionManager
245
245
  */
246
246
  }, {
247
247
  key: "validate",
@@ -257,14 +257,14 @@ var ReconnectionManager = /*#__PURE__*/function () {
257
257
  throw new _reconnection.default('Reconnection is not enabled.');
258
258
  }
259
259
 
260
- /**
261
- * Initiates a media reconnect for the active meeting
262
- * @param {Object} reconnectOptions
263
- * @param {boolean} [reconnectOptions.networkDisconnect=false] indicates if a network disconnect event happened
264
- * @param {boolean} [reconnectOptions.networkRetry=false] indicates if we are retrying the reconnect
265
- * @returns {Promise}
266
- * @public
267
- * @memberof ReconnectionManager
260
+ /**
261
+ * Initiates a media reconnect for the active meeting
262
+ * @param {Object} reconnectOptions
263
+ * @param {boolean} [reconnectOptions.networkDisconnect=false] indicates if a network disconnect event happened
264
+ * @param {boolean} [reconnectOptions.networkRetry=false] indicates if we are retrying the reconnect
265
+ * @returns {Promise}
266
+ * @public
267
+ * @memberof ReconnectionManager
268
268
  */
269
269
  }, {
270
270
  key: "reconnect",
@@ -363,13 +363,13 @@ var ReconnectionManager = /*#__PURE__*/function () {
363
363
  }
364
364
  return reconnect;
365
365
  }()
366
- /**
367
- * @param {Object} reconnectOptions
368
- * @param {boolean} [reconnectOptions.networkDisconnect=false] indicates if a network disconnect event happened
369
- * @returns {Promise}
370
- * @throws {NeedsRetryError}
371
- * @private
372
- * @memberof ReconnectionManager
366
+ /**
367
+ * @param {Object} reconnectOptions
368
+ * @param {boolean} [reconnectOptions.networkDisconnect=false] indicates if a network disconnect event happened
369
+ * @returns {Promise}
370
+ * @throws {NeedsRetryError}
371
+ * @private
372
+ * @memberof ReconnectionManager
373
373
  */
374
374
  }, {
375
375
  key: "executeReconnection",
@@ -463,12 +463,12 @@ var ReconnectionManager = /*#__PURE__*/function () {
463
463
  }
464
464
  return executeReconnection;
465
465
  }()
466
- /**
467
- * Rejoins a meeting after detecting the member was in a LEFT state
468
- *
469
- * @async
470
- * @param {boolean} wasSharing
471
- * @returns {Promise}
466
+ /**
467
+ * Rejoins a meeting after detecting the member was in a LEFT state
468
+ *
469
+ * @async
470
+ * @param {boolean} wasSharing
471
+ * @returns {Promise}
472
472
  */
473
473
  }, {
474
474
  key: "rejoinMeeting",
@@ -552,10 +552,10 @@ var ReconnectionManager = /*#__PURE__*/function () {
552
552
  }
553
553
  return rejoinMeeting;
554
554
  }()
555
- /**
556
- * @returns {Promise}
557
- * @private
558
- * @memberof ReconnectionManager
555
+ /**
556
+ * @returns {Promise}
557
+ * @private
558
+ * @memberof ReconnectionManager
559
559
  */
560
560
  }, {
561
561
  key: "reconnectMedia",
@@ -582,11 +582,11 @@ var ReconnectionManager = /*#__PURE__*/function () {
582
582
  });
583
583
  }
584
584
 
585
- /**
586
- * Attempt to Reconnect Mercury Websocket
587
- * @returns {Promise}
588
- * @private
589
- * @memberof ReconnectionManager
585
+ /**
586
+ * Attempt to Reconnect Mercury Websocket
587
+ * @returns {Promise}
588
+ * @private
589
+ * @memberof ReconnectionManager
590
590
  */
591
591
  }, {
592
592
  key: "reconnectMercuryWebSocket",
@@ -640,11 +640,11 @@ var ReconnectionManager = /*#__PURE__*/function () {
640
640
  }
641
641
  return reconnectMercuryWebSocket;
642
642
  }()
643
- /**
644
- * @param {Meeting} meeting
645
- * @returns {undefined}
646
- * @private
647
- * @memberof ReconnectionManager
643
+ /**
644
+ * @param {Meeting} meeting
645
+ * @returns {undefined}
646
+ * @private
647
+ * @memberof ReconnectionManager
648
648
  */
649
649
  }], [{
650
650
  key: "setupPeerConnection",
@@ -1 +1 @@
1
- {"version":3,"names":["_loggerProxy","_interopRequireDefault","require","_triggerProxy","_constants","_constants2","_reconnection","_reconnectionInProgress","_peerConnectionManager","_config","_media","_metrics","_collection","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","NeedsRetryError","_Error","_inherits2","_super","_classCallCheck2","_createClass2","_wrapNativeSuper2","Error","NeedsRejoinError","_Error2","_super2","_ref","_this","wasSharing","_ref$error","error","_defineProperty2","_assertThisInitialized2","ReconnectionManager","meeting","iceState","disconnected","resolve","timer","undefined","timeoutDuration","config","reconnection","iceReconnectionTimeout","status","RECONNECTION","STATE","DEFAULT_STATUS","tryCount","DEFAULT_TRY_COUNT","webex","maxRejoinAttempts","rejoinAttempts","autoRejoinEnabled","autoRejoin","reset","key","value","iceReconnected","LoggerProxy","logger","log","clearTimeout","waitForIceReconnect","_this2","_promise","reject","setTimeout","concat","cleanUp","validate","enabled","COMPLETE","info","ReconnectInProgress","ReconnectionError","_reconnect","_asyncToGenerator2","_regenerator","mark","_callee","_this3","_ref2","_ref2$networkDisconne","networkDisconnect","_ref2$networkRetry","networkRetry","_args","wrap","_callee$","_context","prev","next","length","id","t0","Metrics","postEvent","event","eventType","MEDIA_RECONNECTING","abrupt","executeReconnection","then","MEDIA_RECOVERED","data","recoveredBy","RECOVERED_BY_NEW","catch","reconnectError","reconnect","message","reconnectMetric","CALL_ABORTED","errors","category","errorObjects","expected","errorCode","fatal","name","mediaEngine","shownToUser","rejoinMeeting","stop","_executeReconnection","_callee2","_ref3","_ref3$networkDisconne","media","_callee2$","_context2","IN_PROGRESS","reconnectMercuryWebSocket","internal","device","url","FAILURE","shareStatus","SHARE_STATUS","LOCAL_SHARE_ACTIVE","meetings","syncMeetings","t1","getMeetingByType","_ID_","state","_LEFT_","type","_CALL_","reconnectMedia","sent","t2","_x","_rejoinMeeting","_callee3","previousCorrelationId","_args3","_callee3$","_context3","correlationId","join","rejoin","RoapCollection","deleteSession","Media","stopTracks","mediaProperties","shareTrack","isSharing","NO_SHARE","mediaDirection","sendShare","Trigger","trigger","file","function","EVENT_TRIGGERS","MEETING_STOPPED_SHARING_LOCAL","reason","SHARE_STOPPED_REASON","MEETING_REJOIN","sendBehavioralMetric","BEHAVIORAL_METRICS","MEETING_MAX_REJOIN_FAILURE","locus_id","locusUrl","split","pop","stack","_this4","setupPeerConnection","attachMedia","meetingId","remoteQualityLevel","enableRtx","enableExtmap","peerConnection","setRemoteStream","roap","sendRoapMediaRequest","sdp","roapSeq","_reconnectMercuryWebSocket","_callee4","_callee4$","_context4","mercury","connected","disconnect","connect","_setupPeerConnection","_callee5","turnServerResult","_callee5$","_context5","PeerConnectionManager","close","unsetPeerConnection","doTurnDiscovery","reInitiatePeerconnection","turnServerInfo","setPeerConnectionEvents","statsAnalyzer","updatePeerconnection","_x2","exports"],"sources":["index.ts"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\n/* eslint-disable no-warning-comments */\r\n\r\nimport LoggerProxy from '../common/logs/logger-proxy';\r\nimport Trigger from '../common/events/trigger-proxy';\r\nimport {\r\n EVENT_TRIGGERS,\r\n RECONNECTION,\r\n SHARE_STATUS,\r\n SHARE_STOPPED_REASON,\r\n _CALL_,\r\n _LEFT_,\r\n _ID_,\r\n} from '../constants';\r\nimport BEHAVIORAL_METRICS from '../metrics/constants';\r\nimport ReconnectionError from '../common/errors/reconnection';\r\nimport ReconnectInProgress from '../common/errors/reconnection-in-progress';\r\nimport PeerConnectionManager from '../peer-connection-manager';\r\nimport {eventType, reconnection, errorObjects} from '../metrics/config';\r\nimport Media from '../media';\r\nimport Metrics from '../metrics';\r\nimport RoapCollection from '../roap/collection';\r\nimport Meeting from '../meeting';\r\n\r\n/**\r\n * Used to indicate that the reconnect logic needs to be retried.\r\n *\r\n * @class NeedsRetryError\r\n * @extends {Error}\r\n */\r\nclass NeedsRetryError extends Error {}\r\n\r\n/**\r\n * Used to indicate that the meeting needs to be rejoined, not just media reconnected\r\n *\r\n * @class NeedsRejoinError\r\n * @extends {Error}\r\n */\r\nclass NeedsRejoinError extends Error {\r\n wasSharing: any;\r\n\r\n /**\r\n * Creates an instance of NeedsRejoinError.\r\n * @param {Object} params\r\n * @param {boolean} params.wasSharing\r\n * @param {Error} params.error\r\n * @memberof NeedsRejoinError\r\n */\r\n constructor({\r\n wasSharing,\r\n error = new Error('Meeting needs to be rejoined'),\r\n }: {\r\n wasSharing?: boolean;\r\n error?: Error;\r\n }) {\r\n // @ts-ignore\r\n super(error);\r\n\r\n this.wasSharing = wasSharing;\r\n }\r\n}\r\n\r\n/**\r\n * @export\r\n * @class ReconnectionManager\r\n */\r\nexport default class ReconnectionManager {\r\n autoRejoinEnabled: any;\r\n iceState: any;\r\n maxRejoinAttempts: any;\r\n meeting: any;\r\n rejoinAttempts: any;\r\n shareStatus: any;\r\n status: any;\r\n tryCount: any;\r\n webex: any;\r\n /**\r\n * @param {Meeting} meeting\r\n */\r\n constructor(meeting: Meeting) {\r\n /**\r\n * Stores ICE reconnection state data.\r\n *\r\n * @instance\r\n * @type {Object}\r\n * @private\r\n * @memberof ReconnectionManager\r\n */\r\n this.iceState = {\r\n disconnected: false,\r\n resolve: () => {},\r\n timer: undefined,\r\n // @ts-ignore\r\n timeoutDuration: meeting.config.reconnection.iceReconnectionTimeout,\r\n };\r\n\r\n /**\r\n * @instance\r\n * @type {String}\r\n * @private\r\n * @memberof ReconnectionManager\r\n */\r\n this.status = RECONNECTION.STATE.DEFAULT_STATUS;\r\n /**\r\n * @instance\r\n * @type {Number}\r\n * @private\r\n * @memberof ReconnectionManager\r\n */\r\n this.tryCount = RECONNECTION.STATE.DEFAULT_TRY_COUNT;\r\n /**\r\n * @instance\r\n * @type {Object}\r\n * @private\r\n * @memberof ReconnectionManager\r\n */\r\n // TODO : change this logic to not save the meeting instance\r\n // It gets complicated when meeting ends on remote side , We have a old meeting instance which is not up to date\r\n // @ts-ignore\r\n this.webex = meeting.webex;\r\n /**\r\n * @instance\r\n * @type {Meeting}\r\n * @private\r\n * @memberof ReconnectionManager\r\n */\r\n // TODO: try removing the circular dependency for meeting and reconnection manager\r\n // try moving this to meetings collection\r\n this.meeting = meeting;\r\n\r\n // @ts-ignore\r\n this.maxRejoinAttempts = meeting.config.reconnection.maxRejoinAttempts;\r\n this.rejoinAttempts = RECONNECTION.STATE.DEFAULT_TRY_COUNT;\r\n // @ts-ignore\r\n this.autoRejoinEnabled = meeting.config.reconnection.autoRejoin;\r\n\r\n // Make sure reconnection state is in default\r\n this.reset();\r\n }\r\n\r\n /**\r\n * Sets the iceState to connected and clears any disconnect timeouts and\r\n * related timeout data within the iceState.\r\n *\r\n * @returns {undefined}\r\n * @public\r\n * @memberof ReconnectionManager\r\n */\r\n public iceReconnected() {\r\n if (this.iceState.disconnected) {\r\n LoggerProxy.logger.log('ReconnectionManager:index#iceReconnected --> ice has reconnected');\r\n\r\n this.iceState.resolve();\r\n this.iceState.resolve = () => {};\r\n\r\n if (this.iceState.timer) {\r\n clearTimeout(this.iceState.timer);\r\n delete this.iceState.timer;\r\n }\r\n\r\n this.iceState.disconnected = false;\r\n }\r\n }\r\n\r\n /**\r\n * Set the iceState to disconnected and generates a timeout that waits for the\r\n * iceState to reconnect and then resolves. If the ice state is already\r\n * processing a reconnect, it immediately resolves. Rejects if the timeout\r\n * duration is reached.\r\n *\r\n * @returns {Promise<undefined>}\r\n * @public\r\n * @memberof ReconnectionManager\r\n */\r\n public waitForIceReconnect() {\r\n if (!this.iceState.disconnected) {\r\n LoggerProxy.logger.log(\r\n 'ReconnectionManager:index#waitForIceReconnect --> waiting for ice reconnect'\r\n );\r\n\r\n this.iceState.disconnected = true;\r\n\r\n return new Promise<void>((resolve, reject) => {\r\n this.iceState.timer = setTimeout(() => {\r\n if (this.iceState.disconnected === false) {\r\n resolve();\r\n } else {\r\n this.iceState.disconnected = false;\r\n reject(\r\n new Error(`ice reconnection did not occur in ${this.iceState.timeoutDuration}ms`)\r\n );\r\n }\r\n }, this.iceState.timeoutDuration);\r\n\r\n this.iceState.resolve = resolve;\r\n });\r\n }\r\n\r\n // return a resolved promise to prevent multiple catch executions of reconnect\r\n return Promise.resolve();\r\n }\r\n\r\n /**\r\n * @returns {undefined}\r\n * @public\r\n * @memberof ReconnectionManager\r\n */\r\n public reset() {\r\n this.status = RECONNECTION.STATE.DEFAULT_STATUS;\r\n this.tryCount = RECONNECTION.STATE.DEFAULT_TRY_COUNT;\r\n this.rejoinAttempts = RECONNECTION.STATE.DEFAULT_TRY_COUNT;\r\n }\r\n\r\n /**\r\n * @returns {undefined}\r\n * @public\r\n * @memberof ReconnectionManager\r\n */\r\n public cleanUp() {\r\n this.reset();\r\n this.meeting = null;\r\n }\r\n\r\n /**\r\n * @returns {Boolean}\r\n * @throws {ReconnectionError}\r\n * @private\r\n * @memberof ReconnectionManager\r\n */\r\n private validate() {\r\n if (this.meeting.config.reconnection.enabled) {\r\n if (\r\n this.status === RECONNECTION.STATE.DEFAULT_STATUS ||\r\n this.status === RECONNECTION.STATE.COMPLETE\r\n ) {\r\n return true;\r\n }\r\n\r\n LoggerProxy.logger.info(\r\n 'ReconnectionManager:index#validate --> Reconnection already in progress.'\r\n );\r\n\r\n throw new ReconnectInProgress('Reconnection already in progress.');\r\n }\r\n\r\n LoggerProxy.logger.info('ReconnectionManager:index#validate --> Reconnection is not enabled.');\r\n\r\n throw new ReconnectionError('Reconnection is not enabled.');\r\n }\r\n\r\n /**\r\n * Initiates a media reconnect for the active meeting\r\n * @param {Object} reconnectOptions\r\n * @param {boolean} [reconnectOptions.networkDisconnect=false] indicates if a network disconnect event happened\r\n * @param {boolean} [reconnectOptions.networkRetry=false] indicates if we are retrying the reconnect\r\n * @returns {Promise}\r\n * @public\r\n * @memberof ReconnectionManager\r\n */\r\n public async reconnect({\r\n networkDisconnect = false,\r\n networkRetry = false,\r\n }: {\r\n networkDisconnect?: boolean;\r\n networkRetry?: boolean;\r\n } = {}) {\r\n LoggerProxy.logger.info(\r\n `ReconnectionManager:index#reconnect --> Reconnection start for meeting ${this.meeting.id}.`\r\n );\r\n // First, validate that we can reconnect, if not, it will throw an error\r\n try {\r\n this.validate();\r\n } catch (error) {\r\n LoggerProxy.logger.info(\r\n 'ReconnectionManager:index#reconnect --> Reconnection unable to begin.',\r\n error\r\n );\r\n throw error;\r\n }\r\n\r\n if (!networkRetry) {\r\n // Only log START metrics on the initial reconnect\r\n LoggerProxy.logger.info(\r\n 'ReconnectionManager:index#reconnect --> Sending reconnect start metric.'\r\n );\r\n Metrics.postEvent({\r\n event: eventType.MEDIA_RECONNECTING,\r\n meeting: this.meeting,\r\n });\r\n }\r\n\r\n return this.executeReconnection({networkDisconnect})\r\n .then(() => {\r\n LoggerProxy.logger.info('ReconnectionManager:index#reconnect --> Reconnection successful.');\r\n LoggerProxy.logger.info(\r\n 'ReconnectionManager:index#reconnect --> Sending reconnect success metric.'\r\n );\r\n Metrics.postEvent({\r\n event: eventType.MEDIA_RECOVERED,\r\n meeting: this.meeting,\r\n data: {recoveredBy: reconnection.RECOVERED_BY_NEW},\r\n });\r\n })\r\n .catch((reconnectError) => {\r\n if (reconnectError instanceof NeedsRetryError) {\r\n LoggerProxy.logger.info(\r\n 'ReconnectionManager:index#reconnect --> Reconnection not successful, retrying.'\r\n );\r\n // Reset our reconnect status since we are looping back to the beginning\r\n this.status = RECONNECTION.STATE.DEFAULT_STATUS;\r\n\r\n // This is a network retry, so we should not log START metrics again\r\n return this.reconnect({networkDisconnect: true, networkRetry: true});\r\n }\r\n\r\n // Reconnect has failed\r\n LoggerProxy.logger.error(\r\n 'ReconnectionManager:index#reconnect --> Reconnection failed.',\r\n reconnectError.message\r\n );\r\n LoggerProxy.logger.info(\r\n 'ReconnectionManager:index#reconnect --> Sending reconnect abort metric.'\r\n );\r\n\r\n const reconnectMetric = {\r\n event: eventType.CALL_ABORTED,\r\n meeting: this.meeting,\r\n data: {\r\n errors: [\r\n {\r\n category: errorObjects.category.expected,\r\n errorCode: 2008,\r\n fatal: true,\r\n name: errorObjects.name.mediaEngine,\r\n shownToUser: false,\r\n },\r\n ],\r\n },\r\n };\r\n\r\n Metrics.postEvent(reconnectMetric);\r\n if (reconnectError instanceof NeedsRejoinError) {\r\n // send call aborded event with catogery as expected as we are trying to rejoin\r\n\r\n if (this.autoRejoinEnabled) {\r\n return this.rejoinMeeting(reconnectError.wasSharing);\r\n }\r\n }\r\n\r\n throw reconnectError;\r\n });\r\n }\r\n\r\n /**\r\n * @param {Object} reconnectOptions\r\n * @param {boolean} [reconnectOptions.networkDisconnect=false] indicates if a network disconnect event happened\r\n * @returns {Promise}\r\n * @throws {NeedsRetryError}\r\n * @private\r\n * @memberof ReconnectionManager\r\n */\r\n private async executeReconnection({networkDisconnect = false}: {networkDisconnect?: boolean}) {\r\n this.status = RECONNECTION.STATE.IN_PROGRESS;\r\n\r\n LoggerProxy.logger.info(\r\n 'ReconnectionManager:index#executeReconnection --> Attempting to reconnect to meeting.'\r\n );\r\n\r\n if (networkDisconnect) {\r\n try {\r\n await this.reconnectMercuryWebSocket();\r\n LoggerProxy.logger.error(\r\n 'ReconnectionManager:index#executeReconnection --> Websocket reconnected.',\r\n this.webex.internal.device.url\r\n );\r\n } catch (error) {\r\n LoggerProxy.logger.error(\r\n 'ReconnectionManager:index#executeReconnection --> Unable to reconnect to websocket, giving up.'\r\n );\r\n this.status = RECONNECTION.STATE.FAILURE;\r\n throw error;\r\n }\r\n }\r\n\r\n const wasSharing = this.meeting.shareStatus === SHARE_STATUS.LOCAL_SHARE_ACTIVE;\r\n\r\n try {\r\n LoggerProxy.logger.info(\r\n 'ReconnectionManager:index#executeReconnection --> Updating meeting data from server.'\r\n );\r\n await this.webex.meetings.syncMeetings();\r\n } catch (syncError) {\r\n LoggerProxy.logger.info(\r\n 'ReconnectionManager:index#executeReconnection --> Unable to sync meetings, reconnecting.',\r\n syncError\r\n );\r\n throw new NeedsRetryError(syncError);\r\n }\r\n\r\n // TODO: try to improve this logic as the reconnection manager saves the instance of deleted meeting object\r\n // So that on rejoin it known what parametrs it was using\r\n if (!this.meeting || !this.webex.meetings.getMeetingByType(_ID_, this.meeting.id)) {\r\n LoggerProxy.logger.info(\r\n 'ReconnectionManager:index#executeReconnection --> Meeting got deleted due to inactivity or ended remotely '\r\n );\r\n\r\n throw new Error('Unable to rejoin a meeting already ended or inactive .');\r\n }\r\n\r\n LoggerProxy.logger.info(\r\n `ReconnectionManager:index#executeReconnection --> Current state of meeting is ${this.meeting.state}`\r\n );\r\n\r\n // If the meeting state was left, no longer reconnect media\r\n if (this.meeting.state === _LEFT_) {\r\n if (this.meeting.type === _CALL_) {\r\n throw new Error('Unable to rejoin a call in LEFT state.');\r\n }\r\n\r\n throw new NeedsRejoinError({wasSharing});\r\n }\r\n\r\n try {\r\n const media = await this.reconnectMedia();\r\n\r\n LoggerProxy.logger.log(\r\n 'ReconnectionManager:index#executeReconnection --> Media reestablished'\r\n );\r\n this.status = RECONNECTION.STATE.COMPLETE;\r\n\r\n return media;\r\n } catch (error) {\r\n LoggerProxy.logger.error(\r\n 'ReconnectionManager:index#executeReconnection --> Media reestablishment failed'\r\n );\r\n this.status = RECONNECTION.STATE.FAILURE;\r\n\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * Rejoins a meeting after detecting the member was in a LEFT state\r\n *\r\n * @async\r\n * @param {boolean} wasSharing\r\n * @returns {Promise}\r\n */\r\n async rejoinMeeting(wasSharing = false) {\r\n try {\r\n LoggerProxy.logger.info(\r\n 'ReconnectionManager:index#rejoinMeeting --> attemping meeting rejoin'\r\n );\r\n const previousCorrelationId = this.meeting.correlationId;\r\n\r\n await this.meeting.join({rejoin: true});\r\n LoggerProxy.logger.info('ReconnectionManager:index#rejoinMeeting --> meeting rejoined');\r\n\r\n RoapCollection.deleteSession(previousCorrelationId);\r\n\r\n if (wasSharing) {\r\n // Stop the share streams if user tried to rejoin\r\n Media.stopTracks(this.meeting.mediaProperties.shareTrack);\r\n this.meeting.isSharing = false;\r\n if (this.shareStatus === SHARE_STATUS.LOCAL_SHARE_ACTIVE) {\r\n this.meeting.shareStatus = SHARE_STATUS.NO_SHARE;\r\n }\r\n this.meeting.mediaProperties.mediaDirection.sendShare = false;\r\n Trigger.trigger(\r\n this.meeting,\r\n {\r\n file: 'reconnection-manager/index',\r\n function: 'rejoinMeeting',\r\n },\r\n EVENT_TRIGGERS.MEETING_STOPPED_SHARING_LOCAL,\r\n {\r\n reason: SHARE_STOPPED_REASON.MEETING_REJOIN,\r\n }\r\n );\r\n }\r\n } catch (joinError) {\r\n this.rejoinAttempts += 1;\r\n if (this.rejoinAttempts <= this.maxRejoinAttempts) {\r\n LoggerProxy.logger.info(\r\n `ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting, attempt #${this.rejoinAttempts}, retrying.`,\r\n joinError\r\n );\r\n this.rejoinMeeting();\r\n } else {\r\n LoggerProxy.logger.error(\r\n 'ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting after max attempts.',\r\n joinError\r\n );\r\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_MAX_REJOIN_FAILURE, {\r\n locus_id: this.meeting.locusUrl.split('/').pop(),\r\n reason: joinError.message,\r\n stack: joinError.stack,\r\n });\r\n this.status = RECONNECTION.STATE.FAILURE;\r\n throw joinError;\r\n }\r\n }\r\n\r\n try {\r\n await this.reconnectMedia();\r\n } catch (mediaError) {\r\n LoggerProxy.logger.error(\r\n 'ReconnectionManager:index#rejoinMeeting --> Unable to reestablish media after rejoining.',\r\n mediaError\r\n );\r\n throw mediaError;\r\n }\r\n }\r\n\r\n /**\r\n * @returns {Promise}\r\n * @private\r\n * @memberof ReconnectionManager\r\n */\r\n reconnectMedia() {\r\n LoggerProxy.logger.log(\r\n 'ReconnectionManager:index#reconnectMedia --> Begin reestablishment of media'\r\n );\r\n\r\n return ReconnectionManager.setupPeerConnection(this.meeting)\r\n .then(() =>\r\n Media.attachMedia(this.meeting.mediaProperties, {\r\n meetingId: this.meeting.id,\r\n remoteQualityLevel: this.meeting.mediaProperties.remoteQualityLevel,\r\n enableRtx: this.meeting.config.enableRtx,\r\n enableExtmap: this.meeting.config.enableExtmap,\r\n })\r\n )\r\n .then((peerConnection) => this.meeting.setRemoteStream(peerConnection))\r\n .then(() => {\r\n LoggerProxy.logger.log(\r\n 'ReconnectionManager:index#reconnectMedia --> Sending ROAP media request'\r\n );\r\n\r\n return this.meeting.roap.sendRoapMediaRequest({\r\n sdp: this.meeting.mediaProperties.peerConnection.sdp,\r\n roapSeq: this.meeting.roapSeq,\r\n meeting: this.meeting,\r\n reconnect: true,\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Attempt to Reconnect Mercury Websocket\r\n * @returns {Promise}\r\n * @private\r\n * @memberof ReconnectionManager\r\n */\r\n private async reconnectMercuryWebSocket() {\r\n LoggerProxy.logger.info(\r\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Reconnecting websocket.'\r\n );\r\n // First, attempt to disconnect if we think we are already connected.\r\n if (this.webex.internal.mercury.connected) {\r\n LoggerProxy.logger.info(\r\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Disconnecting existing websocket.'\r\n );\r\n try {\r\n await this.webex.internal.mercury.disconnect();\r\n LoggerProxy.logger.info(\r\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket disconnected successfully.'\r\n );\r\n } catch (disconnectError) {\r\n // If we can't disconnect, the sdk is in such a bad state that reconnecting is not going to happen.\r\n LoggerProxy.logger.error(\r\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to disconnect from websocket, giving up.',\r\n disconnectError\r\n );\r\n throw disconnectError;\r\n }\r\n }\r\n\r\n try {\r\n LoggerProxy.logger.info(\r\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Connecting websocket.'\r\n );\r\n await this.webex.internal.mercury.connect();\r\n LoggerProxy.logger.info(\r\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket connected successfully.'\r\n );\r\n } catch (connectError) {\r\n LoggerProxy.logger.error(\r\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to connect to websocket, giving up.',\r\n connectError\r\n );\r\n\r\n throw connectError;\r\n }\r\n }\r\n\r\n /**\r\n * @param {Meeting} meeting\r\n * @returns {undefined}\r\n * @private\r\n * @memberof ReconnectionManager\r\n */\r\n private static async setupPeerConnection(meeting: Meeting) {\r\n LoggerProxy.logger.log(\r\n 'ReconnectionManager:index#setupPeerConnection --> Begin resetting peer connection'\r\n );\r\n // close pcs, unset to null and create a new one with out closing any streams\r\n PeerConnectionManager.close(meeting.mediaProperties.peerConnection);\r\n meeting.mediaProperties.unsetPeerConnection();\r\n\r\n const turnServerResult = await meeting.roap.doTurnDiscovery(meeting, true);\r\n\r\n meeting.mediaProperties.reInitiatePeerconnection(turnServerResult.turnServerInfo);\r\n PeerConnectionManager.setPeerConnectionEvents(meeting);\r\n\r\n // update the peerconnection in the stats manager when ever we reconnect\r\n meeting.statsAnalyzer.updatePeerconnection(meeting.mediaProperties.peerConnection);\r\n }\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"names":["_loggerProxy","_interopRequireDefault","require","_triggerProxy","_constants","_constants2","_reconnection","_reconnectionInProgress","_peerConnectionManager","_config","_media","_metrics","_collection","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","NeedsRetryError","_Error","_inherits2","_super","_classCallCheck2","_createClass2","_wrapNativeSuper2","Error","NeedsRejoinError","_Error2","_super2","_ref","_this","wasSharing","_ref$error","error","_defineProperty2","_assertThisInitialized2","ReconnectionManager","meeting","iceState","disconnected","resolve","timer","undefined","timeoutDuration","config","reconnection","iceReconnectionTimeout","status","RECONNECTION","STATE","DEFAULT_STATUS","tryCount","DEFAULT_TRY_COUNT","webex","maxRejoinAttempts","rejoinAttempts","autoRejoinEnabled","autoRejoin","reset","key","value","iceReconnected","LoggerProxy","logger","log","clearTimeout","waitForIceReconnect","_this2","_promise","reject","setTimeout","concat","cleanUp","validate","enabled","COMPLETE","info","ReconnectInProgress","ReconnectionError","_reconnect","_asyncToGenerator2","_regenerator","mark","_callee","_this3","_ref2","_ref2$networkDisconne","networkDisconnect","_ref2$networkRetry","networkRetry","_args","wrap","_callee$","_context","prev","next","length","id","t0","Metrics","postEvent","event","eventType","MEDIA_RECONNECTING","abrupt","executeReconnection","then","MEDIA_RECOVERED","data","recoveredBy","RECOVERED_BY_NEW","catch","reconnectError","reconnect","message","reconnectMetric","CALL_ABORTED","errors","category","errorObjects","expected","errorCode","fatal","name","mediaEngine","shownToUser","rejoinMeeting","stop","_executeReconnection","_callee2","_ref3","_ref3$networkDisconne","media","_callee2$","_context2","IN_PROGRESS","reconnectMercuryWebSocket","internal","device","url","FAILURE","shareStatus","SHARE_STATUS","LOCAL_SHARE_ACTIVE","meetings","syncMeetings","t1","getMeetingByType","_ID_","state","_LEFT_","type","_CALL_","reconnectMedia","sent","t2","_x","_rejoinMeeting","_callee3","previousCorrelationId","_args3","_callee3$","_context3","correlationId","join","rejoin","RoapCollection","deleteSession","Media","stopTracks","mediaProperties","shareTrack","isSharing","NO_SHARE","mediaDirection","sendShare","Trigger","trigger","file","function","EVENT_TRIGGERS","MEETING_STOPPED_SHARING_LOCAL","reason","SHARE_STOPPED_REASON","MEETING_REJOIN","sendBehavioralMetric","BEHAVIORAL_METRICS","MEETING_MAX_REJOIN_FAILURE","locus_id","locusUrl","split","pop","stack","_this4","setupPeerConnection","attachMedia","meetingId","remoteQualityLevel","enableRtx","enableExtmap","peerConnection","setRemoteStream","roap","sendRoapMediaRequest","sdp","roapSeq","_reconnectMercuryWebSocket","_callee4","_callee4$","_context4","mercury","connected","disconnect","connect","_setupPeerConnection","_callee5","turnServerResult","_callee5$","_context5","PeerConnectionManager","close","unsetPeerConnection","doTurnDiscovery","reInitiatePeerconnection","turnServerInfo","setPeerConnectionEvents","statsAnalyzer","updatePeerconnection","_x2","exports"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint-disable no-warning-comments */\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport Trigger from '../common/events/trigger-proxy';\nimport {\n EVENT_TRIGGERS,\n RECONNECTION,\n SHARE_STATUS,\n SHARE_STOPPED_REASON,\n _CALL_,\n _LEFT_,\n _ID_,\n} from '../constants';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\nimport ReconnectionError from '../common/errors/reconnection';\nimport ReconnectInProgress from '../common/errors/reconnection-in-progress';\nimport PeerConnectionManager from '../peer-connection-manager';\nimport {eventType, reconnection, errorObjects} from '../metrics/config';\nimport Media from '../media';\nimport Metrics from '../metrics';\nimport RoapCollection from '../roap/collection';\nimport Meeting from '../meeting';\n\n/**\n * Used to indicate that the reconnect logic needs to be retried.\n *\n * @class NeedsRetryError\n * @extends {Error}\n */\nclass NeedsRetryError extends Error {}\n\n/**\n * Used to indicate that the meeting needs to be rejoined, not just media reconnected\n *\n * @class NeedsRejoinError\n * @extends {Error}\n */\nclass NeedsRejoinError extends Error {\n wasSharing: any;\n\n /**\n * Creates an instance of NeedsRejoinError.\n * @param {Object} params\n * @param {boolean} params.wasSharing\n * @param {Error} params.error\n * @memberof NeedsRejoinError\n */\n constructor({\n wasSharing,\n error = new Error('Meeting needs to be rejoined'),\n }: {\n wasSharing?: boolean;\n error?: Error;\n }) {\n // @ts-ignore\n super(error);\n\n this.wasSharing = wasSharing;\n }\n}\n\n/**\n * @export\n * @class ReconnectionManager\n */\nexport default class ReconnectionManager {\n autoRejoinEnabled: any;\n iceState: any;\n maxRejoinAttempts: any;\n meeting: any;\n rejoinAttempts: any;\n shareStatus: any;\n status: any;\n tryCount: any;\n webex: any;\n /**\n * @param {Meeting} meeting\n */\n constructor(meeting: Meeting) {\n /**\n * Stores ICE reconnection state data.\n *\n * @instance\n * @type {Object}\n * @private\n * @memberof ReconnectionManager\n */\n this.iceState = {\n disconnected: false,\n resolve: () => {},\n timer: undefined,\n // @ts-ignore\n timeoutDuration: meeting.config.reconnection.iceReconnectionTimeout,\n };\n\n /**\n * @instance\n * @type {String}\n * @private\n * @memberof ReconnectionManager\n */\n this.status = RECONNECTION.STATE.DEFAULT_STATUS;\n /**\n * @instance\n * @type {Number}\n * @private\n * @memberof ReconnectionManager\n */\n this.tryCount = RECONNECTION.STATE.DEFAULT_TRY_COUNT;\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof ReconnectionManager\n */\n // TODO : change this logic to not save the meeting instance\n // It gets complicated when meeting ends on remote side , We have a old meeting instance which is not up to date\n // @ts-ignore\n this.webex = meeting.webex;\n /**\n * @instance\n * @type {Meeting}\n * @private\n * @memberof ReconnectionManager\n */\n // TODO: try removing the circular dependency for meeting and reconnection manager\n // try moving this to meetings collection\n this.meeting = meeting;\n\n // @ts-ignore\n this.maxRejoinAttempts = meeting.config.reconnection.maxRejoinAttempts;\n this.rejoinAttempts = RECONNECTION.STATE.DEFAULT_TRY_COUNT;\n // @ts-ignore\n this.autoRejoinEnabled = meeting.config.reconnection.autoRejoin;\n\n // Make sure reconnection state is in default\n this.reset();\n }\n\n /**\n * Sets the iceState to connected and clears any disconnect timeouts and\n * related timeout data within the iceState.\n *\n * @returns {undefined}\n * @public\n * @memberof ReconnectionManager\n */\n public iceReconnected() {\n if (this.iceState.disconnected) {\n LoggerProxy.logger.log('ReconnectionManager:index#iceReconnected --> ice has reconnected');\n\n this.iceState.resolve();\n this.iceState.resolve = () => {};\n\n if (this.iceState.timer) {\n clearTimeout(this.iceState.timer);\n delete this.iceState.timer;\n }\n\n this.iceState.disconnected = false;\n }\n }\n\n /**\n * Set the iceState to disconnected and generates a timeout that waits for the\n * iceState to reconnect and then resolves. If the ice state is already\n * processing a reconnect, it immediately resolves. Rejects if the timeout\n * duration is reached.\n *\n * @returns {Promise<undefined>}\n * @public\n * @memberof ReconnectionManager\n */\n public waitForIceReconnect() {\n if (!this.iceState.disconnected) {\n LoggerProxy.logger.log(\n 'ReconnectionManager:index#waitForIceReconnect --> waiting for ice reconnect'\n );\n\n this.iceState.disconnected = true;\n\n return new Promise<void>((resolve, reject) => {\n this.iceState.timer = setTimeout(() => {\n if (this.iceState.disconnected === false) {\n resolve();\n } else {\n this.iceState.disconnected = false;\n reject(\n new Error(`ice reconnection did not occur in ${this.iceState.timeoutDuration}ms`)\n );\n }\n }, this.iceState.timeoutDuration);\n\n this.iceState.resolve = resolve;\n });\n }\n\n // return a resolved promise to prevent multiple catch executions of reconnect\n return Promise.resolve();\n }\n\n /**\n * @returns {undefined}\n * @public\n * @memberof ReconnectionManager\n */\n public reset() {\n this.status = RECONNECTION.STATE.DEFAULT_STATUS;\n this.tryCount = RECONNECTION.STATE.DEFAULT_TRY_COUNT;\n this.rejoinAttempts = RECONNECTION.STATE.DEFAULT_TRY_COUNT;\n }\n\n /**\n * @returns {undefined}\n * @public\n * @memberof ReconnectionManager\n */\n public cleanUp() {\n this.reset();\n this.meeting = null;\n }\n\n /**\n * @returns {Boolean}\n * @throws {ReconnectionError}\n * @private\n * @memberof ReconnectionManager\n */\n private validate() {\n if (this.meeting.config.reconnection.enabled) {\n if (\n this.status === RECONNECTION.STATE.DEFAULT_STATUS ||\n this.status === RECONNECTION.STATE.COMPLETE\n ) {\n return true;\n }\n\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#validate --> Reconnection already in progress.'\n );\n\n throw new ReconnectInProgress('Reconnection already in progress.');\n }\n\n LoggerProxy.logger.info('ReconnectionManager:index#validate --> Reconnection is not enabled.');\n\n throw new ReconnectionError('Reconnection is not enabled.');\n }\n\n /**\n * Initiates a media reconnect for the active meeting\n * @param {Object} reconnectOptions\n * @param {boolean} [reconnectOptions.networkDisconnect=false] indicates if a network disconnect event happened\n * @param {boolean} [reconnectOptions.networkRetry=false] indicates if we are retrying the reconnect\n * @returns {Promise}\n * @public\n * @memberof ReconnectionManager\n */\n public async reconnect({\n networkDisconnect = false,\n networkRetry = false,\n }: {\n networkDisconnect?: boolean;\n networkRetry?: boolean;\n } = {}) {\n LoggerProxy.logger.info(\n `ReconnectionManager:index#reconnect --> Reconnection start for meeting ${this.meeting.id}.`\n );\n // First, validate that we can reconnect, if not, it will throw an error\n try {\n this.validate();\n } catch (error) {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnect --> Reconnection unable to begin.',\n error\n );\n throw error;\n }\n\n if (!networkRetry) {\n // Only log START metrics on the initial reconnect\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnect --> Sending reconnect start metric.'\n );\n Metrics.postEvent({\n event: eventType.MEDIA_RECONNECTING,\n meeting: this.meeting,\n });\n }\n\n return this.executeReconnection({networkDisconnect})\n .then(() => {\n LoggerProxy.logger.info('ReconnectionManager:index#reconnect --> Reconnection successful.');\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnect --> Sending reconnect success metric.'\n );\n Metrics.postEvent({\n event: eventType.MEDIA_RECOVERED,\n meeting: this.meeting,\n data: {recoveredBy: reconnection.RECOVERED_BY_NEW},\n });\n })\n .catch((reconnectError) => {\n if (reconnectError instanceof NeedsRetryError) {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnect --> Reconnection not successful, retrying.'\n );\n // Reset our reconnect status since we are looping back to the beginning\n this.status = RECONNECTION.STATE.DEFAULT_STATUS;\n\n // This is a network retry, so we should not log START metrics again\n return this.reconnect({networkDisconnect: true, networkRetry: true});\n }\n\n // Reconnect has failed\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#reconnect --> Reconnection failed.',\n reconnectError.message\n );\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnect --> Sending reconnect abort metric.'\n );\n\n const reconnectMetric = {\n event: eventType.CALL_ABORTED,\n meeting: this.meeting,\n data: {\n errors: [\n {\n category: errorObjects.category.expected,\n errorCode: 2008,\n fatal: true,\n name: errorObjects.name.mediaEngine,\n shownToUser: false,\n },\n ],\n },\n };\n\n Metrics.postEvent(reconnectMetric);\n if (reconnectError instanceof NeedsRejoinError) {\n // send call aborded event with catogery as expected as we are trying to rejoin\n\n if (this.autoRejoinEnabled) {\n return this.rejoinMeeting(reconnectError.wasSharing);\n }\n }\n\n throw reconnectError;\n });\n }\n\n /**\n * @param {Object} reconnectOptions\n * @param {boolean} [reconnectOptions.networkDisconnect=false] indicates if a network disconnect event happened\n * @returns {Promise}\n * @throws {NeedsRetryError}\n * @private\n * @memberof ReconnectionManager\n */\n private async executeReconnection({networkDisconnect = false}: {networkDisconnect?: boolean}) {\n this.status = RECONNECTION.STATE.IN_PROGRESS;\n\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#executeReconnection --> Attempting to reconnect to meeting.'\n );\n\n if (networkDisconnect) {\n try {\n await this.reconnectMercuryWebSocket();\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#executeReconnection --> Websocket reconnected.',\n this.webex.internal.device.url\n );\n } catch (error) {\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#executeReconnection --> Unable to reconnect to websocket, giving up.'\n );\n this.status = RECONNECTION.STATE.FAILURE;\n throw error;\n }\n }\n\n const wasSharing = this.meeting.shareStatus === SHARE_STATUS.LOCAL_SHARE_ACTIVE;\n\n try {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#executeReconnection --> Updating meeting data from server.'\n );\n await this.webex.meetings.syncMeetings();\n } catch (syncError) {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#executeReconnection --> Unable to sync meetings, reconnecting.',\n syncError\n );\n throw new NeedsRetryError(syncError);\n }\n\n // TODO: try to improve this logic as the reconnection manager saves the instance of deleted meeting object\n // So that on rejoin it known what parametrs it was using\n if (!this.meeting || !this.webex.meetings.getMeetingByType(_ID_, this.meeting.id)) {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#executeReconnection --> Meeting got deleted due to inactivity or ended remotely '\n );\n\n throw new Error('Unable to rejoin a meeting already ended or inactive .');\n }\n\n LoggerProxy.logger.info(\n `ReconnectionManager:index#executeReconnection --> Current state of meeting is ${this.meeting.state}`\n );\n\n // If the meeting state was left, no longer reconnect media\n if (this.meeting.state === _LEFT_) {\n if (this.meeting.type === _CALL_) {\n throw new Error('Unable to rejoin a call in LEFT state.');\n }\n\n throw new NeedsRejoinError({wasSharing});\n }\n\n try {\n const media = await this.reconnectMedia();\n\n LoggerProxy.logger.log(\n 'ReconnectionManager:index#executeReconnection --> Media reestablished'\n );\n this.status = RECONNECTION.STATE.COMPLETE;\n\n return media;\n } catch (error) {\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#executeReconnection --> Media reestablishment failed'\n );\n this.status = RECONNECTION.STATE.FAILURE;\n\n throw error;\n }\n }\n\n /**\n * Rejoins a meeting after detecting the member was in a LEFT state\n *\n * @async\n * @param {boolean} wasSharing\n * @returns {Promise}\n */\n async rejoinMeeting(wasSharing = false) {\n try {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#rejoinMeeting --> attemping meeting rejoin'\n );\n const previousCorrelationId = this.meeting.correlationId;\n\n await this.meeting.join({rejoin: true});\n LoggerProxy.logger.info('ReconnectionManager:index#rejoinMeeting --> meeting rejoined');\n\n RoapCollection.deleteSession(previousCorrelationId);\n\n if (wasSharing) {\n // Stop the share streams if user tried to rejoin\n Media.stopTracks(this.meeting.mediaProperties.shareTrack);\n this.meeting.isSharing = false;\n if (this.shareStatus === SHARE_STATUS.LOCAL_SHARE_ACTIVE) {\n this.meeting.shareStatus = SHARE_STATUS.NO_SHARE;\n }\n this.meeting.mediaProperties.mediaDirection.sendShare = false;\n Trigger.trigger(\n this.meeting,\n {\n file: 'reconnection-manager/index',\n function: 'rejoinMeeting',\n },\n EVENT_TRIGGERS.MEETING_STOPPED_SHARING_LOCAL,\n {\n reason: SHARE_STOPPED_REASON.MEETING_REJOIN,\n }\n );\n }\n } catch (joinError) {\n this.rejoinAttempts += 1;\n if (this.rejoinAttempts <= this.maxRejoinAttempts) {\n LoggerProxy.logger.info(\n `ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting, attempt #${this.rejoinAttempts}, retrying.`,\n joinError\n );\n this.rejoinMeeting();\n } else {\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting after max attempts.',\n joinError\n );\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_MAX_REJOIN_FAILURE, {\n locus_id: this.meeting.locusUrl.split('/').pop(),\n reason: joinError.message,\n stack: joinError.stack,\n });\n this.status = RECONNECTION.STATE.FAILURE;\n throw joinError;\n }\n }\n\n try {\n await this.reconnectMedia();\n } catch (mediaError) {\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#rejoinMeeting --> Unable to reestablish media after rejoining.',\n mediaError\n );\n throw mediaError;\n }\n }\n\n /**\n * @returns {Promise}\n * @private\n * @memberof ReconnectionManager\n */\n reconnectMedia() {\n LoggerProxy.logger.log(\n 'ReconnectionManager:index#reconnectMedia --> Begin reestablishment of media'\n );\n\n return ReconnectionManager.setupPeerConnection(this.meeting)\n .then(() =>\n Media.attachMedia(this.meeting.mediaProperties, {\n meetingId: this.meeting.id,\n remoteQualityLevel: this.meeting.mediaProperties.remoteQualityLevel,\n enableRtx: this.meeting.config.enableRtx,\n enableExtmap: this.meeting.config.enableExtmap,\n })\n )\n .then((peerConnection) => this.meeting.setRemoteStream(peerConnection))\n .then(() => {\n LoggerProxy.logger.log(\n 'ReconnectionManager:index#reconnectMedia --> Sending ROAP media request'\n );\n\n return this.meeting.roap.sendRoapMediaRequest({\n sdp: this.meeting.mediaProperties.peerConnection.sdp,\n roapSeq: this.meeting.roapSeq,\n meeting: this.meeting,\n reconnect: true,\n });\n });\n }\n\n /**\n * Attempt to Reconnect Mercury Websocket\n * @returns {Promise}\n * @private\n * @memberof ReconnectionManager\n */\n private async reconnectMercuryWebSocket() {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Reconnecting websocket.'\n );\n // First, attempt to disconnect if we think we are already connected.\n if (this.webex.internal.mercury.connected) {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Disconnecting existing websocket.'\n );\n try {\n await this.webex.internal.mercury.disconnect();\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket disconnected successfully.'\n );\n } catch (disconnectError) {\n // If we can't disconnect, the sdk is in such a bad state that reconnecting is not going to happen.\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to disconnect from websocket, giving up.',\n disconnectError\n );\n throw disconnectError;\n }\n }\n\n try {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Connecting websocket.'\n );\n await this.webex.internal.mercury.connect();\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket connected successfully.'\n );\n } catch (connectError) {\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to connect to websocket, giving up.',\n connectError\n );\n\n throw connectError;\n }\n }\n\n /**\n * @param {Meeting} meeting\n * @returns {undefined}\n * @private\n * @memberof ReconnectionManager\n */\n private static async setupPeerConnection(meeting: Meeting) {\n LoggerProxy.logger.log(\n 'ReconnectionManager:index#setupPeerConnection --> Begin resetting peer connection'\n );\n // close pcs, unset to null and create a new one with out closing any streams\n PeerConnectionManager.close(meeting.mediaProperties.peerConnection);\n meeting.mediaProperties.unsetPeerConnection();\n\n const turnServerResult = await meeting.roap.doTurnDiscovery(meeting, true);\n\n meeting.mediaProperties.reInitiatePeerconnection(turnServerResult.turnServerInfo);\n PeerConnectionManager.setPeerConnectionEvents(meeting);\n\n // update the peerconnection in the stats manager when ever we reconnect\n meeting.statsAnalyzer.updatePeerconnection(meeting.mediaProperties.peerConnection);\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["RecordingAction","_default","exports","default"],"sources":["enums.ts"],"sourcesContent":["enum RecordingAction {\r\n Start = 'Start',\r\n Stop = 'Stop',\r\n Pause = 'Pause',\r\n Resume = 'Resume',\r\n}\r\n\r\nexport default RecordingAction;\r\n"],"mappings":";;;;;;;IAAKA,eAAe;AAAA,WAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;AAAA,GAAfA,eAAe,KAAfA,eAAe;AAAA,IAAAC,QAAA,GAOLD,eAAe;AAAAE,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"names":["RecordingAction","_default","exports","default"],"sources":["enums.ts"],"sourcesContent":["enum RecordingAction {\n Start = 'Start',\n Stop = 'Stop',\n Pause = 'Pause',\n Resume = 'Resume',\n}\n\nexport default RecordingAction;\n"],"mappings":";;;;;;;IAAKA,eAAe;AAAA,WAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;AAAA,GAAfA,eAAe,KAAfA,eAAe;AAAA,IAAAC,QAAA,GAOLD,eAAe;AAAAE,OAAA,CAAAC,OAAA,GAAAF,QAAA"}