@webex/plugin-meetings 3.0.0 → 3.1.0-next.10

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 (272) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/common/errors/{reconnection-in-progress.js → reconnection-not-started.js} +27 -15
  4. package/dist/common/errors/reconnection-not-started.js.map +1 -0
  5. package/dist/config.js +2 -1
  6. package/dist/config.js.map +1 -1
  7. package/dist/constants.js +18 -6
  8. package/dist/constants.js.map +1 -1
  9. package/dist/index.js +86 -0
  10. package/dist/index.js.map +1 -1
  11. package/dist/interpretation/index.js +16 -2
  12. package/dist/interpretation/index.js.map +1 -1
  13. package/dist/interpretation/siLanguage.js +1 -1
  14. package/dist/locus-info/controlsUtils.js +7 -1
  15. package/dist/locus-info/controlsUtils.js.map +1 -1
  16. package/dist/locus-info/index.js +10 -0
  17. package/dist/locus-info/index.js.map +1 -1
  18. package/dist/locus-info/mediaSharesUtils.js +15 -1
  19. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  20. package/dist/locus-info/selfUtils.js +5 -0
  21. package/dist/locus-info/selfUtils.js.map +1 -1
  22. package/dist/media/MediaConnectionAwaiter.js +163 -0
  23. package/dist/media/MediaConnectionAwaiter.js.map +1 -0
  24. package/dist/media/index.js +4 -1
  25. package/dist/media/index.js.map +1 -1
  26. package/dist/media/properties.js +106 -81
  27. package/dist/media/properties.js.map +1 -1
  28. package/dist/meeting/in-meeting-actions.js +6 -0
  29. package/dist/meeting/in-meeting-actions.js.map +1 -1
  30. package/dist/meeting/index.js +1010 -753
  31. package/dist/meeting/index.js.map +1 -1
  32. package/dist/meeting/muteState.js +37 -25
  33. package/dist/meeting/muteState.js.map +1 -1
  34. package/dist/meeting/request.js +32 -23
  35. package/dist/meeting/request.js.map +1 -1
  36. package/dist/meeting/util.js +10 -0
  37. package/dist/meeting/util.js.map +1 -1
  38. package/dist/meeting-info/util.js +304 -267
  39. package/dist/meeting-info/util.js.map +1 -1
  40. package/dist/meeting-info/utilv2.js +334 -295
  41. package/dist/meeting-info/utilv2.js.map +1 -1
  42. package/dist/meetings/index.js +21 -23
  43. package/dist/meetings/index.js.map +1 -1
  44. package/dist/multistream/mediaRequestManager.js +1 -1
  45. package/dist/multistream/mediaRequestManager.js.map +1 -1
  46. package/dist/multistream/remoteMediaGroup.js +16 -2
  47. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  48. package/dist/multistream/remoteMediaManager.js +179 -65
  49. package/dist/multistream/remoteMediaManager.js.map +1 -1
  50. package/dist/multistream/sendSlotManager.js +22 -0
  51. package/dist/multistream/sendSlotManager.js.map +1 -1
  52. package/dist/reachability/clusterReachability.js +29 -15
  53. package/dist/reachability/clusterReachability.js.map +1 -1
  54. package/dist/reachability/index.js +18 -2
  55. package/dist/reachability/index.js.map +1 -1
  56. package/dist/reachability/request.js +12 -10
  57. package/dist/reachability/request.js.map +1 -1
  58. package/dist/reachability/util.js +19 -0
  59. package/dist/reachability/util.js.map +1 -1
  60. package/dist/reconnection-manager/index.js +140 -110
  61. package/dist/reconnection-manager/index.js.map +1 -1
  62. package/dist/roap/index.js +15 -0
  63. package/dist/roap/index.js.map +1 -1
  64. package/dist/roap/request.js +3 -3
  65. package/dist/roap/request.js.map +1 -1
  66. package/dist/roap/turnDiscovery.js +307 -126
  67. package/dist/roap/turnDiscovery.js.map +1 -1
  68. package/dist/statsAnalyzer/index.js +57 -30
  69. package/dist/statsAnalyzer/index.js.map +1 -1
  70. package/dist/statsAnalyzer/mqaUtil.js +3 -0
  71. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  72. package/dist/types/common/errors/reconnection-not-started.d.ts +13 -0
  73. package/dist/{config.d.ts → types/config.d.ts} +1 -0
  74. package/dist/{constants.d.ts → types/constants.d.ts} +15 -6
  75. package/dist/types/index.d.ts +19 -0
  76. package/dist/types/media/MediaConnectionAwaiter.d.ts +61 -0
  77. package/dist/{media → types/media}/properties.d.ts +26 -2
  78. package/dist/{meeting → types/meeting}/in-meeting-actions.d.ts +6 -0
  79. package/dist/{meeting → types/meeting}/index.d.ts +29 -12
  80. package/dist/{meeting → types/meeting}/muteState.d.ts +2 -8
  81. package/dist/{meeting → types/meeting}/request.d.ts +3 -0
  82. package/dist/{meeting → types/meeting}/util.d.ts +3 -0
  83. package/dist/{meeting-info → types/meeting-info}/index.d.ts +1 -1
  84. package/dist/{meeting-info → types/meeting-info}/meeting-info-v2.d.ts +1 -1
  85. package/dist/types/meeting-info/util.d.ts +49 -0
  86. package/dist/types/meeting-info/utilv2.d.ts +65 -0
  87. package/dist/{meetings → types/meetings}/index.d.ts +9 -16
  88. package/dist/{multistream → types/multistream}/mediaRequestManager.d.ts +2 -1
  89. package/dist/{multistream → types/multistream}/remoteMediaGroup.d.ts +2 -0
  90. package/dist/{multistream → types/multistream}/remoteMediaManager.d.ts +15 -0
  91. package/dist/{multistream → types/multistream}/sendSlotManager.d.ts +9 -1
  92. package/dist/{reachability → types/reachability}/clusterReachability.d.ts +1 -0
  93. package/dist/{reachability → types/reachability}/index.d.ts +4 -0
  94. package/dist/{reachability → types/reachability}/util.d.ts +7 -0
  95. package/dist/{reconnection-manager → types/reconnection-manager}/index.d.ts +4 -14
  96. package/dist/{roap → types/roap}/index.d.ts +10 -2
  97. package/dist/{roap → types/roap}/turnDiscovery.d.ts +64 -17
  98. package/dist/webinar/index.js +1 -1
  99. package/package.json +23 -23
  100. package/src/common/errors/reconnection-not-started.ts +25 -0
  101. package/src/config.ts +1 -0
  102. package/src/constants.ts +18 -6
  103. package/src/index.ts +31 -0
  104. package/src/interpretation/index.ts +18 -1
  105. package/src/locus-info/controlsUtils.ts +11 -0
  106. package/src/locus-info/index.ts +16 -0
  107. package/src/locus-info/mediaSharesUtils.ts +16 -0
  108. package/src/locus-info/selfUtils.ts +5 -0
  109. package/src/media/MediaConnectionAwaiter.ts +174 -0
  110. package/src/media/index.ts +3 -1
  111. package/src/media/properties.ts +73 -46
  112. package/src/meeting/in-meeting-actions.ts +12 -0
  113. package/src/meeting/index.ts +389 -180
  114. package/src/meeting/muteState.ts +34 -20
  115. package/src/meeting/request.ts +18 -2
  116. package/src/meeting/util.ts +9 -0
  117. package/src/meeting-info/util.ts +241 -233
  118. package/src/meeting-info/utilv2.ts +250 -243
  119. package/src/meetings/index.ts +20 -24
  120. package/src/multistream/mediaRequestManager.ts +4 -1
  121. package/src/multistream/remoteMediaGroup.ts +19 -0
  122. package/src/multistream/remoteMediaManager.ts +101 -16
  123. package/src/multistream/sendSlotManager.ts +28 -0
  124. package/src/reachability/clusterReachability.ts +20 -5
  125. package/src/reachability/index.ts +24 -1
  126. package/src/reachability/request.ts +15 -11
  127. package/src/reachability/util.ts +21 -0
  128. package/src/reconnection-manager/index.ts +129 -106
  129. package/src/roap/index.ts +25 -3
  130. package/src/roap/request.ts +3 -3
  131. package/src/roap/turnDiscovery.ts +244 -78
  132. package/src/statsAnalyzer/index.ts +67 -27
  133. package/src/statsAnalyzer/mqaUtil.ts +5 -0
  134. package/test/integration/spec/journey.js +14 -14
  135. package/test/integration/spec/space-meeting.js +1 -1
  136. package/test/unit/spec/interpretation/index.ts +39 -3
  137. package/test/unit/spec/locus-info/controlsUtils.js +20 -0
  138. package/test/unit/spec/locus-info/index.js +49 -19
  139. package/test/unit/spec/locus-info/mediaSharesUtils.ts +9 -0
  140. package/test/unit/spec/locus-info/selfUtils.js +42 -12
  141. package/test/unit/spec/media/MediaConnectionAwaiter.ts +344 -0
  142. package/test/unit/spec/media/index.ts +89 -78
  143. package/test/unit/spec/media/properties.ts +160 -209
  144. package/test/unit/spec/meeting/in-meeting-actions.ts +6 -0
  145. package/test/unit/spec/meeting/index.js +833 -205
  146. package/test/unit/spec/meeting/muteState.js +219 -67
  147. package/test/unit/spec/meeting/request.js +21 -0
  148. package/test/unit/spec/meeting/utils.js +9 -1
  149. package/test/unit/spec/meeting-info/utilv2.js +6 -0
  150. package/test/unit/spec/meetings/index.js +41 -26
  151. package/test/unit/spec/multistream/mediaRequestManager.ts +20 -2
  152. package/test/unit/spec/multistream/remoteMediaGroup.ts +79 -1
  153. package/test/unit/spec/multistream/remoteMediaManager.ts +199 -1
  154. package/test/unit/spec/multistream/sendSlotManager.ts +50 -18
  155. package/test/unit/spec/reachability/clusterReachability.ts +86 -22
  156. package/test/unit/spec/reachability/index.ts +197 -60
  157. package/test/unit/spec/reachability/request.js +15 -7
  158. package/test/unit/spec/reachability/util.ts +32 -2
  159. package/test/unit/spec/reconnection-manager/index.js +155 -39
  160. package/test/unit/spec/roap/index.ts +61 -6
  161. package/test/unit/spec/roap/turnDiscovery.ts +298 -16
  162. package/test/unit/spec/stats-analyzer/index.js +190 -0
  163. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  164. package/dist/common/errors/reconnection-in-progress.js.map +0 -1
  165. package/dist/index.d.ts +0 -7
  166. package/dist/meeting-info/util.d.ts +0 -2
  167. package/dist/meeting-info/utilv2.d.ts +0 -2
  168. package/dist/member/member.types.d.ts +0 -11
  169. package/dist/member/member.types.js +0 -17
  170. package/dist/member/member.types.js.map +0 -1
  171. package/src/common/errors/reconnection-in-progress.ts +0 -8
  172. package/src/member/member.types.ts +0 -13
  173. /package/dist/{annotation → types/annotation}/annotation.types.d.ts +0 -0
  174. /package/dist/{annotation → types/annotation}/constants.d.ts +0 -0
  175. /package/dist/{annotation → types/annotation}/index.d.ts +0 -0
  176. /package/dist/{breakouts → types/breakouts}/breakout.d.ts +0 -0
  177. /package/dist/{breakouts → types/breakouts}/collection.d.ts +0 -0
  178. /package/dist/{breakouts → types/breakouts}/edit-lock-error.d.ts +0 -0
  179. /package/dist/{breakouts → types/breakouts}/events.d.ts +0 -0
  180. /package/dist/{breakouts → types/breakouts}/index.d.ts +0 -0
  181. /package/dist/{breakouts → types/breakouts}/request.d.ts +0 -0
  182. /package/dist/{breakouts → types/breakouts}/utils.d.ts +0 -0
  183. /package/dist/{common → types/common}/browser-detection.d.ts +0 -0
  184. /package/dist/{common → types/common}/collection.d.ts +0 -0
  185. /package/dist/{common → types/common}/config.d.ts +0 -0
  186. /package/dist/{common → types/common}/errors/captcha-error.d.ts +0 -0
  187. /package/dist/{common → types/common}/errors/intent-to-join.d.ts +0 -0
  188. /package/dist/{common → types/common}/errors/join-meeting.d.ts +0 -0
  189. /package/dist/{common → types/common}/errors/media.d.ts +0 -0
  190. /package/dist/{common → types/common}/errors/no-meeting-info.d.ts +0 -0
  191. /package/dist/{common → types/common}/errors/parameter.d.ts +0 -0
  192. /package/dist/{common → types/common}/errors/password-error.d.ts +0 -0
  193. /package/dist/{common → types/common}/errors/permission.d.ts +0 -0
  194. /package/dist/{common → types/common}/errors/reclaim-host-role-errors.d.ts +0 -0
  195. /package/dist/{common → types/common}/errors/reconnection.d.ts +0 -0
  196. /package/dist/{common → types/common}/errors/stats.d.ts +0 -0
  197. /package/dist/{common → types/common}/errors/webex-errors.d.ts +0 -0
  198. /package/dist/{common → types/common}/errors/webex-meetings-error.d.ts +0 -0
  199. /package/dist/{common → types/common}/events/events-scope.d.ts +0 -0
  200. /package/dist/{common → types/common}/events/events.d.ts +0 -0
  201. /package/dist/{common → types/common}/events/trigger-proxy.d.ts +0 -0
  202. /package/dist/{common → types/common}/events/util.d.ts +0 -0
  203. /package/dist/{common → types/common}/logs/logger-config.d.ts +0 -0
  204. /package/dist/{common → types/common}/logs/logger-proxy.d.ts +0 -0
  205. /package/dist/{common → types/common}/logs/request.d.ts +0 -0
  206. /package/dist/{common → types/common}/queue.d.ts +0 -0
  207. /package/dist/{controls-options-manager → types/controls-options-manager}/constants.d.ts +0 -0
  208. /package/dist/{controls-options-manager → types/controls-options-manager}/enums.d.ts +0 -0
  209. /package/dist/{controls-options-manager → types/controls-options-manager}/index.d.ts +0 -0
  210. /package/dist/{controls-options-manager → types/controls-options-manager}/types.d.ts +0 -0
  211. /package/dist/{controls-options-manager → types/controls-options-manager}/util.d.ts +0 -0
  212. /package/dist/{interceptors → types/interceptors}/index.d.ts +0 -0
  213. /package/dist/{interceptors → types/interceptors}/locusRetry.d.ts +0 -0
  214. /package/dist/{interpretation → types/interpretation}/collection.d.ts +0 -0
  215. /package/dist/{interpretation → types/interpretation}/index.d.ts +0 -0
  216. /package/dist/{interpretation → types/interpretation}/siLanguage.d.ts +0 -0
  217. /package/dist/{locus-info → types/locus-info}/controlsUtils.d.ts +0 -0
  218. /package/dist/{locus-info → types/locus-info}/embeddedAppsUtils.d.ts +0 -0
  219. /package/dist/{locus-info → types/locus-info}/fullState.d.ts +0 -0
  220. /package/dist/{locus-info → types/locus-info}/hostUtils.d.ts +0 -0
  221. /package/dist/{locus-info → types/locus-info}/index.d.ts +0 -0
  222. /package/dist/{locus-info → types/locus-info}/infoUtils.d.ts +0 -0
  223. /package/dist/{locus-info → types/locus-info}/mediaSharesUtils.d.ts +0 -0
  224. /package/dist/{locus-info → types/locus-info}/parser.d.ts +0 -0
  225. /package/dist/{locus-info → types/locus-info}/selfUtils.d.ts +0 -0
  226. /package/dist/{media → types/media}/index.d.ts +0 -0
  227. /package/dist/{media → types/media}/util.d.ts +0 -0
  228. /package/dist/{mediaQualityMetrics → types/mediaQualityMetrics}/config.d.ts +0 -0
  229. /package/dist/{meeting → types/meeting}/locusMediaRequest.d.ts +0 -0
  230. /package/dist/{meeting → types/meeting}/request.type.d.ts +0 -0
  231. /package/dist/{meeting → types/meeting}/state.d.ts +0 -0
  232. /package/dist/{meeting → types/meeting}/voicea-meeting.d.ts +0 -0
  233. /package/dist/{meeting-info → types/meeting-info}/collection.d.ts +0 -0
  234. /package/dist/{meeting-info → types/meeting-info}/request.d.ts +0 -0
  235. /package/dist/{meetings → types/meetings}/collection.d.ts +0 -0
  236. /package/dist/{meetings → types/meetings}/meetings.types.d.ts +0 -0
  237. /package/dist/{meetings → types/meetings}/request.d.ts +0 -0
  238. /package/dist/{meetings → types/meetings}/util.d.ts +0 -0
  239. /package/dist/{member → types/member}/index.d.ts +0 -0
  240. /package/dist/{member → types/member}/types.d.ts +0 -0
  241. /package/dist/{member → types/member}/util.d.ts +0 -0
  242. /package/dist/{members → types/members}/collection.d.ts +0 -0
  243. /package/dist/{members → types/members}/index.d.ts +0 -0
  244. /package/dist/{members → types/members}/request.d.ts +0 -0
  245. /package/dist/{members → types/members}/types.d.ts +0 -0
  246. /package/dist/{members → types/members}/util.d.ts +0 -0
  247. /package/dist/{metrics → types/metrics}/constants.d.ts +0 -0
  248. /package/dist/{metrics → types/metrics}/index.d.ts +0 -0
  249. /package/dist/{multistream → types/multistream}/receiveSlot.d.ts +0 -0
  250. /package/dist/{multistream → types/multistream}/receiveSlotManager.d.ts +0 -0
  251. /package/dist/{multistream → types/multistream}/remoteMedia.d.ts +0 -0
  252. /package/dist/{networkQualityMonitor → types/networkQualityMonitor}/index.d.ts +0 -0
  253. /package/dist/{personal-meeting-room → types/personal-meeting-room}/index.d.ts +0 -0
  254. /package/dist/{personal-meeting-room → types/personal-meeting-room}/request.d.ts +0 -0
  255. /package/dist/{personal-meeting-room → types/personal-meeting-room}/util.d.ts +0 -0
  256. /package/dist/{reachability → types/reachability}/request.d.ts +0 -0
  257. /package/dist/{reactions → types/reactions}/constants.d.ts +0 -0
  258. /package/dist/{reactions → types/reactions}/reactions.d.ts +0 -0
  259. /package/dist/{reactions → types/reactions}/reactions.type.d.ts +0 -0
  260. /package/dist/{recording-controller → types/recording-controller}/enums.d.ts +0 -0
  261. /package/dist/{recording-controller → types/recording-controller}/index.d.ts +0 -0
  262. /package/dist/{recording-controller → types/recording-controller}/util.d.ts +0 -0
  263. /package/dist/{roap → types/roap}/request.d.ts +0 -0
  264. /package/dist/{rtcMetrics → types/rtcMetrics}/constants.d.ts +0 -0
  265. /package/dist/{rtcMetrics → types/rtcMetrics}/index.d.ts +0 -0
  266. /package/dist/{statsAnalyzer → types/statsAnalyzer}/global.d.ts +0 -0
  267. /package/dist/{statsAnalyzer → types/statsAnalyzer}/index.d.ts +0 -0
  268. /package/dist/{statsAnalyzer → types/statsAnalyzer}/mqaUtil.d.ts +0 -0
  269. /package/dist/{transcription → types/transcription}/index.d.ts +0 -0
  270. /package/dist/{webinar → types/webinar}/collection.d.ts +0 -0
  271. /package/dist/{webinar → types/webinar}/index.d.ts +0 -0
  272. /package/test/unit/spec/locus-info/{lib/selfConstant.js → selfConstant.js} +0 -0
@@ -44,6 +44,7 @@ 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"));
@@ -53,23 +54,21 @@ var _muteState = require("./muteState");
53
54
  var _locusInfo = _interopRequireDefault(require("../locus-info"));
54
55
  var _metrics = _interopRequireDefault(require("../metrics"));
55
56
  var _reconnectionManager = _interopRequireDefault(require("../reconnection-manager"));
57
+ var _reconnectionNotStarted = _interopRequireDefault(require("../common/errors/reconnection-not-started"));
56
58
  var _request = _interopRequireDefault(require("./request"));
57
59
  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"));
60
+ var _util2 = _interopRequireDefault(require("./util"));
61
+ var _util3 = _interopRequireDefault(require("../meetings/util"));
62
+ var _util4 = _interopRequireDefault(require("../recording-controller/util"));
63
+ var _util5 = _interopRequireDefault(require("../controls-options-manager/util"));
64
+ var _util6 = _interopRequireDefault(require("../media/util"));
63
65
  var _reactions = require("../reactions/reactions");
64
66
  var _passwordError = _interopRequireDefault(require("../common/errors/password-error"));
65
67
  var _captchaError = _interopRequireDefault(require("../common/errors/captcha-error"));
66
- var _reconnection = _interopRequireDefault(require("../common/errors/reconnection"));
67
- var _reconnectionInProgress = _interopRequireDefault(require("../common/errors/reconnection-in-progress"));
68
68
  var _constants = require("../constants");
69
69
  var _constants2 = _interopRequireDefault(require("../metrics/constants"));
70
70
  var _parameter = _interopRequireDefault(require("../common/errors/parameter"));
71
71
  var _meetingInfoV = require("../meeting-info/meeting-info-v2");
72
- var _browserDetection = _interopRequireDefault(require("../common/browser-detection"));
73
72
  var _receiveSlotManager = require("../multistream/receiveSlotManager");
74
73
  var _sendSlotManager = _interopRequireDefault(require("../multistream/sendSlotManager"));
75
74
  var _mediaRequestManager = require("../multistream/mediaRequestManager");
@@ -92,8 +91,6 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
92
91
  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); }; }
93
92
  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
93
  // @ts-ignore - Types not available for @webex/common
95
- var _BrowserDetection = (0, _browserDetection.default)(),
96
- isBrowser = _BrowserDetection.isBrowser;
97
94
  var logRequest = function logRequest(request, _ref) {
98
95
  var _ref$logText = _ref.logText,
99
96
  logText = _ref$logText === void 0 ? '' : _ref$logText;
@@ -495,10 +492,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
495
492
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "areVoiceaEventsSetup", false);
496
493
  (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) {
497
494
  _this.transcription.languageOptions = payload;
498
- _triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
495
+ _loggerProxy.default.logger.debug("".concat(_util.default.getScopeLog({
499
496
  file: 'meeting/index',
500
497
  function: 'setUpVoiceaListeners'
501
- }, _constants.EVENT_TRIGGERS.MEETING_STARTED_RECEIVING_TRANSCRIPTION, payload);
498
+ }), "event#").concat(_constants.EVENT_TRIGGERS.MEETING_STARTED_RECEIVING_TRANSCRIPTION));
499
+
500
+ // @ts-ignore
501
+ _this.trigger(_constants.EVENT_TRIGGERS.MEETING_STARTED_RECEIVING_TRANSCRIPTION, payload);
502
502
  }), _internalPluginVoicea.EVENT_TRIGGERS.CAPTIONS_TURNED_ON, function () {
503
503
  _this.transcription.status = _internalPluginVoicea.TURN_ON_CAPTION_STATUS.ENABLED;
504
504
  }), _internalPluginVoicea.EVENT_TRIGGERS.EVA_COMMAND, function (payload) {
@@ -511,10 +511,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
511
511
  data: data,
512
512
  meeting: (0, _assertThisInitialized2.default)(_this)
513
513
  });
514
- _triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
514
+ _loggerProxy.default.logger.debug("".concat(_util.default.getScopeLog({
515
515
  file: 'meeting/index',
516
516
  function: 'setUpVoiceaListeners'
517
- }, _constants.EVENT_TRIGGERS.MEETING_CAPTION_RECEIVED, {
517
+ }), "event#").concat(_constants.EVENT_TRIGGERS.MEETING_CAPTION_RECEIVED));
518
+
519
+ // @ts-ignore
520
+ _this.trigger(_constants.EVENT_TRIGGERS.MEETING_CAPTION_RECEIVED, {
518
521
  captions: _this.transcription.captions,
519
522
  interimCaptions: _this.transcription.interimCaptions
520
523
  });
@@ -525,6 +528,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
525
528
  // used for waiting for a response
526
529
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "sdpResponseTimer", void 0);
527
530
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "hasMediaConnectionConnectedAtLeastOnce", void 0);
531
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "joinWithMediaRetryInfo", void 0);
528
532
  /**
529
533
  * Callback called when a relay event is received from meeting LLM Connection
530
534
  * @param {RelayEvent} e Event object coming from LLM Connection
@@ -629,7 +633,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
629
633
  * @returns {undefined}
630
634
  */
