@webex/plugin-meetings 3.0.0-beta.254 → 3.0.0-beta.256

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.
@@ -441,6 +441,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
441
441
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mediaRequestManagers", void 0);
442
442
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingInfoFailureReason", void 0);
443
443
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingInfoFailureCode", void 0);
444
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingInfoExtraParams", void 0);
444
445
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "networkQualityMonitor", void 0);
445
446
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "networkStatus", void 0);
446
447
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "passwordStatus", void 0);
@@ -1743,54 +1744,32 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1743
1744
  }
1744
1745
 
1745
1746
  /**
1746
- * Fetches meeting information.
1747
- * @param {Object} options
1748
- * @param {String} [options.password] optional
1749
- * @param {String} [options.captchaCode] optional
1750
- * @param {Boolean} [options.sendCAevents] optional - Whether to submit Call Analyzer events or not. Default: false.
1751
- * @public
1752
- * @memberof Meeting
1747
+ * Internal method for fetching meeting info
1748
+ *
1753
1749
  * @returns {Promise}
1754
1750
  */
1755
1751
  }, {
1756
- key: "fetchMeetingInfo",
1752
+ key: "fetchMeetingInfoInternal",
1757
1753
  value: function () {
1758
- var _fetchMeetingInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(_ref4) {
1759
- var _ref4$password, password, _ref4$captchaCode, captchaCode, _ref4$extraParams, extraParams, _ref4$sendCAevents, sendCAevents, captchaInfo, info, _err$body, _err$body2;
1754
+ var _fetchMeetingInfoInternal = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(_ref4) {
1755
+ var destination, destinationType, _ref4$password, password, _ref4$captchaCode, captchaCode, _ref4$extraParams, extraParams, _ref4$sendCAevents, sendCAevents, captchaInfo, info, _err$body, _err$body2;
1760
1756
  return _regenerator.default.wrap(function _callee3$(_context3) {
1761
1757
  while (1) switch (_context3.prev = _context3.next) {
1762
1758
  case 0:
1763
- _ref4$password = _ref4.password, password = _ref4$password === void 0 ? null : _ref4$password, _ref4$captchaCode = _ref4.captchaCode, captchaCode = _ref4$captchaCode === void 0 ? null : _ref4$captchaCode, _ref4$extraParams = _ref4.extraParams, extraParams = _ref4$extraParams === void 0 ? {} : _ref4$extraParams, _ref4$sendCAevents = _ref4.sendCAevents, sendCAevents = _ref4$sendCAevents === void 0 ? false : _ref4$sendCAevents;
1764
- // when fetch meeting info is called directly by the client, we want to clear out the random timer for sdk to do it
1765
- if (this.fetchMeetingInfoTimeoutId) {
1766
- clearTimeout(this.fetchMeetingInfoTimeoutId);
1767
- this.fetchMeetingInfoTimeoutId = undefined;
1768
- }
1769
- if (!(captchaCode && !this.requiredCaptcha)) {
1770
- _context3.next = 4;
1771
- break;
1772
- }
1773
- return _context3.abrupt("return", _promise.default.reject(new Error('fetchMeetingInfo() called with captchaCode when captcha was not required')));
1774
- case 4:
1775
- if (!(password && this.passwordStatus !== _constants.PASSWORD_STATUS.REQUIRED && this.passwordStatus !== _constants.PASSWORD_STATUS.UNKNOWN)) {
1776
- _context3.next = 6;
1777
- break;
1778
- }
1779
- return _context3.abrupt("return", _promise.default.reject(new Error('fetchMeetingInfo() called with password when password was not required')));
1780
- case 6:
1781
- _context3.prev = 6;
1759
+ destination = _ref4.destination, destinationType = _ref4.destinationType, _ref4$password = _ref4.password, password = _ref4$password === void 0 ? null : _ref4$password, _ref4$captchaCode = _ref4.captchaCode, captchaCode = _ref4$captchaCode === void 0 ? null : _ref4$captchaCode, _ref4$extraParams = _ref4.extraParams, extraParams = _ref4$extraParams === void 0 ? {} : _ref4$extraParams, _ref4$sendCAevents = _ref4.sendCAevents, sendCAevents = _ref4$sendCAevents === void 0 ? false : _ref4$sendCAevents;
1760
+ _context3.prev = 1;
1782
1761
  captchaInfo = captchaCode ? {
1783
1762
  code: captchaCode,
1784
1763
  id: this.requiredCaptcha.captchaId
1785
1764
  } : null;
1786
- _context3.next = 10;
1787
- return this.attrs.meetingInfoProvider.fetchMeetingInfo(this.destination, this.destinationType, password, captchaInfo,
1765
+ _context3.next = 5;
1766
+ return this.attrs.meetingInfoProvider.fetchMeetingInfo(destination, destinationType, password, captchaInfo,
1788
1767
  // @ts-ignore - config coming from registerPlugin
1789
1768
  this.config.installedOrgID, this.locusId, extraParams, {
1790
1769
  meetingId: this.id,
1791
1770
  sendCAevents: sendCAevents
1792
1771
  });
1793
- case 10:
1772
+ case 5:
1794
1773
  info = _context3.sent;
1795
1774
  this.parseMeetingInfo(info, this.destination);
1796
1775
  this.meetingInfo = info ? _objectSpread(_objectSpread({}, info.body), {}, {
@@ -1809,12 +1788,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1809
1788
  }, _constants.EVENT_TRIGGERS.MEETING_INFO_AVAILABLE);
1810
1789
  this.updateMeetingActions();
1811
1790
  return _context3.abrupt("return", _promise.default.resolve());
1812
- case 21:
1813
- _context3.prev = 21;
1814
- _context3.t0 = _context3["catch"](6);
1791
+ case 16:
1792
+ _context3.prev = 16;
1793
+ _context3.t0 = _context3["catch"](1);
1815
1794
  this.updateMeetingActions();
1816
1795
  if (!(_context3.t0 instanceof _meetingInfoV.MeetingInfoV2PolicyError)) {
1817
- _context3.next = 31;
1796
+ _context3.next = 26;
1818
1797
  break;
1819
1798
  }
1820
1799
  this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.POLICY;
@@ -1823,9 +1802,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1823
1802
  this.meetingInfo = _context3.t0.meetingInfo;
1824
1803
  }
1825
1804
  throw new _permission.default();
1826
- case 31:
1805
+ case 26:
1827
1806
  if (!(_context3.t0 instanceof _meetingInfoV.MeetingInfoV2PasswordError)) {
1828
- _context3.next = 43;
1807
+ _context3.next = 38;
1829
1808
  break;
1830
1809
  }
1831
1810
  _loggerProxy.default.logger.info( // @ts-ignore
@@ -1840,16 +1819,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1840
1819
  this.passwordStatus = _constants.PASSWORD_STATUS.REQUIRED;
1841
1820
  this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.WRONG_PASSWORD;
1842
1821
  if (!this.requiredCaptcha) {
1843
- _context3.next = 40;
1822
+ _context3.next = 35;
1844
1823
  break;
1845
1824
  }
1846
- _context3.next = 40;
1825
+ _context3.next = 35;
1847
1826
  return this.refreshCaptcha();
1848
- case 40:
1827
+ case 35:
1849
1828
  throw new _passwordError.default();
1850
- case 43:
1829
+ case 38:
1851
1830
  if (!(_context3.t0 instanceof _meetingInfoV.MeetingInfoV2CaptchaError)) {
1852
- _context3.next = 52;
1831
+ _context3.next = 47;
1853
1832
  break;
1854
1833
  }
1855
1834
  _loggerProxy.default.logger.info( // @ts-ignore
@@ -1861,16 +1840,143 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1861
1840
  }
1862
1841
  this.requiredCaptcha = _context3.t0.captchaInfo;
1863
1842
  throw new _captchaError.default();
1864
- case 52:
1843
+ case 47:
1865
1844
  this.meetingInfoFailureReason = _constants.MEETING_INFO_FAILURE_REASON.OTHER;
1866
1845
  throw _context3.t0;
1867
- case 54:
1846
+ case 49:
1868
1847
  case "end":
1869
1848
  return _context3.stop();
1870
1849
  }
1871
- }, _callee3, this, [[6, 21]]);
1850
+ }, _callee3, this, [[1, 16]]);
1872
1851
  }));
