@webex/plugin-meetings 3.0.0-test.1 → 3.1.0

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 (431) hide show
  1. package/.eslintrc.js +6 -0
  2. package/babel.config.js +3 -0
  3. package/dist/annotation/constants.js +12 -20
  4. package/dist/annotation/constants.js.map +1 -1
  5. package/dist/annotation/index.js +25 -10
  6. package/dist/annotation/index.js.map +1 -1
  7. package/dist/breakouts/breakout.js +2 -3
  8. package/dist/breakouts/breakout.js.map +1 -1
  9. package/dist/breakouts/collection.js +1 -2
  10. package/dist/breakouts/collection.js.map +1 -1
  11. package/dist/breakouts/edit-lock-error.js +1 -2
  12. package/dist/breakouts/edit-lock-error.js.map +1 -1
  13. package/dist/breakouts/events.js +1 -2
  14. package/dist/breakouts/events.js.map +1 -1
  15. package/dist/breakouts/index.js +13 -14
  16. package/dist/breakouts/index.js.map +1 -1
  17. package/dist/breakouts/request.js +1 -2
  18. package/dist/breakouts/request.js.map +1 -1
  19. package/dist/breakouts/utils.js +3 -6
  20. package/dist/breakouts/utils.js.map +1 -1
  21. package/dist/common/browser-detection.js +2 -3
  22. package/dist/common/browser-detection.js.map +1 -1
  23. package/dist/common/collection.js +3 -4
  24. package/dist/common/collection.js.map +1 -1
  25. package/dist/common/config.js +1 -2
  26. package/dist/common/config.js.map +1 -1
  27. package/dist/common/errors/captcha-error.js +1 -2
  28. package/dist/common/errors/captcha-error.js.map +1 -1
  29. package/dist/common/errors/intent-to-join.js +1 -2
  30. package/dist/common/errors/intent-to-join.js.map +1 -1
  31. package/dist/common/errors/join-meeting.js +1 -2
  32. package/dist/common/errors/join-meeting.js.map +1 -1
  33. package/dist/common/errors/media.js +1 -2
  34. package/dist/common/errors/media.js.map +1 -1
  35. package/dist/common/errors/no-meeting-info.js +1 -2
  36. package/dist/common/errors/no-meeting-info.js.map +1 -1
  37. package/dist/common/errors/parameter.js +3 -4
  38. package/dist/common/errors/parameter.js.map +1 -1
  39. package/dist/common/errors/password-error.js +1 -2
  40. package/dist/common/errors/password-error.js.map +1 -1
  41. package/dist/common/errors/permission.js +1 -2
  42. package/dist/common/errors/permission.js.map +1 -1
  43. package/dist/common/errors/reclaim-host-role-errors.js +6 -10
  44. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -1
  45. package/dist/common/errors/reconnection-in-progress.js +1 -2
  46. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  47. package/dist/common/errors/reconnection.js +1 -2
  48. package/dist/common/errors/reconnection.js.map +1 -1
  49. package/dist/common/errors/stats.js +1 -2
  50. package/dist/common/errors/stats.js.map +1 -1
  51. package/dist/common/errors/webex-errors.js +14 -15
  52. package/dist/common/errors/webex-errors.js.map +1 -1
  53. package/dist/common/errors/webex-meetings-error.js +1 -2
  54. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  55. package/dist/common/events/events-scope.js +1 -2
  56. package/dist/common/events/events-scope.js.map +1 -1
  57. package/dist/common/events/events.js +1 -2
  58. package/dist/common/events/events.js.map +1 -1
  59. package/dist/common/events/trigger-proxy.js +1 -2
  60. package/dist/common/events/trigger-proxy.js.map +1 -1
  61. package/dist/common/events/util.js +1 -2
  62. package/dist/common/events/util.js.map +1 -1
  63. package/dist/common/logs/logger-config.js +1 -2
  64. package/dist/common/logs/logger-config.js.map +1 -1
  65. package/dist/common/logs/logger-proxy.js +1 -2
  66. package/dist/common/logs/logger-proxy.js.map +1 -1
  67. package/dist/{types/common → common}/logs/request.d.ts +1 -1
  68. package/dist/common/logs/request.js +3 -4
  69. package/dist/common/logs/request.js.map +1 -1
  70. package/dist/common/queue.js +2 -4
  71. package/dist/common/queue.js.map +1 -1
  72. package/dist/{types/config.d.ts → config.d.ts} +1 -0
  73. package/dist/config.js +4 -3
  74. package/dist/config.js.map +1 -1
  75. package/dist/{types/constants.d.ts → constants.d.ts} +10 -5
  76. package/dist/constants.js +207 -380
  77. package/dist/constants.js.map +1 -1
  78. package/dist/controls-options-manager/constants.js +3 -6
  79. package/dist/controls-options-manager/constants.js.map +1 -1
  80. package/dist/controls-options-manager/enums.js +7 -10
  81. package/dist/controls-options-manager/enums.js.map +1 -1
  82. package/dist/controls-options-manager/index.js +27 -32
  83. package/dist/controls-options-manager/index.js.map +1 -1
  84. package/dist/controls-options-manager/util.js +1 -2
  85. package/dist/controls-options-manager/util.js.map +1 -1
  86. package/dist/index.js +3 -4
  87. package/dist/index.js.map +1 -1
  88. package/dist/interceptors/index.js.map +1 -1
  89. package/dist/interceptors/locusRetry.js +4 -3
  90. package/dist/interceptors/locusRetry.js.map +1 -1
  91. package/dist/interpretation/collection.js +1 -2
  92. package/dist/interpretation/collection.js.map +1 -1
  93. package/dist/interpretation/index.js +4 -5
  94. package/dist/interpretation/index.js.map +1 -1
  95. package/dist/interpretation/siLanguage.js +2 -3
  96. package/dist/interpretation/siLanguage.js.map +1 -1
  97. package/dist/locus-info/controlsUtils.js +12 -13
  98. package/dist/locus-info/controlsUtils.js.map +1 -1
  99. package/dist/locus-info/embeddedAppsUtils.js +3 -4
  100. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  101. package/dist/locus-info/fullState.js +1 -2
  102. package/dist/locus-info/fullState.js.map +1 -1
  103. package/dist/locus-info/hostUtils.js +1 -2
  104. package/dist/locus-info/hostUtils.js.map +1 -1
  105. package/dist/locus-info/index.js +23 -27
  106. package/dist/locus-info/index.js.map +1 -1
  107. package/dist/locus-info/infoUtils.js +3 -4
  108. package/dist/locus-info/infoUtils.js.map +1 -1
  109. package/dist/locus-info/mediaSharesUtils.js +16 -3
  110. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  111. package/dist/locus-info/parser.js +6 -10
  112. package/dist/locus-info/parser.js.map +1 -1
  113. package/dist/locus-info/selfUtils.js +12 -6
  114. package/dist/locus-info/selfUtils.js.map +1 -1
  115. package/dist/media/MediaConnectionAwaiter.d.ts +61 -0
  116. package/dist/media/MediaConnectionAwaiter.js +163 -0
  117. package/dist/media/MediaConnectionAwaiter.js.map +1 -0
  118. package/dist/media/index.js +9 -5
  119. package/dist/media/index.js.map +1 -1
  120. package/dist/media/properties.js +7 -28
  121. package/dist/media/properties.js.map +1 -1
  122. package/dist/media/util.js +1 -2
  123. package/dist/media/util.js.map +1 -1
  124. package/dist/mediaQualityMetrics/config.js +9 -18
  125. package/dist/mediaQualityMetrics/config.js.map +1 -1
  126. package/dist/meeting/in-meeting-actions.js +14 -2
  127. package/dist/meeting/in-meeting-actions.js.map +1 -1
  128. package/dist/{types/meeting → meeting}/index.d.ts +71 -16
  129. package/dist/meeting/index.js +1411 -1036
  130. package/dist/meeting/index.js.map +1 -1
  131. package/dist/meeting/locusMediaRequest.js +4 -5
  132. package/dist/meeting/locusMediaRequest.js.map +1 -1
  133. package/dist/meeting/muteState.js +2 -4
  134. package/dist/meeting/muteState.js.map +1 -1
  135. package/dist/{types/meeting → meeting}/request.d.ts +3 -0
  136. package/dist/meeting/request.js +45 -36
  137. package/dist/meeting/request.js.map +1 -1
  138. package/dist/meeting/state.js +1 -2
  139. package/dist/meeting/state.js.map +1 -1
  140. package/dist/{types/meeting → meeting}/util.d.ts +1 -0
  141. package/dist/meeting/util.js +13 -10
  142. package/dist/meeting/util.js.map +1 -1
  143. package/dist/meeting/voicea-meeting.d.ts +16 -0
  144. package/dist/meeting/voicea-meeting.js +169 -0
  145. package/dist/meeting/voicea-meeting.js.map +1 -0
  146. package/dist/meeting-info/collection.js +3 -4
  147. package/dist/meeting-info/collection.js.map +1 -1
  148. package/dist/meeting-info/index.js +5 -4
  149. package/dist/meeting-info/index.js.map +1 -1
  150. package/dist/meeting-info/meeting-info-v2.js +27 -29
  151. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  152. package/dist/meeting-info/request.js +1 -2
  153. package/dist/meeting-info/request.js.map +1 -1
  154. package/dist/meeting-info/util.js +8 -8
  155. package/dist/meeting-info/util.js.map +1 -1
  156. package/dist/meeting-info/utilv2.js +15 -9
  157. package/dist/meeting-info/utilv2.js.map +1 -1
  158. package/dist/meetings/collection.js +5 -6
  159. package/dist/meetings/collection.js.map +1 -1
  160. package/dist/{types/meetings → meetings}/index.d.ts +11 -2
  161. package/dist/meetings/index.js +44 -17
  162. package/dist/meetings/index.js.map +1 -1
  163. package/dist/meetings/request.js +2 -3
  164. package/dist/meetings/request.js.map +1 -1
  165. package/dist/meetings/util.js +1 -4
  166. package/dist/meetings/util.js.map +1 -1
  167. package/dist/member/index.js +1 -3
  168. package/dist/member/index.js.map +1 -1
  169. package/dist/member/types.js +6 -8
  170. package/dist/member/types.js.map +1 -1
  171. package/dist/member/util.js +1 -2
  172. package/dist/member/util.js.map +1 -1
  173. package/dist/members/collection.js +1 -2
  174. package/dist/members/collection.js.map +1 -1
  175. package/dist/members/index.js +8 -7
  176. package/dist/members/index.js.map +1 -1
  177. package/dist/members/request.js +2 -3
  178. package/dist/members/request.js.map +1 -1
  179. package/dist/members/types.js +3 -4
  180. package/dist/members/types.js.map +1 -1
  181. package/dist/{types/members → members}/util.d.ts +1 -1
  182. package/dist/members/util.js +3 -4
  183. package/dist/members/util.js.map +1 -1
  184. package/dist/metrics/constants.js +1 -2
  185. package/dist/metrics/constants.js.map +1 -1
  186. package/dist/metrics/index.js +3 -2
  187. package/dist/metrics/index.js.map +1 -1
  188. package/dist/{types/multistream → multistream}/mediaRequestManager.d.ts +1 -2
  189. package/dist/multistream/mediaRequestManager.js +9 -11
  190. package/dist/multistream/mediaRequestManager.js.map +1 -1
  191. package/dist/multistream/receiveSlot.js +3 -5
  192. package/dist/multistream/receiveSlot.js.map +1 -1
  193. package/dist/multistream/receiveSlotManager.js +7 -9
  194. package/dist/multistream/receiveSlotManager.js.map +1 -1
  195. package/dist/multistream/remoteMedia.js +3 -5
  196. package/dist/multistream/remoteMedia.js.map +1 -1
  197. package/dist/{types/multistream → multistream}/remoteMediaGroup.d.ts +1 -1
  198. package/dist/multistream/remoteMediaGroup.js +7 -6
  199. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  200. package/dist/{types/multistream → multistream}/remoteMediaManager.d.ts +1 -2
  201. package/dist/multistream/remoteMediaManager.js +32 -29
  202. package/dist/multistream/remoteMediaManager.js.map +1 -1
  203. package/dist/{types/multistream → multistream}/sendSlotManager.d.ts +1 -2
  204. package/dist/multistream/sendSlotManager.js +9 -6
  205. package/dist/multistream/sendSlotManager.js.map +1 -1
  206. package/dist/networkQualityMonitor/index.js +1 -2
  207. package/dist/networkQualityMonitor/index.js.map +1 -1
  208. package/dist/personal-meeting-room/index.js +2 -3
  209. package/dist/personal-meeting-room/index.js.map +1 -1
  210. package/dist/personal-meeting-room/request.js +2 -3
  211. package/dist/personal-meeting-room/request.js.map +1 -1
  212. package/dist/personal-meeting-room/util.js +1 -2
  213. package/dist/personal-meeting-room/util.js.map +1 -1
  214. package/dist/{types/reachability → reachability}/clusterReachability.d.ts +1 -0
  215. package/dist/reachability/clusterReachability.js +35 -20
  216. package/dist/reachability/clusterReachability.js.map +1 -1
  217. package/dist/{types/reachability → reachability}/index.d.ts +4 -0
  218. package/dist/reachability/index.js +41 -12
  219. package/dist/reachability/index.js.map +1 -1
  220. package/dist/reachability/request.js +25 -20
  221. package/dist/reachability/request.js.map +1 -1
  222. package/dist/{types/reachability → reachability}/util.d.ts +7 -0
  223. package/dist/reachability/util.js +19 -0
  224. package/dist/reachability/util.js.map +1 -1
  225. package/dist/reactions/constants.js +1 -2
  226. package/dist/reactions/constants.js.map +1 -1
  227. package/dist/reactions/reactions.js +2 -4
  228. package/dist/reactions/reactions.js.map +1 -1
  229. package/dist/reactions/reactions.type.js +6 -8
  230. package/dist/reactions/reactions.type.js.map +1 -1
  231. package/dist/reconnection-manager/index.js +18 -11
  232. package/dist/reconnection-manager/index.js.map +1 -1
  233. package/dist/recording-controller/enums.js +4 -5
  234. package/dist/recording-controller/enums.js.map +1 -1
  235. package/dist/recording-controller/index.js +43 -51
  236. package/dist/recording-controller/index.js.map +1 -1
  237. package/dist/recording-controller/util.js +1 -2
  238. package/dist/recording-controller/util.js.map +1 -1
  239. package/dist/{types/roap → roap}/index.d.ts +10 -2
  240. package/dist/roap/index.js +17 -3
  241. package/dist/roap/index.js.map +1 -1
  242. package/dist/roap/request.js +10 -10
  243. package/dist/roap/request.js.map +1 -1
  244. package/dist/{types/roap → roap}/turnDiscovery.d.ts +64 -17
  245. package/dist/roap/turnDiscovery.js +316 -134
  246. package/dist/roap/turnDiscovery.js.map +1 -1
  247. package/dist/rtcMetrics/constants.js +1 -2
  248. package/dist/rtcMetrics/constants.js.map +1 -1
  249. package/dist/rtcMetrics/index.js +4 -6
  250. package/dist/rtcMetrics/index.js.map +1 -1
  251. package/dist/statsAnalyzer/global.js +1 -2
  252. package/dist/statsAnalyzer/global.js.map +1 -1
  253. package/dist/statsAnalyzer/index.js +123 -96
  254. package/dist/statsAnalyzer/index.js.map +1 -1
  255. package/dist/statsAnalyzer/mqaUtil.js +24 -31
  256. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  257. package/dist/transcription/index.js +1 -2
  258. package/dist/transcription/index.js.map +1 -1
  259. package/dist/webinar/collection.js +1 -2
  260. package/dist/webinar/collection.js.map +1 -1
  261. package/dist/webinar/index.js +2 -3
  262. package/dist/webinar/index.js.map +1 -1
  263. package/jest.config.js +3 -0
  264. package/package.json +44 -25
  265. package/process +1 -0
  266. package/src/config.ts +3 -4
  267. package/src/constants.ts +13 -4
  268. package/src/interpretation/index.ts +2 -2
  269. package/src/locus-info/mediaSharesUtils.ts +16 -0
  270. package/src/locus-info/selfUtils.ts +5 -0
  271. package/src/media/MediaConnectionAwaiter.ts +174 -0
  272. package/src/media/index.ts +3 -1
  273. package/src/media/properties.ts +6 -31
  274. package/src/meeting/index.ts +526 -227
  275. package/src/meeting/request.ts +18 -2
  276. package/src/meeting/util.ts +6 -1
  277. package/src/meeting/voicea-meeting.ts +122 -0
  278. package/src/meeting-info/meeting-info-v2.ts +5 -11
  279. package/src/meeting-info/util.ts +12 -9
  280. package/src/meeting-info/utilv2.ts +26 -15
  281. package/src/meetings/index.ts +18 -0
  282. package/src/member/index.ts +0 -1
  283. package/src/multistream/mediaRequestManager.ts +1 -1
  284. package/src/multistream/remoteMediaGroup.ts +1 -1
  285. package/src/multistream/remoteMediaManager.ts +1 -2
  286. package/src/multistream/sendSlotManager.ts +1 -2
  287. package/src/reachability/clusterReachability.ts +20 -5
  288. package/src/reachability/index.ts +24 -1
  289. package/src/reachability/request.ts +15 -11
  290. package/src/reachability/util.ts +21 -0
  291. package/src/reconnection-manager/index.ts +1 -1
  292. package/src/roap/index.ts +25 -3
  293. package/src/roap/request.ts +2 -2
  294. package/src/roap/turnDiscovery.ts +244 -78
  295. package/src/statsAnalyzer/index.ts +63 -27
  296. package/test/integration/spec/journey.js +2 -2
  297. package/test/unit/spec/breakouts/breakout.ts +2 -1
  298. package/test/unit/spec/breakouts/index.ts +7 -4
  299. package/test/unit/spec/interpretation/index.ts +4 -1
  300. package/test/unit/spec/locus-info/index.js +27 -18
  301. package/test/unit/spec/locus-info/mediaSharesUtils.ts +9 -0
  302. package/test/unit/spec/locus-info/selfUtils.js +41 -11
  303. package/test/unit/spec/media/MediaConnectionAwaiter.ts +344 -0
  304. package/test/unit/spec/media/index.ts +94 -78
  305. package/test/unit/spec/media/properties.ts +16 -70
  306. package/test/unit/spec/meeting/index.js +757 -141
  307. package/test/unit/spec/meeting/request.js +21 -0
  308. package/test/unit/spec/meeting/utils.js +58 -11
  309. package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
  310. package/test/unit/spec/meeting-info/meetinginfov2.js +20 -15
  311. package/test/unit/spec/meeting-info/utilv2.js +6 -0
  312. package/test/unit/spec/meetings/index.js +101 -13
  313. package/test/unit/spec/metrics/index.js +1 -2
  314. package/test/unit/spec/multistream/mediaRequestManager.ts +1 -0
  315. package/test/unit/spec/multistream/remoteMediaGroup.ts +0 -1
  316. package/test/unit/spec/multistream/remoteMediaManager.ts +0 -1
  317. package/test/unit/spec/reachability/clusterReachability.ts +86 -22
  318. package/test/unit/spec/reachability/index.ts +197 -60
  319. package/test/unit/spec/reachability/request.js +15 -7
  320. package/test/unit/spec/reachability/util.ts +32 -2
  321. package/test/unit/spec/reconnection-manager/index.js +28 -0
  322. package/test/unit/spec/recording-controller/index.js +0 -1
  323. package/test/unit/spec/roap/index.ts +61 -6
  324. package/test/unit/spec/roap/turnDiscovery.ts +299 -17
  325. package/test/unit/spec/stats-analyzer/index.js +179 -0
  326. /package/dist/{types/annotation → annotation}/annotation.types.d.ts +0 -0
  327. /package/dist/{types/annotation → annotation}/constants.d.ts +0 -0
  328. /package/dist/{types/annotation → annotation}/index.d.ts +0 -0
  329. /package/dist/{types/breakouts → breakouts}/breakout.d.ts +0 -0
  330. /package/dist/{types/breakouts → breakouts}/collection.d.ts +0 -0
  331. /package/dist/{types/breakouts → breakouts}/edit-lock-error.d.ts +0 -0
  332. /package/dist/{types/breakouts → breakouts}/events.d.ts +0 -0
  333. /package/dist/{types/breakouts → breakouts}/index.d.ts +0 -0
  334. /package/dist/{types/breakouts → breakouts}/request.d.ts +0 -0
  335. /package/dist/{types/breakouts → breakouts}/utils.d.ts +0 -0
  336. /package/dist/{types/common → common}/browser-detection.d.ts +0 -0
  337. /package/dist/{types/common → common}/collection.d.ts +0 -0
  338. /package/dist/{types/common → common}/config.d.ts +0 -0
  339. /package/dist/{types/common → common}/errors/captcha-error.d.ts +0 -0
  340. /package/dist/{types/common → common}/errors/intent-to-join.d.ts +0 -0
  341. /package/dist/{types/common → common}/errors/join-meeting.d.ts +0 -0
  342. /package/dist/{types/common → common}/errors/media.d.ts +0 -0
  343. /package/dist/{types/common → common}/errors/no-meeting-info.d.ts +0 -0
  344. /package/dist/{types/common → common}/errors/parameter.d.ts +0 -0
  345. /package/dist/{types/common → common}/errors/password-error.d.ts +0 -0
  346. /package/dist/{types/common → common}/errors/permission.d.ts +0 -0
  347. /package/dist/{types/common → common}/errors/reclaim-host-role-errors.d.ts +0 -0
  348. /package/dist/{types/common → common}/errors/reconnection-in-progress.d.ts +0 -0
  349. /package/dist/{types/common → common}/errors/reconnection.d.ts +0 -0
  350. /package/dist/{types/common → common}/errors/stats.d.ts +0 -0
  351. /package/dist/{types/common → common}/errors/webex-errors.d.ts +0 -0
  352. /package/dist/{types/common → common}/errors/webex-meetings-error.d.ts +0 -0
  353. /package/dist/{types/common → common}/events/events-scope.d.ts +0 -0
  354. /package/dist/{types/common → common}/events/events.d.ts +0 -0
  355. /package/dist/{types/common → common}/events/trigger-proxy.d.ts +0 -0
  356. /package/dist/{types/common → common}/events/util.d.ts +0 -0
  357. /package/dist/{types/common → common}/logs/logger-config.d.ts +0 -0
  358. /package/dist/{types/common → common}/logs/logger-proxy.d.ts +0 -0
  359. /package/dist/{types/common → common}/queue.d.ts +0 -0
  360. /package/dist/{types/controls-options-manager → controls-options-manager}/constants.d.ts +0 -0
  361. /package/dist/{types/controls-options-manager → controls-options-manager}/enums.d.ts +0 -0
  362. /package/dist/{types/controls-options-manager → controls-options-manager}/index.d.ts +0 -0
  363. /package/dist/{types/controls-options-manager → controls-options-manager}/types.d.ts +0 -0
  364. /package/dist/{types/controls-options-manager → controls-options-manager}/util.d.ts +0 -0
  365. /package/dist/{types/index.d.ts → index.d.ts} +0 -0
  366. /package/dist/{types/interceptors → interceptors}/index.d.ts +0 -0
  367. /package/dist/{types/interceptors → interceptors}/locusRetry.d.ts +0 -0
  368. /package/dist/{types/interpretation → interpretation}/collection.d.ts +0 -0
  369. /package/dist/{types/interpretation → interpretation}/index.d.ts +0 -0
  370. /package/dist/{types/interpretation → interpretation}/siLanguage.d.ts +0 -0
  371. /package/dist/{types/locus-info → locus-info}/controlsUtils.d.ts +0 -0
  372. /package/dist/{types/locus-info → locus-info}/embeddedAppsUtils.d.ts +0 -0
  373. /package/dist/{types/locus-info → locus-info}/fullState.d.ts +0 -0
  374. /package/dist/{types/locus-info → locus-info}/hostUtils.d.ts +0 -0
  375. /package/dist/{types/locus-info → locus-info}/index.d.ts +0 -0
  376. /package/dist/{types/locus-info → locus-info}/infoUtils.d.ts +0 -0
  377. /package/dist/{types/locus-info → locus-info}/mediaSharesUtils.d.ts +0 -0
  378. /package/dist/{types/locus-info → locus-info}/parser.d.ts +0 -0
  379. /package/dist/{types/locus-info → locus-info}/selfUtils.d.ts +0 -0
  380. /package/dist/{types/media → media}/index.d.ts +0 -0
  381. /package/dist/{types/media → media}/properties.d.ts +0 -0
  382. /package/dist/{types/media → media}/util.d.ts +0 -0
  383. /package/dist/{types/mediaQualityMetrics → mediaQualityMetrics}/config.d.ts +0 -0
  384. /package/dist/{types/meeting → meeting}/in-meeting-actions.d.ts +0 -0
  385. /package/dist/{types/meeting → meeting}/locusMediaRequest.d.ts +0 -0
  386. /package/dist/{types/meeting → meeting}/muteState.d.ts +0 -0
  387. /package/dist/{types/meeting → meeting}/request.type.d.ts +0 -0
  388. /package/dist/{types/meeting → meeting}/state.d.ts +0 -0
  389. /package/dist/{types/meeting-info → meeting-info}/collection.d.ts +0 -0
  390. /package/dist/{types/meeting-info → meeting-info}/index.d.ts +0 -0
  391. /package/dist/{types/meeting-info → meeting-info}/meeting-info-v2.d.ts +0 -0
  392. /package/dist/{types/meeting-info → meeting-info}/request.d.ts +0 -0
  393. /package/dist/{types/meeting-info → meeting-info}/util.d.ts +0 -0
  394. /package/dist/{types/meeting-info → meeting-info}/utilv2.d.ts +0 -0
  395. /package/dist/{types/meetings → meetings}/collection.d.ts +0 -0
  396. /package/dist/{types/meetings → meetings}/meetings.types.d.ts +0 -0
  397. /package/dist/{types/meetings → meetings}/request.d.ts +0 -0
  398. /package/dist/{types/meetings → meetings}/util.d.ts +0 -0
  399. /package/dist/{types/member → member}/index.d.ts +0 -0
  400. /package/dist/{types/member → member}/types.d.ts +0 -0
  401. /package/dist/{types/member → member}/util.d.ts +0 -0
  402. /package/dist/{types/members → members}/collection.d.ts +0 -0
  403. /package/dist/{types/members → members}/index.d.ts +0 -0
  404. /package/dist/{types/members → members}/request.d.ts +0 -0
  405. /package/dist/{types/members → members}/types.d.ts +0 -0
  406. /package/dist/{types/metrics → metrics}/constants.d.ts +0 -0
  407. /package/dist/{types/metrics → metrics}/index.d.ts +0 -0
  408. /package/dist/{types/multistream → multistream}/receiveSlot.d.ts +0 -0
  409. /package/dist/{types/multistream → multistream}/receiveSlotManager.d.ts +0 -0
  410. /package/dist/{types/multistream → multistream}/remoteMedia.d.ts +0 -0
  411. /package/dist/{types/networkQualityMonitor → networkQualityMonitor}/index.d.ts +0 -0
  412. /package/dist/{types/personal-meeting-room → personal-meeting-room}/index.d.ts +0 -0
  413. /package/dist/{types/personal-meeting-room → personal-meeting-room}/request.d.ts +0 -0
  414. /package/dist/{types/personal-meeting-room → personal-meeting-room}/util.d.ts +0 -0
  415. /package/dist/{types/reachability → reachability}/request.d.ts +0 -0
  416. /package/dist/{types/reactions → reactions}/constants.d.ts +0 -0
  417. /package/dist/{types/reactions → reactions}/reactions.d.ts +0 -0
  418. /package/dist/{types/reactions → reactions}/reactions.type.d.ts +0 -0
  419. /package/dist/{types/reconnection-manager → reconnection-manager}/index.d.ts +0 -0
  420. /package/dist/{types/recording-controller → recording-controller}/enums.d.ts +0 -0
  421. /package/dist/{types/recording-controller → recording-controller}/index.d.ts +0 -0
  422. /package/dist/{types/recording-controller → recording-controller}/util.d.ts +0 -0
  423. /package/dist/{types/roap → roap}/request.d.ts +0 -0
  424. /package/dist/{types/rtcMetrics → rtcMetrics}/constants.d.ts +0 -0
  425. /package/dist/{types/rtcMetrics → rtcMetrics}/index.d.ts +0 -0
  426. /package/dist/{types/statsAnalyzer → statsAnalyzer}/global.d.ts +0 -0
  427. /package/dist/{types/statsAnalyzer → statsAnalyzer}/index.d.ts +0 -0
  428. /package/dist/{types/statsAnalyzer → statsAnalyzer}/mqaUtil.d.ts +0 -0
  429. /package/dist/{types/transcription → transcription}/index.d.ts +0 -0
  430. /package/dist/{types/webinar → webinar}/collection.d.ts +0 -0
  431. /package/dist/{types/webinar → webinar}/index.d.ts +0 -0
@@ -29,21 +29,22 @@ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-cor
29
29
  var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
30
30
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
31
31
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
32
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
33
- var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
34
- var _isEqual2 = _interopRequireDefault(require("lodash/isEqual"));
35
- var _cloneDeep2 = _interopRequireDefault(require("lodash/cloneDeep"));
32
+ var _defineProperty3 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
36
33
  var _uuid = _interopRequireDefault(require("uuid"));
37
- var _jsonwebtoken = _interopRequireDefault(require("jsonwebtoken"));
34
+ var _lodash = require("lodash");
35
+ var _jwtDecode = _interopRequireDefault(require("jwt-decode"));
38
36
  var _webexCore = require("@webex/webex-core");
39
37
  var _common = require("@webex/common");
40
38
  var _internalPluginMetrics = require("@webex/internal-plugin-metrics");
41
39
  var _internalMediaCore = require("@webex/internal-media-core");
42
40
  var _mediaHelpers = require("@webex/media-helpers");
41
+ var _internalPluginVoicea = require("@webex/internal-plugin-voicea");
42
+ var _voiceaMeeting = require("./voicea-meeting");
43
43
  var _webexErrors = require("../common/errors/webex-errors");
44
44
  var _statsAnalyzer = require("../statsAnalyzer");
45
45
  var _networkQualityMonitor = _interopRequireDefault(require("../networkQualityMonitor"));
46
46
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
47
+ var _util = _interopRequireDefault(require("../common/events/util"));
47
48
  var _triggerProxy = _interopRequireDefault(require("../common/events/trigger-proxy"));
48
49
  var _index = _interopRequireDefault(require("../roap/index"));
49
50
  var _media = _interopRequireDefault(require("../media"));
@@ -55,12 +56,11 @@ var _metrics = _interopRequireDefault(require("../metrics"));
55
56
  var _reconnectionManager = _interopRequireDefault(require("../reconnection-manager"));
56
57
  var _request = _interopRequireDefault(require("./request"));
57
58
  var _index2 = _interopRequireDefault(require("../members/index"));
58
- var _util = _interopRequireDefault(require("./util"));
59
- var _util2 = _interopRequireDefault(require("../meetings/util"));
60
- var _util3 = _interopRequireDefault(require("../recording-controller/util"));
61
- var _util4 = _interopRequireDefault(require("../controls-options-manager/util"));
62
- var _util5 = _interopRequireDefault(require("../media/util"));
63
- var _transcription = _interopRequireDefault(require("../transcription"));
59
+ var _util2 = _interopRequireDefault(require("./util"));
60
+ var _util3 = _interopRequireDefault(require("../meetings/util"));
61
+ var _util4 = _interopRequireDefault(require("../recording-controller/util"));
62
+ var _util5 = _interopRequireDefault(require("../controls-options-manager/util"));
63
+ var _util6 = _interopRequireDefault(require("../media/util"));
64
64
  var _reactions = require("../reactions/reactions");
65
65
  var _passwordError = _interopRequireDefault(require("../common/errors/password-error"));
66
66
  var _captchaError = _interopRequireDefault(require("../common/errors/captcha-error"));
@@ -70,7 +70,6 @@ var _constants = require("../constants");
70
70
  var _constants2 = _interopRequireDefault(require("../metrics/constants"));
71
71
  var _parameter = _interopRequireDefault(require("../common/errors/parameter"));