631
635
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "roapMessageReceived", function (roapMessage) {
632
- var mediaServer = _util2.default.getMediaServer(roapMessage.sdp);
636
+ var mediaServer = _util3.default.getMediaServer(roapMessage.sdp);
633
637
  _this.mediaProperties.webrtcMediaConnection.roapMessageReceived(roapMessage);
634
638
  if (mediaServer) {
635
639
  _this.mediaProperties.webrtcMediaConnection.mediaServer = mediaServer;
@@ -724,7 +728,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
724
728
  }), {
725
729
  logText: "".concat(LOG_HEADER, " Roap Offer")
726
730
  }).catch(function () {
727
- _this.deferSDPAnswer.reject();
731
+ _this.deferSDPAnswer.reject(new Error('failed to send ROAP SDP offer'));
728
732
  clearTimeout(_this.sdpResponseTimer);
729
733
  _this.sdpResponseTimer = undefined;
730
734
  });
@@ -779,7 +783,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
779
783
  _loggerProxy.default.logger.log("Meeting:index#setupMediaConnectionListeners --> REMOTE_TRACK_ADDED event received for webrtcMediaConnection: ".concat((0, _stringify.default)(event)));
780
784
  if (event.track) {
781
785
  var mediaTrack = event.track;
782
- var remoteStream = new _mediaHelpers.RemoteStream(_util5.default.createMediaStream([mediaTrack]));
786
+ var remoteStream = new _mediaHelpers.RemoteStream(_util6.default.createMediaStream([mediaTrack]));
783
787
 
784
788
  // eslint-disable-next-line @typescript-eslint/no-shadow
785
789
  var eventType;
@@ -1001,6 +1005,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
1001
1005
  meetingId: _this.id
1002
1006
  }
1003
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
+ }
1004
1021
  });
1005
1022
  _this.statsAnalyzer.on(_statsAnalyzer.EVENTS.REMOTE_MEDIA_STOPPED, function (data) {
1006
1023
  // @ts-ignore
@@ -1014,6 +1031,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
1014
1031
  meetingId: _this.id
1015
1032
  }
1016
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
+ }
1017
1047
  });
1018
1048
  });
1019
1049
  /**
@@ -1941,11 +1971,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
1941
1971
  * helper class for managing remote streams
1942
1972
  */
1943
1973
  _this.remoteMediaManager = null;
1944
- _this.localAudioStreamMuteStateHandler = function (muted) {
1945
- _this.audio.handleLocalStreamMuteStateChange((0, _assertThisInitialized2.default)(_this), muted);
1974
+ _this.localAudioStreamMuteStateHandler = function () {
1975
+ _this.audio.handleLocalStreamMuteStateChange((0, _assertThisInitialized2.default)(_this));
1946
1976
  };
1947
- _this.localVideoStreamMuteStateHandler = function (muted) {
1948
- _this.video.handleLocalStreamMuteStateChange((0, _assertThisInitialized2.default)(_this), muted);
1977
+ _this.localVideoStreamMuteStateHandler = function () {
1978
+ _this.video.handleLocalStreamMuteStateChange((0, _assertThisInitialized2.default)(_this));
1949
1979
  };
1950
1980
 
1951
1981
  // The handling of output track changes should be done inside
@@ -2011,6 +2041,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
2011
2041
  * @memberof Meeting
2012
2042
  */
2013
2043
  _this.hasMediaConnectionConnectedAtLeastOnce = false;
2044
+
2045
+ /**
2046
+ * Information needed for a retry of a call to joinWithMedia
2047
+ * @instance
2048
+ * @type {{isRetry: boolean; prevJoinResponse?: any}}
2049
+ * @private
2050
+ * @memberof Meeting
2051
+ */
2052
+ _this.joinWithMediaRetryInfo = {
2053
+ isRetry: false,
2054
+ prevJoinResponse: undefined
2055
+ };
2014
2056
  return _this;
2015
2057
  }
2016
2058
 
@@ -2905,24 +2947,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
2905
2947
  }
2906
2948
  }
2907
2949
  });
2908
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_BREAKOUT_UPDATED, function (_ref12) {
2909
- var breakout = _ref12.breakout;
2950
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_MANUAL_CAPTION_UPDATED, function (_ref12) {
2951
+ var enable = _ref12.enable;
2952
+ _triggerProxy.default.trigger(_this13, {
2953
+ file: 'meeting/index',
2954
+ function: 'setupLocusControlsListener'
2955
+ }, _constants.EVENT_TRIGGERS.MEETING_MANUAL_CAPTION_UPDATED, {
2956
+ enable: enable
2957
+ });
2958
+ });
2959
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_BREAKOUT_UPDATED, function (_ref13) {
2960
+ var breakout = _ref13.breakout;
2910
2961
  _this13.breakouts.updateBreakout(breakout);
2911
2962
  _triggerProxy.default.trigger(_this13, {
2912
2963
  file: 'meeting/index',
2913
2964
  function: 'setupLocusControlsListener'
2914
2965
  }, _constants.EVENT_TRIGGERS.MEETING_BREAKOUTS_UPDATE);
2915
2966
  });
2916
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_INTERPRETATION_UPDATED, function (_ref13) {
2917
- var interpretation = _ref13.interpretation;
2967
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_INTERPRETATION_UPDATED, function (_ref14) {
2968
+ var interpretation = _ref14.interpretation;
2918
2969
  _this13.simultaneousInterpretation.updateInterpretation(interpretation);
2919
2970
  _triggerProxy.default.trigger(_this13, {
2920
2971
  file: 'meeting/index',
2921
2972
  function: 'setupLocusControlsListener'
2922
2973
  }, _constants.EVENT_TRIGGERS.MEETING_INTERPRETATION_UPDATE);
2923
2974
  });
2924
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED, function (_ref14) {
2925
- var entryExitTone = _ref14.entryExitTone;
2975
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED, function (_ref15) {
2976
+ var entryExitTone = _ref15.entryExitTone;
2926
2977
  _triggerProxy.default.trigger(_this13, {
2927
2978
  file: 'meeting/index',
2928
2979
  function: 'setupLocusControlsListener'
@@ -2930,8 +2981,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
2930
2981
  entryExitTone: entryExitTone
2931
2982
  });
2932
2983
  });
2933
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MUTE_ON_ENTRY_CHANGED, function (_ref15) {
2934
- var state = _ref15.state;
2984
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MUTE_ON_ENTRY_CHANGED, function (_ref16) {
2985
+ var state = _ref16.state;
2935
2986
  _triggerProxy.default.trigger(_this13, {
2936
2987
  file: 'meeting/index',
2937
2988
  function: 'setupLocusControlsListener'
@@ -2939,8 +2990,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
2939
2990
  state: state
2940
2991
  });
2941
2992
  });
2942
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_SHARE_CONTROL_CHANGED, function (_ref16) {
2943
- var state = _ref16.state;
2993
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_SHARE_CONTROL_CHANGED, function (_ref17) {
2994
+ var state = _ref17.state;
2944
2995
  _triggerProxy.default.trigger(_this13, {
2945
2996
  file: 'meeting/index',
2946
2997
  function: 'setupLocusControlsListener'
@@ -2948,8 +2999,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
2948
2999
  state: state
2949
3000
  });
2950
3001
  });
2951
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_DISALLOW_UNMUTE_CHANGED, function (_ref17) {
2952
- var state = _ref17.state;
3002
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_DISALLOW_UNMUTE_CHANGED, function (_ref18) {
3003
+ var state = _ref18.state;
2953
3004
  _triggerProxy.default.trigger(_this13, {
2954
3005
  file: 'meeting/index',
2955
3006
  function: 'setupLocusControlsListener'
@@ -2957,8 +3008,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
2957
3008
  state: state
2958
3009
  });
2959
3010
  });
2960
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_REACTIONS_CHANGED, function (_ref18) {
2961
- var state = _ref18.state;
3011
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_REACTIONS_CHANGED, function (_ref19) {
3012
+ var state = _ref19.state;
2962
3013
  _triggerProxy.default.trigger(_this13, {
2963
3014
  file: 'meeting/index',
2964
3015
  function: 'setupLocusControlsListener'
@@ -2966,8 +3017,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
2966
3017
  state: state
2967
3018
  });
2968
3019
  });
2969
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED, function (_ref19) {
2970
- var state = _ref19.state;
3020
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED, function (_ref20) {
3021
+ var state = _ref20.state;
2971
3022
  _triggerProxy.default.trigger(_this13, {
2972
3023
  file: 'meeting/index',
2973
3024
  function: 'setupLocusControlsListener'
@@ -2975,8 +3026,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
2975
3026
  state: state
2976
3027
  });
2977
3028
  });
2978
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_RAISE_HAND_CHANGED, function (_ref20) {
2979
- var state = _ref20.state;
3029
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_RAISE_HAND_CHANGED, function (_ref21) {
3030
+ var state = _ref21.state;
2980
3031
  _triggerProxy.default.trigger(_this13, {
2981
3032
  file: 'meeting/index',
2982
3033
  function: 'setupLocusControlsListener'
@@ -2984,8 +3035,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
2984
3035
  state: state
2985
3036
  });
2986
3037
  });
2987
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIDEO_CHANGED, function (_ref21) {
2988
- var state = _ref21.state;
3038
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIDEO_CHANGED, function (_ref22) {
3039
+ var state = _ref22.state;
2989
3040
  _triggerProxy.default.trigger(_this13, {
2990
3041
  file: 'meeting/index',
2991
3042
  function: 'setupLocusControlsListener'
@@ -3012,7 +3063,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3012
3063
  function: 'triggerAnnotationInfoEvent'
3013
3064
  }, _constants.EVENT_TRIGGERS.MEETING_UPDATE_ANNOTATION_INFO, {
3014
3065
  annotationInfo: contentShare === null || contentShare === void 0 ? void 0 : contentShare.annotation,
3015
- meetingId: this.id
3066
+ meetingId: this.id,
3067
+ resourceType: contentShare === null || contentShare === void 0 ? void 0 : contentShare.resourceType
3016
3068
  });
3017
3069
  }
3018
3070
  }
@@ -3031,7 +3083,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3031
3083
  var _this14 = this;
3032
3084
  // Will get triggered on local and remote share
3033
3085
  this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_MEDIA_SHARES, /*#__PURE__*/function () {
3034
- var _ref22 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(payload) {
3086
+ var _ref23 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(payload) {
3035
3087
  var _payload$previous, _payload$previous2;
3036
3088
  var _payload$current, contentShare, whiteboardShare, previousContentShare, previousWhiteboardShare, newShareStatus, oldShareStatus, sendStartedSharingRemote, _this14$mediaProperti;
3037
3089
  return _regenerator.default.wrap(function _callee8$(_context8) {
@@ -3041,7 +3093,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3041
3093
  previousContentShare = (_payload$previous = payload.previous) === null || _payload$previous === void 0 ? void 0 : _payload$previous.content;
3042
3094
  previousWhiteboardShare = (_payload$previous2 = payload.previous) === null || _payload$previous2 === void 0 ? void 0 : _payload$previous2.whiteboard;
3043
3095
  _this14.triggerAnnotationInfoEvent(contentShare, previousContentShare);
3044
- 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))) {
3096
+ 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))) {
3045
3097
  _context8.next = 6;
3046
3098
  break;
3047
3099
  }
@@ -3122,7 +3174,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3122
3174
  memberId: contentShare.beneficiaryId,
3123
3175
  url: contentShare.url,
3124
3176
  shareInstanceId: _this14.remoteShareInstanceId,
3125
- annotationInfo: contentShare.annotation
3177
+ annotationInfo: contentShare.annotation,
3178
+ resourceType: contentShare.resourceType
3126
3179
  });
3127
3180
  };
3128
3181
  _context8.prev = 26;
@@ -3194,7 +3247,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3194
3247
  memberId: contentShare.beneficiaryId,
3195
3248
  url: contentShare.url,
3196
3249
  shareInstanceId: _this14.remoteShareInstanceId,
3197
- annotationInfo: contentShare.annotation
3250
+ annotationInfo: contentShare.annotation,
3251
+ resourceType: contentShare.resourceType
3198
3252
  });
3199
3253
  _this14.members.locusMediaSharesUpdate(payload);
3200
3254
  } else if (newShareStatus === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE) {
@@ -3226,7 +3280,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3226
3280
  }, _callee8, null, [[26,, 30, 33]]);
3227
3281
  }));
3228
3282
  return function (_x8) {
3229
- return _ref22.apply(this, arguments);
3283
+ return _ref23.apply(this, arguments);
3230
3284
  };
3231
3285
  }());
3232
3286
  }
@@ -3317,8 +3371,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3317
3371
  });
3318
3372
  }
3319
3373
  });
3320
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, function (_ref23) {
3321
- var isInitializing = _ref23.isInitializing;
3374
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, function (_ref24) {
3375
+ var isInitializing = _ref24.isInitializing;
3322
3376
  _this17.updateMeetingActions();
3323
3377
  _this17.recordingController.setDisplayHints(_this17.userDisplayHints);
3324
3378
  _this17.recordingController.setUserPolicy(_this17.selfUserPolicies);
@@ -3452,7 +3506,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3452
3506
  }
3453
3507
  });
3454
3508
  this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ADMITTED_GUEST, /*#__PURE__*/function () {
3455
- var _ref24 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(payload) {
3509
+ var _ref25 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(payload) {
3456
3510
  return _regenerator.default.wrap(function _callee9$(_context9) {
3457
3511
  while (1) switch (_context9.prev = _context9.next) {
3458
3512
  case 0:
@@ -3473,14 +3527,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3473
3527
  }
3474
3528
  });
3475
3529
  }
3476
- case 2:
3530
+ _this19.updateLLMConnection();
3531
+ case 3:
3477
3532
  case "end":
3478
3533
  return _context9.stop();
3479
3534
  }
3480
3535
  }, _callee9);
3481
3536
  }));
3482
3537
  return function (_x9) {
3483
- return _ref24.apply(this, arguments);
3538
+ return _ref25.apply(this, arguments);
3484
3539
  };
3485
3540
  }());
3486
3541
 
@@ -3529,11 +3584,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3529
3584
  }, _constants.EVENT_TRIGGERS.MEETING_BREAKOUTS_UPDATE);
3530
3585
  });
3531
3586
  this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_MEETING_INTERPRETATION_CHANGED, function (payload) {
3532
- _this19.simultaneousInterpretation.updateSelfInterpretation(payload);
3587
+ var targetChanged = _this19.simultaneousInterpretation.updateSelfInterpretation(payload);
3533
3588
  _triggerProxy.default.trigger(_this19, {
3534
3589
  file: 'meeting/index',
3535
3590
  function: 'setUpLocusInfoSelfListener'
3536
3591
  }, _constants.EVENT_TRIGGERS.MEETING_INTERPRETATION_UPDATE);
3592
+ if (targetChanged && _this19.mediaProperties.audioStream) {
3593
+ _this19.setSendNamedMediaGroup(_internalMediaCore.MediaType.AudioMain);
3594
+ }
3537
3595
  });
3538
3596
  this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ROLES_CHANGED, function (payload) {
3539
3597
  var _payload$newRoles, _payload$newRoles2, _payload$newRoles3, _payload$newRoles4;
@@ -3582,7 +3640,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3582
3640
  }
3583
3641
  });
3584
3642
  this.locusInfo.on(_constants.EVENTS.DESTROY_MEETING, /*#__PURE__*/function () {
3585
- var _ref25 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(payload) {
3643
+ var _ref26 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(payload) {
3586
3644
  return _regenerator.default.wrap(function _callee10$(_context10) {
3587
3645
  while (1) switch (_context10.prev = _context10.next) {
3588
3646
  case 0:
@@ -3627,7 +3685,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3627
3685
  break;
3628
3686
  case 19:
3629
3687
  _loggerProxy.default.logger.info('Meeting:index#setUpLocusInfoMeetingListener --> MEETING_REMOVED_REASON', payload.reason);
3630
- _util.default.cleanUp(_this20);
3688
+ _util2.default.cleanUp(_this20);
3631
3689
  _triggerProxy.default.trigger(_this20, {
3632
3690
  file: 'meeting/index',
3633
3691
  function: 'setUpLocusInfoMeetingListener'
@@ -3642,7 +3700,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3642
3700
  }, _callee10, null, [[8, 14]]);
3643
3701
  }));
3644
3702
  return function (_x10) {
3645
- return _ref25.apply(this, arguments);
3703
+ return _ref26.apply(this, arguments);
3646
3704
  };
3647
3705
  }());
3648
3706
  }
@@ -3837,12 +3895,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3837
3895
  }
3838
3896
  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;
3839
3897
  this.permissionToken = meetingInfo === null || meetingInfo === void 0 ? void 0 : meetingInfo.permissionToken;
3840
- this.setPermissionTokenPayload(meetingInfo === null || meetingInfo === void 0 ? void 0 : meetingInfo.permissionToken);
3841
- this.setSelfUserPolicies();
3898
+ if (this.permissionToken) {
3899
+ this.setPermissionTokenPayload(meetingInfo === null || meetingInfo === void 0 ? void 0 : meetingInfo.permissionToken);
3900
+ this.setSelfUserPolicies();
3901
+ }
3842
3902
  // Need to populate environment when sending CA event
3843
3903
  this.environment = ((_locusMeetingObject7 = locusMeetingObject) === null || _locusMeetingObject7 === void 0 ? void 0 : _locusMeetingObject7.info.channel) || (meetingInfo === null || meetingInfo === void 0 ? void 0 : meetingInfo.channel);
3844
3904
  }
3845
- _util.default.parseInterpretationInfo(this, meetingInfo);
3905
+ _util2.default.parseInterpretationInfo(this, meetingInfo);
3846
3906
  }
3847
3907
 