1873
- function fetchMeetingInfo(_x) {
1852
+ function fetchMeetingInfoInternal(_x) {
1853
+ return _fetchMeetingInfoInternal.apply(this, arguments);
1854
+ }
1855
+ return fetchMeetingInfoInternal;
1856
+ }()
1857
+ /**
1858
+ * Refreshes the meeting info permission token (it's required for joining meetings)
1859
+ *
1860
+ * @param {string} [reason] used for metrics and logging purposes (optional)
1861
+ * @returns {Promise}
1862
+ */
1863
+ }, {
1864
+ key: "refreshPermissionToken",
1865
+ value: function () {
1866
+ var _refreshPermissionToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(reason) {
1867
+ var _this$meetingInfo;
1868
+ var isStartingSpaceInstantV2Meeting, destination, destinationType, timeLeft;
1869
+ return _regenerator.default.wrap(function _callee4$(_context4) {
1870
+ while (1) switch (_context4.prev = _context4.next) {
1871
+ case 0:
1872
+ if ((_this$meetingInfo = this.meetingInfo) !== null && _this$meetingInfo !== void 0 && _this$meetingInfo.permissionToken) {
1873
+ _context4.next = 3;
1874
+ break;
1875
+ }
1876
+ _loggerProxy.default.logger.info("Meeting:index#refreshPermissionToken --> cannot refresh the permission token, because we don't have it (reason=".concat(reason, ")"));
1877
+ return _context4.abrupt("return");
1878
+ case 3:
1879
+ isStartingSpaceInstantV2Meeting = this.destinationType === _constants._CONVERSATION_URL_ &&
1880
+ // @ts-ignore - config coming from registerPlugin
1881
+ this.config.experimental.enableAdhocMeetings &&
1882
+ // @ts-ignore
1883
+ this.webex.meetings.preferredWebexSite;
1884
+ destination = isStartingSpaceInstantV2Meeting ? this.meetingInfo.meetingJoinUrl : this.destination;
1885
+ destinationType = isStartingSpaceInstantV2Meeting ? _constants._MEETING_LINK_ : this.destinationType;
1886
+ timeLeft = this.getPermissionTokenTimeLeftInSec();
1887
+ _loggerProxy.default.logger.info("Meeting:index#refreshPermissionToken --> refreshing permission token, destinationType=".concat(destinationType, ", timeLeft=").concat(timeLeft, ", reason=").concat(reason));
1888
+ _metrics.default.sendBehavioralMetric(_constants2.default.PERMISSION_TOKEN_REFRESH, {
1889
+ correlationId: this.correlationId,
1890
+ timeLeft: timeLeft,
1891
+ reason: reason,
1892
+ destinationType: destinationType
1893
+ });
1894
+ _context4.prev = 9;
1895
+ _context4.next = 12;
1896
+ return this.fetchMeetingInfoInternal({
1897
+ destination: destination,
1898
+ destinationType: destinationType,
1899
+ extraParams: _objectSpread(_objectSpread({}, this.meetingInfoExtraParams), {}, {
1900
+ permissionToken: this.meetingInfo.permissionToken
1901
+ }),
1902
+ sendCAevents: true // because if we're refreshing the permissionToken, it means that user is intending to join that meeting, so we want CA events
1903
+ });
1904
+ case 12:
1905
+ _context4.next = 19;
1906
+ break;
1907
+ case 14:
1908
+ _context4.prev = 14;
1909
+ _context4.t0 = _context4["catch"](9);
1910
+ _loggerProxy.default.logger.info('Meeting:index#refreshPermissionToken --> failed to refresh the permission token:', _context4.t0);
1911
+ _metrics.default.sendBehavioralMetric(_constants2.default.PERMISSION_TOKEN_REFRESH_ERROR, {
1912
+ correlationId: this.correlationId,
1913
+ reason: _context4.t0.message,
1914
+ stack: _context4.t0.stack
1915
+ });
1916
+ throw _context4.t0;
1917
+ case 19:
1918
+ case "end":
1919
+ return _context4.stop();
1920
+ }
1921
+ }, _callee4, this, [[9, 14]]);
1922
+ }));
1923
+ function refreshPermissionToken(_x2) {
1924
+ return _refreshPermissionToken.apply(this, arguments);
1925
+ }
1926
+ return refreshPermissionToken;
1927
+ }()
1928
+ /**
1929
+ * Fetches meeting information.
1930
+ * @param {Object} options
1931
+ * @param {String} [options.password] optional
1932
+ * @param {String} [options.captchaCode] optional
1933
+ * @param {Boolean} [options.sendCAevents] optional - Whether to submit Call Analyzer events or not. Default: false.
1934
+ * @public
1935
+ * @memberof Meeting
1936
+ * @returns {Promise}
1937
+ */
1938
+ }, {
1939
+ key: "fetchMeetingInfo",
1940
+ value: function () {
1941
+ var _fetchMeetingInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(_ref5) {
1942
+ var _ref5$password, password, _ref5$captchaCode, captchaCode, _ref5$extraParams, extraParams, _ref5$sendCAevents, sendCAevents;
1943
+ return _regenerator.default.wrap(function _callee5$(_context5) {
1944
+ while (1) switch (_context5.prev = _context5.next) {
1945
+ case 0:
1946
+ _ref5$password = _ref5.password, password = _ref5$password === void 0 ? null : _ref5$password, _ref5$captchaCode = _ref5.captchaCode, captchaCode = _ref5$captchaCode === void 0 ? null : _ref5$captchaCode, _ref5$extraParams = _ref5.extraParams, extraParams = _ref5$extraParams === void 0 ? {} : _ref5$extraParams, _ref5$sendCAevents = _ref5.sendCAevents, sendCAevents = _ref5$sendCAevents === void 0 ? false : _ref5$sendCAevents;
1947
+ // when fetch meeting info is called directly by the client, we want to clear out the random timer for sdk to do it
1948
+ if (this.fetchMeetingInfoTimeoutId) {
1949
+ clearTimeout(this.fetchMeetingInfoTimeoutId);
1950
+ this.fetchMeetingInfoTimeoutId = undefined;
1951
+ }
1952
+ if (!(captchaCode && !this.requiredCaptcha)) {
1953
+ _context5.next = 4;
1954
+ break;
1955
+ }
1956
+ return _context5.abrupt("return", _promise.default.reject(new Error('fetchMeetingInfo() called with captchaCode when captcha was not required')));
1957
+ case 4:
1958
+ if (!(password && this.passwordStatus !== _constants.PASSWORD_STATUS.REQUIRED && this.passwordStatus !== _constants.PASSWORD_STATUS.UNKNOWN)) {
1959
+ _context5.next = 6;
1960
+ break;
1961
+ }
1962
+ return _context5.abrupt("return", _promise.default.reject(new Error('fetchMeetingInfo() called with password when password was not required')));
1963
+ case 6:
1964
+ this.meetingInfoExtraParams = (0, _cloneDeep2.default)(extraParams);
1965
+ return _context5.abrupt("return", this.fetchMeetingInfoInternal({
1966
+ destination: this.destination,
1967
+ destinationType: this.destinationType,
1968
+ password: password,
1969
+ captchaCode: captchaCode,
1970
+ extraParams: extraParams,
1971
+ sendCAevents: sendCAevents
1972
+ }));
1973
+ case 8:
1974
+ case "end":
1975
+ return _context5.stop();
1976
+ }
1977
+ }, _callee5, this);
1978
+ }));
1979
+ function fetchMeetingInfo(_x3) {
1874
1980
  return _fetchMeetingInfo.apply(this, arguments);
1875
1981
  }