72
72
  var _meetingInfoV = require("../meeting-info/meeting-info-v2");
73
- var _browserDetection = _interopRequireDefault(require("../common/browser-detection"));
74
73
  var _receiveSlotManager = require("../multistream/receiveSlotManager");
75
74
  var _sendSlotManager = _interopRequireDefault(require("../multistream/sendSlotManager"));
76
75
  var _mediaRequestManager = require("../multistream/mediaRequestManager");
@@ -88,12 +87,11 @@ var _locusMediaRequest = require("./locusMediaRequest");
88
87
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
89
88
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
90
89
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
91
- 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; }
92
- 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; }
90
+ function ownKeys(e, r) { var t = _Object$keys2(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
91
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty3.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
93
92
  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); }; }
94
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
95
- var _BrowserDetection = (0, _browserDetection.default)(),
96
- isBrowser = _BrowserDetection.isBrowser;
93
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } // @ts-ignore - Fix this
94
+ // @ts-ignore - Types not available for @webex/common
97
95
  var logRequest = function logRequest(request, _ref) {
98
96
  var _ref$logText = _ref.logText,
99
97
  logText = _ref$logText === void 0 ? '' : _ref$logText;
@@ -106,19 +104,17 @@ var logRequest = function logRequest(request, _ref) {
106
104
  throw error;
107
105
  });
108
106
  };
109
- var MEDIA_UPDATE_TYPE = {
107
+ var MEDIA_UPDATE_TYPE = exports.MEDIA_UPDATE_TYPE = {
110
108
  TRANSCODED_MEDIA_CONNECTION: 'TRANSCODED_MEDIA_CONNECTION',
111
109
  SHARE_FLOOR_REQUEST: 'SHARE_FLOOR_REQUEST',
112
110
  UPDATE_MEDIA: 'UPDATE_MEDIA'
113
111
  };
114
- exports.MEDIA_UPDATE_TYPE = MEDIA_UPDATE_TYPE;
115
- var ScreenShareFloorStatus;
116
- exports.ScreenShareFloorStatus = ScreenShareFloorStatus;
117
- (function (ScreenShareFloorStatus) {
112
+ var ScreenShareFloorStatus = exports.ScreenShareFloorStatus = /*#__PURE__*/function (ScreenShareFloorStatus) {
118
113
  ScreenShareFloorStatus["PENDING"] = "floor_request_pending";
119
114
  ScreenShareFloorStatus["GRANTED"] = "floor_request_granted";
120
115
  ScreenShareFloorStatus["RELEASED"] = "floor_released";
121
- })(ScreenShareFloorStatus || (exports.ScreenShareFloorStatus = ScreenShareFloorStatus = {}));
116
+ return ScreenShareFloorStatus;
117
+ }({});
122
118
  /**
123
119
  * MediaDirection
124
120
  * @typedef {Object} MediaDirection
@@ -365,13 +361,9 @@ exports.ScreenShareFloorStatus = ScreenShareFloorStatus;
365
361
  * @export
366
362
  * @class Meeting
367
363
  */
368
- var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
364
+ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
369
365
  (0, _inherits2.default)(Meeting, _StatelessWebexPlugin);
370
366
  var _super = _createSuper(Meeting);
371
- // comes from Locus, initialized by updateMeetingObject()
372
-
373
- // used for waiting for a response
374
-
375
367
  /**
376
368
  * @param {Object} attrs
377
369
  * @param {Object} options
@@ -390,119 +382,160 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
390
382
  * @private
391
383
  * @memberof Meeting
392
384
  */
393
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "attrs", void 0);
394
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "audio", void 0);
395
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "breakouts", void 0);
396
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "simultaneousInterpretation", void 0);
397
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "annotation", void 0);
398
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "webinar", void 0);
399
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "conversationUrl", void 0);
400
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "callStateForMetrics", void 0);
401
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "destination", void 0);
402
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "destinationType", void 0);
403
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "deviceUrl", void 0);
404
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hostId", void 0);
405
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "id", void 0);
406
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isMultistream", void 0);
407
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "locusUrl", void 0);
408
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mediaConnections", void 0);
409
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mediaId", void 0);
410
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingFiniteStateMachine", void 0);
411
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingInfo", void 0);
412
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingRequest", void 0);
413
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "members", void 0);
414
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "options", void 0);
415
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "orgId", void 0);
416
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "owner", void 0);
417
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "partner", void 0);
418
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "policy", void 0);
419
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "reconnectionManager", void 0);
420
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "resource", void 0);
421
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "roap", void 0);
422
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "roapSeq", void 0);
423
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "selfUrl", void 0);
424
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sipUri", void 0);
425
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "type", void 0);
426
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "userId", void 0);
427
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "video", void 0);
428
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "callEvents", void 0);
429
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "datachannelUrl", void 0);
430
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "deferJoin", void 0);
431
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "dialInDeviceStatus", void 0);
432
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "dialInUrl", void 0);
433
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "dialOutDeviceStatus", void 0);
434
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "dialOutUrl", void 0);
435
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "fetchMeetingInfoTimeoutId", void 0);
436
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "floorGrantPending", void 0);
437
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hasJoinedOnce", void 0);
438
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hasWebsocketConnected", void 0);
439
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "inMeetingActions", void 0);
440
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isLocalShareLive", void 0);
441
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isRoapInProgress", void 0);
442
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "keepAliveTimerId", void 0);
443
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "lastVideoLayoutInfo", void 0);
444
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "locusInfo", void 0);
445
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "locusMediaRequest", void 0);
446
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mediaProperties", void 0);
447
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mediaRequestManagers", void 0);
448
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingInfoFailureReason", void 0);
449
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingInfoFailureCode", void 0);
450
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingInfoExtraParams", void 0);
451
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "networkQualityMonitor", void 0);
452
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "networkStatus", void 0);
453
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "passwordStatus", void 0);
454
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "queuedMediaUpdates", void 0);
455
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "recording", void 0);
456
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "remoteMediaManager", void 0);
457
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "recordingController", void 0);
458
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "controlsOptionsManager", void 0);
459
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "requiredCaptcha", void 0);
460
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "receiveSlotManager", void 0);
461
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "selfUserPolicies", void 0);
462
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "enforceVBGImagesURL", void 0);
463
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "shareStatus", void 0);
464
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "screenShareFloorState", void 0);
465
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "statsAnalyzer", void 0);
466
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "transcription", void 0);
467
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "updateMediaConnections", void 0);
468
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "userDisplayHints", void 0);
469
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "endCallInitJoinReq", void 0);
470
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "endJoinReqResp", void 0);
471
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "endLocalSDPGenRemoteSDPRecvDelay", void 0);
472
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "joinedWith", void 0);
473
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "locusId", void 0);
474
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "startCallInitJoinReq", void 0);
475
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "startJoinReqResp", void 0);
476
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "startLocalSDPGenRemoteSDPRecvDelay", void 0);
477
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "wirelessShare", void 0);
478
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "guest", void 0);
479
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingJoinUrl", void 0);
480
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingNumber", void 0);
481
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingState", void 0);
482
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "permissionToken", void 0);
483
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "permissionTokenPayload", void 0);
484
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "permissionTokenReceivedLocalTime", void 0);
485
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "resourceId", void 0);
486
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "resourceUrl", void 0);
487
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "selfId", void 0);
488
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", void 0);
489
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "localAudioStreamMuteStateHandler", void 0);
490
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "localVideoStreamMuteStateHandler", void 0);
491
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "localOutputTrackChangeHandler", void 0);
492
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "roles", void 0);
493
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "environment", void 0);
494
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "namespace", _constants.MEETINGS);
495
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "allowMediaInLobby", void 0);
496
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "localShareInstanceId", void 0);
497
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "remoteShareInstanceId", void 0);
498
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "turnDiscoverySkippedReason", void 0);
499
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "turnServerUsed", void 0);
500
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "retriedWithTurnServer", void 0);
501
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sendSlotManager", new _sendSlotManager.default(_loggerProxy.default));
502
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "deferSDPAnswer", void 0);
503
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sdpResponseTimer", void 0);
504
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hasMediaConnectionConnectedAtLeastOnce", void 0);
505
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "processRelayEvent", function (e) {
385
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "attrs", void 0);
386
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "audio", void 0);
387
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "breakouts", void 0);
388
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "simultaneousInterpretation", void 0);
389
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "annotation", void 0);
390
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "webinar", void 0);
391
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "conversationUrl", void 0);
392
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "callStateForMetrics", void 0);
393
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "destination", void 0);
394
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "destinationType", void 0);
395
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "deviceUrl", void 0);
396
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "hostId", void 0);
397
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "id", void 0);
398
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "isMultistream", void 0);
399
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "locusUrl", void 0);
400
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "mediaConnections", void 0);
401
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "mediaId", void 0);
402
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "meetingFiniteStateMachine", void 0);
403
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "meetingInfo", void 0);
404
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "meetingRequest", void 0);
405
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "members", void 0);
406
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "options", void 0);
407
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "orgId", void 0);
408
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "owner", void 0);
409
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "partner", void 0);
410
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "policy", void 0);
411
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "reconnectionManager", void 0);
412
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "resource", void 0);
413
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "roap", void 0);
414
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "roapSeq", void 0);
415
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "selfUrl", void 0);
416
+ // comes from Locus, initialized by updateMeetingObject()
417
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "sipUri", void 0);
418
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "type", void 0);
419
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "userId", void 0);
420
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "video", void 0);
421
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "callEvents", void 0);
422
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "datachannelUrl", void 0);
423
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "deferJoin", void 0);
424
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "dialInDeviceStatus", void 0);
425
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "dialInUrl", void 0);
426
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "dialOutDeviceStatus", void 0);
427
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "dialOutUrl", void 0);
428
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "fetchMeetingInfoTimeoutId", void 0);
429
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "floorGrantPending", void 0);
430
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "hasJoinedOnce", void 0);
431
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "hasWebsocketConnected", void 0);
432
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "inMeetingActions", void 0);
433
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "isLocalShareLive", void 0);
434
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "isRoapInProgress", void 0);
435
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "keepAliveTimerId", void 0);
436
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "lastVideoLayoutInfo", void 0);
437
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "locusInfo", void 0);
438
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "locusMediaRequest", void 0);
439
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "mediaProperties", void 0);
440
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "mediaRequestManagers", void 0);
441
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "meetingInfoFailureReason", void 0);
442
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "meetingInfoFailureCode", void 0);
443
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "meetingInfoExtraParams", void 0);
444
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "networkQualityMonitor", void 0);
445
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "networkStatus", void 0);
446
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "passwordStatus", void 0);
447
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "queuedMediaUpdates", void 0);
448
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "recording", void 0);
449
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "remoteMediaManager", void 0);
450
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "recordingController", void 0);
451
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "controlsOptionsManager", void 0);
452
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "requiredCaptcha", void 0);
453
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "receiveSlotManager", void 0);
454
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "selfUserPolicies", void 0);
455
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "enforceVBGImagesURL", void 0);
456
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "shareStatus", void 0);
457
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "screenShareFloorState", void 0);
458
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "statsAnalyzer", void 0);
459
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "transcription", void 0);
460
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "updateMediaConnections", void 0);
461
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "userDisplayHints", void 0);
462
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "endCallInitJoinReq", void 0);
463
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "endJoinReqResp", void 0);
464
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "endLocalSDPGenRemoteSDPRecvDelay", void 0);
465
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "joinedWith", void 0);
466
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "locusId", void 0);
467
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "startCallInitJoinReq", void 0);
468
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "startJoinReqResp", void 0);
469
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "startLocalSDPGenRemoteSDPRecvDelay", void 0);
470
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "wirelessShare", void 0);
471
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "guest", void 0);
472
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "meetingJoinUrl", void 0);
473
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "meetingNumber", void 0);
474
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "meetingState", void 0);
475
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "permissionToken", void 0);
476
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "permissionTokenPayload", void 0);
477
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "permissionTokenReceivedLocalTime", void 0);
478
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "resourceId", void 0);
479
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "resourceUrl", void 0);
480
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "selfId", void 0);
481
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "state", void 0);
482
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "localAudioStreamMuteStateHandler", void 0);
483
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "localVideoStreamMuteStateHandler", void 0);
484
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "localOutputTrackChangeHandler", void 0);
485
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "roles", void 0);
486
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "environment", void 0);
487
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "namespace", _constants.MEETINGS);
488
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "allowMediaInLobby", void 0);
489
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "localShareInstanceId", void 0);
490
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "remoteShareInstanceId", void 0);
491
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "turnDiscoverySkippedReason", void 0);
492
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "turnServerUsed", void 0);
493
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "areVoiceaEventsSetup", false);
494
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "voiceaListenerCallbacks", (0, _defineProperty3.default)((0, _defineProperty3.default)((0, _defineProperty3.default)((0, _defineProperty3.default)({}, _internalPluginVoicea.EVENT_TRIGGERS.VOICEA_ANNOUNCEMENT, function (payload) {
495
+ _this.transcription.languageOptions = payload;
496
+ _loggerProxy.default.logger.debug("".concat(_util.default.getScopeLog({
497
+ file: 'meeting/index',
498
+ function: 'setUpVoiceaListeners'
499
+ }), "event#").concat(_constants.EVENT_TRIGGERS.MEETING_STARTED_RECEIVING_TRANSCRIPTION));
500
+
501
+ // @ts-ignore
502
+ _this.trigger(_constants.EVENT_TRIGGERS.MEETING_STARTED_RECEIVING_TRANSCRIPTION, payload);
503
+ }), _internalPluginVoicea.EVENT_TRIGGERS.CAPTIONS_TURNED_ON, function () {
504
+ _this.transcription.status = _internalPluginVoicea.TURN_ON_CAPTION_STATUS.ENABLED;
505
+ }), _internalPluginVoicea.EVENT_TRIGGERS.EVA_COMMAND, function (payload) {
506
+ var _data$text;
507
+ var data = payload.data;
508
+ _this.transcription.isListening = !!data.isListening;
509
+ _this.transcription.commandText = (_data$text = data.text) !== null && _data$text !== void 0 ? _data$text : '';
510
+ }), _internalPluginVoicea.EVENT_TRIGGERS.NEW_CAPTION, function (data) {
511
+ (0, _voiceaMeeting.processNewCaptions)({
512
+ data: data,
513
+ meeting: (0, _assertThisInitialized2.default)(_this)
514
+ });
515
+ _loggerProxy.default.logger.debug("".concat(_util.default.getScopeLog({
516
+ file: 'meeting/index',
517
+ function: 'setUpVoiceaListeners'
518
+ }), "event#").concat(_constants.EVENT_TRIGGERS.MEETING_CAPTION_RECEIVED));
519
+
520
+ // @ts-ignore
521
+ _this.trigger(_constants.EVENT_TRIGGERS.MEETING_CAPTION_RECEIVED, {
522
+ captions: _this.transcription.captions,
523
+ interimCaptions: _this.transcription.interimCaptions
524
+ });
525
+ }));
526
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "retriedWithTurnServer", void 0);
527
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "sendSlotManager", new _sendSlotManager.default(_loggerProxy.default));
528
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "deferSDPAnswer", void 0);
529
+ // used for waiting for a response
530
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "sdpResponseTimer", void 0);
531
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "hasMediaConnectionConnectedAtLeastOnce", void 0);
532
+ /**
533
+ * Callback called when a relay event is received from meeting LLM Connection
534
+ * @param {RelayEvent} e Event object coming from LLM Connection
535
+ * @private
536
+ * @returns {void}
537
+ */
538
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "processRelayEvent", function (e) {
506
539
  switch (e.data.relayType) {
507
540
  case _constants3.REACTION_RELAY_TYPES.REACTION:
508
541
  if (
@@ -527,7 +560,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
527
560
  break;
528
561
  }
529
562
  });
530
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleRoapFailure", function (error) {
563
+ /**
564
+ * Handles ROAP_FAILURE event from the webrtc media connection
565
+ *
566
+ * @param {Error} error
567
+ * @returns {void}
568
+ */
569
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleRoapFailure", function (error) {
531
570
  // eslint-disable-next-line @typescript-eslint/no-shadow
532
571
  var sendBehavioralMetric = function sendBehavioralMetric(metricName, error, correlationId) {
533
572
  var _error$cause;
@@ -587,14 +626,25 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
587
626
  });
588
627
  }
589
628
  });
590
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "roapMessageReceived", function (roapMessage) {
591
- var mediaServer = _util2.default.getMediaServer(roapMessage.sdp);
629
+ /**
630
+ * Handles an incoming Roap message
631
+ * @internal
632
+ * @param {RoapMessage} roapMessage roap message
633
+ * @returns {undefined}
634
+ */
635
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "roapMessageReceived", function (roapMessage) {
636
+ var mediaServer = _util3.default.getMediaServer(roapMessage.sdp);
592
637
  _this.mediaProperties.webrtcMediaConnection.roapMessageReceived(roapMessage);
593
638
  if (mediaServer) {
594
639
  _this.mediaProperties.webrtcMediaConnection.mediaServer = mediaServer;
595
640
  }
596
641
  });
597
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setupSdpListeners", function () {
642
+ /**
643
+ * This function makes sure we send the right metrics when local and remote SDPs are processed/generated
644
+ *
645
+ * @returns {undefined}
646
+ */
647
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "setupSdpListeners", function () {
598
648
  _this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.Event.REMOTE_SDP_ANSWER_PROCESSED, function () {
599
649
  // @ts-ignore
600
650
  var cdl = _this.webex.internal.newMetrics.callDiagnosticLatencies;
@@ -640,7 +690,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
640
690
  });
641
691
  });
642
692
  });
643
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setupMediaConnectionListeners", function () {
693
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "setupMediaConnectionListeners", function () {
644
694
  _this.setupSdpListeners();
645
695
  _this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.Event.ROAP_STARTED, function () {
646
696
  _this.isRoapInProgress = true;
@@ -678,7 +728,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
678
728
  }), {
679
729
  logText: "".concat(LOG_HEADER, " Roap Offer")
680
730
  }).catch(function () {
681
- _this.deferSDPAnswer.reject();
731
+ _this.deferSDPAnswer.reject(new Error('failed to send ROAP SDP offer'));
682
732
  clearTimeout(_this.sdpResponseTimer);
683
733
  _this.sdpResponseTimer = undefined;
684
734
  });
@@ -733,7 +783,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
733
783
  _loggerProxy.default.logger.log("Meeting:index#setupMediaConnectionListeners --> REMOTE_TRACK_ADDED event received for webrtcMediaConnection: ".concat((0, _stringify.default)(event)));
734
784
  if (event.track) {
735
785
  var mediaTrack = event.track;
736
- var remoteStream = new _mediaHelpers.RemoteStream(_util5.default.createMediaStream([mediaTrack]));
786
+ var remoteStream = new _mediaHelpers.RemoteStream(_util6.default.createMediaStream([mediaTrack]));
737
787
 
738
788
  // eslint-disable-next-line @typescript-eslint/no-shadow
739
789
  var eventType;
@@ -882,7 +932,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
882
932
  });
883
933
  });
884
934
  });
885
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setupStatsAnalyzerEventHandlers", function () {
935
+ /**
936
+ * Registers for all required StatsAnalyzer events
937
+ * @private
938
+ * @returns {void}
939
+ * @memberof Meetings
940
+ */
941
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "setupStatsAnalyzerEventHandlers", function () {
886
942
  _this.statsAnalyzer.on(_statsAnalyzer.EVENTS.MEDIA_QUALITY, function (options) {
887
943
  var _this$webex$meetings$;
888
944
  // TODO: might have to send the same event to the developer
@@ -949,6 +1005,19 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
949
1005
  meetingId: _this.id
950
1006
  }
951
1007
  });
1008
+ if (data.type === 'share') {
1009
+ // @ts-ignore
1010
+ _this.webex.internal.newMetrics.submitClientEvent({
1011
+ name: 'client.media.render.start',
1012
+ payload: {
1013
+ mediaType: 'share',
1014
+ shareInstanceId: _this.remoteShareInstanceId
1015
+ },
1016
+ options: {
1017
+ meetingId: _this.id
1018
+ }
1019
+ });
1020
+ }
952
1021
  });
953
1022
  _this.statsAnalyzer.on(_statsAnalyzer.EVENTS.REMOTE_MEDIA_STOPPED, function (data) {
954
1023
  // @ts-ignore
@@ -962,9 +1031,28 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
962
1031
  meetingId: _this.id
963
1032
  }
964
1033
  });
1034
+ if (data.type === 'share') {
1035
+ // @ts-ignore
1036
+ _this.webex.internal.newMetrics.submitClientEvent({
1037
+ name: 'client.media.render.stop',
1038
+ payload: {
1039
+ mediaType: 'share',
1040
+ shareInstanceId: _this.remoteShareInstanceId
1041
+ },
1042
+ options: {
1043
+ meetingId: _this.id
1044
+ }
1045
+ });
1046
+ }
965
1047
  });
966
1048
  });
967
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "forceSendStatsReport", /*#__PURE__*/function () {
1049
+ /**
1050
+ * media failed, so collect a stats report from webrtc using the wcme connection to grab the rtc stats report
1051
+ * send a webrtc telemetry dump to the configured server using the internal media core check metrics configured callback
1052
+ * @param {String} callFrom - the function calling this function, optional.
1053
+ * @returns {Promise<void>}
1054
+ */
1055
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "forceSendStatsReport", /*#__PURE__*/function () {
968
1056
  var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref3) {
969
1057
  var callFrom, LOG_HEADER, _this$mediaProperties, _this$mediaProperties2;
970
1058
  return _regenerator.default.wrap(function _callee$(_context) {
@@ -993,7 +1081,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
993
1081
  return _ref4.apply(this, arguments);
994
1082
  };
995
1083
  }());
996
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mediaNegotiatedEvent", function () {
1084
+ /**
1085
+ * emits event when the negotation is completed
1086
+ * @returns {void}
1087
+ * @private
1088
+ * @memberof Meeting
1089
+ */
1090
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "mediaNegotiatedEvent", function () {
997
1091
  // @ts-ignore - config coming from registerPlugin
998
1092
  if (_this.config.experimental.enableMediaNegotiatedEvent) {
999
1093
  _loggerProxy.default.logger.info('Meeting:mediaNegotiatedEvent --> Media server negotiated');
@@ -1003,7 +1097,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1003
1097
  }, _constants.EVENT_TRIGGERS.MEDIA_NEGOTIATED);
1004
1098
  }
1005
1099
  });
1006
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "processNextQueuedMediaUpdate", function () {
1100
+ /**
1101
+ * Checks if there are any queued media updates and runs the first one from
1102
+ * the queue if we are in a state that allows doing that.
1103
+ * @returns {undefined}
1104
+ * @public
1105
+ * @memberof Meeting
1106
+ */
1107
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "processNextQueuedMediaUpdate", function () {
1007
1108
  if (_this.canUpdateMedia() && _this.queuedMediaUpdates.length > 0) {
1008
1109
  var _this$queuedMediaUpda = _this.queuedMediaUpdates.shift(),
1009
1110
  pendingPromiseResolve = _this$queuedMediaUpda.pendingPromiseResolve,
@@ -1031,7 +1132,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1031
1132
  });
1032
1133
  }
1033
1134
  });
1034
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleShareAudioStreamEnded", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
1135
+ /**
1136
+ * Functionality for when a share audio is ended.
1137
+ * @private
1138
+ * @memberof Meeting
1139
+ * @returns {undefined}
1140
+ */
1141
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleShareAudioStreamEnded", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
1035
1142
  return _regenerator.default.wrap(function _callee2$(_context2) {
1036
1143
  while (1) switch (_context2.prev = _context2.next) {
1037
1144
  case 0:
@@ -1061,14 +1168,27 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1061
1168
  }
1062
1169
  }, _callee2, null, [[4, 9]]);
1063
1170
  })));
1064
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleShareVideoStreamMuteStateChange", function (muted) {
1171
+ /**
1172
+ * Functionality for when a share video is muted or unmuted.
1173
+ * @private
1174
+ * @memberof Meeting
1175
+ * @param {boolean} muted
1176
+ * @returns {undefined}
1177
+ */
1178
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleShareVideoStreamMuteStateChange", function (muted) {
1065
1179
  _loggerProxy.default.logger.log("Meeting:index#handleShareVideoStreamMuteStateChange --> Share video stream mute state changed to muted ".concat(muted));
1066
1180
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE, {
1067
1181
  correlationId: _this.correlationId,
1068
1182
  muted: muted
1069
1183
  });
1070
1184
  });
1071
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleShareVideoStreamEnded", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
1185
+ /**
1186
+ * Functionality for when a share video is ended.
1187
+ * @private
1188
+ * @memberof Meeting
1189
+ * @returns {undefined}
1190
+ */
1191
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleShareVideoStreamEnded", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
1072
1192
  return _regenerator.default.wrap(function _callee3$(_context3) {
1073
1193
  while (1) switch (_context3.prev = _context3.next) {
1074
1194
  case 0:
@@ -1100,7 +1220,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1100
1220
  }
1101
1221
  }, _callee3, null, [[4, 9]]);
1102
1222
  })));
1103
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "triggerStoppedSharing", function () {
1223
+ /**
1224
+ * Emits meeting:stoppedSharingLocal
1225
+ * @private
1226
+ * @returns {undefined}
1227
+ * @memberof Meeting
1228
+ */
1229
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "triggerStoppedSharing", function () {
1104
1230
  if (!_this.mediaProperties.hasLocalShareStream()) {
1105
1231
  _triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
1106
1232
  file: 'meeting/index',
@@ -1110,7 +1236,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1110
1236
  });
1111
1237
  }
1112
1238
  });
1113
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "clearMeetingData", function () {
1239
+ /**
1240
+ * clear the meeting data
1241
+ * @returns {undefined}
1242
+ * @public
1243
+ * @memberof Meeting
1244
+ */
1245
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "clearMeetingData", function () {
1114
1246
  _this.audio = null;
1115
1247
  _this.video = null;
1116
1248
  _this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
@@ -1119,12 +1251,17 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1119
1251
  }
1120
1252
  _this.queuedMediaUpdates = [];
1121
1253
  if (_this.transcription) {
1122
- _this.transcription.closeSocket();
1123
- _this.triggerStopReceivingTranscriptionEvent();
1254
+ _this.stopTranscription();
1124
1255
  _this.transcription = undefined;
1125
1256
  }
1126
1257
  });
1127
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "startKeepAlive", function () {
1258
+ /**
1259
+ * starts keepAlives being sent
1260
+ * @returns {void}
1261
+ * @private
1262
+ * @memberof Meeting
1263
+ */
1264
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "startKeepAlive", function () {
1128
1265
  var _this$joinedWith, _this$joinedWith2;
1129
1266
  if (_this.keepAliveTimerId) {
1130
1267
  _loggerProxy.default.logger.warn('Meeting:index#startKeepAlive --> keepAlive not started: keepAliveTimerId already exists');
@@ -1154,7 +1291,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1154
1291
  });
1155
1292
  }, keepAliveInterval);
1156
1293
  });
