@webex/plugin-meetings 3.0.0-beta.291 → 3.0.0-beta.293
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.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/common/errors/webex-errors.js +21 -1
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/config.js +1 -2
- package/dist/config.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/meeting/index.js +357 -173
- package/dist/meeting/index.js.map +1 -1
- package/dist/meetings/index.js +0 -17
- package/dist/meetings/index.js.map +1 -1
- package/dist/reconnection-manager/index.js +2 -2
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/roap/index.js +3 -2
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/turnDiscovery.js +15 -16
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/types/common/errors/webex-errors.d.ts +12 -0
- package/dist/types/config.d.ts +0 -1
- package/dist/types/meeting/index.d.ts +42 -1
- package/dist/types/meetings/index.d.ts +0 -8
- package/dist/types/roap/index.d.ts +2 -1
- package/dist/types/roap/turnDiscovery.d.ts +3 -2
- package/dist/webinar/index.js +1 -1
- package/package.json +19 -19
- package/src/common/errors/webex-errors.ts +17 -0
- package/src/config.ts +0 -1
- package/src/meeting/index.ts +150 -9
- package/src/meetings/index.ts +0 -15
- package/src/reconnection-manager/index.ts +2 -2
- package/src/roap/index.ts +3 -2
- package/src/roap/turnDiscovery.ts +8 -12
- package/test/unit/spec/meeting/index.js +310 -45
- package/test/unit/spec/meetings/index.js +0 -28
- package/test/unit/spec/reconnection-manager/index.js +1 -0
- package/test/unit/spec/roap/index.ts +16 -22
- package/test/unit/spec/roap/turnDiscovery.ts +42 -31
package/dist/meeting/index.js
CHANGED
|
@@ -492,6 +492,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
492
492
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "allowMediaInLobby", void 0);
|
|
493
493
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "turnDiscoverySkippedReason", void 0);
|
|
494
494
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "turnServerUsed", void 0);
|
|
495
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "retriedWithTurnServer", void 0);
|
|
495
496
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sendSlotManager", new _sendSlotManager.default(_loggerProxy.default));
|
|
496
497
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "deferSDPAnswer", void 0);
|
|
497
498
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sdpResponseTimer", void 0);
|
|
@@ -1807,6 +1808,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1807
1808
|
* @memberof Meeting
|
|
1808
1809
|
*/
|
|
1809
1810
|
_this.turnServerUsed = false;
|
|
1811
|
+
|
|
1812
|
+
/**
|
|
1813
|
+
* Whether retry was done using TURN Discovery.
|
|
1814
|
+
* @instance
|
|
1815
|
+
* @type {boolean}
|
|
1816
|
+
* @private
|
|
1817
|
+
* @memberof Meeting
|
|
1818
|
+
*/
|
|
1819
|
+
_this.retriedWithTurnServer = false;
|
|
1810
1820
|
return _this;
|
|
1811
1821
|
}
|
|
1812
1822
|
|
|
@@ -5499,8 +5509,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5499
5509
|
this.webex.internal.newMetrics.submitClientEvent({
|
|
5500
5510
|
name: 'client.ice.end',
|
|
5501
5511
|
payload: {
|
|
5502
|
-
canProceed:
|
|
5503
|
-
|
|
5512
|
+
canProceed: !this.turnServerUsed,
|
|
5513
|
+
// If we haven't done turn tls retry yet we will proceed with join attempt
|
|
5514
|
+
icePhase: this.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY',
|
|
5504
5515
|
errors: [
|
|
5505
5516
|
// @ts-ignore
|
|
5506
5517
|
this.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
|
|
@@ -5601,7 +5612,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5601
5612
|
return waitForRemoteSDPAnswer;
|
|
5602
5613
|
}()
|
|
5603
5614
|
/**
|
|
5604
|
-
*
|
|
5615
|
+
* Calls establishMediaConnection with isForced = true to force turn discovery to happen
|
|
5605
5616
|
*
|
|
5606
5617
|
* @private
|
|
5607
5618
|
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
@@ -5609,24 +5620,142 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5609
5620
|
* @returns {Promise<void>}
|
|
5610
5621
|
*/
|
|
5611
5622
|
}, {
|
|
5612
|
-
key: "
|
|
5623
|
+
key: "retryEstablishMediaConnectionWithForcedTurnDiscovery",
|
|
5613
5624
|
value: function () {
|
|
5614
|
-
var
|
|
5615
|
-
var LOG_HEADER
|
|
5625
|
+
var _retryEstablishMediaConnectionWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21(remoteMediaManagerConfig, bundlePolicy) {
|
|
5626
|
+
var LOG_HEADER;
|
|
5616
5627
|
return _regenerator.default.wrap(function _callee21$(_context21) {
|
|
5617
5628
|
while (1) switch (_context21.prev = _context21.next) {
|
|
5629
|
+
case 0:
|
|
5630
|
+
LOG_HEADER = 'Meeting:index#addMedia():retryEstablishMediaConnectionWithForcedTurnDiscovery -->';
|
|
5631
|
+
_context21.prev = 1;
|
|
5632
|
+
_context21.next = 4;
|
|
5633
|
+
return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, true);
|
|
5634
|
+
case 4:
|
|
5635
|
+
_context21.next = 10;
|
|
5636
|
+
break;
|
|
5637
|
+
case 6:
|
|
5638
|
+
_context21.prev = 6;
|
|
5639
|
+
_context21.t0 = _context21["catch"](1);
|
|
5640
|
+
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " retry with TURN-TLS failed, media connection unable to connect, "), _context21.t0);
|
|
5641
|
+
throw _context21.t0;
|
|
5642
|
+
case 10:
|
|
5643
|
+
case "end":
|
|
5644
|
+
return _context21.stop();
|
|
5645
|
+
}
|
|
5646
|
+
}, _callee21, this, [[1, 6]]);
|
|
5647
|
+
}));
|
|
5648
|
+
function retryEstablishMediaConnectionWithForcedTurnDiscovery(_x14, _x15) {
|
|
5649
|
+
return _retryEstablishMediaConnectionWithForcedTurnDiscovery.apply(this, arguments);
|
|
5650
|
+
}
|
|
5651
|
+
return retryEstablishMediaConnectionWithForcedTurnDiscovery;
|
|
5652
|
+
}()
|
|
5653
|
+
/**
|
|
5654
|
+
* Does relevant clean up before retrying to establish media connection
|
|
5655
|
+
* and performs the retry with forced turn discovery
|
|
5656
|
+
*
|
|
5657
|
+
* @private
|
|
5658
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
5659
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
5660
|
+
* @returns {Promise<void>}
|
|
5661
|
+
*/
|
|
5662
|
+
}, {
|
|
5663
|
+
key: "retryWithForcedTurnDiscovery",
|
|
5664
|
+
value: function () {
|
|
5665
|
+
var _retryWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee22(remoteMediaManagerConfig, bundlePolicy) {
|
|
5666
|
+
return _regenerator.default.wrap(function _callee22$(_context22) {
|
|
5667
|
+
while (1) switch (_context22.prev = _context22.next) {
|
|
5668
|
+
case 0:
|
|
5669
|
+
this.retriedWithTurnServer = true;
|
|
5670
|
+
_context22.next = 3;
|
|
5671
|
+
return this.cleanUpBeforeRetryWithTurnServer();
|
|
5672
|
+
case 3:
|
|
5673
|
+
_context22.next = 5;
|
|
5674
|
+
return this.retryEstablishMediaConnectionWithForcedTurnDiscovery(remoteMediaManagerConfig, bundlePolicy);
|
|
5675
|
+
case 5:
|
|
5676
|
+
case "end":
|
|
5677
|
+
return _context22.stop();
|
|
5678
|
+
}
|
|
5679
|
+
}, _callee22, this);
|
|
5680
|
+
}));
|
|
5681
|
+
function retryWithForcedTurnDiscovery(_x16, _x17) {
|
|
5682
|
+
return _retryWithForcedTurnDiscovery.apply(this, arguments);
|
|
5683
|
+
}
|
|
5684
|
+
return retryWithForcedTurnDiscovery;
|
|
5685
|
+
}()
|
|
5686
|
+
/**
|
|
5687
|
+
* If waitForMediaConnectionConnected() fails when we haven't done turn discovery then we
|
|
5688
|
+
* attempt to establish a media connection again, but this time using turn discovery. If we
|
|
5689
|
+
* used turn discovery on the first pass we do not attempt connection again.
|
|
5690
|
+
*
|
|
5691
|
+
* @private
|
|
5692
|
+
* @param {Error} error
|
|
5693
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
5694
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
5695
|
+
* @returns {Promise<void>}
|
|
5696
|
+
*/
|
|
5697
|
+
}, {
|
|
5698
|
+
key: "handleWaitForMediaConnectionConnectedError",
|
|
5699
|
+
value: function () {
|
|
5700
|
+
var _handleWaitForMediaConnectionConnectedError = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee23(error, remoteMediaManagerConfig, bundlePolicy) {
|
|
5701
|
+
var LOG_HEADER;
|
|
5702
|
+
return _regenerator.default.wrap(function _callee23$(_context23) {
|
|
5703
|
+
while (1) switch (_context23.prev = _context23.next) {
|
|
5704
|
+
case 0:
|
|
5705
|
+
LOG_HEADER = 'Meeting:index#addMedia():handleWaitForMediaConnectionConnectedError -->'; // @ts-ignore - config coming from registerPlugin
|
|
5706
|
+
if (this.turnServerUsed) {
|
|
5707
|
+
_context23.next = 7;
|
|
5708
|
+
break;
|
|
5709
|
+
}
|
|
5710
|
+
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " error waiting for media to connect on UDP, TCP, retrying using TURN-TLS, "), error);
|
|
5711
|
+
_context23.next = 5;
|
|
5712
|
+
return this.retryWithForcedTurnDiscovery(remoteMediaManagerConfig, bundlePolicy);
|
|
5713
|
+
case 5:
|
|
5714
|
+
_context23.next = 9;
|
|
5715
|
+
break;
|
|
5716
|
+
case 7:
|
|
5717
|
+
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " error waiting for media to connect using UDP, TCP and TURN-TLS"), error);
|
|
5718
|
+
throw new _webexErrors.AddMediaFailed();
|
|
5719
|
+
case 9:
|
|
5720
|
+
case "end":
|
|
5721
|
+
return _context23.stop();
|
|
5722
|
+
}
|
|
5723
|
+
}, _callee23, this);
|
|
5724
|
+
}));
|
|
5725
|
+
function handleWaitForMediaConnectionConnectedError(_x18, _x19, _x20) {
|
|
5726
|
+
return _handleWaitForMediaConnectionConnectedError.apply(this, arguments);
|
|
5727
|
+
}
|
|
5728
|
+
return handleWaitForMediaConnectionConnectedError;
|
|
5729
|
+
}()
|
|
5730
|
+
/**
|
|
5731
|
+
* Does TURN discovery, SDP offer/answer exhange, establishes ICE connection and DTLS handshake.
|
|
5732
|
+
*
|
|
5733
|
+
* @private
|
|
5734
|
+
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
5735
|
+
* @param {BundlePolicy} [bundlePolicy]
|
|
5736
|
+
* @param {boolean} [isForced] - let isForced be true to do turn discovery regardless of reachability results
|
|
5737
|
+
* @returns {Promise<void>}
|
|
5738
|
+
*/
|
|
5739
|
+
}, {
|
|
5740
|
+
key: "establishMediaConnection",
|
|
5741
|
+
value: function () {
|
|
5742
|
+
var _establishMediaConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24(remoteMediaManagerConfig, bundlePolicy, isForced) {
|
|
5743
|
+
var LOG_HEADER, cdl, isRetry, turnDiscoveryObject, turnServerInfo, mc;
|
|
5744
|
+
return _regenerator.default.wrap(function _callee24$(_context24) {
|
|
5745
|
+
while (1) switch (_context24.prev = _context24.next) {
|
|
5618
5746
|
case 0:
|
|
5619
5747
|
LOG_HEADER = 'Meeting:index#addMedia():establishMediaConnection -->'; // @ts-ignore
|
|
5620
5748
|
cdl = this.webex.internal.newMetrics.callDiagnosticLatencies;
|
|
5621
|
-
|
|
5749
|
+
isRetry = this.retriedWithTurnServer;
|
|
5750
|
+
_context24.prev = 3;
|
|
5622
5751
|
// @ts-ignore
|
|
5623
5752
|
this.webex.internal.newMetrics.submitInternalEvent({
|
|
5624
5753
|
name: 'internal.client.add-media.turn-discovery.start'
|
|
5625
5754
|
});
|
|
5626
|
-
|
|
5627
|
-
return this.roap.doTurnDiscovery(this,
|
|
5628
|
-
case
|
|
5629
|
-
turnDiscoveryObject =
|
|
5755
|
+
_context24.next = 7;
|
|
5756
|
+
return this.roap.doTurnDiscovery(this, isRetry, isForced);
|
|
5757
|
+
case 7:
|
|
5758
|
+
turnDiscoveryObject = _context24.sent;
|
|
5630
5759
|
this.turnDiscoverySkippedReason = turnDiscoveryObject === null || turnDiscoveryObject === void 0 ? void 0 : turnDiscoveryObject.turnDiscoverySkippedReason;
|
|
5631
5760
|
this.turnServerUsed = !this.turnDiscoverySkippedReason;
|
|
5632
5761
|
|
|
@@ -5638,50 +5767,60 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5638
5767
|
_metrics.default.sendBehavioralMetric(_constants2.default.TURN_DISCOVERY_LATENCY, {
|
|
5639
5768
|
correlation_id: this.correlationId,
|
|
5640
5769
|
latency: cdl.getTurnDiscoveryTime(),
|
|
5641
|
-
turnServerUsed: this.turnServerUsed
|
|
5770
|
+
turnServerUsed: this.turnServerUsed,
|
|
5771
|
+
retriedWithTurnServer: this.retriedWithTurnServer
|
|
5642
5772
|
});
|
|
5643
5773
|
}
|
|
5644
5774
|
turnServerInfo = turnDiscoveryObject.turnServerInfo;
|
|
5645
|
-
|
|
5775
|
+
_context24.next = 15;
|
|
5646
5776
|
return this.createMediaConnection(turnServerInfo, bundlePolicy);
|
|
5647
|
-
case
|
|
5648
|
-
mc =
|
|
5777
|
+
case 15:
|
|
5778
|
+
mc = _context24.sent;
|
|
5649
5779
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " media connection created"));
|
|
5650
5780
|
if (!this.isMultistream) {
|
|
5651
|
-
|
|
5781
|
+
_context24.next = 24;
|
|
5652
5782
|
break;
|
|
5653
5783
|
}
|
|
5654
5784
|
this.remoteMediaManager = new _remoteMediaManager.RemoteMediaManager(this.receiveSlotManager, this.mediaRequestManagers, remoteMediaManagerConfig);
|
|
5655
5785
|
this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.AudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_AUDIO_CREATED);
|
|
5656
5786
|
this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.ScreenShareAudioCreated, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_SCREEN_SHARE_AUDIO_CREATED);
|
|
5657
5787
|
this.forwardEvent(this.remoteMediaManager, _remoteMediaManager.Event.VideoLayoutChanged, _constants.EVENT_TRIGGERS.REMOTE_MEDIA_VIDEO_LAYOUT_CHANGED);
|
|
5658
|
-
|
|
5788
|
+
_context24.next = 24;
|
|
5659
5789
|
return this.remoteMediaManager.start();
|
|
5660
|
-
case
|
|
5661
|
-
|
|
5790
|
+
case 24:
|
|
5791
|
+
_context24.next = 26;
|
|
5662
5792
|
return mc.initiateOffer();
|
|
5663
|
-
case
|
|
5664
|
-
|
|
5793
|
+
case 26:
|
|
5794
|
+
_context24.next = 28;
|
|
5665
5795
|
return this.waitForRemoteSDPAnswer();
|
|
5666
|
-
case
|
|
5796
|
+
case 28:
|
|
5667
5797
|
this.handleMediaLogging(this.mediaProperties);
|
|
5668
|
-
|
|
5798
|
+
_context24.next = 35;
|
|
5669
5799
|
break;
|
|
5670
|
-
case
|
|
5671
|
-
|
|
5672
|
-
|
|
5673
|
-
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " error establishing media connection, "),
|
|
5674
|
-
throw
|
|
5675
|
-
case
|
|
5676
|
-
|
|
5800
|
+
case 31:
|
|
5801
|
+
_context24.prev = 31;
|
|
5802
|
+
_context24.t0 = _context24["catch"](3);
|
|
5803
|
+
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " error establishing media connection, "), _context24.t0);
|
|
5804
|
+
throw _context24.t0;
|
|
5805
|
+
case 35:
|
|
5806
|
+
_context24.prev = 35;
|
|
5807
|
+
_context24.next = 38;
|
|
5677
5808
|
return this.waitForMediaConnectionConnected();
|
|
5678
|
-
case
|
|
5809
|
+
case 38:
|
|
5810
|
+
_context24.next = 44;
|
|
5811
|
+
break;
|
|
5812
|
+
case 40:
|
|
5813
|
+
_context24.prev = 40;
|
|
5814
|
+
_context24.t1 = _context24["catch"](35);
|
|
5815
|
+
_context24.next = 44;
|
|
5816
|
+
return this.handleWaitForMediaConnectionConnectedError(_context24.t1, remoteMediaManagerConfig, bundlePolicy);
|
|
5817
|
+
case 44:
|
|
5679
5818
|
case "end":
|
|
5680
|
-
return
|
|
5819
|
+
return _context24.stop();
|
|
5681
5820
|
}
|
|
5682
|
-
},
|
|
5821
|
+
}, _callee24, this, [[3, 31], [35, 40]]);
|
|
5683
5822
|
}));
|
|
5684
|
-
function establishMediaConnection(
|
|
5823
|
+
function establishMediaConnection(_x21, _x22, _x23) {
|
|
5685
5824
|
return _establishMediaConnection.apply(this, arguments);
|
|
5686
5825
|
}
|
|
5687
5826
|
return establishMediaConnection;
|
|
@@ -5695,22 +5834,22 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5695
5834
|
}, {
|
|
5696
5835
|
key: "cleanUpOnAddMediaFailure",
|
|
5697
5836
|
value: function () {
|
|
5698
|
-
var _cleanUpOnAddMediaFailure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
5699
|
-
return _regenerator.default.wrap(function
|
|
5700
|
-
while (1) switch (
|
|
5837
|
+
var _cleanUpOnAddMediaFailure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25() {
|
|
5838
|
+
return _regenerator.default.wrap(function _callee25$(_context25) {
|
|
5839
|
+
while (1) switch (_context25.prev = _context25.next) {
|
|
5701
5840
|
case 0:
|
|
5702
5841
|
if (!this.statsAnalyzer) {
|
|
5703
|
-
|
|
5842
|
+
_context25.next = 3;
|
|
5704
5843
|
break;
|
|
5705
5844
|
}
|
|
5706
|
-
|
|
5845
|
+
_context25.next = 3;
|
|
5707
5846
|
return this.statsAnalyzer.stopAnalyzer();
|
|
5708
5847
|
case 3:
|
|
5709
5848
|
this.statsAnalyzer = null;
|
|
5710
5849
|
|
|
5711
5850
|
// when media fails, we want to upload a webrtc dump to see whats going on
|
|
5712
5851
|
// this function is async, but returns once the stats have been gathered
|
|
5713
|
-
|
|
5852
|
+
_context25.next = 6;
|
|
5714
5853
|
return this.forceSendStatsReport({
|
|
5715
5854
|
callFrom: 'addMedia'
|
|
5716
5855
|
});
|
|
@@ -5721,15 +5860,58 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5721
5860
|
}
|
|
5722
5861
|
case 7:
|
|
5723
5862
|
case "end":
|
|
5724
|
-
return
|
|
5863
|
+
return _context25.stop();
|
|
5725
5864
|
}
|
|
5726
|
-
},
|
|
5865
|
+
}, _callee25, this);
|
|
5727
5866
|
}));
|
|
5728
5867
|
function cleanUpOnAddMediaFailure() {
|
|
5729
5868
|
return _cleanUpOnAddMediaFailure.apply(this, arguments);
|
|
5730
5869
|
}
|
|
5731
5870
|
return cleanUpOnAddMediaFailure;
|
|
5732
5871
|
}()
|
|
5872
|
+
/**
|
|
5873
|
+
* Sends stats report, closes peer connection and cleans up any media connection
|
|
5874
|
+
* related things before trying to establish media connection again with turn server
|
|
5875
|
+
*
|
|
5876
|
+
* @private
|
|
5877
|
+
* @returns {Promise<void>}
|
|
5878
|
+
*/
|
|
5879
|
+
}, {
|
|
5880
|
+
key: "cleanUpBeforeRetryWithTurnServer",
|
|
5881
|
+
value: function () {
|
|
5882
|
+
var _cleanUpBeforeRetryWithTurnServer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee26() {
|
|
5883
|
+
return _regenerator.default.wrap(function _callee26$(_context26) {
|
|
5884
|
+
while (1) switch (_context26.prev = _context26.next) {
|
|
5885
|
+
case 0:
|
|
5886
|
+
_context26.next = 2;
|
|
5887
|
+
return this.forceSendStatsReport({
|
|
5888
|
+
callFrom: 'cleanUpBeforeRetryWithTurnServer'
|
|
5889
|
+
});
|
|
5890
|
+
case 2:
|
|
5891
|
+
if (this.mediaProperties.webrtcMediaConnection) {
|
|
5892
|
+
if (this.remoteMediaManager) {
|
|
5893
|
+
this.remoteMediaManager.stop();
|
|
5894
|
+
this.remoteMediaManager = null;
|
|
5895
|
+
}
|
|
5896
|
+
(0, _values.default)(this.mediaRequestManagers).forEach(function (mediaRequestManager) {
|
|
5897
|
+
return mediaRequestManager.reset();
|
|
5898
|
+
});
|
|
5899
|
+
this.receiveSlotManager.reset();
|
|
5900
|
+
this.mediaProperties.webrtcMediaConnection.close();
|
|
5901
|
+
this.sendSlotManager.reset();
|
|
5902
|
+
this.mediaProperties.unsetPeerConnection();
|
|
5903
|
+
}
|
|
5904
|
+
case 3:
|
|
5905
|
+
case "end":
|
|
5906
|
+
return _context26.stop();
|
|
5907
|
+
}
|
|
5908
|
+
}, _callee26, this);
|
|
5909
|
+
}));
|
|
5910
|
+
function cleanUpBeforeRetryWithTurnServer() {
|
|
5911
|
+
return _cleanUpBeforeRetryWithTurnServer.apply(this, arguments);
|
|
5912
|
+
}
|
|
5913
|
+
return cleanUpBeforeRetryWithTurnServer;
|
|
5914
|
+
}()
|
|
5733
5915
|
/**
|
|
5734
5916
|
* Creates a media connection to the server. Media connection is required for sending or receiving any audio/video.
|
|
5735
5917
|
*
|
|
@@ -5741,7 +5923,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5741
5923
|
}, {
|
|
5742
5924
|
key: "addMedia",
|
|
5743
5925
|
value: function () {
|
|
5744
|
-
var _addMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
5926
|
+
var _addMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee27() {
|
|
5745
5927
|
var _this$webex$meetings$2, _this$webex$meetings$3;
|
|
5746
5928
|
var options,
|
|
5747
5929
|
LOG_HEADER,
|
|
@@ -5782,36 +5964,37 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5782
5964
|
_this$mediaProperties39,
|
|
5783
5965
|
_this$mediaProperties40,
|
|
5784
5966
|
reachabilityMetrics,
|
|
5785
|
-
|
|
5786
|
-
return _regenerator.default.wrap(function
|
|
5787
|
-
while (1) switch (
|
|
5967
|
+
_args27 = arguments;
|
|
5968
|
+
return _regenerator.default.wrap(function _callee27$(_context27) {
|
|
5969
|
+
while (1) switch (_context27.prev = _context27.next) {
|
|
5788
5970
|
case 0:
|
|
5789
|
-
options =
|
|
5971
|
+
options = _args27.length > 0 && _args27[0] !== undefined ? _args27[0] : {};
|
|
5972
|
+
this.retriedWithTurnServer = false;
|
|
5790
5973
|
LOG_HEADER = 'Meeting:index#addMedia -->';
|
|
5791
5974
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " called with: ").concat((0, _stringify.default)(options)));
|
|
5792
5975
|
if (!(this.meetingState !== _constants.FULL_STATE.ACTIVE)) {
|
|
5793
|
-
|
|
5976
|
+
_context27.next = 6;
|
|
5794
5977
|
break;
|
|
5795
5978
|
}
|
|
5796
5979
|
throw new _webexErrors.MeetingNotActiveError();
|
|
5797
|
-
case
|
|
5980
|
+
case 6:
|
|
5798
5981
|
if (!_util.default.isUserInLeftState(this.locusInfo)) {
|
|
5799
|
-
|
|
5982
|
+
_context27.next = 8;
|
|
5800
5983
|
break;
|
|
5801
5984
|
}
|
|
5802
5985
|
throw new _webexErrors.UserNotJoinedError();
|
|
5803
|
-
case
|
|
5986
|
+
case 8:
|
|
5804
5987
|
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;
|
|
5805
5988
|
this.allowMediaInLobby = options === null || options === void 0 ? void 0 : options.allowMediaInLobby;
|
|
5806
5989
|
|
|
5807
5990
|
// If the user is unjoined or guest waiting in lobby dont allow the user to addMedia
|
|
5808
5991
|
// @ts-ignore - isUserUnadmitted coming from SelfUtil
|
|
5809
5992
|
if (!(this.isUserUnadmitted && !this.wirelessShare && !allowMediaInLobby)) {
|
|
5810
|
-
|
|
5993
|
+
_context27.next = 12;
|
|
5811
5994
|
break;
|
|
5812
5995
|
}
|
|
5813
5996
|
throw new _webexErrors.UserInLobbyError();
|
|
5814
|
-
case
|
|
5997
|
+
case 12:
|
|
5815
5998
|
// @ts-ignore
|
|
5816
5999
|
this.webex.internal.newMetrics.submitClientEvent({
|
|
5817
6000
|
name: 'client.media.capabilities',
|
|
@@ -5866,33 +6049,33 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5866
6049
|
});
|
|
5867
6050
|
this.audio = (0, _muteState.createMuteState)(_constants.AUDIO, this, audioEnabled);
|
|
5868
6051
|
this.video = (0, _muteState.createMuteState)(_constants.VIDEO, this, videoEnabled);
|
|
5869
|
-
|
|
5870
|
-
|
|
6052
|
+
_context27.prev = 17;
|
|
6053
|
+
_context27.next = 20;
|
|
5871
6054
|
return this.setUpLocalStreamReferences(localStreams);
|
|
5872
|
-
case
|
|
6055
|
+
case 20:
|
|
5873
6056
|
this.setMercuryListener();
|
|
5874
6057
|
this.createStatsAnalyzer();
|
|
5875
|
-
|
|
5876
|
-
return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy);
|
|
5877
|
-
case
|
|
5878
|
-
|
|
6058
|
+
_context27.next = 24;
|
|
6059
|
+
return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, false);
|
|
6060
|
+
case 24:
|
|
6061
|
+
_context27.next = 26;
|
|
5879
6062
|
return Meeting.handleDeviceLogging();
|
|
5880
|
-
case
|
|
6063
|
+
case 26:
|
|
5881
6064
|
if (!this.mediaProperties.hasLocalShareStream()) {
|
|
5882
|
-
|
|
6065
|
+
_context27.next = 29;
|
|
5883
6066
|
break;
|
|
5884
6067
|
}
|
|
5885
|
-
|
|
6068
|
+
_context27.next = 29;
|
|
5886
6069
|
return this.enqueueScreenShareFloorRequest();
|
|
5887
|
-
case
|
|
5888
|
-
|
|
6070
|
+
case 29:
|
|
6071
|
+
_context27.next = 31;
|
|
5889
6072
|
return this.mediaProperties.getCurrentConnectionType();
|
|
5890
|
-
case
|
|
5891
|
-
connectionType =
|
|
5892
|
-
|
|
6073
|
+
case 31:
|
|
6074
|
+
connectionType = _context27.sent;
|
|
6075
|
+
_context27.next = 34;
|
|
5893
6076
|
return this.webex.meetings.reachability.getReachabilityMetrics();
|
|
5894
|
-
case
|
|
5895
|
-
reachabilityStats =
|
|
6077
|
+
case 34:
|
|
6078
|
+
reachabilityStats = _context27.sent;
|
|
5896
6079
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, _objectSpread({
|
|
5897
6080
|
correlation_id: this.correlationId,
|
|
5898
6081
|
locus_id: this.locusUrl.split('/').pop(),
|
|
@@ -5910,50 +6093,51 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5910
6093
|
|
|
5911
6094
|
// We can log ReceiveSlot SSRCs only after the SDP exchange, so doing it here:
|
|
5912
6095
|
(_this$remoteMediaMana = this.remoteMediaManager) === null || _this$remoteMediaMana === void 0 ? void 0 : _this$remoteMediaMana.logAllReceiveSlots();
|
|
5913
|
-
|
|
6096
|
+
_context27.next = 53;
|
|
5914
6097
|
break;
|
|
5915
|
-
case
|
|
5916
|
-
|
|
5917
|
-
|
|
5918
|
-
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "),
|
|
6098
|
+
case 41:
|
|
6099
|
+
_context27.prev = 41;
|
|
6100
|
+
_context27.t0 = _context27["catch"](17);
|
|
6101
|
+
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context27.t0);
|
|
5919
6102
|
|
|
5920
6103
|
// @ts-ignore
|
|
5921
|
-
|
|
6104
|
+
_context27.next = 46;
|
|
5922
6105
|
return this.webex.meetings.reachability.getReachabilityMetrics();
|
|
5923
|
-
case
|
|
5924
|
-
reachabilityMetrics =
|
|
6106
|
+
case 46:
|
|
6107
|
+
reachabilityMetrics = _context27.sent;
|
|
5925
6108
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_FAILURE, _objectSpread({
|
|
5926
6109
|
correlation_id: this.correlationId,
|
|
5927
6110
|
locus_id: this.locusUrl.split('/').pop(),
|
|
5928
|
-
reason:
|
|
5929
|
-
stack:
|
|
5930
|
-
code:
|
|
6111
|
+
reason: _context27.t0.message,
|
|
6112
|
+
stack: _context27.t0.stack,
|
|
6113
|
+
code: _context27.t0.code,
|
|
5931
6114
|
turnDiscoverySkippedReason: this.turnDiscoverySkippedReason,
|
|
5932
6115
|
turnServerUsed: this.turnServerUsed,
|
|
6116
|
+
retriedWithTurnServer: this.retriedWithTurnServer,
|
|
5933
6117
|
isMultistream: this.isMultistream,
|
|
5934
6118
|
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',
|
|
5935
6119
|
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',
|
|
5936
6120
|
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'
|
|
5937
6121
|
}, reachabilityMetrics));
|
|
5938
|
-
|
|
6122
|
+
_context27.next = 50;
|
|
5939
6123
|
return this.cleanUpOnAddMediaFailure();
|
|
5940
|
-
case
|
|
6124
|
+
case 50:
|
|
5941
6125
|
// Upload logs on error while adding media
|
|
5942
6126
|
_triggerProxy.default.trigger(this, {
|
|
5943
6127
|
file: 'meeting/index',
|
|
5944
6128
|
function: 'addMedia'
|
|
5945
6129
|
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
|
|
5946
|
-
if (
|
|
6130
|
+
if (_context27.t0 instanceof _internalMediaCore.Errors.SdpError) {
|
|
5947
6131
|
this.leave({
|
|
5948
6132
|
reason: _constants.MEETING_REMOVED_REASON.MEETING_CONNECTION_FAILED
|
|
5949
6133
|
});
|
|
5950
6134
|
}
|
|
5951
|
-
throw
|
|
5952
|
-
case
|
|
6135
|
+
throw _context27.t0;
|
|
6136
|
+
case 53:
|
|
5953
6137
|
case "end":
|
|
5954
|
-
return
|
|
6138
|
+
return _context27.stop();
|
|
5955
6139
|
}
|
|
5956
|
-
},
|
|
6140
|
+
}, _callee27, this, [[17, 41]]);
|
|
5957
6141
|
}));
|
|
5958
6142
|
function addMedia() {
|
|
5959
6143
|
return _addMedia.apply(this, arguments);
|
|
@@ -6034,35 +6218,35 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6034
6218
|
* @memberof Meeting
|
|
6035
6219
|
*/
|
|
6036
6220
|
function () {
|
|
6037
|
-
var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
6221
|
+
var _updateMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee28(options) {
|
|
6038
6222
|
var audioEnabled, videoEnabled, shareAudioEnabled, shareVideoEnabled;
|
|
6039
|
-
return _regenerator.default.wrap(function
|
|
6040
|
-
while (1) switch (
|
|
6223
|
+
return _regenerator.default.wrap(function _callee28$(_context28) {
|
|
6224
|
+
while (1) switch (_context28.prev = _context28.next) {
|
|
6041
6225
|
case 0:
|
|
6042
6226
|
this.checkMediaConnection();
|
|
6043
6227
|
audioEnabled = options.audioEnabled, videoEnabled = options.videoEnabled, shareAudioEnabled = options.shareAudioEnabled, shareVideoEnabled = options.shareVideoEnabled;
|
|
6044
6228
|
_loggerProxy.default.logger.log("Meeting:index#updateMedia --> called with options=".concat((0, _stringify.default)(options)));
|
|
6045
6229
|
if (this.canUpdateMedia()) {
|
|
6046
|
-
|
|
6230
|
+
_context28.next = 5;
|
|
6047
6231
|
break;
|
|
6048
6232
|
}
|
|
6049
|
-
return
|
|
6233
|
+
return _context28.abrupt("return", this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.UPDATE_MEDIA, options));
|
|
6050
6234
|
case 5:
|
|
6051
6235
|
if (!this.isMultistream) {
|
|
6052
|
-
|
|
6236
|
+
_context28.next = 10;
|
|
6053
6237
|
break;
|
|
6054
6238
|
}
|
|
6055
6239
|
if (!(shareAudioEnabled !== undefined || shareVideoEnabled !== undefined)) {
|
|
6056
|
-
|
|
6240
|
+
_context28.next = 8;
|
|
6057
6241
|
break;
|
|
6058
6242
|
}
|
|
6059
6243
|
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');
|
|
6060
6244
|
case 8:
|
|
6061
|
-
|
|
6245
|
+
_context28.next = 12;
|
|
6062
6246
|
break;
|
|
6063
6247
|
case 10:
|
|
6064
6248
|
if (!(shareAudioEnabled !== undefined)) {
|
|
6065
|
-
|
|
6249
|
+
_context28.next = 12;
|
|
6066
6250
|
break;
|
|
6067
6251
|
}
|
|
6068
6252
|
throw new Error('toggling shareAudioEnabled in a transcoded meeting is not supported as of now');
|
|
@@ -6087,20 +6271,20 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6087
6271
|
this.mediaProperties.mediaDirection.receiveShare = !!(shareAudioEnabled || shareVideoEnabled);
|
|
6088
6272
|
}
|
|
6089
6273
|
if (this.isMultistream) {
|
|
6090
|
-
|
|
6274
|
+
_context28.next = 18;
|
|
6091
6275
|
break;
|
|
6092
6276
|
}
|
|
6093
|
-
|
|
6277
|
+
_context28.next = 18;
|
|
6094
6278
|
return this.updateTranscodedMediaConnection();
|
|
6095
6279
|
case 18:
|
|
6096
|
-
return
|
|
6280
|
+
return _context28.abrupt("return", undefined);
|
|
6097
6281
|
case 19:
|
|
6098
6282
|
case "end":
|
|
6099
|
-
return
|
|
6283
|
+
return _context28.stop();
|
|
6100
6284
|
}
|
|
6101
|
-
},
|
|
6285
|
+
}, _callee28, this);
|
|
6102
6286
|
}));
|
|
6103
|
-
function updateMedia(
|
|
6287
|
+
function updateMedia(_x24) {
|
|
6104
6288
|
return _updateMedia.apply(this, arguments);
|
|
6105
6289
|
}
|
|
6106
6290
|
return updateMedia;
|
|
@@ -7009,39 +7193,39 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7009
7193
|
}, {
|
|
7010
7194
|
key: "enableMusicMode",
|
|
7011
7195
|
value: function () {
|
|
7012
|
-
var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
7013
|
-
return _regenerator.default.wrap(function
|
|
7014
|
-
while (1) switch (
|
|
7196
|
+
var _enableMusicMode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee29(shouldEnableMusicMode) {
|
|
7197
|
+
return _regenerator.default.wrap(function _callee29$(_context29) {
|
|
7198
|
+
while (1) switch (_context29.prev = _context29.next) {
|
|
7015
7199
|
case 0:
|
|
7016
7200
|
this.checkMediaConnection();
|
|
7017
7201
|
if (this.isMultistream) {
|
|
7018
|
-
|
|
7202
|
+
_context29.next = 3;
|
|
7019
7203
|
break;
|
|
7020
7204
|
}
|
|
7021
7205
|
throw new Error('enableMusicMode() only supported with multistream');
|
|
7022
7206
|
case 3:
|
|
7023
7207
|
if (!shouldEnableMusicMode) {
|
|
7024
|
-
|
|
7208
|
+
_context29.next = 8;
|
|
7025
7209
|
break;
|
|
7026
7210
|
}
|
|
7027
|
-
|
|
7211
|
+
_context29.next = 6;
|
|
7028
7212
|
return this.sendSlotManager.setCodecParameters(_internalMediaCore.MediaType.AudioMain, {
|
|
7029
7213
|
maxaveragebitrate: '64000',
|
|
7030
7214
|
maxplaybackrate: '48000'
|
|
7031
7215
|
});
|
|
7032
7216
|
case 6:
|
|
7033
|
-
|
|
7217
|
+
_context29.next = 10;
|
|
7034
7218
|
break;
|
|
7035
7219
|
case 8:
|
|
7036
|
-
|
|
7220
|
+
_context29.next = 10;
|
|
7037
7221
|
return this.sendSlotManager.deleteCodecParameters(_internalMediaCore.MediaType.AudioMain, ['maxaveragebitrate', 'maxplaybackrate']);
|
|
7038
7222
|
case 10:
|
|
7039
7223
|
case "end":
|
|
7040
|
-
return
|
|
7224
|
+
return _context29.stop();
|
|
7041
7225
|
}
|
|
7042
|
-
},
|
|
7226
|
+
}, _callee29, this);
|
|
7043
7227
|
}));
|
|
7044
|
-
function enableMusicMode(
|
|
7228
|
+
function enableMusicMode(_x25) {
|
|
7045
7229
|
return _enableMusicMode.apply(this, arguments);
|
|
7046
7230
|
}
|
|
7047
7231
|
return enableMusicMode;
|
|
@@ -7101,25 +7285,25 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7101
7285
|
}, {
|
|
7102
7286
|
key: "publishStream",
|
|
7103
7287
|
value: function () {
|
|
7104
|
-
var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
7105
|
-
return _regenerator.default.wrap(function
|
|
7106
|
-
while (1) switch (
|
|
7288
|
+
var _publishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee30(mediaType, stream) {
|
|
7289
|
+
return _regenerator.default.wrap(function _callee30$(_context30) {
|
|
7290
|
+
while (1) switch (_context30.prev = _context30.next) {
|
|
7107
7291
|
case 0:
|
|
7108
7292
|
if (stream) {
|
|
7109
|
-
|
|
7293
|
+
_context30.next = 2;
|
|
7110
7294
|
break;
|
|
7111
7295
|
}
|
|
7112
|
-
return
|
|
7296
|
+
return _context30.abrupt("return");
|
|
7113
7297
|
case 2:
|
|
7114
7298
|
if (!this.mediaProperties.webrtcMediaConnection) {
|
|
7115
|
-
|
|
7299
|
+
_context30.next = 7;
|
|
7116
7300
|
break;
|
|
7117
7301
|
}
|
|
7118
7302
|
if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
|
|
7119
|
-
|
|
7303
|
+
_context30.next = 6;
|
|
7120
7304
|
break;
|
|
7121
7305
|
}
|
|
7122
|
-
|
|
7306
|
+
_context30.next = 6;
|
|
7123
7307
|
return this.sendSlotManager.publishStream(mediaType, stream);
|
|
7124
7308
|
case 6:
|
|
7125
7309
|
this.emitPublishStateChangeEvent({
|
|
@@ -7130,11 +7314,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7130
7314
|
});
|
|
7131
7315
|
case 7:
|
|
7132
7316
|
case "end":
|
|
7133
|
-
return
|
|
7317
|
+
return _context30.stop();
|
|
7134
7318
|
}
|
|
7135
|
-
},
|
|
7319
|
+
}, _callee30, this);
|
|
7136
7320
|
}));
|
|
7137
|
-
function publishStream(
|
|
7321
|
+
function publishStream(_x26, _x27) {
|
|
7138
7322
|
return _publishStream.apply(this, arguments);
|
|
7139
7323
|
}
|
|
7140
7324
|
return publishStream;
|
|
@@ -7149,21 +7333,21 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7149
7333
|
}, {
|
|
7150
7334
|
key: "unpublishStream",
|
|
7151
7335
|
value: function () {
|
|
7152
|
-
var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
7153
|
-
return _regenerator.default.wrap(function
|
|
7154
|
-
while (1) switch (
|
|
7336
|
+
var _unpublishStream = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee31(mediaType, stream) {
|
|
7337
|
+
return _regenerator.default.wrap(function _callee31$(_context31) {
|
|
7338
|
+
while (1) switch (_context31.prev = _context31.next) {
|
|
7155
7339
|
case 0:
|
|
7156
7340
|
if (stream) {
|
|
7157
|
-
|
|
7341
|
+
_context31.next = 2;
|
|
7158
7342
|
break;
|
|
7159
7343
|
}
|
|
7160
|
-
return
|
|
7344
|
+
return _context31.abrupt("return");
|
|
7161
7345
|
case 2:
|
|
7162
7346
|
if (!(this.isMultistream && this.mediaProperties.webrtcMediaConnection)) {
|
|
7163
|
-
|
|
7347
|
+
_context31.next = 5;
|
|
7164
7348
|
break;
|
|
7165
7349
|
}
|
|
7166
|
-
|
|
7350
|
+
_context31.next = 5;
|
|
7167
7351
|
return this.sendSlotManager.unpublishStream(mediaType);
|
|
7168
7352
|
case 5:
|
|
7169
7353
|
this.emitPublishStateChangeEvent({
|
|
@@ -7174,11 +7358,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7174
7358
|
});
|
|
7175
7359
|
case 6:
|
|
7176
7360
|
case "end":
|
|
7177
|
-
return
|
|
7361
|
+
return _context31.stop();
|
|
7178
7362
|
}
|
|
7179
|
-
},
|
|
7363
|
+
}, _callee31, this);
|
|
7180
7364
|
}));
|
|
7181
|
-
function unpublishStream(
|
|
7365
|
+
function unpublishStream(_x28, _x29) {
|
|
7182
7366
|
return _unpublishStream.apply(this, arguments);
|
|
7183
7367
|
}
|
|
7184
7368
|
return unpublishStream;
|
|
@@ -7192,72 +7376,72 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7192
7376
|
}, {
|
|
7193
7377
|
key: "publishStreams",
|
|
7194
7378
|
value: function () {
|
|
7195
|
-
var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
7379
|
+
var _publishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32(streams) {
|
|
7196
7380
|
var _streams$screenShare, _streams$screenShare2, _streams$screenShare3, _streams$screenShare4;
|
|
7197
7381
|
var floorRequestNeeded, _streams$screenShare5;
|
|
7198
|
-
return _regenerator.default.wrap(function
|
|
7199
|
-
while (1) switch (
|
|
7382
|
+
return _regenerator.default.wrap(function _callee32$(_context32) {
|
|
7383
|
+
while (1) switch (_context32.prev = _context32.next) {
|
|
7200
7384
|
case 0:
|
|
7201
7385
|
this.checkMediaConnection();
|
|
7202
7386
|
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))) {
|
|
7203
|
-
|
|
7387
|
+
_context32.next = 3;
|
|
7204
7388
|
break;
|
|
7205
7389
|
}
|
|
7206
|
-
return
|
|
7390
|
+
return _context32.abrupt("return");
|
|
7207
7391
|
case 3:
|
|
7208
7392
|
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
|
|
7209
7393
|
if (!(this.isMultistream && (_streams$screenShare3 = streams.screenShare) !== null && _streams$screenShare3 !== void 0 && _streams$screenShare3.audio)) {
|
|
7210
|
-
|
|
7394
|
+
_context32.next = 8;
|
|
7211
7395
|
break;
|
|
7212
7396
|
}
|
|
7213
|
-
|
|
7397
|
+
_context32.next = 7;
|
|
7214
7398
|
return this.setLocalShareAudioStream(streams.screenShare.audio);
|
|
7215
7399
|
case 7:
|
|
7216
7400
|
floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
|
|
7217
7401
|
case 8:
|
|
7218
7402
|
if (!((_streams$screenShare4 = streams.screenShare) !== null && _streams$screenShare4 !== void 0 && _streams$screenShare4.video)) {
|
|
7219
|
-
|
|
7403
|
+
_context32.next = 12;
|
|
7220
7404
|
break;
|
|
7221
7405
|
}
|
|
7222
|
-
|
|
7406
|
+
_context32.next = 11;
|
|
7223
7407
|
return this.setLocalShareVideoStream((_streams$screenShare5 = streams.screenShare) === null || _streams$screenShare5 === void 0 ? void 0 : _streams$screenShare5.video);
|
|
7224
7408
|
case 11:
|
|
7225
7409
|
floorRequestNeeded = this.screenShareFloorState === ScreenShareFloorStatus.RELEASED;
|
|
7226
7410
|
case 12:
|
|
7227
7411
|
if (!streams.microphone) {
|
|
7228
|
-
|
|
7412
|
+
_context32.next = 15;
|
|
7229
7413
|
break;
|
|
7230
7414
|
}
|
|
7231
|
-
|
|
7415
|
+
_context32.next = 15;
|
|
7232
7416
|
return this.setLocalAudioStream(streams.microphone);
|
|
7233
7417
|
case 15:
|
|
7234
7418
|
if (!streams.camera) {
|
|
7235
|
-
|
|
7419
|
+
_context32.next = 18;
|
|
7236
7420
|
break;
|
|
7237
7421
|
}
|
|
7238
|
-
|
|
7422
|
+
_context32.next = 18;
|
|
7239
7423
|
return this.setLocalVideoStream(streams.camera);
|
|
7240
7424
|
case 18:
|
|
7241
7425
|
if (this.isMultistream) {
|
|
7242
|
-
|
|
7426
|
+
_context32.next = 21;
|
|
7243
7427
|
break;
|
|
7244
7428
|
}
|
|
7245
|
-
|
|
7429
|
+
_context32.next = 21;
|
|
7246
7430
|
return this.updateTranscodedMediaConnection();
|
|
7247
7431
|
case 21:
|
|
7248
7432
|
if (!floorRequestNeeded) {
|
|
7249
|
-
|
|
7433
|
+
_context32.next = 24;
|
|
7250
7434
|
break;
|
|
7251
7435
|
}
|
|
7252
|
-
|
|
7436
|
+
_context32.next = 24;
|
|
7253
7437
|
return this.enqueueScreenShareFloorRequest();
|
|
7254
7438
|
case 24:
|
|
7255
7439
|
case "end":
|
|
7256
|
-
return
|
|
7440
|
+
return _context32.stop();
|
|
7257
7441
|
}
|
|
7258
|
-
},
|
|
7442
|
+
}, _callee32, this);
|
|
7259
7443
|
}));
|
|
7260
|
-
function publishStreams(
|
|
7444
|
+
function publishStreams(_x30) {
|
|
7261
7445
|
return _publishStreams.apply(this, arguments);
|
|
7262
7446
|
}
|
|
7263
7447
|
return publishStreams;
|
|
@@ -7271,10 +7455,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7271
7455
|
}, {
|
|
7272
7456
|
key: "unpublishStreams",
|
|
7273
7457
|
value: function () {
|
|
7274
|
-
var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
7458
|
+
var _unpublishStreams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33(streams) {
|
|
7275
7459
|
var promises, _iterator, _step, stream;
|
|
7276
|
-
return _regenerator.default.wrap(function
|
|
7277
|
-
while (1) switch (
|
|
7460
|
+
return _regenerator.default.wrap(function _callee33$(_context33) {
|
|
7461
|
+
while (1) switch (_context33.prev = _context33.next) {
|
|
7278
7462
|
case 0:
|
|
7279
7463
|
this.checkMediaConnection();
|
|
7280
7464
|
promises = [];
|
|
@@ -7305,7 +7489,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7305
7489
|
if (!this.isMultistream) {
|
|
7306
7490
|
promises.push(this.updateTranscodedMediaConnection());
|
|
7307
7491
|
}
|
|
7308
|
-
|
|
7492
|
+
_context33.next = 7;
|
|
7309
7493
|
return _promise.default.all(promises);
|
|
7310
7494
|
case 7:
|
|
7311
7495
|
// we're allowing for the SDK to support just audio share as well
|
|
@@ -7320,11 +7504,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7320
7504
|
}
|
|
7321
7505
|
case 8:
|
|
7322
7506
|
case "end":
|
|
7323
|
-
return
|
|
7507
|
+
return _context33.stop();
|
|
7324
7508
|
}
|
|
7325
|
-
},
|
|
7509
|
+
}, _callee33, this);
|
|
7326
7510
|
}));
|
|
7327
|
-
function unpublishStreams(
|
|
7511
|
+
function unpublishStreams(_x31) {
|
|
7328
7512
|
return _unpublishStreams.apply(this, arguments);
|
|
7329
7513
|
}
|
|
7330
7514
|
return unpublishStreams;
|
|
@@ -7372,27 +7556,27 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7372
7556
|
}], [{
|
|
7373
7557
|
key: "handleDeviceLogging",
|
|
7374
7558
|
value: function () {
|
|
7375
|
-
var _handleDeviceLogging = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
7559
|
+
var _handleDeviceLogging = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34() {
|
|
7376
7560
|
var devices;
|
|
7377
|
-
return _regenerator.default.wrap(function
|
|
7378
|
-
while (1) switch (
|
|
7561
|
+
return _regenerator.default.wrap(function _callee34$(_context34) {
|
|
7562
|
+
while (1) switch (_context34.prev = _context34.next) {
|
|
7379
7563
|
case 0:
|
|
7380
|
-
|
|
7381
|
-
|
|
7564
|
+
_context34.prev = 0;
|
|
7565
|
+
_context34.next = 3;
|
|
7382
7566
|
return (0, _mediaHelpers.getDevices)();
|
|
7383
7567
|
case 3:
|
|
7384
|
-
devices =
|
|
7568
|
+
devices = _context34.sent;
|
|
7385
7569
|
_util.default.handleDeviceLogging(devices);
|
|
7386
|
-
|
|
7570
|
+
_context34.next = 9;
|
|
7387
7571
|
break;
|
|
7388
7572
|
case 7:
|
|
7389
|
-
|
|
7390
|
-
|
|
7573
|
+
_context34.prev = 7;
|
|
7574
|
+
_context34.t0 = _context34["catch"](0);
|
|
7391
7575
|
case 9:
|
|
7392
7576
|
case "end":
|
|
7393
|
-
return
|
|
7577
|
+
return _context34.stop();
|
|
7394
7578
|
}
|
|
7395
|
-
},
|
|
7579
|
+
}, _callee34, null, [[0, 7]]);
|
|
7396
7580
|
}));
|
|
7397
7581
|
function handleDeviceLogging() {
|
|
7398
7582
|
return _handleDeviceLogging.apply(this, arguments);
|