3848
3908
  /**
@@ -3877,175 +3937,178 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3877
3937
  var _this$meetingInfo2, _this$meetingInfo3, _this$meetingInfo4, _this$meetingInfo4$vi, _this$meetingInfo5, _this$meetingInfo5$vi;
3878
3938
  var changed = false;
3879
3939
  changed = this.inMeetingActions.set({
3880
- canUseVoip: ((_this$meetingInfo2 = this.meetingInfo) === null || _this$meetingInfo2 === void 0 ? void 0 : _this$meetingInfo2.supportVoIP) === true && _util4.default.hasPolicies({
3940
+ canUseVoip: ((_this$meetingInfo2 = this.meetingInfo) === null || _this$meetingInfo2 === void 0 ? void 0 : _this$meetingInfo2.supportVoIP) === true && _util5.default.hasPolicies({
3881
3941
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_VOIP],
3882
3942
  policies: this.selfUserPolicies
3883
3943
  }) || !this.arePolicyRestrictionsSupported(),
3884
- canDoVideo: _util4.default.hasPolicies({
3944
+ canDoVideo: _util5.default.hasPolicies({
3885
3945
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_VIDEO],
3886
3946
  policies: this.selfUserPolicies
3887
3947
  }) && !!((_this$meetingInfo3 = this.meetingInfo) !== null && _this$meetingInfo3 !== void 0 && _this$meetingInfo3.video) || !this.arePolicyRestrictionsSupported(),
3888
- supportHDV: _util4.default.hasPolicies({
3948
+ supportHDV: _util5.default.hasPolicies({
3889
3949
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_HDV],
3890
3950
  policies: this.selfUserPolicies
3891
3951
  }) && ((_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(),
3892
- enforceVirtualBackground: _util4.default.hasPolicies({
3952
+ enforceVirtualBackground: _util5.default.hasPolicies({
3893
3953
  requiredPolicies: [_constants.SELF_POLICY.ENFORCE_VIRTUAL_BACKGROUND],
3894
3954
  policies: this.selfUserPolicies
3895
3955
  }) && this.arePolicyRestrictionsSupported(),
3896
- supportHQV: _util4.default.hasPolicies({
3956
+ supportHQV: _util5.default.hasPolicies({
3897
3957
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_HQV],
3898
3958
  policies: this.selfUserPolicies
3899
3959
  }) && ((_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()
3900
3960
  });
3901
3961
  if (this.userDisplayHints !== undefined) {
3902
3962
  changed = this.inMeetingActions.set({
3903
- canInviteNewParticipants: _util.default.canInviteNewParticipants(this.userDisplayHints),
3904
- canAdmitParticipant: _util.default.canAdmitParticipant(this.userDisplayHints),
3905
- canLock: _util.default.canUserLock(this.userDisplayHints),
3906
- canUnlock: _util.default.canUserUnlock(this.userDisplayHints),
3907
- canShareWhiteBoard: _util.default.canShareWhiteBoard(this.userDisplayHints),
3908
- canSetDisallowUnmute: _util4.default.canSetDisallowUnmute(this.userDisplayHints),
3909
- canUnsetDisallowUnmute: _util4.default.canUnsetDisallowUnmute(this.userDisplayHints),
3910
- canSetMuteOnEntry: _util4.default.canSetMuteOnEntry(this.userDisplayHints),
3911
- canUnsetMuteOnEntry: _util4.default.canUnsetMuteOnEntry(this.userDisplayHints),
3912
- canSetMuted: _util4.default.canSetMuted(this.userDisplayHints),
3913
- canUnsetMuted: _util4.default.canUnsetMuted(this.userDisplayHints),
3914
- canStartRecording: _util3.default.canUserStart(this.userDisplayHints, this.selfUserPolicies),
3915
- canStopRecording: _util3.default.canUserStop(this.userDisplayHints, this.selfUserPolicies),
3916
- canPauseRecording: _util3.default.canUserPause(this.userDisplayHints, this.selfUserPolicies),
3917
- canResumeRecording: _util3.default.canUserResume(this.userDisplayHints, this.selfUserPolicies),
3918
- canRaiseHand: _util.default.canUserRaiseHand(this.userDisplayHints),
3919
- canLowerAllHands: _util.default.canUserLowerAllHands(this.userDisplayHints),
3920
- canLowerSomeoneElsesHand: _util.default.canUserLowerSomeoneElsesHand(this.userDisplayHints),
3921
- bothLeaveAndEndMeetingAvailable: _util.default.bothLeaveAndEndMeetingAvailable(this.userDisplayHints),
3922
- canEnableClosedCaption: _util.default.canEnableClosedCaption(this.userDisplayHints),
3923
- canStartTranscribing: _util.default.canStartTranscribing(this.userDisplayHints),
3924
- canStopTranscribing: _util.default.canStopTranscribing(this.userDisplayHints),
3925
- isClosedCaptionActive: _util.default.isClosedCaptionActive(this.userDisplayHints),
3926
- isSaveTranscriptsEnabled: _util.default.isSaveTranscriptsEnabled(this.userDisplayHints),
3927
- isWebexAssistantActive: _util.default.isWebexAssistantActive(this.userDisplayHints),
3928
- canViewCaptionPanel: _util.default.canViewCaptionPanel(this.userDisplayHints),
3929
- isRealTimeTranslationEnabled: _util.default.isRealTimeTranslationEnabled(this.userDisplayHints),
3930
- canSelectSpokenLanguages: _util.default.canSelectSpokenLanguages(this.userDisplayHints),
3931
- waitingForOthersToJoin: _util.default.waitingForOthersToJoin(this.userDisplayHints),
3932
- canSendReactions: _util.default.canSendReactions(this.inMeetingActions.canSendReactions, this.userDisplayHints),
3933
- canManageBreakout: _util.default.canManageBreakout(this.userDisplayHints),
3934
- canBroadcastMessageToBreakout: _util.default.canBroadcastMessageToBreakout(this.userDisplayHints, this.selfUserPolicies),
3935
- canAdmitLobbyToBreakout: _util.default.canAdmitLobbyToBreakout(this.userDisplayHints),
3936
- isBreakoutPreassignmentsEnabled: _util.default.isBreakoutPreassignmentsEnabled(this.userDisplayHints),
3937
- canUserAskForHelp: _util.default.canUserAskForHelp(this.userDisplayHints),
3938
- canUserRenameSelfAndObserved: _util.default.canUserRenameSelfAndObserved(this.userDisplayHints),
3939
- canUserRenameOthers: _util.default.canUserRenameOthers(this.userDisplayHints),
3940
- canMuteAll: _util4.default.hasHints({
3963
+ canInviteNewParticipants: _util2.default.canInviteNewParticipants(this.userDisplayHints),
3964
+ canAdmitParticipant: _util2.default.canAdmitParticipant(this.userDisplayHints),
3965
+ canLock: _util2.default.canUserLock(this.userDisplayHints),
3966
+ canUnlock: _util2.default.canUserUnlock(this.userDisplayHints),
3967
+ canShareWhiteBoard: _util2.default.canShareWhiteBoard(this.userDisplayHints),
3968
+ canSetDisallowUnmute: _util5.default.canSetDisallowUnmute(this.userDisplayHints),
3969
+ canUnsetDisallowUnmute: _util5.default.canUnsetDisallowUnmute(this.userDisplayHints),
3970
+ canSetMuteOnEntry: _util5.default.canSetMuteOnEntry(this.userDisplayHints),
3971
+ canUnsetMuteOnEntry: _util5.default.canUnsetMuteOnEntry(this.userDisplayHints),
3972
+ canSetMuted: _util5.default.canSetMuted(this.userDisplayHints),
3973
+ canUnsetMuted: _util5.default.canUnsetMuted(this.userDisplayHints),
3974
+ canStartRecording: _util4.default.canUserStart(this.userDisplayHints, this.selfUserPolicies),
3975
+ canStopRecording: _util4.default.canUserStop(this.userDisplayHints, this.selfUserPolicies),
3976
+ canPauseRecording: _util4.default.canUserPause(this.userDisplayHints, this.selfUserPolicies),
3977
+ canResumeRecording: _util4.default.canUserResume(this.userDisplayHints, this.selfUserPolicies),
3978
+ canRaiseHand: _util2.default.canUserRaiseHand(this.userDisplayHints),
3979
+ canLowerAllHands: _util2.default.canUserLowerAllHands(this.userDisplayHints),
3980
+ canLowerSomeoneElsesHand: _util2.default.canUserLowerSomeoneElsesHand(this.userDisplayHints),
3981
+ bothLeaveAndEndMeetingAvailable: _util2.default.bothLeaveAndEndMeetingAvailable(this.userDisplayHints),
3982
+ canEnableClosedCaption: _util2.default.canEnableClosedCaption(this.userDisplayHints),
3983
+ canStartTranscribing: _util2.default.canStartTranscribing(this.userDisplayHints),
3984
+ canStopTranscribing: _util2.default.canStopTranscribing(this.userDisplayHints),
3985
+ isClosedCaptionActive: _util2.default.isClosedCaptionActive(this.userDisplayHints),
3986
+ canStartManualCaption: _util2.default.canStartManualCaption(this.userDisplayHints),
3987
+ canStopManualCaption: _util2.default.canStopManualCaption(this.userDisplayHints),
3988
+ isManualCaptionActive: _util2.default.isManualCaptionActive(this.userDisplayHints),
3989
+ isSaveTranscriptsEnabled: _util2.default.isSaveTranscriptsEnabled(this.userDisplayHints),
3990
+ isWebexAssistantActive: _util2.default.isWebexAssistantActive(this.userDisplayHints),
3991
+ canViewCaptionPanel: _util2.default.canViewCaptionPanel(this.userDisplayHints),
3992
+ isRealTimeTranslationEnabled: _util2.default.isRealTimeTranslationEnabled(this.userDisplayHints),
3993
+ canSelectSpokenLanguages: _util2.default.canSelectSpokenLanguages(this.userDisplayHints),
3994
+ waitingForOthersToJoin: _util2.default.waitingForOthersToJoin(this.userDisplayHints),
3995
+ canSendReactions: _util2.default.canSendReactions(this.inMeetingActions.canSendReactions, this.userDisplayHints),
3996
+ canManageBreakout: _util2.default.canManageBreakout(this.userDisplayHints),
3997
+ canBroadcastMessageToBreakout: _util2.default.canBroadcastMessageToBreakout(this.userDisplayHints, this.selfUserPolicies),
3998
+ canAdmitLobbyToBreakout: _util2.default.canAdmitLobbyToBreakout(this.userDisplayHints),
3999
+ isBreakoutPreassignmentsEnabled: _util2.default.isBreakoutPreassignmentsEnabled(this.userDisplayHints),
4000
+ canUserAskForHelp: _util2.default.canUserAskForHelp(this.userDisplayHints),
4001
+ canUserRenameSelfAndObserved: _util2.default.canUserRenameSelfAndObserved(this.userDisplayHints),
4002
+ canUserRenameOthers: _util2.default.canUserRenameOthers(this.userDisplayHints),
4003
+ canMuteAll: _util5.default.hasHints({
3941
4004
  requiredHints: [_constants.DISPLAY_HINTS.MUTE_ALL],
3942
4005
  displayHints: this.userDisplayHints
3943
4006
  }),
3944
- canUnmuteAll: _util4.default.hasHints({
4007
+ canUnmuteAll: _util5.default.hasHints({
3945
4008
  requiredHints: [_constants.DISPLAY_HINTS.UNMUTE_ALL],
3946
4009
  displayHints: this.userDisplayHints
3947
4010
  }),
3948
- canEnableHardMute: _util4.default.hasHints({
4011
+ canEnableHardMute: _util5.default.hasHints({
3949
4012
  requiredHints: [_constants.DISPLAY_HINTS.ENABLE_HARD_MUTE],
3950
4013
  displayHints: this.userDisplayHints
3951
4014
  }),
3952
- canDisableHardMute: _util4.default.hasHints({
4015
+ canDisableHardMute: _util5.default.hasHints({
3953
4016
  requiredHints: [_constants.DISPLAY_HINTS.DISABLE_HARD_MUTE],
3954
4017
  displayHints: this.userDisplayHints
3955
4018
  }),
3956
- canEnableMuteOnEntry: _util4.default.hasHints({
4019
+ canEnableMuteOnEntry: _util5.default.hasHints({
3957
4020
  requiredHints: [_constants.DISPLAY_HINTS.ENABLE_MUTE_ON_ENTRY],
3958
4021
  displayHints: this.userDisplayHints
3959
4022
  }),
3960
- canDisableMuteOnEntry: _util4.default.hasHints({
4023
+ canDisableMuteOnEntry: _util5.default.hasHints({
3961
4024
  requiredHints: [_constants.DISPLAY_HINTS.DISABLE_MUTE_ON_ENTRY],
3962
4025
  displayHints: this.userDisplayHints
3963
4026
  }),
3964
- canEnableReactions: _util4.default.hasHints({
4027
+ canEnableReactions: _util5.default.hasHints({
3965
4028
  requiredHints: [_constants.DISPLAY_HINTS.ENABLE_REACTIONS],
3966
4029
  displayHints: this.userDisplayHints
3967
4030
  }),
3968
- canDisableReactions: _util4.default.hasHints({
4031
+ canDisableReactions: _util5.default.hasHints({
3969
4032
  requiredHints: [_constants.DISPLAY_HINTS.DISABLE_REACTIONS],
3970
4033
  displayHints: this.userDisplayHints
3971
4034
  }),
3972
- canEnableReactionDisplayNames: _util4.default.hasHints({
4035
+ canEnableReactionDisplayNames: _util5.default.hasHints({
3973
4036
  requiredHints: [_constants.DISPLAY_HINTS.ENABLE_SHOW_DISPLAY_NAME],
3974
4037
  displayHints: this.userDisplayHints
3975
4038
  }),
3976
- canDisableReactionDisplayNames: _util4.default.hasHints({
4039
+ canDisableReactionDisplayNames: _util5.default.hasHints({
3977
4040
  requiredHints: [_constants.DISPLAY_HINTS.DISABLE_SHOW_DISPLAY_NAME],
3978
4041
  displayHints: this.userDisplayHints
3979
4042
  }),
3980
- canUpdateShareControl: _util4.default.hasHints({
4043
+ canUpdateShareControl: _util5.default.hasHints({
3981
4044
  requiredHints: [_constants.DISPLAY_HINTS.SHARE_CONTROL],
3982
4045
  displayHints: this.userDisplayHints
3983
4046
  }),
3984
- canEnableViewTheParticipantsList: _util4.default.hasHints({
4047
+ canEnableViewTheParticipantsList: _util5.default.hasHints({
3985
4048
  requiredHints: [_constants.DISPLAY_HINTS.ENABLE_VIEW_THE_PARTICIPANT_LIST],
3986
4049
  displayHints: this.userDisplayHints
3987
4050
  }),
3988
- canDisableViewTheParticipantsList: _util4.default.hasHints({
4051
+ canDisableViewTheParticipantsList: _util5.default.hasHints({
3989
4052
  requiredHints: [_constants.DISPLAY_HINTS.DISABLE_VIEW_THE_PARTICIPANT_LIST],
3990
4053
  displayHints: this.userDisplayHints
3991
4054
  }),
3992
- canEnableRaiseHand: _util4.default.hasHints({
4055
+ canEnableRaiseHand: _util5.default.hasHints({
3993
4056
  requiredHints: [_constants.DISPLAY_HINTS.ENABLE_RAISE_HAND],
3994
4057
  displayHints: this.userDisplayHints
3995
4058
  }),
3996
- canDisableRaiseHand: _util4.default.hasHints({
4059
+ canDisableRaiseHand: _util5.default.hasHints({
3997
4060
  requiredHints: [_constants.DISPLAY_HINTS.DISABLE_RAISE_HAND],
3998
4061
  displayHints: this.userDisplayHints
3999
4062
  }),
4000
- canEnableVideo: _util4.default.hasHints({
4063
+ canEnableVideo: _util5.default.hasHints({
4001
4064
  requiredHints: [_constants.DISPLAY_HINTS.ENABLE_VIDEO],
4002
4065
  displayHints: this.userDisplayHints
4003
4066
  }),
4004
- canDisableVideo: _util4.default.hasHints({
4067
+ canDisableVideo: _util5.default.hasHints({
4005
4068
  requiredHints: [_constants.DISPLAY_HINTS.DISABLE_VIDEO],
4006
4069
  displayHints: this.userDisplayHints
4007
4070
  }),
4008
- canShareFile: _util4.default.hasHints({
4071
+ canShareFile: _util5.default.hasHints({
4009
4072
  requiredHints: [_constants.DISPLAY_HINTS.SHARE_FILE],
4010
4073
  displayHints: this.userDisplayHints
4011
- }) && _util4.default.hasPolicies({
4074
+ }) && _util5.default.hasPolicies({
4012
4075
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_FILE_SHARE],
4013
4076
  policies: this.selfUserPolicies
4014
4077
  }) || !this.arePolicyRestrictionsSupported,
4015
- canTransferFile: _util4.default.hasPolicies({
4078
+ canTransferFile: _util5.default.hasPolicies({
4016
4079
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_FILE_TRANSFER],
4017
4080
  policies: this.selfUserPolicies
4018
4081
  }),
4019
- canChat: _util4.default.hasPolicies({
4082
+ canChat: _util5.default.hasPolicies({
4020
4083
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_CHAT],
4021
4084
  policies: this.selfUserPolicies
4022
4085
  }),
4023
- canShareApplication: _util4.default.hasHints({
4086
+ canShareApplication: _util5.default.hasHints({
4024
4087
  requiredHints: [_constants.DISPLAY_HINTS.SHARE_APPLICATION],
4025
4088
  displayHints: this.userDisplayHints
4026
- }) && _util4.default.hasPolicies({
4089
+ }) && _util5.default.hasPolicies({
4027
4090
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_APP_SHARE],
4028
4091
  policies: this.selfUserPolicies
4029
4092
  }) || !this.arePolicyRestrictionsSupported(),
4030
- canShareCamera: _util4.default.hasHints({
4093
+ canShareCamera: _util5.default.hasHints({
4031
4094
  requiredHints: [_constants.DISPLAY_HINTS.SHARE_CAMERA],
4032
4095
  displayHints: this.userDisplayHints
4033
- }) && _util4.default.hasPolicies({
4096
+ }) && _util5.default.hasPolicies({
4034
4097
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_CAMERA_SHARE],
4035
4098
  policies: this.selfUserPolicies
4036
4099
  }),
4037
- canShareDesktop: _util4.default.hasHints({
4100
+ canShareDesktop: _util5.default.hasHints({
4038
4101
  requiredHints: [_constants.DISPLAY_HINTS.SHARE_DESKTOP],
4039
4102
  displayHints: this.userDisplayHints
4040
- }) && _util4.default.hasPolicies({
4103
+ }) && _util5.default.hasPolicies({
4041
4104
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_DESKTOP_SHARE],
4042
4105
  policies: this.selfUserPolicies
4043
4106
  }) || !this.arePolicyRestrictionsSupported(),
4044
- canShareContent: _util4.default.hasHints({
4107
+ canShareContent: _util5.default.hasHints({
4045
4108
  requiredHints: [_constants.DISPLAY_HINTS.SHARE_CONTENT],
4046
4109
  displayHints: this.userDisplayHints
4047
4110
  }) || !this.arePolicyRestrictionsSupported(),
4048
- canAnnotate: _util4.default.hasPolicies({
4111
+ canAnnotate: _util5.default.hasPolicies({
4049
4112
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_ANNOTATION],
4050
4113
  policies: this.selfUserPolicies
4051
4114
  })
@@ -4233,24 +4296,26 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4233
4296
  while (1) switch (_context11.prev = _context11.next) {
4234
4297
  case 0:
4235
4298
  oldStream = this.mediaProperties.audioStream;
4236
- oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.StreamEventNames.MuteStateChange, this.localAudioStreamMuteStateHandler);
4299
+ oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localAudioStreamMuteStateHandler);
4300
+ oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localAudioStreamMuteStateHandler);
4237
4301
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
4238
4302
 
4239
4303
  // we don't update this.mediaProperties.mediaDirection.sendAudio, because we always keep it as true to avoid extra SDP exchanges
4240
4304
  this.mediaProperties.setLocalAudioStream(localStream);
4241
4305
  this.audio.handleLocalStreamChange(this);
4242
- localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.StreamEventNames.MuteStateChange, this.localAudioStreamMuteStateHandler);
4306
+ localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localAudioStreamMuteStateHandler);
4307
+ localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localAudioStreamMuteStateHandler);
4243
4308
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
4244
4309
  if (!(!this.isMultistream || !localStream)) {
4245
- _context11.next = 10;
4310
+ _context11.next = 12;
4246
4311
  break;
4247
4312
  }
4248
- _context11.next = 10;
4249
- return this.unpublishStream(_internalMediaCore.MediaType.AudioMain, oldStream);
4250
- case 10:
4251
4313
  _context11.next = 12;
4252
- return this.publishStream(_internalMediaCore.MediaType.AudioMain, this.mediaProperties.audioStream);
4314
+ return this.unpublishStream(_internalMediaCore.MediaType.AudioMain, oldStream);
4253
4315
  case 12:
4316
+ _context11.next = 14;
4317
+ return this.publishStream(_internalMediaCore.MediaType.AudioMain, this.mediaProperties.audioStream);
4318
+ case 14:
4254
4319
  case "end":
4255
4320
  return _context11.stop();
4256
4321
  }
@@ -4278,24 +4343,26 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4278
4343
  while (1) switch (_context12.prev = _context12.next) {
4279
4344
  case 0:
4280
4345
  oldStream = this.mediaProperties.videoStream;
4281
- oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.StreamEventNames.MuteStateChange, this.localVideoStreamMuteStateHandler);
4346
+ oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localVideoStreamMuteStateHandler);
4347
+ oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localVideoStreamMuteStateHandler);
4282
4348
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
4283
4349
 
4284
4350
  // we don't update this.mediaProperties.mediaDirection.sendVideo, because we always keep it as true to avoid extra SDP exchanges
4285
4351
  this.mediaProperties.setLocalVideoStream(localStream);
4286
4352
  this.video.handleLocalStreamChange(this);
4287
- localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.StreamEventNames.MuteStateChange, this.localVideoStreamMuteStateHandler);
4353
+ localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localVideoStreamMuteStateHandler);
4354
+ localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localVideoStreamMuteStateHandler);
4288
4355
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
4289
4356
  if (!(!this.isMultistream || !localStream)) {
4290
- _context12.next = 10;
4357
+ _context12.next = 12;
4291
4358
  break;
4292
4359
  }
4293
- _context12.next = 10;
4294
- return this.unpublishStream(_internalMediaCore.MediaType.VideoMain, oldStream);
4295
- case 10:
4296
4360
  _context12.next = 12;
4297
- return this.publishStream(_internalMediaCore.MediaType.VideoMain, this.mediaProperties.videoStream);
4361
+ return this.unpublishStream(_internalMediaCore.MediaType.VideoMain, oldStream);
4298
4362
  case 12:
4363
+ _context12.next = 14;
4364
+ return this.publishStream(_internalMediaCore.MediaType.VideoMain, this.mediaProperties.videoStream);
4365
+ case 14:
4299
4366
  case "end":
4300
4367
  return _context12.stop();
4301
4368
  }
@@ -4324,11 +4391,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4324
4391
  while (1) switch (_context13.prev = _context13.next) {
4325
4392
  case 0:
4326
4393
  oldStream = this.mediaProperties.shareVideoStream;
4327
- oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.StreamEventNames.MuteStateChange, this.handleShareVideoStreamMuteStateChange);
4394
+ oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.handleShareVideoStreamMuteStateChange);
4328
4395
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.StreamEventNames.Ended, this.handleShareVideoStreamEnded);
4329
4396
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
4330
4397
  this.mediaProperties.setLocalShareVideoStream(localDisplayStream);
4331
- localDisplayStream === null || localDisplayStream === void 0 ? void 0 : localDisplayStream.on(_mediaHelpers.StreamEventNames.MuteStateChange, this.handleShareVideoStreamMuteStateChange);
4398
+ localDisplayStream === null || localDisplayStream === void 0 ? void 0 : localDisplayStream.on(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.handleShareVideoStreamMuteStateChange);
4332
4399
  localDisplayStream === null || localDisplayStream === void 0 ? void 0 : localDisplayStream.on(_mediaHelpers.StreamEventNames.Ended, this.handleShareVideoStreamEnded);
4333
4400
  localDisplayStream === null || localDisplayStream === void 0 ? void 0 : localDisplayStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
4334
4401
  this.mediaProperties.mediaDirection.sendShare = this.mediaProperties.hasLocalShareStream();
@@ -4434,13 +4501,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4434
4501
  videoStream = _this$mediaProperties5.videoStream,
4435
4502
  shareAudioStream = _this$mediaProperties5.shareAudioStream,
4436
4503
  shareVideoStream = _this$mediaProperties5.shareVideoStream;
4437
- audioStream === null || audioStream === void 0 ? void 0 : audioStream.off(_mediaHelpers.StreamEventNames.MuteStateChange, this.localAudioStreamMuteStateHandler);
4504
+ audioStream === null || audioStream === void 0 ? void 0 : audioStream.off(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localAudioStreamMuteStateHandler);
4505
+ audioStream === null || audioStream === void 0 ? void 0 : audioStream.off(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localAudioStreamMuteStateHandler);
4438
4506
  audioStream === null || audioStream === void 0 ? void 0 : audioStream.off(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
4439
- videoStream === null || videoStream === void 0 ? void 0 : videoStream.off(_mediaHelpers.StreamEventNames.MuteStateChange, this.localVideoStreamMuteStateHandler);
4507
+ videoStream === null || videoStream === void 0 ? void 0 : videoStream.off(_mediaHelpers.LocalStreamEventNames.UserMuteStateChange, this.localVideoStreamMuteStateHandler);
4508
+ videoStream === null || videoStream === void 0 ? void 0 : videoStream.off(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.localVideoStreamMuteStateHandler);
4440
4509
  videoStream === null || videoStream === void 0 ? void 0 : videoStream.off(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
4441
4510
  shareAudioStream === null || shareAudioStream === void 0 ? void 0 : shareAudioStream.off(_mediaHelpers.StreamEventNames.Ended, this.handleShareAudioStreamEnded);
4442
4511
  shareAudioStream === null || shareAudioStream === void 0 ? void 0 : shareAudioStream.off(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
4443
- shareVideoStream === null || shareVideoStream === void 0 ? void 0 : shareVideoStream.off(_mediaHelpers.StreamEventNames.MuteStateChange, this.handleShareVideoStreamMuteStateChange);
4512
+ shareVideoStream === null || shareVideoStream === void 0 ? void 0 : shareVideoStream.off(_mediaHelpers.LocalStreamEventNames.SystemMuteStateChange, this.handleShareVideoStreamMuteStateChange);
4444
4513
  shareVideoStream === null || shareVideoStream === void 0 ? void 0 : shareVideoStream.off(_mediaHelpers.StreamEventNames.Ended, this.handleShareVideoStreamEnded);
4445
4514
  shareVideoStream === null || shareVideoStream === void 0 ? void 0 : shareVideoStream.off(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
4446
4515
  this.mediaProperties.setLocalAudioStream(undefined);
@@ -4631,7 +4700,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4631
4700
  key: "muteAudio",
4632
4701
  value: function muteAudio() {
4633
4702
  var _this24 = this;
4634
- if (!_util.default.isUserInJoinedState(this.locusInfo)) {
4703
+ if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
4635
4704
  return _promise.default.reject(new _webexErrors.UserNotJoinedError());
4636
4705
  }
4637
4706
 
@@ -4646,7 +4715,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4646
4715
 
4647
4716
  // First, stop sending the local audio media
4648
4717
  return logRequest(this.audio.handleClientRequest(this, true).then(function () {
4649
- _util.default.handleAudioLogging(_this24.mediaProperties.audioStream);
4718
+ _util2.default.handleAudioLogging(_this24.mediaProperties.audioStream);
4650
4719
  // @ts-ignore
4651
4720
  _this24.webex.internal.newMetrics.submitClientEvent({
4652
4721
  name: 'client.muted',
@@ -4681,7 +4750,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4681
4750
  key: "unmuteAudio",
4682
4751
  value: function unmuteAudio() {
4683
4752
  var _this25 = this;
4684
- if (!_util.default.isUserInJoinedState(this.locusInfo)) {
4753
+ if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
4685
4754
  return _promise.default.reject(new _webexErrors.UserNotJoinedError());
4686
4755
  }
4687
4756
 
@@ -4696,7 +4765,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4696
4765
 
4697
4766
  // First, send the control to unmute the participant on the server
4698
4767
  return logRequest(this.audio.handleClientRequest(this, false).then(function () {
4699
- _util.default.handleAudioLogging(_this25.mediaProperties.audioStream);
4768
+ _util2.default.handleAudioLogging(_this25.mediaProperties.audioStream);
4700
4769
  // @ts-ignore
4701
4770
  _this25.webex.internal.newMetrics.submitClientEvent({
4702
4771
  name: 'client.unmuted',
@@ -4731,7 +4800,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4731
4800
  key: "muteVideo",
4732
4801
  value: function muteVideo() {
4733
4802
  var _this26 = this;
4734
- if (!_util.default.isUserInJoinedState(this.locusInfo)) {
4803
+ if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
4735
4804
  return _promise.default.reject(new _webexErrors.UserNotJoinedError());
4736
4805
  }
4737
4806
 
@@ -4744,7 +4813,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4744
4813
  return _promise.default.reject(new _parameter.default('no video control associated to the meeting'));
4745
4814
  }
4746
4815
  return logRequest(this.video.handleClientRequest(this, true).then(function () {
4747
- _util.default.handleVideoLogging(_this26.mediaProperties.videoStream);
4816
+ _util2.default.handleVideoLogging(_this26.mediaProperties.videoStream);
4748
4817
  // @ts-ignore
4749
4818
  _this26.webex.internal.newMetrics.submitClientEvent({
4750
4819
  name: 'client.muted',
@@ -4779,7 +4848,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4779
4848
  key: "unmuteVideo",
4780
4849
  value: function unmuteVideo() {
4781
4850
  var _this27 = this;
4782
- if (!_util.default.isUserInJoinedState(this.locusInfo)) {
4851
+ if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
4783
4852
  return _promise.default.reject(new _webexErrors.UserNotJoinedError());
4784
4853
  }
4785
4854
 
@@ -4792,7 +4861,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4792
4861
  return _promise.default.reject(new _parameter.default('no audio control associated to the meeting'));
4793
4862
  }
4794
4863
  return logRequest(this.video.handleClientRequest(this, false).then(function () {
4795
- _util.default.handleVideoLogging(_this27.mediaProperties.videoStream);
4864
+ _util2.default.handleVideoLogging(_this27.mediaProperties.videoStream);
4796
4865
  // @ts-ignore
4797
4866
  _this27.webex.internal.newMetrics.submitClientEvent({
4798
4867
  name: 'client.unmuted',
@@ -4835,36 +4904,152 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4835
4904
  */