1876
1982
  return fetchMeetingInfo;
@@ -2317,10 +2423,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2317
2423
  key: "setupLocusControlsListener",
2318
2424
  value: function setupLocusControlsListener() {
2319
2425
  var _this13 = this;
2320
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_RECORDING_UPDATED, function (_ref5) {
2321
- var state = _ref5.state,
2322
- modifiedBy = _ref5.modifiedBy,
2323
- lastModified = _ref5.lastModified;
2426
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_RECORDING_UPDATED, function (_ref6) {
2427
+ var state = _ref6.state,
2428
+ modifiedBy = _ref6.modifiedBy,
2429
+ lastModified = _ref6.lastModified;
2324
2430
  var event;
2325
2431
  switch (state) {
2326
2432
  case _constants.RECORDING_STATE.RECORDING:
@@ -2351,8 +2457,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2351
2457
  function: 'setupLocusControlsListener'
2352
2458
  }, event, _this13.recording);
2353
2459
  });
2354
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_CONTAINER_UPDATED, function (_ref6) {
2355
- var meetingContainerUrl = _ref6.meetingContainerUrl;
2460
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_CONTAINER_UPDATED, function (_ref7) {
2461
+ var meetingContainerUrl = _ref7.meetingContainerUrl;
2356
2462
  _triggerProxy.default.trigger(_this13, {
2357
2463
  file: 'meeting/index',
2358
2464
  function: 'setupLocusControlsListener'
@@ -2360,9 +2466,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2360
2466
  meetingContainerUrl: meetingContainerUrl
2361
2467
  });
2362
2468
  });
2363
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_TRANSCRIBE_UPDATED, function (_ref7) {
2364
- var caption = _ref7.caption,
2365
- transcribing = _ref7.transcribing;
2469
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_TRANSCRIBE_UPDATED, function (_ref8) {
2470
+ var caption = _ref8.caption,
2471
+ transcribing = _ref8.transcribing;
2366
2472
  // @ts-ignore - config coming from registerPlugin
2367
2473
  if (transcribing && _this13.transcription && _this13.config.receiveTranscription) {
2368
2474
  _this13.receiveTranscription();
@@ -2376,24 +2482,24 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2376
2482
  });
2377
2483
  }
2378
2484
  });
2379
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_BREAKOUT_UPDATED, function (_ref8) {
2380
- var breakout = _ref8.breakout;
2485
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_BREAKOUT_UPDATED, function (_ref9) {
2486
+ var breakout = _ref9.breakout;
2381
2487
  _this13.breakouts.updateBreakout(breakout);
2382
2488
  _triggerProxy.default.trigger(_this13, {
2383
2489
  file: 'meeting/index',
2384
2490
  function: 'setupLocusControlsListener'
2385
2491
  }, _constants.EVENT_TRIGGERS.MEETING_BREAKOUTS_UPDATE);
2386
2492
  });
2387
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_INTERPRETATION_UPDATED, function (_ref9) {
2388
- var interpretation = _ref9.interpretation;
2493
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_INTERPRETATION_UPDATED, function (_ref10) {
2494
+ var interpretation = _ref10.interpretation;
2389
2495
  _this13.simultaneousInterpretation.updateInterpretation(interpretation);
2390
2496
  _triggerProxy.default.trigger(_this13, {
2391
2497
  file: 'meeting/index',
2392
2498
  function: 'setupLocusControlsListener'
2393
2499
  }, _constants.EVENT_TRIGGERS.MEETING_INTERPRETATION_UPDATE);
2394
2500
  });
2395
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_JOIN_BREAKOUT_FROM_MAIN, function (_ref10) {
2396
- var mainLocusUrl = _ref10.mainLocusUrl;
2501
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_JOIN_BREAKOUT_FROM_MAIN, function (_ref11) {
2502
+ var mainLocusUrl = _ref11.mainLocusUrl;
2397
2503
  _this13.meetingRequest.getLocusStatusByUrl(mainLocusUrl).catch(function (error) {
2398
2504
  // clear main session cache when attendee join into breakout and forbidden to get locus from main locus url,
2399
2505
  // which means main session is not active for the attendee
@@ -2402,8 +2508,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2402
2508
  }
2403
2509
  });
2404
2510
  });
2405
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED, function (_ref11) {
2406
- var entryExitTone = _ref11.entryExitTone;
2511
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED, function (_ref12) {
2512
+ var entryExitTone = _ref12.entryExitTone;
2407
2513
  _triggerProxy.default.trigger(_this13, {
2408
2514
  file: 'meeting/index',
2409
2515
  function: 'setupLocusControlsListener'
@@ -2411,8 +2517,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2411
2517
  entryExitTone: entryExitTone
2412
2518
  });
2413
2519
  });
2414
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MUTE_ON_ENTRY_CHANGED, function (_ref12) {
2415
- var state = _ref12.state;
2520
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MUTE_ON_ENTRY_CHANGED, function (_ref13) {
2521
+ var state = _ref13.state;
2416
2522
  _triggerProxy.default.trigger(_this13, {
2417
2523
  file: 'meeting/index',
2418
2524
  function: 'setupLocusControlsListener'
@@ -2420,8 +2526,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2420
2526
  state: state
2421
2527
  });
2422
2528
  });
2423
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_SHARE_CONTROL_CHANGED, function (_ref13) {
2424
- var state = _ref13.state;
2529
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_SHARE_CONTROL_CHANGED, function (_ref14) {
2530
+ var state = _ref14.state;
2425
2531
  _triggerProxy.default.trigger(_this13, {
2426
2532
  file: 'meeting/index',
2427
2533
  function: 'setupLocusControlsListener'
@@ -2429,8 +2535,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2429
2535
  state: state
2430
2536
  });
2431
2537
  });