1157
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "stopKeepAlive", function () {
1294
+ /**
1295
+ * stops keepAlives being sent
1296
+ * @returns {void}
1297
+ * @private
1298
+ * @memberof Meeting
1299
+ */
1300
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "stopKeepAlive", function () {
1158
1301
  if (!_this.keepAliveTimerId) {
1159
1302
  return;
1160
1303
  }
@@ -1537,7 +1680,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1537
1680
  * @memberof Meeting
1538
1681
  */
1539
1682
  _this.updateMediaConnections = function (mediaConnections) {
1540
- if (!(0, _isEqual2.default)(_this.mediaConnections, mediaConnections)) {
1683
+ if (!(0, _lodash.isEqual)(_this.mediaConnections, mediaConnections)) {
1541
1684
  // grab last/latest item in the new mediaConnections information
1542
1685
  _this.mediaConnections = mediaConnections.slice(-1);
1543
1686
  }
@@ -1713,7 +1856,17 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1713
1856
  * @private
1714
1857
  * @memberof Meeting
1715
1858
  */
1716
- _this.transcription = undefined;
1859
+ _this.transcription = {
1860
+ captions: [],
1861
+ isListening: false,
1862
+ commandText: '',
1863
+ languageOptions: {},
1864
+ showCaptionBox: false,
1865
+ transcribingRequestStatus: 'INACTIVE',
1866
+ isCaptioning: false,
1867
+ interimCaptions: {},
1868
+ speakerProxy: {}
1869
+ };
1717
1870
 
1718
1871
  /**
1719
1872
  * Password status. If it's PASSWORD_STATUS.REQUIRED then verifyPassword() needs to be called
@@ -1984,7 +2137,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1984
2137
  */
1985
2138
  }, {
1986
2139
  key: "injectMeetingInfo",
1987
- value: function () {
2140
+ value: (function () {
1988
2141
  var _injectMeetingInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(meetingInfo, fetchParams, meetingLookupUrl) {
1989
2142
  return _regenerator.default.wrap(function _callee4$(_context4) {
1990
2143
  while (1) switch (_context4.prev = _context4.next) {
@@ -2014,6 +2167,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2014
2167
  * @returns {Promise<void>}
2015
2168
  * @private
2016
2169
  */
2170
+ )
2017
2171
  }, {
2018
2172
  key: "prepForFetchMeetingInfo",
2019
2173
  value: function prepForFetchMeetingInfo(_ref7, caller) {
@@ -2034,7 +2188,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2034
2188
  if (password && this.passwordStatus !== _constants.PASSWORD_STATUS.REQUIRED && this.passwordStatus !== _constants.PASSWORD_STATUS.UNKNOWN) {
2035
2189
  return _promise.default.reject(new Error("".concat(caller, "() called with password when password was not required")));
2036
2190
  }
2037
- this.meetingInfoExtraParams = (0, _cloneDeep2.default)(extraParams);
2191
+ this.meetingInfoExtraParams = (0, _lodash.cloneDeep)(extraParams);
2038
2192
  return _promise.default.resolve();
2039
2193
  }
2040
2194
 
@@ -2045,7 +2199,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2045
2199
  */
2046
2200
  }, {
2047
2201
  key: "fetchMeetingInfoInternal",
2048
- value: function () {
2202
+ value: (function () {
2049
2203
  var _fetchMeetingInfoInternal = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(_ref8) {
2050
2204
  var destination, destinationType, _ref8$password, password, _ref8$captchaCode, captchaCode, _ref8$extraParams, extraParams, _ref8$sendCAevents, sendCAevents, captchaInfo, info, _err$body, _err$body2;
2051
2205
  return _regenerator.default.wrap(function _callee5$(_context5) {
@@ -2141,9 +2295,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2141
2295
  * @param {string} [reason] used for metrics and logging purposes (optional)
2142
2296
  * @returns {Promise}
2143
2297
  */
2298
+ )
2144
2299
  }, {
2145
2300
  key: "refreshPermissionToken",
2146
- value: function () {
2301
+ value: (function () {
2147
2302
  var _refreshPermissionToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(reason) {
2148
2303
  var _this$meetingInfo;
2149
2304
  var isStartingSpaceInstantV2Meeting, destination, destinationType, permissionTokenExpiryInfo, timeLeft, expiryTime, currentTime;
@@ -2221,9 +2376,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2221
2376
  * @memberof Meeting
2222
2377
  * @returns {Promise}
2223
2378
  */
2379
+ )
2224
2380
  }, {
2225
2381
  key: "fetchMeetingInfo",
2226
- value: function () {
2382
+ value: (function () {
2227
2383
  var _fetchMeetingInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(options) {
2228
2384
  return _regenerator.default.wrap(function _callee7$(_context7) {
2229
2385
  while (1) switch (_context7.prev = _context7.next) {
@@ -2256,6 +2412,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2256
2412
  * @memberof Meeting
2257
2413
  * @returns {Promise<{isPasswordValid: boolean, requiredCaptcha: boolean, failureReason: MEETING_INFO_FAILURE_REASON}>}
2258
2414
  */
2415
+ )
2259
2416
  }, {
2260
2417
  key: "verifyPassword",
2261
2418
  value: function verifyPassword(password, captchaCode) {
@@ -2432,12 +2589,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2432
2589
  key: "setUpInterpretationListener",
2433
2590
  value: function setUpInterpretationListener() {
2434
2591
  var _this5 = this;
2592
+ // TODO: check if its getting used or not
2435
2593
  this.simultaneousInterpretation.on(_constants.INTERPRETATION.EVENTS.SUPPORT_LANGUAGES_UPDATE, function () {
2436
2594
  _triggerProxy.default.trigger(_this5, {
2437
2595
  file: 'meeting/index',
2438
2596
  function: 'setUpInterpretationListener'
2439
2597
  }, _constants.EVENT_TRIGGERS.MEETING_INTERPRETATION_SUPPORT_LANGUAGES_UPDATE);
2440
2598
  });
2599
+ // TODO: check if its getting used or not
2441
2600
  this.simultaneousInterpretation.on(_constants.INTERPRETATION.EVENTS.HANDOFF_REQUESTS_ARRIVED, function (payload) {
2442
2601
  _triggerProxy.default.trigger(_this5, {
2443
2602
  file: 'meeting/index',
@@ -2446,6 +2605,32 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2446
2605
  });
2447
2606
  }
2448
2607
 
2608
+ /**
2609
+ * Set up the listeners for captions
2610
+ * @returns {undefined}
2611
+ * @private
2612
+ * @memberof Meeting
2613
+ */
2614
+ }, {
2615
+ key: "setUpVoiceaListeners",
2616
+ value: function setUpVoiceaListeners() {
2617
+ // @ts-ignore
2618
+ this.webex.internal.voicea.listenToEvents();
2619
+
2620
+ // @ts-ignore
2621
+ this.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.VOICEA_ANNOUNCEMENT, this.voiceaListenerCallbacks[_internalPluginVoicea.EVENT_TRIGGERS.VOICEA_ANNOUNCEMENT]);
2622
+
2623
+ // @ts-ignore
2624
+ this.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTIONS_TURNED_ON, this.voiceaListenerCallbacks[_internalPluginVoicea.EVENT_TRIGGERS.CAPTIONS_TURNED_ON]);
2625
+
2626
+ // @ts-ignore
2627
+ this.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.EVA_COMMAND, this.voiceaListenerCallbacks[_internalPluginVoicea.EVENT_TRIGGERS.EVA_COMMAND]);
2628
+
2629
+ // @ts-ignore
2630
+ this.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.NEW_CAPTION, this.voiceaListenerCallbacks[_internalPluginVoicea.EVENT_TRIGGERS.NEW_CAPTION]);
2631
+ this.areVoiceaEventsSetup = true;
2632
+ }
2633
+
2449
2634
  /**
2450
2635
  * Set up the locus info listener for meetings disconnected due to inactivity
2451
2636
  * @returns {undefined}
@@ -2734,17 +2919,20 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2734
2919
  this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_TRANSCRIBE_UPDATED, function (_ref11) {
2735
2920
  var caption = _ref11.caption,
2736
2921
  transcribing = _ref11.transcribing;
2737
- // @ts-ignore - config coming from registerPlugin
2738
- if (transcribing && _this13.transcription && _this13.config.receiveTranscription) {
2739
- _this13.receiveTranscription();
2740
- } else if (!transcribing && _this13.transcription) {
2741
- _triggerProxy.default.trigger(_this13, {
2742
- file: 'meeting/index',
2743
- function: 'setupLocusControlsListener'
2744
- }, _constants.EVENT_TRIGGERS.MEETING_STOPPED_RECEIVING_TRANSCRIPTION, {
2745
- caption: caption,
2746
- transcribing: transcribing
2747
- });
2922
+ // user need to be joined to start the llm and receive transcription
2923
+ if (_this13.isJoined()) {
2924
+ // @ts-ignore - config coming from registerPlugin
2925
+ if (transcribing && !_this13.transcription) {
2926
+ _this13.startTranscription();
2927
+ } else if (!transcribing && _this13.transcription) {
2928
+ _triggerProxy.default.trigger(_this13, {
2929
+ file: 'meeting/index',
2930
+ function: 'setupLocusControlsListener'
2931
+ }, _constants.EVENT_TRIGGERS.MEETING_STOPPED_RECEIVING_TRANSCRIPTION, {
2932
+ caption: caption,
2933
+ transcribing: transcribing
2934
+ });
2935
+ }
2748
2936
  }
2749
2937
  });
2750
2938
  this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_BREAKOUT_UPDATED, function (_ref12) {
@@ -2846,7 +3034,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2846
3034
  }, {
2847
3035
  key: "triggerAnnotationInfoEvent",
2848
3036
  value: function triggerAnnotationInfoEvent(contentShare, previousContentShare) {
2849
- if (contentShare !== null && contentShare !== void 0 && contentShare.annotation && !(0, _isEqual2.default)(contentShare === null || contentShare === void 0 ? void 0 : contentShare.annotation, previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.annotation)) {
3037
+ if (contentShare !== null && contentShare !== void 0 && contentShare.annotation && !(0, _lodash.isEqual)(contentShare === null || contentShare === void 0 ? void 0 : contentShare.annotation, previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.annotation)) {
2850
3038
  _triggerProxy.default.trigger(
2851
3039
  // @ts-ignore
2852
3040
  this.webex.meetings, {
@@ -2854,7 +3042,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2854
3042
  function: 'triggerAnnotationInfoEvent'
2855
3043
  }, _constants.EVENT_TRIGGERS.MEETING_UPDATE_ANNOTATION_INFO, {
2856
3044
  annotationInfo: contentShare === null || contentShare === void 0 ? void 0 : contentShare.annotation,
2857
- meetingId: this.id
3045
+ meetingId: this.id,
3046
+ resourceType: contentShare === null || contentShare === void 0 ? void 0 : contentShare.resourceType
2858
3047
  });
2859
3048
  }
2860
3049
  }
@@ -2883,7 +3072,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2883
3072
  previousContentShare = (_payload$previous = payload.previous) === null || _payload$previous === void 0 ? void 0 : _payload$previous.content;
2884
3073
  previousWhiteboardShare = (_payload$previous2 = payload.previous) === null || _payload$previous2 === void 0 ? void 0 : _payload$previous2.whiteboard;
2885
3074
  _this14.triggerAnnotationInfoEvent(contentShare, previousContentShare);
2886
- if (!(contentShare.beneficiaryId === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.beneficiaryId) && contentShare.disposition === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.disposition) && contentShare.deviceUrlSharing === previousContentShare.deviceUrlSharing && whiteboardShare.beneficiaryId === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.beneficiaryId) && whiteboardShare.disposition === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.disposition) && whiteboardShare.resourceUrl === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.resourceUrl))) {
3075
+ if (!(contentShare.beneficiaryId === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.beneficiaryId) && contentShare.disposition === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.disposition) && contentShare.deviceUrlSharing === previousContentShare.deviceUrlSharing && whiteboardShare.beneficiaryId === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.beneficiaryId) && whiteboardShare.disposition === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.disposition) && whiteboardShare.resourceUrl === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.resourceUrl) && contentShare.resourceType === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.resourceType))) {
2887
3076
  _context8.next = 6;
2888
3077
  break;
2889
3078
  }
@@ -2964,7 +3153,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2964
3153
  memberId: contentShare.beneficiaryId,
2965
3154
  url: contentShare.url,
2966
3155
  shareInstanceId: _this14.remoteShareInstanceId,
2967
- annotationInfo: contentShare.annotation
3156
+ annotationInfo: contentShare.annotation,
3157
+ resourceType: contentShare.resourceType
2968
3158
  });
2969
3159
  };
2970
3160
  _context8.prev = 26;
@@ -3036,7 +3226,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3036
3226
  memberId: contentShare.beneficiaryId,
3037
3227
  url: contentShare.url,
3038
3228
  shareInstanceId: _this14.remoteShareInstanceId,
3039
- annotationInfo: contentShare.annotation
3229
+ annotationInfo: contentShare.annotation,
3230
+ resourceType: contentShare.resourceType
3040
3231
  });
3041
3232
  _this14.members.locusMediaSharesUpdate(payload);
3042
3233
  } else if (newShareStatus === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE) {
@@ -3293,25 +3484,39 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3293
3484
  });
3294
3485
  }
3295
3486
  });
3296
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ADMITTED_GUEST, function (payload) {
3297
- _this19.stopKeepAlive();
3298
- if (payload) {
3299
- _triggerProxy.default.trigger(_this19, {
3300
- file: 'meeting/index',
3301
- function: 'setUpLocusInfoSelfListener'
3302
- }, _constants.EVENT_TRIGGERS.MEETING_SELF_GUEST_ADMITTED, {
3303
- payload: payload
3304
- });
3487
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ADMITTED_GUEST, /*#__PURE__*/function () {
3488
+ var _ref24 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(payload) {
3489
+ return _regenerator.default.wrap(function _callee9$(_context9) {
3490
+ while (1) switch (_context9.prev = _context9.next) {
3491
+ case 0:
3492
+ _this19.stopKeepAlive();
3493
+ if (payload) {
3494
+ _triggerProxy.default.trigger(_this19, {
3495
+ file: 'meeting/index',
3496
+ function: 'setUpLocusInfoSelfListener'
3497
+ }, _constants.EVENT_TRIGGERS.MEETING_SELF_GUEST_ADMITTED, {
3498
+ payload: payload
3499
+ });
3305
3500
 
3306
- // @ts-ignore
3307
- _this19.webex.internal.newMetrics.submitClientEvent({
3308
- name: 'client.lobby.exited',
3309
- options: {
3310
- meetingId: _this19.id
3501
+ // @ts-ignore
3502
+ _this19.webex.internal.newMetrics.submitClientEvent({
3503
+ name: 'client.lobby.exited',
3504
+ options: {
3505
+ meetingId: _this19.id
3506
+ }
3507
+ });
3508
+ }
3509
+ _this19.updateLLMConnection();
3510
+ case 3:
3511
+ case "end":
3512
+ return _context9.stop();
3311
3513
  }
3312
- });
3313
- }
3314
- });
3514
+ }, _callee9);
3515
+ }));
3516
+ return function (_x9) {
3517
+ return _ref24.apply(this, arguments);
3518
+ };
3519
+ }());
3315
3520
 
3316
3521
  // @ts-ignore - check if MEDIA_INACTIVITY exists
3317
3522
  this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEDIA_INACTIVITY, function () {
@@ -3414,52 +3619,52 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3414
3619
  }
3415
3620
  });
3416
3621
  this.locusInfo.on(_constants.EVENTS.DESTROY_MEETING, /*#__PURE__*/function () {
3417
- var _ref24 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(payload) {
3418
- return _regenerator.default.wrap(function _callee9$(_context9) {
3419
- while (1) switch (_context9.prev = _context9.next) {
3622
+ var _ref25 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(payload) {
3623
+ return _regenerator.default.wrap(function _callee10$(_context10) {
3624
+ while (1) switch (_context10.prev = _context10.next) {
3420
3625
  case 0:
3421
3626
  if (!_this20.wirelessShare) {
3422
- _context9.next = 7;
3627
+ _context10.next = 7;
3423
3628
  break;
3424
3629
  }
3425
3630
  if (!_this20.mediaProperties.shareVideoStream) {
3426
- _context9.next = 4;
3631
+ _context10.next = 4;
3427
3632
  break;
3428
3633
  }
3429
- _context9.next = 4;
3634
+ _context10.next = 4;
3430
3635
  return _this20.setLocalShareVideoStream(undefined);
3431
3636
  case 4:
3432
3637
  if (!_this20.mediaProperties.shareAudioStream) {
3433
- _context9.next = 7;
3638
+ _context10.next = 7;
3434
3639
  break;
3435
3640
  }
3436
- _context9.next = 7;
3641
+ _context10.next = 7;
3437
3642
  return _this20.setLocalShareAudioStream(undefined);
3438
3643
  case 7:
3439
3644
  if (!payload.shouldLeave) {
3440
- _context9.next = 19;
3645
+ _context10.next = 19;
3441
3646
  break;
3442
3647
  }
3443
- _context9.prev = 8;
3444
- _context9.next = 11;
3648
+ _context10.prev = 8;
3649
+ _context10.next = 11;
3445
3650
  return _this20.leave({
3446
3651
  reason: payload.reason
3447
3652
  });
3448
3653
  case 11:
3449
3654
  _loggerProxy.default.logger.warn('Meeting:index#setUpLocusInfoMeetingListener --> DESTROY_MEETING. The meeting has been left, but has not been destroyed, you should see a later event for leave.');
3450
- _context9.next = 17;
3655
+ _context10.next = 17;
3451
3656
  break;
3452
3657
  case 14:
3453
- _context9.prev = 14;
3454
- _context9.t0 = _context9["catch"](8);
3658
+ _context10.prev = 14;
3659
+ _context10.t0 = _context10["catch"](8);
3455
3660
  // @ts-ignore
3456
- _loggerProxy.default.logger.error("Meeting:index#setUpLocusInfoMeetingListener --> DESTROY_MEETING. Issue with leave for meeting, meeting still in collection: ".concat(_this20, ", error: ").concat(_context9.t0));
3661
+ _loggerProxy.default.logger.error("Meeting:index#setUpLocusInfoMeetingListener --> DESTROY_MEETING. Issue with leave for meeting, meeting still in collection: ".concat(_this20, ", error: ").concat(_context10.t0));
3457
3662
  case 17:
3458
- _context9.next = 22;
3663
+ _context10.next = 22;
3459
3664
  break;
3460
3665
  case 19:
3461
3666
  _loggerProxy.default.logger.info('Meeting:index#setUpLocusInfoMeetingListener --> MEETING_REMOVED_REASON', payload.reason);
3462
- _util.default.cleanUp(_this20);
3667
+ _util2.default.cleanUp(_this20);
3463
3668
  _triggerProxy.default.trigger(_this20, {
3464
3669
  file: 'meeting/index',
3465
3670
  function: 'setUpLocusInfoMeetingListener'
@@ -3469,12 +3674,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3469
3674
  });
3470
3675
  case 22:
3471
3676
  case "end":
3472
- return _context9.stop();
3677
+ return _context10.stop();
3473
3678
  }
3474
- }, _callee9, null, [[8, 14]]);
3679
+ }, _callee10, null, [[8, 14]]);
3475
3680
  }));
3476
- return function (_x9) {
3477
- return _ref24.apply(this, arguments);
3681
+ return function (_x10) {
3682
+ return _ref25.apply(this, arguments);
3478
3683
  };
3479
3684
  }());
3480
3685
  }
@@ -3669,12 +3874,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3669
3874
  }
3670
3875
  this.owner = ((_locusMeetingObject6 = locusMeetingObject) === null || _locusMeetingObject6 === void 0 ? void 0 : _locusMeetingObject6.info.owner) || (meetingInfo === null || meetingInfo === void 0 ? void 0 : meetingInfo.owner) || (meetingInfo === null || meetingInfo === void 0 ? void 0 : meetingInfo.hostId) || this.owner;
3671
3876
  this.permissionToken = meetingInfo === null || meetingInfo === void 0 ? void 0 : meetingInfo.permissionToken;
3672
- this.setPermissionTokenPayload(meetingInfo === null || meetingInfo === void 0 ? void 0 : meetingInfo.permissionToken);
3673
- this.setSelfUserPolicies();
3877
+ if (this.permissionToken) {
3878
+ this.setPermissionTokenPayload(meetingInfo === null || meetingInfo === void 0 ? void 0 : meetingInfo.permissionToken);
3879
+ this.setSelfUserPolicies();
3880
+ }
3674
3881
  // Need to populate environment when sending CA event
3675
3882
  this.environment = ((_locusMeetingObject7 = locusMeetingObject) === null || _locusMeetingObject7 === void 0 ? void 0 : _locusMeetingObject7.info.channel) || (meetingInfo === null || meetingInfo === void 0 ? void 0 : meetingInfo.channel);
3676
3883
  }
3677
- _util.default.parseInterpretationInfo(this, meetingInfo);
3884
+ _util2.default.parseInterpretationInfo(this, meetingInfo);
3678
3885
  }
3679
3886
 
3680
3887
  /**
@@ -3691,7 +3898,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3691
3898
 
3692
3899
  // 1-2-1 calls and SIP dialling will have no meeting info
3693
3900
  // so cannot support policy information
3694
- if ((0, _isEmpty2.default)(this.meetingInfo)) {
3901
+ if ((0, _lodash.isEmpty)(this.meetingInfo)) {
3695
3902
  return false;
3696
3903
  }
3697
3904
  return true;
@@ -3709,175 +3916,175 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3709
3916
  var _this$meetingInfo2, _this$meetingInfo3, _this$meetingInfo4, _this$meetingInfo4$vi, _this$meetingInfo5, _this$meetingInfo5$vi;
3710
3917
  var changed = false;
3711
3918
  changed = this.inMeetingActions.set({
3712
- canUseVoip: ((_this$meetingInfo2 = this.meetingInfo) === null || _this$meetingInfo2 === void 0 ? void 0 : _this$meetingInfo2.supportVoIP) === true && _util4.default.hasPolicies({
3919
+ canUseVoip: ((_this$meetingInfo2 = this.meetingInfo) === null || _this$meetingInfo2 === void 0 ? void 0 : _this$meetingInfo2.supportVoIP) === true && _util5.default.hasPolicies({
3713
3920
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_VOIP],
3714
3921
  policies: this.selfUserPolicies
3715
3922
  }) || !this.arePolicyRestrictionsSupported(),
3716
- canDoVideo: _util4.default.hasPolicies({
3923
+ canDoVideo: _util5.default.hasPolicies({
3717
3924
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_VIDEO],
3718
3925
  policies: this.selfUserPolicies
3719
3926
  }) && !!((_this$meetingInfo3 = this.meetingInfo) !== null && _this$meetingInfo3 !== void 0 && _this$meetingInfo3.video) || !this.arePolicyRestrictionsSupported(),
3720
- supportHDV: _util4.default.hasPolicies({
3927
+ supportHDV: _util5.default.hasPolicies({
3721
3928
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_HDV],
3722
3929
  policies: this.selfUserPolicies
3723
3930
  }) && ((_this$meetingInfo4 = this.meetingInfo) === null || _this$meetingInfo4 === void 0 ? void 0 : (_this$meetingInfo4$vi = _this$meetingInfo4.video) === null || _this$meetingInfo4$vi === void 0 ? void 0 : _this$meetingInfo4$vi.supportHDV) || !this.arePolicyRestrictionsSupported(),
3724
- enforceVirtualBackground: _util4.default.hasPolicies({
3931
+ enforceVirtualBackground: _util5.default.hasPolicies({
3725
3932
  requiredPolicies: [_constants.SELF_POLICY.ENFORCE_VIRTUAL_BACKGROUND],
3726
3933
  policies: this.selfUserPolicies
3727
3934
  }) && this.arePolicyRestrictionsSupported(),
3728
- supportHQV: _util4.default.hasPolicies({
3935
+ supportHQV: _util5.default.hasPolicies({
3729
3936
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_HQV],
3730
3937
  policies: this.selfUserPolicies
3731
3938
  }) && ((_this$meetingInfo5 = this.meetingInfo) === null || _this$meetingInfo5 === void 0 ? void 0 : (_this$meetingInfo5$vi = _this$meetingInfo5.video) === null || _this$meetingInfo5$vi === void 0 ? void 0 : _this$meetingInfo5$vi.supportHQV) || !this.arePolicyRestrictionsSupported()
3732
3939
  });
3733
3940
  if (this.userDisplayHints !== undefined) {
3734
3941
  changed = this.inMeetingActions.set({
3735
- canInviteNewParticipants: _util.default.canInviteNewParticipants(this.userDisplayHints),
3736
- canAdmitParticipant: _util.default.canAdmitParticipant(this.userDisplayHints),
3737
- canLock: _util.default.canUserLock(this.userDisplayHints),
3738
- canUnlock: _util.default.canUserUnlock(this.userDisplayHints),
3739
- canShareWhiteBoard: _util.default.canShareWhiteBoard(this.userDisplayHints),
3740
- canSetDisallowUnmute: _util4.default.canSetDisallowUnmute(this.userDisplayHints),
3741
- canUnsetDisallowUnmute: _util4.default.canUnsetDisallowUnmute(this.userDisplayHints),
3742
- canSetMuteOnEntry: _util4.default.canSetMuteOnEntry(this.userDisplayHints),
3743
- canUnsetMuteOnEntry: _util4.default.canUnsetMuteOnEntry(this.userDisplayHints),
3744
- canSetMuted: _util4.default.canSetMuted(this.userDisplayHints),
3745
- canUnsetMuted: _util4.default.canUnsetMuted(this.userDisplayHints),
3746
- canStartRecording: _util3.default.canUserStart(this.userDisplayHints, this.selfUserPolicies),
3747
- canStopRecording: _util3.default.canUserStop(this.userDisplayHints, this.selfUserPolicies),
3748
- canPauseRecording: _util3.default.canUserPause(this.userDisplayHints, this.selfUserPolicies),
3749
- canResumeRecording: _util3.default.canUserResume(this.userDisplayHints, this.selfUserPolicies),
3750
- canRaiseHand: _util.default.canUserRaiseHand(this.userDisplayHints),
3751
- canLowerAllHands: _util.default.canUserLowerAllHands(this.userDisplayHints),
3752
- canLowerSomeoneElsesHand: _util.default.canUserLowerSomeoneElsesHand(this.userDisplayHints),
3753
- bothLeaveAndEndMeetingAvailable: _util.default.bothLeaveAndEndMeetingAvailable(this.userDisplayHints),
3754
- canEnableClosedCaption: _util.default.canEnableClosedCaption(this.userDisplayHints),
3755
- canStartTranscribing: _util.default.canStartTranscribing(this.userDisplayHints),
3756
- canStopTranscribing: _util.default.canStopTranscribing(this.userDisplayHints),
3757
- isClosedCaptionActive: _util.default.isClosedCaptionActive(this.userDisplayHints),
3758
- isSaveTranscriptsEnabled: _util.default.isSaveTranscriptsEnabled(this.userDisplayHints),
3759
- isWebexAssistantActive: _util.default.isWebexAssistantActive(this.userDisplayHints),
3760
- canViewCaptionPanel: _util.default.canViewCaptionPanel(this.userDisplayHints),
3761
- isRealTimeTranslationEnabled: _util.default.isRealTimeTranslationEnabled(this.userDisplayHints),
3762
- canSelectSpokenLanguages: _util.default.canSelectSpokenLanguages(this.userDisplayHints),
3763
- waitingForOthersToJoin: _util.default.waitingForOthersToJoin(this.userDisplayHints),
3764
- canSendReactions: _util.default.canSendReactions(this.inMeetingActions.canSendReactions, this.userDisplayHints),
3765
- canManageBreakout: _util.default.canManageBreakout(this.userDisplayHints),
3766
- canBroadcastMessageToBreakout: _util.default.canBroadcastMessageToBreakout(this.userDisplayHints, this.selfUserPolicies),
3767
- canAdmitLobbyToBreakout: _util.default.canAdmitLobbyToBreakout(this.userDisplayHints),
3768
- isBreakoutPreassignmentsEnabled: _util.default.isBreakoutPreassignmentsEnabled(this.userDisplayHints),
3769
- canUserAskForHelp: _util.default.canUserAskForHelp(this.userDisplayHints),
3770
- canUserRenameSelfAndObserved: _util.default.canUserRenameSelfAndObserved(this.userDisplayHints),
3771
- canUserRenameOthers: _util.default.canUserRenameOthers(this.userDisplayHints),
3772
- canMuteAll: _util4.default.hasHints({
3942
+ canInviteNewParticipants: _util2.default.canInviteNewParticipants(this.userDisplayHints),
3943
+ canAdmitParticipant: _util2.default.canAdmitParticipant(this.userDisplayHints),
3944
+ canLock: _util2.default.canUserLock(this.userDisplayHints),
3945
+ canUnlock: _util2.default.canUserUnlock(this.userDisplayHints),
3946
+ canShareWhiteBoard: _util2.default.canShareWhiteBoard(this.userDisplayHints),
3947
+ canSetDisallowUnmute: _util5.default.canSetDisallowUnmute(this.userDisplayHints),
3948
+ canUnsetDisallowUnmute: _util5.default.canUnsetDisallowUnmute(this.userDisplayHints),
3949
+ canSetMuteOnEntry: _util5.default.canSetMuteOnEntry(this.userDisplayHints),
3950
+ canUnsetMuteOnEntry: _util5.default.canUnsetMuteOnEntry(this.userDisplayHints),
3951
+ canSetMuted: _util5.default.canSetMuted(this.userDisplayHints),
3952
+ canUnsetMuted: _util5.default.canUnsetMuted(this.userDisplayHints),
3953
+ canStartRecording: _util4.default.canUserStart(this.userDisplayHints, this.selfUserPolicies),
3954
+ canStopRecording: _util4.default.canUserStop(this.userDisplayHints, this.selfUserPolicies),
3955
+ canPauseRecording: _util4.default.canUserPause(this.userDisplayHints, this.selfUserPolicies),
3956
+ canResumeRecording: _util4.default.canUserResume(this.userDisplayHints, this.selfUserPolicies),
3957
+ canRaiseHand: _util2.default.canUserRaiseHand(this.userDisplayHints),
3958
+ canLowerAllHands: _util2.default.canUserLowerAllHands(this.userDisplayHints),
3959
+ canLowerSomeoneElsesHand: _util2.default.canUserLowerSomeoneElsesHand(this.userDisplayHints),
3960
+ bothLeaveAndEndMeetingAvailable: _util2.default.bothLeaveAndEndMeetingAvailable(this.userDisplayHints),
3961
+ canEnableClosedCaption: _util2.default.canEnableClosedCaption(this.userDisplayHints),
3962
+ canStartTranscribing: _util2.default.canStartTranscribing(this.userDisplayHints),
3963
+ canStopTranscribing: _util2.default.canStopTranscribing(this.userDisplayHints),
3964
+ isClosedCaptionActive: _util2.default.isClosedCaptionActive(this.userDisplayHints),
3965
+ isSaveTranscriptsEnabled: _util2.default.isSaveTranscriptsEnabled(this.userDisplayHints),
3966
+ isWebexAssistantActive: _util2.default.isWebexAssistantActive(this.userDisplayHints),
3967
+ canViewCaptionPanel: _util2.default.canViewCaptionPanel(this.userDisplayHints),
3968
+ isRealTimeTranslationEnabled: _util2.default.isRealTimeTranslationEnabled(this.userDisplayHints),
3969
+ canSelectSpokenLanguages: _util2.default.canSelectSpokenLanguages(this.userDisplayHints),
3970
+ waitingForOthersToJoin: _util2.default.waitingForOthersToJoin(this.userDisplayHints),
3971
+ canSendReactions: _util2.default.canSendReactions(this.inMeetingActions.canSendReactions, this.userDisplayHints),
3972
+ canManageBreakout: _util2.default.canManageBreakout(this.userDisplayHints),
3973
+ canBroadcastMessageToBreakout: _util2.default.canBroadcastMessageToBreakout(this.userDisplayHints, this.selfUserPolicies),
3974
+ canAdmitLobbyToBreakout: _util2.default.canAdmitLobbyToBreakout(this.userDisplayHints),
3975
+ isBreakoutPreassignmentsEnabled: _util2.default.isBreakoutPreassignmentsEnabled(this.userDisplayHints),
3976
+ canUserAskForHelp: _util2.default.canUserAskForHelp(this.userDisplayHints),
3977
+ canUserRenameSelfAndObserved: _util2.default.canUserRenameSelfAndObserved(this.userDisplayHints),
3978
+ canUserRenameOthers: _util2.default.canUserRenameOthers(this.userDisplayHints),
3979
+ canMuteAll: _util5.default.hasHints({
3773
3980
  requiredHints: [_constants.DISPLAY_HINTS.MUTE_ALL],
3774
3981
  displayHints: this.userDisplayHints
3775
3982
  }),
3776
- canUnmuteAll: _util4.default.hasHints({
3983
+ canUnmuteAll: _util5.default.hasHints({
3777
3984
  requiredHints: [_constants.DISPLAY_HINTS.UNMUTE_ALL],
3778
3985
  displayHints: this.userDisplayHints
3779
3986
  }),
3780
- canEnableHardMute: _util4.default.hasHints({
3987
+ canEnableHardMute: _util5.default.hasHints({
3781
3988
  requiredHints: [_constants.DISPLAY_HINTS.ENABLE_HARD_MUTE],
3782
3989
  displayHints: this.userDisplayHints
3783
3990
  }),
3784
- canDisableHardMute: _util4.default.hasHints({
3991
+ canDisableHardMute: _util5.default.hasHints({
3785
3992
  requiredHints: [_constants.DISPLAY_HINTS.DISABLE_HARD_MUTE],
3786
3993
  displayHints: this.userDisplayHints
3787
3994
  }),
3788
- canEnableMuteOnEntry: _util4.default.hasHints({
3995
+ canEnableMuteOnEntry: _util5.default.hasHints({
3789
3996
  requiredHints: [_constants.DISPLAY_HINTS.ENABLE_MUTE_ON_ENTRY],
3790
3997
  displayHints: this.userDisplayHints
3791
3998
  }),
3792
- canDisableMuteOnEntry: _util4.default.hasHints({
3999
+ canDisableMuteOnEntry: _util5.default.hasHints({
3793
4000
  requiredHints: [_constants.DISPLAY_HINTS.DISABLE_MUTE_ON_ENTRY],
3794
4001
  displayHints: this.userDisplayHints
3795
4002
  }),
3796
- canEnableReactions: _util4.default.hasHints({
4003
+ canEnableReactions: _util5.default.hasHints({
3797
4004
  requiredHints: [_constants.DISPLAY_HINTS.ENABLE_REACTIONS],
3798
4005
  displayHints: this.userDisplayHints
3799
4006
  }),
3800
- canDisableReactions: _util4.default.hasHints({
4007
+ canDisableReactions: _util5.default.hasHints({
3801
4008
  requiredHints: [_constants.DISPLAY_HINTS.DISABLE_REACTIONS],
3802
4009
  displayHints: this.userDisplayHints
3803
4010
  }),
3804
- canEnableReactionDisplayNames: _util4.default.hasHints({
4011
+ canEnableReactionDisplayNames: _util5.default.hasHints({
3805
4012
  requiredHints: [_constants.DISPLAY_HINTS.ENABLE_SHOW_DISPLAY_NAME],
3806
4013
  displayHints: this.userDisplayHints
3807
4014
  }),
3808
- canDisableReactionDisplayNames: _util4.default.hasHints({
4015
+ canDisableReactionDisplayNames: _util5.default.hasHints({
3809
4016
  requiredHints: [_constants.DISPLAY_HINTS.DISABLE_SHOW_DISPLAY_NAME],
3810
4017
  displayHints: this.userDisplayHints
3811
4018
  }),
3812
- canUpdateShareControl: _util4.default.hasHints({
4019
+ canUpdateShareControl: _util5.default.hasHints({
3813
4020
  requiredHints: [_constants.DISPLAY_HINTS.SHARE_CONTROL],
3814
4021
  displayHints: this.userDisplayHints
3815
4022
  }),
3816
- canEnableViewTheParticipantsList: _util4.default.hasHints({
4023
+ canEnableViewTheParticipantsList: _util5.default.hasHints({
3817
4024
  requiredHints: [_constants.DISPLAY_HINTS.ENABLE_VIEW_THE_PARTICIPANT_LIST],
3818
4025
  displayHints: this.userDisplayHints
3819
4026
  }),
3820
- canDisableViewTheParticipantsList: _util4.default.hasHints({
4027
+ canDisableViewTheParticipantsList: _util5.default.hasHints({
3821
4028
  requiredHints: [_constants.DISPLAY_HINTS.DISABLE_VIEW_THE_PARTICIPANT_LIST],
3822
4029
  displayHints: this.userDisplayHints
3823
4030
  }),
3824
- canEnableRaiseHand: _util4.default.hasHints({
4031
+ canEnableRaiseHand: _util5.default.hasHints({
3825
4032
  requiredHints: [_constants.DISPLAY_HINTS.ENABLE_RAISE_HAND],
3826
4033
  displayHints: this.userDisplayHints
3827
4034
  }),
3828
- canDisableRaiseHand: _util4.default.hasHints({
4035
+ canDisableRaiseHand: _util5.default.hasHints({
3829
4036
  requiredHints: [_constants.DISPLAY_HINTS.DISABLE_RAISE_HAND],
3830
4037
  displayHints: this.userDisplayHints
3831
4038
  }),
3832
- canEnableVideo: _util4.default.hasHints({
4039
+ canEnableVideo: _util5.default.hasHints({
3833
4040
  requiredHints: [_constants.DISPLAY_HINTS.ENABLE_VIDEO],
3834
4041
  displayHints: this.userDisplayHints
3835
4042
  }),
3836
- canDisableVideo: _util4.default.hasHints({
4043
+ canDisableVideo: _util5.default.hasHints({
3837
4044
  requiredHints: [_constants.DISPLAY_HINTS.DISABLE_VIDEO],
3838
4045
  displayHints: this.userDisplayHints
3839
4046
  }),
3840
- canShareFile: _util4.default.hasHints({
4047
+ canShareFile: _util5.default.hasHints({
3841
4048
  requiredHints: [_constants.DISPLAY_HINTS.SHARE_FILE],
3842
4049
  displayHints: this.userDisplayHints
3843
- }) && _util4.default.hasPolicies({
4050
+ }) && _util5.default.hasPolicies({
3844
4051
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_FILE_SHARE],
3845
4052
  policies: this.selfUserPolicies
3846
4053
  }) || !this.arePolicyRestrictionsSupported,
3847
- canTransferFile: _util4.default.hasPolicies({
4054
+ canTransferFile: _util5.default.hasPolicies({
3848
4055
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_FILE_TRANSFER],
3849
4056
  policies: this.selfUserPolicies
3850
4057
  }),
3851
- canChat: _util4.default.hasPolicies({
4058
+ canChat: _util5.default.hasPolicies({
3852
4059
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_CHAT],
3853
4060
  policies: this.selfUserPolicies
3854
4061
  }),
3855
- canShareApplication: _util4.default.hasHints({
4062
+ canShareApplication: _util5.default.hasHints({
3856
4063
  requiredHints: [_constants.DISPLAY_HINTS.SHARE_APPLICATION],
3857
4064
  displayHints: this.userDisplayHints
3858
- }) && _util4.default.hasPolicies({
4065
+ }) && _util5.default.hasPolicies({
3859
4066
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_APP_SHARE],
3860
4067
  policies: this.selfUserPolicies
3861
4068
  }) || !this.arePolicyRestrictionsSupported(),
3862
- canShareCamera: _util4.default.hasHints({
4069
+ canShareCamera: _util5.default.hasHints({
3863
4070
  requiredHints: [_constants.DISPLAY_HINTS.SHARE_CAMERA],
3864
4071
  displayHints: this.userDisplayHints
3865
- }) && _util4.default.hasPolicies({
4072
+ }) && _util5.default.hasPolicies({
3866
4073
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_CAMERA_SHARE],
3867
4074
  policies: this.selfUserPolicies
3868
4075
  }),
3869
- canShareDesktop: _util4.default.hasHints({
4076
+ canShareDesktop: _util5.default.hasHints({
3870
4077
  requiredHints: [_constants.DISPLAY_HINTS.SHARE_DESKTOP],
3871
4078
  displayHints: this.userDisplayHints
3872
- }) && _util4.default.hasPolicies({
4079
+ }) && _util5.default.hasPolicies({
3873
4080
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_DESKTOP_SHARE],
3874
4081
  policies: this.selfUserPolicies
3875
4082
  }) || !this.arePolicyRestrictionsSupported(),
3876
- canShareContent: _util4.default.hasHints({
4083
+ canShareContent: _util5.default.hasHints({
3877
4084
  requiredHints: [_constants.DISPLAY_HINTS.SHARE_CONTENT],
3878
4085
  displayHints: this.userDisplayHints
3879
4086
  }) || !this.arePolicyRestrictionsSupported(),
3880
- canAnnotate: _util4.default.hasPolicies({
4087
+ canAnnotate: _util5.default.hasPolicies({
3881
4088
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_ANNOTATION],
3882
4089
  policies: this.selfUserPolicies
3883
4090
  })
@@ -3912,7 +4119,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3912
4119
  }, {
3913
4120
  key: "setPermissionTokenPayload",
3914
4121
  value: function setPermissionTokenPayload(permissionToken) {
3915
- this.permissionTokenPayload = _jsonwebtoken.default.decode(permissionToken);
4122
+ this.permissionTokenPayload = (0, _jwtDecode.default)(permissionToken);
3916
4123
  this.permissionTokenReceivedLocalTime = new Date().getTime();
3917
4124
  }
3918
4125
 
@@ -4058,11 +4265,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4058
4265
  */
4059
4266
  }, {
4060
4267
  key: "setLocalAudioStream",
4061
- value: function () {
4062
- var _setLocalAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(localStream) {
4268
+ value: (function () {
4269
+ var _setLocalAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(localStream) {
4063
4270
  var oldStream;
4064
- return _regenerator.default.wrap(function _callee10$(_context10) {
4065
- while (1) switch (_context10.prev = _context10.next) {
4271
+ return _regenerator.default.wrap(function _callee11$(_context11) {
4272
+ while (1) switch (_context11.prev = _context11.next) {
4066
4273
  case 0:
4067
4274
  oldStream = this.mediaProperties.audioStream;
4068
4275
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localAudioStreamMuteStateHandler);
@@ -4076,21 +4283,21 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4076
4283
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localAudioStreamMuteStateHandler);
4077
4284
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
4078
4285
  if (!(!this.isMultistream || !localStream)) {
4079
- _context10.next = 12;
4286
+ _context11.next = 12;
4080
4287
  break;
4081
4288
  }
4082
- _context10.next = 12;
4289
+ _context11.next = 12;
4083
4290
  return this.unpublishStream(_internalMediaCore.MediaType.AudioMain, oldStream);
4084
4291
  case 12:
4085
- _context10.next = 14;
4292
+ _context11.next = 14;
4086
4293
  return this.publishStream(_internalMediaCore.MediaType.AudioMain, this.mediaProperties.audioStream);
4087
4294
  case 14:
4088
4295
  case "end":
4089
- return _context10.stop();
4296
+ return _context11.stop();
4090
4297
  }
4091
- }, _callee10, this);
4298
+ }, _callee11, this);
4092
4299
  }));
4093
- function setLocalAudioStream(_x10) {
4300
+ function setLocalAudioStream(_x11) {
4094
4301
  return _setLocalAudioStream.apply(this, arguments);
4095
4302
  }
4096
4303
  return setLocalAudioStream;
@@ -4102,13 +4309,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4102
4309
  * @param {LocalCameraStream | null} localStream local camera stream
4103
4310
  * @returns {Promise<void>}
4104
4311
  */
4312
+ )
4105
4313
  }, {
4106
4314
  key: "setLocalVideoStream",
4107
- value: function () {
4108
- var _setLocalVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(localStream) {
4315
+ value: (function () {
4316
+ var _setLocalVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12(localStream) {
4109
4317
  var oldStream;
4110
- return _regenerator.default.wrap(function _callee11$(_context11) {
4111
- while (1) switch (_context11.prev = _context11.next) {
4318
+ return _regenerator.default.wrap(function _callee12$(_context12) {
4319
+ while (1) switch (_context12.prev = _context12.next) {
4112
4320
  case 0:
4113
4321
  oldStream = this.mediaProperties.videoStream;
4114
4322
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localVideoStreamMuteStateHandler);
@@ -4122,21 +4330,21 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4122
4330
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localVideoStreamMuteStateHandler);
4123
4331
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
4124
4332
  if (!(!this.isMultistream || !localStream)) {
4125
- _context11.next = 12;
4333
+ _context12.next = 12;
4126
4334
  break;
4127
4335
  }
4128
- _context11.next = 12;
4336
+ _context12.next = 12;
4129
4337
  return this.unpublishStream(_internalMediaCore.MediaType.VideoMain, oldStream);
4130
4338
  case 12:
4131
- _context11.next = 14;
4339
+ _context12.next = 14;
4132
4340
  return this.publishStream(_internalMediaCore.MediaType.VideoMain, this.mediaProperties.videoStream);
4133
4341
  case 14:
4134
4342
  case "end":
4135
- return _context11.stop();
4343
+ return _context12.stop();
4136
4344
  }
4137
- }, _callee11, this);
4345
+ }, _callee12, this);
4138
4346
  }));
4139
- function setLocalVideoStream(_x11) {
4347
+ function setLocalVideoStream(_x12) {
4140
4348
  return _setLocalVideoStream.apply(this, arguments);
4141
4349
  }
4142
4350
  return setLocalVideoStream;
@@ -4149,13 +4357,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4149
4357
  * @param {LocalDisplayStream | undefined} localDisplayStream local display stream
4150
4358
  * @returns {Promise<void>}
4151
4359
  */
4360
+ )
4152
4361
  }, {
4153
4362
  key: "setLocalShareVideoStream",
4154
- value: function () {
4155
- var _setLocalShareVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12(localDisplayStream) {
4363
+ value: (function () {
4364
+ var _setLocalShareVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13(localDisplayStream) {
4156
4365
  var oldStream;
4157
- return _regenerator.default.wrap(function _callee12$(_context12) {
4158
- while (1) switch (_context12.prev = _context12.next) {
4366
+ return _regenerator.default.wrap(function _callee13$(_context13) {
4367
+ while (1) switch (_context13.prev = _context13.next) {
4159
4368
  case 0:
4160
4369
  oldStream = this.mediaProperties.shareVideoStream;
4161
4370
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.handleShareVideoStreamMuteStateChange);
@@ -4167,21 +4376,21 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4167
4376
  localDisplayStream === null || localDisplayStream === void 0 ? void 0 : localDisplayStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
4168
4377
  this.mediaProperties.mediaDirection.sendShare = this.mediaProperties.hasLocalShareStream();
4169
4378
  if (!(!this.isMultistream || !localDisplayStream)) {
4170
- _context12.next = 12;
4379
+ _context13.next = 12;
4171
4380
  break;
4172
4381
  }
4173
- _context12.next = 12;
4382
+ _context13.next = 12;
4174
4383
  return this.unpublishStream(_internalMediaCore.MediaType.VideoSlides, oldStream);
4175
4384
  case 12:
4176
- _context12.next = 14;
4385
+ _context13.next = 14;
4177
4386
  return this.publishStream(_internalMediaCore.MediaType.VideoSlides, this.mediaProperties.shareVideoStream);
4178
4387
  case 14:
4179
4388
  case "end":
4180
- return _context12.stop();
4389
+ return _context13.stop();
4181
4390
  }
4182
- }, _callee12, this);
4391
+ }, _callee13, this);
4183
4392
  }));
4184
- function setLocalShareVideoStream(_x12) {
4393
+ function setLocalShareVideoStream(_x13) {
4185
4394
  return _setLocalShareVideoStream.apply(this, arguments);
4186
4395
  }
4187
4396
  return setLocalShareVideoStream;
@@ -4193,13 +4402,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4193
4402
  * @param {LocalSystemAudioStream | undefined} localSystemAudioStream local system audio stream
4194
4403
  * @returns {Promise<void>}
4195
4404
  */
4405
+ )
4196
4406
  }, {
4197
4407
  key: "setLocalShareAudioStream",
4198
- value: function () {
4199
- var _setLocalShareAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13(localSystemAudioStream) {
4408
+ value: (function () {
4409
+ var _setLocalShareAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14(localSystemAudioStream) {
4200
4410
  var oldStream;
4201
- return _regenerator.default.wrap(function _callee13$(_context13) {
4202
- while (1) switch (_context13.prev = _context13.next) {
4411
+ return _regenerator.default.wrap(function _callee14$(_context14) {
4412
+ while (1) switch (_context14.prev = _context14.next) {
4203
4413
  case 0:
4204
4414
  oldStream = this.mediaProperties.shareAudioStream;
4205
4415
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.StreamEventNames.Ended, this.handleShareAudioStreamEnded);
@@ -4209,21 +4419,21 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4209
4419
  localSystemAudioStream === null || localSystemAudioStream === void 0 ? void 0 : localSystemAudioStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
4210
4420
  this.mediaProperties.mediaDirection.sendShare = this.mediaProperties.hasLocalShareStream();
4211
4421
  if (!(!this.isMultistream || !localSystemAudioStream)) {
4212
- _context13.next = 10;
4422
+ _context14.next = 10;
4213
4423
  break;
4214
4424
  }
4215
- _context13.next = 10;
4425
+ _context14.next = 10;
4216
4426
  return this.unpublishStream(_internalMediaCore.MediaType.AudioSlides, oldStream);
4217
4427
  case 10:
4218
- _context13.next = 12;
4428
+ _context14.next = 12;
4219
4429
  return this.publishStream(_internalMediaCore.MediaType.AudioSlides, this.mediaProperties.shareAudioStream);
4220
4430
  case 12:
4221
4431
  case "end":
4222
- return _context13.stop();
4432
+ return _context14.stop();
4223
4433
  }
4224
- }, _callee13, this);
4434
+ }, _callee14, this);
4225
4435
  }));
4226
- function setLocalShareAudioStream(_x13) {
4436
+ function setLocalShareAudioStream(_x14) {
4227
4437
  return _setLocalShareAudioStream.apply(this, arguments);
4228
4438
  }
4229
4439
  return setLocalShareAudioStream;
@@ -4234,6 +4444,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4234
4444
  * @param {Object} options parameters functionName, isPublished, mediaType and stream needed to trigger event
4235
4445
  * @returns {undefined}
4236
4446
  */
4447
+ )
4237
4448
  }, {
4238
4449
  key: "emitPublishStateChangeEvent",
4239
4450
  value: function emitPublishStateChangeEvent(options) {
@@ -4465,7 +4676,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4465
4676
  key: "muteAudio",
4466
4677
  value: function muteAudio() {
4467
4678
  var _this24 = this;
4468
- if (!_util.default.isUserInJoinedState(this.locusInfo)) {
4679
+ if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
4469
4680
  return _promise.default.reject(new _webexErrors.UserNotJoinedError());
4470
4681
  }
4471
4682
 
@@ -4480,7 +4691,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4480
4691
 
4481
4692
  // First, stop sending the local audio media
4482
4693
  return logRequest(this.audio.handleClientRequest(this, true).then(function () {
4483
- _util.default.handleAudioLogging(_this24.mediaProperties.audioStream);
4694
+ _util2.default.handleAudioLogging(_this24.mediaProperties.audioStream);
4484
4695
  // @ts-ignore
4485
4696
  _this24.webex.internal.newMetrics.submitClientEvent({
4486
4697
  name: 'client.muted',
@@ -4515,7 +4726,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4515
4726
  key: "unmuteAudio",
4516
4727
  value: function unmuteAudio() {
4517
4728
  var _this25 = this;
4518
- if (!_util.default.isUserInJoinedState(this.locusInfo)) {
4729
+ if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
4519
4730
  return _promise.default.reject(new _webexErrors.UserNotJoinedError());
4520
4731
  }
4521
4732
 
@@ -4530,7 +4741,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4530
4741
 
4531
4742
  // First, send the control to unmute the participant on the server
4532
4743
  return logRequest(this.audio.handleClientRequest(this, false).then(function () {
4533
- _util.default.handleAudioLogging(_this25.mediaProperties.audioStream);
4744
+ _util2.default.handleAudioLogging(_this25.mediaProperties.audioStream);
4534
4745
  // @ts-ignore
4535
4746
  _this25.webex.internal.newMetrics.submitClientEvent({
4536
4747
  name: 'client.unmuted',
@@ -4565,7 +4776,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4565
4776
  key: "muteVideo",
4566
4777
  value: function muteVideo() {
4567
4778
  var _this26 = this;
4568
- if (!_util.default.isUserInJoinedState(this.locusInfo)) {
4779
+ if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
4569
4780
  return _promise.default.reject(new _webexErrors.UserNotJoinedError());
4570
4781
  }
4571
4782
 
@@ -4578,7 +4789,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4578
4789
  return _promise.default.reject(new _parameter.default('no video control associated to the meeting'));
4579
4790
  }
4580
4791
  return logRequest(this.video.handleClientRequest(this, true).then(function () {
4581
- _util.default.handleVideoLogging(_this26.mediaProperties.videoStream);
4792
+ _util2.default.handleVideoLogging(_this26.mediaProperties.videoStream);
4582
4793
  // @ts-ignore
4583
4794
  _this26.webex.internal.newMetrics.submitClientEvent({
4584
4795
  name: 'client.muted',
@@ -4613,7 +4824,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4613
4824
  key: "unmuteVideo",
4614
4825
  value: function unmuteVideo() {
4615
4826
  var _this27 = this;
4616
- if (!_util.default.isUserInJoinedState(this.locusInfo)) {
4827
+ if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
4617
4828
  return _promise.default.reject(new _webexErrors.UserNotJoinedError());
4618
4829
  }
4619
4830
 
@@ -4626,7 +4837,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4626
4837
  return _promise.default.reject(new _parameter.default('no audio control associated to the meeting'));
4627
4838
  }
4628
4839
  return logRequest(this.video.handleClientRequest(this, false).then(function () {
4629
- _util.default.handleVideoLogging(_this27.mediaProperties.videoStream);
4840
+ _util2.default.handleVideoLogging(_this27.mediaProperties.videoStream);
4630
4841
  // @ts-ignore
4631
4842
  _this27.webex.internal.newMetrics.submitClientEvent({
4632
4843
  name: 'client.unmuted',
@@ -4669,36 +4880,123 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4669
4880
  */
4670
4881
  }, {
4671
4882
  key: "joinWithMedia",
4672
- value: function joinWithMedia() {
4673
- var _this28 = this;
4674
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4675
- var mediaOptions = options.mediaOptions,
4676
- joinOptions = options.joinOptions;
4677
- if (!(mediaOptions !== null && mediaOptions !== void 0 && mediaOptions.allowMediaInLobby)) {
4678
- return _promise.default.reject(new _parameter.default('joinWithMedia() can only be used with allowMediaInLobby set to true'));
4883
+ value: (function () {
4884
+ var _joinWithMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15() {
4885
+ var options,
4886
+ mediaOptions,
4887
+ _options$joinOptions,
4888
+ joinOptions,
4889
+ joined,
4890
+ turnServerInfo,
4891
+ turnDiscoverySkippedReason,
4892
+ turnDiscoveryRequest,
4893
+ joinResponse,
4894
+ _yield$this$roap$hand,
4895
+ mediaResponse,
4896
+ _this$locusUrl,
4897
+ _leaveError,
4898
+ leaveError,
4899
+ _args15 = arguments;
4900
+ return _regenerator.default.wrap(function _callee15$(_context15) {
4901
+ while (1) switch (_context15.prev = _context15.next) {
4902
+ case 0:
4903
+ options = _args15.length > 0 && _args15[0] !== undefined ? _args15[0] : {};
4904
+ mediaOptions = options.mediaOptions, _options$joinOptions = options.joinOptions, joinOptions = _options$joinOptions === void 0 ? {} : _options$joinOptions;
4905
+ if (mediaOptions !== null && mediaOptions !== void 0 && mediaOptions.allowMediaInLobby) {
4906
+ _context15.next = 4;
4907
+ break;
4908
+ }
4909
+ return _context15.abrupt("return", _promise.default.reject(new _parameter.default('joinWithMedia() can only be used with allowMediaInLobby set to true')));
4910
+ case 4:
4911
+ this.allowMediaInLobby = true;
4912
+ _loggerProxy.default.logger.info('Meeting:index#joinWithMedia called');
4913
+ joined = false;
4914
+ _context15.prev = 7;
4915
+ _context15.next = 10;
4916
+ return this.webex.meetings.reachability.getReachabilityResults();
4917
+ case 10:
4918
+ joinOptions.reachability = _context15.sent;
4919
+ _context15.next = 13;
4920
+ return this.roap.generateTurnDiscoveryRequestMessage(this, true);
4921
+ case 13:
4922
+ turnDiscoveryRequest = _context15.sent;
4923
+ turnDiscoverySkippedReason = turnDiscoveryRequest.turnDiscoverySkippedReason;
4924
+ joinOptions.roapMessage = turnDiscoveryRequest.roapMessage;
4925
+ _context15.next = 18;
4926
+ return this.join(joinOptions);
4927
+ case 18:
4928
+ joinResponse = _context15.sent;
4929
+ joined = true;
4930
+ if (!joinOptions.roapMessage) {
4931
+ _context15.next = 29;
4932
+ break;
4933
+ }
4934
+ _context15.next = 23;
4935
+ return this.roap.handleTurnDiscoveryHttpResponse(this, joinResponse);
4936
+ case 23:
4937
+ _yield$this$roap$hand = _context15.sent;
4938
+ turnServerInfo = _yield$this$roap$hand.turnServerInfo;
4939
+ turnDiscoverySkippedReason = _yield$this$roap$hand.turnDiscoverySkippedReason;
4940
+ this.turnDiscoverySkippedReason = turnDiscoverySkippedReason;
4941
+ this.turnServerUsed = !!turnServerInfo;
4942
+ if (turnServerInfo === undefined) {
4943
+ this.roap.abortTurnDiscovery();
4944
+ }
4945
+ case 29:
4946
+ _context15.next = 31;
4947
+ return this.addMedia(mediaOptions, turnServerInfo);
4948
+ case 31:
4949
+ mediaResponse = _context15.sent;
4950
+ return _context15.abrupt("return", {
4951
+ join: joinResponse,
4952
+ media: mediaResponse
4953
+ });
4954
+ case 35:
4955
+ _context15.prev = 35;
4956
+ _context15.t0 = _context15["catch"](7);
4957
+ _loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> ', _context15.t0);
4958
+ this.roap.abortTurnDiscovery();
4959
+ if (!joined) {
4960
+ _context15.next = 49;
4961
+ break;
4962
+ }
4963
+ _context15.prev = 40;
4964
+ _context15.next = 43;
4965
+ return this.leave({
4966
+ resourceId: joinOptions === null || joinOptions === void 0 ? void 0 : joinOptions.resourceId,
4967
+ reason: 'joinWithMedia failure'
4968
+ });
4969
+ case 43:
4970
+ _context15.next = 49;
4971
+ break;
4972
+ case 45:
4973
+ _context15.prev = 45;
4974
+ _context15.t1 = _context15["catch"](40);
4975
+ _loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> leave error', _context15.t1);
4976
+ leaveError = _context15.t1;
4977
+ case 49:
4978
+ _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_WITH_MEDIA_FAILURE, {
4979
+ correlation_id: this.correlationId,
4980
+ locus_id: (_this$locusUrl = this.locusUrl) === null || _this$locusUrl === void 0 ? void 0 : _this$locusUrl.split('/').pop(),
4981
+ // if join fails, we may end up with no locusUrl
4982
+ reason: _context15.t0.message,
4983
+ stack: _context15.t0.stack,
4984
+ leaveErrorReason: (_leaveError = leaveError) === null || _leaveError === void 0 ? void 0 : _leaveError.message
4985
+ }, {
4986
+ type: _context15.t0.name
4987
+ });
4988
+ throw _context15.t0;
4989
+ case 51:
4990
+ case "end":
4991
+ return _context15.stop();
4992
+ }
4993
+ }, _callee15, this, [[7, 35], [40, 45]]);
4994
+ }));
4995
+ function joinWithMedia() {
4996
+ return _joinWithMedia.apply(this, arguments);
4679
4997
  }
4680
- _loggerProxy.default.logger.info('Meeting:index#joinWithMedia called');
4681
- return this.join(joinOptions).then(function (joinResponse) {
4682
- return _this28.addMedia(mediaOptions).then(function (mediaResponse) {
4683
- return {
4684
- join: joinResponse,
4685
- media: mediaResponse
4686
- };
4687
- });
4688
- }).catch(function (error) {
4689
- _loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> ', error);
4690
- _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_WITH_MEDIA_FAILURE, {
4691
- correlation_id: _this28.correlationId,
4692
- locus_id: _this28.locusUrl.split('/').pop(),
4693
- reason: error.message,
4694
- stack: error.stack
4695
- }, {
4696
- type: error.name
4697
- });
4698
- return _promise.default.reject(error);
4699
- });
4700
- }
4701
-
4998
+ return joinWithMedia;
4999
+ }()
4702
5000
  /**
4703
5001
  * Initiates the reconnection of the media in the meeting
4704
5002
  *
@@ -4707,17 +5005,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4707
5005
  * @public
4708
5006
  * @memberof Meeting
4709
5007
  */
5008
+ )
4710
5009
  }, {
4711
5010
  key: "reconnect",
4712
5011
  value: function reconnect(options) {
4713
- var _this29 = this;
5012
+ var _this28 = this;
4714
5013
  _loggerProxy.default.logger.log("Meeting:index#reconnect --> attempting to reconnect meeting ".concat(this.id));
4715
5014
  if (!this.reconnectionManager || !this.reconnectionManager.reconnect) {
4716
5015
  return _promise.default.reject(new _parameter.default('Cannot reconnect, ReconnectionManager must first be defined.'));
4717
5016
  }
4718
5017
 
4719
5018
  // @ts-ignore - currentMediaStatus coming from SelfUtil
4720
- if (!_util.default.isMediaEstablished(this.currentMediaStatus)) {
5019
+ if (!_util2.default.isMediaEstablished(this.currentMediaStatus)) {
4721
5020
  return _promise.default.reject(new _parameter.default('Cannot reconnect, Media has not established to reconnect'));
4722
5021
  }
4723
5022
  try {
@@ -4738,29 +5037,29 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4738
5037
  function: 'reconnect'
4739
5038
  }, _constants.EVENT_TRIGGERS.MEETING_RECONNECTION_STARTING);
4740
5039
  return this.reconnectionManager.reconnect(options).then(function () {
4741
- return _this29.waitForRemoteSDPAnswer();
5040
+ return _this28.waitForRemoteSDPAnswer();
4742
5041
  }).then(function () {
4743
- return _this29.waitForMediaConnectionConnected();
5042
+ return _this28.waitForMediaConnectionConnected();
4744
5043
  }).then(function () {
4745
- _triggerProxy.default.trigger(_this29, {
5044
+ _triggerProxy.default.trigger(_this28, {
4746
5045
  file: 'meeting/index',
4747
5046
  function: 'reconnect'
4748
5047
  }, _constants.EVENT_TRIGGERS.MEETING_RECONNECTION_SUCCESS);
4749
5048
  _loggerProxy.default.logger.log('Meeting:index#reconnect --> Meeting reconnect success');
4750
5049
 
4751
5050
  // @ts-ignore
4752
- _this29.webex.internal.newMetrics.submitClientEvent({
5051
+ _this28.webex.internal.newMetrics.submitClientEvent({
4753
5052
  name: 'client.media.recovered',
4754
5053
  payload: {
4755
5054
  recoveredBy: 'new'
4756
5055
  },
4757
5056
  options: {
4758
- meetingId: _this29.id
5057
+ meetingId: _this28.id
4759
5058
  }
4760
5059
  });
4761
- _this29.reconnectionManager.setStatus(_constants.RECONNECTION.STATE.COMPLETE);
5060
+ _this28.reconnectionManager.setStatus(_constants.RECONNECTION.STATE.COMPLETE);
4762
5061
  }).catch(function (error) {
4763
- _triggerProxy.default.trigger(_this29, {
5062
+ _triggerProxy.default.trigger(_this28, {
4764
5063
  file: 'meeting/index',
4765
5064
  function: 'reconnect'
4766
5065
  }, _constants.EVENT_TRIGGERS.MEETING_RECONNECTION_FAILURE, {
@@ -4768,18 +5067,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4768
5067
  });
4769
5068
  _loggerProxy.default.logger.error('Meeting:index#reconnect --> Meeting reconnect failed', error);
4770
5069
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_RECONNECT_FAILURE, {
4771
- correlation_id: _this29.correlationId,
4772
- locus_id: _this29.locusUrl.split('/').pop(),
5070
+ correlation_id: _this28.correlationId,
5071
+ locus_id: _this28.locusUrl.split('/').pop(),
4773
5072
  reason: error.message,
4774
5073
  stack: error.stack
4775
5074
  });
4776
- _this29.uploadLogs({
5075
+ _this28.uploadLogs({
4777
5076
  file: 'meeting/index',
4778
5077
  function: 'reconnect'
4779
5078
  });
4780
5079
  return _promise.default.reject(new _reconnection.default('Reconnection failure event', error));
4781
5080
  }).finally(function () {
4782
- _this29.reconnectionManager.reset();
5081
+ _this28.reconnectionManager.reset();
4783
5082
  });
4784
5083
  }
4785
5084
 
@@ -4795,7 +5094,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4795
5094
  if ((_this$locusInfo$contr = this.locusInfo.controls.transcribe) !== null && _this$locusInfo$contr !== void 0 && _this$locusInfo$contr.transcribing) {
4796
5095
  return true;
4797
5096
  }
4798
- _loggerProxy.default.logger.error('Meeting:index#isTranscriptionSupported --> Webex Assistant is not supported');
5097
+ _loggerProxy.default.logger.error('Meeting:index#isTranscriptionSupported --> Webex Assistant is not enabled/supported');
4799
5098
  return false;
4800
5099
  }
4801
5100
 
@@ -4815,115 +5114,164 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4815
5114
  }
4816
5115
 
4817
5116
  /**
4818
- * Monitor the Low-Latency Mercury (LLM) web socket connection on `onError` and `onClose` states
4819
- * @private
4820
- * @returns {void}
5117
+ * sets Caption language for the meeting
5118
+ * @param {string} language
5119
+ * @returns {Promise}
4821
5120
  */
4822
5121
  }, {
4823
- key: "monitorTranscriptionSocketConnection",
4824
- value: function monitorTranscriptionSocketConnection() {
4825
- var _this30 = this;
4826
- this.transcription.onCloseSocket(function (event) {
4827
- _loggerProxy.default.logger.info("Meeting:index#onCloseSocket -->\n unable to continue receiving transcription;\n low-latency mercury web socket connection is closed now.\n ".concat(event));
4828
- _this30.triggerStopReceivingTranscriptionEvent();
5122
+ key: "setCaptionLanguage",
5123
+ value: function setCaptionLanguage(language) {
5124
+ var _this29 = this;
5125
+ return new _promise.default(function (resolve, reject) {
5126
+ if (!_this29.isTranscriptionSupported()) {
5127
+ _loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
5128
+ reject(new Error('Webex Assistant is not enabled/supported'));
5129
+ }
5130
+ try {
5131
+ var voiceaListenerCaptionUpdate = function voiceaListenerCaptionUpdate(payload) {
5132
+ // @ts-ignore
5133
+ _this29.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5134
+ var statusCode = payload.statusCode;
5135
+ if (statusCode === 200) {
5136
+ _this29.transcription.languageOptions = _objectSpread(_objectSpread({}, _this29.transcription.languageOptions), {}, {
5137
+ currentCaptionLanguage: language
5138
+ });
5139
+ resolve(language);
5140
+ } else {
5141
+ reject(payload);
5142
+ }
5143
+ };
5144
+ // @ts-ignore
5145
+ _this29.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5146
+ // @ts-ignore
5147
+ _this29.webex.internal.voicea.requestLanguage(language);
5148
+ } catch (error) {
5149
+ _loggerProxy.default.logger.error("Meeting:index#setCaptionLanguage --> ".concat(error));
5150
+ reject(error);
5151
+ }
4829
5152
  });
4830
- this.transcription.onErrorSocket(function (event) {
4831
- _loggerProxy.default.logger.error("Meeting:index#onErrorSocket -->\n unable to continue receiving transcription;\n low-latency mercury web socket connection error had occured.\n ".concat(event));
4832
- _this30.triggerStopReceivingTranscriptionEvent();
4833
- _metrics.default.sendBehavioralMetric(_constants2.default.RECEIVE_TRANSCRIPTION_FAILURE, {
4834
- correlation_id: _this30.correlationId,
4835
- reason: 'unexpected error: transcription LLM web socket connection error had occured.',
4836
- event: event
4837
- });
5153
+ }
5154
+
5155
+ /**
5156
+ * sets Spoken language for the meeting
5157
+ * @param {string} language
5158
+ * @returns {Promise}
5159
+ */
5160
+ }, {
5161
+ key: "setSpokenLanguage",
5162
+ value: function setSpokenLanguage(language) {
5163
+ var _this30 = this;
5164
+ return new _promise.default(function (resolve, reject) {
5165
+ if (!_this30.isTranscriptionSupported()) {
5166
+ _loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
5167
+ reject(new Error('Webex Assistant is not enabled/supported'));
5168
+ }
5169
+ try {
5170
+ var voiceaListenerLanguageUpdate = function voiceaListenerLanguageUpdate(payload) {
5171
+ // @ts-ignore
5172
+ _this30.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5173
+ var languageCode = payload.languageCode;
5174
+ if (languageCode) {
5175
+ _this30.transcription.languageOptions = _objectSpread(_objectSpread({}, _this30.transcription.languageOptions), {}, {
5176
+ currentSpokenLanguage: languageCode
5177
+ });
5178
+ resolve(languageCode);
5179
+ } else {
5180
+ reject(payload);
5181
+ }
5182
+ };
5183
+
5184
+ // @ts-ignore
5185
+ _this30.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5186
+
5187
+ // @ts-ignore
5188
+ _this30.webex.internal.voicea.setSpokenLanguage(language);
5189
+ } catch (error) {
5190
+ _loggerProxy.default.logger.error("Meeting:index#setSpokenLanguage --> ".concat(error));
5191
+ reject(error);
5192
+ }
4838
5193
  });
4839
5194
  }
4840
5195
 
4841
5196
  /**
4842
- * Request for a WebSocket Url, open and monitor the WebSocket connection
4843
- * @private
5197
+ * This method will enable the transcription for the current meeting if the meeting has enabled/supports Webex Assistant
5198
+ * @param {Object} options object with spokenlanguage setting
5199
+ * @public
4844
5200
  * @returns {Promise<void>} a promise to open the WebSocket connection
4845
5201
  */
4846
5202
  }, {
4847
- key: "receiveTranscription",
4848
- value: function () {
4849
- var _receiveTranscription = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14() {
4850
- var _this31 = this;
4851
- var datachannelUrl, _yield$this$request, webSocketUrl;
4852
- return _regenerator.default.wrap(function _callee14$(_context14) {
4853
- while (1) switch (_context14.prev = _context14.next) {
5203
+ key: "startTranscription",
5204
+ value: (function () {
5205
+ var _startTranscription = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16(options) {
5206
+ return _regenerator.default.wrap(function _callee16$(_context16) {
5207
+ while (1) switch (_context16.prev = _context16.next) {
4854
5208
  case 0:
4855
- _loggerProxy.default.logger.info("Meeting:index#receiveTranscription -->\n Attempting to generate a web socket url.");
4856
- _context14.prev = 1;
4857
- datachannelUrl = this.locusInfo.info.datachannelUrl; // @ts-ignore - fix type
4858
- _context14.next = 5;
4859
- return this.request({
4860
- method: _constants.HTTP_VERBS.POST,
4861
- uri: datachannelUrl,
4862
- body: {
4863
- deviceUrl: this.deviceUrl
4864
- }
4865
- });
4866
- case 5:
4867
- _yield$this$request = _context14.sent;
4868
- webSocketUrl = _yield$this$request.body.webSocketUrl;
4869
- _loggerProxy.default.logger.info("Meeting:index#receiveTranscription -->\n Generated web socket url succesfully.");
4870
- this.transcription = new _transcription.default(webSocketUrl,
4871
- // @ts-ignore - fix type
4872
- this.webex.sessionId, this.members);
4873
- _loggerProxy.default.logger.info("Meeting:index#receiveTranscription -->\n opened LLM web socket connection successfully.");
4874
- if (!this.inMeetingActions.isClosedCaptionActive) {
4875
- _loggerProxy.default.logger.error("Meeting:index#receiveTranscription --> Transcription cannot be started until a licensed user enables it");
5209
+ if (!this.isJoined()) {
5210
+ _context16.next = 15;
5211
+ break;
4876
5212
  }
4877
-
4878
- // retrieve and pass the payload
4879
- this.transcription.subscribe(function (payload) {
4880
- _triggerProxy.default.trigger(_this31, {
4881
- file: 'meeting/index',
4882
- function: 'join'
4883
- }, _constants.EVENT_TRIGGERS.MEETING_STARTED_RECEIVING_TRANSCRIPTION, payload);
4884
- });
4885
- this.monitorTranscriptionSocketConnection();
4886
- // @ts-ignore - fix type
4887
- this.transcription.connect(this.webex.credentials.supertoken.access_token);
4888
- _context14.next = 20;
5213
+ _loggerProxy.default.logger.info('Meeting:index#startTranscription --> Attempting to enable transcription!');
5214
+ _context16.prev = 2;
5215
+ if (!this.areVoiceaEventsSetup) {
5216
+ this.setUpVoiceaListeners();
5217
+ }
5218
+ if (!(this.getCurUserType() === 'host')) {
5219
+ _context16.next = 7;
5220
+ break;
5221
+ }
5222
+ _context16.next = 7;
5223
+ return this.webex.internal.voicea.toggleTranscribing(true, options === null || options === void 0 ? void 0 : options.spokenLanguage);
5224
+ case 7:
5225
+ _context16.next = 13;
4889
5226
  break;
4890
- case 16:
4891
- _context14.prev = 16;
4892
- _context14.t0 = _context14["catch"](1);
4893
- _loggerProxy.default.logger.error("Meeting:index#receiveTranscription --> ".concat(_context14.t0));
5227
+ case 9:
5228
+ _context16.prev = 9;
5229
+ _context16.t0 = _context16["catch"](2);
5230
+ _loggerProxy.default.logger.error("Meeting:index#startTranscription --> ".concat(_context16.t0));
4894
5231
  _metrics.default.sendBehavioralMetric(_constants2.default.RECEIVE_TRANSCRIPTION_FAILURE, {
4895
5232
  correlation_id: this.correlationId,
4896
- reason: _context14.t0.message,
4897
- stack: _context14.t0.stack
5233
+ reason: _context16.t0.message,
5234
+ stack: _context16.t0.stack
4898
5235
  });
4899
- case 20:
5236
+ case 13:
5237
+ _context16.next = 17;
5238
+ break;
5239
+ case 15:
5240
+ _loggerProxy.default.logger.error("Meeting:index#startTranscription --> meeting joined : ".concat(this.isJoined()));
5241
+ throw new Error('Meeting is not joined');
5242
+ case 17:
4900
5243
  case "end":
4901
- return _context14.stop();
5244
+ return _context16.stop();
4902
5245
  }
4903
- }, _callee14, this, [[1, 16]]);
5246
+ }, _callee16, this, [[2, 9]]);
4904
5247
  }));
4905
- function receiveTranscription() {
4906
- return _receiveTranscription.apply(this, arguments);
5248
+ function startTranscription(_x15) {
5249
+ return _startTranscription.apply(this, arguments);
4907
5250
  }
4908
- return receiveTranscription;
4909
- }()
4910
- /**
4911
- * Callback called when a relay event is received from meeting LLM Connection
4912
- * @param {RelayEvent} e Event object coming from LLM Connection
4913
- * @private
4914
- * @returns {void}
4915
- */
5251
+ return startTranscription;
5252
+ }())
4916
5253
  }, {
4917
- key: "stopReceivingTranscription",
5254
+ key: "stopTranscription",
4918
5255
  value:
4919
5256
  /**
4920
- * stop recieving Transcription by closing
4921
- * the web socket connection properly
5257
+ * This method stops receiving transcription for the current meeting
4922
5258
  * @returns {void}
4923
5259
  */
4924
- function stopReceivingTranscription() {
5260
+ function stopTranscription() {
4925
5261
  if (this.transcription) {
4926
- this.transcription.closeSocket();
5262
+ // @ts-ignore
5263
+ this.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.VOICEA_ANNOUNCEMENT, this.voiceaListenerCallbacks[_internalPluginVoicea.EVENT_TRIGGERS.VOICEA_ANNOUNCEMENT]);
5264
+
5265
+ // @ts-ignore
5266
+ this.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTIONS_TURNED_ON, this.voiceaListenerCallbacks[_internalPluginVoicea.EVENT_TRIGGERS.CAPTIONS_TURNED_ON]);
5267
+
5268
+ // @ts-ignore
5269
+ this.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.EVA_COMMAND, this.voiceaListenerCallbacks[_internalPluginVoicea.EVENT_TRIGGERS.EVA_COMMAND]);
5270
+
5271
+ // @ts-ignore
5272
+ this.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.NEW_CAPTION, this.voiceaListenerCallbacks[_internalPluginVoicea.EVENT_TRIGGERS.NEW_CAPTION]);
5273
+ this.areVoiceaEventsSetup = false;
5274
+ this.triggerStopReceivingTranscriptionEvent();
4927
5275
  }
4928
5276
  }
4929
5277
 
@@ -4936,9 +5284,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4936
5284
  }, {
4937
5285
  key: "triggerStopReceivingTranscriptionEvent",
4938
5286
  value: function triggerStopReceivingTranscriptionEvent() {
4939
- _loggerProxy.default.logger.info("\n Meeting:index#stopReceivingTranscription -->\n closed transcription LLM web socket connection successfully.");
5287
+ _loggerProxy.default.logger.info("\n Meeting:index#stopReceivingTranscription -->\n closed voicea event listeners successfully.");
4940
5288
  _triggerProxy.default.trigger(this, {
4941
- file: 'meeting',
5289
+ file: 'meeting/index',
4942
5290
  function: 'triggerStopReceivingTranscriptionEvent'
4943
5291
  }, _constants.EVENT_TRIGGERS.MEETING_STOPPED_RECEIVING_TRANSCRIPTION);
4944
5292
  }
@@ -4957,9 +5305,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4957
5305
  */
4958
5306
  }, {
4959
5307
  key: "join",
4960
- value: function () {
4961
- var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15() {
4962
- var _this32 = this;
5308
+ value: (function () {
5309
+ var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17() {
5310
+ var _this31 = this;
4963
5311
  var options,
4964
5312
  errorMessage,
4965
5313
  error,
@@ -4969,25 +5317,25 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4969
5317
  _error,
4970
5318
  _errorMessage2,
4971
5319
  _error2,
4972
- _args15 = arguments;
4973
- return _regenerator.default.wrap(function _callee15$(_context15) {
4974
- while (1) switch (_context15.prev = _context15.next) {
5320
+ _args17 = arguments;
5321
+ return _regenerator.default.wrap(function _callee17$(_context17) {
5322
+ while (1) switch (_context17.prev = _context17.next) {
4975
5323
  case 0:
4976
- options = _args15.length > 0 && _args15[0] !== undefined ? _args15[0] : {};
5324
+ options = _args17.length > 0 && _args17[0] !== undefined ? _args17[0] : {};
4977
5325
  if (this.webex.meetings.registered) {
4978
- _context15.next = 6;
5326
+ _context17.next = 6;
4979
5327
  break;
4980
5328
  }
4981
5329
  errorMessage = 'Meeting:index#join --> Device not registered';
4982
5330
  error = new Error(errorMessage);
4983
5331
  _loggerProxy.default.logger.error(errorMessage);
4984
- return _context15.abrupt("return", _promise.default.reject(error));
5332
+ return _context17.abrupt("return", _promise.default.reject(error));
4985
5333
  case 6:
4986
5334
  if (!this.deferJoin) {
4987
- _context15.next = 8;
5335
+ _context17.next = 8;
4988
5336
  break;
4989
5337
  }
4990
- return _context15.abrupt("return", this.deferJoin);
5338
+ return _context17.abrupt("return", this.deferJoin);
4991
5339
  case 8:
4992
5340
  // Create a deferred promise for a consistent resolve value from utils.
4993
5341
  // This also prevents redundant API calls.
@@ -5036,15 +5384,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5036
5384
  this.wirelessShare = true;
5037
5385
  }
5038
5386
  if (!options.meetingQuality) {
5039
- _context15.next = 36;
5387
+ _context17.next = 36;
5040
5388
  break;
5041
5389
  }
5042
5390
  if (!(typeof options.meetingQuality === 'string')) {
5043
- _context15.next = 27;
5391
+ _context17.next = 27;
5044
5392
  break;
5045
5393
  }
5046
5394
  if (_constants.QUALITY_LEVELS[options.meetingQuality]) {
5047
- _context15.next = 26;
5395
+ _context17.next = 26;
5048
5396
  break;
5049
5397
  }
5050
5398
  _errorMessage = "Meeting:index#join --> ".concat(options.meetingQuality, " not defined");
@@ -5052,16 +5400,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5052
5400
  _loggerProxy.default.logger.error(_errorMessage);
5053
5401
  joinFailed(_error);
5054
5402
  this.deferJoin = undefined;
5055
- return _context15.abrupt("return", _promise.default.reject(_error));
5403
+ return _context17.abrupt("return", _promise.default.reject(_error));
5056
5404
  case 26:
5057
5405
  this.mediaProperties.setRemoteQualityLevel(options.meetingQuality);
5058
5406
  case 27:
5059
5407
  if (!((0, _typeof2.default)(options.meetingQuality) === 'object')) {
5060
- _context15.next = 36;
5408
+ _context17.next = 36;
5061
5409
  break;
5062
5410
  }
5063
5411
  if (_constants.QUALITY_LEVELS[options.meetingQuality.remote]) {
5064
- _context15.next = 35;
5412
+ _context17.next = 35;
5065
5413
  break;
5066
5414
  }
5067
5415
  _errorMessage2 = "Meeting:index#join --> ".concat(options.meetingQuality.remote, " not defined");
@@ -5069,123 +5417,109 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5069
5417
  _error2 = new Error(_errorMessage2);
5070
5418
  joinFailed(_error2);
5071
5419
  this.deferJoin = undefined;
5072
- return _context15.abrupt("return", _promise.default.reject(new Error(_errorMessage2)));
5420
+ return _context17.abrupt("return", _promise.default.reject(new Error(_errorMessage2)));
5073
5421
  case 35:
5074
5422
  if (options.meetingQuality.remote) {
5075
5423
  this.mediaProperties.setRemoteQualityLevel(options.meetingQuality.remote);
5076
5424
  }
5077
5425
  case 36:
5078
5426
  this.isMultistream = !!options.enableMultistream;
5079
- _context15.prev = 37;
5080
- _context15.next = 40;
5427
+ _context17.prev = 37;
5428
+ _context17.next = 40;
5081
5429
  return this.checkAndRefreshPermissionToken(_constants.MEETING_PERMISSION_TOKEN_REFRESH_THRESHOLD_IN_SEC, _constants.MEETING_PERMISSION_TOKEN_REFRESH_REASON);
5082
5430
  case 40:
5083
- _context15.next = 51;
5431
+ _context17.next = 51;
5084
5432
  break;
5085
5433
  case 42:
5086
- _context15.prev = 42;
5087
- _context15.t0 = _context15["catch"](37);
5088
- _loggerProxy.default.logger.error('Meeting:index#join --> Failed to refresh permission token:', _context15.t0);
5089
- if (!(_context15.t0 instanceof _captchaError.default || _context15.t0 instanceof _passwordError.default || _context15.t0 instanceof _permission.default)) {
5090
- _context15.next = 51;
5434
+ _context17.prev = 42;
5435
+ _context17.t0 = _context17["catch"](37);
5436
+ _loggerProxy.default.logger.error('Meeting:index#join --> Failed to refresh permission token:', _context17.t0);
5437
+ if (!(_context17.t0 instanceof _captchaError.default || _context17.t0 instanceof _passwordError.default || _context17.t0 instanceof _permission.default)) {
5438
+ _context17.next = 51;
5091
5439
  break;
5092
5440
  }
5093
- this.meetingFiniteStateMachine.fail(_context15.t0);
5441
+ this.meetingFiniteStateMachine.fail(_context17.t0);
5094
5442
 
5095
5443
  // Upload logs on refreshpermissionToken refresh Failure
5096
5444
  _triggerProxy.default.trigger(this, {
5097
5445
  file: 'meeting/index',
5098
5446
  function: 'join'
5099
5447
  }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
5100
- joinFailed(_context15.t0);
5448
+ joinFailed(_context17.t0);
5101
5449
  this.deferJoin = undefined;
5102
5450
 
5103
5451
  // if refresh permission token requires captcha, password or permission, we are throwing the errors
5104
5452
  // and bubble it up to client
5105
- return _context15.abrupt("return", _promise.default.reject(_context15.t0));
5453
+ return _context17.abrupt("return", _promise.default.reject(_context17.t0));
5106
5454
  case 51:
5107
- return _context15.abrupt("return", _util.default.joinMeetingOptions(this, options).then(function (join) {
5108
- _this32.meetingFiniteStateMachine.join();
5455
+ return _context17.abrupt("return", _util2.default.joinMeetingOptions(this, options).then(function (join) {
5456
+ _this31.meetingFiniteStateMachine.join();
5109
5457
  _loggerProxy.default.logger.log('Meeting:index#join --> Success');
5110
5458
  _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
5111
- correlation_id: _this32.correlationId
5459
+ correlation_id: _this31.correlationId
5112
5460
  });
5113
5461
  joinSuccess(join);
5114
- _this32.deferJoin = undefined;
5462
+ _this31.deferJoin = undefined;
5115
5463
  return join;
5116
5464
  }).catch(function (error) {
5117
- var _this32$meetingInfo, _error$error;
5118
- _this32.meetingFiniteStateMachine.fail(error);
5465
+ var _this31$meetingInfo, _error$error;
5466
+ _this31.meetingFiniteStateMachine.fail(error);
5119
5467
  _loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
5120
5468
 
5121
5469
  // @ts-ignore
5122
- _this32.webex.internal.newMetrics.submitClientEvent({
5470
+ _this31.webex.internal.newMetrics.submitClientEvent({
5123
5471
  name: 'client.locus.join.response',
5124
5472
  payload: {
5125
5473
  identifiers: {
5126
- meetingLookupUrl: (_this32$meetingInfo = _this32.meetingInfo) === null || _this32$meetingInfo === void 0 ? void 0 : _this32$meetingInfo.meetingLookupUrl
5474
+ meetingLookupUrl: (_this31$meetingInfo = _this31.meetingInfo) === null || _this31$meetingInfo === void 0 ? void 0 : _this31$meetingInfo.meetingLookupUrl
5127
5475
  }
5128
5476
  },
5129
5477
  options: {
5130
- meetingId: _this32.id,
5478
+ meetingId: _this31.id,
5131
5479
  rawError: error
5132
5480
  }
5133
5481
  });
5134
5482
 
5135
5483
  // TODO: change this to error codes and pre defined dictionary
5136
5484
  _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
5137
- correlation_id: _this32.correlationId,
5485
+ correlation_id: _this31.correlationId,
5138
5486
  reason: (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.message,
5139
5487
  stack: error.stack
5140
5488
  });
5141
5489
 
5142
5490
  // Upload logs on join Failure
5143
- _triggerProxy.default.trigger(_this32, {
5491
+ _triggerProxy.default.trigger(_this31, {
5144
5492
  file: 'meeting/index',
5145
5493
  function: 'join'
5146
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this32);
5494
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this31);
5147
5495
  joinFailed(error);
5148
- _this32.deferJoin = undefined;
5496
+ _this31.deferJoin = undefined;
5149
5497
  return _promise.default.reject(error);
5150
5498
  }).then(function (join) {
5151
5499
  // @ts-ignore - config coming from registerPlugin
5152
- if (_this32.config.enableAutomaticLLM) {
5153
- _this32.updateLLMConnection().catch(function (error) {
5154
- _loggerProxy.default.logger.error('Meeting:index#join --> Update LLM Connection Failed', error);
5500
+ if (_this31.config.enableAutomaticLLM) {
5501
+ _this31.updateLLMConnection().catch(function (error) {
5502
+ _loggerProxy.default.logger.error('Meeting:index#join --> Transcription Socket Connection Failed', error);
5155
5503
  _metrics.default.sendBehavioralMetric(_constants2.default.LLM_CONNECTION_AFTER_JOIN_FAILURE, {
5156
- correlation_id: _this32.correlationId,
5504
+ correlation_id: _this31.correlationId,
5157
5505
  reason: error === null || error === void 0 ? void 0 : error.message,
5158
5506
  stack: error.stack
5159
5507
  });
5508
+ }).then(function () {
5509
+ _loggerProxy.default.logger.info('Meeting:index#join --> Transcription Socket Connection Success');
5510
+ _triggerProxy.default.trigger(_this31, {
5511
+ file: 'meeting/index',
5512
+ function: 'join'
5513
+ }, _constants.EVENT_TRIGGERS.MEETING_TRANSCRIPTION_CONNECTED, undefined);
5160
5514
  });
5161
5515
  }
5162
5516
  return join;
5163
- }).then(function (join) {
5164
- if (isBrowser) {
5165
- // @ts-ignore - config coming from registerPlugin
5166
- if (_this32.config.receiveTranscription || options.receiveTranscription) {
5167
- if (_this32.isTranscriptionSupported()) {
5168
- _loggerProxy.default.logger.info('Meeting:index#join --> Attempting to enabled to receive transcription!');
5169
- _this32.receiveTranscription().catch(function (error) {
5170
- _loggerProxy.default.logger.error('Meeting:index#join --> Receive Transcription Failed', error);
5171
- _metrics.default.sendBehavioralMetric(_constants2.default.RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE, {
5172
- correlation_id: _this32.correlationId,
5173
- reason: error === null || error === void 0 ? void 0 : error.message,
5174
- stack: error.stack
5175
- });
5176
- });
5177
- }
5178
- }
5179
- } else {
5180
- _loggerProxy.default.logger.error('Meeting:index#join --> Receving transcription is not supported on this platform');
5181
- }
5182
- return join;
5183
5517
  }));
5184
5518
  case 52:
5185
5519
  case "end":
5186
- return _context15.stop();
5520
+ return _context17.stop();
5187
5521
  }
5188
- }, _callee15, this, [[37, 42]]);
5522
+ }, _callee17, this, [[37, 42]]);
5189
5523
  }));
5190
5524
  function join() {
5191
5525
  return _join.apply(this, arguments);
@@ -5198,53 +5532,54 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5198
5532
  * @param {String} datachannelUrl
5199
5533
  * @returns {Promise}
5200
5534
  */
5535
+ )
5201
5536
  }, {
5202
5537
  key: "updateLLMConnection",
5203
- value: function () {
5204
- var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
5205
- var _this33 = this;
5538
+ value: (function () {
5539
+ var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18() {
5540
+ var _this32 = this;
5206
5541
  var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, isJoined;
5207
- return _regenerator.default.wrap(function _callee16$(_context16) {
5208
- while (1) switch (_context16.prev = _context16.next) {
5542
+ return _regenerator.default.wrap(function _callee18$(_context18) {
5543
+ while (1) switch (_context18.prev = _context18.next) {
5209
5544
  case 0:
5210
5545
  // @ts-ignore - Fix type
5211
5546
  _this$locusInfo6 = this.locusInfo, url = _this$locusInfo6.url, _this$locusInfo6$info = _this$locusInfo6.info, _this$locusInfo6$info2 = _this$locusInfo6$info === void 0 ? {} : _this$locusInfo6$info, datachannelUrl = _this$locusInfo6$info2.datachannelUrl;
5212
5547
  isJoined = this.isJoined(); // @ts-ignore - Fix type
5213
5548
  if (!this.webex.internal.llm.isConnected()) {
5214
- _context16.next = 8;
5549
+ _context18.next = 8;
5215
5550
  break;
5216
5551
  }
5217
5552
  if (!(url === this.webex.internal.llm.getLocusUrl() && isJoined)) {
5218
- _context16.next = 5;
5553
+ _context18.next = 5;
5219
5554
  break;
5220
5555
  }
5221
- return _context16.abrupt("return", undefined);
5556
+ return _context18.abrupt("return", undefined);
5222
5557
  case 5:
5223
- _context16.next = 7;
5558
+ _context18.next = 7;
5224
5559
  return this.webex.internal.llm.disconnectLLM();
5225
5560
  case 7:
5226
5561
  // @ts-ignore - Fix type
5227
5562
  this.webex.internal.llm.off('event:relay.event', this.processRelayEvent);
5228
5563
  case 8:
5229
5564
  if (isJoined) {
5230
- _context16.next = 10;
5565
+ _context18.next = 10;
5231
5566
  break;
5232
5567
  }
5233
- return _context16.abrupt("return", undefined);
5568
+ return _context18.abrupt("return", undefined);
5234
5569
  case 10:
5235
- return _context16.abrupt("return", this.webex.internal.llm.registerAndConnect(url, datachannelUrl).then(function (registerAndConnectResult) {
5570
+ return _context18.abrupt("return", this.webex.internal.llm.registerAndConnect(url, datachannelUrl).then(function (registerAndConnectResult) {
5236
5571
  // @ts-ignore - Fix type
5237
- _this33.webex.internal.llm.off('event:relay.event', _this33.processRelayEvent);
5572
+ _this32.webex.internal.llm.off('event:relay.event', _this32.processRelayEvent);
5238
5573
  // @ts-ignore - Fix type
5239
- _this33.webex.internal.llm.on('event:relay.event', _this33.processRelayEvent);
5574
+ _this32.webex.internal.llm.on('event:relay.event', _this32.processRelayEvent);
5240
5575
  _loggerProxy.default.logger.info('Meeting:index#updateLLMConnection --> enabled to receive relay events!');
5241
5576
  return _promise.default.resolve(registerAndConnectResult);
5242
5577
  }));
5243
5578
  case 11:
5244
5579
  case "end":
5245
- return _context16.stop();
5580
+ return _context18.stop();
5246
5581
  }
5247
- }, _callee16, this);
5582
+ }, _callee18, this);
5248
5583
  }));
5249
5584
  function updateLLMConnection() {
5250
5585
  return _updateLLMConnection.apply(this, arguments);
@@ -5258,6 +5593,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5258
5593
  * @public
5259
5594
  * @memberof Meeting
5260
5595
  */
5596
+ )
5261
5597
  }, {
5262
5598
  key: "usePhoneAudio",
5263
5599
  value: function usePhoneAudio(phoneNumber) {
@@ -5289,7 +5625,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5289
5625
  }, {
5290
5626
  key: "dialInPstn",
5291
5627
  value: function dialInPstn() {
5292
- var _this34 = this;
5628
+ var _this33 = this;
5293
5629
  if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
5294
5630
 
5295
5631
  var correlationId = this.correlationId,
@@ -5305,10 +5641,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5305
5641
  }).catch(function (error) {
5306
5642
  var _error$error2;
5307
5643
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
5308
- correlation_id: _this34.correlationId,
5309
- dial_in_url: _this34.dialInUrl,
5644
+ correlation_id: _this33.correlationId,
5645
+ dial_in_url: _this33.dialInUrl,
5310
5646
  locus_id: locusUrl.split('/').pop(),
5311
- client_url: _this34.deviceUrl,
5647
+ client_url: _this33.deviceUrl,
5312
5648
  reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
5313
5649
  stack: error.stack
5314
5650
  });
@@ -5326,7 +5662,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5326
5662
  }, {
5327
5663
  key: "dialOutPstn",
5328
5664
  value: function dialOutPstn(phoneNumber) {
5329
- var _this35 = this;
5665
+ var _this34 = this;
5330
5666
  if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
5331
5667
 
5332
5668
  var correlationId = this.correlationId,
@@ -5343,10 +5679,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5343
5679
  }).catch(function (error) {
5344
5680
  var _error$error3;
5345
5681
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
5346
- correlation_id: _this35.correlationId,
5347
- dial_out_url: _this35.dialOutUrl,
5682
+ correlation_id: _this34.correlationId,
5683
+ dial_out_url: _this34.dialOutUrl,
5348
5684
  locus_id: locusUrl.split('/').pop(),
5349
- client_url: _this35.deviceUrl,
5685
+ client_url: _this34.deviceUrl,
5350
5686
  reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
5351
5687
  stack: error.stack
5352
5688
  });
@@ -5364,7 +5700,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5364
5700
  }, {
5365
5701
  key: "disconnectPhoneAudio",
5366
5702
  value: function disconnectPhoneAudio() {
5367
- return _promise.default.all([this.isPhoneProvisioned(this.dialInDeviceStatus) ? _util.default.disconnectPhoneAudio(this, this.dialInUrl) : _promise.default.resolve(), this.isPhoneProvisioned(this.dialOutDeviceStatus) ? _util.default.disconnectPhoneAudio(this, this.dialOutUrl) : _promise.default.resolve()]);
5703
+ return _promise.default.all([this.isPhoneProvisioned(this.dialInDeviceStatus) ? _util2.default.disconnectPhoneAudio(this, this.dialInUrl) : _promise.default.resolve(), this.isPhoneProvisioned(this.dialOutDeviceStatus) ? _util2.default.disconnectPhoneAudio(this, this.dialOutUrl) : _promise.default.resolve()]);
5368
5704
  }
5369
5705
 
5370
5706
  /**
@@ -5377,7 +5713,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5377
5713
  }, {
5378
5714
  key: "moveTo",
5379
5715
  value: function moveTo(resourceId) {
5380
- var _this36 = this;
5716
+ var _this35 = this;
5381
5717
  if (!resourceId) {
5382
5718
  throw new _parameter.default('Cannot move call without a resourceId.');
5383
5719
  }
@@ -5415,18 +5751,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5415
5751
  meetingId: this.id
5416
5752
  }
5417
5753
  });
5418
- this.locusInfo.once(_constants.LOCUSINFO.EVENTS.SELF_OBSERVING, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17() {
5754
+ this.locusInfo.once(_constants.LOCUSINFO.EVENTS.SELF_OBSERVING, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
5419
5755
  var mediaSettings;
5420
- return _regenerator.default.wrap(function _callee17$(_context17) {
5421
- while (1) switch (_context17.prev = _context17.next) {
5756
+ return _regenerator.default.wrap(function _callee19$(_context19) {
5757
+ while (1) switch (_context19.prev = _context19.next) {
5422
5758
  case 0:
5423
- _context17.prev = 0;
5424
- if (!(_this36.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
5425
- _context17.next = 4;
5759
+ _context19.prev = 0;
5760
+ if (!(_this35.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
5761
+ _context19.next = 4;
5426
5762
  break;
5427
5763
  }
5428
- _context17.next = 4;
5429
- return _this36.releaseScreenShareFloor();
5764
+ _context19.next = 4;
5765
+ return _this35.releaseScreenShareFloor();
5430
5766
  case 4:
5431
5767
  mediaSettings = {
5432
5768
  mediaDirection: {
@@ -5438,47 +5774,47 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5438
5774
  receiveShare: true
5439
5775
  }
5440
5776
  };
5441
- _this36.cleanupLocalStreams();
5442
- _this36.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
5443
- _this36.mediaProperties.unsetRemoteMedia();
5777
+ _this35.cleanupLocalStreams();
5778
+ _this35.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
5779
+ _this35.mediaProperties.unsetRemoteMedia();
5444
5780
 
5445
5781
  // when a move to is intiated by the client , Locus delets the existing media node from the server as soon the DX answers the meeting
5446
5782
  // once the DX answers we establish connection back the media server with only receiveShare enabled
5447
5783
  // @ts-ignore - reconnectMedia does not accept any argument
5448
- _context17.next = 10;
5449
- return _this36.reconnectionManager.reconnectMedia(mediaSettings).then(function () {
5784
+ _context19.next = 10;
5785
+ return _this35.reconnectionManager.reconnectMedia(mediaSettings).then(function () {
5450
5786
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
5451
5787
  });
5452
5788
  case 10:
5453
- _context17.next = 16;
5789
+ _context19.next = 16;
5454
5790
  break;
5455
5791
  case 12:
5456
- _context17.prev = 12;
5457
- _context17.t0 = _context17["catch"](0);
5458
- _loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context17.t0);
5792
+ _context19.prev = 12;
5793
+ _context19.t0 = _context19["catch"](0);
5794
+ _loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context19.t0);
5459
5795
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
5460
- correlation_id: _this36.correlationId,
5461
- locus_id: _this36.locusUrl.split('/').pop(),
5462
- reason: _context17.t0.message,
5463
- stack: _context17.t0.stack
5796
+ correlation_id: _this35.correlationId,
5797
+ locus_id: _this35.locusUrl.split('/').pop(),
5798
+ reason: _context19.t0.message,
5799
+ stack: _context19.t0.stack
5464
5800
  });
5465
5801
  case 16:
5466
5802
  case "end":
5467
- return _context17.stop();
5803
+ return _context19.stop();
5468
5804
  }
5469
- }, _callee17, null, [[0, 12]]);
5805
+ }, _callee19, null, [[0, 12]]);
5470
5806
  })));
5471
5807
  _loggerProxy.default.logger.info('Meeting:index#moveTo --> Initated moved to using resourceId', resourceId);
5472
- return _util.default.joinMeetingOptions(this, {
5808
+ return _util2.default.joinMeetingOptions(this, {
5473
5809
  resourceId: resourceId,
5474
5810
  moveToResource: true
5475
5811
  }).then(function () {
5476
- _this36.meetingFiniteStateMachine.join();
5812
+ _this35.meetingFiniteStateMachine.join();
5477
5813
  }).catch(function (error) {
5478
- _this36.meetingFiniteStateMachine.fail(error);
5814
+ _this35.meetingFiniteStateMachine.fail(error);
5479
5815
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
5480
- correlation_id: _this36.correlationId,
5481
- locus_id: _this36.locusUrl.split('/').pop(),
5816
+ correlation_id: _this35.correlationId,
5817
+ locus_id: _this35.locusUrl.split('/').pop(),
5482
5818
  reason: error.message,
5483
5819
  stack: error.stack
5484
5820
  });
@@ -5497,7 +5833,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5497
5833
  }, {
5498
5834
  key: "moveFrom",
5499
5835
  value: function moveFrom(resourceId) {
5500
- var _this37 = this;
5836
+ var _this36 = this;
5501
5837
  // On moveFrom ask the developer to re capture it moveFrom then updateMedia
5502
5838
  if (!resourceId) {
5503
5839
  throw new _parameter.default('Cannot move call without a resourceId.');
@@ -5511,20 +5847,20 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5511
5847
  meetingId: this.id
5512
5848
  }
5513
5849
  });
5514
- return _util.default.joinMeetingOptions(this).then(function () {
5515
- return _util.default.leaveMeeting(_this37, {
5850
+ return _util2.default.joinMeetingOptions(this).then(function () {
5851
+ return _util2.default.leaveMeeting(_this36, {
5516
5852
  resourceId: resourceId,
5517
5853
  correlationId: oldCorrelationId,
5518
5854
  moveMeeting: true
5519
5855
  }).then(function () {
5520
- _this37.resourceId = '';
5856
+ _this36.resourceId = '';
5521
5857
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
5522
5858
  });
5523
5859
  }).catch(function (error) {
5524
- _this37.meetingFiniteStateMachine.fail(error);
5860
+ _this36.meetingFiniteStateMachine.fail(error);
5525
5861
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
5526
- correlation_id: _this37.correlationId,
5527
- locus_id: _this37.locusUrl.split('/').pop(),
5862
+ correlation_id: _this36.correlationId,
5863
+ locus_id: _this36.locusUrl.split('/').pop(),
5528
5864
  reason: error.message,
5529
5865
  stack: error.stack
5530
5866
  });
@@ -5532,13 +5868,6 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5532
5868
  return _promise.default.reject(error);
5533
5869
  });
5534
5870
  }
5535
-
5536
- /**
5537
- * Handles ROAP_FAILURE event from the webrtc media connection
5538
- *
5539
- * @param {Error} error
5540
- * @returns {void}
5541
- */
5542
5871
  }, {
5543
5872
  key: "getMediaConnectionDebugId",
5544
5873
  value: function getMediaConnectionDebugId() {
@@ -5555,11 +5884,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5555
5884
  */
5556
5885
  }, {
5557
5886
  key: "createMediaConnection",
5558
- value: function () {
5559
- var _createMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18(turnServerInfo, bundlePolicy) {
5887
+ value: (function () {
5888
+ var _createMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20(turnServerInfo, bundlePolicy) {
5560
5889
  var mc, audioEnabled, videoEnabled, shareEnabled;
5561
- return _regenerator.default.wrap(function _callee18$(_context18) {
5562
- while (1) switch (_context18.prev = _context18.next) {
5890
+ return _regenerator.default.wrap(function _callee20$(_context20) {
5891
+ while (1) switch (_context20.prev = _context20.next) {
5563
5892
  case 0:
5564
5893
  mc = _media.default.createMediaConnection(this.isMultistream, this.getMediaConnectionDebugId(),
5565
5894
  // @ts-ignore
@@ -5585,42 +5914,42 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5585
5914
 
5586
5915
  // publish the streams
5587
5916
  if (!this.mediaProperties.audioStream) {
5588
- _context18.next = 8;
5917
+ _context20.next = 8;
5589
5918
  break;
5590
5919
  }
5591
5920
  this.setSendNamedMediaGroup(_internalMediaCore.MediaType.AudioMain);
5592
- _context18.next = 8;
5921
+ _context20.next = 8;
5593
5922
  return this.publishStream(_internalMediaCore.MediaType.AudioMain, this.mediaProperties.audioStream);
5594
5923
  case 8:
5595
5924
  if (!this.mediaProperties.videoStream) {
5596
- _context18.next = 11;
5925
+ _context20.next = 11;
5597
5926
  break;
5598
5927
  }
5599
- _context18.next = 11;
5928
+ _context20.next = 11;
5600
5929
  return this.publishStream(_internalMediaCore.MediaType.VideoMain, this.mediaProperties.videoStream);
5601
5930
  case 11:
5602
5931
  if (!this.mediaProperties.shareVideoStream) {
5603
- _context18.next = 14;
5932
+ _context20.next = 14;
5604
5933
  break;
5605
5934
  }
5606
- _context18.next = 14;
5935
+ _context20.next = 14;
5607
5936
  return this.publishStream(_internalMediaCore.MediaType.VideoSlides, this.mediaProperties.shareVideoStream);
5608
5937
  case 14:
5609
5938
  if (!(this.isMultistream && this.mediaProperties.shareAudioStream)) {
5610
- _context18.next = 17;
5939
+ _context20.next = 17;
5611
5940
  break;
5612
5941
  }
5613
- _context18.next = 17;
5942
+ _context20.next = 17;
5614
5943
  return this.publishStream(_internalMediaCore.MediaType.AudioSlides, this.mediaProperties.shareAudioStream);
5615
5944
  case 17:
5616
- return _context18.abrupt("return", mc);
5945
+ return _context20.abrupt("return", mc);
5617
5946
  case 18:
5618
5947
  case "end":
5619
- return _context18.stop();
5948
+ return _context20.stop();
5620
5949
  }
5621
- }, _callee18, this);
5950
+ }, _callee20, this);
5622
5951
  }));
5623
- function createMediaConnection(_x14, _x15) {
5952
+ function createMediaConnection(_x16, _x17) {
5624
5953
  return _createMediaConnection.apply(this, arguments);
5625
5954
  }
5626
5955
  return createMediaConnection;
@@ -5634,12 +5963,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5634
5963
  * @param {string} meetingEventType event type to be used in the event emitted from the meeting object
5635
5964
  * @returns {void}
5636
5965
  */
5966
+ )
5637
5967
  }, {
5638
5968
  key: "forwardEvent",
5639
5969
  value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
5640
- var _this38 = this;
5970
+ var _this37 = this;
5641
5971
  eventEmitter.on(eventTypeToForward, function (data) {
5642
- return _triggerProxy.default.trigger(_this38, {
5972
+ return _triggerProxy.default.trigger(_this37, {
5643
5973
  file: 'meetings',
5644
5974
  function: 'addMedia'
5645
5975
  }, meetingEventType, data);
@@ -5656,44 +5986,44 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5656
5986
  */
5657
5987
  }, {
5658
5988
  key: "setUpLocalStreamReferences",
5659
- value: function () {
5660
- var _setUpLocalStreamReferences = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19(localStreams) {
5661
- var _localStreams$screenS, _localStreams$screenS2;
5989
+ value: (function () {
5990
+ var _setUpLocalStreamReferences = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21(localStreams) {
5991
+ var _localStreams$microph, _localStreams$camera, _localStreams$screenS, _localStreams$screenS2, _localStreams$screenS3, _localStreams$screenS4, _localStreams$screenS5, _localStreams$screenS6;
5662
5992
  var setUpStreamPromises;
5663
- return _regenerator.default.wrap(function _callee19$(_context19) {
5664
- while (1) switch (_context19.prev = _context19.next) {
5993
+ return _regenerator.default.wrap(function _callee21$(_context21) {
5994
+ while (1) switch (_context21.prev = _context21.next) {
5665
5995
  case 0:
5666
5996
  setUpStreamPromises = [];
5667
- if (localStreams !== null && localStreams !== void 0 && localStreams.microphone) {
5997
+ if (localStreams !== null && localStreams !== void 0 && localStreams.microphone && (localStreams === null || localStreams === void 0 ? void 0 : (_localStreams$microph = localStreams.microphone) === null || _localStreams$microph === void 0 ? void 0 : _localStreams$microph.readyState) !== 'ended') {
5668
5998
  setUpStreamPromises.push(this.setLocalAudioStream(localStreams.microphone));
5669
5999
  }
5670
- if (localStreams !== null && localStreams !== void 0 && localStreams.camera) {
6000
+ if (localStreams !== null && localStreams !== void 0 && localStreams.camera && (localStreams === null || localStreams === void 0 ? void 0 : (_localStreams$camera = localStreams.camera) === null || _localStreams$camera === void 0 ? void 0 : _localStreams$camera.readyState) !== 'ended') {
5671
6001
  setUpStreamPromises.push(this.setLocalVideoStream(localStreams.camera));
5672
6002
  }
5673
- if (localStreams !== null && localStreams !== void 0 && (_localStreams$screenS = localStreams.screenShare) !== null && _localStreams$screenS !== void 0 && _localStreams$screenS.video) {
6003
+ if (localStreams !== null && localStreams !== void 0 && (_localStreams$screenS = localStreams.screenShare) !== null && _localStreams$screenS !== void 0 && _localStreams$screenS.video && (localStreams === null || localStreams === void 0 ? void 0 : (_localStreams$screenS2 = localStreams.screenShare) === null || _localStreams$screenS2 === void 0 ? void 0 : (_localStreams$screenS3 = _localStreams$screenS2.video) === null || _localStreams$screenS3 === void 0 ? void 0 : _localStreams$screenS3.readyState) !== 'ended') {
5674
6004
  setUpStreamPromises.push(this.setLocalShareVideoStream(localStreams.screenShare.video));
5675
6005
  }
5676
- if (localStreams !== null && localStreams !== void 0 && (_localStreams$screenS2 = localStreams.screenShare) !== null && _localStreams$screenS2 !== void 0 && _localStreams$screenS2.audio) {
6006
+ if (localStreams !== null && localStreams !== void 0 && (_localStreams$screenS4 = localStreams.screenShare) !== null && _localStreams$screenS4 !== void 0 && _localStreams$screenS4.audio && (localStreams === null || localStreams === void 0 ? void 0 : (_localStreams$screenS5 = localStreams.screenShare) === null || _localStreams$screenS5 === void 0 ? void 0 : (_localStreams$screenS6 = _localStreams$screenS5.audio) === null || _localStreams$screenS6 === void 0 ? void 0 : _localStreams$screenS6.readyState) !== 'ended') {
5677
6007
  setUpStreamPromises.push(this.setLocalShareAudioStream(localStreams.screenShare.audio));
5678
6008
  }
5679
- _context19.prev = 5;
5680
- _context19.next = 8;
6009
+ _context21.prev = 5;
6010
+ _context21.next = 8;
5681
6011
  return _promise.default.all(setUpStreamPromises);
5682
6012
  case 8:
5683
- _context19.next = 14;
6013
+ _context21.next = 14;
5684
6014
  break;
5685
6015
  case 10:
5686
- _context19.prev = 10;
5687
- _context19.t0 = _context19["catch"](5);
5688
- _loggerProxy.default.logger.error("Meeting:index#addMedia():setUpLocalStreamReferences --> Error , ", _context19.t0);
5689
- throw _context19.t0;
6016
+ _context21.prev = 10;
6017
+ _context21.t0 = _context21["catch"](5);
6018
+ _loggerProxy.default.logger.error("Meeting:index#addMedia():setUpLocalStreamReferences --> Error , ", _context21.t0);
6019
+ throw _context21.t0;
5690
6020
  case 14:
5691
6021
  case "end":
5692
- return _context19.stop();
6022
+ return _context21.stop();
5693
6023
  }
5694
- }, _callee19, this, [[5, 10]]);
6024
+ }, _callee21, this, [[5, 10]]);
5695
6025
  }));
5696
- function setUpLocalStreamReferences(_x16) {
6026
+ function setUpLocalStreamReferences(_x18) {
5697
6027
  return _setUpLocalStreamReferences.apply(this, arguments);
5698
6028
  }
5699
6029
  return setUpLocalStreamReferences;
@@ -5704,23 +6034,24 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5704
6034
  * @private
5705
6035
  * @returns {Promise<void>}
5706
6036
  */
6037
+ )
5707
6038
  }, {
5708
6039
  key: "waitForMediaConnectionConnected",
5709
- value: function () {
5710
- var _waitForMediaConnectionConnected = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20() {
6040
+ value: (function () {
6041
+ var _waitForMediaConnectionConnected = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee22() {
5711
6042
  var _this$mediaProperties6, _this$mediaProperties7, _this$mediaProperties8, _this$mediaProperties9, _this$mediaProperties10, _this$mediaProperties11, _this$mediaProperties12, _this$mediaProperties13, _this$mediaProperties14, _this$mediaProperties15, _this$mediaProperties16, _this$mediaProperties17, _this$mediaProperties18, _this$mediaProperties19;
5712
- return _regenerator.default.wrap(function _callee20$(_context20) {
5713
- while (1) switch (_context20.prev = _context20.next) {
6043
+ return _regenerator.default.wrap(function _callee22$(_context22) {
6044
+ while (1) switch (_context22.prev = _context22.next) {
5714
6045
  case 0:
5715
- _context20.prev = 0;
5716
- _context20.next = 3;
6046
+ _context22.prev = 0;
6047
+ _context22.next = 3;
5717
6048
  return this.mediaProperties.waitForMediaConnectionConnected();
5718
6049
  case 3:
5719
- _context20.next = 9;
6050
+ _context22.next = 9;
5720
6051
  break;
5721
6052
  case 5:
5722
- _context20.prev = 5;
5723
- _context20.t0 = _context20["catch"](0);
6053
+ _context22.prev = 5;
6054
+ _context22.t0 = _context22["catch"](0);
5724
6055
  if (!this.hasMediaConnectionConnectedAtLeastOnce) {
5725
6056
  // Only send CA event for join flow if we haven't successfully connected media yet
5726
6057
  // @ts-ignore
@@ -5748,9 +6079,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5748
6079
  throw new Error("Timed out waiting for media connection to be connected, correlationId=".concat(this.correlationId));
5749
6080
  case 9:
5750
6081
  case "end":
5751
- return _context20.stop();
6082
+ return _context22.stop();
5752
6083
  }
5753
- }, _callee20, this, [[0, 5]]);
6084
+ }, _callee22, this, [[0, 5]]);
5754
6085
  }));
5755
6086
  function waitForMediaConnectionConnected() {
5756
6087
  return _waitForMediaConnectionConnected.apply(this, arguments);
@@ -5763,10 +6094,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5763
6094
  * @private
5764
6095
  * @returns {void}
5765
6096
  */
6097
+ )
5766
6098
  }, {
5767
6099
  key: "createStatsAnalyzer",
5768
6100
  value: function createStatsAnalyzer() {
5769
- var _this39 = this;
6101
+ var _this38 = this;
5770
6102
  // @ts-ignore - config coming from registerPlugin
5771
6103
  if (this.config.stats.enableStatsAnalyzer) {
5772
6104
  // @ts-ignore - config coming from registerPlugin
@@ -5774,7 +6106,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5774
6106
  this.statsAnalyzer = new _statsAnalyzer.StatsAnalyzer(
5775
6107
  // @ts-ignore - config coming from registerPlugin
5776
6108
  this.config.stats, function (ssrc) {
5777
- return _this39.receiveSlotManager.findReceiveSlotBySsrc(ssrc);
6109
+ return _this38.receiveSlotManager.findReceiveSlotBySsrc(ssrc);
5778
6110
  }, this.networkQualityMonitor);
5779
6111
  this.setupStatsAnalyzerEventHandlers();
5780
6112
  this.networkQualityMonitor.on(_constants.EVENT_TRIGGERS.NETWORK_QUALITY, this.sendNetworkQualityEvent.bind(this));
@@ -5790,7 +6122,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5790
6122
  */
5791
6123
  }, {
5792
6124
  key: "waitForRemoteSDPAnswer",
5793
- value:
6125
+ value: (
5794
6126
  /**
5795
6127
  * Returns a promise. This promise is created once the local sdp offer has been successfully created and is resolved
5796
6128
  * once the remote sdp answer has been received.
@@ -5799,18 +6131,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5799
6131
  * @returns {Promise<void>}
5800
6132
  */
5801
6133
  function () {
5802
- var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21() {
6134
+ var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee23() {
5803
6135
  var LOG_HEADER, deferSDPAnswer;
5804
- return _regenerator.default.wrap(function _callee21$(_context21) {
5805
- while (1) switch (_context21.prev = _context21.next) {
6136
+ return _regenerator.default.wrap(function _callee23$(_context23) {
6137
+ while (1) switch (_context23.prev = _context23.next) {
5806
6138
  case 0:
5807
6139
  LOG_HEADER = 'Meeting:index#addMedia():waitForRemoteSDPAnswer -->';
5808
6140
  if (this.deferSDPAnswer) {
5809
- _context21.next = 4;
6141
+ _context23.next = 4;
5810
6142
  break;
5811
6143
  }
5812
6144
  _loggerProxy.default.logger.warn("".concat(LOG_HEADER, " offer not created yet"));
5813
- return _context21.abrupt("return", _promise.default.reject(new Error('waitForRemoteSDPAnswer() called before local sdp offer created')));
6145
+ return _context23.abrupt("return", _promise.default.reject(new Error('waitForRemoteSDPAnswer() called before local sdp offer created')));
5814
6146
  case 4:
5815
6147
  deferSDPAnswer = this.deferSDPAnswer;
5816
6148
  this.sdpResponseTimer = setTimeout(function () {
@@ -5818,12 +6150,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5818
6150
  deferSDPAnswer.reject(new Error('Timed out waiting for REMOTE SDP ANSWER'));
5819
6151
  }, _constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT);
5820
6152
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " waiting for REMOTE SDP ANSWER..."));
5821
- return _context21.abrupt("return", deferSDPAnswer.promise);
6153
+ return _context23.abrupt("return", deferSDPAnswer.promise);
5822
6154
  case 8:
5823
6155
  case "end":
5824
- return _context21.stop();
6156
+ return _context23.stop();
5825
6157
  }
5826
- }, _callee21, this);
6158
+ }, _callee23, this);
5827
6159
  }));
5828
6160
  function waitForRemoteSDPAnswer() {
5829
6161
  return _waitForRemoteSDPAnswer.apply(this, arguments);
@@ -5838,33 +6170,34 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5838
6170
  * @param {BundlePolicy} [bundlePolicy]
5839
6171
  * @returns {Promise<void>}
5840
6172
  */
6173
+ )
5841
6174
  }, {
5842
6175
  key: "retryEstablishMediaConnectionWithForcedTurnDiscovery",
5843
- value: function () {
5844
- var _retryEstablishMediaConnectionWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee22(remoteMediaManagerConfig, bundlePolicy) {
6176
+ value: (function () {
6177
+ var _retryEstablishMediaConnectionWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24(remoteMediaManagerConfig, bundlePolicy) {
5845
6178
  var LOG_HEADER;
5846
- return _regenerator.default.wrap(function _callee22$(_context22) {
5847
- while (1) switch (_context22.prev = _context22.next) {
6179
+ return _regenerator.default.wrap(function _callee24$(_context24) {
6180
+ while (1) switch (_context24.prev = _context24.next) {
5848
6181
  case 0:
5849
6182
  LOG_HEADER = 'Meeting:index#addMedia():retryEstablishMediaConnectionWithForcedTurnDiscovery -->';
5850
- _context22.prev = 1;
5851
- _context22.next = 4;
6183
+ _context24.prev = 1;
6184
+ _context24.next = 4;
5852
6185
  return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, true);
5853
6186
  case 4:
5854
- _context22.next = 10;
6187
+ _context24.next = 10;
5855
6188
  break;
5856
6189
  case 6:
5857
- _context22.prev = 6;
5858
- _context22.t0 = _context22["catch"](1);
5859
- _loggerProxy.default.logger.error("".concat(LOG_HEADER, " retry with TURN-TLS failed, media connection unable to connect, "), _context22.t0);
5860
- throw _context22.t0;
6190
+ _context24.prev = 6;
6191
+ _context24.t0 = _context24["catch"](1);
6192
+ _loggerProxy.default.logger.error("".concat(LOG_HEADER, " retry with TURN-TLS failed, media connection unable to connect, "), _context24.t0);
6193
+ throw _context24.t0;
5861
6194
  case 10:
5862
6195
  case "end":
5863
- return _context22.stop();
6196
+ return _context24.stop();
5864
6197
  }
5865
- }, _callee22, this, [[1, 6]]);
6198
+ }, _callee24, this, [[1, 6]]);
5866
6199
  }));
5867
- function retryEstablishMediaConnectionWithForcedTurnDiscovery(_x17, _x18) {
6200
+ function retryEstablishMediaConnectionWithForcedTurnDiscovery(_x19, _x20) {
5868
6201
  return _retryEstablishMediaConnectionWithForcedTurnDiscovery.apply(this, arguments);
5869
6202
  }
5870
6203
  return retryEstablishMediaConnectionWithForcedTurnDiscovery;
@@ -5878,17 +6211,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5878
6211
  * @param {BundlePolicy} [bundlePolicy]
5879
6212
  * @returns {Promise<void>}
5880
6213
  */
6214
+ )
5881
6215
  }, {
5882
6216
  key: "retryWithForcedTurnDiscovery",
5883
- value: function () {
5884
- var _retryWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee23(remoteMediaManagerConfig, bundlePolicy) {
6217
+ value: (function () {
6218
+ var _retryWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25(remoteMediaManagerConfig, bundlePolicy) {
5885
6219
  var LOG_HEADER;
5886
- return _regenerator.default.wrap(function _callee23$(_context23) {
5887
- while (1) switch (_context23.prev = _context23.next) {
6220
+ return _regenerator.default.wrap(function _callee25$(_context25) {
6221
+ while (1) switch (_context25.prev = _context25.next) {
5888
6222
  case 0:
5889
6223
  this.retriedWithTurnServer = true;
5890
6224
  LOG_HEADER = 'Meeting:index#addMedia():retryWithForcedTurnDiscovery -->';
5891
- _context23.next = 4;
6225
+ _context25.next = 4;
5892
6226
  return this.cleanUpBeforeRetryWithTurnServer();
5893
6227
  case 4:
5894
6228
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_RETRY, {
@@ -5898,24 +6232,24 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5898
6232
  reason: 'forcingTurnTls'
5899
6233
  });
5900
6234
  if (!(this.state === _constants.MEETING_STATE.STATES.LEFT)) {
5901
- _context23.next = 9;
6235
+ _context25.next = 9;
5902
6236
  break;
5903
6237
  }
5904
6238
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " meeting state was LEFT after first attempt to establish media connection. Attempting to rejoin. "));
5905
- _context23.next = 9;
6239
+ _context25.next = 9;
5906
6240
  return this.join({
5907
6241
  rejoin: true
5908
6242
  });
5909
6243
  case 9:
5910
- _context23.next = 11;
6244
+ _context25.next = 11;
5911
6245
  return this.retryEstablishMediaConnectionWithForcedTurnDiscovery(remoteMediaManagerConfig, bundlePolicy);
5912
6246
  case 11:
5913
6247
  case "end":
5914
- return _context23.stop();
6248
+ return _context25.stop();
5915
6249
  }
5916
- }, _callee23, this);
6250
+ }, _callee25, this);
5917
6251
  }));
5918
- function retryWithForcedTurnDiscovery(_x19, _x20) {
6252
+ function retryWithForcedTurnDiscovery(_x21, _x22) {
5919
6253
  return _retryWithForcedTurnDiscovery.apply(this, arguments);
5920
6254
  }
5921
6255
  return retryWithForcedTurnDiscovery;
@@ -5931,77 +6265,73 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5931
6265
  * @param {BundlePolicy} [bundlePolicy]
5932
6266
  * @returns {Promise<void>}
5933
6267
  */
6268
+ )
5934
6269
  }, {
5935
6270
  key: "handleWaitForMediaConnectionConnectedError",
5936
- value: function () {
5937
- var _handleWaitForMediaConnectionConnectedError = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24(error, remoteMediaManagerConfig, bundlePolicy) {
6271
+ value: (function () {
6272
+ var _handleWaitForMediaConnectionConnectedError = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee26(error, remoteMediaManagerConfig, bundlePolicy) {
5938
6273
  var LOG_HEADER;
5939
- return _regenerator.default.wrap(function _callee24$(_context24) {
5940
- while (1) switch (_context24.prev = _context24.next) {
6274
+ return _regenerator.default.wrap(function _callee26$(_context26) {
6275
+ while (1) switch (_context26.prev = _context26.next) {
5941
6276
  case 0:
5942
6277
  LOG_HEADER = 'Meeting:index#addMedia():handleWaitForMediaConnectionConnectedError -->'; // @ts-ignore - config coming from registerPlugin
5943
6278
  if (this.turnServerUsed) {
5944
- _context24.next = 7;
6279
+ _context26.next = 7;
5945
6280
  break;
5946
6281
  }
5947
6282
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " error waiting for media to connect on UDP, TCP, retrying using TURN-TLS, "), error);
5948
- _context24.next = 5;
6283
+ _context26.next = 5;
5949
6284
  return this.retryWithForcedTurnDiscovery(remoteMediaManagerConfig, bundlePolicy);
5950
6285
  case 5:
5951
- _context24.next = 9;
6286
+ _context26.next = 9;
5952
6287
  break;
5953
6288
  case 7:
5954
6289
  _loggerProxy.default.logger.error("".concat(LOG_HEADER, " error waiting for media to connect using UDP, TCP and TURN-TLS"), error);
5955
6290
  throw new _webexErrors.AddMediaFailed();
5956
6291
  case 9:
5957
6292
  case "end":
5958
- return _context24.stop();
6293
+ return _context26.stop();
5959
6294
  }
5960
- }, _callee24, this);
6295
+ }, _callee26, this);
5961
6296
  }));
5962
- function handleWaitForMediaConnectionConnectedError(_x21, _x22, _x23) {
6297
+ function handleWaitForMediaConnectionConnectedError(_x23, _x24, _x25) {
5963
6298
  return _handleWaitForMediaConnectionConnectedError.apply(this, arguments);
5964
6299
  }
5965
6300
  return handleWaitForMediaConnectionConnectedError;
5966
6301
  }()
5967
6302
  /**
5968
- * Does TURN discovery, SDP offer/answer exhange, establishes ICE connection and DTLS handshake.
6303
+ * Performs TURN discovery as a separate call to the Locus /media API
5969
6304
  *
5970
- * @private
5971
- * @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
5972
- * @param {BundlePolicy} [bundlePolicy]
5973
- * @param {boolean} [isForced] - let isForced be true to do turn discovery regardless of reachability results
5974
- * @returns {Promise<void>}
6305
+ * @param {boolean} isRetry
6306
+ * @param {boolean} isForced
6307
+ * @returns {Promise}
5975
6308
  */
6309
+ )
5976
6310
  }, {
5977
- key: "establishMediaConnection",
5978
- value: function () {
5979
- var _establishMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25(remoteMediaManagerConfig, bundlePolicy, isForced) {
5980
- var LOG_HEADER, cdl, isRetry, turnDiscoveryObject, turnServerInfo, mc;
5981
- return _regenerator.default.wrap(function _callee25$(_context25) {
5982
- while (1) switch (_context25.prev = _context25.next) {
6311
+ key: "doTurnDiscovery",
6312
+ value: (function () {
6313
+ var _doTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee27(isRetry, isForced) {
6314
+ var cdl, turnDiscoveryResult;
6315
+ return _regenerator.default.wrap(function _callee27$(_context27) {
6316
+ while (1) switch (_context27.prev = _context27.next) {
5983
6317
  case 0:
5984
- LOG_HEADER = 'Meeting:index#addMedia():establishMediaConnection -->'; // @ts-ignore
5985
- cdl = this.webex.internal.newMetrics.callDiagnosticLatencies;
5986
- isRetry = this.retriedWithTurnServer;
5987
- _context25.prev = 3;
5988
6318
  // @ts-ignore
6319
+ cdl = this.webex.internal.newMetrics.callDiagnosticLatencies; // @ts-ignore
5989
6320
  this.webex.internal.newMetrics.submitInternalEvent({
5990
6321
  name: 'internal.client.add-media.turn-discovery.start'
5991
6322
  });
5992
- _context25.next = 7;
6323
+ _context27.next = 4;
5993
6324
  return this.roap.doTurnDiscovery(this, isRetry, isForced);
5994
- case 7:
5995
- turnDiscoveryObject = _context25.sent;
5996
- this.turnDiscoverySkippedReason = turnDiscoveryObject === null || turnDiscoveryObject === void 0 ? void 0 : turnDiscoveryObject.turnDiscoverySkippedReason;
6325
+ case 4:
6326
+ turnDiscoveryResult = _context27.sent;
6327
+ this.turnDiscoverySkippedReason = turnDiscoveryResult === null || turnDiscoveryResult === void 0 ? void 0 : turnDiscoveryResult.turnDiscoverySkippedReason;
5997
6328
  this.turnServerUsed = !this.turnDiscoverySkippedReason;
5998
6329
 
5999
6330
  // @ts-ignore
6000
6331
  this.webex.internal.newMetrics.submitInternalEvent({
6001
6332
  name: 'internal.client.add-media.turn-discovery.end'
6002
6333
  });
6003
- turnServerInfo = turnDiscoveryObject.turnServerInfo;
6004
- if (this.turnServerUsed && turnServerInfo) {
6334
+ if (this.turnServerUsed && turnDiscoveryResult.turnServerInfo) {
6005
6335
  _metrics.default.sendBehavioralMetric(_constants2.default.TURN_DISCOVERY_LATENCY, {
6006
6336
  correlation_id: this.correlationId,
6007
6337
  latency: cdl.getTurnDiscoveryTime(),
@@ -6009,13 +6339,57 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6009
6339
  retriedWithTurnServer: this.retriedWithTurnServer
6010
6340
  });
6011
6341
  }
6012
- _context25.next = 15;
6342
+ return _context27.abrupt("return", turnDiscoveryResult);
6343
+ case 10:
6344
+ case "end":
6345
+ return _context27.stop();
6346
+ }
6347
+ }, _callee27, this);
6348
+ }));
6349
+ function doTurnDiscovery(_x26, _x27) {
6350
+ return _doTurnDiscovery.apply(this, arguments);
6351
+ }
6352
+ return doTurnDiscovery;
6353
+ }()
6354
+ /**
6355
+ * Does TURN discovery, SDP offer/answer exhange, establishes ICE connection and DTLS handshake.
6356
+ *
6357
+ * @private
6358
+ * @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
6359
+ * @param {BundlePolicy} [bundlePolicy]
6360
+ * @param {boolean} [isForced] - let isForced be true to do turn discovery regardless of reachability results
6361
+ * @param {TurnServerInfo} [turnServerInfo]
6362
+ * @returns {Promise<void>}
6363
+ */
6364
+ )
6365
+ }, {
6366
+ key: "establishMediaConnection",
6367
+ value: (function () {
6368
+ var _establishMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee28(remoteMediaManagerConfig, bundlePolicy, isForced, turnServerInfo) {
6369
+ var LOG_HEADER, isRetry, _yield$this$doTurnDis, mc;
6370
+ return _regenerator.default.wrap(function _callee28$(_context28) {
6371
+ while (1) switch (_context28.prev = _context28.next) {
6372
+ case 0:
6373
+ LOG_HEADER = 'Meeting:index#addMedia():establishMediaConnection -->';
6374
+ isRetry = this.retriedWithTurnServer;
6375
+ _context28.prev = 2;
6376
+ if (turnServerInfo) {
6377
+ _context28.next = 8;
6378
+ break;
6379
+ }
6380
+ _context28.next = 6;
6381
+ return this.doTurnDiscovery(isRetry, isForced);
6382
+ case 6:
6383
+ _yield$this$doTurnDis = _context28.sent;
6384
+ turnServerInfo = _yield$this$doTurnDis.turnServerInfo;
6385
+ case 8:
6386
+ _context28.next = 10;
6013
6387
  return this.createMediaConnection(turnServerInfo, bundlePolicy);
6014
- case 15:
6015
- mc = _context25.sent;
6388
+ case 10:
6389
+ mc = _context28.sent;
6016
6390
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " media connection created"));
6017
6391
  if (!this.isMultistream) {
6018
- _context25.next = 25;
6392
+ _context28.next = 20;
6019
6393
  break;
6020
6394
  }
6021
6395
  this.remoteMediaManager = new _remoteMediaManager.RemoteMediaManager(this.receiveSlotManager, this.mediaRequestManagers, remoteMediaManagerConfig);
@@ -6023,42 +6397,42 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6023
6397
  this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.InterpretationAudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_INTERPRETATION_AUDIO_CREATED);
6024
6398
  this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.ScreenShareAudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_SCREEN_SHARE_AUDIO_CREATED);
6025
6399
  this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.VideoLayoutChanged, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_VIDEO_LAYOUT_CHANGED);
6026
- _context25.next = 25;
6400
+ _context28.next = 20;
6027
6401
  return this.remoteMediaManager.start();
6028
- case 25:
6029
- _context25.next = 27;
6402
+ case 20:
6403
+ _context28.next = 22;
6030
6404
  return mc.initiateOffer();
6031
- case 27:
6032
- _context25.next = 29;
6405
+ case 22:
6406
+ _context28.next = 24;
6033
6407
  return this.waitForRemoteSDPAnswer();
6034
- case 29:
6408
+ case 24:
6035
6409
  this.handleMediaLogging(this.mediaProperties);
6036
- _context25.next = 36;
6410
+ _context28.next = 31;
6037
6411
  break;
6038
- case 32:
6039
- _context25.prev = 32;
6040
- _context25.t0 = _context25["catch"](3);
6041
- _loggerProxy.default.logger.error("".concat(LOG_HEADER, " error establishing media connection, "), _context25.t0);
6042
- throw _context25.t0;
6043
- case 36:
6044
- _context25.prev = 36;
6045
- _context25.next = 39;
6412
+ case 27:
6413
+ _context28.prev = 27;
6414
+ _context28.t0 = _context28["catch"](2);
6415
+ _loggerProxy.default.logger.error("".concat(LOG_HEADER, " error establishing media connection, "), _context28.t0);
6416
+ throw _context28.t0;
6417
+ case 31:
6418
+ _context28.prev = 31;
6419
+ _context28.next = 34;
6046
6420
  return this.waitForMediaConnectionConnected();
6047
- case 39:
6048
- _context25.next = 45;
6421
+ case 34:
6422
+ _context28.next = 40;
6049
6423
  break;
6050
- case 41:
6051
- _context25.prev = 41;
6052
- _context25.t1 = _context25["catch"](36);
6053
- _context25.next = 45;
6054
- return this.handleWaitForMediaConnectionConnectedError(_context25.t1, remoteMediaManagerConfig, bundlePolicy);
6055
- case 45:
6424
+ case 36:
6425
+ _context28.prev = 36;
6426
+ _context28.t1 = _context28["catch"](31);
6427
+ _context28.next = 40;
6428
+ return this.handleWaitForMediaConnectionConnectedError(_context28.t1, remoteMediaManagerConfig, bundlePolicy);
6429
+ case 40:
6056
6430
  case "end":
6057
- return _context25.stop();
6431
+ return _context28.stop();
6058
6432
  }
6059
- }, _callee25, this, [[3, 32], [36, 41]]);
6433
+ }, _callee28, this, [[2, 27], [31, 36]]);
6060
6434
  }));
6061
- function establishMediaConnection(_x24, _x25, _x26) {
6435
+ function establishMediaConnection(_x28, _x29, _x30, _x31) {
6062
6436
  return _establishMediaConnection.apply(this, arguments);
6063
6437
  }
6064
6438
  return establishMediaConnection;
@@ -6069,25 +6443,26 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6069
6443
  * @private
6070
6444
  * @returns {Promise<void>}
6071
6445
  */
6446
+ )
6072
6447
  }, {
6073
6448
  key: "cleanUpOnAddMediaFailure",
6074
- value: function () {
6075
- var _cleanUpOnAddMediaFailure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee26() {
6076
- return _regenerator.default.wrap(function _callee26$(_context26) {
6077
- while (1) switch (_context26.prev = _context26.next) {
6449
+ value: (function () {
6450
+ var _cleanUpOnAddMediaFailure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee29() {
6451
+ return _regenerator.default.wrap(function _callee29$(_context29) {
6452
+ while (1) switch (_context29.prev = _context29.next) {
6078
6453
  case 0:
6079
6454
  if (!this.statsAnalyzer) {
6080
- _context26.next = 3;
6455
+ _context29.next = 3;
6081
6456
  break;
6082
6457
  }
6083
- _context26.next = 3;
6458
+ _context29.next = 3;
6084
6459
  return this.statsAnalyzer.stopAnalyzer();
6085
6460
  case 3:
6086
6461
  this.statsAnalyzer = null;
6087
6462
 
6088
6463
  // when media fails, we want to upload a webrtc dump to see whats going on
6089
6464
  // this function is async, but returns once the stats have been gathered
6090
- _context26.next = 6;
6465
+ _context29.next = 6;
6091
6466
  return this.forceSendStatsReport({
6092
6467
  callFrom: 'addMedia'
6093
6468
  });
@@ -6098,9 +6473,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6098
6473
  }
6099
6474
  case 7:
6100
6475
  case "end":
6101
- return _context26.stop();
6476
+ return _context29.stop();
6102
6477
  }
6103
- }, _callee26, this);
6478
+ }, _callee29, this);
6104
6479
  }));
6105
6480
  function cleanUpOnAddMediaFailure() {
6106
6481
  return _cleanUpOnAddMediaFailure.apply(this, arguments);
@@ -6114,14 +6489,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6114
6489
  * @private
6115
6490
  * @returns {Promise<void>}
6116
6491
  */
6492
+ )
6117
6493
  }, {
6118
6494
  key: "cleanUpBeforeRetryWithTurnServer",
6119
- value: function () {
6120
- var _cleanUpBeforeRetryWithTurnServer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee27() {
6121
- return _regenerator.default.wrap(function _callee27$(_context27) {
6122
- while (1) switch (_context27.prev = _context27.next) {
6495
+ value: (function () {
6496
+ var _cleanUpBeforeRetryWithTurnServer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee30() {
6497
+ return _regenerator.default.wrap(function _callee30$(_context30) {
6498
+ while (1) switch (_context30.prev = _context30.next) {
6123
6499
  case 0:
6124
- _context27.next = 2;
6500
+ _context30.next = 2;
6125
6501
  return this.forceSendStatsReport({
6126
6502
  callFrom: 'cleanUpBeforeRetryWithTurnServer'
6127
6503
  });
@@ -6141,9 +6517,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6141
6517
  }
6142
6518
  case 3:
6143
6519
  case "end":
6144
- return _context27.stop();
6520
+ return _context30.stop();
6145
6521
  }
6146
- }, _callee27, this);
6522
+ }, _callee30, this);
6147
6523
  }));
6148
6524
  function cleanUpBeforeRetryWithTurnServer() {
6149
6525
  return _cleanUpBeforeRetryWithTurnServer.apply(this, arguments);
@@ -6154,16 +6530,19 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6154
6530
  * Creates a media connection to the server. Media connection is required for sending or receiving any audio/video.
6155
6531
  *
6156
6532
  * @param {AddMediaOptions} options
6533
+ * @param {TurnServerInfo} turnServerInfo - TURN server information (used only internally by the SDK)
6157
6534
  * @returns {Promise<void>}
6158
6535
  * @public
6159
6536
  * @memberof Meeting
6160
6537
  */
6538
+ )
6161
6539
  }, {
6162
6540
  key: "addMedia",
6163
- value: function () {
6164
- var _addMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee28() {
6541
+ value: (function () {
6542
+ var _addMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee31() {
6165
6543
  var _this$webex$meetings$2, _this$webex$meetings$3;
6166
6544
  var options,
6545
+ turnServerInfo,
6167
6546
  LOG_HEADER,
6168
6547
  localStreams,
6169
6548
  _options$audioEnabled,
@@ -6176,7 +6555,6 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6176
6555
  shareVideoEnabled,
6177
6556
  remoteMediaManagerConfig,
6178
6557
  bundlePolicy,
6179
- allowMediaInLobby,
6180
6558
  _this$remoteMediaMana,
6181
6559
  connectionType,
6182
6560
  reachabilityStats,
@@ -6202,38 +6580,39 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6202
6580
  _this$mediaProperties39,
6203
6581
  _this$mediaProperties40,
6204
6582
  reachabilityMetrics,
6205
- _args28 = arguments;
6206
- return _regenerator.default.wrap(function _callee28$(_context28) {
6207
- while (1) switch (_context28.prev = _context28.next) {
6583
+ _args31 = arguments;
6584
+ return _regenerator.default.wrap(function _callee31$(_context31) {
6585
+ while (1) switch (_context31.prev = _context31.next) {
6208
6586
  case 0:
6209
- options = _args28.length > 0 && _args28[0] !== undefined ? _args28[0] : {};
6587
+ options = _args31.length > 0 && _args31[0] !== undefined ? _args31[0] : {};
6588
+ turnServerInfo = _args31.length > 1 && _args31[1] !== undefined ? _args31[1] : undefined;
6210
6589
  this.retriedWithTurnServer = false;
6211
6590
  this.hasMediaConnectionConnectedAtLeastOnce = false;
6212
6591
  LOG_HEADER = 'Meeting:index#addMedia -->';
6213
- _loggerProxy.default.logger.info("".concat(LOG_HEADER, " called with: ").concat((0, _stringify.default)(options)));
6592
+ _loggerProxy.default.logger.info("".concat(LOG_HEADER, " called with: ").concat((0, _stringify.default)(options), ", ").concat((0, _stringify.default)(turnServerInfo)));
6214
6593
  if (!(options.allowMediaInLobby !== true && this.meetingState !== _constants.FULL_STATE.ACTIVE)) {
6215
- _context28.next = 7;
6594
+ _context31.next = 8;
6216
6595
  break;
6217
6596
  }
6218
6597
  throw new _webexErrors.MeetingNotActiveError();
6219
- case 7:
6220
- if (!_util.default.isUserInLeftState(this.locusInfo)) {
6221
- _context28.next = 9;
6598
+ case 8:
6599
+ if (!_util2.default.isUserInLeftState(this.locusInfo)) {
6600
+ _context31.next = 10;
6222
6601
  break;
6223
6602
  }
6224
6603
  throw new _webexErrors.UserNotJoinedError();
6225
- case 9:
6226
- localStreams = options.localStreams, _options$audioEnabled = options.audioEnabled, audioEnabled = _options$audioEnabled === void 0 ? true : _options$audioEnabled, _options$videoEnabled = options.videoEnabled, videoEnabled = _options$videoEnabled === void 0 ? true : _options$videoEnabled, _options$shareAudioEn = options.shareAudioEnabled, shareAudioEnabled = _options$shareAudioEn === void 0 ? true : _options$shareAudioEn, _options$shareVideoEn = options.shareVideoEnabled, shareVideoEnabled = _options$shareVideoEn === void 0 ? true : _options$shareVideoEn, remoteMediaManagerConfig = options.remoteMediaManagerConfig, bundlePolicy = options.bundlePolicy, allowMediaInLobby = options.allowMediaInLobby;
6604
+ case 10:
6605
+ localStreams = options.localStreams, _options$audioEnabled = options.audioEnabled, audioEnabled = _options$audioEnabled === void 0 ? true : _options$audioEnabled, _options$videoEnabled = options.videoEnabled, videoEnabled = _options$videoEnabled === void 0 ? true : _options$videoEnabled, _options$shareAudioEn = options.shareAudioEnabled, shareAudioEnabled = _options$shareAudioEn === void 0 ? true : _options$shareAudioEn, _options$shareVideoEn = options.shareVideoEnabled, shareVideoEnabled = _options$shareVideoEn === void 0 ? true : _options$shareVideoEn, remoteMediaManagerConfig = options.remoteMediaManagerConfig, bundlePolicy = options.bundlePolicy;
6227
6606
  this.allowMediaInLobby = options === null || options === void 0 ? void 0 : options.allowMediaInLobby;
6228
6607
 
6229
6608
  // If the user is unjoined or guest waiting in lobby dont allow the user to addMedia
6230
6609
  // @ts-ignore - isUserUnadmitted coming from SelfUtil
6231
- if (!(this.isUserUnadmitted && !this.wirelessShare && !allowMediaInLobby)) {
6232
- _context28.next = 13;
6610
+ if (!(this.isUserUnadmitted && !this.wirelessShare && !this.allowMediaInLobby)) {
6611
+ _context31.next = 14;
6233
6612
  break;
6234
6613
  }
6235
6614
  throw new _webexErrors.UserInLobbyError();
6236
- case 13:
6615
+ case 14:
6237
6616
  // @ts-ignore
6238
6617
  this.webex.internal.newMetrics.submitClientEvent({
6239
6618
  name: 'client.media.capabilities',
@@ -6288,33 +6667,42 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6288
6667
  });
6289
6668
  this.audio = (0, _muteState.createMuteState)(_constants.AUDIO, this, audioEnabled);
6290
6669
  this.video = (0, _muteState.createMuteState)(_constants.VIDEO, this, videoEnabled);
6291
- _context28.prev = 18;
6292
- _context28.next = 21;
6670
+ _context31.prev = 19;
6671
+ _context31.next = 22;
6293
6672
  return this.setUpLocalStreamReferences(localStreams);
6294
- case 21:
6673
+ case 22:
6295
6674
  this.setMercuryListener();
6296
6675
  this.createStatsAnalyzer();
6297
- _context28.next = 25;
6298
- return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, false);
6299
- case 25:
6300
- _context28.next = 27;
6676
+ _context31.next = 26;
6677
+ return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, false, turnServerInfo);
6678
+ case 26:
6679
+ if (!(audioEnabled || videoEnabled)) {
6680
+ _context31.next = 31;
6681
+ break;
6682
+ }
6683
+ _context31.next = 29;
6301
6684
  return Meeting.handleDeviceLogging();
6302
- case 27:
6685
+ case 29:
6686
+ _context31.next = 32;
6687
+ break;
6688
+ case 31:
6689
+ _loggerProxy.default.logger.info("".concat(LOG_HEADER, " device logging not required"));
6690
+ case 32:
6303
6691
  if (!this.mediaProperties.hasLocalShareStream()) {
6304
- _context28.next = 30;
6692
+ _context31.next = 35;
6305
6693
  break;
6306
6694
  }
6307
- _context28.next = 30;
6695
+ _context31.next = 35;
6308
6696
  return this.enqueueScreenShareFloorRequest();
6309
- case 30:
6310
- _context28.next = 32;
6697
+ case 35:
6698
+ _context31.next = 37;
6311
6699
  return this.mediaProperties.getCurrentConnectionType();
6312
- case 32:
6313
- connectionType = _context28.sent;
6314
- _context28.next = 35;
6700
+ case 37:
6701
+ connectionType = _context31.sent;
6702
+ _context31.next = 40;
6315
6703
  return this.webex.meetings.reachability.getReachabilityMetrics();
6316
- case 35:
6317
- reachabilityStats = _context28.sent;
6704
+ case 40:
6705
+ reachabilityStats = _context31.sent;
6318
6706
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, _objectSpread({
6319
6707
  correlation_id: this.correlationId,
6320
6708
  locus_id: this.locusUrl.split('/').pop(),
@@ -6333,24 +6721,24 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6333
6721
 
6334
6722
  // We can log ReceiveSlot SSRCs only after the SDP exchange, so doing it here:
6335
6723
  (_this$remoteMediaMana = this.remoteMediaManager) === null || _this$remoteMediaMana === void 0 ? void 0 : _this$remoteMediaMana.logAllReceiveSlots();
6336
- _context28.next = 54;
6724
+ _context31.next = 59;
6337
6725
  break;
6338
- case 42:
6339
- _context28.prev = 42;
6340
- _context28.t0 = _context28["catch"](18);
6341
- _loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context28.t0);
6726
+ case 47:
6727
+ _context31.prev = 47;
6728
+ _context31.t0 = _context31["catch"](19);
6729
+ _loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context31.t0);
6342
6730
 
6343
6731
  // @ts-ignore
6344
- _context28.next = 47;
6732
+ _context31.next = 52;
6345
6733
  return this.webex.meetings.reachability.getReachabilityMetrics();
6346
- case 47:
6347
- reachabilityMetrics = _context28.sent;
6734
+ case 52:
6735
+ reachabilityMetrics = _context31.sent;
6348
6736
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_FAILURE, _objectSpread({
6349
6737
  correlation_id: this.correlationId,
6350
6738
  locus_id: this.locusUrl.split('/').pop(),
6351
- reason: _context28.t0.message,
6352
- stack: _context28.t0.stack,
6353
- code: _context28.t0.code,
6739
+ reason: _context31.t0.message,
6740
+ stack: _context31.t0.stack,
6741
+ code: _context31.t0.code,
6354
6742
  turnDiscoverySkippedReason: this.turnDiscoverySkippedReason,
6355
6743
  turnServerUsed: this.turnServerUsed,
6356
6744
  retriedWithTurnServer: this.retriedWithTurnServer,
@@ -6359,25 +6747,25 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6359
6747
  connectionState: ((_this$mediaProperties27 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties27 === void 0 ? void 0 : (_this$mediaProperties28 = _this$mediaProperties27.multistreamConnection) === null || _this$mediaProperties28 === void 0 ? void 0 : (_this$mediaProperties29 = _this$mediaProperties28.pc) === null || _this$mediaProperties29 === void 0 ? void 0 : (_this$mediaProperties30 = _this$mediaProperties29.pc) === null || _this$mediaProperties30 === void 0 ? void 0 : _this$mediaProperties30.connectionState) || ((_this$mediaProperties31 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties31 === void 0 ? void 0 : (_this$mediaProperties32 = _this$mediaProperties31.mediaConnection) === null || _this$mediaProperties32 === void 0 ? void 0 : (_this$mediaProperties33 = _this$mediaProperties32.pc) === null || _this$mediaProperties33 === void 0 ? void 0 : _this$mediaProperties33.connectionState) || 'unknown',
6360
6748
  iceConnectionState: ((_this$mediaProperties34 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties34 === void 0 ? void 0 : (_this$mediaProperties35 = _this$mediaProperties34.multistreamConnection) === null || _this$mediaProperties35 === void 0 ? void 0 : (_this$mediaProperties36 = _this$mediaProperties35.pc) === null || _this$mediaProperties36 === void 0 ? void 0 : (_this$mediaProperties37 = _this$mediaProperties36.pc) === null || _this$mediaProperties37 === void 0 ? void 0 : _this$mediaProperties37.iceConnectionState) || ((_this$mediaProperties38 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties38 === void 0 ? void 0 : (_this$mediaProperties39 = _this$mediaProperties38.mediaConnection) === null || _this$mediaProperties39 === void 0 ? void 0 : (_this$mediaProperties40 = _this$mediaProperties39.pc) === null || _this$mediaProperties40 === void 0 ? void 0 : _this$mediaProperties40.iceConnectionState) || 'unknown'
6361
6749
  }, reachabilityMetrics));
6362
- _context28.next = 51;
6750
+ _context31.next = 56;
6363
6751
  return this.cleanUpOnAddMediaFailure();
6364
- case 51:
6752
+ case 56:
6365
6753
  // Upload logs on error while adding media
6366
6754
  _triggerProxy.default.trigger(this, {
6367
6755
  file: 'meeting/index',
6368
6756
  function: 'addMedia'
6369
6757
  }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
6370
- if (_context28.t0 instanceof _internalMediaCore.Errors.SdpError) {
6758
+ if (_context31.t0 instanceof _internalMediaCore.Errors.SdpError) {
6371
6759
  this.leave({
6372
6760
  reason: _constants.MEETING_REMOVED_REASON.MEETING_CONNECTION_FAILED
6373
6761
  });
6374
6762
  }
6375
- throw _context28.t0;
6376
- case 54:
6763
+ throw _context31.t0;
6764
+ case 59:
6377
6765
  case "end":
6378
- return _context28.stop();
6766
+ return _context31.stop();
6379
6767
  }
6380
- }, _callee28, this, [[18, 42]]);
6768
+ }, _callee31, this, [[19, 47]]);
6381
6769
  }));
6382
6770
  function addMedia() {
6383
6771
  return _addMedia.apply(this, arguments);
@@ -6388,6 +6776,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6388
6776
  * Informs if the peer connection is in a state that can be updated with updateMedia (audio/video/share)
6389
6777
  * @returns {Boolean}
6390
6778
  */
6779
+ )
6391
6780
  }, {
6392
6781
  key: "canUpdateMedia",
6393
6782
  value: function canUpdateMedia() {
@@ -6396,13 +6785,6 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6396
6785
  // so for now it's better to keep queuing any media updates at SDK meeting level
6397
6786
  return !this.isRoapInProgress;
6398
6787
  }
6399
-
6400
- /**
6401
- * media failed, so collect a stats report from webrtc using the wcme connection to grab the rtc stats report
6402
- * send a webrtc telemetry dump to the configured server using the internal media core check metrics configured callback
6403
- * @param {String} callFrom - the function calling this function, optional.
6404
- * @returns {Promise<void>}
6405
- */
6406
6788
  }, {
6407
6789
  key: "enqueueMediaUpdate",
6408
6790
  value:
@@ -6415,7 +6797,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6415
6797
  * @memberof Meeting
6416
6798
  */
6417
6799
  function enqueueMediaUpdate(mediaUpdateType) {
6418
- var _this40 = this;
6800
+ var _this39 = this;
6419
6801
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6420
6802
  var canUpdateMediaNow = this.canUpdateMedia();
6421
6803
  return new _promise.default(function (resolve, reject) {
@@ -6426,22 +6808,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6426
6808
  options: options
6427
6809
  };
6428
6810
  _loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
6429
- _this40.queuedMediaUpdates.push(queueItem);
6811
+ _this39.queuedMediaUpdates.push(queueItem);
6430
6812
  if (canUpdateMediaNow) {
6431
- _this40.processNextQueuedMediaUpdate();
6813
+ _this39.processNextQueuedMediaUpdate();
6432
6814
  }
6433
6815
  });
6434
6816
  }
6435
-
6436
- /**
6437
- * emits event when the negotation is completed
6438
- * @returns {void}
6439
- * @private
6440
- * @memberof Meeting
6441
- */
6442
6817
  }, {
6443
6818
  key: "updateMedia",
6444
- value:
6819
+ value: (
6445
6820
  /**
6446
6821
  * Updates the media connection - it allows to enable/disable all audio/video/share in the meeting.
6447
6822
  * This does not affect the published tracks, so for example if a microphone track is published and
@@ -6458,35 +6833,35 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6458
6833
  * @memberof Meeting
6459
6834
  */
6460
6835
  function () {
6461
- var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee29(options) {
6836
+ var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32(options) {
6462
6837
  var audioEnabled, videoEnabled, shareAudioEnabled, shareVideoEnabled;
6463
- return _regenerator.default.wrap(function _callee29$(_context29) {
6464
- while (1) switch (_context29.prev = _context29.next) {
6838
+ return _regenerator.default.wrap(function _callee32$(_context32) {
6839
+ while (1) switch (_context32.prev = _context32.next) {
6465
6840
  case 0:
6466
6841
  this.checkMediaConnection();
6467
6842
  audioEnabled = options.audioEnabled, videoEnabled = options.videoEnabled, shareAudioEnabled = options.shareAudioEnabled, shareVideoEnabled = options.shareVideoEnabled;
6468
6843
  _loggerProxy.default.logger.log("Meeting:index#updateMedia --> called with options=".concat((0, _stringify.default)(options)));
6469
6844
  if (this.canUpdateMedia()) {
6470
- _context29.next = 5;
6845
+ _context32.next = 5;
6471
6846
  break;
6472
6847
  }
6473
- return _context29.abrupt("return", this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.UPDATE_MEDIA, options));
6848
+ return _context32.abrupt("return", this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.UPDATE_MEDIA, options));
6474
6849
  case 5:
6475
6850
  if (!this.isMultistream) {
6476
- _context29.next = 10;
6851
+ _context32.next = 10;
6477
6852
  break;
6478
6853
  }
6479
6854
  if (!(shareAudioEnabled !== undefined || shareVideoEnabled !== undefined)) {
6480
- _context29.next = 8;
6855
+ _context32.next = 8;
6481
6856
  break;
6482
6857
  }
6483
6858
  throw new Error('toggling shareAudioEnabled or shareVideoEnabled in a multistream meeting is not supported, to control receiving screen share call meeting.remoteMediaManager.setLayout() with appropriate layout');
6484
6859
  case 8:
6485
- _context29.next = 12;
6860
+ _context32.next = 12;
6486
6861
  break;
6487
6862
  case 10:
6488
6863
  if (!(shareAudioEnabled !== undefined)) {
6489
- _context29.next = 12;
6864
+ _context32.next = 12;
6490
6865
  break;
6491
6866
  }
6492
6867
  throw new Error('toggling shareAudioEnabled in a transcoded meeting is not supported as of now');
@@ -6511,20 +6886,20 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6511
6886
  this.mediaProperties.mediaDirection.receiveShare = !!(shareAudioEnabled || shareVideoEnabled);
6512
6887
  }
6513
6888
  if (this.isMultistream) {
6514
- _context29.next = 18;
6889
+ _context32.next = 18;
6515
6890
  break;
6516
6891
  }
6517
- _context29.next = 18;
6892
+ _context32.next = 18;
6518
6893
  return this.updateTranscodedMediaConnection();
6519
6894
  case 18:
6520
- return _context29.abrupt("return", undefined);
6895
+ return _context32.abrupt("return", undefined);
6521
6896
  case 19:
6522
6897
  case "end":
6523
- return _context29.stop();
6898
+ return _context32.stop();
6524
6899
  }
6525
- }, _callee29, this);
6900
+ }, _callee32, this);
6526
6901
  }));
6527
- function updateMedia(_x27) {
6902
+ function updateMedia(_x32) {
6528
6903
  return _updateMedia.apply(this, arguments);
6529
6904
  }
6530
6905
  return updateMedia;
@@ -6536,10 +6911,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6536
6911
  * @public
6537
6912
  * @memberof Meeting
6538
6913
  */
6914
+ )
6539
6915
  }, {
6540
6916
  key: "acknowledge",
6541
6917
  value: function acknowledge(type) {
6542
- var _this41 = this;
6918
+ var _this40 = this;
6543
6919
  if (!type) {
6544
6920
  return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
6545
6921
  }
@@ -6551,12 +6927,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6551
6927
  }).then(function (response) {
6552
6928
  return _promise.default.resolve(response);
6553
6929
  }).then(function (response) {
6554
- _this41.meetingFiniteStateMachine.ring(type);
6930
+ _this40.meetingFiniteStateMachine.ring(type);
6555
6931
  // @ts-ignore
6556
- _this41.webex.internal.newMetrics.submitClientEvent({
6932
+ _this40.webex.internal.newMetrics.submitClientEvent({
6557
6933
  name: 'client.alert.displayed',
6558
6934
  options: {
6559
- meetingId: _this41.id
6935
+ meetingId: _this40.id
6560
6936
  }
6561
6937
  });
6562
6938
  return _promise.default.resolve({
@@ -6581,12 +6957,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6581
6957
  }, {
6582
6958
  key: "decline",
6583
6959
  value: function decline(reason) {
6584
- var _this42 = this;
6585
- return _util.default.declineMeeting(this, reason).then(function (decline) {
6586
- _this42.meetingFiniteStateMachine.decline();
6960
+ var _this41 = this;
6961
+ return _util2.default.declineMeeting(this, reason).then(function (decline) {
6962
+ _this41.meetingFiniteStateMachine.decline();
6587
6963
  return _promise.default.resolve(decline);
6588
6964
  }).catch(function (error) {
6589
- _this42.meetingFiniteStateMachine.fail(error);
6965
+ _this41.meetingFiniteStateMachine.fail(error);
6590
6966
  return _promise.default.reject(error);
6591
6967
  });
6592
6968
  }
@@ -6616,7 +6992,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6616
6992
  key: "buildLeaveFetchRequestOptions",
6617
6993
  value: function buildLeaveFetchRequestOptions() {
6618
6994
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6619
- var requestOptions = _util.default.buildLeaveFetchRequestOptions(this, options);
6995
+ var requestOptions = _util2.default.buildLeaveFetchRequestOptions(this, options);
6620
6996
 
6621
6997
  // @ts-ignore
6622
6998
  return this.webex.prepareFetchOptions(requestOptions);
@@ -6637,7 +7013,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6637
7013
  }, {
6638
7014
  key: "leave",
6639
7015
  value: function leave() {
6640
- var _this43 = this;
7016
+ var _this42 = this;
6641
7017
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6642
7018
  var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
6643
7019
 
@@ -6649,7 +7025,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6649
7025
  var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6650
7026
  return (
6651
7027
  // @ts-ignore
6652
- _this43.webex.internal.newMetrics.submitClientEvent({
7028
+ _this42.webex.internal.newMetrics.submitClientEvent({
6653
7029
  name: 'client.call.leave',
6654
7030
  payload: _objectSpread({
6655
7031
  trigger: 'user-interaction',
@@ -6657,33 +7033,33 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6657
7033
  leaveReason: options.clientEventLeaveReason
6658
7034
  }, payload),
6659
7035
  options: {
6660
- meetingId: _this43.id
7036
+ meetingId: _this42.id
6661
7037
  }
6662
7038
  })
6663
7039
  );
6664
7040
  };
6665
7041
  _loggerProxy.default.logger.log('Meeting:index#leave --> Leaving a meeting');
6666
- return _util.default.leaveMeeting(this, options).then(function (leave) {
7042
+ return _util2.default.leaveMeeting(this, options).then(function (leave) {
6667
7043
  // CA team recommends submitting this *after* locus /leave
6668
7044
  submitLeaveMetric();
6669
- _this43.meetingFiniteStateMachine.leave();
6670
- _this43.clearMeetingData();
7045
+ _this42.meetingFiniteStateMachine.leave();
7046
+ _this42.clearMeetingData();
6671
7047
 
6672
7048
  // upload logs on leave irrespective of meeting delete
6673
- _triggerProxy.default.trigger(_this43, {
7049
+ _triggerProxy.default.trigger(_this42, {
6674
7050
  file: 'meeting/index',
6675
7051
  function: 'leave'
6676
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this43);
7052
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this42);
6677
7053
 
6678
7054
  // TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
6679
- if (_this43.wirelessShare || _this43.guest) {
7055
+ if (_this42.wirelessShare || _this42.guest) {
6680
7056
  // If screen sharing clean the meeting object
6681
- _triggerProxy.default.trigger(_this43, {
7057
+ _triggerProxy.default.trigger(_this42, {
6682
7058
  file: 'meeting/index',
6683
7059
  function: 'leave'
6684
7060
  }, _constants.EVENTS.DESTROY_MEETING, {
6685
7061
  reason: options.reason,
6686
- meetingId: _this43.id
7062
+ meetingId: _this42.id
6687
7063
  });
6688
7064
  }
6689
7065
  _loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
@@ -6700,16 +7076,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6700
7076
  shownToUser: false
6701
7077
  }]
6702
7078
  });
6703
- _this43.meetingFiniteStateMachine.fail(error);
7079
+ _this42.meetingFiniteStateMachine.fail(error);
6704
7080
  _loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
6705
7081
  // upload logs on leave irrespective of meeting delete
6706
- _triggerProxy.default.trigger(_this43, {
7082
+ _triggerProxy.default.trigger(_this42, {
6707
7083
  file: 'meeting/index',
6708
7084
  function: 'leave'
6709
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this43);
7085
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this42);
6710
7086
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
6711
- correlation_id: _this43.correlationId,
6712
- locus_id: _this43.locusUrl.split('/').pop(),
7087
+ correlation_id: _this42.correlationId,
7088
+ locus_id: _this42.locusUrl.split('/').pop(),
6713
7089
  reason: error.message,
6714
7090
  stack: error.stack,
6715
7091
  code: error.code
@@ -6729,7 +7105,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6729
7105
  }, {
6730
7106
  key: "startWhiteboardShare",
6731
7107
  value: function startWhiteboardShare(channelUrl, resourceToken) {
6732
- var _this44 = this;
7108
+ var _this43 = this;
6733
7109
  var whiteboard = this.locusInfo.mediaShares.find(function (element) {
6734
7110
  return element.name === 'whiteboard';
6735
7111
  });
@@ -6758,13 +7134,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6758
7134
  body.resourceToken = resourceToken;
6759
7135
  }
6760
7136
  return this.meetingRequest.changeMeetingFloor(body).then(function () {
6761
- _this44.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7137
+ _this43.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
6762
7138
  return _promise.default.resolve();
6763
7139
  }).catch(function (error) {
6764
7140
  _loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
6765
7141
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
6766
- correlation_id: _this44.correlationId,
6767
- locus_id: _this44.locusUrl.split('/').pop(),
7142
+ correlation_id: _this43.correlationId,
7143
+ locus_id: _this43.locusUrl.split('/').pop(),
6768
7144
  reason: error.message,
6769
7145
  stack: error.stack,
6770
7146
  board: {
@@ -6787,7 +7163,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6787
7163
  }, {
6788
7164
  key: "stopWhiteboardShare",
6789
7165
  value: function stopWhiteboardShare(channelUrl) {
6790
- var _this45 = this;
7166
+ var _this44 = this;
6791
7167
  var whiteboard = this.locusInfo.mediaShares.find(function (element) {
6792
7168
  return element.name === 'whiteboard';
6793
7169
  });
@@ -6810,8 +7186,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6810
7186
  }).catch(function (error) {
6811
7187
  _loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
6812
7188
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
6813
- correlation_id: _this45.correlationId,
6814
- locus_id: _this45.locusUrl.split('/').pop(),
7189
+ correlation_id: _this44.correlationId,
7190
+ locus_id: _this44.locusUrl.split('/').pop(),
6815
7191
  reason: error.message,
6816
7192
  stack: error.stack,
6817
7193
  board: {
@@ -6833,7 +7209,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6833
7209
  }, {
6834
7210
  key: "requestScreenShareFloor",
6835
7211
  value: function requestScreenShareFloor() {
6836
- var _this46 = this;
7212
+ var _this45 = this;
6837
7213
  if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
6838
7214
  _loggerProxy.default.logger.log("Meeting:index#requestScreenShareFloor --> NOT requesting floor, because we don't have the share stream anymore (shareStream=".concat(this.mediaProperties.shareVideoStream ? 'yes' : 'no', ", sendShare=").concat(this.mediaProperties.mediaDirection.sendShare, ")"));
6839
7215
  this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
@@ -6864,34 +7240,34 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6864
7240
  resourceUrl: this.resourceUrl,
6865
7241
  shareInstanceId: this.localShareInstanceId
6866
7242
  }).then(function () {
6867
- _this46.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
7243
+ _this45.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
6868
7244
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
6869
- correlation_id: _this46.correlationId,
6870
- locus_id: _this46.locusUrl.split('/').pop()
7245
+ correlation_id: _this45.correlationId,
7246
+ locus_id: _this45.locusUrl.split('/').pop()
6871
7247
  });
6872
7248
  return _promise.default.resolve();
6873
7249
  }).catch(function (error) {
6874
7250
  _loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
6875
7251
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
6876
- correlation_id: _this46.correlationId,
6877
- locus_id: _this46.locusUrl.split('/').pop(),
7252
+ correlation_id: _this45.correlationId,
7253
+ locus_id: _this45.locusUrl.split('/').pop(),
6878
7254
  reason: error.message,
6879
7255
  stack: error.stack
6880
7256
  });
6881
7257
 
6882
7258
  // @ts-ignore
6883
- _this46.webex.internal.newMetrics.submitClientEvent({
7259
+ _this45.webex.internal.newMetrics.submitClientEvent({
6884
7260
  name: 'client.share.floor-granted.local',
6885
7261
  payload: {
6886
7262
  mediaType: 'share',
6887
- errors: _util.default.getChangeMeetingFloorErrorPayload(error.message),
6888
- shareInstanceId: _this46.localShareInstanceId
7263
+ errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
7264
+ shareInstanceId: _this45.localShareInstanceId
6889
7265
  },
6890
7266
  options: {
6891
- meetingId: _this46.id
7267
+ meetingId: _this45.id
6892
7268
  }
6893
7269
  });
6894
- _this46.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7270
+ _this45.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
6895
7271
  return _promise.default.reject(error);
6896
7272
  });
6897
7273
  }
@@ -6914,10 +7290,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6914
7290
  }, {
6915
7291
  key: "requestScreenShareFloorIfPending",
6916
7292
  value: function requestScreenShareFloorIfPending() {
6917
- var _this47 = this;
7293
+ var _this46 = this;
6918
7294
  if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
6919
7295
  this.requestScreenShareFloor().then(function () {
6920
- _this47.floorGrantPending = false;
7296
+ _this46.floorGrantPending = false;
6921
7297
  });
6922
7298
  }
6923
7299
  }
@@ -6931,7 +7307,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6931
7307
  }, {
6932
7308
  key: "releaseScreenShareFloor",
6933
7309
  value: function releaseScreenShareFloor() {
6934
- var _this48 = this;
7310
+ var _this47 = this;
6935
7311
  var content = this.locusInfo.mediaShares.find(function (element) {
6936
7312
  return element.name === _constants.CONTENT;
6937
7313
  });
@@ -6966,8 +7342,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6966
7342
  }).catch(function (error) {
6967
7343
  _loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
6968
7344
  _metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
6969
- correlation_id: _this48.correlationId,
6970
- locus_id: _this48.locusUrl.split('/').pop(),
7345
+ correlation_id: _this47.correlationId,
7346
+ locus_id: _this47.locusUrl.split('/').pop(),
6971
7347
  reason: error.message,
6972
7348
  stack: error.stack
6973
7349
  });
@@ -7077,7 +7453,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7077
7453
  }, {
7078
7454
  key: "lockMeeting",
7079
7455
  value: function lockMeeting() {
7080
- return _util.default.lockMeeting(this.inMeetingActions, this.meetingRequest, this.locusUrl);
7456
+ return _util2.default.lockMeeting(this.inMeetingActions, this.meetingRequest, this.locusUrl);
7081
7457
  }
7082
7458
 
7083
7459
  /**
@@ -7089,7 +7465,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7089
7465
  }, {
7090
7466
  key: "unlockMeeting",
7091
7467
  value: function unlockMeeting() {
7092
- return _util.default.unlockMeeting(this.inMeetingActions, this.meetingRequest, this.locusUrl);
7468
+ return _util2.default.unlockMeeting(this.inMeetingActions, this.meetingRequest, this.locusUrl);
7093
7469
  }
7094
7470
 
7095
7471
  /**
@@ -7146,7 +7522,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7146
7522
  }, {
7147
7523
  key: "changeVideoLayout",
7148
7524
  value: function changeVideoLayout(layoutType) {
7149
- var _this49 = this;
7525
+ var _this48 = this;
7150
7526
  var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7151
7527
  var main = renderInfo.main,
7152
7528
  content = renderInfo.content;
@@ -7154,7 +7530,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7154
7530
  mediaDirection = _this$mediaProperties41.mediaDirection,
7155
7531
  remoteShareStream = _this$mediaProperties41.remoteShareStream,
7156
7532
  remoteVideoStream = _this$mediaProperties41.remoteVideoStream;
7157
- var layoutInfo = (0, _cloneDeep2.default)(this.lastVideoLayoutInfo);
7533
+ var layoutInfo = (0, _lodash.cloneDeep)(this.lastVideoLayoutInfo);
7158
7534
 
7159
7535
  // TODO: We need a real time value for Audio, Video and Share send indicator
7160
7536
  if (mediaDirection.receiveVideo !== true || !remoteVideoStream) {
@@ -7162,7 +7538,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7162
7538
  }
7163
7539
  if (layoutType) {
7164
7540
  if (!_constants.LAYOUT_TYPES.includes(layoutType)) {
7165
- this.rejectWithErrorLog('Meeting:index#changeVideoLayout --> cannot change video layout, invalid layoutType received.');
7541
+ return this.rejectWithErrorLog('Meeting:index#changeVideoLayout --> cannot change video layout, invalid layoutType received.');
7166
7542
  }
7167
7543
  layoutInfo.layoutType = layoutType;
7168
7544
  }
@@ -7194,13 +7570,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7194
7570
  return this.rejectWithErrorLog('Meeting:index#changeVideoLayout --> unable to send renderInfo for content, you are not receiving remote share');
7195
7571
  }
7196
7572
  }
7197
- if ((0, _isEqual2.default)(layoutInfo, this.lastVideoLayoutInfo)) {
7573
+ if ((0, _lodash.isEqual)(layoutInfo, this.lastVideoLayoutInfo)) {
7198
7574
  // nothing changed, no need to send any request
7199
7575
  return _promise.default.resolve();
7200
7576
  }
7201
- this.lastVideoLayoutInfo = (0, _cloneDeep2.default)(layoutInfo);
7577
+ this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
7202
7578
  this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
7203
- _triggerProxy.default.trigger(_this49, {
7579
+ _triggerProxy.default.trigger(_this48, {
7204
7580
  file: 'meeting/index',
7205
7581
  function: 'changeVideoLayout'
7206
7582
  }, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
@@ -7245,13 +7621,6 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7245
7621
  this.mediaProperties.setRemoteQualityLevel(level);
7246
7622
  return this.updateTranscodedMediaConnection();
7247
7623
  }
7248
-
7249
- /**
7250
- * Functionality for when a share audio is ended.
7251
- * @private
7252
- * @memberof Meeting
7253
- * @returns {undefined}
7254
- */
7255
7624
  }, {
7256
7625
  key: "sendNetworkQualityEvent",
7257
7626
  value:
@@ -7285,13 +7654,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7285
7654
  }, {
7286
7655
  key: "handleMediaLogging",
7287
7656
  value: function handleMediaLogging(mediaProperties) {
7288
- _util.default.handleVideoLogging(mediaProperties.videoStream);
7289
- _util.default.handleAudioLogging(mediaProperties.audioStream);
7657
+ _util2.default.handleVideoLogging(mediaProperties.videoStream);
7658
+ _util2.default.handleAudioLogging(mediaProperties.audioStream);
7290
7659
  }
7291
7660
 
7292
7661
  /**
7293
7662
  *
7294
- * @returns {string} one of 'attendee','host','cohost', returns the user type of the current user
7663
+ * @returns {string} one of 'panelist', 'attendee', 'host', 'cohost', returns the user type of the current user
7295
7664
  */
7296
7665
  }, {
7297
7666
  key: "getCurUserType",
@@ -7304,6 +7673,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7304
7673
  if (roles.includes(_constants.SELF_ROLES.COHOST)) {
7305
7674
  return 'cohost';
7306
7675
  }
7676
+ if (roles.includes(_constants.SELF_ROLES.PANELIST)) {
7677
+ return 'panelist';
7678
+ }
7307
7679
  if (roles.includes(_constants.SELF_ROLES.ATTENDEE)) {
7308
7680
  return 'attendee';
7309
7681
  }
@@ -7320,7 +7692,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7320
7692
  }, {
7321
7693
  key: "endMeetingForAll",
7322
7694
  value: function endMeetingForAll() {
7323
- var _this50 = this;
7695
+ var _this49 = this;
7324
7696
  // @ts-ignore
7325
7697
  this.webex.internal.newMetrics.submitClientEvent({
7326
7698
  name: 'client.call.leave',
@@ -7337,26 +7709,26 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7337
7709
  correlation_id: this.correlationId,
7338
7710
  locus_id: this.locusId
7339
7711
  });
7340
- return _util.default.endMeetingForAll(this).then(function (end) {
7341
- _this50.meetingFiniteStateMachine.end();
7342
- _this50.clearMeetingData();
7712
+ return _util2.default.endMeetingForAll(this).then(function (end) {
7713
+ _this49.meetingFiniteStateMachine.end();
7714
+ _this49.clearMeetingData();
7343
7715
  // upload logs on leave irrespective of meeting delete
7344
- _triggerProxy.default.trigger(_this50, {
7716
+ _triggerProxy.default.trigger(_this49, {
7345
7717
  file: 'meeting/index',
7346
7718
  function: 'endMeetingForAll'
7347
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this50);
7719
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this49);
7348
7720
  return end;
7349
7721
  }).catch(function (error) {
7350
- _this50.meetingFiniteStateMachine.fail(error);
7722
+ _this49.meetingFiniteStateMachine.fail(error);
7351
7723
  _loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
7352
7724
  // upload logs on leave irrespective of meeting delete
7353
- _triggerProxy.default.trigger(_this50, {
7725
+ _triggerProxy.default.trigger(_this49, {
7354
7726
  file: 'meeting/index',
7355
7727
  function: 'endMeetingForAll'
7356
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this50);
7728
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this49);
7357
7729
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
7358
- correlation_id: _this50.correlationId,
7359
- locus_id: _this50.locusUrl.split('/').pop(),
7730
+ correlation_id: _this49.correlationId,
7731
+ locus_id: _this49.locusUrl.split('/').pop(),
7360
7732
  reason: error.message,
7361
7733
  stack: error.stack,
7362
7734
  code: error.code
@@ -7364,13 +7736,6 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7364
7736
  return _promise.default.reject(error);
7365
7737
  });
7366
7738
  }
7367
-
7368
- /**
7369
- * clear the meeting data
7370
- * @returns {undefined}
7371
- * @public
7372
- * @memberof Meeting
7373
- */
7374
7739
  }, {
7375
7740
  key: "sendReaction",
7376
7741
  value:
@@ -7451,40 +7816,40 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7451
7816
  */
7452
7817
  }, {
7453
7818
  key: "enableMusicMode",
7454
- value: function () {
7455
- var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee30(shouldEnableMusicMode) {
7456
- return _regenerator.default.wrap(function _callee30$(_context30) {
7457
- while (1) switch (_context30.prev = _context30.next) {
7819
+ value: (function () {
7820
+ var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33(shouldEnableMusicMode) {
7821
+ return _regenerator.default.wrap(function _callee33$(_context33) {
7822
+ while (1) switch (_context33.prev = _context33.next) {
7458
7823
  case 0:
7459
7824
  this.checkMediaConnection();
7460
7825
  if (this.isMultistream) {
7461
- _context30.next = 3;
7826
+ _context33.next = 3;
7462
7827
  break;
7463
7828
  }
7464
7829
  throw new Error('enableMusicMode() only supported with multistream');
7465
7830
  case 3:
7466
7831
  if (!shouldEnableMusicMode) {
7467
- _context30.next = 8;
7832
+ _context33.next = 8;
7468
7833
  break;
7469
7834
  }
7470
- _context30.next = 6;
7835
+ _context33.next = 6;
7471
7836
  return this.sendSlotManager.setCodecParameters(_internalMediaCore.MediaType.AudioMain, {
7472
7837
  maxaveragebitrate: '64000',
7473
7838
  maxplaybackrate: '48000'
7474
7839
  });
7475
7840
  case 6:
7476
- _context30.next = 10;
7841
+ _context33.next = 10;
7477
7842
  break;
7478
7843
  case 8:
7479
- _context30.next = 10;
7844
+ _context33.next = 10;
7480
7845
  return this.sendSlotManager.deleteCodecParameters(_internalMediaCore.MediaType.AudioMain, ['maxaveragebitrate', 'maxplaybackrate']);
7481
7846
  case 10:
7482
7847
  case "end":
7483
- return _context30.stop();
7848
+ return _context33.stop();
7484
7849
  }
7485
- }, _callee30, this);
7850
+ }, _callee33, this);
7486
7851
  }));
7487
- function enableMusicMode(_x28) {
7852
+ function enableMusicMode(_x33) {
7488
7853
  return _enableMusicMode.apply(this, arguments);
7489
7854
  }
7490
7855
  return enableMusicMode;
@@ -7493,6 +7858,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7493
7858
  *
7494
7859
  * @returns {Promise<void>}
7495
7860
  */
7861
+ )
7496
7862
  }, {
7497
7863
  key: "updateTranscodedMediaConnection",
7498
7864
  value: function updateTranscodedMediaConnection() {
@@ -7504,7 +7870,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7504
7870
  _this$mediaProperties48,
7505
7871
  _this$mediaProperties49,
7506
7872
  _this$mediaProperties50,
7507
- _this51 = this;
7873
+ _this50 = this;
7508
7874
  var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
7509
7875
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
7510
7876
  if (!this.canUpdateMedia()) {
@@ -7529,8 +7895,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7529
7895
  }).catch(function (error) {
7530
7896
  _loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
7531
7897
  _metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
7532
- correlation_id: _this51.correlationId,
7533
- locus_id: _this51.locusUrl.split('/').pop(),
7898
+ correlation_id: _this50.correlationId,
7899
+ locus_id: _this50.locusUrl.split('/').pop(),
7534
7900
  reason: error.message,
7535
7901
  stack: error.stack
7536
7902
  });
@@ -7573,26 +7939,26 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7573
7939
  */
7574
7940
  }, {
7575
7941
  key: "publishStream",
7576
- value: function () {
7577
- var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee31(mediaType, stream) {
7578
- return _regenerator.default.wrap(function _callee31$(_context31) {
7579
- while (1) switch (_context31.prev = _context31.next) {
7942
+ value: (function () {
7943
+ var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34(mediaType, stream) {
7944
+ return _regenerator.default.wrap(function _callee34$(_context34) {
7945
+ while (1) switch (_context34.prev = _context34.next) {
7580
7946
  case 0:
7581
7947
  if (stream) {
7582
- _context31.next = 2;
7948
+ _context34.next = 2;
7583
7949
  break;
7584
7950
  }
7585
- return _context31.abrupt("return");
7951
+ return _context34.abrupt("return");
7586
7952
  case 2:
7587
7953
  if (!this.mediaProperties.webrtcMediaConnection) {
7588
- _context31.next = 7;
7954
+ _context34.next = 7;
7589
7955
  break;
7590
7956
  }
7591
7957
  if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
7592
- _context31.next = 6;
7958
+ _context34.next = 6;
7593
7959
  break;
7594
7960
  }
7595
- _context31.next = 6;
7961
+ _context34.next = 6;
7596
7962
  return this.sendSlotManager.publishStream(mediaType, stream);
7597
7963
  case 6:
7598
7964
  this.emitPublishStateChangeEvent({
@@ -7603,11 +7969,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7603
7969
  });
7604
7970
  case 7:
7605
7971
  case "end":
7606
- return _context31.stop();
7972
+ return _context34.stop();
7607
7973
  }
7608
- }, _callee31, this);
7974
+ }, _callee34, this);
7609
7975
  }));
7610
- function publishStream(_x29, _x30) {
7976
+ function publishStream(_x34, _x35) {
7611
7977
  return _publishStream.apply(this, arguments);
7612
7978
  }
7613
7979
  return publishStream;
@@ -7619,24 +7985,25 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7619
7985
  * @param {LocalStream} stream to unpublish
7620
7986
  * @returns {Promise}
7621
7987
  */
7988
+ )
7622
7989
  }, {
7623
7990
  key: "unpublishStream",
7624
- value: function () {
7625
- var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32(mediaType, stream) {
7626
- return _regenerator.default.wrap(function _callee32$(_context32) {
7627
- while (1) switch (_context32.prev = _context32.next) {
7991
+ value: (function () {
7992
+ var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35(mediaType, stream) {
7993
+ return _regenerator.default.wrap(function _callee35$(_context35) {
7994
+ while (1) switch (_context35.prev = _context35.next) {
7628
7995
  case 0:
7629
7996
  if (stream) {
7630
- _context32.next = 2;
7997
+ _context35.next = 2;
7631
7998
  break;
7632
7999
  }
7633
- return _context32.abrupt("return");
8000
+ return _context35.abrupt("return");
7634
8001
  case 2:
7635
8002
  if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
7636
- _context32.next = 5;
8003
+ _context35.next = 5;
7637
8004
  break;
7638
8005
  }
7639
- _context32.next = 5;
8006
+ _context35.next = 5;
7640
8007
  return this.sendSlotManager.unpublishStream(mediaType);
7641
8008
  case 5:
7642
8009
  this.emitPublishStateChangeEvent({
@@ -7647,11 +8014,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7647
8014
  });
7648
8015
  case 6:
7649
8016
  case "end":
7650
- return _context32.stop();
8017
+ return _context35.stop();
7651
8018
  }
7652
- }, _callee32, this);
8019
+ }, _callee35, this);
7653
8020
  }));
7654
- function unpublishStream(_x31, _x32) {
8021
+ function unpublishStream(_x36, _x37) {
7655
8022
  return _unpublishStream.apply(this, arguments);
7656
8023
  }
7657
8024
  return unpublishStream;
@@ -7662,64 +8029,71 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7662
8029
  * @param {Object} streams
7663
8030
  * @returns {Promise}
7664
8031
  */
8032
+ )
7665
8033
  }, {
7666
8034
  key: "publishStreams",
7667
- value: function () {
7668
- var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33(streams) {
7669
- var _streams$screenShare, _streams$screenShare2, _streams$screenShare3, _streams$screenShare4;
7670
- var floorRequestNeeded, _streams$screenShare5;
7671
- return _regenerator.default.wrap(function _callee33$(_context33) {
7672
- while (1) switch (_context33.prev = _context33.next) {
8035
+ value: (function () {
8036
+ var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee36(streams) {
8037
+ var _streams$screenShare, _streams$screenShare2, _streams$microphone, _streams$camera, _streams$screenShare3, _streams$screenShare4, _streams$screenShare5, _streams$screenShare6, _streams$screenShare7, _streams$screenShare8;
8038
+ var floorRequestNeeded, _streams$screenShare9;
8039
+ return _regenerator.default.wrap(function _callee36$(_context36) {
8040
+ while (1) switch (_context36.prev = _context36.next) {
7673
8041
  case 0:
7674
8042
  this.checkMediaConnection();
7675
8043
  if (!(!streams.microphone && !streams.camera && !((_streams$screenShare = streams.screenShare) !== null && _streams$screenShare !== void 0 && _streams$screenShare.audio) && !((_streams$screenShare2 = streams.screenShare) !== null && _streams$screenShare2 !== void 0 && _streams$screenShare2.video))) {
7676
- _context33.next = 3;
8044
+ _context36.next = 3;
7677
8045
  break;
7678
8046
  }
7679
- return _context33.abrupt("return");
8047
+ return _context36.abrupt("return");
7680
8048
  case 3:
8049
+ if (!((streams === null || streams === void 0 ? void 0 : (_streams$microphone = streams.microphone) === null || _streams$microphone === void 0 ? void 0 : _streams$microphone.readyState) === 'ended' || (streams === null || streams === void 0 ? void 0 : (_streams$camera = streams.camera) === null || _streams$camera === void 0 ? void 0 : _streams$camera.readyState) === 'ended' || (streams === null || streams === void 0 ? void 0 : (_streams$screenShare3 = streams.screenShare) === null || _streams$screenShare3 === void 0 ? void 0 : (_streams$screenShare4 = _streams$screenShare3.audio) === null || _streams$screenShare4 === void 0 ? void 0 : _streams$screenShare4.readyState) === 'ended' || (streams === null || streams === void 0 ? void 0 : (_streams$screenShare5 = streams.screenShare) === null || _streams$screenShare5 === void 0 ? void 0 : (_streams$screenShare6 = _streams$screenShare5.video) === null || _streams$screenShare6 === void 0 ? void 0 : _streams$screenShare6.readyState) === 'ended')) {
8050
+ _context36.next = 5;
8051
+ break;
8052
+ }
8053
+ throw new Error("Attempted to publish stream with ended readyState, correlationId=".concat(this.correlationId));
8054
+ case 5:
7681
8055
  floorRequestNeeded = false; // Screenshare Audio is supported only in multi stream. So we check for screenshare audio presence only if it's a multi stream meeting
7682
- if (!(this.isMultistream && (_streams$screenShare3 = streams.screenShare) !== null && _streams$screenShare3 !== void 0 && _streams$screenShare3.audio)) {
7683
- _context33.next = 8;
8056
+ if (!(this.isMultistream && (_streams$screenShare7 = streams.screenShare) !== null && _streams$screenShare7 !== void 0 && _streams$screenShare7.audio)) {
8057
+ _context36.next = 10;
7684
8058
  break;
7685
8059
  }
7686
- _context33.next = 7;
8060
+ _context36.next = 9;
7687
8061
  return this.setLocalShareAudioStream(streams.screenShare.audio);
7688
- case 7:
8062
+ case 9:
7689
8063
  floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
7690
- case 8:
7691
- if (!((_streams$screenShare4 = streams.screenShare) !== null && _streams$screenShare4 !== void 0 && _streams$screenShare4.video)) {
7692
- _context33.next = 12;
8064
+ case 10:
8065
+ if (!((_streams$screenShare8 = streams.screenShare) !== null && _streams$screenShare8 !== void 0 && _streams$screenShare8.video)) {
8066
+ _context36.next = 14;
7693
8067
  break;
7694
8068
  }
7695
- _context33.next = 11;
7696
- return this.setLocalShareVideoStream((_streams$screenShare5 = streams.screenShare) === null || _streams$screenShare5 === void 0 ? void 0 : _streams$screenShare5.video);
7697
- case 11:
8069
+ _context36.next = 13;
8070
+ return this.setLocalShareVideoStream((_streams$screenShare9 = streams.screenShare) === null || _streams$screenShare9 === void 0 ? void 0 : _streams$screenShare9.video);
8071
+ case 13:
7698
8072
  floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
7699
- case 12:
8073
+ case 14:
7700
8074
  if (!streams.microphone) {
7701
- _context33.next = 15;
8075
+ _context36.next = 17;
7702
8076
  break;
7703
8077
  }
7704
- _context33.next = 15;
8078
+ _context36.next = 17;
7705
8079
  return this.setLocalAudioStream(streams.microphone);
7706
- case 15:
8080
+ case 17:
7707
8081
  if (!streams.camera) {
7708
- _context33.next = 18;
8082
+ _context36.next = 20;
7709
8083
  break;
7710
8084
  }
7711
- _context33.next = 18;
8085
+ _context36.next = 20;
7712
8086
  return this.setLocalVideoStream(streams.camera);
7713
- case 18:
8087
+ case 20:
7714
8088
  if (this.isMultistream) {
7715
- _context33.next = 21;
8089
+ _context36.next = 23;
7716
8090
  break;
7717
8091
  }
7718
- _context33.next = 21;
8092
+ _context36.next = 23;
7719
8093
  return this.updateTranscodedMediaConnection();
7720
- case 21:
8094
+ case 23:
7721
8095
  if (!floorRequestNeeded) {
7722
- _context33.next = 27;
8096
+ _context36.next = 29;
7723
8097
  break;
7724
8098
  }
7725
8099
  this.localShareInstanceId = _uuid.default.v4();
@@ -7743,15 +8117,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7743
8117
  // we're sending the http request to Locus to request the screen share floor
7744
8118
  // only after the SDP update, because that's how it's always been done for transcoded meetings
7745
8119
  // and also if sharing from the start, we need confluence to have been created
7746
- _context33.next = 27;
8120
+ _context36.next = 29;
7747
8121
  return this.enqueueScreenShareFloorRequest();
7748
- case 27:
8122
+ case 29:
7749
8123
  case "end":
7750
- return _context33.stop();
8124
+ return _context36.stop();
7751
8125
  }
7752
- }, _callee33, this);
8126
+ }, _callee36, this);
7753
8127
  }));
7754
- function publishStreams(_x33) {
8128
+ function publishStreams(_x38) {
7755
8129
  return _publishStreams.apply(this, arguments);
7756
8130
  }
7757
8131
  return publishStreams;
@@ -7762,13 +8136,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7762
8136
  * @param {Array<LocalStream>} streams
7763
8137
  * @returns {Promise}
7764
8138
  */
8139
+ )
7765
8140
  }, {
7766
8141
  key: "unpublishStreams",
7767
- value: function () {
7768
- var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34(streams) {
8142
+ value: (function () {
8143
+ var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee37(streams) {
7769
8144
  var promises, _iterator, _step, stream;
7770
- return _regenerator.default.wrap(function _callee34$(_context34) {
7771
- while (1) switch (_context34.prev = _context34.next) {
8145
+ return _regenerator.default.wrap(function _callee37$(_context37) {
8146
+ while (1) switch (_context37.prev = _context37.next) {
7772
8147
  case 0:
7773
8148
  this.checkMediaConnection();
7774
8149
  promises = [];
@@ -7799,7 +8174,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7799
8174
  if (!this.isMultistream) {
7800
8175
  promises.push(this.updateTranscodedMediaConnection());
7801
8176
  }
7802
- _context34.next = 7;
8177
+ _context37.next = 7;
7803
8178
  return _promise.default.all(promises);
7804
8179
  case 7:
7805
8180
  // we're allowing for the SDK to support just audio share as well
@@ -7820,11 +8195,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7820
8195
  }
7821
8196
  case 8:
7822
8197
  case "end":
7823
- return _context34.stop();
8198
+ return _context37.stop();
7824
8199
  }
7825
- }, _callee34, this);
8200
+ }, _callee37, this);
7826
8201
  }));
7827
- function unpublishStreams(_x34) {
8202
+ function unpublishStreams(_x39) {
7828
8203
  return _unpublishStreams.apply(this, arguments);
7829
8204
  }
7830
8205
  return unpublishStreams;
@@ -7838,6 +8213,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7838
8213
  * @returns {number} permissionTokenExpiryInfo.expiryTime The expiry time of permission token from the server
7839
8214
  * @returns {number} permissionTokenExpiryInfo.currentTime The current time of the local machine
7840
8215
  */
8216
+ )
7841
8217
  }, {
7842
8218
  key: "getPermissionTokenExpiryInfo",
7843
8219
  value: function getPermissionTokenExpiryInfo() {
@@ -7882,36 +8258,35 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7882
8258
  }
7883
8259
  }], [{
7884
8260
  key: "handleDeviceLogging",
7885
- value: function () {
7886
- var _handleDeviceLogging = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35() {
8261
+ value: (function () {
8262
+ var _handleDeviceLogging = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee38() {
7887
8263
  var devices;
7888
- return _regenerator.default.wrap(function _callee35$(_context35) {
7889
- while (1) switch (_context35.prev = _context35.next) {
8264
+ return _regenerator.default.wrap(function _callee38$(_context38) {
8265
+ while (1) switch (_context38.prev = _context38.next) {
7890
8266
  case 0:
7891
- _context35.prev = 0;
7892
- _context35.next = 3;
8267
+ _context38.prev = 0;
8268
+ _context38.next = 3;
7893
8269
  return (0, _mediaHelpers.getDevices)();
7894
8270
  case 3:
7895
- devices = _context35.sent;
7896
- _util.default.handleDeviceLogging(devices);
7897
- _context35.next = 9;
8271
+ devices = _context38.sent;
8272
+ _util2.default.handleDeviceLogging(devices);
8273
+ _context38.next = 9;
7898
8274
  break;
7899
8275
  case 7:
7900
- _context35.prev = 7;
7901
- _context35.t0 = _context35["catch"](0);
8276
+ _context38.prev = 7;
8277
+ _context38.t0 = _context38["catch"](0);
7902
8278
  case 9:
7903
8279
  case "end":
7904
- return _context35.stop();
8280
+ return _context38.stop();
7905
8281
  }
7906
- }, _callee35, null, [[0, 7]]);
8282
+ }, _callee38, null, [[0, 7]]);
7907
8283
  }));
7908
8284
  function handleDeviceLogging() {
7909
8285
  return _handleDeviceLogging.apply(this, arguments);
7910
8286
  }
7911
8287
  return handleDeviceLogging;
7912
- }()
8288
+ }())
7913
8289
  }]);
7914
8290
  return Meeting;
7915
8291
  }(_webexCore.StatelessWebexPlugin);
7916
- exports.default = Meeting;
7917
8292
  //# sourceMappingURL=index.js.map