4836
4905
  }, {
4837
4906
  key: "joinWithMedia",
4838
- value: function joinWithMedia() {
4839
- var _this28 = this;
4840
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4841
- var mediaOptions = options.mediaOptions,
4842
- joinOptions = options.joinOptions;
4843
- if (!(mediaOptions !== null && mediaOptions !== void 0 && mediaOptions.allowMediaInLobby)) {
4844
- return _promise.default.reject(new _parameter.default('joinWithMedia() can only be used with allowMediaInLobby set to true'));
4907
+ value: (function () {
4908
+ var _joinWithMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15() {
4909
+ var options,
4910
+ mediaOptions,
4911
+ _options$joinOptions,
4912
+ joinOptions,
4913
+ _this$joinWithMediaRe,
4914
+ isRetry,
4915
+ prevJoinResponse,
4916
+ joined,
4917
+ joinResponse,
4918
+ turnServerInfo,
4919
+ turnDiscoverySkippedReason,
4920
+ turnDiscoveryRequest,
4921
+ _yield$this$roap$hand,
4922
+ mediaResponse,
4923
+ _this$locusUrl,
4924
+ _leaveError,
4925
+ leaveError,
4926
+ _args15 = arguments;
4927
+ return _regenerator.default.wrap(function _callee15$(_context15) {
4928
+ while (1) switch (_context15.prev = _context15.next) {
4929
+ case 0:
4930
+ options = _args15.length > 0 && _args15[0] !== undefined ? _args15[0] : {};
4931
+ mediaOptions = options.mediaOptions, _options$joinOptions = options.joinOptions, joinOptions = _options$joinOptions === void 0 ? {} : _options$joinOptions;
4932
+ _this$joinWithMediaRe = this.joinWithMediaRetryInfo, isRetry = _this$joinWithMediaRe.isRetry, prevJoinResponse = _this$joinWithMediaRe.prevJoinResponse;
4933
+ if (mediaOptions !== null && mediaOptions !== void 0 && mediaOptions.allowMediaInLobby) {
4934
+ _context15.next = 5;
4935
+ break;
4936
+ }
4937
+ return _context15.abrupt("return", _promise.default.reject(new _parameter.default('joinWithMedia() can only be used with allowMediaInLobby set to true')));
4938
+ case 5:
4939
+ this.allowMediaInLobby = true;
4940
+ _loggerProxy.default.logger.info('Meeting:index#joinWithMedia called');
4941
+ joined = false;
4942
+ joinResponse = prevJoinResponse;
4943
+ _context15.prev = 9;
4944
+ _context15.next = 12;
4945
+ return this.webex.meetings.reachability.getReachabilityResults();
4946
+ case 12:
4947
+ joinOptions.reachability = _context15.sent;
4948
+ _context15.next = 15;
4949
+ return this.roap.generateTurnDiscoveryRequestMessage(this, true);
4950
+ case 15:
4951
+ turnDiscoveryRequest = _context15.sent;
4952
+ turnDiscoverySkippedReason = turnDiscoveryRequest.turnDiscoverySkippedReason;
4953
+ joinOptions.roapMessage = turnDiscoveryRequest.roapMessage;
4954
+ if (joinResponse) {
4955
+ _context15.next = 23;
4956
+ break;
4957
+ }
4958
+ _loggerProxy.default.logger.info('Meeting:index#joinWithMedia ---> calling join with joinOptions, ', joinOptions);
4959
+ _context15.next = 22;
4960
+ return this.join(joinOptions);
4961
+ case 22:
4962
+ joinResponse = _context15.sent;
4963
+ case 23:
4964
+ joined = true;
4965
+ if (!joinOptions.roapMessage) {
4966
+ _context15.next = 33;
4967
+ break;
4968
+ }
4969
+ _context15.next = 27;
4970
+ return this.roap.handleTurnDiscoveryHttpResponse(this, joinResponse);
4971
+ case 27:
4972
+ _yield$this$roap$hand = _context15.sent;
4973
+ turnServerInfo = _yield$this$roap$hand.turnServerInfo;
4974
+ turnDiscoverySkippedReason = _yield$this$roap$hand.turnDiscoverySkippedReason;
4975
+ this.turnDiscoverySkippedReason = turnDiscoverySkippedReason;
4976
+ this.turnServerUsed = !!turnServerInfo;
4977
+ if (turnServerInfo === undefined) {
4978
+ this.roap.abortTurnDiscovery();
4979
+ }
4980
+ case 33:
4981
+ _context15.next = 35;
4982
+ return this.addMedia(mediaOptions, turnServerInfo);
4983
+ case 35:
4984
+ mediaResponse = _context15.sent;
4985
+ this.joinWithMediaRetryInfo = {
4986
+ isRetry: false,
4987
+ prevJoinResponse: undefined
4988
+ };
4989
+ return _context15.abrupt("return", {
4990
+ join: joinResponse,
4991
+ media: mediaResponse
4992
+ });
4993
+ case 40:
4994
+ _context15.prev = 40;
4995
+ _context15.t0 = _context15["catch"](9);
4996
+ _loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> ', _context15.t0);
4997
+ this.roap.abortTurnDiscovery();
4998
+ if (!(joined && isRetry)) {
4999
+ _context15.next = 54;
5000
+ break;
5001
+ }
5002
+ _context15.prev = 45;
5003
+ _context15.next = 48;
5004
+ return this.leave({
5005
+ resourceId: joinOptions === null || joinOptions === void 0 ? void 0 : joinOptions.resourceId,
5006
+ reason: 'joinWithMedia failure'
5007
+ });
5008
+ case 48:
5009
+ _context15.next = 54;
5010
+ break;
5011
+ case 50:
5012
+ _context15.prev = 50;
5013
+ _context15.t1 = _context15["catch"](45);
5014
+ _loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> leave error', _context15.t1);
5015
+ leaveError = _context15.t1;
5016
+ case 54:
5017
+ _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_WITH_MEDIA_FAILURE, {
5018
+ correlation_id: this.correlationId,
5019
+ locus_id: (_this$locusUrl = this.locusUrl) === null || _this$locusUrl === void 0 ? void 0 : _this$locusUrl.split('/').pop(),
5020
+ // if join fails, we may end up with no locusUrl
5021
+ reason: _context15.t0.message,
5022
+ stack: _context15.t0.stack,
5023
+ leaveErrorReason: (_leaveError = leaveError) === null || _leaveError === void 0 ? void 0 : _leaveError.message,
5024
+ isRetry: isRetry
5025
+ }, {
5026
+ type: _context15.t0.name
5027
+ });
5028
+ if (isRetry) {
5029
+ _context15.next = 60;
5030
+ break;
5031
+ }
5032
+ _loggerProxy.default.logger.warn('Meeting:index#joinWithMedia --> retrying call to joinWithMedia');
5033
+ this.joinWithMediaRetryInfo.isRetry = true;
5034
+ this.joinWithMediaRetryInfo.prevJoinResponse = joinResponse;
5035
+ return _context15.abrupt("return", this.joinWithMedia(options));
5036
+ case 60:
5037
+ this.joinWithMediaRetryInfo = {
5038
+ isRetry: false,
5039
+ prevJoinResponse: undefined
5040
+ };
5041
+ throw _context15.t0;
5042
+ case 62:
5043
+ case "end":
5044
+ return _context15.stop();
5045
+ }
5046
+ }, _callee15, this, [[9, 40], [45, 50]]);
5047
+ }));
5048
+ function joinWithMedia() {
5049
+ return _joinWithMedia.apply(this, arguments);
4845
5050
  }
4846
- _loggerProxy.default.logger.info('Meeting:index#joinWithMedia called');
4847
- return this.join(joinOptions).then(function (joinResponse) {
4848
- return _this28.addMedia(mediaOptions).then(function (mediaResponse) {
4849
- return {
4850
- join: joinResponse,
4851
- media: mediaResponse
4852
- };
4853
- });
4854
- }).catch(function (error) {
4855
- _loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> ', error);
4856
- _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_WITH_MEDIA_FAILURE, {
4857
- correlation_id: _this28.correlationId,
4858
- locus_id: _this28.locusUrl.split('/').pop(),
4859
- reason: error.message,
4860
- stack: error.stack
4861
- }, {
4862
- type: error.name
4863
- });
4864
- return _promise.default.reject(error);
4865
- });
4866
- }
4867
-
5051
+ return joinWithMedia;
5052
+ }()
4868
5053
  /**
4869
5054
  * Initiates the reconnection of the media in the meeting
4870
5055
  *
@@ -4873,79 +5058,47 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4873
5058
  * @public
4874
5059
  * @memberof Meeting
4875
5060
  */
