@webex/plugin-meetings 3.0.0-bnr.5 → 3.0.0-stream-classes.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 (854) hide show
  1. package/README.md +46 -8
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +342 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +70 -32
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/events.js +45 -0
  11. package/dist/breakouts/events.js.map +1 -0
  12. package/dist/breakouts/index.js +422 -217
  13. package/dist/breakouts/index.js.map +1 -1
  14. package/dist/breakouts/utils.js +12 -1
  15. package/dist/breakouts/utils.js.map +1 -1
  16. package/dist/common/errors/webex-errors.js +3 -2
  17. package/dist/common/errors/webex-errors.js.map +1 -1
  18. package/dist/common/logs/logger-proxy.js +1 -1
  19. package/dist/common/logs/logger-proxy.js.map +1 -1
  20. package/dist/common/queue.js +24 -9
  21. package/dist/common/queue.js.map +1 -1
  22. package/dist/config.js +1 -7
  23. package/dist/config.js.map +1 -1
  24. package/dist/constants.js +118 -24
  25. package/dist/constants.js.map +1 -1
  26. package/dist/controls-options-manager/enums.js +2 -0
  27. package/dist/controls-options-manager/enums.js.map +1 -1
  28. package/dist/controls-options-manager/index.js +19 -14
  29. package/dist/controls-options-manager/index.js.map +1 -1
  30. package/dist/controls-options-manager/types.js.map +1 -1
  31. package/dist/controls-options-manager/util.js +80 -11
  32. package/dist/controls-options-manager/util.js.map +1 -1
  33. package/dist/index.js +62 -20
  34. package/dist/index.js.map +1 -1
  35. package/dist/interpretation/collection.js +23 -0
  36. package/dist/interpretation/collection.js.map +1 -0
  37. package/dist/interpretation/index.js +366 -0
  38. package/dist/interpretation/index.js.map +1 -0
  39. package/dist/interpretation/siLanguage.js +25 -0
  40. package/dist/interpretation/siLanguage.js.map +1 -0
  41. package/dist/locus-info/controlsUtils.js +71 -1
  42. package/dist/locus-info/controlsUtils.js.map +1 -1
  43. package/dist/locus-info/index.js +305 -57
  44. package/dist/locus-info/index.js.map +1 -1
  45. package/dist/locus-info/infoUtils.js +7 -1
  46. package/dist/locus-info/infoUtils.js.map +1 -1
  47. package/dist/locus-info/mediaSharesUtils.js +43 -1
  48. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  49. package/dist/locus-info/parser.js +219 -63
  50. package/dist/locus-info/parser.js.map +1 -1
  51. package/dist/locus-info/selfUtils.js +44 -22
  52. package/dist/locus-info/selfUtils.js.map +1 -1
  53. package/dist/media/index.js +57 -104
  54. package/dist/media/index.js.map +1 -1
  55. package/dist/media/properties.js +60 -121
  56. package/dist/media/properties.js.map +1 -1
  57. package/dist/meeting/in-meeting-actions.js +61 -3
  58. package/dist/meeting/in-meeting-actions.js.map +1 -1
  59. package/dist/meeting/index.js +2530 -2534
  60. package/dist/meeting/index.js.map +1 -1
  61. package/dist/meeting/locusMediaRequest.js +292 -0
  62. package/dist/meeting/locusMediaRequest.js.map +1 -0
  63. package/dist/meeting/muteState.js +125 -205
  64. package/dist/meeting/muteState.js.map +1 -1
  65. package/dist/meeting/request.js +150 -150
  66. package/dist/meeting/request.js.map +1 -1
  67. package/dist/meeting/util.js +568 -438
  68. package/dist/meeting/util.js.map +1 -1
  69. package/dist/meeting-info/index.js +48 -7
  70. package/dist/meeting-info/index.js.map +1 -1
  71. package/dist/meeting-info/meeting-info-v2.js +94 -38
  72. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  73. package/dist/meeting-info/utilv2.js +4 -2
  74. package/dist/meeting-info/utilv2.js.map +1 -1
  75. package/dist/meetings/index.js +260 -85
  76. package/dist/meetings/index.js.map +1 -1
  77. package/dist/meetings/meetings.types.js +7 -0
  78. package/dist/meetings/meetings.types.js.map +1 -0
  79. package/dist/meetings/util.js +42 -7
  80. package/dist/meetings/util.js.map +1 -1
  81. package/dist/member/index.js +26 -0
  82. package/dist/member/index.js.map +1 -1
  83. package/dist/member/types.js +11 -1
  84. package/dist/member/types.js.map +1 -1
  85. package/dist/member/util.js +60 -23
  86. package/dist/member/util.js.map +1 -1
  87. package/dist/members/index.js +4 -1
  88. package/dist/members/index.js.map +1 -1
  89. package/dist/members/request.js +75 -45
  90. package/dist/members/request.js.map +1 -1
  91. package/dist/members/util.js +308 -317
  92. package/dist/members/util.js.map +1 -1
  93. package/dist/metrics/constants.js +1 -0
  94. package/dist/metrics/constants.js.map +1 -1
  95. package/dist/metrics/index.js +1 -451
  96. package/dist/metrics/index.js.map +1 -1
  97. package/dist/multistream/mediaRequestManager.js +136 -40
  98. package/dist/multistream/mediaRequestManager.js.map +1 -1
  99. package/dist/multistream/receiveSlot.js.map +1 -1
  100. package/dist/multistream/receiveSlotManager.js +4 -4
  101. package/dist/multistream/receiveSlotManager.js.map +1 -1
  102. package/dist/multistream/remoteMedia.js.map +1 -1
  103. package/dist/multistream/remoteMediaGroup.js +60 -3
  104. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  105. package/dist/multistream/remoteMediaManager.js +36 -0
  106. package/dist/multistream/remoteMediaManager.js.map +1 -1
  107. package/dist/multistream/sendSlotManager.js +233 -0
  108. package/dist/multistream/sendSlotManager.js.map +1 -0
  109. package/dist/reachability/index.js +18 -3
  110. package/dist/reachability/index.js.map +1 -1
  111. package/dist/reachability/request.js +5 -3
  112. package/dist/reachability/request.js.map +1 -1
  113. package/dist/reconnection-manager/index.js +181 -153
  114. package/dist/reconnection-manager/index.js.map +1 -1
  115. package/dist/recording-controller/index.js +21 -2
  116. package/dist/recording-controller/index.js.map +1 -1
  117. package/dist/recording-controller/util.js +9 -8
  118. package/dist/recording-controller/util.js.map +1 -1
  119. package/dist/roap/index.js +25 -32
  120. package/dist/roap/index.js.map +1 -1
  121. package/dist/roap/request.js +42 -51
  122. package/dist/roap/request.js.map +1 -1
  123. package/dist/roap/turnDiscovery.js +97 -38
  124. package/dist/roap/turnDiscovery.js.map +1 -1
  125. package/dist/rtcMetrics/constants.js +12 -0
  126. package/dist/rtcMetrics/constants.js.map +1 -0
  127. package/dist/rtcMetrics/index.js +117 -0
  128. package/dist/rtcMetrics/index.js.map +1 -0
  129. package/dist/statsAnalyzer/index.js +0 -1
  130. package/dist/statsAnalyzer/index.js.map +1 -1
  131. package/dist/types/annotation/annotation.types.d.ts +42 -0
  132. package/dist/types/annotation/constants.d.ts +31 -0
  133. package/dist/types/annotation/index.d.ts +117 -0
  134. package/dist/types/breakouts/events.d.ts +8 -0
  135. package/dist/types/breakouts/utils.d.ts +7 -0
  136. package/dist/types/common/errors/webex-errors.d.ts +1 -1
  137. package/dist/types/common/queue.d.ts +9 -7
  138. package/dist/types/config.d.ts +0 -6
  139. package/dist/types/constants.d.ts +95 -22
  140. package/dist/types/controls-options-manager/enums.d.ts +2 -0
  141. package/dist/types/controls-options-manager/index.d.ts +1 -1
  142. package/dist/types/controls-options-manager/types.d.ts +7 -1
  143. package/dist/types/index.d.ts +1 -1
  144. package/dist/types/interpretation/collection.d.ts +5 -0
  145. package/dist/types/interpretation/index.d.ts +5 -0
  146. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  147. package/dist/types/locus-info/index.d.ts +47 -2
  148. package/dist/types/locus-info/parser.d.ts +65 -6
  149. package/dist/types/media/index.d.ts +2 -0
  150. package/dist/types/media/properties.d.ts +34 -49
  151. package/dist/types/meeting/in-meeting-actions.d.ts +60 -2
  152. package/dist/types/meeting/index.d.ts +268 -473
  153. package/dist/types/meeting/locusMediaRequest.d.ts +75 -0
  154. package/dist/types/meeting/muteState.d.ts +53 -54
  155. package/dist/types/meeting/request.d.ts +61 -43
  156. package/dist/types/meeting/util.d.ts +93 -1
  157. package/dist/types/meeting-info/index.d.ts +6 -1
  158. package/dist/types/meeting-info/meeting-info-v2.d.ts +14 -3
  159. package/dist/types/meetings/index.d.ts +56 -11
  160. package/dist/types/meetings/meetings.types.d.ts +4 -0
  161. package/dist/types/member/index.d.ts +4 -1
  162. package/dist/types/member/types.d.ts +11 -0
  163. package/dist/types/members/request.d.ts +56 -11
  164. package/dist/types/members/util.d.ts +209 -1
  165. package/dist/types/metrics/constants.d.ts +1 -0
  166. package/dist/types/metrics/index.d.ts +4 -111
  167. package/dist/types/multistream/mediaRequestManager.d.ts +27 -10
  168. package/dist/types/multistream/receiveSlot.d.ts +3 -3
  169. package/dist/types/multistream/remoteMedia.d.ts +2 -2
  170. package/dist/types/multistream/remoteMediaManager.d.ts +14 -0
  171. package/dist/types/multistream/sendSlotManager.d.ts +61 -0
  172. package/dist/types/reachability/index.d.ts +6 -0
  173. package/dist/types/reachability/request.d.ts +3 -1
  174. package/dist/types/reconnection-manager/index.d.ts +2 -2
  175. package/dist/types/recording-controller/index.d.ts +15 -1
  176. package/dist/types/recording-controller/util.d.ts +5 -4
  177. package/dist/types/roap/request.d.ts +8 -8
  178. package/dist/types/roap/turnDiscovery.d.ts +18 -1
  179. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  180. package/dist/types/rtcMetrics/index.d.ts +47 -0
  181. package/package.json +21 -20
  182. package/src/annotation/annotation.types.ts +50 -0
  183. package/src/annotation/constants.ts +36 -0
  184. package/src/annotation/index.ts +328 -0
  185. package/src/breakouts/README.md +3 -2
  186. package/src/breakouts/breakout.ts +62 -27
  187. package/src/breakouts/events.ts +56 -0
  188. package/src/breakouts/index.ts +244 -64
  189. package/src/breakouts/utils.ts +13 -0
  190. package/src/common/errors/webex-errors.ts +6 -2
  191. package/src/common/logs/logger-proxy.ts +1 -1
  192. package/src/common/queue.ts +22 -8
  193. package/src/config.ts +0 -6
  194. package/src/constants.ts +111 -19
  195. package/src/controls-options-manager/enums.ts +2 -0
  196. package/src/controls-options-manager/index.ts +13 -10
  197. package/src/controls-options-manager/types.ts +10 -0
  198. package/src/controls-options-manager/util.ts +82 -11
  199. package/src/index.ts +18 -11
  200. package/src/interpretation/README.md +60 -0
  201. package/src/interpretation/collection.ts +19 -0
  202. package/src/interpretation/index.ts +332 -0
  203. package/src/interpretation/siLanguage.ts +18 -0
  204. package/src/locus-info/controlsUtils.ts +81 -0
  205. package/src/locus-info/index.ts +318 -57
  206. package/src/locus-info/infoUtils.ts +10 -2
  207. package/src/locus-info/mediaSharesUtils.ts +48 -0
  208. package/src/locus-info/parser.ts +224 -39
  209. package/src/locus-info/selfUtils.ts +32 -20
  210. package/src/media/index.ts +94 -108
  211. package/src/media/properties.ts +69 -109
  212. package/src/meeting/in-meeting-actions.ts +120 -4
  213. package/src/meeting/index.ts +1967 -2120
  214. package/src/meeting/locusMediaRequest.ts +314 -0
  215. package/src/meeting/muteState.ts +119 -194
  216. package/src/meeting/request.ts +122 -115
  217. package/src/meeting/util.ts +549 -413
  218. package/src/meeting-info/index.ts +54 -8
  219. package/src/meeting-info/meeting-info-v2.ts +89 -24
  220. package/src/meeting-info/utilv2.ts +6 -2
  221. package/src/meetings/index.ts +247 -87
  222. package/src/meetings/meetings.types.ts +12 -0
  223. package/src/meetings/util.ts +47 -12
  224. package/src/member/index.ts +28 -1
  225. package/src/member/types.ts +14 -0
  226. package/src/member/util.ts +75 -26
  227. package/src/members/index.ts +7 -1
  228. package/src/members/request.ts +61 -21
  229. package/src/members/util.ts +316 -326
  230. package/src/metrics/constants.ts +1 -0
  231. package/src/metrics/index.ts +1 -474
  232. package/src/multistream/mediaRequestManager.ts +183 -67
  233. package/src/multistream/receiveSlot.ts +4 -4
  234. package/src/multistream/receiveSlotManager.ts +4 -4
  235. package/src/multistream/remoteMedia.ts +2 -2
  236. package/src/multistream/remoteMediaGroup.ts +59 -0
  237. package/src/multistream/remoteMediaManager.ts +33 -0
  238. package/src/multistream/sendSlotManager.ts +170 -0
  239. package/src/reachability/index.ts +15 -4
  240. package/src/reachability/request.ts +7 -3
  241. package/src/reconnection-manager/index.ts +36 -29
  242. package/src/recording-controller/index.ts +20 -3
  243. package/src/recording-controller/util.ts +26 -9
  244. package/src/roap/index.ts +25 -30
  245. package/src/roap/request.ts +44 -51
  246. package/src/roap/turnDiscovery.ts +51 -25
  247. package/src/rtcMetrics/constants.ts +3 -0
  248. package/src/rtcMetrics/index.ts +100 -0
  249. package/src/statsAnalyzer/index.ts +0 -1
  250. package/test/integration/spec/converged-space-meetings.js +60 -3
  251. package/test/integration/spec/journey.js +336 -259
  252. package/test/integration/spec/space-meeting.js +76 -3
  253. package/test/unit/spec/annotation/index.ts +418 -0
  254. package/test/unit/spec/breakouts/breakout.ts +85 -26
  255. package/test/unit/spec/breakouts/events.ts +89 -0
  256. package/test/unit/spec/breakouts/index.ts +636 -98
  257. package/test/unit/spec/breakouts/utils.js +19 -1
  258. package/test/unit/spec/common/queue.js +31 -2
  259. package/test/unit/spec/controls-options-manager/index.js +8 -1
  260. package/test/unit/spec/controls-options-manager/util.js +576 -397
  261. package/test/unit/spec/fixture/locus.js +1 -0
  262. package/test/unit/spec/interpretation/collection.ts +15 -0
  263. package/test/unit/spec/interpretation/index.ts +589 -0
  264. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  265. package/test/unit/spec/locus-info/controlsUtils.js +195 -1
  266. package/test/unit/spec/locus-info/index.js +950 -45
  267. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  268. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  269. package/test/unit/spec/locus-info/parser.js +62 -22
  270. package/test/unit/spec/locus-info/selfConstant.js +19 -0
  271. package/test/unit/spec/locus-info/selfUtils.js +131 -26
  272. package/test/unit/spec/media/index.ts +82 -79
  273. package/test/unit/spec/meeting/in-meeting-actions.ts +60 -2
  274. package/test/unit/spec/meeting/index.js +3208 -1734
  275. package/test/unit/spec/meeting/locusMediaRequest.ts +443 -0
  276. package/test/unit/spec/meeting/muteState.js +328 -417
  277. package/test/unit/spec/meeting/request.js +393 -48
  278. package/test/unit/spec/meeting/utils.js +552 -76
  279. package/test/unit/spec/meeting-info/index.js +181 -0
  280. package/test/unit/spec/meeting-info/meetinginfov2.js +258 -20
  281. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  282. package/test/unit/spec/meetings/index.js +631 -145
  283. package/test/unit/spec/meetings/utils.js +164 -9
  284. package/test/unit/spec/member/index.js +44 -14
  285. package/test/unit/spec/member/util.js +296 -155
  286. package/test/unit/spec/members/index.js +23 -3
  287. package/test/unit/spec/members/request.js +167 -35
  288. package/test/unit/spec/metrics/index.js +1 -50
  289. package/test/unit/spec/multistream/mediaRequestManager.ts +366 -8
  290. package/test/unit/spec/multistream/receiveSlot.ts +1 -1
  291. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  292. package/test/unit/spec/multistream/remoteMediaManager.ts +123 -0
  293. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  294. package/test/unit/spec/reachability/index.ts +66 -5
  295. package/test/unit/spec/reachability/request.js +3 -1
  296. package/test/unit/spec/reconnection-manager/index.js +55 -5
  297. package/test/unit/spec/recording-controller/index.js +294 -218
  298. package/test/unit/spec/recording-controller/util.js +223 -96
  299. package/test/unit/spec/roap/index.ts +21 -48
  300. package/test/unit/spec/roap/request.ts +74 -60
  301. package/test/unit/spec/roap/turnDiscovery.ts +30 -6
  302. package/test/unit/spec/rtcMetrics/index.ts +68 -0
  303. package/test/utils/integrationTestUtils.js +46 -0
  304. package/test/utils/testUtils.js +0 -60
  305. package/dist/common/browser-detection.d.ts +0 -9
  306. package/dist/common/collection.d.ts +0 -48
  307. package/dist/common/config.d.ts +0 -2
  308. package/dist/common/errors/captcha-error.d.ts +0 -15
  309. package/dist/common/errors/intent-to-join.d.ts +0 -16
  310. package/dist/common/errors/join-meeting.d.ts +0 -17
  311. package/dist/common/errors/media.d.ts +0 -15
  312. package/dist/common/errors/parameter.d.ts +0 -15
  313. package/dist/common/errors/password-error.d.ts +0 -15
  314. package/dist/common/errors/permission.d.ts +0 -14
  315. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  316. package/dist/common/errors/reconnection.d.ts +0 -15
  317. package/dist/common/errors/stats.d.ts +0 -15
  318. package/dist/common/errors/webex-errors.d.ts +0 -81
  319. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  320. package/dist/common/events/events-scope.d.ts +0 -17
  321. package/dist/common/events/events.d.ts +0 -12
  322. package/dist/common/events/trigger-proxy.d.ts +0 -2
  323. package/dist/common/events/util.d.ts +0 -2
  324. package/dist/common/logs/logger-config.d.ts +0 -2
  325. package/dist/common/logs/logger-proxy.d.ts +0 -2
  326. package/dist/common/logs/request.d.ts +0 -34
  327. package/dist/common/queue.d.ts +0 -32
  328. package/dist/config.d.ts +0 -73
  329. package/dist/constants.d.ts +0 -924
  330. package/dist/controls-options-manager/constants.d.ts +0 -4
  331. package/dist/controls-options-manager/enums.d.ts +0 -5
  332. package/dist/controls-options-manager/index.d.ts +0 -120
  333. package/dist/controls-options-manager/util.d.ts +0 -7
  334. package/dist/docs/markdown/index.md +0 -12
  335. package/dist/docs/markdown/plugin-meetings.constants._active_.md +0 -11
  336. package/dist/docs/markdown/plugin-meetings.constants._answer_.md +0 -11
  337. package/dist/docs/markdown/plugin-meetings.constants._call_.md +0 -11
  338. package/dist/docs/markdown/plugin-meetings.constants._conflict_.md +0 -11
  339. package/dist/docs/markdown/plugin-meetings.constants._conversation_url_.md +0 -11
  340. package/dist/docs/markdown/plugin-meetings.constants._created_.md +0 -11
  341. package/dist/docs/markdown/plugin-meetings.constants._error_.md +0 -11
  342. package/dist/docs/markdown/plugin-meetings.constants._forced_.md +0 -11
  343. package/dist/docs/markdown/plugin-meetings.constants._id_.md +0 -11
  344. package/dist/docs/markdown/plugin-meetings.constants._idle_.md +0 -11
  345. package/dist/docs/markdown/plugin-meetings.constants._in_.md +0 -11
  346. package/dist/docs/markdown/plugin-meetings.constants._in_lobby_.md +0 -11
  347. package/dist/docs/markdown/plugin-meetings.constants._in_meeting_.md +0 -11
  348. package/dist/docs/markdown/plugin-meetings.constants._inactive_.md +0 -11
  349. package/dist/docs/markdown/plugin-meetings.constants._incoming_.md +0 -11
  350. package/dist/docs/markdown/plugin-meetings.constants._join_.md +0 -11
  351. package/dist/docs/markdown/plugin-meetings.constants._joined_.md +0 -11
  352. package/dist/docs/markdown/plugin-meetings.constants._left_.md +0 -11
  353. package/dist/docs/markdown/plugin-meetings.constants._locus_id_.md +0 -11
  354. package/dist/docs/markdown/plugin-meetings.constants._meeting_.md +0 -11
  355. package/dist/docs/markdown/plugin-meetings.constants._meeting_center_.md +0 -11
  356. package/dist/docs/markdown/plugin-meetings.constants._meeting_id_.md +0 -11
  357. package/dist/docs/markdown/plugin-meetings.constants._meeting_link_.md +0 -11
  358. package/dist/docs/markdown/plugin-meetings.constants._meeting_uuid_.md +0 -11
  359. package/dist/docs/markdown/plugin-meetings.constants._move_media_.md +0 -11
  360. package/dist/docs/markdown/plugin-meetings.constants._none_.md +0 -11
  361. package/dist/docs/markdown/plugin-meetings.constants._not_in_meeting_.md +0 -11
  362. package/dist/docs/markdown/plugin-meetings.constants._observe_.md +0 -11
  363. package/dist/docs/markdown/plugin-meetings.constants._people_.md +0 -11
  364. package/dist/docs/markdown/plugin-meetings.constants._personal_room_.md +0 -11
  365. package/dist/docs/markdown/plugin-meetings.constants._receive_only_.md +0 -11
  366. package/dist/docs/markdown/plugin-meetings.constants._remove_.md +0 -11
  367. package/dist/docs/markdown/plugin-meetings.constants._requested_.md +0 -11
  368. package/dist/docs/markdown/plugin-meetings.constants._resource_room_.md +0 -11
  369. package/dist/docs/markdown/plugin-meetings.constants._room_.md +0 -11
  370. package/dist/docs/markdown/plugin-meetings.constants._s_line.md +0 -11
  371. package/dist/docs/markdown/plugin-meetings.constants._send_only_.md +0 -11
  372. package/dist/docs/markdown/plugin-meetings.constants._send_receive_.md +0 -11
  373. package/dist/docs/markdown/plugin-meetings.constants._sip_bridge_.md +0 -11
  374. package/dist/docs/markdown/plugin-meetings.constants._sip_uri_.md +0 -11
  375. package/dist/docs/markdown/plugin-meetings.constants._slides_.md +0 -11
  376. package/dist/docs/markdown/plugin-meetings.constants._unknown_.md +0 -11
  377. package/dist/docs/markdown/plugin-meetings.constants._user_.md +0 -11
  378. package/dist/docs/markdown/plugin-meetings.constants._wait_.md +0 -11
  379. package/dist/docs/markdown/plugin-meetings.constants._webex_meeting_.md +0 -11
  380. package/dist/docs/markdown/plugin-meetings.constants.alert.md +0 -11
  381. package/dist/docs/markdown/plugin-meetings.constants.alternate_redirect_true.md +0 -11
  382. package/dist/docs/markdown/plugin-meetings.constants.answer.md +0 -11
  383. package/dist/docs/markdown/plugin-meetings.constants.api.md +0 -14
  384. package/dist/docs/markdown/plugin-meetings.constants.audio.md +0 -11
  385. package/dist/docs/markdown/plugin-meetings.constants.audio_input.md +0 -11
  386. package/dist/docs/markdown/plugin-meetings.constants.audio_status.md +0 -11
  387. package/dist/docs/markdown/plugin-meetings.constants.available_resolutions.md +0 -60
  388. package/dist/docs/markdown/plugin-meetings.constants.bnr_status.md +0 -16
  389. package/dist/docs/markdown/plugin-meetings.constants.breakouts.md +0 -51
  390. package/dist/docs/markdown/plugin-meetings.constants.calendar.md +0 -11
  391. package/dist/docs/markdown/plugin-meetings.constants.calendar_events.md +0 -17
  392. package/dist/docs/markdown/plugin-meetings.constants.calendar_events_api.md +0 -11
  393. package/dist/docs/markdown/plugin-meetings.constants.call.md +0 -11
  394. package/dist/docs/markdown/plugin-meetings.constants.call_removed_reason.md +0 -15
  395. package/dist/docs/markdown/plugin-meetings.constants.claim.md +0 -11
  396. package/dist/docs/markdown/plugin-meetings.constants.cmr_meetings.md +0 -11
  397. package/dist/docs/markdown/plugin-meetings.constants.complete.md +0 -11
  398. package/dist/docs/markdown/plugin-meetings.constants.connection_state.md +0 -18
  399. package/dist/docs/markdown/plugin-meetings.constants.content.md +0 -11
  400. package/dist/docs/markdown/plugin-meetings.constants.controls.md +0 -11
  401. package/dist/docs/markdown/plugin-meetings.constants.conversation_service.md +0 -11
  402. package/dist/docs/markdown/plugin-meetings.constants.conversation_url.md +0 -11
  403. package/dist/docs/markdown/plugin-meetings.constants.correlation_id.md +0 -11
  404. package/dist/docs/markdown/plugin-meetings.constants.decline.md +0 -11
  405. package/dist/docs/markdown/plugin-meetings.constants.default_excluded_stats.md +0 -11
  406. package/dist/docs/markdown/plugin-meetings.constants.default_get_stats_filter.md +0 -13
  407. package/dist/docs/markdown/plugin-meetings.constants.development.md +0 -11
  408. package/dist/docs/markdown/plugin-meetings.constants.dialer_regex.md +0 -15
  409. package/dist/docs/markdown/plugin-meetings.constants.display_hints.md +0 -51
  410. package/dist/docs/markdown/plugin-meetings.constants.embedded_app_types.md +0 -14
  411. package/dist/docs/markdown/plugin-meetings.constants.end.md +0 -11
  412. package/dist/docs/markdown/plugin-meetings.constants.ended.md +0 -11
  413. package/dist/docs/markdown/plugin-meetings.constants.error.md +0 -11
  414. package/dist/docs/markdown/plugin-meetings.constants.error_dictionary.md +0 -62
  415. package/dist/docs/markdown/plugin-meetings.constants.event_triggers.md +0 -82
  416. package/dist/docs/markdown/plugin-meetings.constants.event_types.md +0 -21
  417. package/dist/docs/markdown/plugin-meetings.constants.events.md +0 -26
  418. package/dist/docs/markdown/plugin-meetings.constants.floor_action.md +0 -15
  419. package/dist/docs/markdown/plugin-meetings.constants.full_state.md +0 -17
  420. package/dist/docs/markdown/plugin-meetings.constants.gathering.md +0 -11
  421. package/dist/docs/markdown/plugin-meetings.constants.hecate.md +0 -11
  422. package/dist/docs/markdown/plugin-meetings.constants.host.md +0 -11
  423. package/dist/docs/markdown/plugin-meetings.constants.http_verbs.md +0 -17
  424. package/dist/docs/markdown/plugin-meetings.constants.https_protocol.md +0 -11
  425. package/dist/docs/markdown/plugin-meetings.constants.ice_fail_timeout.md +0 -11
  426. package/dist/docs/markdown/plugin-meetings.constants.ice_gathering_state.md +0 -15
  427. package/dist/docs/markdown/plugin-meetings.constants.ice_state.md +0 -18
  428. package/dist/docs/markdown/plugin-meetings.constants.ice_timeout.md +0 -11
  429. package/dist/docs/markdown/plugin-meetings.constants.intent_to_join.md +0 -11
  430. package/dist/docs/markdown/plugin-meetings.constants.ipv4_regex.md +0 -11
  431. package/dist/docs/markdown/plugin-meetings.constants.join.md +0 -11
  432. package/dist/docs/markdown/plugin-meetings.constants.layout_types.md +0 -13
  433. package/dist/docs/markdown/plugin-meetings.constants.leave.md +0 -11
  434. package/dist/docs/markdown/plugin-meetings.constants.live.md +0 -11
  435. package/dist/docs/markdown/plugin-meetings.constants.local.md +0 -11
  436. package/dist/docs/markdown/plugin-meetings.constants.loci.md +0 -11
  437. package/dist/docs/markdown/plugin-meetings.constants.locus.md +0 -26
  438. package/dist/docs/markdown/plugin-meetings.constants.locus_url.md +0 -11
  439. package/dist/docs/markdown/plugin-meetings.constants.locusevent.md +0 -33
  440. package/dist/docs/markdown/plugin-meetings.constants.locusinfo.md +0 -43
  441. package/dist/docs/markdown/plugin-meetings.constants.max_random_delay_for_meeting_info.md +0 -11
  442. package/dist/docs/markdown/plugin-meetings.constants.md +0 -186
  443. package/dist/docs/markdown/plugin-meetings.constants.media.md +0 -11
  444. package/dist/docs/markdown/plugin-meetings.constants.media_devices.md +0 -15
  445. package/dist/docs/markdown/plugin-meetings.constants.media_peer_connection_name.md +0 -11
  446. package/dist/docs/markdown/plugin-meetings.constants.media_state.md +0 -14
  447. package/dist/docs/markdown/plugin-meetings.constants.media_track_constraint.md +0 -17
  448. package/dist/docs/markdown/plugin-meetings.constants.mediacontent.md +0 -14
  449. package/dist/docs/markdown/plugin-meetings.constants.meet.md +0 -11
  450. package/dist/docs/markdown/plugin-meetings.constants.meet_m.md +0 -11
  451. package/dist/docs/markdown/plugin-meetings.constants.meeting_audio_state_machine.md +0 -20
  452. package/dist/docs/markdown/plugin-meetings.constants.meeting_end_reason.md +0 -14
  453. package/dist/docs/markdown/plugin-meetings.constants.meeting_errors.md +0 -102
  454. package/dist/docs/markdown/plugin-meetings.constants.meeting_info_failure_reason.md +0 -16
  455. package/dist/docs/markdown/plugin-meetings.constants.meeting_removed_reason.md +0 -19
  456. package/dist/docs/markdown/plugin-meetings.constants.meeting_state.md +0 -25
  457. package/dist/docs/markdown/plugin-meetings.constants.meeting_state_machine.md +0 -31
  458. package/dist/docs/markdown/plugin-meetings.constants.meeting_video_state_machine.md +0 -20
  459. package/dist/docs/markdown/plugin-meetings.constants.meetinginfo.md +0 -11
  460. package/dist/docs/markdown/plugin-meetings.constants.meetings.md +0 -11
  461. package/dist/docs/markdown/plugin-meetings.constants.metrics_join_times_max_duration.md +0 -11
  462. package/dist/docs/markdown/plugin-meetings.constants.moderator_false.md +0 -11
  463. package/dist/docs/markdown/plugin-meetings.constants.moderator_true.md +0 -11
  464. package/dist/docs/markdown/plugin-meetings.constants.mqa_inteval.md +0 -11
  465. package/dist/docs/markdown/plugin-meetings.constants.mqa_stats.md +0 -82
  466. package/dist/docs/markdown/plugin-meetings.constants.network_status.md +0 -15
  467. package/dist/docs/markdown/plugin-meetings.constants.network_type.md +0 -16
  468. package/dist/docs/markdown/plugin-meetings.constants.offline.md +0 -11
  469. package/dist/docs/markdown/plugin-meetings.constants.online.md +0 -11
  470. package/dist/docs/markdown/plugin-meetings.constants.participant.md +0 -11
  471. package/dist/docs/markdown/plugin-meetings.constants.participant_deltas.md +0 -22
  472. package/dist/docs/markdown/plugin-meetings.constants.password_status.md +0 -16
  473. package/dist/docs/markdown/plugin-meetings.constants.pc_bail_timeout.md +0 -11
  474. package/dist/docs/markdown/plugin-meetings.constants.peer_connection_state.md +0 -14
  475. package/dist/docs/markdown/plugin-meetings.constants.provisional_type_dial_in.md +0 -11
  476. package/dist/docs/markdown/plugin-meetings.constants.provisional_type_dial_out.md +0 -11
  477. package/dist/docs/markdown/plugin-meetings.constants.pstn_status.md +0 -18
  478. package/dist/docs/markdown/plugin-meetings.constants.quality_levels.md +0 -19
  479. package/dist/docs/markdown/plugin-meetings.constants.reachability.md +0 -15
  480. package/dist/docs/markdown/plugin-meetings.constants.ready.md +0 -11
  481. package/dist/docs/markdown/plugin-meetings.constants.reconnection.md +0 -19
  482. package/dist/docs/markdown/plugin-meetings.constants.recording_state.md +0 -16
  483. package/dist/docs/markdown/plugin-meetings.constants.remote.md +0 -11
  484. package/dist/docs/markdown/plugin-meetings.constants.resource.md +0 -15
  485. package/dist/docs/markdown/plugin-meetings.constants.retry_timeout.md +0 -11
  486. package/dist/docs/markdown/plugin-meetings.constants.roap.md +0 -22
  487. package/dist/docs/markdown/plugin-meetings.constants.self_roles.md +0 -14
  488. package/dist/docs/markdown/plugin-meetings.constants.send_dtmf_endpoint.md +0 -11
  489. package/dist/docs/markdown/plugin-meetings.constants.sendrecv.md +0 -11
  490. package/dist/docs/markdown/plugin-meetings.constants.share.md +0 -11
  491. package/dist/docs/markdown/plugin-meetings.constants.share_peer_connection_name.md +0 -11
  492. package/dist/docs/markdown/plugin-meetings.constants.share_status.md +0 -16
  493. package/dist/docs/markdown/plugin-meetings.constants.share_stopped_reason.md +0 -14
  494. package/dist/docs/markdown/plugin-meetings.constants.sip_uri.md +0 -11
  495. package/dist/docs/markdown/plugin-meetings.constants.stats.md +0 -16
  496. package/dist/docs/markdown/plugin-meetings.constants.type.md +0 -11
  497. package/dist/docs/markdown/plugin-meetings.constants.use_uri_lookup_false.md +0 -11
  498. package/dist/docs/markdown/plugin-meetings.constants.uuid_reg.md +0 -11
  499. package/dist/docs/markdown/plugin-meetings.constants.valid_email_address.md +0 -11
  500. package/dist/docs/markdown/plugin-meetings.constants.valid_pin.md +0 -11
  501. package/dist/docs/markdown/plugin-meetings.constants.valid_pmr_address.md +0 -11
  502. package/dist/docs/markdown/plugin-meetings.constants.valid_pmr_link.md +0 -11
  503. package/dist/docs/markdown/plugin-meetings.constants.video.md +0 -11
  504. package/dist/docs/markdown/plugin-meetings.constants.video_input.md +0 -11
  505. package/dist/docs/markdown/plugin-meetings.constants.video_resolutions.md +0 -24
  506. package/dist/docs/markdown/plugin-meetings.constants.video_status.md +0 -11
  507. package/dist/docs/markdown/plugin-meetings.constants.wbxappapi_service.md +0 -11
  508. package/dist/docs/markdown/plugin-meetings.constants.webex_dot_com.md +0 -11
  509. package/dist/docs/markdown/plugin-meetings.constants.whiteboard.md +0 -11
  510. package/dist/docs/markdown/plugin-meetings.constants.www_dot.md +0 -11
  511. package/dist/docs/markdown/plugin-meetings.md +0 -28
  512. package/dist/docs/markdown/plugin-meetings.meeting.default._constructor_.md +0 -21
  513. package/dist/docs/markdown/plugin-meetings.meeting.default.acknowledge.md +0 -28
  514. package/dist/docs/markdown/plugin-meetings.meeting.default.addmedia.md +0 -28
  515. package/dist/docs/markdown/plugin-meetings.meeting.default.admit.md +0 -32
  516. package/dist/docs/markdown/plugin-meetings.meeting.default.attrs.md +0 -11
  517. package/dist/docs/markdown/plugin-meetings.meeting.default.audio.md +0 -11
  518. package/dist/docs/markdown/plugin-meetings.meeting.default.breakouts.md +0 -11
  519. package/dist/docs/markdown/plugin-meetings.meeting.default.callevents.md +0 -11
  520. package/dist/docs/markdown/plugin-meetings.meeting.default.cancelphoneinvite.md +0 -30
  521. package/dist/docs/markdown/plugin-meetings.meeting.default.canupdatemedia.md +0 -19
  522. package/dist/docs/markdown/plugin-meetings.meeting.default.changevideolayout.md +0 -38
  523. package/dist/docs/markdown/plugin-meetings.meeting.default.clearmeetingdata.md +0 -13
  524. package/dist/docs/markdown/plugin-meetings.meeting.default.closelocalshare.md +0 -21
  525. package/dist/docs/markdown/plugin-meetings.meeting.default.closelocalstream.md +0 -21
  526. package/dist/docs/markdown/plugin-meetings.meeting.default.closepeerconnections.md +0 -21
  527. package/dist/docs/markdown/plugin-meetings.meeting.default.closeremotestream.md +0 -26
  528. package/dist/docs/markdown/plugin-meetings.meeting.default.closeremotetracks.md +0 -19
  529. package/dist/docs/markdown/plugin-meetings.meeting.default.controlsoptionsmanager.md +0 -11
  530. package/dist/docs/markdown/plugin-meetings.meeting.default.conversationurl.md +0 -11
  531. package/dist/docs/markdown/plugin-meetings.meeting.default.correlationid.md +0 -11
  532. package/dist/docs/markdown/plugin-meetings.meeting.default.createmediaconnection.md +0 -26
  533. package/dist/docs/markdown/plugin-meetings.meeting.default.decline.md +0 -28
  534. package/dist/docs/markdown/plugin-meetings.meeting.default.deferjoin.md +0 -11
  535. package/dist/docs/markdown/plugin-meetings.meeting.default.destination.md +0 -11
  536. package/dist/docs/markdown/plugin-meetings.meeting.default.destinationtype.md +0 -11
  537. package/dist/docs/markdown/plugin-meetings.meeting.default.deviceurl.md +0 -11
  538. package/dist/docs/markdown/plugin-meetings.meeting.default.dialindevicestatus.md +0 -11
  539. package/dist/docs/markdown/plugin-meetings.meeting.default.dialinurl.md +0 -11
  540. package/dist/docs/markdown/plugin-meetings.meeting.default.dialoutdevicestatus.md +0 -11
  541. package/dist/docs/markdown/plugin-meetings.meeting.default.dialouturl.md +0 -11
  542. package/dist/docs/markdown/plugin-meetings.meeting.default.disconnectphoneaudio.md +0 -19
  543. package/dist/docs/markdown/plugin-meetings.meeting.default.endcallinitiatejoinreq.md +0 -11
  544. package/dist/docs/markdown/plugin-meetings.meeting.default.endjoinreqresp.md +0 -11
  545. package/dist/docs/markdown/plugin-meetings.meeting.default.endlocalsdpgenremotesdprecvdelay.md +0 -11
  546. package/dist/docs/markdown/plugin-meetings.meeting.default.endmeetingforall.md +0 -21
  547. package/dist/docs/markdown/plugin-meetings.meeting.default.fetchmeetinginfo.md +0 -29
  548. package/dist/docs/markdown/plugin-meetings.meeting.default.fetchmeetinginfotimeoutid.md +0 -11
  549. package/dist/docs/markdown/plugin-meetings.meeting.default.floorgrantpending.md +0 -11
  550. package/dist/docs/markdown/plugin-meetings.meeting.default.forwardevent.md +0 -29
  551. package/dist/docs/markdown/plugin-meetings.meeting.default.getanalyzermetricsprepayload.md +0 -32
  552. package/dist/docs/markdown/plugin-meetings.meeting.default.getcallinitiatejoinreq.md +0 -17
  553. package/dist/docs/markdown/plugin-meetings.meeting.default.getdevices.md +0 -13
  554. package/dist/docs/markdown/plugin-meetings.meeting.default.getjoinreqresp.md +0 -17
  555. package/dist/docs/markdown/plugin-meetings.meeting.default.getlocalsdpgenremotesdprecvdelay.md +0 -17
  556. package/dist/docs/markdown/plugin-meetings.meeting.default.getmediaconnectiondebugid.md +0 -15
  557. package/dist/docs/markdown/plugin-meetings.meeting.default.getmediastreams.md +0 -15
  558. package/dist/docs/markdown/plugin-meetings.meeting.default.getmembers.md +0 -21
  559. package/dist/docs/markdown/plugin-meetings.meeting.default.getsendingmediadelayduration.md +0 -24
  560. package/dist/docs/markdown/plugin-meetings.meeting.default.getsetupdelayduration.md +0 -24
  561. package/dist/docs/markdown/plugin-meetings.meeting.default.getsupporteddevices.md +0 -16
  562. package/dist/docs/markdown/plugin-meetings.meeting.default.gettotaljmt.md +0 -17
  563. package/dist/docs/markdown/plugin-meetings.meeting.default.guest.md +0 -11
  564. package/dist/docs/markdown/plugin-meetings.meeting.default.handledatachannelurlchange.md +0 -26
  565. package/dist/docs/markdown/plugin-meetings.meeting.default.handleroapfailure.md +0 -13
  566. package/dist/docs/markdown/plugin-meetings.meeting.default.hasjoinedonce.md +0 -11
  567. package/dist/docs/markdown/plugin-meetings.meeting.default.haswebsocketconnected.md +0 -11
  568. package/dist/docs/markdown/plugin-meetings.meeting.default.hostid.md +0 -11
  569. package/dist/docs/markdown/plugin-meetings.meeting.default.id.md +0 -11
  570. package/dist/docs/markdown/plugin-meetings.meeting.default.inmeetingactions.md +0 -11
  571. package/dist/docs/markdown/plugin-meetings.meeting.default.invite.md +0 -33
  572. package/dist/docs/markdown/plugin-meetings.meeting.default.isaudioconnected.md +0 -21
  573. package/dist/docs/markdown/plugin-meetings.meeting.default.isaudiomuted.md +0 -21
  574. package/dist/docs/markdown/plugin-meetings.meeting.default.isaudioself.md +0 -21
  575. package/dist/docs/markdown/plugin-meetings.meeting.default.islocalsharelive.md +0 -11
  576. package/dist/docs/markdown/plugin-meetings.meeting.default.ismultistream.md +0 -11
  577. package/dist/docs/markdown/plugin-meetings.meeting.default.isreactionssupported.md +0 -19
  578. package/dist/docs/markdown/plugin-meetings.meeting.default.isroapinprogress.md +0 -11
  579. package/dist/docs/markdown/plugin-meetings.meeting.default.issharing.md +0 -11
  580. package/dist/docs/markdown/plugin-meetings.meeting.default.istranscriptionsupported.md +0 -23
  581. package/dist/docs/markdown/plugin-meetings.meeting.default.isvideoconnected.md +0 -21
  582. package/dist/docs/markdown/plugin-meetings.meeting.default.isvideomuted.md +0 -21
  583. package/dist/docs/markdown/plugin-meetings.meeting.default.isvideoself.md +0 -21
  584. package/dist/docs/markdown/plugin-meetings.meeting.default.join.md +0 -28
  585. package/dist/docs/markdown/plugin-meetings.meeting.default.joinedwith.md +0 -11
  586. package/dist/docs/markdown/plugin-meetings.meeting.default.joinwithmedia.md +0 -36
  587. package/dist/docs/markdown/plugin-meetings.meeting.default.keepalivetimerid.md +0 -11
  588. package/dist/docs/markdown/plugin-meetings.meeting.default.lastvideolayoutinfo.md +0 -11
  589. package/dist/docs/markdown/plugin-meetings.meeting.default.leave.md +0 -31
  590. package/dist/docs/markdown/plugin-meetings.meeting.default.lockmeeting.md +0 -21
  591. package/dist/docs/markdown/plugin-meetings.meeting.default.locusid.md +0 -11
  592. package/dist/docs/markdown/plugin-meetings.meeting.default.locusinfo.md +0 -11
  593. package/dist/docs/markdown/plugin-meetings.meeting.default.locusurl.md +0 -11
  594. package/dist/docs/markdown/plugin-meetings.meeting.default.md +0 -227
  595. package/dist/docs/markdown/plugin-meetings.meeting.default.mediaconnections.md +0 -11
  596. package/dist/docs/markdown/plugin-meetings.meeting.default.mediaid.md +0 -11
  597. package/dist/docs/markdown/plugin-meetings.meeting.default.medianegotiatedevent.md +0 -13
  598. package/dist/docs/markdown/plugin-meetings.meeting.default.mediaproperties.md +0 -11
  599. package/dist/docs/markdown/plugin-meetings.meeting.default.mediarequestmanagers.md +0 -16
  600. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingfinitestatemachine.md +0 -11
  601. package/dist/docs/markdown/plugin-meetings.meeting.default.meetinginfo.md +0 -11
  602. package/dist/docs/markdown/plugin-meetings.meeting.default.meetinginfofailurereason.md +0 -11
  603. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingjoinurl.md +0 -11
  604. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingnumber.md +0 -11
  605. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingrequest.md +0 -11
  606. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingstate.md +0 -11
  607. package/dist/docs/markdown/plugin-meetings.meeting.default.members.md +0 -11
  608. package/dist/docs/markdown/plugin-meetings.meeting.default.movefrom.md +0 -28
  609. package/dist/docs/markdown/plugin-meetings.meeting.default.moveto.md +0 -28
  610. package/dist/docs/markdown/plugin-meetings.meeting.default.mute.md +0 -29
  611. package/dist/docs/markdown/plugin-meetings.meeting.default.muteaudio.md +0 -21
  612. package/dist/docs/markdown/plugin-meetings.meeting.default.mutevideo.md +0 -21
  613. package/dist/docs/markdown/plugin-meetings.meeting.default.namespace.md +0 -11
  614. package/dist/docs/markdown/plugin-meetings.meeting.default.networkqualitymonitor.md +0 -11
  615. package/dist/docs/markdown/plugin-meetings.meeting.default.networkstatus.md +0 -11
  616. package/dist/docs/markdown/plugin-meetings.meeting.default.options.md +0 -11
  617. package/dist/docs/markdown/plugin-meetings.meeting.default.orgid.md +0 -11
  618. package/dist/docs/markdown/plugin-meetings.meeting.default.owner.md +0 -11
  619. package/dist/docs/markdown/plugin-meetings.meeting.default.parsemeetinginfo.md +0 -34
  620. package/dist/docs/markdown/plugin-meetings.meeting.default.partner.md +0 -11
  621. package/dist/docs/markdown/plugin-meetings.meeting.default.passwordstatus.md +0 -11
  622. package/dist/docs/markdown/plugin-meetings.meeting.default.pauserecording.md +0 -21
  623. package/dist/docs/markdown/plugin-meetings.meeting.default.permissiontoken.md +0 -11
  624. package/dist/docs/markdown/plugin-meetings.meeting.default.policy.md +0 -11
  625. package/dist/docs/markdown/plugin-meetings.meeting.default.processnextqueuedmediaupdate.md +0 -13
  626. package/dist/docs/markdown/plugin-meetings.meeting.default.publishtracks.md +0 -33
  627. package/dist/docs/markdown/plugin-meetings.meeting.default.queuedmediaupdates.md +0 -11
  628. package/dist/docs/markdown/plugin-meetings.meeting.default.receiveslotmanager.md +0 -11
  629. package/dist/docs/markdown/plugin-meetings.meeting.default.reconnect.md +0 -28
  630. package/dist/docs/markdown/plugin-meetings.meeting.default.reconnectionmanager.md +0 -11
  631. package/dist/docs/markdown/plugin-meetings.meeting.default.recording.md +0 -11
  632. package/dist/docs/markdown/plugin-meetings.meeting.default.recordingcontroller.md +0 -11
  633. package/dist/docs/markdown/plugin-meetings.meeting.default.refreshcaptcha.md +0 -21
  634. package/dist/docs/markdown/plugin-meetings.meeting.default.remotemediamanager.md +0 -11
  635. package/dist/docs/markdown/plugin-meetings.meeting.default.remove.md +0 -28
  636. package/dist/docs/markdown/plugin-meetings.meeting.default.requiredcaptcha.md +0 -11
  637. package/dist/docs/markdown/plugin-meetings.meeting.default.resource.md +0 -11
  638. package/dist/docs/markdown/plugin-meetings.meeting.default.resourceid.md +0 -11
  639. package/dist/docs/markdown/plugin-meetings.meeting.default.resourceurl.md +0 -11
  640. package/dist/docs/markdown/plugin-meetings.meeting.default.resumerecording.md +0 -21
  641. package/dist/docs/markdown/plugin-meetings.meeting.default.roap.md +0 -11
  642. package/dist/docs/markdown/plugin-meetings.meeting.default.roapseq.md +0 -11
  643. package/dist/docs/markdown/plugin-meetings.meeting.default.selfid.md +0 -11
  644. package/dist/docs/markdown/plugin-meetings.meeting.default.senddtmf.md +0 -28
  645. package/dist/docs/markdown/plugin-meetings.meeting.default.sendreaction.md +0 -29
  646. package/dist/docs/markdown/plugin-meetings.meeting.default.setdisallowunmute.md +0 -26
  647. package/dist/docs/markdown/plugin-meetings.meeting.default.setendcallinitiatejoinreq.md +0 -17
  648. package/dist/docs/markdown/plugin-meetings.meeting.default.setendjoinreqresp.md +0 -17
  649. package/dist/docs/markdown/plugin-meetings.meeting.default.setendlocalsdpgenremotesdprecvdelay.md +0 -17
  650. package/dist/docs/markdown/plugin-meetings.meeting.default.setendsendingmediadelay.md +0 -24
  651. package/dist/docs/markdown/plugin-meetings.meeting.default.setendsetupdelay.md +0 -24
  652. package/dist/docs/markdown/plugin-meetings.meeting.default.setlocalsharetrack.md +0 -28
  653. package/dist/docs/markdown/plugin-meetings.meeting.default.setlocaltracks.md +0 -28
  654. package/dist/docs/markdown/plugin-meetings.meeting.default.setlocalvideoquality.md +0 -26
  655. package/dist/docs/markdown/plugin-meetings.meeting.default.setmeetingquality.md +0 -31
  656. package/dist/docs/markdown/plugin-meetings.meeting.default.setmercurylistener.md +0 -21
  657. package/dist/docs/markdown/plugin-meetings.meeting.default.setmuteall.md +0 -28
  658. package/dist/docs/markdown/plugin-meetings.meeting.default.setmuteonentry.md +0 -26
  659. package/dist/docs/markdown/plugin-meetings.meeting.default.setremotequalitylevel.md +0 -26
  660. package/dist/docs/markdown/plugin-meetings.meeting.default.setsipuri.md +0 -26
  661. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartcallinitiatejoinreq.md +0 -17
  662. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartjoinreqresp.md +0 -17
  663. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartlocalsdpgenremotesdprecvdelay.md +0 -17
  664. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartsendingmediadelay.md +0 -24
  665. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartsetupdelay.md +0 -24
  666. package/dist/docs/markdown/plugin-meetings.meeting.default.setupbreakoutslistener.md +0 -19
  667. package/dist/docs/markdown/plugin-meetings.meeting.default.setupmediaconnectionlisteners.md +0 -11
  668. package/dist/docs/markdown/plugin-meetings.meeting.default.setupstatsanalyzereventhandlers.md +0 -13
  669. package/dist/docs/markdown/plugin-meetings.meeting.default.sharescreen.md +0 -32
  670. package/dist/docs/markdown/plugin-meetings.meeting.default.sharestatus.md +0 -11
  671. package/dist/docs/markdown/plugin-meetings.meeting.default.sipuri.md +0 -11
  672. package/dist/docs/markdown/plugin-meetings.meeting.default.startcallinitiatejoinreq.md +0 -11
  673. package/dist/docs/markdown/plugin-meetings.meeting.default.startjoinreqresp.md +0 -11
  674. package/dist/docs/markdown/plugin-meetings.meeting.default.startkeepalive.md +0 -13
  675. package/dist/docs/markdown/plugin-meetings.meeting.default.startlocalsdpgenremotesdprecvdelay.md +0 -11
  676. package/dist/docs/markdown/plugin-meetings.meeting.default.startrecording.md +0 -21
  677. package/dist/docs/markdown/plugin-meetings.meeting.default.startwhiteboardshare.md +0 -29
  678. package/dist/docs/markdown/plugin-meetings.meeting.default.state.md +0 -11
  679. package/dist/docs/markdown/plugin-meetings.meeting.default.statsanalyzer.md +0 -11
  680. package/dist/docs/markdown/plugin-meetings.meeting.default.stopkeepalive.md +0 -13
  681. package/dist/docs/markdown/plugin-meetings.meeting.default.stopreceivingtranscription.md +0 -19
  682. package/dist/docs/markdown/plugin-meetings.meeting.default.stoprecording.md +0 -21
  683. package/dist/docs/markdown/plugin-meetings.meeting.default.stopshare.md +0 -28
  684. package/dist/docs/markdown/plugin-meetings.meeting.default.stopwhiteboardshare.md +0 -28
  685. package/dist/docs/markdown/plugin-meetings.meeting.default.togglereactions.md +0 -28
  686. package/dist/docs/markdown/plugin-meetings.meeting.default.transcription.md +0 -11
  687. package/dist/docs/markdown/plugin-meetings.meeting.default.transfer.md +0 -29
  688. package/dist/docs/markdown/plugin-meetings.meeting.default.type.md +0 -11
  689. package/dist/docs/markdown/plugin-meetings.meeting.default.unlockmeeting.md +0 -21
  690. package/dist/docs/markdown/plugin-meetings.meeting.default.unmuteaudio.md +0 -21
  691. package/dist/docs/markdown/plugin-meetings.meeting.default.unmutevideo.md +0 -21
  692. package/dist/docs/markdown/plugin-meetings.meeting.default.unpublishtracks.md +0 -26
  693. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetlocalsharetrack.md +0 -21
  694. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetlocalvideotrack.md +0 -21
  695. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetpeerconnections.md +0 -21
  696. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetremotestream.md +0 -26
  697. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetremotetracks.md +0 -19
  698. package/dist/docs/markdown/plugin-meetings.meeting.default.updateaudio.md +0 -34
  699. package/dist/docs/markdown/plugin-meetings.meeting.default.updatellmconnection.md +0 -19
  700. package/dist/docs/markdown/plugin-meetings.meeting.default.updatemedia.md +0 -32
  701. package/dist/docs/markdown/plugin-meetings.meeting.default.updatemediaconnections.md +0 -11
  702. package/dist/docs/markdown/plugin-meetings.meeting.default.updateshare.md +0 -35
  703. package/dist/docs/markdown/plugin-meetings.meeting.default.updatevideo.md +0 -34
  704. package/dist/docs/markdown/plugin-meetings.meeting.default.uploadlogs.md +0 -28
  705. package/dist/docs/markdown/plugin-meetings.meeting.default.usephoneaudio.md +0 -28
  706. package/dist/docs/markdown/plugin-meetings.meeting.default.userid.md +0 -11
  707. package/dist/docs/markdown/plugin-meetings.meeting.default.verifypassword.md +0 -35
  708. package/dist/docs/markdown/plugin-meetings.meeting.default.video.md +0 -11
  709. package/dist/docs/markdown/plugin-meetings.meeting.default.wirelessshare.md +0 -11
  710. package/dist/docs/markdown/plugin-meetings.meeting.md +0 -18
  711. package/dist/docs/markdown/plugin-meetings.meeting.media_update_type.md +0 -17
  712. package/dist/docs/markdown/plugin-meetings.meetings._constructor_.md +0 -22
  713. package/dist/docs/markdown/plugin-meetings.meetings.create.md +0 -30
  714. package/dist/docs/markdown/plugin-meetings.meetings.fetchuserpreferredwebexsite.md +0 -19
  715. package/dist/docs/markdown/plugin-meetings.meetings.geohintinfo.md +0 -11
  716. package/dist/docs/markdown/plugin-meetings.meetings.getallmeetings.md +0 -31
  717. package/dist/docs/markdown/plugin-meetings.meetings.getgeohint.md +0 -19
  718. package/dist/docs/markdown/plugin-meetings.meetings.getlogger.md +0 -19
  719. package/dist/docs/markdown/plugin-meetings.meetings.getmeetingbytype.md +0 -29
  720. package/dist/docs/markdown/plugin-meetings.meetings.getpersonalmeetingroom.md +0 -21
  721. package/dist/docs/markdown/plugin-meetings.meetings.getreachability.md +0 -21
  722. package/dist/docs/markdown/plugin-meetings.meetings.getscheduledmeetings.md +0 -19
  723. package/dist/docs/markdown/plugin-meetings.meetings.loggerrequest.md +0 -11
  724. package/dist/docs/markdown/plugin-meetings.meetings.md +0 -57
  725. package/dist/docs/markdown/plugin-meetings.meetings.media.md +0 -11
  726. package/dist/docs/markdown/plugin-meetings.meetings.meetingcollection.md +0 -11
  727. package/dist/docs/markdown/plugin-meetings.meetings.meetinginfo.md +0 -11
  728. package/dist/docs/markdown/plugin-meetings.meetings.namespace.md +0 -11
  729. package/dist/docs/markdown/plugin-meetings.meetings.personalmeetingroom.md +0 -11
  730. package/dist/docs/markdown/plugin-meetings.meetings.preferredwebexsite.md +0 -11
  731. package/dist/docs/markdown/plugin-meetings.meetings.reachability.md +0 -11
  732. package/dist/docs/markdown/plugin-meetings.meetings.register.md +0 -21
  733. package/dist/docs/markdown/plugin-meetings.meetings.registered.md +0 -11
  734. package/dist/docs/markdown/plugin-meetings.meetings.request.md +0 -11
  735. package/dist/docs/markdown/plugin-meetings.meetings.setreachability.md +0 -21
  736. package/dist/docs/markdown/plugin-meetings.meetings.startreachability.md +0 -21
  737. package/dist/docs/markdown/plugin-meetings.meetings.syncmeetings.md +0 -21
  738. package/dist/docs/markdown/plugin-meetings.meetings.unregister.md +0 -21
  739. package/dist/docs/markdown/plugin-meetings.meetings.uploadlogs.md +0 -34
  740. package/dist/docs/markdown/plugin-meetings.reactions.md +0 -13
  741. package/dist/docs/markdown/plugin-meetings.reactions.reactions.md +0 -11
  742. package/dist/docs/markdown/plugin-meetings.reactions.skintones.md +0 -11
  743. package/dist/docs/markdown/plugin-meetings.remotemedia.getmaxfs.md +0 -26
  744. package/dist/docs/markdown/plugin-meetings.remotemedia.md +0 -31
  745. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia._constructor_.md +0 -22
  746. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.csi.md +0 -13
  747. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.id.md +0 -11
  748. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.md +0 -40
  749. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.mediatype.md +0 -13
  750. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.memberid.md +0 -13
  751. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.setsizehint.md +0 -25
  752. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.sourcestate.md +0 -13
  753. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.stream.md +0 -13
  754. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemediaevents.md +0 -14
  755. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemediaid.md +0 -11
  756. package/dist/docs/markdown/plugin-meetings.remotemedia.remotevideoresolution.md +0 -11
  757. package/dist/docs/markdown/plugin-meetings.remotemediagroup.md +0 -12
  758. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup._constructor_.md +0 -24
  759. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.getremotemedia.md +0 -26
  760. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.includes.md +0 -27
  761. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.ispinned.md +0 -22
  762. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.md +0 -28
  763. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.pin.md +0 -25
  764. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.unpin.md +0 -24
  765. package/dist/docs/markdown/plugin-meetings.triggerproxy.md +0 -11
  766. package/dist/docs/metadata/index.api.json +0 -14144
  767. package/dist/docs/metadata/index.api.md +0 -2075
  768. package/dist/docs/metadata/index.d.ts +0 -5594
  769. package/dist/index.d.ts +0 -4
  770. package/dist/locus-info/controlsUtils.d.ts +0 -2
  771. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  772. package/dist/locus-info/fullState.d.ts +0 -2
  773. package/dist/locus-info/hostUtils.d.ts +0 -2
  774. package/dist/locus-info/index.d.ts +0 -269
  775. package/dist/locus-info/infoUtils.d.ts +0 -2
  776. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  777. package/dist/locus-info/parser.d.ts +0 -212
  778. package/dist/locus-info/selfUtils.d.ts +0 -2
  779. package/dist/media/index.d.ts +0 -32
  780. package/dist/media/properties.d.ts +0 -108
  781. package/dist/media/util.d.ts +0 -2
  782. package/dist/mediaQualityMetrics/config.d.ts +0 -233
  783. package/dist/meeting/effectsState.d.ts +0 -42
  784. package/dist/meeting/effectsState.js +0 -260
  785. package/dist/meeting/effectsState.js.map +0 -1
  786. package/dist/meeting/in-meeting-actions.d.ts +0 -79
  787. package/dist/meeting/index.d.ts +0 -1621
  788. package/dist/meeting/muteState.d.ts +0 -116
  789. package/dist/meeting/request.d.ts +0 -255
  790. package/dist/meeting/state.d.ts +0 -9
  791. package/dist/meeting/util.d.ts +0 -2
  792. package/dist/meeting-info/collection.d.ts +0 -20
  793. package/dist/meeting-info/index.d.ts +0 -57
  794. package/dist/meeting-info/meeting-info-v2.d.ts +0 -93
  795. package/dist/meeting-info/request.d.ts +0 -22
  796. package/dist/meeting-info/util.d.ts +0 -2
  797. package/dist/meeting-info/utilv2.d.ts +0 -2
  798. package/dist/meetings/collection.d.ts +0 -23
  799. package/dist/meetings/index.d.ts +0 -298
  800. package/dist/meetings/request.d.ts +0 -27
  801. package/dist/meetings/util.d.ts +0 -18
  802. package/dist/member/index.d.ts +0 -145
  803. package/dist/member/util.d.ts +0 -2
  804. package/dist/members/collection.d.ts +0 -24
  805. package/dist/members/index.d.ts +0 -298
  806. package/dist/members/request.d.ts +0 -50
  807. package/dist/members/util.d.ts +0 -2
  808. package/dist/metrics/config.d.ts +0 -169
  809. package/dist/metrics/config.js +0 -291
  810. package/dist/metrics/config.js.map +0 -1
  811. package/dist/metrics/constants.d.ts +0 -57
  812. package/dist/metrics/index.d.ts +0 -152
  813. package/dist/networkQualityMonitor/index.d.ts +0 -70
  814. package/dist/peer-connection-manager/index.d.ts +0 -6
  815. package/dist/peer-connection-manager/index.js +0 -671
  816. package/dist/peer-connection-manager/index.js.map +0 -1
  817. package/dist/peer-connection-manager/util.d.ts +0 -6
  818. package/dist/peer-connection-manager/util.js +0 -110
  819. package/dist/peer-connection-manager/util.js.map +0 -1
  820. package/dist/personal-meeting-room/index.d.ts +0 -47
  821. package/dist/personal-meeting-room/request.d.ts +0 -14
  822. package/dist/personal-meeting-room/util.d.ts +0 -2
  823. package/dist/plugin-meetings.d.ts +0 -5399
  824. package/dist/reachability/index.d.ts +0 -139
  825. package/dist/reachability/request.d.ts +0 -35
  826. package/dist/reactions/reactions.d.ts +0 -4
  827. package/dist/reactions/reactions.type.d.ts +0 -32
  828. package/dist/reconnection-manager/index.d.ts +0 -112
  829. package/dist/recording-controller/enums.d.ts +0 -7
  830. package/dist/recording-controller/index.d.ts +0 -193
  831. package/dist/recording-controller/util.d.ts +0 -13
  832. package/dist/roap/collection.d.ts +0 -10
  833. package/dist/roap/collection.js +0 -63
  834. package/dist/roap/collection.js.map +0 -1
  835. package/dist/roap/handler.d.ts +0 -47
  836. package/dist/roap/handler.js +0 -279
  837. package/dist/roap/handler.js.map +0 -1
  838. package/dist/roap/index.d.ts +0 -116
  839. package/dist/roap/request.d.ts +0 -35
  840. package/dist/roap/state.d.ts +0 -9
  841. package/dist/roap/state.js +0 -127
  842. package/dist/roap/state.js.map +0 -1
  843. package/dist/roap/turnDiscovery.d.ts +0 -67
  844. package/dist/roap/util.d.ts +0 -2
  845. package/dist/roap/util.js +0 -76
  846. package/dist/roap/util.js.map +0 -1
  847. package/dist/statsAnalyzer/global.d.ts +0 -126
  848. package/dist/statsAnalyzer/index.d.ts +0 -190
  849. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -22
  850. package/dist/transcription/index.d.ts +0 -64
  851. package/dist/types/meeting/effectsState.d.ts +0 -42
  852. package/dist/types/metrics/config.d.ts +0 -171
  853. package/dist/types/tsdoc-metadata.json +0 -11
  854. package/src/metrics/config.ts +0 -487