2432
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_DISALLOW_UNMUTE_CHANGED, function (_ref14) {
2433
- var state = _ref14.state;
2538
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_DISALLOW_UNMUTE_CHANGED, function (_ref15) {
2539
+ var state = _ref15.state;
2434
2540
  _triggerProxy.default.trigger(_this13, {
2435
2541
  file: 'meeting/index',
2436
2542
  function: 'setupLocusControlsListener'
@@ -2438,8 +2544,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2438
2544
  state: state
2439
2545
  });
2440
2546
  });
2441
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_REACTIONS_CHANGED, function (_ref15) {
2442
- var state = _ref15.state;
2547
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_REACTIONS_CHANGED, function (_ref16) {
2548
+ var state = _ref16.state;
2443
2549
  _triggerProxy.default.trigger(_this13, {
2444
2550
  file: 'meeting/index',
2445
2551
  function: 'setupLocusControlsListener'
@@ -2447,8 +2553,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2447
2553
  state: state
2448
2554
  });
2449
2555
  });
2450
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED, function (_ref16) {
2451
- var state = _ref16.state;
2556
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED, function (_ref17) {
2557
+ var state = _ref17.state;
2452
2558
  _triggerProxy.default.trigger(_this13, {
2453
2559
  file: 'meeting/index',
2454
2560
  function: 'setupLocusControlsListener'
@@ -2456,8 +2562,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2456
2562
  state: state
2457
2563
  });
2458
2564
  });
2459
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_RAISE_HAND_CHANGED, function (_ref17) {
2460
- var state = _ref17.state;
2565
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_RAISE_HAND_CHANGED, function (_ref18) {
2566
+ var state = _ref18.state;
2461
2567
  _triggerProxy.default.trigger(_this13, {
2462
2568
  file: 'meeting/index',
2463
2569
  function: 'setupLocusControlsListener'
@@ -2465,8 +2571,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2465
2571
  state: state
2466
2572
  });
2467
2573
  });
2468
- this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIDEO_CHANGED, function (_ref18) {
2469
- var state = _ref18.state;
2574
+ this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIDEO_CHANGED, function (_ref19) {
2575
+ var state = _ref19.state;
2470
2576
  _triggerProxy.default.trigger(_this13, {
2471
2577
  file: 'meeting/index',
2472
2578
  function: 'setupLocusControlsListener'
@@ -2512,21 +2618,21 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2512
2618
  var _this14 = this;
2513
2619
  // Will get triggered on local and remote share
2514
2620
  this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_MEDIA_SHARES, /*#__PURE__*/function () {
2515
- var _ref19 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(payload) {
2621
+ var _ref20 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(payload) {
2516
2622
  var _payload$previous, _payload$previous2;
2517
2623
  var _payload$current, contentShare, whiteboardShare, previousContentShare, previousWhiteboardShare, newShareStatus, oldShareStatus, sendStartedSharingRemote, _this14$mediaProperti;
2518
- return _regenerator.default.wrap(function _callee4$(_context4) {
2519
- while (1) switch (_context4.prev = _context4.next) {
2624
+ return _regenerator.default.wrap(function _callee6$(_context6) {
2625
+ while (1) switch (_context6.prev = _context6.next) {
2520
2626
  case 0:
2521
2627
  _payload$current = payload.current, contentShare = _payload$current.content, whiteboardShare = _payload$current.whiteboard;
2522
2628
  previousContentShare = (_payload$previous = payload.previous) === null || _payload$previous === void 0 ? void 0 : _payload$previous.content;
2523
2629
  previousWhiteboardShare = (_payload$previous2 = payload.previous) === null || _payload$previous2 === void 0 ? void 0 : _payload$previous2.whiteboard;
2524
2630
  _this14.triggerAnnotationInfoEvent(contentShare, previousContentShare);
2525
2631
  if (!(contentShare.beneficiaryId === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.beneficiaryId) && contentShare.disposition === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.disposition) && 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))) {
2526
- _context4.next = 6;
2632
+ _context6.next = 6;
2527
2633
  break;
2528
2634
  }
2529
- return _context4.abrupt("return");
2635
+ return _context6.abrupt("return");
2530
2636
  case 6:
2531
2637
  newShareStatus = _this14.shareStatus; // REMOTE - check if remote started sharing
2532
2638
  if (_this14.selfId !== contentShare.beneficiaryId && contentShare.disposition === _constants.FLOOR_ACTION.GRANTED) {
@@ -2550,22 +2656,22 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2550
2656
  newShareStatus = _constants.SHARE_STATUS.NO_SHARE;
2551
2657
  }
2552
2658
  if (!(newShareStatus !== _this14.shareStatus)) {
2553
- _context4.next = 45;
2659
+ _context6.next = 45;
2554
2660
  break;
2555
2661
  }
2556
2662
  oldShareStatus = _this14.shareStatus; // update our state before we send out any notifications
2557
2663
  _this14.shareStatus = newShareStatus;
2558
2664
 
2559
2665
  // send out "stop" notifications for the old state
2560
- _context4.t0 = oldShareStatus;
2561
- _context4.next = _context4.t0 === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE ? 14 : _context4.t0 === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE ? 16 : _context4.t0 === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE ? 18 : _context4.t0 === _constants.SHARE_STATUS.NO_SHARE ? 20 : 21;
2666
+ _context6.t0 = oldShareStatus;
2667
+ _context6.next = _context6.t0 === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE ? 14 : _context6.t0 === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE ? 16 : _context6.t0 === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE ? 18 : _context6.t0 === _constants.SHARE_STATUS.NO_SHARE ? 20 : 21;
2562
2668
  break;
2563
2669
  case 14:
2564
2670
  _triggerProxy.default.trigger(_this14, {
2565
2671
  file: 'meetings/index',
2566
2672
  function: 'remoteShare'
2567
2673
  }, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_REMOTE);
2568
- return _context4.abrupt("break", 22);
2674
+ return _context6.abrupt("break", 22);
2569
2675
  case 16:
2570
2676
  _triggerProxy.default.trigger(_this14, {
2571
2677
  file: 'meeting/index',
@@ -2573,20 +2679,20 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2573
2679
  }, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_LOCAL, {
2574
2680
  reason: _constants.SHARE_STOPPED_REASON.SELF_STOPPED
2575
2681
  });
2576
- return _context4.abrupt("break", 22);
2682
+ return _context6.abrupt("break", 22);
2577
2683
  case 18:
2578
2684
  _triggerProxy.default.trigger(_this14, {
2579
2685
  file: 'meeting/index',
2580
2686
  function: 'stopWhiteboardShare'
2581
2687
  }, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_WHITEBOARD);
2582
- return _context4.abrupt("break", 22);
2688
+ return _context6.abrupt("break", 22);
2583
2689
  case 20:
2584
- return _context4.abrupt("break", 22);
2690
+ return _context6.abrupt("break", 22);
2585
2691
  case 21:
2586
- return _context4.abrupt("break", 22);
2692
+ return _context6.abrupt("break", 22);
2587
2693
  case 22:
2588
- _context4.t1 = newShareStatus;
2589
- _context4.next = _context4.t1 === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE ? 25 : _context4.t1 === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE ? 34 : _context4.t1 === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE ? 37 : _context4.t1 === _constants.SHARE_STATUS.NO_SHARE ? 40 : 41;
2694
+ _context6.t1 = newShareStatus;
2695
+ _context6.next = _context6.t1 === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE ? 25 : _context6.t1 === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE ? 34 : _context6.t1 === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE ? 37 : _context6.t1 === _constants.SHARE_STATUS.NO_SHARE ? 40 : 41;
2590
2696
  break;
2591
2697
  case 25:
2592
2698
  sendStartedSharingRemote = function sendStartedSharingRemote() {
@@ -2600,19 +2706,19 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2600
2706
  annotationInfo: contentShare.annotation
2601
2707
  });
2602
2708
  };
2603
- _context4.prev = 26;
2709
+ _context6.prev = 26;
2604
2710
  if (!((_this14$mediaProperti = _this14.mediaProperties.mediaDirection) !== null && _this14$mediaProperti !== void 0 && _this14$mediaProperti.sendShare && oldShareStatus === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE)) {
2605
- _context4.next = 30;
2711
+ _context6.next = 30;
2606
2712
  break;
2607
2713
  }
2608
- _context4.next = 30;
2714
+ _context6.next = 30;
2609
2715
  return _this14.unpublishStreams([_this14.mediaProperties.shareVideoStream, _this14.mediaProperties.shareAudioStream]);
2610
2716
  case 30:
2611
- _context4.prev = 30;
2717
+ _context6.prev = 30;
2612
2718
  sendStartedSharingRemote();
2613
- return _context4.finish(30);
2719
+ return _context6.finish(30);
2614
2720
  case 33:
2615
- return _context4.abrupt("break", 42);
2721
+ return _context6.abrupt("break", 42);
2616
2722
  case 34:
2617
2723
  _triggerProxy.default.trigger(_this14, {
2618
2724
  file: 'meeting/index',
@@ -2628,7 +2734,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2628
2734
  meetingId: _this14.id
2629
2735
  }
2630
2736
  });
2631
- return _context4.abrupt("break", 42);
2737
+ return _context6.abrupt("break", 42);
2632
2738
  case 37:
2633
2739
  _triggerProxy.default.trigger(_this14, {
2634
2740
  file: 'meeting/index',
@@ -2647,14 +2753,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2647
2753
  meetingId: _this14.id
2648
2754
  }
2649
2755
  });
2650
- return _context4.abrupt("break", 42);
2756
+ return _context6.abrupt("break", 42);
2651
2757
  case 40:
2652
- return _context4.abrupt("break", 42);
2758
+ return _context6.abrupt("break", 42);
2653
2759
  case 41:
2654
- return _context4.abrupt("break", 42);
2760
+ return _context6.abrupt("break", 42);
2655
2761
  case 42:
2656
2762
  _this14.members.locusMediaSharesUpdate(payload);
2657
- _context4.next = 46;
2763
+ _context6.next = 46;
2658
2764
  break;
2659
2765
  case 45:
2660
2766
  if (newShareStatus === _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE) {
@@ -2694,12 +2800,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2694
2800
  }
2695
2801
  case 46:
2696
2802
  case "end":
2697
- return _context4.stop();
2803
+ return _context6.stop();
2698
2804
  }
2699
- }, _callee4, null, [[26,, 30, 33]]);
2805
+ }, _callee6, null, [[26,, 30, 33]]);
2700
2806
  }));