5061
+ )
4876
5062
  }, {
4877
5063
  key: "reconnect",
4878
5064
  value: function reconnect(options) {
4879
- var _this29 = this;
5065
+ var _this28 = this;
4880
5066
  _loggerProxy.default.logger.log("Meeting:index#reconnect --> attempting to reconnect meeting ".concat(this.id));
4881
5067
  if (!this.reconnectionManager || !this.reconnectionManager.reconnect) {
4882
5068
  return _promise.default.reject(new _parameter.default('Cannot reconnect, ReconnectionManager must first be defined.'));
4883
5069
  }
4884
5070
 
4885
5071
  // @ts-ignore - currentMediaStatus coming from SelfUtil
4886
- if (!_util.default.isMediaEstablished(this.currentMediaStatus)) {
5072
+ if (!_util2.default.isMediaEstablished(this.currentMediaStatus)) {
4887
5073
  return _promise.default.reject(new _parameter.default('Cannot reconnect, Media has not established to reconnect'));
4888
5074
  }
4889
- try {
4890
- _loggerProxy.default.logger.info('Meeting:index#reconnect --> Validating reconnect ability.');
4891
- // @ts-ignore
4892
- this.reconnectionManager.validate();
4893
- } catch (error) {
4894
- // Unable to reconnect this call
4895
- if (error instanceof _reconnectionInProgress.default) {
4896
- _loggerProxy.default.logger.info('Meeting:index#reconnect --> Unable to reconnect, reconnection in progress.');
4897
- } else {
4898
- _loggerProxy.default.logger.log('Meeting:index#reconnect --> Unable to reconnect.', error);
4899
- }
4900
- return _promise.default.resolve();
4901
- }
4902
- _triggerProxy.default.trigger(this, {
4903
- file: 'meeting/index',
4904
- function: 'reconnect'
4905
- }, _constants.EVENT_TRIGGERS.MEETING_RECONNECTION_STARTING);
4906
- return this.reconnectionManager.reconnect(options).then(function () {
4907
- return _this29.waitForRemoteSDPAnswer();
4908
- }).then(function () {
4909
- return _this29.waitForMediaConnectionConnected();
4910
- }).then(function () {
4911
- _triggerProxy.default.trigger(_this29, {
4912
- file: 'meeting/index',
4913
- function: 'reconnect'
4914
- }, _constants.EVENT_TRIGGERS.MEETING_RECONNECTION_SUCCESS);
4915
- _loggerProxy.default.logger.log('Meeting:index#reconnect --> Meeting reconnect success');
4916
-
4917
- // @ts-ignore
4918
- _this29.webex.internal.newMetrics.submitClientEvent({
4919
- name: 'client.media.recovered',
4920
- payload: {
4921
- recoveredBy: 'new'
4922
- },
4923
- options: {
4924
- meetingId: _this29.id
5075
+ return this.reconnectionManager.reconnect(options, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
5076
+ return _regenerator.default.wrap(function _callee16$(_context16) {
5077
+ while (1) switch (_context16.prev = _context16.next) {
5078
+ case 0:
5079
+ _context16.next = 2;
5080
+ return _this28.waitForRemoteSDPAnswer();
5081
+ case 2:
5082
+ _context16.next = 4;
5083
+ return _this28.waitForMediaConnectionConnected();
5084
+ case 4:
5085
+ case "end":
5086
+ return _context16.stop();
4925
5087
  }
4926
- });
4927
- _this29.reconnectionManager.setStatus(_constants.RECONNECTION.STATE.COMPLETE);
5088
+ }, _callee16);
5089
+ }))).then(function () {
5090
+ _loggerProxy.default.logger.log('Meeting:index#reconnect --> Meeting reconnect success');
4928
5091
  }).catch(function (error) {
4929
- _triggerProxy.default.trigger(_this29, {
4930
- file: 'meeting/index',
4931
- function: 'reconnect'
4932
- }, _constants.EVENT_TRIGGERS.MEETING_RECONNECTION_FAILURE, {
4933
- error: new _reconnection.default('Reconnection failure event', error)
4934
- });
5092
+ if (error instanceof _reconnectionNotStarted.default) {
5093
+ _loggerProxy.default.logger.log('Meeting:index#reconnect --> Meeting reconnect not started');
5094
+ return _promise.default.resolve();
5095
+ }
4935
5096
  _loggerProxy.default.logger.error('Meeting:index#reconnect --> Meeting reconnect failed', error);
4936
- _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_RECONNECT_FAILURE, {
4937
- correlation_id: _this29.correlationId,
4938
- locus_id: _this29.locusUrl.split('/').pop(),
4939
- reason: error.message,
4940
- stack: error.stack
4941
- });
4942
- _this29.uploadLogs({
5097
+ _this28.uploadLogs({
4943
5098
  file: 'meeting/index',
4944
5099
  function: 'reconnect'
4945
5100
  });
4946
- return _promise.default.reject(new _reconnection.default('Reconnection failure event', error));
4947
- }).finally(function () {
4948
- _this29.reconnectionManager.reset();
5101
+ return _promise.default.reject(error);
4949
5102
  });
4950
5103
  }
4951
5104
 
@@ -4988,19 +5141,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4988
5141
  }, {
4989
5142
  key: "setCaptionLanguage",
4990
5143
  value: function setCaptionLanguage(language) {
4991
- var _this30 = this;
5144
+ var _this29 = this;
4992
5145
  return new _promise.default(function (resolve, reject) {
4993
- if (!_this30.isTranscriptionSupported()) {
5146
+ if (!_this29.isTranscriptionSupported()) {
4994
5147
  _loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
4995
5148
  reject(new Error('Webex Assistant is not enabled/supported'));
4996
5149
  }
4997
5150
  try {
4998
5151
  var voiceaListenerCaptionUpdate = function voiceaListenerCaptionUpdate(payload) {
4999
5152
  // @ts-ignore
5000
- _this30.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5153
+ _this29.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5001
5154
  var statusCode = payload.statusCode;
5002
5155
  if (statusCode === 200) {
5003
- _this30.transcription.languageOptions = _objectSpread(_objectSpread({}, _this30.transcription.languageOptions), {}, {
5156
+ _this29.transcription.languageOptions = _objectSpread(_objectSpread({}, _this29.transcription.languageOptions), {}, {
5004
5157
  currentCaptionLanguage: language
5005
5158
  });
5006
5159
  resolve(language);
@@ -5009,9 +5162,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5009
5162
  }
5010
5163
  };
5011
5164
  // @ts-ignore
5012
- _this30.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5165
+ _this29.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
5013
5166
  // @ts-ignore
5014
- _this30.webex.internal.voicea.requestLanguage(language);
5167
+ _this29.webex.internal.voicea.requestLanguage(language);
5015
5168
  } catch (error) {
5016
5169
  _loggerProxy.default.logger.error("Meeting:index#setCaptionLanguage --> ".concat(error));
5017
5170
  reject(error);
@@ -5027,19 +5180,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5027
5180
  }, {
5028
5181
  key: "setSpokenLanguage",
5029
5182
  value: function setSpokenLanguage(language) {
5030
- var _this31 = this;
5183
+ var _this30 = this;
5031
5184
  return new _promise.default(function (resolve, reject) {
5032
- if (!_this31.isTranscriptionSupported()) {
5185
+ if (!_this30.isTranscriptionSupported()) {
5033
5186
  _loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
5034
5187
  reject(new Error('Webex Assistant is not enabled/supported'));
5035
5188
  }
5036
5189
  try {
5037
5190
  var voiceaListenerLanguageUpdate = function voiceaListenerLanguageUpdate(payload) {
5038
5191
  // @ts-ignore
5039
- _this31.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5192
+ _this30.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5040
5193
  var languageCode = payload.languageCode;
5041
5194
  if (languageCode) {
5042
- _this31.transcription.languageOptions = _objectSpread(_objectSpread({}, _this31.transcription.languageOptions), {}, {
5195
+ _this30.transcription.languageOptions = _objectSpread(_objectSpread({}, _this30.transcription.languageOptions), {}, {
5043
5196
  currentSpokenLanguage: languageCode
5044
5197
  });
5045
5198
  resolve(languageCode);
@@ -5049,10 +5202,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5049
5202
  };
5050
5203
 
5051
5204
  // @ts-ignore
5052
- _this31.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5205
+ _this30.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
5053
5206
 
5054
5207
  // @ts-ignore
5055
- _this31.webex.internal.voicea.setSpokenLanguage(language);
5208
+ _this30.webex.internal.voicea.setSpokenLanguage(language);
5056
5209
  } catch (error) {
5057
5210
  _loggerProxy.default.logger.error("Meeting:index#setSpokenLanguage --> ".concat(error));
5058
5211
  reject(error);
@@ -5069,48 +5222,48 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5069
5222
  }, {
5070
5223
  key: "startTranscription",
5071
5224
  value: (function () {
5072
- var _startTranscription = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15(options) {
5073
- return _regenerator.default.wrap(function _callee15$(_context15) {
5074
- while (1) switch (_context15.prev = _context15.next) {
5225
+ var _startTranscription = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17(options) {
5226
+ return _regenerator.default.wrap(function _callee17$(_context17) {
5227
+ while (1) switch (_context17.prev = _context17.next) {
5075
5228
  case 0:
5076
5229
  if (!this.isJoined()) {
5077
- _context15.next = 15;
5230
+ _context17.next = 15;
5078
5231
  break;
5079
5232
  }
5080
5233
  _loggerProxy.default.logger.info('Meeting:index#startTranscription --> Attempting to enable transcription!');
5081
- _context15.prev = 2;
5234
+ _context17.prev = 2;
5082
5235
  if (!this.areVoiceaEventsSetup) {
5083
5236
  this.setUpVoiceaListeners();
5084
5237
  }
5085
5238
  if (!(this.getCurUserType() === 'host')) {
5086
- _context15.next = 7;
5239
+ _context17.next = 7;
5087
5240
  break;
5088
5241
  }
5089
- _context15.next = 7;
5090
- return this.webex.internal.voicea.toggleTranscribing(true, options === null || options === void 0 ? void 0 : options.spokenLanguage);
5242
+ _context17.next = 7;
5243
+ return this.webex.internal.voicea.turnOnCaptions(options === null || options === void 0 ? void 0 : options.spokenLanguage);
5091
5244
  case 7:
5092
- _context15.next = 13;
5245
+ _context17.next = 13;
5093
5246
  break;
5094
5247
  case 9:
5095
- _context15.prev = 9;
5096
- _context15.t0 = _context15["catch"](2);
5097
- _loggerProxy.default.logger.error("Meeting:index#startTranscription --> ".concat(_context15.t0));
5248
+ _context17.prev = 9;
5249
+ _context17.t0 = _context17["catch"](2);
5250
+ _loggerProxy.default.logger.error("Meeting:index#startTranscription --> ".concat(_context17.t0));
5098
5251
  _metrics.default.sendBehavioralMetric(_constants2.default.RECEIVE_TRANSCRIPTION_FAILURE, {
5099
5252
  correlation_id: this.correlationId,
5100
- reason: _context15.t0.message,
5101
- stack: _context15.t0.stack
5253
+ reason: _context17.t0.message,
5254
+ stack: _context17.t0.stack
5102
5255
  });
5103
5256
  case 13:
5104
- _context15.next = 17;
5257
+ _context17.next = 17;
5105
5258
  break;
5106
5259
  case 15:
5107
5260
  _loggerProxy.default.logger.error("Meeting:index#startTranscription --> meeting joined : ".concat(this.isJoined()));
5108
5261
  throw new Error('Meeting is not joined');
5109
5262
  case 17:
5110
5263
  case "end":
5111
- return _context15.stop();
5264
+ return _context17.stop();
5112
5265
  }
5113
- }, _callee15, this, [[2, 9]]);
5266
+ }, _callee17, this, [[2, 9]]);
5114
5267
  }));
5115
5268
  function startTranscription(_x15) {
5116
5269
  return _startTranscription.apply(this, arguments);
@@ -5173,8 +5326,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5173
5326
  }, {
5174
5327
  key: "join",
5175
5328
  value: (function () {
5176
- var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
5177
- var _this32 = this;
5329
+ var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18() {
5330
+ var _this31 = this;
5178
5331
  var options,
5179
5332
  errorMessage,
5180
5333
  error,
@@ -5184,25 +5337,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5184
5337
  _error,
5185
5338
  _errorMessage2,
5186
5339
  _error2,
5187
- _args16 = arguments;
5188
- return _regenerator.default.wrap(function _callee16$(_context16) {
5189
- while (1) switch (_context16.prev = _context16.next) {
5340
+ _args18 = arguments;
5341
+ return _regenerator.default.wrap(function _callee18$(_context18) {
5342
+ while (1) switch (_context18.prev = _context18.next) {
5190
5343
  case 0:
5191
- options = _args16.length > 0 && _args16[0] !== undefined ? _args16[0] : {};
5344
+ options = _args18.length > 0 && _args18[0] !== undefined ? _args18[0] : {};
5192
5345
  if (this.webex.meetings.registered) {
5193
- _context16.next = 6;
5346
+ _context18.next = 6;
5194
5347
  break;
5195
5348
  }
5196
5349
  errorMessage = 'Meeting:index#join --> Device not registered';
5197
5350
  error = new Error(errorMessage);
5198
5351
  _loggerProxy.default.logger.error(errorMessage);
5199
- return _context16.abrupt("return", _promise.default.reject(error));
5352
+ return _context18.abrupt("return", _promise.default.reject(error));
5200
5353
  case 6:
5201
5354
  if (!this.deferJoin) {
5202
- _context16.next = 8;
5355
+ _context18.next = 8;
5203
5356
  break;
5204
5357
  }
5205
- return _context16.abrupt("return", this.deferJoin);
5358
+ return _context18.abrupt("return", this.deferJoin);
5206
5359
  case 8:
5207
5360
  // Create a deferred promise for a consistent resolve value from utils.
5208
5361
  // This also prevents redundant API calls.
@@ -5251,15 +5404,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5251
5404
  this.wirelessShare = true;
5252
5405
  }
5253
5406
  if (!options.meetingQuality) {
5254
- _context16.next = 36;
5407
+ _context18.next = 36;
5255
5408
  break;
5256
5409
  }
5257
5410
  if (!(typeof options.meetingQuality === 'string')) {
5258
- _context16.next = 27;
5411
+ _context18.next = 27;
5259
5412
  break;
5260
5413
  }
5261
5414
  if (_constants.QUALITY_LEVELS[options.meetingQuality]) {
5262
- _context16.next = 26;
5415
+ _context18.next = 26;
5263
5416
  break;
5264
5417
  }
5265
5418
  _errorMessage = "Meeting:index#join --> ".concat(options.meetingQuality, " not defined");
@@ -5267,16 +5420,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5267
5420
  _loggerProxy.default.logger.error(_errorMessage);
5268
5421
  joinFailed(_error);
5269
5422
  this.deferJoin = undefined;
5270
- return _context16.abrupt("return", _promise.default.reject(_error));
5423
+ return _context18.abrupt("return", _promise.default.reject(_error));
5271
5424
  case 26:
5272
5425
  this.mediaProperties.setRemoteQualityLevel(options.meetingQuality);
5273
5426
  case 27:
5274
5427
  if (!((0, _typeof2.default)(options.meetingQuality) === 'object')) {
5275
- _context16.next = 36;
5428
+ _context18.next = 36;
5276
5429
  break;
5277
5430
  }
5278
5431
  if (_constants.QUALITY_LEVELS[options.meetingQuality.remote]) {
5279
- _context16.next = 35;
5432
+ _context18.next = 35;
5280
5433
  break;
5281
5434
  }
5282
5435
  _errorMessage2 = "Meeting:index#join --> ".concat(options.meetingQuality.remote, " not defined");
@@ -5284,97 +5437,97 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5284
5437
  _error2 = new Error(_errorMessage2);
5285
5438
  joinFailed(_error2);
5286
5439
  this.deferJoin = undefined;
5287
- return _context16.abrupt("return", _promise.default.reject(new Error(_errorMessage2)));
5440
+ return _context18.abrupt("return", _promise.default.reject(new Error(_errorMessage2)));
5288
5441
  case 35:
5289
5442
  if (options.meetingQuality.remote) {
5290
5443
  this.mediaProperties.setRemoteQualityLevel(options.meetingQuality.remote);
5291
5444
  }
5292
5445
  case 36:
5293
5446
  this.isMultistream = !!options.enableMultistream;
5294
- _context16.prev = 37;
5295
- _context16.next = 40;
5447
+ _context18.prev = 37;
5448
+ _context18.next = 40;
5296
5449
  return this.checkAndRefreshPermissionToken(_constants.MEETING_PERMISSION_TOKEN_REFRESH_THRESHOLD_IN_SEC, _constants.MEETING_PERMISSION_TOKEN_REFRESH_REASON);
5297
5450
  case 40:
5298
- _context16.next = 51;
5451
+ _context18.next = 51;
5299
5452
  break;
5300
5453
  case 42:
5301
- _context16.prev = 42;
5302
- _context16.t0 = _context16["catch"](37);
5303
- _loggerProxy.default.logger.error('Meeting:index#join --> Failed to refresh permission token:', _context16.t0);
5304
- if (!(_context16.t0 instanceof _captchaError.default || _context16.t0 instanceof _passwordError.default || _context16.t0 instanceof _permission.default)) {
5305
- _context16.next = 51;
5454
+ _context18.prev = 42;
5455
+ _context18.t0 = _context18["catch"](37);
5456
+ _loggerProxy.default.logger.error('Meeting:index#join --> Failed to refresh permission token:', _context18.t0);
5457
+ if (!(_context18.t0 instanceof _captchaError.default || _context18.t0 instanceof _passwordError.default || _context18.t0 instanceof _permission.default)) {
5458
+ _context18.next = 51;
5306
5459
  break;
5307
5460
  }
5308
- this.meetingFiniteStateMachine.fail(_context16.t0);
5461
+ this.meetingFiniteStateMachine.fail(_context18.t0);
5309
5462
 
5310
5463
  // Upload logs on refreshpermissionToken refresh Failure
5311
5464
  _triggerProxy.default.trigger(this, {
5312
5465
  file: 'meeting/index',
5313
5466
  function: 'join'
5314
5467
  }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
5315
- joinFailed(_context16.t0);
5468
+ joinFailed(_context18.t0);
5316
5469
  this.deferJoin = undefined;
5317
5470
 
5318
5471
  // if refresh permission token requires captcha, password or permission, we are throwing the errors
5319
5472
  // and bubble it up to client
5320
- return _context16.abrupt("return", _promise.default.reject(_context16.t0));
5473
+ return _context18.abrupt("return", _promise.default.reject(_context18.t0));
5321
5474
  case 51:
5322
- return _context16.abrupt("return", _util.default.joinMeetingOptions(this, options).then(function (join) {
5323
- _this32.meetingFiniteStateMachine.join();
5475
+ return _context18.abrupt("return", _util2.default.joinMeetingOptions(this, options).then(function (join) {
5476
+ _this31.meetingFiniteStateMachine.join();
5324
5477
  _loggerProxy.default.logger.log('Meeting:index#join --> Success');
5325
5478
  _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
5326
- correlation_id: _this32.correlationId
5479
+ correlation_id: _this31.correlationId
5327
5480
  });
5328
5481
  joinSuccess(join);
5329
- _this32.deferJoin = undefined;
5482
+ _this31.deferJoin = undefined;
5330
5483
  return join;
5331
5484
  }).catch(function (error) {
5332
- var _this32$meetingInfo, _error$error;
5333
- _this32.meetingFiniteStateMachine.fail(error);
5485
+ var _this31$meetingInfo, _error$error;
5486
+ _this31.meetingFiniteStateMachine.fail(error);
5334
5487
  _loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
5335
5488
 
5336
5489
  // @ts-ignore
5337
- _this32.webex.internal.newMetrics.submitClientEvent({
5490
+ _this31.webex.internal.newMetrics.submitClientEvent({
5338
5491
  name: 'client.locus.join.response',
5339
5492
  payload: {
5340
5493
  identifiers: {
5341
- meetingLookupUrl: (_this32$meetingInfo = _this32.meetingInfo) === null || _this32$meetingInfo === void 0 ? void 0 : _this32$meetingInfo.meetingLookupUrl
5494
+ meetingLookupUrl: (_this31$meetingInfo = _this31.meetingInfo) === null || _this31$meetingInfo === void 0 ? void 0 : _this31$meetingInfo.meetingLookupUrl
5342
5495
  }
5343
5496
  },
5344
5497
  options: {
5345
- meetingId: _this32.id,
5498
+ meetingId: _this31.id,
5346
5499
  rawError: error
5347
5500
  }
5348
5501
  });
5349
5502
 
5350
5503
  // TODO: change this to error codes and pre defined dictionary
5351
5504
  _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
5352
- correlation_id: _this32.correlationId,
5505
+ correlation_id: _this31.correlationId,
5353
5506
  reason: (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.message,
5354
5507
  stack: error.stack
5355
5508
  });
5356
5509
 
5357
5510
  // Upload logs on join Failure
5358
- _triggerProxy.default.trigger(_this32, {
5511
+ _triggerProxy.default.trigger(_this31, {
5359
5512
  file: 'meeting/index',
5360
5513
  function: 'join'
5361
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this32);
5514
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this31);
5362
5515
  joinFailed(error);
5363
- _this32.deferJoin = undefined;
5516
+ _this31.deferJoin = undefined;
5364
5517
  return _promise.default.reject(error);
5365
5518
  }).then(function (join) {
5366
5519
  // @ts-ignore - config coming from registerPlugin
5367
- if (_this32.config.enableAutomaticLLM) {
5368
- _this32.updateLLMConnection().catch(function (error) {
5520
+ if (_this31.config.enableAutomaticLLM) {
5521
+ _this31.updateLLMConnection().catch(function (error) {
5369
5522
  _loggerProxy.default.logger.error('Meeting:index#join --> Transcription Socket Connection Failed', error);
5370
5523
  _metrics.default.sendBehavioralMetric(_constants2.default.LLM_CONNECTION_AFTER_JOIN_FAILURE, {
5371
- correlation_id: _this32.correlationId,
5524
+ correlation_id: _this31.correlationId,
5372
5525
  reason: error === null || error === void 0 ? void 0 : error.message,
5373
5526
  stack: error.stack
5374
5527
  });
5375
5528
  }).then(function () {
5376
5529
  _loggerProxy.default.logger.info('Meeting:index#join --> Transcription Socket Connection Success');
5377
- _triggerProxy.default.trigger(_this32, {
5530
+ _triggerProxy.default.trigger(_this31, {
5378
5531
  file: 'meeting/index',
5379
5532
  function: 'join'
5380
5533
  }, _constants.EVENT_TRIGGERS.MEETING_TRANSCRIPTION_CONNECTED, undefined);
@@ -5384,9 +5537,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5384
5537
  }));
5385
5538
  case 52:
5386
5539
  case "end":
5387
- return _context16.stop();
5540
+ return _context18.stop();
5388
5541
  }
5389
- }, _callee16, this, [[37, 42]]);
5542
+ }, _callee18, this, [[37, 42]]);
5390
5543
  }));
5391
5544
  function join() {
5392
5545
  return _join.apply(this, arguments);
@@ -5403,50 +5556,50 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5403
5556
  }, {
5404
5557
  key: "updateLLMConnection",
5405
5558
  value: (function () {
5406
- var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17() {
5407
- var _this33 = this;
5559
+ var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
5560
+ var _this32 = this;
5408
5561
  var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, isJoined;
5409
- return _regenerator.default.wrap(function _callee17$(_context17) {
5410
- while (1) switch (_context17.prev = _context17.next) {
5562
+ return _regenerator.default.wrap(function _callee19$(_context19) {
5563
+ while (1) switch (_context19.prev = _context19.next) {
5411
5564
  case 0:
5412
5565
  // @ts-ignore - Fix type
5413
5566
  _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;
5414
5567
  isJoined = this.isJoined(); // @ts-ignore - Fix type
5415
5568
  if (!this.webex.internal.llm.isConnected()) {
5416
- _context17.next = 8;
5569
+ _context19.next = 8;
5417
5570
  break;
5418
5571
  }
5419
5572
  if (!(url === this.webex.internal.llm.getLocusUrl() && isJoined)) {
5420
- _context17.next = 5;
5573
+ _context19.next = 5;
5421
5574
  break;
5422
5575
  }
5423
- return _context17.abrupt("return", undefined);
5576
+ return _context19.abrupt("return", undefined);
5424
5577
  case 5:
5425
- _context17.next = 7;
5578
+ _context19.next = 7;
5426
5579
  return this.webex.internal.llm.disconnectLLM();
5427
5580
  case 7:
5428
5581
  // @ts-ignore - Fix type
5429
5582
  this.webex.internal.llm.off('event:relay.event', this.processRelayEvent);
5430
5583
  case 8:
5431
5584
  if (isJoined) {
5432
- _context17.next = 10;
5585
+ _context19.next = 10;
5433
5586
  break;
5434
5587
  }
5435
- return _context17.abrupt("return", undefined);
5588
+ return _context19.abrupt("return", undefined);
5436
5589
  case 10:
5437
- return _context17.abrupt("return", this.webex.internal.llm.registerAndConnect(url, datachannelUrl).then(function (registerAndConnectResult) {
5590
+ return _context19.abrupt("return", this.webex.internal.llm.registerAndConnect(url, datachannelUrl).then(function (registerAndConnectResult) {
5438
5591
  // @ts-ignore - Fix type
5439
- _this33.webex.internal.llm.off('event:relay.event', _this33.processRelayEvent);
5592
+ _this32.webex.internal.llm.off('event:relay.event', _this32.processRelayEvent);
5440
5593
  // @ts-ignore - Fix type
5441
- _this33.webex.internal.llm.on('event:relay.event', _this33.processRelayEvent);
5594
+ _this32.webex.internal.llm.on('event:relay.event', _this32.processRelayEvent);
5442
5595
  _loggerProxy.default.logger.info('Meeting:index#updateLLMConnection --> enabled to receive relay events!');
5443
5596
  return _promise.default.resolve(registerAndConnectResult);
5444
5597
  }));
5445
5598
  case 11:
5446
5599
  case "end":
5447
- return _context17.stop();
5600
+ return _context19.stop();
5448
5601
  }
5449
- }, _callee17, this);
5602
+ }, _callee19, this);
5450
5603
  }));
5451
5604
  function updateLLMConnection() {
5452
5605
  return _updateLLMConnection.apply(this, arguments);
@@ -5492,7 +5645,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5492
5645
  }, {
5493
5646
  key: "dialInPstn",
5494
5647
  value: function dialInPstn() {
5495
- var _this34 = this;
5648
+ var _this33 = this;
5496
5649
  if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
5497
5650
 
5498
5651
  var correlationId = this.correlationId,
@@ -5508,10 +5661,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5508
5661
  }).catch(function (error) {
5509
5662
  var _error$error2;
5510
5663
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
5511
- correlation_id: _this34.correlationId,
5512
- dial_in_url: _this34.dialInUrl,
5664
+ correlation_id: _this33.correlationId,
5665
+ dial_in_url: _this33.dialInUrl,
5513
5666
  locus_id: locusUrl.split('/').pop(),
5514
- client_url: _this34.deviceUrl,
5667
+ client_url: _this33.deviceUrl,
5515
5668
  reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
5516
5669
  stack: error.stack
5517
5670
  });
@@ -5529,7 +5682,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5529
5682
  }, {
5530
5683
  key: "dialOutPstn",
5531
5684
  value: function dialOutPstn(phoneNumber) {
5532
- var _this35 = this;
5685
+ var _this34 = this;
5533
5686
  if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
5534
5687
 
5535
5688
  var correlationId = this.correlationId,
@@ -5546,10 +5699,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5546
5699
  }).catch(function (error) {
5547
5700
  var _error$error3;
5548
5701
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
5549
- correlation_id: _this35.correlationId,
5550
- dial_out_url: _this35.dialOutUrl,
5702
+ correlation_id: _this34.correlationId,
5703
+ dial_out_url: _this34.dialOutUrl,
5551
5704
  locus_id: locusUrl.split('/').pop(),
5552
- client_url: _this35.deviceUrl,
5705
+ client_url: _this34.deviceUrl,
5553
5706
  reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
5554
5707
  stack: error.stack
5555
5708
  });
@@ -5567,7 +5720,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5567
5720
  }, {
5568
5721
  key: "disconnectPhoneAudio",
5569
5722
  value: function disconnectPhoneAudio() {
5570
- 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()]);
5723
+ 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()]);
5571
5724
  }
5572
5725
 
5573
5726
  /**
@@ -5580,7 +5733,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5580
5733
  }, {
5581
5734
  key: "moveTo",
5582
5735
  value: function moveTo(resourceId) {
5583
- var _this36 = this;
5736
+ var _this35 = this;
5584
5737
  if (!resourceId) {
5585
5738
  throw new _parameter.default('Cannot move call without a resourceId.');
5586
5739
  }
@@ -5618,18 +5771,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5618
5771
  meetingId: this.id
5619
5772
  }
5620
5773
  });
5621
- this.locusInfo.once(_constants.LOCUSINFO.EVENTS.SELF_OBSERVING, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18() {
5774
+ this.locusInfo.once(_constants.LOCUSINFO.EVENTS.SELF_OBSERVING, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20() {
5622
5775
  var mediaSettings;
5623
- return _regenerator.default.wrap(function _callee18$(_context18) {
5624
- while (1) switch (_context18.prev = _context18.next) {
5776
+ return _regenerator.default.wrap(function _callee20$(_context20) {
5777
+ while (1) switch (_context20.prev = _context20.next) {
5625
5778
  case 0:
5626
- _context18.prev = 0;
5627
- if (!(_this36.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
5628
- _context18.next = 4;
5779
+ _context20.prev = 0;
5780
+ if (!(_this35.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
5781
+ _context20.next = 4;
5629
5782
  break;
5630
5783
  }
5631
- _context18.next = 4;
5632
- return _this36.releaseScreenShareFloor();
5784
+ _context20.next = 4;
5785
+ return _this35.releaseScreenShareFloor();
5633
5786
  case 4:
5634
5787
  mediaSettings = {
5635
5788
  mediaDirection: {
@@ -5641,47 +5794,47 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5641
5794
  receiveShare: true
5642
5795
  }
5643
5796
  };
5644
- _this36.cleanupLocalStreams();
5645
- _this36.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
5646
- _this36.mediaProperties.unsetRemoteMedia();
5797
+ _this35.cleanupLocalStreams();
5798
+ _this35.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
5799
+ _this35.mediaProperties.unsetRemoteMedia();
5647
5800
 
5648
5801
  // 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
5649
5802
  // once the DX answers we establish connection back the media server with only receiveShare enabled
5650
5803
  // @ts-ignore - reconnectMedia does not accept any argument
5651
- _context18.next = 10;
5652
- return _this36.reconnectionManager.reconnectMedia(mediaSettings).then(function () {
5804
+ _context20.next = 10;
5805
+ return _this35.reconnectionManager.reconnectMedia(mediaSettings).then(function () {
5653
5806
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
5654
5807
  });
5655
5808
  case 10:
5656
- _context18.next = 16;
5809
+ _context20.next = 16;
5657
5810
  break;
5658
5811
  case 12:
5659
- _context18.prev = 12;
5660
- _context18.t0 = _context18["catch"](0);
5661
- _loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context18.t0);
5812
+ _context20.prev = 12;
5813
+ _context20.t0 = _context20["catch"](0);
5814
+ _loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context20.t0);
5662
5815
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
5663
- correlation_id: _this36.correlationId,
5664
- locus_id: _this36.locusUrl.split('/').pop(),
5665
- reason: _context18.t0.message,
5666
- stack: _context18.t0.stack
5816
+ correlation_id: _this35.correlationId,
5817
+ locus_id: _this35.locusUrl.split('/').pop(),
5818
+ reason: _context20.t0.message,
5819
+ stack: _context20.t0.stack
5667
5820
  });
5668
5821
  case 16:
5669
5822
  case "end":
5670
- return _context18.stop();
5823
+ return _context20.stop();
5671
5824
  }
5672
- }, _callee18, null, [[0, 12]]);
5825
+ }, _callee20, null, [[0, 12]]);
5673
5826
  })));
5674
5827
  _loggerProxy.default.logger.info('Meeting:index#moveTo --> Initated moved to using resourceId', resourceId);
5675
- return _util.default.joinMeetingOptions(this, {
5828
+ return _util2.default.joinMeetingOptions(this, {
5676
5829
  resourceId: resourceId,
5677
5830
  moveToResource: true
5678
5831
  }).then(function () {
5679
- _this36.meetingFiniteStateMachine.join();
5832
+ _this35.meetingFiniteStateMachine.join();
5680
5833
  }).catch(function (error) {
5681
- _this36.meetingFiniteStateMachine.fail(error);
5834
+ _this35.meetingFiniteStateMachine.fail(error);
5682
5835
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
5683
- correlation_id: _this36.correlationId,
5684
- locus_id: _this36.locusUrl.split('/').pop(),
5836
+ correlation_id: _this35.correlationId,
5837
+ locus_id: _this35.locusUrl.split('/').pop(),
5685
5838
  reason: error.message,
5686
5839
  stack: error.stack
5687
5840
  });
@@ -5700,7 +5853,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5700
5853
  }, {
5701
5854
  key: "moveFrom",
5702
5855
  value: function moveFrom(resourceId) {
5703
- var _this37 = this;
5856
+ var _this36 = this;
5704
5857
  // On moveFrom ask the developer to re capture it moveFrom then updateMedia
5705
5858
  if (!resourceId) {
5706
5859
  throw new _parameter.default('Cannot move call without a resourceId.');
@@ -5714,20 +5867,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5714
5867
  meetingId: this.id
5715
5868
  }
5716
5869
  });
5717
- return _util.default.joinMeetingOptions(this).then(function () {
5718
- return _util.default.leaveMeeting(_this37, {
5870
+ return _util2.default.joinMeetingOptions(this).then(function () {
5871
+ return _util2.default.leaveMeeting(_this36, {
5719
5872
  resourceId: resourceId,
5720
5873
  correlationId: oldCorrelationId,
5721
5874
  moveMeeting: true
5722
5875
  }).then(function () {
5723
- _this37.resourceId = '';
5876
+ _this36.resourceId = '';
5724
5877
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
5725
5878
  });
5726
5879
  }).catch(function (error) {
5727
- _this37.meetingFiniteStateMachine.fail(error);
5880
+ _this36.meetingFiniteStateMachine.fail(error);
5728
5881
  _metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
5729
- correlation_id: _this37.correlationId,
5730
- locus_id: _this37.locusUrl.split('/').pop(),
5882
+ correlation_id: _this36.correlationId,
5883
+ locus_id: _this36.locusUrl.split('/').pop(),
5731
5884
  reason: error.message,
5732
5885
  stack: error.stack
5733
5886
  });
@@ -5752,10 +5905,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5752
5905
  }, {
5753
5906
  key: "createMediaConnection",
5754
5907
  value: (function () {
5755
- var _createMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19(turnServerInfo, bundlePolicy) {
5908
+ var _createMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21(turnServerInfo, bundlePolicy) {
5756
5909
  var mc, audioEnabled, videoEnabled, shareEnabled;
5757
- return _regenerator.default.wrap(function _callee19$(_context19) {
5758
- while (1) switch (_context19.prev = _context19.next) {
5910
+ return _regenerator.default.wrap(function _callee21$(_context21) {
5911
+ while (1) switch (_context21.prev = _context21.next) {
5759
5912
  case 0:
5760
5913
  mc = _media.default.createMediaConnection(this.isMultistream, this.getMediaConnectionDebugId(),
5761
5914
  // @ts-ignore
@@ -5781,39 +5934,40 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5781
5934
 
5782
5935
  // publish the streams
5783
5936
  if (!this.mediaProperties.audioStream) {
5784
- _context19.next = 7;
5937
+ _context21.next = 8;
5785
5938
  break;
5786
5939
  }
5787
- _context19.next = 7;
5940
+ this.setSendNamedMediaGroup(_internalMediaCore.MediaType.AudioMain);
5941
+ _context21.next = 8;
5788
5942
  return this.publishStream(_internalMediaCore.MediaType.AudioMain, this.mediaProperties.audioStream);
5789
- case 7:
5943
+ case 8:
5790
5944
  if (!this.mediaProperties.videoStream) {
5791
- _context19.next = 10;
5945
+ _context21.next = 11;
5792
5946
  break;
5793
5947
  }
5794
- _context19.next = 10;
5948
+ _context21.next = 11;
5795
5949
  return this.publishStream(_internalMediaCore.MediaType.VideoMain, this.mediaProperties.videoStream);
5796
- case 10:
5950
+ case 11:
5797
5951
  if (!this.mediaProperties.shareVideoStream) {
5798
- _context19.next = 13;
5952
+ _context21.next = 14;
5799
5953
  break;
5800
5954
  }
5801
- _context19.next = 13;
5955
+ _context21.next = 14;
5802
5956
  return this.publishStream(_internalMediaCore.MediaType.VideoSlides, this.mediaProperties.shareVideoStream);
5803
- case 13:
5957
+ case 14:
5804
5958
  if (!(this.isMultistream && this.mediaProperties.shareAudioStream)) {
5805
- _context19.next = 16;
5959
+ _context21.next = 17;
5806
5960
  break;
5807
5961
  }
5808
- _context19.next = 16;
5962
+ _context21.next = 17;
5809
5963
  return this.publishStream(_internalMediaCore.MediaType.AudioSlides, this.mediaProperties.shareAudioStream);
5810
- case 16:
5811
- return _context19.abrupt("return", mc);
5812
5964
  case 17:
5965
+ return _context21.abrupt("return", mc);
5966
+ case 18:
5813
5967
  case "end":
5814
- return _context19.stop();
5968
+ return _context21.stop();
5815
5969
  }
5816
- }, _callee19, this);
5970
+ }, _callee21, this);
5817
5971
  }));
5818
5972
  function createMediaConnection(_x16, _x17) {
5819
5973
  return _createMediaConnection.apply(this, arguments);
@@ -5833,9 +5987,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5833
5987
  }, {
5834
5988
  key: "forwardEvent",
5835
5989
  value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
5836
- var _this38 = this;
5990
+ var _this37 = this;
5837
5991
  eventEmitter.on(eventTypeToForward, function (data) {
5838
- return _triggerProxy.default.trigger(_this38, {
5992
+ return _triggerProxy.default.trigger(_this37, {
5839
5993
  file: 'meetings',
5840
5994
  function: 'addMedia'
5841
5995
  }, meetingEventType, data);
@@ -5853,41 +6007,41 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5853
6007
  }, {
5854
6008
  key: "setUpLocalStreamReferences",
5855
6009
  value: (function () {
5856
- var _setUpLocalStreamReferences = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20(localStreams) {
5857
- var _localStreams$screenS, _localStreams$screenS2;
6010
+ var _setUpLocalStreamReferences = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee22(localStreams) {
6011
+ var _localStreams$microph, _localStreams$camera, _localStreams$screenS, _localStreams$screenS2, _localStreams$screenS3, _localStreams$screenS4, _localStreams$screenS5, _localStreams$screenS6;
5858
6012
  var setUpStreamPromises;
5859
- return _regenerator.default.wrap(function _callee20$(_context20) {
5860
- while (1) switch (_context20.prev = _context20.next) {
6013
+ return _regenerator.default.wrap(function _callee22$(_context22) {
6014
+ while (1) switch (_context22.prev = _context22.next) {
5861
6015
  case 0:
5862
6016
  setUpStreamPromises = [];
5863
- if (localStreams !== null && localStreams !== void 0 && localStreams.microphone) {
6017
+ 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') {
5864
6018
  setUpStreamPromises.push(this.setLocalAudioStream(localStreams.microphone));
5865
6019
  }
5866
- if (localStreams !== null && localStreams !== void 0 && localStreams.camera) {
6020
+ 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') {
5867
6021
  setUpStreamPromises.push(this.setLocalVideoStream(localStreams.camera));
5868
6022
  }
5869
- if (localStreams !== null && localStreams !== void 0 && (_localStreams$screenS = localStreams.screenShare) !== null && _localStreams$screenS !== void 0 && _localStreams$screenS.video) {
6023
+ 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') {
5870
6024
  setUpStreamPromises.push(this.setLocalShareVideoStream(localStreams.screenShare.video));
5871
6025
  }
5872
- if (localStreams !== null && localStreams !== void 0 && (_localStreams$screenS2 = localStreams.screenShare) !== null && _localStreams$screenS2 !== void 0 && _localStreams$screenS2.audio) {
6026
+ 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') {
5873
6027
  setUpStreamPromises.push(this.setLocalShareAudioStream(localStreams.screenShare.audio));
5874
6028
  }
5875
- _context20.prev = 5;
5876
- _context20.next = 8;
6029
+ _context22.prev = 5;
6030
+ _context22.next = 8;
5877
6031
  return _promise.default.all(setUpStreamPromises);
5878
6032
  case 8:
5879
- _context20.next = 14;
6033
+ _context22.next = 14;
5880
6034
  break;
5881
6035
  case 10:
5882
- _context20.prev = 10;
5883
- _context20.t0 = _context20["catch"](5);
5884
- _loggerProxy.default.logger.error("Meeting:index#addMedia():setUpLocalStreamReferences --> Error , ", _context20.t0);
5885
- throw _context20.t0;
6036
+ _context22.prev = 10;
6037
+ _context22.t0 = _context22["catch"](5);
6038
+ _loggerProxy.default.logger.error("Meeting:index#addMedia():setUpLocalStreamReferences --> Error , ", _context22.t0);
6039
+ throw _context22.t0;
5886
6040
  case 14:
5887
6041
  case "end":
5888
- return _context20.stop();
6042
+ return _context22.stop();
5889
6043
  }
5890
- }, _callee20, this, [[5, 10]]);
6044
+ }, _callee22, this, [[5, 10]]);
5891
6045
  }));
5892
6046
  function setUpLocalStreamReferences(_x18) {
5893
6047
  return _setUpLocalStreamReferences.apply(this, arguments);
@@ -5904,20 +6058,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5904
6058
  }, {
5905
6059
  key: "waitForMediaConnectionConnected",
5906
6060
  value: (function () {
5907
- var _waitForMediaConnectionConnected = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21() {
6061
+ var _waitForMediaConnectionConnected = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee23() {
5908
6062
  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;
5909
- return _regenerator.default.wrap(function _callee21$(_context21) {
5910
- while (1) switch (_context21.prev = _context21.next) {
6063
+ return _regenerator.default.wrap(function _callee23$(_context23) {
6064
+ while (1) switch (_context23.prev = _context23.next) {
5911
6065
  case 0:
5912
- _context21.prev = 0;
5913
- _context21.next = 3;
6066
+ _context23.prev = 0;
6067
+ _context23.next = 3;
5914
6068
  return this.mediaProperties.waitForMediaConnectionConnected();
5915
6069
  case 3:
5916
- _context21.next = 9;
6070
+ _context23.next = 9;
5917
6071
  break;
5918
6072
  case 5:
5919
- _context21.prev = 5;
5920
- _context21.t0 = _context21["catch"](0);
6073
+ _context23.prev = 5;
6074
+ _context23.t0 = _context23["catch"](0);
5921
6075
  if (!this.hasMediaConnectionConnectedAtLeastOnce) {
5922
6076
  // Only send CA event for join flow if we haven't successfully connected media yet
5923
6077
  // @ts-ignore
@@ -5945,9 +6099,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5945
6099
  throw new Error("Timed out waiting for media connection to be connected, correlationId=".concat(this.correlationId));
5946
6100
  case 9:
5947
6101
  case "end":
5948
- return _context21.stop();
6102
+ return _context23.stop();
5949
6103
  }
5950
- }, _callee21, this, [[0, 5]]);
6104
+ }, _callee23, this, [[0, 5]]);
5951
6105
  }));
5952
6106
  function waitForMediaConnectionConnected() {
5953
6107
  return _waitForMediaConnectionConnected.apply(this, arguments);
@@ -5964,7 +6118,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5964
6118
  }, {
5965
6119
  key: "createStatsAnalyzer",
5966
6120
  value: function createStatsAnalyzer() {
5967
- var _this39 = this;
6121
+ var _this38 = this;
5968
6122
  // @ts-ignore - config coming from registerPlugin
5969
6123
  if (this.config.stats.enableStatsAnalyzer) {
5970
6124
  // @ts-ignore - config coming from registerPlugin
@@ -5972,7 +6126,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5972
6126
  this.statsAnalyzer = new _statsAnalyzer.StatsAnalyzer(
5973
6127
  // @ts-ignore - config coming from registerPlugin
5974
6128
  this.config.stats, function (ssrc) {
5975
- return _this39.receiveSlotManager.findReceiveSlotBySsrc(ssrc);
6129
+ return _this38.receiveSlotManager.findReceiveSlotBySsrc(ssrc);
5976
6130
  }, this.networkQualityMonitor);
5977
6131
  this.setupStatsAnalyzerEventHandlers();
5978
6132
  this.networkQualityMonitor.on(_constants.EVENT_TRIGGERS.NETWORK_QUALITY, this.sendNetworkQualityEvent.bind(this));
@@ -5997,18 +6151,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5997
6151
  * @returns {Promise<void>}
5998
6152
  */
5999
6153
  function () {
6000
- var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee22() {
6154
+ var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24() {
6001
6155
  var LOG_HEADER, deferSDPAnswer;
6002
- return _regenerator.default.wrap(function _callee22$(_context22) {
6003
- while (1) switch (_context22.prev = _context22.next) {
6156
+ return _regenerator.default.wrap(function _callee24$(_context24) {
6157
+ while (1) switch (_context24.prev = _context24.next) {
6004
6158
  case 0:
6005
6159
  LOG_HEADER = 'Meeting:index#addMedia():waitForRemoteSDPAnswer -->';
6006
6160
  if (this.deferSDPAnswer) {
6007
- _context22.next = 4;
6161
+ _context24.next = 4;
6008
6162
  break;
6009
6163
  }
6010
6164
  _loggerProxy.default.logger.warn("".concat(LOG_HEADER, " offer not created yet"));
6011
- return _context22.abrupt("return", _promise.default.reject(new Error('waitForRemoteSDPAnswer() called before local sdp offer created')));
6165
+ return _context24.abrupt("return", _promise.default.reject(new Error('waitForRemoteSDPAnswer() called before local sdp offer created')));
6012
6166
  case 4:
6013
6167
  deferSDPAnswer = this.deferSDPAnswer;
6014
6168
  this.sdpResponseTimer = setTimeout(function () {
@@ -6016,12 +6170,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6016
6170
  deferSDPAnswer.reject(new Error('Timed out waiting for REMOTE SDP ANSWER'));
6017
6171
  }, _constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT);
6018
6172
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " waiting for REMOTE SDP ANSWER..."));
6019
- return _context22.abrupt("return", deferSDPAnswer.promise);
6173
+ return _context24.abrupt("return", deferSDPAnswer.promise);
6020
6174
  case 8:
6021
6175
  case "end":
6022
- return _context22.stop();
6176
+ return _context24.stop();
6023
6177
  }
6024
- }, _callee22, this);
6178
+ }, _callee24, this);
6025
6179
  }));
6026
6180
  function waitForRemoteSDPAnswer() {
6027
6181
  return _waitForRemoteSDPAnswer.apply(this, arguments);
@@ -6040,28 +6194,28 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6040
6194
  }, {
6041
6195
  key: "retryEstablishMediaConnectionWithForcedTurnDiscovery",
6042
6196
  value: (function () {
6043
- var _retryEstablishMediaConnectionWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee23(remoteMediaManagerConfig, bundlePolicy) {
6197
+ var _retryEstablishMediaConnectionWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25(remoteMediaManagerConfig, bundlePolicy) {
6044
6198
  var LOG_HEADER;
6045
- return _regenerator.default.wrap(function _callee23$(_context23) {
6046
- while (1) switch (_context23.prev = _context23.next) {
6199
+ return _regenerator.default.wrap(function _callee25$(_context25) {
6200
+ while (1) switch (_context25.prev = _context25.next) {
6047
6201
  case 0:
6048
6202
  LOG_HEADER = 'Meeting:index#addMedia():retryEstablishMediaConnectionWithForcedTurnDiscovery -->';
6049
- _context23.prev = 1;
6050
- _context23.next = 4;
6203
+ _context25.prev = 1;
6204
+ _context25.next = 4;
6051
6205
  return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, true);
6052
6206
  case 4:
6053
- _context23.next = 10;
6207
+ _context25.next = 10;
6054
6208
  break;
6055
6209
  case 6:
6056
- _context23.prev = 6;
6057
- _context23.t0 = _context23["catch"](1);
6058
- _loggerProxy.default.logger.error("".concat(LOG_HEADER, " retry with TURN-TLS failed, media connection unable to connect, "), _context23.t0);
6059
- throw _context23.t0;
6210
+ _context25.prev = 6;
6211
+ _context25.t0 = _context25["catch"](1);
6212
+ _loggerProxy.default.logger.error("".concat(LOG_HEADER, " retry with TURN-TLS failed, media connection unable to connect, "), _context25.t0);
6213
+ throw _context25.t0;
6060
6214
  case 10:
6061
6215
  case "end":
6062
- return _context23.stop();
6216
+ return _context25.stop();
6063
6217
  }
6064
- }, _callee23, this, [[1, 6]]);
6218
+ }, _callee25, this, [[1, 6]]);
6065
6219
  }));
6066
6220
  function retryEstablishMediaConnectionWithForcedTurnDiscovery(_x19, _x20) {
6067
6221
  return _retryEstablishMediaConnectionWithForcedTurnDiscovery.apply(this, arguments);
@@ -6081,14 +6235,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6081
6235
  }, {
6082
6236
  key: "retryWithForcedTurnDiscovery",
6083
6237
  value: (function () {
6084
- var _retryWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24(remoteMediaManagerConfig, bundlePolicy) {
6238
+ var _retryWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee26(remoteMediaManagerConfig, bundlePolicy) {
6085
6239
  var LOG_HEADER;
6086
- return _regenerator.default.wrap(function _callee24$(_context24) {
6087
- while (1) switch (_context24.prev = _context24.next) {
6240
+ return _regenerator.default.wrap(function _callee26$(_context26) {
6241
+ while (1) switch (_context26.prev = _context26.next) {
6088
6242
  case 0:
6089
6243
  this.retriedWithTurnServer = true;
6090
6244
  LOG_HEADER = 'Meeting:index#addMedia():retryWithForcedTurnDiscovery -->';
6091
- _context24.next = 4;
6245
+ _context26.next = 4;
6092
6246
  return this.cleanUpBeforeRetryWithTurnServer();
6093
6247
  case 4:
6094
6248
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_RETRY, {
@@ -6098,22 +6252,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6098
6252
  reason: 'forcingTurnTls'
6099
6253
  });
6100
6254
  if (!(this.state === _constants.MEETING_STATE.STATES.LEFT)) {
6101
- _context24.next = 9;
6255
+ _context26.next = 9;
6102
6256
  break;
6103
6257
  }
6104
6258
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " meeting state was LEFT after first attempt to establish media connection. Attempting to rejoin. "));
6105
- _context24.next = 9;
6259
+ _context26.next = 9;
6106
6260
  return this.join({
6107
6261
  rejoin: true
6108
6262
  });
6109
6263
  case 9:
6110
- _context24.next = 11;
6264
+ _context26.next = 11;
6111
6265
  return this.retryEstablishMediaConnectionWithForcedTurnDiscovery(remoteMediaManagerConfig, bundlePolicy);
6112
6266
  case 11:
6113
6267
  case "end":
6114
- return _context24.stop();
6268
+ return _context26.stop();
6115
6269
  }
6116
- }, _callee24, this);
6270
+ }, _callee26, this);
6117
6271
  }));
6118
6272
  function retryWithForcedTurnDiscovery(_x21, _x22) {
6119
6273
  return _retryWithForcedTurnDiscovery.apply(this, arguments);
@@ -6135,30 +6289,30 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6135
6289
  }, {
6136
6290
  key: "handleWaitForMediaConnectionConnectedError",
6137
6291
  value: (function () {
6138
- var _handleWaitForMediaConnectionConnectedError = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25(error, remoteMediaManagerConfig, bundlePolicy) {
6292
+ var _handleWaitForMediaConnectionConnectedError = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee27(error, remoteMediaManagerConfig, bundlePolicy) {
6139
6293
  var LOG_HEADER;
6140
- return _regenerator.default.wrap(function _callee25$(_context25) {
6141
- while (1) switch (_context25.prev = _context25.next) {
6294
+ return _regenerator.default.wrap(function _callee27$(_context27) {
6295
+ while (1) switch (_context27.prev = _context27.next) {
6142
6296
  case 0:
6143
6297
  LOG_HEADER = 'Meeting:index#addMedia():handleWaitForMediaConnectionConnectedError -->'; // @ts-ignore - config coming from registerPlugin
6144
6298
  if (this.turnServerUsed) {
6145
- _context25.next = 7;
6299
+ _context27.next = 7;
6146
6300
  break;
6147
6301
  }
6148
6302
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " error waiting for media to connect on UDP, TCP, retrying using TURN-TLS, "), error);
6149
- _context25.next = 5;
6303
+ _context27.next = 5;
6150
6304
  return this.retryWithForcedTurnDiscovery(remoteMediaManagerConfig, bundlePolicy);
6151
6305
  case 5:
6152
- _context25.next = 9;
6306
+ _context27.next = 9;
6153
6307
  break;
6154
6308
  case 7:
6155
6309
  _loggerProxy.default.logger.error("".concat(LOG_HEADER, " error waiting for media to connect using UDP, TCP and TURN-TLS"), error);
6156
6310
  throw new _webexErrors.AddMediaFailed();
6157
6311
  case 9:
6158
6312
  case "end":
6159
- return _context25.stop();
6313
+ return _context27.stop();
6160
6314
  }
6161
- }, _callee25, this);
6315
+ }, _callee27, this);
6162
6316
  }));
6163
6317
  function handleWaitForMediaConnectionConnectedError(_x23, _x24, _x25) {
6164
6318
  return _handleWaitForMediaConnectionConnectedError.apply(this, arguments);
@@ -6166,44 +6320,38 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6166
6320
  return handleWaitForMediaConnectionConnectedError;
6167
6321
  }()
6168
6322
  /**
6169
- * Does TURN discovery, SDP offer/answer exhange, establishes ICE connection and DTLS handshake.
6323
+ * Performs TURN discovery as a separate call to the Locus /media API
6170
6324
  *
6171
- * @private
6172
- * @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
6173
- * @param {BundlePolicy} [bundlePolicy]
6174
- * @param {boolean} [isForced] - let isForced be true to do turn discovery regardless of reachability results
6175
- * @returns {Promise<void>}
6325
+ * @param {boolean} isRetry
6326
+ * @param {boolean} isForced
6327
+ * @returns {Promise}
6176
6328
  */
6177
6329
  )
6178
6330
  }, {
6179
- key: "establishMediaConnection",
6331
+ key: "doTurnDiscovery",
6180
6332
  value: (function () {
6181
- var _establishMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee26(remoteMediaManagerConfig, bundlePolicy, isForced) {
6182
- var LOG_HEADER, cdl, isRetry, turnDiscoveryObject, turnServerInfo, mc;
6183
- return _regenerator.default.wrap(function _callee26$(_context26) {
6184
- while (1) switch (_context26.prev = _context26.next) {
6333
+ var _doTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee28(isRetry, isForced) {
6334
+ var cdl, turnDiscoveryResult;
6335
+ return _regenerator.default.wrap(function _callee28$(_context28) {
6336
+ while (1) switch (_context28.prev = _context28.next) {
6185
6337
  case 0:
6186
- LOG_HEADER = 'Meeting:index#addMedia():establishMediaConnection -->'; // @ts-ignore
6187
- cdl = this.webex.internal.newMetrics.callDiagnosticLatencies;
6188
- isRetry = this.retriedWithTurnServer;
6189
- _context26.prev = 3;
6190
6338
  // @ts-ignore
6339
+ cdl = this.webex.internal.newMetrics.callDiagnosticLatencies; // @ts-ignore
6191
6340
  this.webex.internal.newMetrics.submitInternalEvent({
6192
6341
  name: 'internal.client.add-media.turn-discovery.start'
6193
6342
  });
6194
- _context26.next = 7;
6343
+ _context28.next = 4;
6195
6344
  return this.roap.doTurnDiscovery(this, isRetry, isForced);
6196
- case 7:
6197
- turnDiscoveryObject = _context26.sent;
6198
- this.turnDiscoverySkippedReason = turnDiscoveryObject === null || turnDiscoveryObject === void 0 ? void 0 : turnDiscoveryObject.turnDiscoverySkippedReason;
6345
+ case 4:
6346
+ turnDiscoveryResult = _context28.sent;
6347
+ this.turnDiscoverySkippedReason = turnDiscoveryResult === null || turnDiscoveryResult === void 0 ? void 0 : turnDiscoveryResult.turnDiscoverySkippedReason;
6199
6348
  this.turnServerUsed = !this.turnDiscoverySkippedReason;
6200
6349
 
6201
6350
  // @ts-ignore
6202
6351
  this.webex.internal.newMetrics.submitInternalEvent({
6203
6352
  name: 'internal.client.add-media.turn-discovery.end'
6204
6353
  });
6205
- turnServerInfo = turnDiscoveryObject.turnServerInfo;
6206
- if (this.turnServerUsed && turnServerInfo) {
6354
+ if (this.turnServerUsed && turnDiscoveryResult.turnServerInfo) {
6207
6355
  _metrics.default.sendBehavioralMetric(_constants2.default.TURN_DISCOVERY_LATENCY, {
6208
6356
  correlation_id: this.correlationId,
6209
6357
  latency: cdl.getTurnDiscoveryTime(),
@@ -6211,55 +6359,100 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6211
6359
  retriedWithTurnServer: this.retriedWithTurnServer
6212
6360
  });
6213
6361
  }
6214
- _context26.next = 15;
6362
+ return _context28.abrupt("return", turnDiscoveryResult);
6363
+ case 10:
6364
+ case "end":
6365
+ return _context28.stop();
6366
+ }
6367
+ }, _callee28, this);
6368
+ }));
6369
+ function doTurnDiscovery(_x26, _x27) {
6370
+ return _doTurnDiscovery.apply(this, arguments);
6371
+ }
6372
+ return doTurnDiscovery;
6373
+ }()
6374
+ /**
6375
+ * Does TURN discovery, SDP offer/answer exhange, establishes ICE connection and DTLS handshake.
6376
+ *
6377
+ * @private
6378
+ * @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
6379
+ * @param {BundlePolicy} [bundlePolicy]
6380
+ * @param {boolean} [isForced] - let isForced be true to do turn discovery regardless of reachability results
6381
+ * @param {TurnServerInfo} [turnServerInfo]
6382
+ * @returns {Promise<void>}
6383
+ */
6384
+ )
6385
+ }, {
6386
+ key: "establishMediaConnection",
6387
+ value: (function () {
6388
+ var _establishMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee29(remoteMediaManagerConfig, bundlePolicy, isForced, turnServerInfo) {
6389
+ var LOG_HEADER, isRetry, _yield$this$doTurnDis, mc;
6390
+ return _regenerator.default.wrap(function _callee29$(_context29) {
6391
+ while (1) switch (_context29.prev = _context29.next) {
6392
+ case 0:
6393
+ LOG_HEADER = 'Meeting:index#addMedia():establishMediaConnection -->';
6394
+ isRetry = this.retriedWithTurnServer;
6395
+ _context29.prev = 2;
6396
+ if (turnServerInfo) {
6397
+ _context29.next = 8;
6398
+ break;
6399
+ }
6400
+ _context29.next = 6;
6401
+ return this.doTurnDiscovery(isRetry, isForced);
6402
+ case 6:
6403
+ _yield$this$doTurnDis = _context29.sent;
6404
+ turnServerInfo = _yield$this$doTurnDis.turnServerInfo;
6405
+ case 8:
6406
+ _context29.next = 10;
6215
6407
  return this.createMediaConnection(turnServerInfo, bundlePolicy);
6216
- case 15:
6217
- mc = _context26.sent;
6408
+ case 10:
6409
+ mc = _context29.sent;
6218
6410
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " media connection created"));
6219
6411
  if (!this.isMultistream) {
6220
- _context26.next = 24;
6412
+ _context29.next = 20;
6221
6413
  break;
6222
6414
  }
6223
6415
  this.remoteMediaManager = new _remoteMediaManager.RemoteMediaManager(this.receiveSlotManager, this.mediaRequestManagers, remoteMediaManagerConfig);
6224
6416
  this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.AudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_AUDIO_CREATED);
6417
+ this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.InterpretationAudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_INTERPRETATION_AUDIO_CREATED);
6225
6418
  this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.ScreenShareAudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_SCREEN_SHARE_AUDIO_CREATED);
6226
6419
  this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.VideoLayoutChanged, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_VIDEO_LAYOUT_CHANGED);
6227
- _context26.next = 24;
6420
+ _context29.next = 20;
6228
6421
  return this.remoteMediaManager.start();
6229
- case 24:
6230
- _context26.next = 26;
6422
+ case 20:
6423
+ _context29.next = 22;
6231
6424
  return mc.initiateOffer();
6232
- case 26:
6233
- _context26.next = 28;
6425
+ case 22:
6426
+ _context29.next = 24;
6234
6427
  return this.waitForRemoteSDPAnswer();
6235
- case 28:
6428
+ case 24:
6236
6429
  this.handleMediaLogging(this.mediaProperties);
6237
- _context26.next = 35;
6430
+ _context29.next = 31;
6238
6431
  break;
6432
+ case 27:
6433
+ _context29.prev = 27;
6434
+ _context29.t0 = _context29["catch"](2);
6435
+ _loggerProxy.default.logger.error("".concat(LOG_HEADER, " error establishing media connection, "), _context29.t0);
6436
+ throw _context29.t0;
6239
6437
  case 31:
6240
- _context26.prev = 31;
6241
- _context26.t0 = _context26["catch"](3);
6242
- _loggerProxy.default.logger.error("".concat(LOG_HEADER, " error establishing media connection, "), _context26.t0);
6243
- throw _context26.t0;
6244
- case 35:
6245
- _context26.prev = 35;
6246
- _context26.next = 38;
6438
+ _context29.prev = 31;
6439
+ _context29.next = 34;
6247
6440
  return this.waitForMediaConnectionConnected();
6248
- case 38:
6249
- _context26.next = 44;
6441
+ case 34:
6442
+ _context29.next = 40;
6250
6443
  break;
6444
+ case 36:
6445
+ _context29.prev = 36;
6446
+ _context29.t1 = _context29["catch"](31);
6447
+ _context29.next = 40;
6448
+ return this.handleWaitForMediaConnectionConnectedError(_context29.t1, remoteMediaManagerConfig, bundlePolicy);
6251
6449
  case 40:
6252
- _context26.prev = 40;
6253
- _context26.t1 = _context26["catch"](35);
6254
- _context26.next = 44;
6255
- return this.handleWaitForMediaConnectionConnectedError(_context26.t1, remoteMediaManagerConfig, bundlePolicy);
6256
- case 44:
6257
6450
  case "end":
6258
- return _context26.stop();
6451
+ return _context29.stop();
6259
6452
  }
6260
- }, _callee26, this, [[3, 31], [35, 40]]);
6453
+ }, _callee29, this, [[2, 27], [31, 36]]);
6261
6454
  }));
6262
- function establishMediaConnection(_x26, _x27, _x28) {
6455
+ function establishMediaConnection(_x28, _x29, _x30, _x31) {
6263
6456
  return _establishMediaConnection.apply(this, arguments);
6264
6457
  }
6265
6458
  return establishMediaConnection;
@@ -6274,22 +6467,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6274
6467
  }, {
6275
6468
  key: "cleanUpOnAddMediaFailure",
6276
6469
  value: (function () {
6277
- var _cleanUpOnAddMediaFailure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee27() {
6278
- return _regenerator.default.wrap(function _callee27$(_context27) {
6279
- while (1) switch (_context27.prev = _context27.next) {
6470
+ var _cleanUpOnAddMediaFailure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee30() {
6471
+ return _regenerator.default.wrap(function _callee30$(_context30) {
6472
+ while (1) switch (_context30.prev = _context30.next) {
6280
6473
  case 0:
6281
6474
  if (!this.statsAnalyzer) {
6282
- _context27.next = 3;
6475
+ _context30.next = 3;
6283
6476
  break;
6284
6477
  }
6285
- _context27.next = 3;
6478
+ _context30.next = 3;
6286
6479
  return this.statsAnalyzer.stopAnalyzer();
6287
6480
  case 3:
6288
6481
  this.statsAnalyzer = null;
6289
6482
 
6290
6483
  // when media fails, we want to upload a webrtc dump to see whats going on
6291
6484
  // this function is async, but returns once the stats have been gathered
6292
- _context27.next = 6;
6485
+ _context30.next = 6;
6293
6486
  return this.forceSendStatsReport({
6294
6487
  callFrom: 'addMedia'
6295
6488
  });
@@ -6300,9 +6493,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6300
6493
  }
6301
6494
  case 7:
6302
6495
  case "end":
6303
- return _context27.stop();
6496
+ return _context30.stop();
6304
6497
  }
6305
- }, _callee27, this);
6498
+ }, _callee30, this);
6306
6499
  }));
6307
6500
  function cleanUpOnAddMediaFailure() {
6308
6501
  return _cleanUpOnAddMediaFailure.apply(this, arguments);
@@ -6320,11 +6513,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6320
6513
  }, {
6321
6514
  key: "cleanUpBeforeRetryWithTurnServer",
6322
6515
  value: (function () {
6323
- var _cleanUpBeforeRetryWithTurnServer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee28() {
6324
- return _regenerator.default.wrap(function _callee28$(_context28) {
6325
- while (1) switch (_context28.prev = _context28.next) {
6516
+ var _cleanUpBeforeRetryWithTurnServer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee31() {
6517
+ return _regenerator.default.wrap(function _callee31$(_context31) {
6518
+ while (1) switch (_context31.prev = _context31.next) {
6326
6519
  case 0:
6327
- _context28.next = 2;
6520
+ _context31.next = 2;
6328
6521
  return this.forceSendStatsReport({
6329
6522
  callFrom: 'cleanUpBeforeRetryWithTurnServer'
6330
6523
  });
@@ -6344,9 +6537,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6344
6537
  }
6345
6538
  case 3:
6346
6539
  case "end":
6347
- return _context28.stop();
6540
+ return _context31.stop();
6348
6541
  }
6349
- }, _callee28, this);
6542
+ }, _callee31, this);
6350
6543
  }));
6351
6544
  function cleanUpBeforeRetryWithTurnServer() {
6352
6545
  return _cleanUpBeforeRetryWithTurnServer.apply(this, arguments);
@@ -6357,6 +6550,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6357
6550
  * Creates a media connection to the server. Media connection is required for sending or receiving any audio/video.
6358
6551
  *
6359
6552
  * @param {AddMediaOptions} options
6553
+ * @param {TurnServerInfo} turnServerInfo - TURN server information (used only internally by the SDK)
6360
6554
  * @returns {Promise<void>}
6361
6555
  * @public
6362
6556
  * @memberof Meeting
@@ -6365,9 +6559,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6365
6559
  }, {
6366
6560
  key: "addMedia",
6367
6561
  value: (function () {
6368
- var _addMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee29() {
6562
+ var _addMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32() {
6369
6563
  var _this$webex$meetings$2, _this$webex$meetings$3;
6370
6564
  var options,
6565
+ turnServerInfo,
6371
6566
  LOG_HEADER,
6372
6567
  localStreams,
6373
6568
  _options$audioEnabled,
@@ -6380,9 +6575,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6380
6575
  shareVideoEnabled,
6381
6576
  remoteMediaManagerConfig,
6382
6577
  bundlePolicy,
6383
- allowMediaInLobby,
6384
6578
  _this$remoteMediaMana,
6579
+ _yield$this$mediaProp,
6385
6580
  connectionType,
6581
+ selectedCandidatePairChanges,
6582
+ numTransports,
6386
6583
  reachabilityStats,
6387
6584
  _this$mediaProperties20,
6388
6585
  _this$mediaProperties21,
@@ -6406,38 +6603,42 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6406
6603
  _this$mediaProperties39,
6407
6604
  _this$mediaProperties40,
6408
6605
  reachabilityMetrics,
6409
- _args29 = arguments;
6410
- return _regenerator.default.wrap(function _callee29$(_context29) {
6411
- while (1) switch (_context29.prev = _context29.next) {
6606
+ _yield$this$mediaProp2,
6607
+ _selectedCandidatePairChanges,
6608
+ _numTransports,
6609
+ _args32 = arguments;
6610
+ return _regenerator.default.wrap(function _callee32$(_context32) {
6611
+ while (1) switch (_context32.prev = _context32.next) {
6412
6612
  case 0:
6413
- options = _args29.length > 0 && _args29[0] !== undefined ? _args29[0] : {};
6613
+ options = _args32.length > 0 && _args32[0] !== undefined ? _args32[0] : {};
6614
+ turnServerInfo = _args32.length > 1 && _args32[1] !== undefined ? _args32[1] : undefined;
6414
6615
  this.retriedWithTurnServer = false;
6415
6616
  this.hasMediaConnectionConnectedAtLeastOnce = false;
6416
6617
  LOG_HEADER = 'Meeting:index#addMedia -->';
6417
- _loggerProxy.default.logger.info("".concat(LOG_HEADER, " called with: ").concat((0, _stringify.default)(options)));
6618
+ _loggerProxy.default.logger.info("".concat(LOG_HEADER, " called with: ").concat((0, _stringify.default)(options), ", ").concat((0, _stringify.default)(turnServerInfo)));
6418
6619
  if (!(options.allowMediaInLobby !== true && this.meetingState !== _constants.FULL_STATE.ACTIVE)) {
6419
- _context29.next = 7;
6620
+ _context32.next = 8;
6420
6621
  break;
6421
6622
  }
6422
6623
  throw new _webexErrors.MeetingNotActiveError();
6423
- case 7:
6424
- if (!_util.default.isUserInLeftState(this.locusInfo)) {
6425
- _context29.next = 9;
6624
+ case 8:
6625
+ if (!_util2.default.isUserInLeftState(this.locusInfo)) {
6626
+ _context32.next = 10;
6426
6627
  break;
6427
6628
  }
6428
6629
  throw new _webexErrors.UserNotJoinedError();
6429
- case 9:
6430
- 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;
6630
+ case 10:
6631
+ 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;
6431
6632
  this.allowMediaInLobby = options === null || options === void 0 ? void 0 : options.allowMediaInLobby;
6432
6633
 
6433
6634
  // If the user is unjoined or guest waiting in lobby dont allow the user to addMedia
6434
6635
  // @ts-ignore - isUserUnadmitted coming from SelfUtil
6435
- if (!(this.isUserUnadmitted && !this.wirelessShare && !allowMediaInLobby)) {
6436
- _context29.next = 13;
6636
+ if (!(this.isUserUnadmitted && !this.wirelessShare && !this.allowMediaInLobby)) {
6637
+ _context32.next = 14;
6437
6638
  break;
6438
6639
  }
6439
6640
  throw new _webexErrors.UserInLobbyError();
6440
- case 13:
6641
+ case 14:
6441
6642
  // @ts-ignore
6442
6643
  this.webex.internal.newMetrics.submitClientEvent({
6443
6644
  name: 'client.media.capabilities',
@@ -6492,39 +6693,54 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6492
6693
  });
6493
6694
  this.audio = (0, _muteState.createMuteState)(_constants.AUDIO, this, audioEnabled);
6494
6695
  this.video = (0, _muteState.createMuteState)(_constants.VIDEO, this, videoEnabled);
6495
- _context29.prev = 18;
6496
- _context29.next = 21;
6696
+ _context32.prev = 19;
6697
+ _context32.next = 22;
6497
6698
  return this.setUpLocalStreamReferences(localStreams);
6498
- case 21:
6699
+ case 22:
6499
6700
  this.setMercuryListener();
6500
6701
  this.createStatsAnalyzer();
6501
- _context29.next = 25;
6502
- return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, false);
6503
- case 25:
6504
- _context29.next = 27;
6702
+ _context32.next = 26;
6703
+ return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, false, turnServerInfo);
6704
+ case 26:
6705
+ if (!(audioEnabled || videoEnabled)) {
6706
+ _context32.next = 31;
6707
+ break;
6708
+ }
6709
+ _context32.next = 29;
6505
6710
  return Meeting.handleDeviceLogging();
6506
- case 27:
6711
+ case 29:
6712
+ _context32.next = 32;
6713
+ break;
6714
+ case 31:
6715
+ _loggerProxy.default.logger.info("".concat(LOG_HEADER, " device logging not required"));
6716
+ case 32:
6507
6717
  if (!this.mediaProperties.hasLocalShareStream()) {
6508
- _context29.next = 30;
6718
+ _context32.next = 35;
6509
6719
  break;
6510
6720
  }
6511
- _context29.next = 30;
6721
+ _context32.next = 35;
6512
6722
  return this.enqueueScreenShareFloorRequest();
6513
- case 30:
6514
- _context29.next = 32;
6515
- return this.mediaProperties.getCurrentConnectionType();
6516
- case 32:
6517
- connectionType = _context29.sent;
6518
- _context29.next = 35;
6519
- return this.webex.meetings.reachability.getReachabilityMetrics();
6520
6723
  case 35:
6521
- reachabilityStats = _context29.sent;
6724
+ _context32.next = 37;
6725
+ return this.mediaProperties.getCurrentConnectionInfo();
6726
+ case 37:
6727
+ _yield$this$mediaProp = _context32.sent;
6728
+ connectionType = _yield$this$mediaProp.connectionType;
6729
+ selectedCandidatePairChanges = _yield$this$mediaProp.selectedCandidatePairChanges;
6730
+ numTransports = _yield$this$mediaProp.numTransports;
6731
+ _context32.next = 43;
6732
+ return this.webex.meetings.reachability.getReachabilityMetrics();
6733
+ case 43:
6734
+ reachabilityStats = _context32.sent;
6522
6735
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, _objectSpread({
6523
6736
  correlation_id: this.correlationId,
6524
6737
  locus_id: this.locusUrl.split('/').pop(),
6525
6738
  connectionType: connectionType,
6739
+ selectedCandidatePairChanges: selectedCandidatePairChanges,
6740
+ numTransports: numTransports,
6526
6741
  isMultistream: this.isMultistream,
6527
- retriedWithTurnServer: this.retriedWithTurnServer
6742
+ retriedWithTurnServer: this.retriedWithTurnServer,
6743
+ isJoinWithMediaRetry: this.joinWithMediaRetryInfo.isRetry
6528
6744
  }, reachabilityStats));
6529
6745
  // @ts-ignore
6530
6746
  this.webex.internal.newMetrics.submitClientEvent({
@@ -6537,51 +6753,60 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6537
6753
 
6538
6754
  // We can log ReceiveSlot SSRCs only after the SDP exchange, so doing it here:
6539
6755
  (_this$remoteMediaMana = this.remoteMediaManager) === null || _this$remoteMediaMana === void 0 ? void 0 : _this$remoteMediaMana.logAllReceiveSlots();
6540
- _context29.next = 54;
6756
+ _context32.next = 67;
6541
6757
  break;
6542
- case 42:
6543
- _context29.prev = 42;
6544
- _context29.t0 = _context29["catch"](18);
6545
- _loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context29.t0);
6758
+ case 50:
6759
+ _context32.prev = 50;
6760
+ _context32.t0 = _context32["catch"](19);
6761
+ _loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context32.t0);
6546
6762
 
6547
6763
  // @ts-ignore
6548
- _context29.next = 47;
6764
+ _context32.next = 55;
6549
6765
  return this.webex.meetings.reachability.getReachabilityMetrics();
6550
- case 47:
6551
- reachabilityMetrics = _context29.sent;
6766
+ case 55:
6767
+ reachabilityMetrics = _context32.sent;
6768
+ _context32.next = 58;
6769
+ return this.mediaProperties.getCurrentConnectionInfo();
6770
+ case 58:
6771
+ _yield$this$mediaProp2 = _context32.sent;
6772
+ _selectedCandidatePairChanges = _yield$this$mediaProp2.selectedCandidatePairChanges;
6773
+ _numTransports = _yield$this$mediaProp2.numTransports;
6552
6774
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_FAILURE, _objectSpread({
6553
6775
  correlation_id: this.correlationId,
6554
6776
  locus_id: this.locusUrl.split('/').pop(),
6555
- reason: _context29.t0.message,
6556
- stack: _context29.t0.stack,
6557
- code: _context29.t0.code,
6777
+ reason: _context32.t0.message,
6778
+ stack: _context32.t0.stack,
6779
+ code: _context32.t0.code,
6780
+ selectedCandidatePairChanges: _selectedCandidatePairChanges,
6781
+ numTransports: _numTransports,
6558
6782
  turnDiscoverySkippedReason: this.turnDiscoverySkippedReason,
6559
6783
  turnServerUsed: this.turnServerUsed,
6560
6784
  retriedWithTurnServer: this.retriedWithTurnServer,
6561
6785
  isMultistream: this.isMultistream,
6786
+ isJoinWithMediaRetry: this.joinWithMediaRetryInfo.isRetry,
6562
6787
  signalingState: ((_this$mediaProperties20 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties20 === void 0 ? void 0 : (_this$mediaProperties21 = _this$mediaProperties20.multistreamConnection) === null || _this$mediaProperties21 === void 0 ? void 0 : (_this$mediaProperties22 = _this$mediaProperties21.pc) === null || _this$mediaProperties22 === void 0 ? void 0 : (_this$mediaProperties23 = _this$mediaProperties22.pc) === null || _this$mediaProperties23 === void 0 ? void 0 : _this$mediaProperties23.signalingState) || ((_this$mediaProperties24 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties24 === void 0 ? void 0 : (_this$mediaProperties25 = _this$mediaProperties24.mediaConnection) === null || _this$mediaProperties25 === void 0 ? void 0 : (_this$mediaProperties26 = _this$mediaProperties25.pc) === null || _this$mediaProperties26 === void 0 ? void 0 : _this$mediaProperties26.signalingState) || 'unknown',
6563
6788
  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',
6564
6789
  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'
6565
6790
  }, reachabilityMetrics));
6566
- _context29.next = 51;
6791
+ _context32.next = 64;
6567
6792
  return this.cleanUpOnAddMediaFailure();
6568
- case 51:
6793
+ case 64:
6569
6794
  // Upload logs on error while adding media
6570
6795
  _triggerProxy.default.trigger(this, {
6571
6796
  file: 'meeting/index',
6572
6797
  function: 'addMedia'
6573
6798
  }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
6574
- if (_context29.t0 instanceof _internalMediaCore.Errors.SdpError) {
6799
+ if (_context32.t0 instanceof _internalMediaCore.Errors.SdpError) {
6575
6800
  this.leave({
6576
6801
  reason: _constants.MEETING_REMOVED_REASON.MEETING_CONNECTION_FAILED
6577
6802
  });
6578
6803
  }
6579
- throw _context29.t0;
6580
- case 54:
6804
+ throw _context32.t0;
6805
+ case 67:
6581
6806
  case "end":
6582
- return _context29.stop();
6807
+ return _context32.stop();
6583
6808
  }
6584
- }, _callee29, this, [[18, 42]]);
6809
+ }, _callee32, this, [[19, 50]]);
6585
6810
  }));
6586
6811
  function addMedia() {
6587
6812
  return _addMedia.apply(this, arguments);
@@ -6613,7 +6838,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6613
6838
  * @memberof Meeting
6614
6839
  */
6615
6840
  function enqueueMediaUpdate(mediaUpdateType) {
6616
- var _this40 = this;
6841
+ var _this39 = this;
6617
6842
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6618
6843
  var canUpdateMediaNow = this.canUpdateMedia();
6619
6844
  return new _promise.default(function (resolve, reject) {
@@ -6624,9 +6849,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6624
6849
  options: options
6625
6850
  };
6626
6851
  _loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
6627
- _this40.queuedMediaUpdates.push(queueItem);
6852
+ _this39.queuedMediaUpdates.push(queueItem);
6628
6853
  if (canUpdateMediaNow) {
6629
- _this40.processNextQueuedMediaUpdate();
6854
+ _this39.processNextQueuedMediaUpdate();
6630
6855
  }
6631
6856
  });
6632
6857
  }
@@ -6649,35 +6874,35 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6649
6874
  * @memberof Meeting
6650
6875
  */
6651
6876
  function () {
6652
- var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee30(options) {
6877
+ var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33(options) {
6653
6878
  var audioEnabled, videoEnabled, shareAudioEnabled, shareVideoEnabled;
6654
- return _regenerator.default.wrap(function _callee30$(_context30) {
6655
- while (1) switch (_context30.prev = _context30.next) {
6879
+ return _regenerator.default.wrap(function _callee33$(_context33) {
6880
+ while (1) switch (_context33.prev = _context33.next) {
6656
6881
  case 0:
6657
6882
  this.checkMediaConnection();
6658
6883
  audioEnabled = options.audioEnabled, videoEnabled = options.videoEnabled, shareAudioEnabled = options.shareAudioEnabled, shareVideoEnabled = options.shareVideoEnabled;
6659
6884
  _loggerProxy.default.logger.log("Meeting:index#updateMedia --> called with options=".concat((0, _stringify.default)(options)));
6660
6885
  if (this.canUpdateMedia()) {
6661
- _context30.next = 5;
6886
+ _context33.next = 5;
6662
6887
  break;
6663
6888
  }
6664
- return _context30.abrupt("return", this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.UPDATE_MEDIA, options));
6889
+ return _context33.abrupt("return", this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.UPDATE_MEDIA, options));
6665
6890
  case 5:
6666
6891
  if (!this.isMultistream) {
6667
- _context30.next = 10;
6892
+ _context33.next = 10;
6668
6893
  break;
6669
6894
  }
6670
6895
  if (!(shareAudioEnabled !== undefined || shareVideoEnabled !== undefined)) {
6671
- _context30.next = 8;
6896
+ _context33.next = 8;
6672
6897
  break;
6673
6898
  }
6674
6899
  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');
6675
6900
  case 8:
6676
- _context30.next = 12;
6901
+ _context33.next = 12;
6677
6902
  break;
6678
6903
  case 10:
6679
6904
  if (!(shareAudioEnabled !== undefined)) {
6680
- _context30.next = 12;
6905
+ _context33.next = 12;
6681
6906
  break;
6682
6907
  }
6683
6908
  throw new Error('toggling shareAudioEnabled in a transcoded meeting is not supported as of now');
@@ -6702,20 +6927,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6702
6927
  this.mediaProperties.mediaDirection.receiveShare = !!(shareAudioEnabled || shareVideoEnabled);
6703
6928
  }
6704
6929
  if (this.isMultistream) {
6705
- _context30.next = 18;
6930
+ _context33.next = 18;
6706
6931
  break;
6707
6932
  }
6708
- _context30.next = 18;
6933
+ _context33.next = 18;
6709
6934
  return this.updateTranscodedMediaConnection();
6710
6935
  case 18:
6711
- return _context30.abrupt("return", undefined);
6936
+ return _context33.abrupt("return", undefined);
6712
6937
  case 19:
6713
6938
  case "end":
6714
- return _context30.stop();
6939
+ return _context33.stop();
6715
6940
  }
6716
- }, _callee30, this);
6941
+ }, _callee33, this);
6717
6942
  }));
6718
- function updateMedia(_x29) {
6943
+ function updateMedia(_x32) {
6719
6944
  return _updateMedia.apply(this, arguments);
6720
6945
  }
6721
6946
  return updateMedia;
@@ -6731,7 +6956,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6731
6956
  }, {
6732
6957
  key: "acknowledge",
6733
6958
  value: function acknowledge(type) {
6734
- var _this41 = this;
6959
+ var _this40 = this;
6735
6960
  if (!type) {
6736
6961
  return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
6737
6962
  }
@@ -6743,12 +6968,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6743
6968
  }).then(function (response) {
6744
6969
  return _promise.default.resolve(response);
6745
6970
  }).then(function (response) {
6746
- _this41.meetingFiniteStateMachine.ring(type);
6971
+ _this40.meetingFiniteStateMachine.ring(type);
6747
6972
  // @ts-ignore
6748
- _this41.webex.internal.newMetrics.submitClientEvent({
6973
+ _this40.webex.internal.newMetrics.submitClientEvent({
6749
6974
  name: 'client.alert.displayed',
6750
6975
  options: {
6751
- meetingId: _this41.id
6976
+ meetingId: _this40.id
6752
6977
  }
6753
6978
  });
6754
6979
  return _promise.default.resolve({
@@ -6773,12 +6998,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6773
6998
  }, {
6774
6999
  key: "decline",
6775
7000
  value: function decline(reason) {
6776
- var _this42 = this;
6777
- return _util.default.declineMeeting(this, reason).then(function (decline) {
6778
- _this42.meetingFiniteStateMachine.decline();
7001
+ var _this41 = this;
7002
+ return _util2.default.declineMeeting(this, reason).then(function (decline) {
7003
+ _this41.meetingFiniteStateMachine.decline();
6779
7004
  return _promise.default.resolve(decline);
6780
7005
  }).catch(function (error) {
6781
- _this42.meetingFiniteStateMachine.fail(error);
7006
+ _this41.meetingFiniteStateMachine.fail(error);
6782
7007
  return _promise.default.reject(error);
6783
7008
  });
6784
7009
  }
@@ -6808,7 +7033,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6808
7033
  key: "buildLeaveFetchRequestOptions",
6809
7034
  value: function buildLeaveFetchRequestOptions() {
6810
7035
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6811
- var requestOptions = _util.default.buildLeaveFetchRequestOptions(this, options);
7036
+ var requestOptions = _util2.default.buildLeaveFetchRequestOptions(this, options);
6812
7037
 
6813
7038
  // @ts-ignore
6814
7039
  return this.webex.prepareFetchOptions(requestOptions);
@@ -6829,7 +7054,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6829
7054
  }, {
6830
7055
  key: "leave",
6831
7056
  value: function leave() {
6832
- var _this43 = this;
7057
+ var _this42 = this;
6833
7058
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6834
7059
  var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
6835
7060
 
@@ -6841,7 +7066,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6841
7066
  var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6842
7067
  return (
6843
7068
  // @ts-ignore
6844
- _this43.webex.internal.newMetrics.submitClientEvent({
7069
+ _this42.webex.internal.newMetrics.submitClientEvent({
6845
7070
  name: 'client.call.leave',
6846
7071
  payload: _objectSpread({
6847
7072
  trigger: 'user-interaction',
@@ -6849,33 +7074,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6849
7074
  leaveReason: options.clientEventLeaveReason
6850
7075
  }, payload),
6851
7076
  options: {
6852
- meetingId: _this43.id
7077
+ meetingId: _this42.id
6853
7078
  }
6854
7079
  })
6855
7080
  );
6856
7081
  };
6857
7082
  _loggerProxy.default.logger.log('Meeting:index#leave --> Leaving a meeting');
6858
- return _util.default.leaveMeeting(this, options).then(function (leave) {
7083
+ return _util2.default.leaveMeeting(this, options).then(function (leave) {
6859
7084
  // CA team recommends submitting this *after* locus /leave
6860
7085
  submitLeaveMetric();
6861
- _this43.meetingFiniteStateMachine.leave();
6862
- _this43.clearMeetingData();
7086
+ _this42.meetingFiniteStateMachine.leave();
7087
+ _this42.clearMeetingData();
6863
7088
 
6864
7089
  // upload logs on leave irrespective of meeting delete
6865
- _triggerProxy.default.trigger(_this43, {
7090
+ _triggerProxy.default.trigger(_this42, {
6866
7091
  file: 'meeting/index',
6867
7092
  function: 'leave'
6868
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this43);
7093
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this42);
6869
7094
 
6870
7095
  // TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
6871
- if (_this43.wirelessShare || _this43.guest) {
7096
+ if (_this42.wirelessShare || _this42.guest) {
6872
7097
  // If screen sharing clean the meeting object
6873
- _triggerProxy.default.trigger(_this43, {
7098
+ _triggerProxy.default.trigger(_this42, {
6874
7099
  file: 'meeting/index',
6875
7100
  function: 'leave'
6876
7101
  }, _constants.EVENTS.DESTROY_MEETING, {
6877
7102
  reason: options.reason,
6878
- meetingId: _this43.id
7103
+ meetingId: _this42.id
6879
7104
  });
6880
7105
  }
6881
7106
  _loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
@@ -6892,16 +7117,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6892
7117
  shownToUser: false
6893
7118
  }]
6894
7119
  });
6895
- _this43.meetingFiniteStateMachine.fail(error);
7120
+ _this42.meetingFiniteStateMachine.fail(error);
6896
7121
  _loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
6897
7122
  // upload logs on leave irrespective of meeting delete
6898
- _triggerProxy.default.trigger(_this43, {
7123
+ _triggerProxy.default.trigger(_this42, {
6899
7124
  file: 'meeting/index',
6900
7125
  function: 'leave'
6901
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this43);
7126
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this42);
6902
7127
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
6903
- correlation_id: _this43.correlationId,
6904
- locus_id: _this43.locusUrl.split('/').pop(),
7128
+ correlation_id: _this42.correlationId,
7129
+ locus_id: _this42.locusUrl.split('/').pop(),
6905
7130
  reason: error.message,
6906
7131
  stack: error.stack,
6907
7132
  code: error.code
@@ -6921,7 +7146,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6921
7146
  }, {
6922
7147
  key: "startWhiteboardShare",
6923
7148
  value: function startWhiteboardShare(channelUrl, resourceToken) {
6924
- var _this44 = this;
7149
+ var _this43 = this;
6925
7150
  var whiteboard = this.locusInfo.mediaShares.find(function (element) {
6926
7151
  return element.name === 'whiteboard';
6927
7152
  });
@@ -6950,13 +7175,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6950
7175
  body.resourceToken = resourceToken;
6951
7176
  }
6952
7177
  return this.meetingRequest.changeMeetingFloor(body).then(function () {
6953
- _this44.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7178
+ _this43.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
6954
7179
  return _promise.default.resolve();
6955
7180
  }).catch(function (error) {
6956
7181
  _loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
6957
7182
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
6958
- correlation_id: _this44.correlationId,
6959
- locus_id: _this44.locusUrl.split('/').pop(),
7183
+ correlation_id: _this43.correlationId,
7184
+ locus_id: _this43.locusUrl.split('/').pop(),
6960
7185
  reason: error.message,
6961
7186
  stack: error.stack,
6962
7187
  board: {
@@ -6979,7 +7204,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6979
7204
  }, {
6980
7205
  key: "stopWhiteboardShare",
6981
7206
  value: function stopWhiteboardShare(channelUrl) {
6982
- var _this45 = this;
7207
+ var _this44 = this;
6983
7208
  var whiteboard = this.locusInfo.mediaShares.find(function (element) {
6984
7209
  return element.name === 'whiteboard';
6985
7210
  });
@@ -7002,8 +7227,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7002
7227
  }).catch(function (error) {
7003
7228
  _loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
7004
7229
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
7005
- correlation_id: _this45.correlationId,
7006
- locus_id: _this45.locusUrl.split('/').pop(),
7230
+ correlation_id: _this44.correlationId,
7231
+ locus_id: _this44.locusUrl.split('/').pop(),
7007
7232
  reason: error.message,
7008
7233
  stack: error.stack,
7009
7234
  board: {
@@ -7025,7 +7250,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7025
7250
  }, {
7026
7251
  key: "requestScreenShareFloor",
7027
7252
  value: function requestScreenShareFloor() {
7028
- var _this46 = this;
7253
+ var _this45 = this;
7029
7254
  if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
7030
7255
  _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, ")"));
7031
7256
  this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
@@ -7056,34 +7281,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7056
7281
  resourceUrl: this.resourceUrl,
7057
7282
  shareInstanceId: this.localShareInstanceId
7058
7283
  }).then(function () {
7059
- _this46.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
7284
+ _this45.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
7060
7285
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
7061
- correlation_id: _this46.correlationId,
7062
- locus_id: _this46.locusUrl.split('/').pop()
7286
+ correlation_id: _this45.correlationId,
7287
+ locus_id: _this45.locusUrl.split('/').pop()
7063
7288
  });
7064
7289
  return _promise.default.resolve();
7065
7290
  }).catch(function (error) {
7066
7291
  _loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
7067
7292
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
7068
- correlation_id: _this46.correlationId,
7069
- locus_id: _this46.locusUrl.split('/').pop(),
7293
+ correlation_id: _this45.correlationId,
7294
+ locus_id: _this45.locusUrl.split('/').pop(),
7070
7295
  reason: error.message,
7071
7296
  stack: error.stack
7072
7297
  });
7073
7298
 
7074
7299
  // @ts-ignore
7075
- _this46.webex.internal.newMetrics.submitClientEvent({
7300
+ _this45.webex.internal.newMetrics.submitClientEvent({
7076
7301
  name: 'client.share.floor-granted.local',
7077
7302
  payload: {
7078
7303
  mediaType: 'share',
7079
- errors: _util.default.getChangeMeetingFloorErrorPayload(error.message),
7080
- shareInstanceId: _this46.localShareInstanceId
7304
+ errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
7305
+ shareInstanceId: _this45.localShareInstanceId
7081
7306
  },
7082
7307
  options: {
7083
- meetingId: _this46.id
7308
+ meetingId: _this45.id
7084
7309
  }
7085
7310
  });
7086
- _this46.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7311
+ _this45.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
7087
7312
  return _promise.default.reject(error);
7088
7313
  });
7089
7314
  }
@@ -7106,10 +7331,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7106
7331
  }, {
7107
7332
  key: "requestScreenShareFloorIfPending",
7108
7333
  value: function requestScreenShareFloorIfPending() {
7109
- var _this47 = this;
7334
+ var _this46 = this;
7110
7335
  if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
7111
7336
  this.requestScreenShareFloor().then(function () {
7112
- _this47.floorGrantPending = false;
7337
+ _this46.floorGrantPending = false;
7113
7338
  });
7114
7339
  }
7115
7340
  }
@@ -7123,7 +7348,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7123
7348
  }, {
7124
7349
  key: "releaseScreenShareFloor",
7125
7350
  value: function releaseScreenShareFloor() {
7126
- var _this48 = this;
7351
+ var _this47 = this;
7127
7352
  var content = this.locusInfo.mediaShares.find(function (element) {
7128
7353
  return element.name === _constants.CONTENT;
7129
7354
  });
@@ -7158,8 +7383,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7158
7383
  }).catch(function (error) {
7159
7384
  _loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
7160
7385
  _metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
7161
- correlation_id: _this48.correlationId,
7162
- locus_id: _this48.locusUrl.split('/').pop(),
7386
+ correlation_id: _this47.correlationId,
7387
+ locus_id: _this47.locusUrl.split('/').pop(),
7163
7388
  reason: error.message,
7164
7389
  stack: error.stack
7165
7390
  });
@@ -7269,7 +7494,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7269
7494
  }, {
7270
7495
  key: "lockMeeting",
7271
7496
  value: function lockMeeting() {
7272
- return _util.default.lockMeeting(this.inMeetingActions, this.meetingRequest, this.locusUrl);
7497
+ return _util2.default.lockMeeting(this.inMeetingActions, this.meetingRequest, this.locusUrl);
7273
7498
  }
7274
7499
 
7275
7500
  /**
@@ -7281,7 +7506,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7281
7506
  }, {
7282
7507
  key: "unlockMeeting",
7283
7508
  value: function unlockMeeting() {
7284
- return _util.default.unlockMeeting(this.inMeetingActions, this.meetingRequest, this.locusUrl);
7509
+ return _util2.default.unlockMeeting(this.inMeetingActions, this.meetingRequest, this.locusUrl);
7285
7510
  }
7286
7511
 
7287
7512
  /**
@@ -7338,7 +7563,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7338
7563
  }, {
7339
7564
  key: "changeVideoLayout",
7340
7565
  value: function changeVideoLayout(layoutType) {
7341
- var _this49 = this;
7566
+ var _this48 = this;
7342
7567
  var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7343
7568
  var main = renderInfo.main,
7344
7569
  content = renderInfo.content;
@@ -7392,7 +7617,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7392
7617
  }
7393
7618
  this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
7394
7619
  this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
7395
- _triggerProxy.default.trigger(_this49, {
7620
+ _triggerProxy.default.trigger(_this48, {
7396
7621
  file: 'meeting/index',
7397
7622
  function: 'changeVideoLayout'
7398
7623
  }, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
@@ -7470,13 +7695,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7470
7695
  }, {
7471
7696
  key: "handleMediaLogging",
7472
7697
  value: function handleMediaLogging(mediaProperties) {
7473
- _util.default.handleVideoLogging(mediaProperties.videoStream);
7474
- _util.default.handleAudioLogging(mediaProperties.audioStream);
7698
+ _util2.default.handleVideoLogging(mediaProperties.videoStream);
7699
+ _util2.default.handleAudioLogging(mediaProperties.audioStream);
7475
7700
  }
7476
7701
 
7477
7702
  /**
7478
7703
  *
7479
- * @returns {string} one of 'attendee','host','cohost', returns the user type of the current user
7704
+ * @returns {string} one of 'panelist', 'attendee', 'host', 'cohost', returns the user type of the current user
7480
7705
  */
7481
7706
  }, {
7482
7707
  key: "getCurUserType",
@@ -7489,8 +7714,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7489
7714
  if (roles.includes(_constants.SELF_ROLES.COHOST)) {
7490
7715
  return 'cohost';
7491
7716
  }
7492
- if (roles.includes(_constants.SELF_ROLES.PRESENTER)) {
7493
- return 'presenter';
7717
+ if (roles.includes(_constants.SELF_ROLES.PANELIST)) {
7718
+ return 'panelist';
7494
7719
  }
7495
7720
  if (roles.includes(_constants.SELF_ROLES.ATTENDEE)) {
7496
7721
  return 'attendee';
@@ -7508,7 +7733,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7508
7733
  }, {
7509
7734
  key: "endMeetingForAll",
7510
7735
  value: function endMeetingForAll() {
7511
- var _this50 = this;
7736
+ var _this49 = this;
7512
7737
  // @ts-ignore
7513
7738
  this.webex.internal.newMetrics.submitClientEvent({
7514
7739
  name: 'client.call.leave',
@@ -7525,26 +7750,26 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7525
7750
  correlation_id: this.correlationId,
7526
7751
  locus_id: this.locusId
7527
7752
  });
7528
- return _util.default.endMeetingForAll(this).then(function (end) {
7529
- _this50.meetingFiniteStateMachine.end();
7530
- _this50.clearMeetingData();
7753
+ return _util2.default.endMeetingForAll(this).then(function (end) {
7754
+ _this49.meetingFiniteStateMachine.end();
7755
+ _this49.clearMeetingData();
7531
7756
  // upload logs on leave irrespective of meeting delete
7532
- _triggerProxy.default.trigger(_this50, {
7757
+ _triggerProxy.default.trigger(_this49, {
7533
7758
  file: 'meeting/index',
7534
7759
  function: 'endMeetingForAll'
7535
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this50);
7760
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this49);
7536
7761
  return end;
7537
7762
  }).catch(function (error) {
7538
- _this50.meetingFiniteStateMachine.fail(error);
7763
+ _this49.meetingFiniteStateMachine.fail(error);
7539
7764
  _loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
7540
7765
  // upload logs on leave irrespective of meeting delete
7541
- _triggerProxy.default.trigger(_this50, {
7766
+ _triggerProxy.default.trigger(_this49, {
7542
7767
  file: 'meeting/index',
7543
7768
  function: 'endMeetingForAll'
7544
- }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this50);
7769
+ }, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this49);
7545
7770
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
7546
- correlation_id: _this50.correlationId,
7547
- locus_id: _this50.locusUrl.split('/').pop(),
7771
+ correlation_id: _this49.correlationId,
7772
+ locus_id: _this49.locusUrl.split('/').pop(),
7548
7773
  reason: error.message,
7549
7774
  stack: error.stack,
7550
7775
  code: error.code
@@ -7633,39 +7858,39 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7633
7858
  }, {
7634
7859
  key: "enableMusicMode",
7635
7860
  value: (function () {
7636
- var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee31(shouldEnableMusicMode) {
7637
- return _regenerator.default.wrap(function _callee31$(_context31) {
7638
- while (1) switch (_context31.prev = _context31.next) {
7861
+ var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34(shouldEnableMusicMode) {
7862
+ return _regenerator.default.wrap(function _callee34$(_context34) {
7863
+ while (1) switch (_context34.prev = _context34.next) {
7639
7864
  case 0:
7640
7865
  this.checkMediaConnection();
7641
7866
  if (this.isMultistream) {
7642
- _context31.next = 3;
7867
+ _context34.next = 3;
7643
7868
  break;
7644
7869
  }
7645
7870
  throw new Error('enableMusicMode() only supported with multistream');
7646
7871
  case 3:
7647
7872
  if (!shouldEnableMusicMode) {
7648
- _context31.next = 8;
7873
+ _context34.next = 8;
7649
7874
  break;
7650
7875
  }
7651
- _context31.next = 6;
7876
+ _context34.next = 6;
7652
7877
  return this.sendSlotManager.setCodecParameters(_internalMediaCore.MediaType.AudioMain, {
7653
7878
  maxaveragebitrate: '64000',
7654
7879
  maxplaybackrate: '48000'
7655
7880
  });
7656
7881
  case 6:
7657
- _context31.next = 10;
7882
+ _context34.next = 10;
7658
7883
  break;
7659
7884
  case 8:
7660
- _context31.next = 10;
7885
+ _context34.next = 10;
7661
7886
  return this.sendSlotManager.deleteCodecParameters(_internalMediaCore.MediaType.AudioMain, ['maxaveragebitrate', 'maxplaybackrate']);
7662
7887
  case 10:
7663
7888
  case "end":
7664
- return _context31.stop();
7889
+ return _context34.stop();
7665
7890
  }
7666
- }, _callee31, this);
7891
+ }, _callee34, this);
7667
7892
  }));
7668
- function enableMusicMode(_x30) {
7893
+ function enableMusicMode(_x33) {
7669
7894
  return _enableMusicMode.apply(this, arguments);
7670
7895
  }
7671
7896
  return enableMusicMode;
@@ -7686,7 +7911,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7686
7911
  _this$mediaProperties48,
7687
7912
  _this$mediaProperties49,
7688
7913
  _this$mediaProperties50,
7689
- _this51 = this;
7914
+ _this50 = this;
7690
7915
  var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
7691
7916
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
7692
7917
  if (!this.canUpdateMedia()) {
@@ -7711,8 +7936,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7711
7936
  }).catch(function (error) {
7712
7937
  _loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
7713
7938
  _metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
7714
- correlation_id: _this51.correlationId,
7715
- locus_id: _this51.locusUrl.split('/').pop(),
7939
+ correlation_id: _this50.correlationId,
7940
+ locus_id: _this50.locusUrl.split('/').pop(),
7716
7941
  reason: error.message,
7717
7942
  stack: error.stack
7718
7943
  });
@@ -7720,6 +7945,32 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7720
7945
  });
7721
7946
  }
7722
7947
 
7948
+ /**
7949
+ * set sending named media group which the audio should send to
7950
+ * @param {MediaType} mediaType of the stream
7951
+ * @param {number} languageCode of the stream
7952
+ * @returns {void}
7953
+ */
7954
+ }, {
7955
+ key: "setSendNamedMediaGroup",
7956
+ value: function setSendNamedMediaGroup(mediaType) {
7957
+ var languageCode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
7958
+ if (mediaType !== _internalMediaCore.MediaType.AudioMain) {
7959
+ throw new Error("cannot set send named media group which media type is ".concat(mediaType));
7960
+ }
7961
+ var value = languageCode || this.simultaneousInterpretation.getTargetLanguageCode();
7962
+ var groups = [];
7963
+ if (value) {
7964
+ groups = [{
7965
+ type: _constants.NAMED_MEDIA_GROUP_TYPE_AUDIO,
7966
+ value: value
7967
+ }];
7968
+ }
7969
+ if (this.isMultistream && this.mediaProperties.webrtcMediaConnection) {
7970
+ this.sendSlotManager.setNamedMediaGroups(mediaType, groups);
7971
+ }
7972
+ }
7973
+
7723
7974
  /**
7724
7975
  * Publishes a stream.
7725
7976
  *
@@ -7730,25 +7981,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7730
7981
  }, {
7731
7982
  key: "publishStream",
7732
7983
  value: (function () {
7733
- var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32(mediaType, stream) {
7734
- return _regenerator.default.wrap(function _callee32$(_context32) {
7735
- while (1) switch (_context32.prev = _context32.next) {
7984
+ var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35(mediaType, stream) {
7985
+ return _regenerator.default.wrap(function _callee35$(_context35) {
7986
+ while (1) switch (_context35.prev = _context35.next) {
7736
7987
  case 0:
7737
7988
  if (stream) {
7738
- _context32.next = 2;
7989
+ _context35.next = 2;
7739
7990
  break;
7740
7991
  }
7741
- return _context32.abrupt("return");
7992
+ return _context35.abrupt("return");
7742
7993
  case 2:
7743
7994
  if (!this.mediaProperties.webrtcMediaConnection) {
7744
- _context32.next = 7;
7995
+ _context35.next = 7;
7745
7996
  break;
7746
7997
  }
7747
7998
  if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
7748
- _context32.next = 6;
7999
+ _context35.next = 6;
7749
8000
  break;
7750
8001
  }
7751
- _context32.next = 6;
8002
+ _context35.next = 6;
7752
8003
  return this.sendSlotManager.publishStream(mediaType, stream);
7753
8004
  case 6:
7754
8005
  this.emitPublishStateChangeEvent({
@@ -7759,11 +8010,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7759
8010
  });
7760
8011
  case 7:
7761
8012
  case "end":
7762
- return _context32.stop();
8013
+ return _context35.stop();
7763
8014
  }
7764
- }, _callee32, this);
8015
+ }, _callee35, this);
7765
8016
  }));
7766
- function publishStream(_x31, _x32) {
8017
+ function publishStream(_x34, _x35) {
7767
8018
  return _publishStream.apply(this, arguments);
7768
8019
  }
7769
8020
  return publishStream;
@@ -7779,21 +8030,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7779
8030
  }, {
7780
8031
  key: "unpublishStream",
7781
8032
  value: (function () {
7782
- var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33(mediaType, stream) {
7783
- return _regenerator.default.wrap(function _callee33$(_context33) {
7784
- while (1) switch (_context33.prev = _context33.next) {
8033
+ var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee36(mediaType, stream) {
8034
+ return _regenerator.default.wrap(function _callee36$(_context36) {
8035
+ while (1) switch (_context36.prev = _context36.next) {
7785
8036
  case 0:
7786
8037
  if (stream) {
7787
- _context33.next = 2;
8038
+ _context36.next = 2;
7788
8039
  break;
7789
8040
  }
7790
- return _context33.abrupt("return");
8041
+ return _context36.abrupt("return");
7791
8042
  case 2:
7792
8043
  if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
7793
- _context33.next = 5;
8044
+ _context36.next = 5;
7794
8045
  break;
7795
8046
  }
7796
- _context33.next = 5;
8047
+ _context36.next = 5;
7797
8048
  return this.sendSlotManager.unpublishStream(mediaType);
7798
8049
  case 5:
7799
8050
  this.emitPublishStateChangeEvent({
@@ -7804,11 +8055,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7804
8055
  });
7805
8056
  case 6:
7806
8057
  case "end":
7807
- return _context33.stop();
8058
+ return _context36.stop();
7808
8059
  }
7809
- }, _callee33, this);
8060
+ }, _callee36, this);
7810
8061
  }));
7811
- function unpublishStream(_x33, _x34) {
8062
+ function unpublishStream(_x36, _x37) {
7812
8063
  return _unpublishStream.apply(this, arguments);
7813
8064
  }
7814
8065
  return unpublishStream;
@@ -7823,61 +8074,67 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7823
8074
  }, {
7824
8075
  key: "publishStreams",
7825
8076
  value: (function () {
7826
- var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34(streams) {
7827
- var _streams$screenShare, _streams$screenShare2, _streams$screenShare3, _streams$screenShare4;
7828
- var floorRequestNeeded, _streams$screenShare5;
7829
- return _regenerator.default.wrap(function _callee34$(_context34) {
7830
- while (1) switch (_context34.prev = _context34.next) {
8077
+ var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee37(streams) {
8078
+ var _streams$screenShare, _streams$screenShare2, _streams$microphone, _streams$camera, _streams$screenShare3, _streams$screenShare4, _streams$screenShare5, _streams$screenShare6, _streams$screenShare7, _streams$screenShare8;
8079
+ var floorRequestNeeded, _streams$screenShare9;
8080
+ return _regenerator.default.wrap(function _callee37$(_context37) {
8081
+ while (1) switch (_context37.prev = _context37.next) {
7831
8082
  case 0:
7832
8083
  this.checkMediaConnection();
7833
8084
  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))) {
7834
- _context34.next = 3;
8085
+ _context37.next = 3;
7835
8086
  break;
7836
8087
  }
7837
- return _context34.abrupt("return");
8088
+ return _context37.abrupt("return");
7838
8089
  case 3:
8090
+ 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')) {
8091
+ _context37.next = 5;
8092
+ break;
8093
+ }
8094
+ throw new Error("Attempted to publish stream with ended readyState, correlationId=".concat(this.correlationId));
8095
+ case 5:
7839
8096
  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
7840
- if (!(this.isMultistream && (_streams$screenShare3 = streams.screenShare) !== null && _streams$screenShare3 !== void 0 && _streams$screenShare3.audio)) {
7841
- _context34.next = 8;
8097
+ if (!(this.isMultistream && (_streams$screenShare7 = streams.screenShare) !== null && _streams$screenShare7 !== void 0 && _streams$screenShare7.audio)) {
8098
+ _context37.next = 10;
7842
8099
  break;
7843
8100
  }
7844
- _context34.next = 7;
8101
+ _context37.next = 9;
7845
8102
  return this.setLocalShareAudioStream(streams.screenShare.audio);
7846
- case 7:
8103
+ case 9:
7847
8104
  floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
7848
- case 8:
7849
- if (!((_streams$screenShare4 = streams.screenShare) !== null && _streams$screenShare4 !== void 0 && _streams$screenShare4.video)) {
7850
- _context34.next = 12;
8105
+ case 10:
8106
+ if (!((_streams$screenShare8 = streams.screenShare) !== null && _streams$screenShare8 !== void 0 && _streams$screenShare8.video)) {
8107
+ _context37.next = 14;
7851
8108
  break;
7852
8109
  }
7853
- _context34.next = 11;
7854
- return this.setLocalShareVideoStream((_streams$screenShare5 = streams.screenShare) === null || _streams$screenShare5 === void 0 ? void 0 : _streams$screenShare5.video);
7855
- case 11:
8110
+ _context37.next = 13;
8111
+ return this.setLocalShareVideoStream((_streams$screenShare9 = streams.screenShare) === null || _streams$screenShare9 === void 0 ? void 0 : _streams$screenShare9.video);
8112
+ case 13:
7856
8113
  floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
7857
- case 12:
8114
+ case 14:
7858
8115
  if (!streams.microphone) {
7859
- _context34.next = 15;
8116
+ _context37.next = 17;
7860
8117
  break;
7861
8118
  }
7862
- _context34.next = 15;
8119
+ _context37.next = 17;
7863
8120
  return this.setLocalAudioStream(streams.microphone);
7864
- case 15:
8121
+ case 17:
7865
8122
  if (!streams.camera) {
7866
- _context34.next = 18;
8123
+ _context37.next = 20;
7867
8124
  break;
7868
8125
  }
7869
- _context34.next = 18;
8126
+ _context37.next = 20;
7870
8127
  return this.setLocalVideoStream(streams.camera);
7871
- case 18:
8128
+ case 20:
7872
8129
  if (this.isMultistream) {
7873
- _context34.next = 21;
8130
+ _context37.next = 23;
7874
8131
  break;
7875
8132
  }
7876
- _context34.next = 21;
8133
+ _context37.next = 23;
7877
8134
  return this.updateTranscodedMediaConnection();
7878
- case 21:
8135
+ case 23:
7879
8136
  if (!floorRequestNeeded) {
7880
- _context34.next = 27;
8137
+ _context37.next = 29;
7881
8138
  break;
7882
8139
  }
7883
8140
  this.localShareInstanceId = _uuid.default.v4();
@@ -7901,15 +8158,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7901
8158
  // we're sending the http request to Locus to request the screen share floor
7902
8159
  // only after the SDP update, because that's how it's always been done for transcoded meetings
7903
8160
  // and also if sharing from the start, we need confluence to have been created
7904
- _context34.next = 27;
8161
+ _context37.next = 29;
7905
8162
  return this.enqueueScreenShareFloorRequest();
7906
- case 27:
8163
+ case 29:
7907
8164
  case "end":
7908
- return _context34.stop();
8165
+ return _context37.stop();
7909
8166
  }
7910
- }, _callee34, this);
8167
+ }, _callee37, this);
7911
8168
  }));
7912
- function publishStreams(_x35) {
8169
+ function publishStreams(_x38) {
7913
8170
  return _publishStreams.apply(this, arguments);
7914
8171
  }
7915
8172
  return publishStreams;
@@ -7924,10 +8181,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7924
8181
  }, {
7925
8182
  key: "unpublishStreams",
7926
8183
  value: (function () {
7927
- var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35(streams) {
8184
+ var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee38(streams) {
7928
8185
  var promises, _iterator, _step, stream;
7929
- return _regenerator.default.wrap(function _callee35$(_context35) {
7930
- while (1) switch (_context35.prev = _context35.next) {
8186
+ return _regenerator.default.wrap(function _callee38$(_context38) {
8187
+ while (1) switch (_context38.prev = _context38.next) {
7931
8188
  case 0:
7932
8189
  this.checkMediaConnection();
7933
8190
  promises = [];
@@ -7958,7 +8215,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7958
8215
  if (!this.isMultistream) {
7959
8216
  promises.push(this.updateTranscodedMediaConnection());
7960
8217
  }
7961
- _context35.next = 7;
8218
+ _context38.next = 7;
7962
8219
  return _promise.default.all(promises);
7963
8220
  case 7:
7964
8221
  // we're allowing for the SDK to support just audio share as well
@@ -7979,11 +8236,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
7979
8236
  }
7980
8237
  case 8:
7981
8238
  case "end":
7982
- return _context35.stop();
8239
+ return _context38.stop();
7983
8240
  }
7984
- }, _callee35, this);
8241
+ }, _callee38, this);
7985
8242
  }));
7986
- function unpublishStreams(_x36) {
8243
+ function unpublishStreams(_x39) {
7987
8244
  return _unpublishStreams.apply(this, arguments);
7988
8245
  }
7989
8246
  return unpublishStreams;
@@ -8043,27 +8300,27 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8043
8300
  }], [{
8044
8301
  key: "handleDeviceLogging",
8045
8302
  value: (function () {
8046
- var _handleDeviceLogging = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee36() {
8303
+ var _handleDeviceLogging = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee39() {
8047
8304
  var devices;
8048
- return _regenerator.default.wrap(function _callee36$(_context36) {
8049
- while (1) switch (_context36.prev = _context36.next) {
8305
+ return _regenerator.default.wrap(function _callee39$(_context39) {
8306
+ while (1) switch (_context39.prev = _context39.next) {
8050
8307
  case 0:
8051
- _context36.prev = 0;
8052
- _context36.next = 3;
8308
+ _context39.prev = 0;
8309
+ _context39.next = 3;
8053
8310
  return (0, _mediaHelpers.getDevices)();
8054
8311
  case 3:
8055
- devices = _context36.sent;
8056
- _util.default.handleDeviceLogging(devices);
8057
- _context36.next = 9;
8312
+ devices = _context39.sent;
8313
+ _util2.default.handleDeviceLogging(devices);
8314
+ _context39.next = 9;
8058
8315
  break;
8059
8316
  case 7:
8060
- _context36.prev = 7;
8061
- _context36.t0 = _context36["catch"](0);
8317
+ _context39.prev = 7;
8318
+ _context39.t0 = _context39["catch"](0);
8062
8319
  case 9:
8063
8320
  case "end":
8064
- return _context36.stop();
8321
+ return _context39.stop();
8065
8322
  }
8066
- }, _callee36, null, [[0, 7]]);
8323
+ }, _callee39, null, [[0, 7]]);
8067
8324
  }));
8068
8325
  function handleDeviceLogging() {
8069
8326
  return _handleDeviceLogging.apply(this, arguments);