@@ -14,6 +14,7 @@ _Object$defineProperty(exports, "__esModule", {
14
14
  exports.default = void 0;
15
15
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
16
16
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
17
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
17
18
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
18
19
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
19
20
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
@@ -25,8 +26,6 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
25
26
  var _webexCore = require("@webex/webex-core");
26
27
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
27
28
  var _constants = require("../constants");
28
- var _metrics = _interopRequireDefault(require("../metrics"));
29
- var _config = require("../metrics/config");
30
29
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
31
30
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
32
31
  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); }; }
@@ -105,71 +104,62 @@ var RoapRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
105
104
  * @param {String} options.locusSelfUrl
106
105
  * @param {String} options.mediaId
107
106
  * @param {String} options.correlationId
108
- * @param {Boolean} options.audioMuted
109
- * @param {Boolean} options.videoMuted
110
107
  * @param {String} options.meetingId
111
- * @param {Boolean} options.preferTranscoding
112
108
  * @returns {Promise} returns the response/failure of the request
113
109
  */
114
110
  }, {
115
111
  key: "sendRoap",
116
112
  value: function () {
117
113
  var _sendRoap = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(options) {
118
- var _options$preferTransc;
119
- var roapMessage, locusSelfUrl, mediaId, correlationId, meetingId, _yield$this$attachRea, localSdpWithReachabilityData, joinCookie, mediaUrl, deviceUrl;
114
+ var _this = this;
115
+ var roapMessage, locusSelfUrl, mediaId, meetingId, locusMediaRequest, ipVersion, _yield$this$attachRea, localSdpWithReachabilityData, joinCookie;
120
116
  return _regenerator.default.wrap(function _callee2$(_context2) {
121
117
  while (1) switch (_context2.prev = _context2.next) {
122
118
  case 0:
123
- roapMessage = options.roapMessage, locusSelfUrl = options.locusSelfUrl, mediaId = options.mediaId, correlationId = options.correlationId, meetingId = options.meetingId;
119
+ roapMessage = options.roapMessage, locusSelfUrl = options.locusSelfUrl, mediaId = options.mediaId, meetingId = options.meetingId, locusMediaRequest = options.locusMediaRequest, ipVersion = options.ipVersion;
124
120
  if (!mediaId) {
125
- _loggerProxy.default.logger.info('Roap:request#sendRoap --> Race Condition /call mediaID not present');
121
+ _loggerProxy.default.logger.info('Roap:request#sendRoap --> sending empty mediaID');
126
122
  }
127
- _context2.next = 4;
123
+ if (locusMediaRequest) {
124
+ _context2.next = 5;
125
+ break;
126
+ }
127
+ _loggerProxy.default.logger.warn('Roap:request#sendRoap --> locusMediaRequest unavailable, not sending roap');
128
+ return _context2.abrupt("return", _promise.default.reject(new Error('sendRoap called when locusMediaRequest is undefined')));
129
+ case 5:
130
+ _context2.next = 7;
128
131
  return this.attachReachabilityData({
129
- roapMessage: roapMessage,
130
- // eslint-disable-next-line no-warning-comments
131
- // TODO: check whats the need for video and audiomute
132
- audioMuted: !!options.audioMuted,
133
- videoMuted: !!options.videoMuted
132
+ roapMessage: roapMessage
134
133
  });
135
- case 4:
134
+ case 7:
136
135
  _yield$this$attachRea = _context2.sent;
137
136
  localSdpWithReachabilityData = _yield$this$attachRea.localSdp;
138
137
  joinCookie = _yield$this$attachRea.joinCookie;
139
- mediaUrl = "".concat(locusSelfUrl, "/").concat(_constants.MEDIA); // @ts-ignore
140
- deviceUrl = this.webex.internal.device.url;
141
- _loggerProxy.default.logger.info("Roap:request#sendRoap --> ".concat(mediaUrl, " \n ").concat(roapMessage.messageType, " \n seq:").concat(roapMessage.seq));
142
- _metrics.default.postEvent({
143
- event: _config.eventType.MEDIA_REQUEST,
144
- meetingId: meetingId
145
- });
138
+ _loggerProxy.default.logger.info("Roap:request#sendRoap --> ".concat(locusSelfUrl, " \n ").concat(roapMessage.messageType, " \n seq:").concat(roapMessage.seq));
146
139
 
147
140
  // @ts-ignore
148
- return _context2.abrupt("return", this.request({
149
- uri: mediaUrl,
150
- method: _constants.HTTP_VERBS.PUT,
151
- body: {
152
- device: {
153
- url: deviceUrl,
154
- // @ts-ignore
155
- deviceType: this.config.meetings.deviceType
156
- },
157
- correlationId: correlationId,
158
- localMedias: [{
159
- localSdp: (0, _stringify.default)(localSdpWithReachabilityData),
160
- mediaId: options.mediaId
161
- }],
162
- clientMediaPreferences: {
163
- preferTranscoding: (_options$preferTransc = options.preferTranscoding) !== null && _options$preferTransc !== void 0 ? _options$preferTransc : true,
164
- joinCookie: joinCookie
165
- }
141
+ this.webex.internal.newMetrics.submitClientEvent({
142
+ name: 'client.locus.media.request',
143
+ options: {
144
+ meetingId: meetingId
166
145
  }
146
+ });
147
+ return _context2.abrupt("return", locusMediaRequest.send({
148
+ type: 'RoapMessage',
149
+ selfUrl: locusSelfUrl,
150
+ joinCookie: joinCookie,
151
+ mediaId: mediaId,
152
+ roapMessage: roapMessage,
153
+ reachability: localSdpWithReachabilityData.reachability,
154
+ ipVersion: ipVersion
167
155
  }).then(function (res) {
168
- _metrics.default.postEvent({
169
- event: _config.eventType.MEDIA_RESPONSE,
170
- meetingId: meetingId
156
+ // @ts-ignore
157
+ _this.webex.internal.newMetrics.submitClientEvent({
158
+ name: 'client.locus.media.response',
159
+ options: {
160
+ meetingId: meetingId
161
+ }
171
162
  });
172
-
173
163
  // always it will be the first mediaConnection Object
174
164
  var mediaConnections = res.body.mediaConnections && res.body.mediaConnections.length > 0 && res.body.mediaConnections[0];
175
165
  _loggerProxy.default.logger.debug("Roap:request#sendRoap --> response:".concat((0, _stringify.default)(mediaConnections, null, 2), "'\n StatusCode:'").concat(res.statusCode));
@@ -181,18 +171,19 @@ var RoapRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
181
171
  mediaConnections: res.body.mediaConnections
182
172
  });
183
173
  }).catch(function (err) {
184
- _metrics.default.postEvent({
185
- event: _config.eventType.MEDIA_RESPONSE,
186
- meetingId: meetingId,
187
- data: {
188
- error: _metrics.default.parseLocusError(err, true)
174
+ // @ts-ignore
175
+ _this.webex.internal.newMetrics.submitClientEvent({
176
+ name: 'client.locus.media.response',
177
+ options: {
178
+ meetingId: meetingId,
179
+ rawError: err
189
180
  }
190
181
  });
191
182
  _loggerProxy.default.logger.error("Roap:request#sendRoap --> Error:".concat((0, _stringify.default)(err, null, 2)));
192
183
  _loggerProxy.default.logger.error("Roap:request#sendRoapRequest --> errorBody:".concat((0, _stringify.default)(roapMessage, null, 2), " + '\\n mediaId:'").concat(options.mediaId));
193
184
  throw err;
194
185
  }));
195
- case 12:
186
+ case 13:
196
187
  case "end":
197
188
  return _context2.stop();
198
189
  }
@@ -1 +1 @@
1
- {"version":3,"names":["RoapRequest","localSdp","webex","boundedStorage","get","REACHABILITY","namespace","localStorageResult","catch","reachabilityData","reachabilityResult","JSON","parse","length","reachability","e","LoggerProxy","logger","error","localStorageJoinCookie","joinCookieRaw","joinCookie","options","roapMessage","locusSelfUrl","mediaId","correlationId","meetingId","info","attachReachabilityData","audioMuted","videoMuted","localSdpWithReachabilityData","mediaUrl","MEDIA","deviceUrl","internal","device","url","messageType","seq","Metrics","postEvent","event","eventType","MEDIA_REQUEST","request","uri","method","HTTP_VERBS","PUT","body","deviceType","config","meetings","localMedias","clientMediaPreferences","preferTranscoding","then","res","MEDIA_RESPONSE","mediaConnections","debug","statusCode","locus","roapSeq","err","data","parseLocusError","StatelessWebexPlugin"],"sources":["request.ts"],"sourcesContent":["/* global window */\n// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {MEDIA, HTTP_VERBS, REACHABILITY} from '../constants';\nimport Metrics from '../metrics';\nimport {eventType} from '../metrics/config';\n\n/**\n * @class RoapRequest\n */\nexport default class RoapRequest extends StatelessWebexPlugin {\n /**\n * Returns reachability data.\n * @param {Object} localSdp\n * @returns {Object}\n */\n async attachReachabilityData(localSdp) {\n let joinCookie;\n\n // @ts-ignore\n const reachabilityData = await this.webex.boundedStorage\n .get(REACHABILITY.namespace, REACHABILITY.localStorageResult)\n .catch(() => {});\n\n if (reachabilityData) {\n try {\n const reachabilityResult = JSON.parse(reachabilityData);\n\n /* istanbul ignore else */\n if (reachabilityResult && Object.keys(reachabilityResult).length) {\n localSdp.reachability = reachabilityResult;\n }\n } catch (e) {\n LoggerProxy.logger.error(\n `Roap:request#attachReachabilityData --> Error in parsing reachability data: ${e}`\n );\n }\n }\n\n // @ts-ignore\n const joinCookieRaw = await this.webex.boundedStorage\n .get(REACHABILITY.namespace, REACHABILITY.localStorageJoinCookie)\n .catch(() => {});\n\n if (joinCookieRaw) {\n try {\n joinCookie = JSON.parse(joinCookieRaw);\n } catch (e) {\n LoggerProxy.logger.error(\n `MeetingRequest#constructor --> Error in parsing join cookie data: ${e}`\n );\n }\n }\n\n return {localSdp, joinCookie};\n }\n\n /**\n * Sends a ROAP message\n * @param {Object} options\n * @param {Object} options.roapMessage\n * @param {String} options.locusSelfUrl\n * @param {String} options.mediaId\n * @param {String} options.correlationId\n * @param {Boolean} options.audioMuted\n * @param {Boolean} options.videoMuted\n * @param {String} options.meetingId\n * @param {Boolean} options.preferTranscoding\n * @returns {Promise} returns the response/failure of the request\n */\n async sendRoap(options: {\n roapMessage: any;\n locusSelfUrl: string;\n mediaId: string;\n correlationId: string;\n audioMuted: boolean;\n videoMuted: boolean;\n meetingId: string;\n preferTranscoding?: boolean;\n }) {\n const {roapMessage, locusSelfUrl, mediaId, correlationId, meetingId} = options;\n\n if (!mediaId) {\n LoggerProxy.logger.info('Roap:request#sendRoap --> Race Condition /call mediaID not present');\n }\n\n const {localSdp: localSdpWithReachabilityData, joinCookie} = await this.attachReachabilityData({\n roapMessage,\n // eslint-disable-next-line no-warning-comments\n // TODO: check whats the need for video and audiomute\n audioMuted: !!options.audioMuted,\n videoMuted: !!options.videoMuted,\n });\n\n const mediaUrl = `${locusSelfUrl}/${MEDIA}`;\n // @ts-ignore\n const deviceUrl = this.webex.internal.device.url;\n\n LoggerProxy.logger.info(\n `Roap:request#sendRoap --> ${mediaUrl} \\n ${roapMessage.messageType} \\n seq:${roapMessage.seq}`\n );\n\n Metrics.postEvent({event: eventType.MEDIA_REQUEST, meetingId});\n\n // @ts-ignore\n return this.request({\n uri: mediaUrl,\n method: HTTP_VERBS.PUT,\n body: {\n device: {\n url: deviceUrl,\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n },\n correlationId,\n localMedias: [\n {\n localSdp: JSON.stringify(localSdpWithReachabilityData),\n mediaId: options.mediaId,\n },\n ],\n clientMediaPreferences: {\n preferTranscoding: options.preferTranscoding ?? true,\n joinCookie,\n },\n },\n })\n .then((res) => {\n Metrics.postEvent({event: eventType.MEDIA_RESPONSE, meetingId});\n\n // always it will be the first mediaConnection Object\n const mediaConnections =\n res.body.mediaConnections &&\n res.body.mediaConnections.length > 0 &&\n res.body.mediaConnections[0];\n\n LoggerProxy.logger.debug(\n `Roap:request#sendRoap --> response:${JSON.stringify(\n mediaConnections,\n null,\n 2\n )}'\\n StatusCode:'${res.statusCode}`\n );\n const {locus} = res.body;\n\n locus.roapSeq = options.roapMessage.seq;\n\n return {\n locus,\n ...(mediaConnections && {mediaConnections: res.body.mediaConnections}),\n };\n })\n .catch((err) => {\n Metrics.postEvent({\n event: eventType.MEDIA_RESPONSE,\n meetingId,\n data: {error: Metrics.parseLocusError(err, true)},\n });\n LoggerProxy.logger.error(`Roap:request#sendRoap --> Error:${JSON.stringify(err, null, 2)}`);\n LoggerProxy.logger.error(\n `Roap:request#sendRoapRequest --> errorBody:${JSON.stringify(\n roapMessage,\n null,\n 2\n )} + '\\\\n mediaId:'${options.mediaId}`\n );\n throw err;\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["RoapRequest","localSdp","webex","boundedStorage","get","REACHABILITY","namespace","localStorageResult","catch","reachabilityData","reachabilityResult","JSON","parse","length","reachability","e","LoggerProxy","logger","error","localStorageJoinCookie","joinCookieRaw","joinCookie","options","roapMessage","locusSelfUrl","mediaId","meetingId","locusMediaRequest","ipVersion","info","warn","reject","Error","attachReachabilityData","localSdpWithReachabilityData","messageType","seq","internal","newMetrics","submitClientEvent","name","send","type","selfUrl","then","res","mediaConnections","body","debug","statusCode","locus","roapSeq","err","rawError","StatelessWebexPlugin"],"sources":["request.ts"],"sourcesContent":["// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {IP_VERSION, REACHABILITY} from '../constants';\nimport {LocusMediaRequest} from '../meeting/locusMediaRequest';\n\n/**\n * @class RoapRequest\n */\nexport default class RoapRequest extends StatelessWebexPlugin {\n /**\n * Returns reachability data.\n * @param {Object} localSdp\n * @returns {Object}\n */\n async attachReachabilityData(localSdp) {\n let joinCookie;\n\n // @ts-ignore\n const reachabilityData = await this.webex.boundedStorage\n .get(REACHABILITY.namespace, REACHABILITY.localStorageResult)\n .catch(() => {});\n\n if (reachabilityData) {\n try {\n const reachabilityResult = JSON.parse(reachabilityData);\n\n /* istanbul ignore else */\n if (reachabilityResult && Object.keys(reachabilityResult).length) {\n localSdp.reachability = reachabilityResult;\n }\n } catch (e) {\n LoggerProxy.logger.error(\n `Roap:request#attachReachabilityData --> Error in parsing reachability data: ${e}`\n );\n }\n }\n\n // @ts-ignore\n const joinCookieRaw = await this.webex.boundedStorage\n .get(REACHABILITY.namespace, REACHABILITY.localStorageJoinCookie)\n .catch(() => {});\n\n if (joinCookieRaw) {\n try {\n joinCookie = JSON.parse(joinCookieRaw);\n } catch (e) {\n LoggerProxy.logger.error(\n `MeetingRequest#constructor --> Error in parsing join cookie data: ${e}`\n );\n }\n }\n\n return {localSdp, joinCookie};\n }\n\n /**\n * Sends a ROAP message\n * @param {Object} options\n * @param {Object} options.roapMessage\n * @param {String} options.locusSelfUrl\n * @param {String} options.mediaId\n * @param {String} options.correlationId\n * @param {String} options.meetingId\n * @returns {Promise} returns the response/failure of the request\n */\n async sendRoap(options: {\n roapMessage: any;\n locusSelfUrl: string;\n mediaId: string;\n meetingId: string;\n ipVersion: IP_VERSION;\n locusMediaRequest?: LocusMediaRequest;\n }) {\n const {roapMessage, locusSelfUrl, mediaId, meetingId, locusMediaRequest, ipVersion} = options;\n\n if (!mediaId) {\n LoggerProxy.logger.info('Roap:request#sendRoap --> sending empty mediaID');\n }\n\n if (!locusMediaRequest) {\n LoggerProxy.logger.warn(\n 'Roap:request#sendRoap --> locusMediaRequest unavailable, not sending roap'\n );\n\n return Promise.reject(new Error('sendRoap called when locusMediaRequest is undefined'));\n }\n const {localSdp: localSdpWithReachabilityData, joinCookie} = await this.attachReachabilityData({\n roapMessage,\n });\n\n LoggerProxy.logger.info(\n `Roap:request#sendRoap --> ${locusSelfUrl} \\n ${roapMessage.messageType} \\n seq:${roapMessage.seq}`\n );\n\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.request',\n options: {\n meetingId,\n },\n });\n\n return locusMediaRequest\n .send({\n type: 'RoapMessage',\n selfUrl: locusSelfUrl,\n joinCookie,\n mediaId,\n roapMessage,\n reachability: localSdpWithReachabilityData.reachability,\n ipVersion,\n })\n .then((res) => {\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.response',\n options: {\n meetingId,\n },\n });\n // always it will be the first mediaConnection Object\n const mediaConnections =\n res.body.mediaConnections &&\n res.body.mediaConnections.length > 0 &&\n res.body.mediaConnections[0];\n\n LoggerProxy.logger.debug(\n `Roap:request#sendRoap --> response:${JSON.stringify(\n mediaConnections,\n null,\n 2\n )}'\\n StatusCode:'${res.statusCode}`\n );\n const {locus} = res.body;\n\n locus.roapSeq = options.roapMessage.seq;\n\n return {\n locus,\n ...(mediaConnections && {mediaConnections: res.body.mediaConnections}),\n };\n })\n .catch((err) => {\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.response',\n options: {\n meetingId,\n rawError: err,\n },\n });\n LoggerProxy.logger.error(`Roap:request#sendRoap --> Error:${JSON.stringify(err, null, 2)}`);\n LoggerProxy.logger.error(\n `Roap:request#sendRoapRequest --> errorBody:${JSON.stringify(\n roapMessage,\n null,\n 2\n )} + '\\\\n mediaId:'${options.mediaId}`\n );\n throw err;\n });\n }\n}\n"],"mappings":"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"}
@@ -138,7 +138,6 @@ var TurnDiscovery = /*#__PURE__*/function () {
138
138
  }, {
139
139
  key: "sendRoapTurnDiscoveryRequest",
140
140
  value: function sendRoapTurnDiscoveryRequest(meeting, isReconnecting) {
141
- var _meeting$audio, _meeting$video;
142
141
  if (this.defer) {
143
142
  _loggerProxy.default.logger.warn('Roap:turnDiscovery#sendRoapTurnDiscoveryRequest --> already in progress');
144
143
  return _promise.default.resolve();
@@ -152,15 +151,14 @@ var TurnDiscovery = /*#__PURE__*/function () {
152
151
  _loggerProxy.default.logger.info('Roap:turnDiscovery#sendRoapTurnDiscoveryRequest --> sending TURN_DISCOVERY_REQUEST');
153
152
  return this.roapRequest.sendRoap({
154
153
  roapMessage: roapMessage,
155
- correlationId: meeting.correlationId,
156
154
  // @ts-ignore - Fix missing type
157
155
  locusSelfUrl: meeting.selfUrl,
158
156
  // @ts-ignore - Fix missing type
159
157
  mediaId: isReconnecting ? '' : meeting.mediaId,
160
- audioMuted: (_meeting$audio = meeting.audio) === null || _meeting$audio === void 0 ? void 0 : _meeting$audio.isLocallyMuted(),
161
- videoMuted: (_meeting$video = meeting.video) === null || _meeting$video === void 0 ? void 0 : _meeting$video.isLocallyMuted(),
162
158
  meetingId: meeting.id,
163
- preferTranscoding: !meeting.isMultistream
159
+ locusMediaRequest: meeting.locusMediaRequest,
160
+ // @ts-ignore - because of meeting.webex
161
+ ipVersion: meeting.webex.meetings.reachability.getIpVersion()
164
162
  }).then(function (_ref) {
165
163
  var mediaConnections = _ref.mediaConnections;
166
164
  if (mediaConnections) {
@@ -179,7 +177,6 @@ var TurnDiscovery = /*#__PURE__*/function () {
179
177
  }, {
180
178
  key: "sendRoapOK",
181
179
  value: function sendRoapOK(meeting) {
182
- var _meeting$audio2, _meeting$video2;
183
180
  _loggerProxy.default.logger.info('Roap:turnDiscovery#sendRoapOK --> sending OK');
184
181
  return this.roapRequest.sendRoap({
185
182
  roapMessage: {
@@ -191,14 +188,87 @@ var TurnDiscovery = /*#__PURE__*/function () {
191
188
  locusSelfUrl: meeting.selfUrl,
192
189
  // @ts-ignore - fix type
193
190
  mediaId: meeting.mediaId,
194
- correlationId: meeting.correlationId,
195
- audioMuted: (_meeting$audio2 = meeting.audio) === null || _meeting$audio2 === void 0 ? void 0 : _meeting$audio2.isLocallyMuted(),
196
- videoMuted: (_meeting$video2 = meeting.video) === null || _meeting$video2 === void 0 ? void 0 : _meeting$video2.isLocallyMuted(),
197
191
  meetingId: meeting.id,
198
- preferTranscoding: !meeting.isMultistream
192
+ locusMediaRequest: meeting.locusMediaRequest,
193
+ // @ts-ignore - because of meeting.webex
194
+ ipVersion: meeting.webex.meetings.reachability.getIpVersion()
199
195
  });
200
196
  }
201
197
 
198
+ /**
199
+ * Gets the reason why reachability is skipped.
200
+ *
201
+ * @param {Meeting} meeting
202
+ * @returns {Promise<string>} Promise with empty string if reachability is not skipped or a reason if it is skipped
203
+ */
204
+ }, {
205
+ key: "getSkipReason",
206
+ value: function () {
207
+ var _getSkipReason = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(meeting) {
208
+ var isAnyClusterReachable;
209
+ return _regenerator.default.wrap(function _callee$(_context) {
210
+ while (1) switch (_context.prev = _context.next) {
211
+ case 0:
212
+ _context.next = 2;
213
+ return meeting.webex.meetings.reachability.isAnyClusterReachable();
214
+ case 2:
215
+ isAnyClusterReachable = _context.sent;
216
+ if (!isAnyClusterReachable) {
217
+ _context.next = 6;
218
+ break;
219
+ }
220
+ _loggerProxy.default.logger.info('Roap:turnDiscovery#getSkipReason --> reachability has not failed, skipping TURN discovery');
221
+ return _context.abrupt("return", 'reachability');
222
+ case 6:
223
+ if (meeting.config.experimental.enableTurnDiscovery) {
224
+ _context.next = 9;
225
+ break;
226
+ }
227
+ _loggerProxy.default.logger.info('Roap:turnDiscovery#getSkipReason --> TURN discovery disabled in config, skipping it');
228
+ return _context.abrupt("return", 'config');
229
+ case 9:
230
+ return _context.abrupt("return", '');
231
+ case 10:
232
+ case "end":
233
+ return _context.stop();
234
+ }
235
+ }, _callee);
236
+ }));
237
+ function getSkipReason(_x) {
238
+ return _getSkipReason.apply(this, arguments);
239
+ }
240
+ return getSkipReason;
241
+ }()
242
+ /**
243
+ * Checks if TURN discovery is skipped.
244
+ *
245
+ * @param {Meeting} meeting
246
+ * @returns {Boolean} true if TURN discovery is being skipped, false if it is being done
247
+ */
248
+ }, {
249
+ key: "isSkipped",
250
+ value: function () {
251
+ var _isSkipped = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(meeting) {
252
+ var skipReason;
253
+ return _regenerator.default.wrap(function _callee2$(_context2) {
254
+ while (1) switch (_context2.prev = _context2.next) {
255
+ case 0:
256
+ _context2.next = 2;
257
+ return this.getSkipReason(meeting);
258
+ case 2:
259
+ skipReason = _context2.sent;
260
+ return _context2.abrupt("return", !!skipReason);
261
+ case 4:
262
+ case "end":
263
+ return _context2.stop();
264
+ }
265
+ }, _callee2, this);
266
+ }));
267
+ function isSkipped(_x2) {
268
+ return _isSkipped.apply(this, arguments);
269
+ }
270
+ return isSkipped;
271
+ }()
202
272
  /**
203
273
  * Retrieves TURN server information from the backend by doing
204
274
  * a roap message exchange:
@@ -219,37 +289,26 @@ var TurnDiscovery = /*#__PURE__*/function () {
219
289
  }, {
220
290
  key: "doTurnDiscovery",
221
291
  value: function () {
222
- var _doTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(meeting, isReconnecting) {
292
+ var _doTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(meeting, isReconnecting) {
223
293
  var _this2 = this;
224
- var isAnyClusterReachable;
225
- return _regenerator.default.wrap(function _callee$(_context) {
226
- while (1) switch (_context.prev = _context.next) {
294
+ var turnDiscoverySkippedReason;
295
+ return _regenerator.default.wrap(function _callee3$(_context3) {
296
+ while (1) switch (_context3.prev = _context3.next) {
227
297
  case 0:
228
- _context.next = 2;
229
- return meeting.webex.meetings.reachability.isAnyClusterReachable();
298
+ _context3.next = 2;
299
+ return this.getSkipReason(meeting);
230
300
  case 2:
231
- isAnyClusterReachable = _context.sent;
232
- if (!isAnyClusterReachable) {
233
- _context.next = 6;
301
+ turnDiscoverySkippedReason = _context3.sent;
302
+ if (!turnDiscoverySkippedReason) {
303
+ _context3.next = 5;
234
304
  break;
235
305
  }
236
- _loggerProxy.default.logger.info('Roap:turnDiscovery#doTurnDiscovery --> reachability has not failed, skipping TURN discovery');
237
- return _context.abrupt("return", {
306
+ return _context3.abrupt("return", {
238
307
  turnServerInfo: undefined,
239
- turnDiscoverySkippedReason: 'reachability'
308
+ turnDiscoverySkippedReason: turnDiscoverySkippedReason
240
309
  });
241
- case 6:
242
- if (meeting.config.experimental.enableTurnDiscovery) {
243
- _context.next = 9;
244
- break;
245
- }
246
- _loggerProxy.default.logger.info('Roap:turnDiscovery#doTurnDiscovery --> TURN discovery disabled in config, skipping it');
247
- return _context.abrupt("return", {
248
- turnServerInfo: undefined,
249
- turnDiscoverySkippedReason: 'config'
250
- });
251
- case 9:
252
- return _context.abrupt("return", this.sendRoapTurnDiscoveryRequest(meeting, isReconnecting).then(function () {
310
+ case 5:
311
+ return _context3.abrupt("return", this.sendRoapTurnDiscoveryRequest(meeting, isReconnecting).then(function () {
253
312
  return _this2.waitForTurnDiscoveryResponse();
254
313
  }).then(function () {
255
314
  return _this2.sendRoapOK(meeting);
@@ -274,13 +333,13 @@ var TurnDiscovery = /*#__PURE__*/function () {
274
333
  turnDiscoverySkippedReason: undefined
275
334
  };
276
335
  }));
277
- case 10:
336
+ case 6:
278
337
  case "end":
279
- return _context.stop();
338
+ return _context3.stop();
280
339
  }
281
- }, _callee, this);
340
+ }, _callee3, this);
282
341
  }));
283
- function doTurnDiscovery(_x, _x2) {
342
+ function doTurnDiscovery(_x3, _x4) {
284
343
  return _doTurnDiscovery.apply(this, arguments);
285
344
  }
286
345
  return doTurnDiscovery;
@@ -1 +1 @@
1
- {"version":3,"names":["TURN_DISCOVERY_TIMEOUT","TURN_DISCOVERY_SEQ","TurnDiscovery","roapRequest","turnInfo","url","username","password","defer","LoggerProxy","logger","warn","reject","Error","responseTimer","setTimeout","info","promise","roapMessage","headers","expectedHeaders","headerName","field","foundHeaders","forEach","receivedHeader","expectedHeader","startsWith","substring","length","clearTimeout","undefined","resolve","meeting","isReconnecting","Defer","messageType","ROAP","ROAP_TYPES","TURN_DISCOVERY_REQUEST","version","ROAP_VERSION","seq","sendRoap","correlationId","locusSelfUrl","selfUrl","mediaId","audioMuted","audio","isLocallyMuted","videoMuted","video","meetingId","id","preferTranscoding","isMultistream","then","mediaConnections","updateMediaConnections","OK","webex","meetings","reachability","isAnyClusterReachable","turnServerInfo","turnDiscoverySkippedReason","config","experimental","enableTurnDiscovery","sendRoapTurnDiscoveryRequest","waitForTurnDiscoveryResponse","sendRoapOK","catch","e","Metrics","sendBehavioralMetric","BEHAVIORAL_METRICS","TURN_DISCOVERY_FAILURE","correlation_id","locus_id","locusUrl","split","pop","reason","message","stack"],"sources":["turnDiscovery.ts"],"sourcesContent":["// @ts-ignore - Types not available for @webex/common\nimport {Defer} from '@webex/common';\n\nimport Metrics from '../metrics';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {ROAP} from '../constants';\n\nimport RoapRequest from './request';\nimport Meeting from '../meeting';\n\nconst TURN_DISCOVERY_TIMEOUT = 10; // in seconds\n\n// Roap spec says that seq should start from 1, but TURN discovery works fine with seq=0\n// and this is handy for us, because TURN discovery is always done before the first SDP exchange,\n// so we can do it with seq=0 or not do it at all and then we create the RoapMediaConnection\n// and do the SDP offer with seq=1\nconst TURN_DISCOVERY_SEQ = 0;\n\n/**\n * Handles the process of finding out TURN server information from Linus.\n * This is achieved by sending a TURN_DISCOVERY_REQUEST.\n */\nexport default class TurnDiscovery {\n private roapRequest: RoapRequest;\n\n private defer?: Defer; // used for waiting for the response\n\n private turnInfo: {\n url: string;\n username: string;\n password: string;\n };\n\n private responseTimer?: ReturnType<typeof setTimeout>;\n\n /**\n * Constructor\n *\n * @param {RoapRequest} roapRequest\n */\n constructor(roapRequest: RoapRequest) {\n this.roapRequest = roapRequest;\n this.turnInfo = {\n url: '',\n username: '',\n password: '',\n };\n }\n\n /**\n * waits for TURN_DISCOVERY_RESPONSE message to arrive\n *\n * @returns {Promise}\n * @private\n * @memberof Roap\n */\n private waitForTurnDiscoveryResponse() {\n if (!this.defer) {\n LoggerProxy.logger.warn(\n 'Roap:turnDiscovery#waitForTurnDiscoveryResponse --> TURN discovery is not in progress'\n );\n\n return Promise.reject(\n new Error('waitForTurnDiscoveryResponse() called before sendRoapTurnDiscoveryRequest()')\n );\n }\n\n const {defer} = this;\n\n this.responseTimer = setTimeout(() => {\n LoggerProxy.logger.warn(\n `Roap:turnDiscovery#waitForTurnDiscoveryResponse --> timeout! no response arrived within ${TURN_DISCOVERY_TIMEOUT} seconds`\n );\n\n defer.reject(new Error('Timed out waiting for TURN_DISCOVERY_RESPONSE'));\n }, TURN_DISCOVERY_TIMEOUT * 1000);\n\n LoggerProxy.logger.info(\n 'Roap:turnDiscovery#waitForTurnDiscoveryResponse --> waiting for TURN_DISCOVERY_RESPONSE...'\n );\n\n return defer.promise;\n }\n\n /**\n * handles TURN_DISCOVERY_RESPONSE roap message\n *\n * @param {Object} roapMessage\n * @returns {void}\n * @public\n * @memberof Roap\n */\n public handleTurnDiscoveryResponse(roapMessage: object) {\n // @ts-ignore - Fix missing type\n const {headers} = roapMessage;\n\n if (!this.defer) {\n LoggerProxy.logger.warn(\n 'Roap:turnDiscovery#handleTurnDiscoveryResponse --> unexpected TURN discovery response'\n );\n\n return;\n }\n\n const expectedHeaders = [\n {headerName: 'x-cisco-turn-url', field: 'url'},\n {headerName: 'x-cisco-turn-username', field: 'username'},\n {headerName: 'x-cisco-turn-password', field: 'password'},\n ];\n\n let foundHeaders = 0;\n\n headers?.forEach((receivedHeader) => {\n // check if it matches any of our expected headers\n expectedHeaders.forEach((expectedHeader) => {\n if (receivedHeader.startsWith(`${expectedHeader.headerName}=`)) {\n this.turnInfo[expectedHeader.field] = receivedHeader.substring(\n expectedHeader.headerName.length + 1\n );\n foundHeaders += 1;\n }\n });\n });\n\n clearTimeout(this.responseTimer);\n this.responseTimer = undefined;\n\n if (foundHeaders !== expectedHeaders.length) {\n LoggerProxy.logger.warn(\n `Roap:turnDiscovery#handleTurnDiscoveryResponse --> missing some headers, received: ${JSON.stringify(\n headers\n )}`\n );\n this.defer.reject(\n new Error(`TURN_DISCOVERY_RESPONSE missing some headers: ${JSON.stringify(headers)}`)\n );\n } else {\n LoggerProxy.logger.info(\n `Roap:turnDiscovery#handleTurnDiscoveryResponse --> received a valid response, url=${this.turnInfo.url}`\n );\n this.defer.resolve();\n }\n }\n\n /**\n * sends the TURN_DISCOVERY_REQUEST roap request\n *\n * @param {Meeting} meeting\n * @param {Boolean} isReconnecting\n * @returns {Promise}\n * @private\n * @memberof Roap\n */\n sendRoapTurnDiscoveryRequest(meeting: Meeting, isReconnecting: boolean) {\n if (this.defer) {\n LoggerProxy.logger.warn(\n 'Roap:turnDiscovery#sendRoapTurnDiscoveryRequest --> already in progress'\n );\n\n return Promise.resolve();\n }\n\n this.defer = new Defer();\n\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.TURN_DISCOVERY_REQUEST,\n version: ROAP.ROAP_VERSION,\n seq: TURN_DISCOVERY_SEQ,\n };\n\n LoggerProxy.logger.info(\n 'Roap:turnDiscovery#sendRoapTurnDiscoveryRequest --> sending TURN_DISCOVERY_REQUEST'\n );\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n correlationId: meeting.correlationId,\n // @ts-ignore - Fix missing type\n locusSelfUrl: meeting.selfUrl,\n // @ts-ignore - Fix missing type\n mediaId: isReconnecting ? '' : meeting.mediaId,\n audioMuted: meeting.audio?.isLocallyMuted(),\n videoMuted: meeting.video?.isLocallyMuted(),\n meetingId: meeting.id,\n preferTranscoding: !meeting.isMultistream,\n })\n .then(({mediaConnections}) => {\n if (mediaConnections) {\n meeting.updateMediaConnections(mediaConnections);\n }\n });\n }\n\n /**\n * Sends the OK message that server expects to receive\n * after it sends us TURN_DISCOVERY_RESPONSE\n *\n * @param {Meeting} meeting\n * @returns {Promise}\n */\n sendRoapOK(meeting: Meeting) {\n LoggerProxy.logger.info('Roap:turnDiscovery#sendRoapOK --> sending OK');\n\n return this.roapRequest.sendRoap({\n roapMessage: {\n messageType: ROAP.ROAP_TYPES.OK,\n version: ROAP.ROAP_VERSION,\n seq: TURN_DISCOVERY_SEQ,\n },\n // @ts-ignore - fix type\n locusSelfUrl: meeting.selfUrl,\n // @ts-ignore - fix type\n mediaId: meeting.mediaId,\n correlationId: meeting.correlationId,\n audioMuted: meeting.audio?.isLocallyMuted(),\n videoMuted: meeting.video?.isLocallyMuted(),\n meetingId: meeting.id,\n preferTranscoding: !meeting.isMultistream,\n });\n }\n\n /**\n * Retrieves TURN server information from the backend by doing\n * a roap message exchange:\n * client server\n * | -----TURN_DISCOVERY_REQUEST-----> |\n * | <----TURN_DISCOVERY_RESPONSE----- |\n * | --------------OK----------------> |\n *\n * This TURN discovery roap exchange is always done with seq=0.\n * The RoapMediaConnection SDP exchange always starts with seq=1,\n * so it works fine no matter if TURN discovery is done or not.\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 async doTurnDiscovery(meeting: Meeting, isReconnecting?: boolean) {\n // @ts-ignore - fix type\n const isAnyClusterReachable = await meeting.webex.meetings.reachability.isAnyClusterReachable();\n\n if (isAnyClusterReachable) {\n LoggerProxy.logger.info(\n 'Roap:turnDiscovery#doTurnDiscovery --> reachability has not failed, skipping TURN discovery'\n );\n\n return {\n turnServerInfo: undefined,\n turnDiscoverySkippedReason: 'reachability',\n };\n }\n\n // @ts-ignore - fix type\n if (!meeting.config.experimental.enableTurnDiscovery) {\n LoggerProxy.logger.info(\n 'Roap:turnDiscovery#doTurnDiscovery --> TURN discovery disabled in config, skipping it'\n );\n\n return {turnServerInfo: undefined, turnDiscoverySkippedReason: 'config'};\n }\n\n return this.sendRoapTurnDiscoveryRequest(meeting, isReconnecting)\n .then(() => this.waitForTurnDiscoveryResponse())\n .then(() => this.sendRoapOK(meeting))\n .then(() => {\n this.defer = undefined;\n\n LoggerProxy.logger.info('Roap:turnDiscovery#doTurnDiscovery --> TURN discovery completed');\n\n return {turnServerInfo: this.turnInfo, turnDiscoverySkippedReason: undefined};\n })\n .catch((e) => {\n // we catch any errors and resolve with no turn information so that the normal call join flow can continue without TURN\n LoggerProxy.logger.info(\n `Roap:turnDiscovery#doTurnDiscovery --> TURN discovery failed, continuing without TURN: ${e}`\n );\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.TURN_DISCOVERY_FAILURE, {\n correlation_id: meeting.correlationId,\n locus_id: meeting.locusUrl.split('/').pop(),\n reason: e.message,\n stack: e.stack,\n });\n\n return {turnServerInfo: undefined, turnDiscoverySkippedReason: undefined};\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["TURN_DISCOVERY_TIMEOUT","TURN_DISCOVERY_SEQ","TurnDiscovery","roapRequest","turnInfo","url","username","password","defer","LoggerProxy","logger","warn","reject","Error","responseTimer","setTimeout","info","promise","roapMessage","headers","expectedHeaders","headerName","field","foundHeaders","forEach","receivedHeader","expectedHeader","startsWith","substring","length","clearTimeout","undefined","resolve","meeting","isReconnecting","Defer","messageType","ROAP","ROAP_TYPES","TURN_DISCOVERY_REQUEST","version","ROAP_VERSION","seq","sendRoap","locusSelfUrl","selfUrl","mediaId","meetingId","id","locusMediaRequest","ipVersion","webex","meetings","reachability","getIpVersion","then","mediaConnections","updateMediaConnections","OK","isAnyClusterReachable","config","experimental","enableTurnDiscovery","getSkipReason","skipReason","turnDiscoverySkippedReason","turnServerInfo","sendRoapTurnDiscoveryRequest","waitForTurnDiscoveryResponse","sendRoapOK","catch","e","Metrics","sendBehavioralMetric","BEHAVIORAL_METRICS","TURN_DISCOVERY_FAILURE","correlation_id","correlationId","locus_id","locusUrl","split","pop","reason","message","stack"],"sources":["turnDiscovery.ts"],"sourcesContent":["// @ts-ignore - Types not available for @webex/common\nimport {Defer} from '@webex/common';\n\nimport Metrics from '../metrics';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {ROAP} from '../constants';\n\nimport RoapRequest from './request';\nimport Meeting from '../meeting';\n\nconst TURN_DISCOVERY_TIMEOUT = 10; // in seconds\n\n// Roap spec says that seq should start from 1, but TURN discovery works fine with seq=0\n// and this is handy for us, because TURN discovery is always done before the first SDP exchange,\n// so we can do it with seq=0 or not do it at all and then we create the RoapMediaConnection\n// and do the SDP offer with seq=1\nconst TURN_DISCOVERY_SEQ = 0;\n\n/**\n * Handles the process of finding out TURN server information from Linus.\n * This is achieved by sending a TURN_DISCOVERY_REQUEST.\n */\nexport default class TurnDiscovery {\n private roapRequest: RoapRequest;\n\n private defer?: Defer; // used for waiting for the response\n\n private turnInfo: {\n url: string;\n username: string;\n password: string;\n };\n\n private responseTimer?: ReturnType<typeof setTimeout>;\n\n /**\n * Constructor\n *\n * @param {RoapRequest} roapRequest\n */\n constructor(roapRequest: RoapRequest) {\n this.roapRequest = roapRequest;\n this.turnInfo = {\n url: '',\n username: '',\n password: '',\n };\n }\n\n /**\n * waits for TURN_DISCOVERY_RESPONSE message to arrive\n *\n * @returns {Promise}\n * @private\n * @memberof Roap\n */\n private waitForTurnDiscoveryResponse() {\n if (!this.defer) {\n LoggerProxy.logger.warn(\n 'Roap:turnDiscovery#waitForTurnDiscoveryResponse --> TURN discovery is not in progress'\n );\n\n return Promise.reject(\n new Error('waitForTurnDiscoveryResponse() called before sendRoapTurnDiscoveryRequest()')\n );\n }\n\n const {defer} = this;\n\n this.responseTimer = setTimeout(() => {\n LoggerProxy.logger.warn(\n `Roap:turnDiscovery#waitForTurnDiscoveryResponse --> timeout! no response arrived within ${TURN_DISCOVERY_TIMEOUT} seconds`\n );\n\n defer.reject(new Error('Timed out waiting for TURN_DISCOVERY_RESPONSE'));\n }, TURN_DISCOVERY_TIMEOUT * 1000);\n\n LoggerProxy.logger.info(\n 'Roap:turnDiscovery#waitForTurnDiscoveryResponse --> waiting for TURN_DISCOVERY_RESPONSE...'\n );\n\n return defer.promise;\n }\n\n /**\n * handles TURN_DISCOVERY_RESPONSE roap message\n *\n * @param {Object} roapMessage\n * @returns {void}\n * @public\n * @memberof Roap\n */\n public handleTurnDiscoveryResponse(roapMessage: object) {\n // @ts-ignore - Fix missing type\n const {headers} = roapMessage;\n\n if (!this.defer) {\n LoggerProxy.logger.warn(\n 'Roap:turnDiscovery#handleTurnDiscoveryResponse --> unexpected TURN discovery response'\n );\n\n return;\n }\n\n const expectedHeaders = [\n {headerName: 'x-cisco-turn-url', field: 'url'},\n {headerName: 'x-cisco-turn-username', field: 'username'},\n {headerName: 'x-cisco-turn-password', field: 'password'},\n ];\n\n let foundHeaders = 0;\n\n headers?.forEach((receivedHeader) => {\n // check if it matches any of our expected headers\n expectedHeaders.forEach((expectedHeader) => {\n if (receivedHeader.startsWith(`${expectedHeader.headerName}=`)) {\n this.turnInfo[expectedHeader.field] = receivedHeader.substring(\n expectedHeader.headerName.length + 1\n );\n foundHeaders += 1;\n }\n });\n });\n\n clearTimeout(this.responseTimer);\n this.responseTimer = undefined;\n\n if (foundHeaders !== expectedHeaders.length) {\n LoggerProxy.logger.warn(\n `Roap:turnDiscovery#handleTurnDiscoveryResponse --> missing some headers, received: ${JSON.stringify(\n headers\n )}`\n );\n this.defer.reject(\n new Error(`TURN_DISCOVERY_RESPONSE missing some headers: ${JSON.stringify(headers)}`)\n );\n } else {\n LoggerProxy.logger.info(\n `Roap:turnDiscovery#handleTurnDiscoveryResponse --> received a valid response, url=${this.turnInfo.url}`\n );\n this.defer.resolve();\n }\n }\n\n /**\n * sends the TURN_DISCOVERY_REQUEST roap request\n *\n * @param {Meeting} meeting\n * @param {Boolean} isReconnecting\n * @returns {Promise}\n * @private\n * @memberof Roap\n */\n sendRoapTurnDiscoveryRequest(meeting: Meeting, isReconnecting: boolean) {\n if (this.defer) {\n LoggerProxy.logger.warn(\n 'Roap:turnDiscovery#sendRoapTurnDiscoveryRequest --> already in progress'\n );\n\n return Promise.resolve();\n }\n\n this.defer = new Defer();\n\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.TURN_DISCOVERY_REQUEST,\n version: ROAP.ROAP_VERSION,\n seq: TURN_DISCOVERY_SEQ,\n };\n\n LoggerProxy.logger.info(\n 'Roap:turnDiscovery#sendRoapTurnDiscoveryRequest --> sending TURN_DISCOVERY_REQUEST'\n );\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n // @ts-ignore - Fix missing type\n locusSelfUrl: meeting.selfUrl,\n // @ts-ignore - Fix missing type\n mediaId: isReconnecting ? '' : meeting.mediaId,\n meetingId: meeting.id,\n locusMediaRequest: meeting.locusMediaRequest,\n // @ts-ignore - because of meeting.webex\n ipVersion: meeting.webex.meetings.reachability.getIpVersion(),\n })\n .then(({mediaConnections}) => {\n if (mediaConnections) {\n meeting.updateMediaConnections(mediaConnections);\n }\n });\n }\n\n /**\n * Sends the OK message that server expects to receive\n * after it sends us TURN_DISCOVERY_RESPONSE\n *\n * @param {Meeting} meeting\n * @returns {Promise}\n */\n sendRoapOK(meeting: Meeting) {\n LoggerProxy.logger.info('Roap:turnDiscovery#sendRoapOK --> sending OK');\n\n return this.roapRequest.sendRoap({\n roapMessage: {\n messageType: ROAP.ROAP_TYPES.OK,\n version: ROAP.ROAP_VERSION,\n seq: TURN_DISCOVERY_SEQ,\n },\n // @ts-ignore - fix type\n locusSelfUrl: meeting.selfUrl,\n // @ts-ignore - fix type\n mediaId: meeting.mediaId,\n meetingId: meeting.id,\n locusMediaRequest: meeting.locusMediaRequest,\n // @ts-ignore - because of meeting.webex\n ipVersion: meeting.webex.meetings.reachability.getIpVersion(),\n });\n }\n\n /**\n * Gets the reason why reachability is skipped.\n *\n * @param {Meeting} meeting\n * @returns {Promise<string>} Promise with empty string if reachability is not skipped or a reason if it is skipped\n */\n private async getSkipReason(meeting: Meeting): Promise<string> {\n // @ts-ignore - fix type\n const isAnyClusterReachable = await meeting.webex.meetings.reachability.isAnyClusterReachable();\n\n if (isAnyClusterReachable) {\n LoggerProxy.logger.info(\n 'Roap:turnDiscovery#getSkipReason --> reachability has not failed, skipping TURN discovery'\n );\n\n return 'reachability';\n }\n\n // @ts-ignore - fix type\n if (!meeting.config.experimental.enableTurnDiscovery) {\n LoggerProxy.logger.info(\n 'Roap:turnDiscovery#getSkipReason --> TURN discovery disabled in config, skipping it'\n );\n\n return 'config';\n }\n\n return '';\n }\n\n /**\n * Checks if TURN discovery is skipped.\n *\n * @param {Meeting} meeting\n * @returns {Boolean} true if TURN discovery is being skipped, false if it is being done\n */\n async isSkipped(meeting) {\n const skipReason = await this.getSkipReason(meeting);\n\n return !!skipReason;\n }\n\n /**\n * Retrieves TURN server information from the backend by doing\n * a roap message exchange:\n * client server\n * | -----TURN_DISCOVERY_REQUEST-----> |\n * | <----TURN_DISCOVERY_RESPONSE----- |\n * | --------------OK----------------> |\n *\n * This TURN discovery roap exchange is always done with seq=0.\n * The RoapMediaConnection SDP exchange always starts with seq=1,\n * so it works fine no matter if TURN discovery is done or not.\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 async doTurnDiscovery(meeting: Meeting, isReconnecting?: boolean) {\n const turnDiscoverySkippedReason = await this.getSkipReason(meeting);\n\n if (turnDiscoverySkippedReason) {\n return {\n turnServerInfo: undefined,\n turnDiscoverySkippedReason,\n };\n }\n\n return this.sendRoapTurnDiscoveryRequest(meeting, isReconnecting)\n .then(() => this.waitForTurnDiscoveryResponse())\n .then(() => this.sendRoapOK(meeting))\n .then(() => {\n this.defer = undefined;\n\n LoggerProxy.logger.info('Roap:turnDiscovery#doTurnDiscovery --> TURN discovery completed');\n\n return {turnServerInfo: this.turnInfo, turnDiscoverySkippedReason: undefined};\n })\n .catch((e) => {\n // we catch any errors and resolve with no turn information so that the normal call join flow can continue without TURN\n LoggerProxy.logger.info(\n `Roap:turnDiscovery#doTurnDiscovery --> TURN discovery failed, continuing without TURN: ${e}`\n );\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.TURN_DISCOVERY_FAILURE, {\n correlation_id: meeting.correlationId,\n locus_id: meeting.locusUrl.split('/').pop(),\n reason: e.message,\n stack: e.stack,\n });\n\n return {turnServerInfo: undefined, turnDiscoverySkippedReason: undefined};\n });\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var RTC_METRICS = {
9
+ APP_ID: 'FFB51ED5-4319-4C55-8303-B1F2FCCDE231'
10
+ };
11
+ exports.default = RTC_METRICS;
12
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["RTC_METRICS","APP_ID"],"sources":["constants.ts"],"sourcesContent":["const RTC_METRICS = {APP_ID: 'FFB51ED5-4319-4C55-8303-B1F2FCCDE231'};\n\nexport {RTC_METRICS as default};\n"],"mappings":";;;;;;;AAAA,IAAMA,WAAW,GAAG;EAACC,MAAM,EAAE;AAAsC,CAAC;AAAC"}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
12
+ var _constants = _interopRequireDefault(require("./constants"));
13
+ /**
14
+ * Rtc Metrics
15
+ */
16
+ var RtcMetrics = /*#__PURE__*/function () {
17
+ /**
18
+ * Array of MetricData items to be sent to the metrics service.
19
+ */
20
+
21
+ /**
22
+ * Initialize the interval.
23
+ *
24
+ * @param {object} webex - The main `webex` object.
25
+ * @param {string} meetingId - The meeting id.
26
+ * @param {string} correlationId - The correlation id.
27
+ */
28
+ function RtcMetrics(webex, meetingId, correlationId) {
29
+ (0, _classCallCheck2.default)(this, RtcMetrics);
30
+ (0, _defineProperty2.default)(this, "metricsQueue", []);
31
+ (0, _defineProperty2.default)(this, "intervalId", void 0);
32
+ (0, _defineProperty2.default)(this, "webex", void 0);
33
+ (0, _defineProperty2.default)(this, "meetingId", void 0);
34
+ (0, _defineProperty2.default)(this, "correlationId", void 0);
35
+ // `window` is used to prevent typescript from returning a NodeJS.Timer.
36
+ this.intervalId = window.setInterval(this.checkMetrics.bind(this), 30 * 1000);
37
+ this.meetingId = meetingId;
38
+ this.webex = webex;
39
+ this.correlationId = correlationId;
40
+ // Send the first set of metrics at 5 seconds in the case of a user leaving the call shortly after joining.
41
+ setTimeout(this.checkMetrics.bind(this), 5 * 1000);
42
+ }
43
+
44
+ /**
45
+ * Check to see if the metrics queue has any items.
46
+ *
47
+ * @returns {void}
48
+ */
49
+ (0, _createClass2.default)(RtcMetrics, [{
50
+ key: "checkMetrics",
51
+ value: function checkMetrics() {
52
+ if (this.metricsQueue.length) {
53
+ this.sendMetrics();
54
+ this.metricsQueue = [];
55
+ }
56
+ }
57
+
58
+ /**
59
+ * Add metrics items to the metrics queue.
60
+ *
61
+ * @param {object} data - An object with a payload array of metrics items.
62
+ *
63
+ * @returns {void}
64
+ */
65
+ }, {
66
+ key: "addMetrics",
67
+ value: function addMetrics(data) {
68
+ if (data.payload.length) {
69
+ this.metricsQueue.push(data);
70
+ }
71
+ }
72
+
73
+ /**
74
+ * Clear the metrics interval.
75
+ *
76
+ * @returns {void}
77
+ */
78
+ }, {
79
+ key: "closeMetrics",
80
+ value: function closeMetrics() {
81
+ this.checkMetrics();
82
+ clearInterval(this.intervalId);
83
+ }
84
+
85
+ /**
86
+ * Send metrics to the metrics service.
87
+ *
88
+ * @returns {void}
89
+ */
90
+ }, {
91
+ key: "sendMetrics",
92
+ value: function sendMetrics() {
93
+ this.webex.request({
94
+ method: 'POST',
95
+ service: 'unifiedTelemetry',
96
+ resource: 'metric/v2',
97
+ headers: {
98
+ type: 'webrtcMedia',
99
+ appId: _constants.default.APP_ID
100
+ },
101
+ body: {
102
+ metrics: [{
103
+ type: 'webrtc',
104
+ version: '1.0.1',
105
+ userId: this.webex.internal.device.userId,
106
+ meetingId: this.meetingId,
107
+ correlationId: this.correlationId,
108
+ data: this.metricsQueue
109
+ }]
110
+ }
111
+ });
112
+ }
113
+ }]);
114
+ return RtcMetrics;
115
+ }();
116
+ exports.default = RtcMetrics;
117
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["RtcMetrics","webex","meetingId","correlationId","intervalId","window","setInterval","checkMetrics","bind","setTimeout","metricsQueue","length","sendMetrics","data","payload","push","clearInterval","request","method","service","resource","headers","type","appId","RTC_METRICS","APP_ID","body","metrics","version","userId","internal","device"],"sources":["index.ts"],"sourcesContent":["import RTC_METRICS from './constants';\n\n/**\n * Rtc Metrics\n */\nexport default class RtcMetrics {\n /**\n * Array of MetricData items to be sent to the metrics service.\n */\n metricsQueue = [];\n\n intervalId: number;\n\n webex: any;\n\n meetingId: string;\n\n correlationId: string;\n\n /**\n * Initialize the interval.\n *\n * @param {object} webex - The main `webex` object.\n * @param {string} meetingId - The meeting id.\n * @param {string} correlationId - The correlation id.\n */\n constructor(webex, meetingId, correlationId) {\n // `window` is used to prevent typescript from returning a NodeJS.Timer.\n this.intervalId = window.setInterval(this.checkMetrics.bind(this), 30 * 1000);\n this.meetingId = meetingId;\n this.webex = webex;\n this.correlationId = correlationId;\n // Send the first set of metrics at 5 seconds in the case of a user leaving the call shortly after joining.\n setTimeout(this.checkMetrics.bind(this), 5 * 1000);\n }\n\n /**\n * Check to see if the metrics queue has any items.\n *\n * @returns {void}\n */\n private checkMetrics() {\n if (this.metricsQueue.length) {\n this.sendMetrics();\n this.metricsQueue = [];\n }\n }\n\n /**\n * Add metrics items to the metrics queue.\n *\n * @param {object} data - An object with a payload array of metrics items.\n *\n * @returns {void}\n */\n addMetrics(data) {\n if (data.payload.length) {\n this.metricsQueue.push(data);\n }\n }\n\n /**\n * Clear the metrics interval.\n *\n * @returns {void}\n */\n closeMetrics() {\n this.checkMetrics();\n clearInterval(this.intervalId);\n }\n\n /**\n * Send metrics to the metrics service.\n *\n * @returns {void}\n */\n private sendMetrics() {\n this.webex.request({\n method: 'POST',\n service: 'unifiedTelemetry',\n resource: 'metric/v2',\n headers: {\n type: 'webrtcMedia',\n appId: RTC_METRICS.APP_ID,\n },\n body: {\n metrics: [\n {\n type: 'webrtc',\n version: '1.0.1',\n userId: this.webex.internal.device.userId,\n meetingId: this.meetingId,\n correlationId: this.correlationId,\n data: this.metricsQueue,\n },\n ],\n },\n });\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA;AAEA;AACA;AACA;AAFA,IAGqBA,UAAU;EAC7B;AACF;AACA;;EAWE;AACF;AACA;AACA;AACA;AACA;AACA;EACE,oBAAYC,KAAK,EAAEC,SAAS,EAAEC,aAAa,EAAE;IAAA;IAAA,oDAjB9B,EAAE;IAAA;IAAA;IAAA;IAAA;IAkBf;IACA,IAAI,CAACC,UAAU,GAAGC,MAAM,CAACC,WAAW,CAAC,IAAI,CAACC,YAAY,CAACC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;IAC7E,IAAI,CAACN,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACD,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACE,aAAa,GAAGA,aAAa;IAClC;IACAM,UAAU,CAAC,IAAI,CAACF,YAAY,CAACC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;EACpD;;EAEA;AACF;AACA;AACA;AACA;EAJE;IAAA;IAAA,OAKA,wBAAuB;MACrB,IAAI,IAAI,CAACE,YAAY,CAACC,MAAM,EAAE;QAC5B,IAAI,CAACC,WAAW,EAAE;QAClB,IAAI,CAACF,YAAY,GAAG,EAAE;MACxB;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA;IAAA,OAOA,oBAAWG,IAAI,EAAE;MACf,IAAIA,IAAI,CAACC,OAAO,CAACH,MAAM,EAAE;QACvB,IAAI,CAACD,YAAY,CAACK,IAAI,CAACF,IAAI,CAAC;MAC9B;IACF;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA;IAAA,OAKA,wBAAe;MACb,IAAI,CAACN,YAAY,EAAE;MACnBS,aAAa,CAAC,IAAI,CAACZ,UAAU,CAAC;IAChC;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA;IAAA,OAKA,uBAAsB;MACpB,IAAI,CAACH,KAAK,CAACgB,OAAO,CAAC;QACjBC,MAAM,EAAE,MAAM;QACdC,OAAO,EAAE,kBAAkB;QAC3BC,QAAQ,EAAE,WAAW;QACrBC,OAAO,EAAE;UACPC,IAAI,EAAE,aAAa;UACnBC,KAAK,EAAEC,kBAAW,CAACC;QACrB,CAAC;QACDC,IAAI,EAAE;UACJC,OAAO,EAAE,CACP;YACEL,IAAI,EAAE,QAAQ;YACdM,OAAO,EAAE,OAAO;YAChBC,MAAM,EAAE,IAAI,CAAC5B,KAAK,CAAC6B,QAAQ,CAACC,MAAM,CAACF,MAAM;YACzC3B,SAAS,EAAE,IAAI,CAACA,SAAS;YACzBC,aAAa,EAAE,IAAI,CAACA,aAAa;YACjCU,IAAI,EAAE,IAAI,CAACH;UACb,CAAC;QAEL;MACF,CAAC,CAAC;IACJ;EAAC;EAAA;AAAA;AAAA"}