2701
- return function (_x2) {
2702
- return _ref19.apply(this, arguments);
2807
+ return function (_x4) {
2808
+ return _ref20.apply(this, arguments);
2703
2809
  };
2704
2810
  }());
2705
2811
  }
@@ -3030,48 +3136,48 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3030
3136
  }
3031
3137
  });
3032
3138
  this.locusInfo.on(_constants.EVENTS.DESTROY_MEETING, /*#__PURE__*/function () {
3033
- var _ref20 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(payload) {
3034
- return _regenerator.default.wrap(function _callee5$(_context5) {
3035
- while (1) switch (_context5.prev = _context5.next) {
3139
+ var _ref21 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(payload) {
3140
+ return _regenerator.default.wrap(function _callee7$(_context7) {
3141
+ while (1) switch (_context7.prev = _context7.next) {
3036
3142
  case 0:
3037
3143
  if (!_this20.wirelessShare) {
3038
- _context5.next = 7;
3144
+ _context7.next = 7;
3039
3145
  break;
3040
3146
  }
3041
3147
  if (!_this20.mediaProperties.shareVideoStream) {
3042
- _context5.next = 4;
3148
+ _context7.next = 4;
3043
3149
  break;
3044
3150
  }
3045
- _context5.next = 4;
3151
+ _context7.next = 4;
3046
3152
  return _this20.setLocalShareVideoStream(undefined);
3047
3153
  case 4:
3048
3154
  if (!_this20.mediaProperties.shareAudioStream) {
3049
- _context5.next = 7;
3155
+ _context7.next = 7;
3050
3156
  break;
3051
3157
  }
3052
- _context5.next = 7;
3158
+ _context7.next = 7;
3053
3159
  return _this20.setLocalShareAudioStream(undefined);
3054
3160
  case 7:
3055
3161
  if (!payload.shouldLeave) {
3056
- _context5.next = 19;
3162
+ _context7.next = 19;
3057
3163
  break;
3058
3164
  }
3059
- _context5.prev = 8;
3060
- _context5.next = 11;
3165
+ _context7.prev = 8;
3166
+ _context7.next = 11;
3061
3167
  return _this20.leave({
3062
3168
  reason: payload.reason
3063
3169
  });
3064
3170
  case 11:
3065
3171
  _loggerProxy.default.logger.warn('Meeting:index#setUpLocusInfoMeetingListener --> DESTROY_MEETING. The meeting has been left, but has not been destroyed, you should see a later event for leave.');
3066
- _context5.next = 17;
3172
+ _context7.next = 17;
3067
3173
  break;
3068
3174
  case 14:
3069
- _context5.prev = 14;
3070
- _context5.t0 = _context5["catch"](8);
3175
+ _context7.prev = 14;
3176
+ _context7.t0 = _context7["catch"](8);
3071
3177
  // @ts-ignore
3072
- _loggerProxy.default.logger.error("Meeting:index#setUpLocusInfoMeetingListener --> DESTROY_MEETING. Issue with leave for meeting, meeting still in collection: ".concat(_this20, ", error: ").concat(_context5.t0));
3178
+ _loggerProxy.default.logger.error("Meeting:index#setUpLocusInfoMeetingListener --> DESTROY_MEETING. Issue with leave for meeting, meeting still in collection: ".concat(_this20, ", error: ").concat(_context7.t0));
3073
3179
  case 17:
3074
- _context5.next = 22;
3180
+ _context7.next = 22;
3075
3181
  break;
3076
3182
  case 19:
3077
3183
  _loggerProxy.default.logger.info('Meeting:index#setUpLocusInfoMeetingListener --> MEETING_REMOVED_REASON', payload.reason);
@@ -3085,12 +3191,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3085
3191
  });
3086
3192
  case 22:
3087
3193
  case "end":
3088
- return _context5.stop();
3194
+ return _context7.stop();
3089
3195
  }
3090
- }, _callee5, null, [[8, 14]]);
3196
+ }, _callee7, null, [[8, 14]]);
3091
3197
  }));
3092
- return function (_x3) {
3093
- return _ref20.apply(this, arguments);
3198
+ return function (_x5) {
3199
+ return _ref21.apply(this, arguments);
3094
3200
  };
3095
3201
  }());
3096
3202
  }
@@ -3315,25 +3421,25 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3315
3421
  }, {
3316
3422
  key: "updateMeetingActions",
3317
3423
  value: function updateMeetingActions() {
3318
- var _this$meetingInfo, _this$meetingInfo2, _this$meetingInfo3, _this$meetingInfo3$vi, _this$meetingInfo4, _this$meetingInfo4$vi;
3424
+ var _this$meetingInfo2, _this$meetingInfo3, _this$meetingInfo4, _this$meetingInfo4$vi, _this$meetingInfo5, _this$meetingInfo5$vi;
3319
3425
  var changed = false;
3320
3426
  changed = this.inMeetingActions.set({
3321
- canUseVoip: ((_this$meetingInfo = this.meetingInfo) === null || _this$meetingInfo === void 0 ? void 0 : _this$meetingInfo.supportVoIP) === true && _util3.default.hasPolicies({
3427
+ canUseVoip: ((_this$meetingInfo2 = this.meetingInfo) === null || _this$meetingInfo2 === void 0 ? void 0 : _this$meetingInfo2.supportVoIP) === true && _util3.default.hasPolicies({
3322
3428
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_VOIP],
3323
3429
  policies: this.selfUserPolicies
3324
3430
  }) || !this.arePolicyRestrictionsSupported(),
3325
3431
  canDoVideo: _util3.default.hasPolicies({
3326
3432
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_VIDEO],
3327
3433
  policies: this.selfUserPolicies
3328
- }) && !!((_this$meetingInfo2 = this.meetingInfo) !== null && _this$meetingInfo2 !== void 0 && _this$meetingInfo2.video) || !this.arePolicyRestrictionsSupported(),
3434
+ }) && !!((_this$meetingInfo3 = this.meetingInfo) !== null && _this$meetingInfo3 !== void 0 && _this$meetingInfo3.video) || !this.arePolicyRestrictionsSupported(),
3329
3435
  supportHDV: _util3.default.hasPolicies({
3330
3436
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_HDV],
3331
3437
  policies: this.selfUserPolicies
3332
- }) && ((_this$meetingInfo3 = this.meetingInfo) === null || _this$meetingInfo3 === void 0 ? void 0 : (_this$meetingInfo3$vi = _this$meetingInfo3.video) === null || _this$meetingInfo3$vi === void 0 ? void 0 : _this$meetingInfo3$vi.supportHDV) || !this.arePolicyRestrictionsSupported(),
3438
+ }) && ((_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(),
3333
3439
  supportHQV: _util3.default.hasPolicies({
3334
3440
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_HQV],
3335
3441
  policies: this.selfUserPolicies
3336
- }) && ((_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.supportHQV) || !this.arePolicyRestrictionsSupported()
3442
+ }) && ((_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()
3337
3443
  });
3338
3444
  if (this.userDisplayHints !== undefined) {
3339
3445
  changed = this.inMeetingActions.set({
@@ -3659,10 +3765,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3659
3765
  }, {
3660
3766
  key: "setLocalAudioStream",
3661
3767
  value: function () {
3662
- var _setLocalAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(localStream) {
3768
+ var _setLocalAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(localStream) {
3663
3769
  var oldStream;
3664
- return _regenerator.default.wrap(function _callee6$(_context6) {
3665
- while (1) switch (_context6.prev = _context6.next) {
3770
+ return _regenerator.default.wrap(function _callee8$(_context8) {
3771
+ while (1) switch (_context8.prev = _context8.next) {
3666
3772
  case 0:
3667
3773
  oldStream = this.mediaProperties.audioStream;
3668
3774
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.StreamEventNames.MuteStateChange, this.localAudioStreamMuteStateHandler);
@@ -3674,21 +3780,21 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3674
3780
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.StreamEventNames.MuteStateChange, this.localAudioStreamMuteStateHandler);
3675
3781
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
3676
3782
  if (!(!this.isMultistream || !localStream)) {
3677
- _context6.next = 10;
3783
+ _context8.next = 10;
3678
3784
  break;
3679
3785
  }
3680
- _context6.next = 10;
3786
+ _context8.next = 10;
3681
3787
  return this.unpublishStream(_internalMediaCore.MediaType.AudioMain, oldStream);
3682
3788
  case 10:
3683
- _context6.next = 12;
3789
+ _context8.next = 12;
3684
3790
  return this.publishStream(_internalMediaCore.MediaType.AudioMain, this.mediaProperties.audioStream);
3685
3791
  case 12:
3686
3792
  case "end":
3687
- return _context6.stop();
3793
+ return _context8.stop();
3688
3794
  }
3689
- }, _callee6, this);
3795
+ }, _callee8, this);
3690
3796
  }));
3691
- function setLocalAudioStream(_x4) {
3797
+ function setLocalAudioStream(_x6) {
3692
3798
  return _setLocalAudioStream.apply(this, arguments);
3693
3799
  }
3694
3800
  return setLocalAudioStream;
@@ -3703,10 +3809,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3703
3809
  }, {
3704
3810
  key: "setLocalVideoStream",
3705
3811
  value: function () {
3706
- var _setLocalVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(localStream) {
3812
+ var _setLocalVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(localStream) {
3707
3813
  var oldStream;
3708
- return _regenerator.default.wrap(function _callee7$(_context7) {
3709
- while (1) switch (_context7.prev = _context7.next) {
3814
+ return _regenerator.default.wrap(function _callee9$(_context9) {
3815
+ while (1) switch (_context9.prev = _context9.next) {
3710
3816
  case 0:
3711
3817
  oldStream = this.mediaProperties.videoStream;
3712
3818
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.StreamEventNames.MuteStateChange, this.localVideoStreamMuteStateHandler);
@@ -3718,21 +3824,21 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3718
3824
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.StreamEventNames.MuteStateChange, this.localVideoStreamMuteStateHandler);
3719
3825
  localStream === null || localStream === void 0 ? void 0 : localStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
3720
3826
  if (!(!this.isMultistream || !localStream)) {
3721
- _context7.next = 10;
3827
+ _context9.next = 10;
3722
3828
  break;
3723
3829
  }
3724
- _context7.next = 10;
3830
+ _context9.next = 10;
3725
3831
  return this.unpublishStream(_internalMediaCore.MediaType.VideoMain, oldStream);
3726
3832
  case 10:
3727
- _context7.next = 12;
3833
+ _context9.next = 12;
3728
3834
  return this.publishStream(_internalMediaCore.MediaType.VideoMain, this.mediaProperties.videoStream);
3729
3835
  case 12:
3730
3836
  case "end":
3731
- return _context7.stop();
3837
+ return _context9.stop();
3732
3838
  }
3733
- }, _callee7, this);
3839
+ }, _callee9, this);
3734
3840
  }));
3735
- function setLocalVideoStream(_x5) {
3841
+ function setLocalVideoStream(_x7) {
3736
3842
  return _setLocalVideoStream.apply(this, arguments);
3737
3843
  }
3738
3844
  return setLocalVideoStream;
@@ -3748,10 +3854,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3748
3854
  }, {
3749
3855
  key: "setLocalShareVideoStream",
3750
3856
  value: function () {
3751
- var _setLocalShareVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(localDisplayStream) {
3857
+ var _setLocalShareVideoStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(localDisplayStream) {
3752
3858
  var oldStream;
3753
- return _regenerator.default.wrap(function _callee8$(_context8) {
3754
- while (1) switch (_context8.prev = _context8.next) {
3859
+ return _regenerator.default.wrap(function _callee10$(_context10) {
3860
+ while (1) switch (_context10.prev = _context10.next) {
3755
3861
  case 0:
3756
3862
  oldStream = this.mediaProperties.shareVideoStream;
3757
3863
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.StreamEventNames.Ended, this.handleShareVideoStreamEnded);
@@ -3761,21 +3867,21 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3761
3867
  localDisplayStream === null || localDisplayStream === void 0 ? void 0 : localDisplayStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
3762
3868
  this.mediaProperties.mediaDirection.sendShare = this.mediaProperties.hasLocalShareStream();
3763
3869
  if (!(!this.isMultistream || !localDisplayStream)) {
3764
- _context8.next = 10;
3870
+ _context10.next = 10;
3765
3871
  break;
3766
3872
  }
3767
- _context8.next = 10;
3873
+ _context10.next = 10;
3768
3874
  return this.unpublishStream(_internalMediaCore.MediaType.VideoSlides, oldStream);
3769
3875
  case 10:
3770
- _context8.next = 12;
3876
+ _context10.next = 12;
3771
3877
  return this.publishStream(_internalMediaCore.MediaType.VideoSlides, this.mediaProperties.shareVideoStream);
3772
3878
  case 12:
3773
3879
  case "end":
3774
- return _context8.stop();
3880
+ return _context10.stop();
3775
3881
  }
3776
- }, _callee8, this);
3882
+ }, _callee10, this);
3777
3883
  }));
3778
- function setLocalShareVideoStream(_x6) {
3884
+ function setLocalShareVideoStream(_x8) {
3779
3885
  return _setLocalShareVideoStream.apply(this, arguments);
3780
3886
  }
3781
3887
  return setLocalShareVideoStream;
@@ -3790,10 +3896,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3790
3896
  }, {
3791
3897
  key: "setLocalShareAudioStream",
3792
3898
  value: function () {
3793
- var _setLocalShareAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(localSystemAudioStream) {
3899
+ var _setLocalShareAudioStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(localSystemAudioStream) {
3794
3900
  var oldStream;
3795
- return _regenerator.default.wrap(function _callee9$(_context9) {
3796
- while (1) switch (_context9.prev = _context9.next) {
3901
+ return _regenerator.default.wrap(function _callee11$(_context11) {
3902
+ while (1) switch (_context11.prev = _context11.next) {
3797
3903
  case 0:
3798
3904
  oldStream = this.mediaProperties.shareAudioStream;
3799
3905
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(_mediaHelpers.StreamEventNames.Ended, this.handleShareAudioStreamEnded);
@@ -3803,21 +3909,21 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3803
3909
  localSystemAudioStream === null || localSystemAudioStream === void 0 ? void 0 : localSystemAudioStream.on(_mediaHelpers.LocalStreamEventNames.OutputTrackChange, this.localOutputTrackChangeHandler);
3804
3910
  this.mediaProperties.mediaDirection.sendShare = this.mediaProperties.hasLocalShareStream();
3805
3911
  if (!(!this.isMultistream || !localSystemAudioStream)) {
3806
- _context9.next = 10;
3912
+ _context11.next = 10;
3807
3913
  break;
3808
3914
  }
3809
- _context9.next = 10;
3915
+ _context11.next = 10;
3810
3916
  return this.unpublishStream(_internalMediaCore.MediaType.AudioSlides, oldStream);
3811
3917
  case 10:
3812
- _context9.next = 12;
3918
+ _context11.next = 12;
3813
3919
  return this.publishStream(_internalMediaCore.MediaType.AudioSlides, this.mediaProperties.shareAudioStream);
3814
3920
  case 12:
3815
3921
  case "end":
3816
- return _context9.stop();
3922
+ return _context11.stop();
3817
3923
  }
3818
- }, _callee9, this);
3924
+ }, _callee11, this);
3819
3925
  }));
3820
- function setLocalShareAudioStream(_x7) {
3926
+ function setLocalShareAudioStream(_x9) {
3821
3927
  return _setLocalShareAudioStream.apply(this, arguments);
3822
3928
  }
3823
3929
  return setLocalShareAudioStream;
@@ -4401,16 +4507,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4401
4507
  }, {
4402
4508
  key: "receiveTranscription",
4403
4509
  value: function () {
4404
- var _receiveTranscription = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() {
4510
+ var _receiveTranscription = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() {
4405
4511
  var _this31 = this;
4406
4512
  var datachannelUrl, _yield$this$request, webSocketUrl;
4407
- return _regenerator.default.wrap(function _callee10$(_context10) {
4408
- while (1) switch (_context10.prev = _context10.next) {
4513
+ return _regenerator.default.wrap(function _callee12$(_context12) {
4514
+ while (1) switch (_context12.prev = _context12.next) {
4409
4515
  case 0:
4410
4516
  _loggerProxy.default.logger.info("Meeting:index#receiveTranscription -->\n Attempting to generate a web socket url.");
4411
- _context10.prev = 1;
4517
+ _context12.prev = 1;
4412
4518
  datachannelUrl = this.locusInfo.info.datachannelUrl; // @ts-ignore - fix type
4413
- _context10.next = 5;
4519
+ _context12.next = 5;
4414
4520
  return this.request({
4415
4521
  method: _constants.HTTP_VERBS.POST,
4416
4522
  uri: datachannelUrl,
@@ -4419,7 +4525,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4419
4525
  }
4420
4526
  });
4421
4527
  case 5:
4422
- _yield$this$request = _context10.sent;
4528
+ _yield$this$request = _context12.sent;
4423
4529
  webSocketUrl = _yield$this$request.body.webSocketUrl;
4424
4530
  _loggerProxy.default.logger.info("Meeting:index#receiveTranscription -->\n Generated web socket url succesfully.");
4425
4531
  this.transcription = new _transcription.default(webSocketUrl,
@@ -4440,22 +4546,22 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4440
4546
  this.monitorTranscriptionSocketConnection();
4441
4547
  // @ts-ignore - fix type
4442
4548
  this.transcription.connect(this.webex.credentials.supertoken.access_token);
4443
- _context10.next = 20;
4549
+ _context12.next = 20;
4444
4550
  break;
4445
4551
  case 16:
4446
- _context10.prev = 16;
4447
- _context10.t0 = _context10["catch"](1);
4448
- _loggerProxy.default.logger.error("Meeting:index#receiveTranscription --> ".concat(_context10.t0));
4552
+ _context12.prev = 16;
4553
+ _context12.t0 = _context12["catch"](1);
4554
+ _loggerProxy.default.logger.error("Meeting:index#receiveTranscription --> ".concat(_context12.t0));
4449
4555
  _metrics.default.sendBehavioralMetric(_constants2.default.RECEIVE_TRANSCRIPTION_FAILURE, {
4450
4556
  correlation_id: this.correlationId,
4451
- reason: _context10.t0.message,
4452
- stack: _context10.t0.stack
4557
+ reason: _context12.t0.message,
4558
+ stack: _context12.t0.stack
4453
4559
  });
4454
4560
  case 20:
4455
4561
  case "end":
4456
- return _context10.stop();
4562
+ return _context12.stop();
4457
4563
  }
4458
- }, _callee10, this, [[1, 16]]);
4564
+ }, _callee12, this, [[1, 16]]);
4459
4565
  }));
4460
4566
  function receiveTranscription() {
4461
4567
  return _receiveTranscription.apply(this, arguments);
@@ -4607,74 +4713,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4607
4713
  return _util.default.joinMeetingOptions(this, options).then(function (join) {
4608
4714
  _this32.meetingFiniteStateMachine.join();
4609
4715
  _loggerProxy.default.logger.log('Meeting:index#join --> Success');
4610
- return join;
4611
- }).then(function (join) {
4612
- joinSuccess(join);
4613
- _this32.deferJoin = undefined;
4614
4716
  _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
4615
4717
  correlation_id: _this32.correlationId
4616
4718
  });
4719
+ joinSuccess(join);
4720
+ _this32.deferJoin = undefined;
4617
4721
  return join;
4618
- }).then( /*#__PURE__*/function () {
4619
- var _ref21 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(join) {
4620
- return _regenerator.default.wrap(function _callee11$(_context11) {
4621
- while (1) switch (_context11.prev = _context11.next) {
4622
- case 0:
4623
- if (!_this32.config.enableAutomaticLLM) {
4624
- _context11.next = 3;
4625
- break;
4626
- }
4627
- _context11.next = 3;
4628
- return _this32.updateLLMConnection();
4629
- case 3:
4630
- return _context11.abrupt("return", join);
4631
- case 4:
4632
- case "end":
4633
- return _context11.stop();
4634
- }
4635
- }, _callee11);
4636
- }));
4637
- return function (_x8) {
4638
- return _ref21.apply(this, arguments);
4639
- };
4640
- }()).then( /*#__PURE__*/function () {
4641
- var _ref22 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12(join) {
4642
- return _regenerator.default.wrap(function _callee12$(_context12) {
4643
- while (1) switch (_context12.prev = _context12.next) {
4644
- case 0:
4645
- if (!isBrowser) {
4646
- _context12.next = 8;
4647
- break;
4648
- }
4649
- if (!(_this32.config.receiveTranscription || options.receiveTranscription)) {
4650
- _context12.next = 6;
4651
- break;
4652
- }
4653
- if (!_this32.isTranscriptionSupported()) {
4654
- _context12.next = 6;
4655
- break;
4656
- }
4657
- _context12.next = 5;
4658
- return _this32.receiveTranscription();
4659
- case 5:
4660
- _loggerProxy.default.logger.info('Meeting:index#join --> enabled to recieve transcription!');
4661
- case 6:
4662
- _context12.next = 9;
4663
- break;
4664
- case 8:
4665
- _loggerProxy.default.logger.error('Meeting:index#join --> Receving transcription is not supported on this platform');
4666
- case 9:
4667
- return _context12.abrupt("return", join);
4668
- case 10:
4669
- case "end":
4670
- return _context12.stop();
4671
- }
4672
- }, _callee12);
4673
- }));
4674
- return function (_x9) {
4675
- return _ref22.apply(this, arguments);
4676
- };
4677
- }()).catch(function (error) {
4722
+ }).catch(function (error) {
4678
4723
  var _this32$meetingInfo, _error$error;
4679
4724
  _this32.meetingFiniteStateMachine.fail(error);
4680
4725
  _loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
@@ -4708,6 +4753,39 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4708
4753
  joinFailed(error);
4709
4754
  _this32.deferJoin = undefined;
4710
4755
  return _promise.default.reject(error);
4756
+ }).then(function (join) {
4757
+ // @ts-ignore - config coming from registerPlugin
4758
+ if (_this32.config.enableAutomaticLLM) {
4759
+ _this32.updateLLMConnection().catch(function (error) {
4760
+ _loggerProxy.default.logger.error('Meeting:index#join --> Update LLM Connection Failed', error);
4761
+ _metrics.default.sendBehavioralMetric(_constants2.default.LLM_CONNECTION_AFTER_JOIN_FAILURE, {
4762
+ correlation_id: _this32.correlationId,
4763
+ reason: error === null || error === void 0 ? void 0 : error.message,
4764
+ stack: error.stack
4765
+ });
4766
+ });
4767
+ }
4768
+ return join;
4769
+ }).then(function (join) {
4770
+ if (isBrowser) {
4771
+ // @ts-ignore - config coming from registerPlugin
4772
+ if (_this32.config.receiveTranscription || options.receiveTranscription) {
4773
+ if (_this32.isTranscriptionSupported()) {
4774
+ _loggerProxy.default.logger.info('Meeting:index#join --> Attempting to enabled to recieve transcription!');
4775
+ _this32.receiveTranscription().catch(function (error) {
4776
+ _loggerProxy.default.logger.error('Meeting:index#join --> Receive Transcription Failed', error);
4777
+ _metrics.default.sendBehavioralMetric(_constants2.default.RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE, {
4778
+ correlation_id: _this32.correlationId,
4779
+ reason: error === null || error === void 0 ? void 0 : error.message,
4780
+ stack: error.stack
4781
+ });
4782
+ });
4783
+ }
4784
+ }
4785
+ } else {
4786
+ _loggerProxy.default.logger.error('Meeting:index#join --> Receving transcription is not supported on this platform');
4787
+ }
4788
+ return join;
4711
4789
  });
4712
4790
  }
4713
4791
 
@@ -5284,7 +5362,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5284
5362
  return _promise.default.all(promises).then(function () {
5285
5363
  return _this39.roap.doTurnDiscovery(_this39, false);
5286
5364
  }).then( /*#__PURE__*/function () {
5287
- var _ref24 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16(turnDiscoveryObject) {
5365
+ var _ref23 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16(turnDiscoveryObject) {
5288
5366
  var turnServerInfo, mc;
5289
5367
  return _regenerator.default.wrap(function _callee16$(_context16) {
5290
5368
  while (1) switch (_context16.prev = _context16.next) {
@@ -5316,7 +5394,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5316
5394
  }, _callee16);
5317
5395
  }));
5318
5396
  return function (_x12) {
5319
- return _ref24.apply(this, arguments);
5397
+ return _ref23.apply(this, arguments);
5320
5398
  };
5321
5399
  }()).then(function () {
5322
5400
  _this39.setMercuryListener();