@webex/plugin-meetings 1.149.1 → 1.151.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants.js +14 -4
- package/dist/constants.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +88 -11
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/meeting/index.js +368 -42
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/request.js +17 -41
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting-info/index.js +1 -1
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/util.js +14 -0
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meetings/index.js +1 -1
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/util.js +0 -16
- package/dist/meetings/util.js.map +1 -1
- package/dist/members/index.js +72 -11
- package/dist/members/index.js.map +1 -1
- package/dist/metrics/config.js +6 -0
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/index.js +26 -1
- package/dist/metrics/index.js.map +1 -1
- package/dist/peer-connection-manager/index.js +1 -1
- package/dist/peer-connection-manager/index.js.map +1 -1
- package/package.json +5 -5
- package/src/constants.js +11 -2
- package/src/locus-info/mediaSharesUtils.js +84 -12
- package/src/meeting/index.js +350 -29
- package/src/meeting/request.js +50 -29
- package/src/meeting-info/index.js +4 -1
- package/src/meeting-info/util.js +13 -0
- package/src/meetings/index.js +1 -1
- package/src/meetings/util.js +0 -14
- package/src/members/index.js +80 -11
- package/src/metrics/config.js +6 -0
- package/src/metrics/index.js +23 -2
- package/src/peer-connection-manager/index.js +7 -2
- package/test/integration/spec/journey.js +177 -3
- package/test/integration/spec/space-meeting.js +33 -5
- package/test/unit/spec/meeting/index.js +547 -2
- package/test/utils/testUtils.js +18 -1
- package/test/utils/webex-test-users.js +2 -0
package/dist/meeting/index.js
CHANGED
|
@@ -1321,6 +1321,38 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1321
1321
|
});
|
|
1322
1322
|
}
|
|
1323
1323
|
|
|
1324
|
+
var localSDPGenRemoteSDPRecv = this.getLocalSDPGenRemoteSDPRecvDelay();
|
|
1325
|
+
|
|
1326
|
+
if (localSDPGenRemoteSDPRecv) {
|
|
1327
|
+
options.joinTimes = _objectSpread(_objectSpread({}, options.joinTimes), {}, {
|
|
1328
|
+
localSDPGenRemoteSDPRecv: localSDPGenRemoteSDPRecv
|
|
1329
|
+
});
|
|
1330
|
+
}
|
|
1331
|
+
|
|
1332
|
+
var callInitiateJoinReq = this.getCallInitiateJoinReq();
|
|
1333
|
+
|
|
1334
|
+
if (callInitiateJoinReq) {
|
|
1335
|
+
options.joinTimes = _objectSpread(_objectSpread({}, options.joinTimes), {}, {
|
|
1336
|
+
callInitiateJoinReq: callInitiateJoinReq
|
|
1337
|
+
});
|
|
1338
|
+
}
|
|
1339
|
+
|
|
1340
|
+
var joinReqResp = this.getJoinReqResp();
|
|
1341
|
+
|
|
1342
|
+
if (joinReqResp) {
|
|
1343
|
+
options.joinTimes = _objectSpread(_objectSpread({}, options.joinTimes), {}, {
|
|
1344
|
+
joinReqResp: joinReqResp
|
|
1345
|
+
});
|
|
1346
|
+
}
|
|
1347
|
+
|
|
1348
|
+
var getTotalJmt = this.getTotalJmt();
|
|
1349
|
+
|
|
1350
|
+
if (getTotalJmt) {
|
|
1351
|
+
options.joinTimes = _objectSpread(_objectSpread({}, options.joinTimes), {}, {
|
|
1352
|
+
getTotalJmt: getTotalJmt
|
|
1353
|
+
});
|
|
1354
|
+
}
|
|
1355
|
+
|
|
1324
1356
|
if (options.type === _constants.MQA_STATS.CA_TYPE) {
|
|
1325
1357
|
payload = _metrics.default.initMediaPayload(options.event, identifiers, options);
|
|
1326
1358
|
} else {
|
|
@@ -1580,7 +1612,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1580
1612
|
}
|
|
1581
1613
|
/**
|
|
1582
1614
|
* Set up the locus info media shares listener
|
|
1583
|
-
* update content sharing id value for members, and updates the member
|
|
1615
|
+
* update content and whiteboard sharing id value for members, and updates the member
|
|
1584
1616
|
* notifies consumer with members:content:update {activeContentSharingId, endedContentSharingId}
|
|
1585
1617
|
* @returns {undefined}
|
|
1586
1618
|
* @private
|
|
@@ -1597,10 +1629,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1597
1629
|
var _payload$previous, _payload$previous2;
|
|
1598
1630
|
|
|
1599
1631
|
var _payload$current = payload.current,
|
|
1600
|
-
|
|
1601
|
-
|
|
1632
|
+
contentShare = _payload$current.content,
|
|
1633
|
+
whiteboardShare = _payload$current.whiteboard;
|
|
1634
|
+
var previousContentShare = (_payload$previous = payload.previous) === null || _payload$previous === void 0 ? void 0 : _payload$previous.content;
|
|
1635
|
+
var previousWhiteboardShare = (_payload$previous2 = payload.previous) === null || _payload$previous2 === void 0 ? void 0 : _payload$previous2.whiteboard;
|
|
1602
1636
|
|
|
1603
|
-
if (
|
|
1637
|
+
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)) {
|
|
1604
1638
|
// nothing changed, so ignore
|
|
1605
1639
|
// (this happens when we steal presentation from remote)
|
|
1606
1640
|
return;
|
|
@@ -1608,10 +1642,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1608
1642
|
|
|
1609
1643
|
var newShareStatus = _this10.shareStatus; // REMOTE - check if remote started sharing
|
|
1610
1644
|
|
|
1611
|
-
if (_this10.selfId !==
|
|
1645
|
+
if (_this10.selfId !== contentShare.beneficiaryId && contentShare.disposition === _constants.FLOOR_ACTION.GRANTED) {
|
|
1646
|
+
// CONTENT - sharing content remote
|
|
1612
1647
|
newShareStatus = _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE;
|
|
1613
|
-
} // LOCAL - check if we started sharing
|
|
1614
|
-
else if (_this10.selfId ===
|
|
1648
|
+
} // LOCAL - check if we started sharing content
|
|
1649
|
+
else if (_this10.selfId === contentShare.beneficiaryId && contentShare.disposition === _constants.FLOOR_ACTION.GRANTED) {
|
|
1615
1650
|
var _this10$mediaProperti;
|
|
1616
1651
|
|
|
1617
1652
|
if (((_this10$mediaProperti = _this10.mediaProperties.shareTrack) === null || _this10$mediaProperti === void 0 ? void 0 : _this10$mediaProperti.readyState) === 'ended') {
|
|
@@ -1621,10 +1656,17 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1621
1656
|
_loggerProxy.default.logger.log('Meeting:index#setUpLocusMediaSharesListener --> Error stopping share: ', error);
|
|
1622
1657
|
});
|
|
1623
1658
|
} else {
|
|
1659
|
+
// CONTENT - sharing content local
|
|
1624
1660
|
newShareStatus = _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE;
|
|
1625
1661
|
}
|
|
1626
|
-
} //
|
|
1627
|
-
|
|
1662
|
+
} // If we did not hit the cases above, no one is sharng content, so we check if we are sharing whiteboard
|
|
1663
|
+
// There is no concept of local/remote share for whiteboard
|
|
1664
|
+
// It does not matter who requested to share the whiteboard, everyone gets the same view
|
|
1665
|
+
else if (whiteboardShare.disposition === _constants.FLOOR_ACTION.GRANTED) {
|
|
1666
|
+
// WHITEBOARD - sharing whiteboard
|
|
1667
|
+
newShareStatus = _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE;
|
|
1668
|
+
} // or if content share is either released or null and whiteboard share is either released or null, no one is sharing
|
|
1669
|
+
else if ((previousContentShare && contentShare.disposition === _constants.FLOOR_ACTION.RELEASED || contentShare.disposition === null) && (previousWhiteboardShare && whiteboardShare.disposition === _constants.FLOOR_ACTION.RELEASED || whiteboardShare.disposition === null)) {
|
|
1628
1670
|
newShareStatus = _constants.SHARE_STATUS.NO_SHARE;
|
|
1629
1671
|
}
|
|
1630
1672
|
|
|
@@ -1652,6 +1694,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1652
1694
|
|
|
1653
1695
|
break;
|
|
1654
1696
|
|
|
1697
|
+
case _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE:
|
|
1698
|
+
_triggerProxy.default.trigger(_this10, {
|
|
1699
|
+
file: 'meeting/index',
|
|
1700
|
+
function: 'stopWhiteboardShare'
|
|
1701
|
+
}, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_WHITEBOARD);
|
|
1702
|
+
|
|
1703
|
+
break;
|
|
1704
|
+
|
|
1655
1705
|
case _constants.SHARE_STATUS.NO_SHARE:
|
|
1656
1706
|
// nothing to do
|
|
1657
1707
|
break;
|
|
@@ -1671,20 +1721,20 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1671
1721
|
file: 'meetings/index',
|
|
1672
1722
|
function: 'remoteShare'
|
|
1673
1723
|
}, _constants.EVENT_TRIGGERS.MEETING_STARTED_SHARING_REMOTE, {
|
|
1674
|
-
memberId:
|
|
1724
|
+
memberId: contentShare.beneficiaryId
|
|
1675
1725
|
});
|
|
1676
1726
|
}; // if a remote participant is stealing the presentation from us
|
|
1677
1727
|
|
|
1678
1728
|
|
|
1679
|
-
if ((_this10$mediaProperti2 = _this10.mediaProperties.mediaDirection) !== null && _this10$mediaProperti2 !== void 0 && _this10$mediaProperti2.sendShare) {
|
|
1729
|
+
if (!((_this10$mediaProperti2 = _this10.mediaProperties.mediaDirection) !== null && _this10$mediaProperti2 !== void 0 && _this10$mediaProperti2.sendShare) || oldShareStatus === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE) {
|
|
1730
|
+
sendStartedSharingRemote();
|
|
1731
|
+
} else {
|
|
1680
1732
|
_this10.updateShare({
|
|
1681
1733
|
sendShare: false,
|
|
1682
1734
|
receiveShare: _this10.mediaProperties.mediaDirection.receiveShare
|
|
1683
1735
|
}).finally(function () {
|
|
1684
1736
|
sendStartedSharingRemote();
|
|
1685
1737
|
});
|
|
1686
|
-
} else {
|
|
1687
|
-
sendStartedSharingRemote();
|
|
1688
1738
|
}
|
|
1689
1739
|
|
|
1690
1740
|
break;
|
|
@@ -1703,6 +1753,22 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1703
1753
|
|
|
1704
1754
|
break;
|
|
1705
1755
|
|
|
1756
|
+
case _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE:
|
|
1757
|
+
_triggerProxy.default.trigger(_this10, {
|
|
1758
|
+
file: 'meeting/index',
|
|
1759
|
+
function: 'startWhiteboardShare'
|
|
1760
|
+
}, _constants.EVENT_TRIGGERS.MEETING_STARTED_SHARING_WHITEBOARD, {
|
|
1761
|
+
resourceUrl: whiteboardShare.resourceUrl,
|
|
1762
|
+
memberId: whiteboardShare.beneficiaryId
|
|
1763
|
+
});
|
|
1764
|
+
|
|
1765
|
+
_metrics.default.postEvent({
|
|
1766
|
+
event: _config.eventType.WHITEBOARD_SHARE_FLOOR_GRANTED,
|
|
1767
|
+
meeting: _this10
|
|
1768
|
+
});
|
|
1769
|
+
|
|
1770
|
+
break;
|
|
1771
|
+
|
|
1706
1772
|
case _constants.SHARE_STATUS.NO_SHARE:
|
|
1707
1773
|
// nothing to do
|
|
1708
1774
|
break;
|
|
@@ -1719,7 +1785,24 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1719
1785
|
file: 'meetings/index',
|
|
1720
1786
|
function: 'remoteShare'
|
|
1721
1787
|
}, _constants.EVENT_TRIGGERS.MEETING_STARTED_SHARING_REMOTE, {
|
|
1722
|
-
memberId:
|
|
1788
|
+
memberId: contentShare.beneficiaryId
|
|
1789
|
+
});
|
|
1790
|
+
|
|
1791
|
+
_this10.members.locusMediaSharesUpdate(payload);
|
|
1792
|
+
} else if (newShareStatus === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE) {
|
|
1793
|
+
// if we got here, then some remote participant has stolen
|
|
1794
|
+
// the presentation from another remote participant
|
|
1795
|
+
_triggerProxy.default.trigger(_this10, {
|
|
1796
|
+
file: 'meeting/index',
|
|
1797
|
+
function: 'startWhiteboardShare'
|
|
1798
|
+
}, _constants.EVENT_TRIGGERS.MEETING_STARTED_SHARING_WHITEBOARD, {
|
|
1799
|
+
resourceUrl: whiteboardShare.resourceUrl,
|
|
1800
|
+
memberId: whiteboardShare.beneficiaryId
|
|
1801
|
+
});
|
|
1802
|
+
|
|
1803
|
+
_metrics.default.postEvent({
|
|
1804
|
+
event: _config.eventType.WHITEBOARD_SHARE_FLOOR_GRANTED,
|
|
1805
|
+
meeting: _this10
|
|
1723
1806
|
});
|
|
1724
1807
|
|
|
1725
1808
|
_this10.members.locusMediaSharesUpdate(payload);
|
|
@@ -4078,7 +4161,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4078
4161
|
meetingId: _this37.id,
|
|
4079
4162
|
remoteQualityLevel: _this37.mediaProperties.remoteQualityLevel,
|
|
4080
4163
|
enableRtx: _this37.config.enableRtx,
|
|
4081
|
-
enableExtmap: _this37.config.enableExtmap
|
|
4164
|
+
enableExtmap: _this37.config.enableExtmap,
|
|
4165
|
+
setStartLocalSDPGenRemoteSDPRecvDelay: _this37.setStartLocalSDPGenRemoteSDPRecvDelay.bind(_this37)
|
|
4082
4166
|
}).then(function (peerConnection) {
|
|
4083
4167
|
return _this37.getDevices().then(function (devices) {
|
|
4084
4168
|
_util.default.handleDeviceLogging(devices);
|
|
@@ -4795,6 +4879,115 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4795
4879
|
return _promise.default.reject(error);
|
|
4796
4880
|
});
|
|
4797
4881
|
}
|
|
4882
|
+
/**
|
|
4883
|
+
* Start sharing whiteboard given channelUrl
|
|
4884
|
+
* @param {string} channelUrl whiteboard url
|
|
4885
|
+
* @param {String} resourceToken token created by authorize media injector
|
|
4886
|
+
* @returns {Promise}
|
|
4887
|
+
* @public
|
|
4888
|
+
* @memberof Meeting
|
|
4889
|
+
*/
|
|
4890
|
+
|
|
4891
|
+
}, {
|
|
4892
|
+
key: "startWhiteboardShare",
|
|
4893
|
+
value: function startWhiteboardShare(channelUrl, resourceToken) {
|
|
4894
|
+
var _this46 = this;
|
|
4895
|
+
|
|
4896
|
+
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
4897
|
+
return element.name === 'whiteboard';
|
|
4898
|
+
});
|
|
4899
|
+
|
|
4900
|
+
if (!channelUrl) {
|
|
4901
|
+
return _promise.default.reject(new _parameter.default('Cannot share without channelUrl.'));
|
|
4902
|
+
}
|
|
4903
|
+
|
|
4904
|
+
if (whiteboard) {
|
|
4905
|
+
_metrics.default.postEvent({
|
|
4906
|
+
event: _config.eventType.WHITEBOARD_SHARE_INITIATED,
|
|
4907
|
+
meeting: this
|
|
4908
|
+
});
|
|
4909
|
+
|
|
4910
|
+
var body = {
|
|
4911
|
+
disposition: _constants.FLOOR_ACTION.GRANTED,
|
|
4912
|
+
personUrl: this.locusInfo.self.url,
|
|
4913
|
+
deviceUrl: this.deviceUrl,
|
|
4914
|
+
uri: whiteboard.url,
|
|
4915
|
+
resourceUrl: channelUrl
|
|
4916
|
+
};
|
|
4917
|
+
|
|
4918
|
+
if (resourceToken) {
|
|
4919
|
+
body.resourceToken = resourceToken;
|
|
4920
|
+
}
|
|
4921
|
+
|
|
4922
|
+
return this.meetingRequest.changeMeetingFloor(body).then(function () {
|
|
4923
|
+
_this46.isSharing = false;
|
|
4924
|
+
return _promise.default.resolve();
|
|
4925
|
+
}).catch(function (error) {
|
|
4926
|
+
_loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
|
|
4927
|
+
|
|
4928
|
+
_metrics.default.sendOperationalMetric(_constants.METRICS_OPERATIONAL_MEASURES.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
|
|
4929
|
+
correlation_id: _this46.correlationId,
|
|
4930
|
+
locus_id: _this46.locusUrl.split('/').pop(),
|
|
4931
|
+
reason: error.message,
|
|
4932
|
+
stack: error.stack,
|
|
4933
|
+
board: {
|
|
4934
|
+
channelUrl: channelUrl
|
|
4935
|
+
}
|
|
4936
|
+
});
|
|
4937
|
+
|
|
4938
|
+
return _promise.default.reject(error);
|
|
4939
|
+
});
|
|
4940
|
+
}
|
|
4941
|
+
|
|
4942
|
+
return _promise.default.reject(new _parameter.default('Cannot share without whiteboard.'));
|
|
4943
|
+
}
|
|
4944
|
+
/**
|
|
4945
|
+
* Stop sharing whiteboard given channelUrl
|
|
4946
|
+
* @param {string} channelUrl whiteboard url
|
|
4947
|
+
* @returns {Promise}
|
|
4948
|
+
* @public
|
|
4949
|
+
* @memberof Meeting
|
|
4950
|
+
*/
|
|
4951
|
+
|
|
4952
|
+
}, {
|
|
4953
|
+
key: "stopWhiteboardShare",
|
|
4954
|
+
value: function stopWhiteboardShare(channelUrl) {
|
|
4955
|
+
var _this47 = this;
|
|
4956
|
+
|
|
4957
|
+
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
4958
|
+
return element.name === 'whiteboard';
|
|
4959
|
+
});
|
|
4960
|
+
|
|
4961
|
+
if (whiteboard) {
|
|
4962
|
+
_metrics.default.postEvent({
|
|
4963
|
+
event: _config.eventType.WHITEBOARD_SHARE_STOPPED,
|
|
4964
|
+
meeting: this
|
|
4965
|
+
});
|
|
4966
|
+
|
|
4967
|
+
return this.meetingRequest.changeMeetingFloor({
|
|
4968
|
+
disposition: _constants.FLOOR_ACTION.RELEASED,
|
|
4969
|
+
personUrl: this.locusInfo.self.url,
|
|
4970
|
+
deviceUrl: this.deviceUrl,
|
|
4971
|
+
uri: whiteboard.url
|
|
4972
|
+
}).catch(function (error) {
|
|
4973
|
+
_loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
|
|
4974
|
+
|
|
4975
|
+
_metrics.default.sendOperationalMetric(_constants.METRICS_OPERATIONAL_MEASURES.STOP_WHITEBOARD_SHARE_FAILURE, {
|
|
4976
|
+
correlation_id: _this47.correlationId,
|
|
4977
|
+
locus_id: _this47.locusUrl.split('/').pop(),
|
|
4978
|
+
reason: error.message,
|
|
4979
|
+
stack: error.stack,
|
|
4980
|
+
board: {
|
|
4981
|
+
channelUrl: channelUrl
|
|
4982
|
+
}
|
|
4983
|
+
});
|
|
4984
|
+
|
|
4985
|
+
return _promise.default.reject(error);
|
|
4986
|
+
}).finally(function () {});
|
|
4987
|
+
}
|
|
4988
|
+
|
|
4989
|
+
return _promise.default.reject(new _parameter.default('Cannot stop share without whiteboard.'));
|
|
4990
|
+
}
|
|
4798
4991
|
/**
|
|
4799
4992
|
* Start sharing content with server
|
|
4800
4993
|
* @returns {Promise} see #meetingRequest.changeMeetingFloor
|
|
@@ -4805,7 +4998,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4805
4998
|
}, {
|
|
4806
4999
|
key: "share",
|
|
4807
5000
|
value: function share() {
|
|
4808
|
-
var
|
|
5001
|
+
var _this48 = this;
|
|
4809
5002
|
|
|
4810
5003
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
|
4811
5004
|
return element.name === _constants.CONTENT;
|
|
@@ -4824,14 +5017,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4824
5017
|
uri: content.url,
|
|
4825
5018
|
resourceUrl: this.resourceUrl
|
|
4826
5019
|
}).then(function () {
|
|
4827
|
-
|
|
5020
|
+
_this48.isSharing = true;
|
|
4828
5021
|
return _promise.default.resolve();
|
|
4829
5022
|
}).catch(function (error) {
|
|
4830
5023
|
_loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
|
|
4831
5024
|
|
|
4832
5025
|
_metrics.default.sendOperationalMetric(_constants.METRICS_OPERATIONAL_MEASURES.MEETING_SHARE_FAILURE, {
|
|
4833
|
-
correlation_id:
|
|
4834
|
-
locus_id:
|
|
5026
|
+
correlation_id: _this48.correlationId,
|
|
5027
|
+
locus_id: _this48.locusUrl.split('/').pop(),
|
|
4835
5028
|
reason: error.message,
|
|
4836
5029
|
stack: error.stack
|
|
4837
5030
|
});
|
|
@@ -4870,7 +5063,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4870
5063
|
}, {
|
|
4871
5064
|
key: "stopFloorRequest",
|
|
4872
5065
|
value: function stopFloorRequest() {
|
|
4873
|
-
var
|
|
5066
|
+
var _this49 = this;
|
|
4874
5067
|
|
|
4875
5068
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
|
4876
5069
|
return element.name === _constants.CONTENT;
|
|
@@ -4884,7 +5077,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4884
5077
|
|
|
4885
5078
|
_media.default.stopTracks(this.mediaProperties.shareTrack);
|
|
4886
5079
|
|
|
4887
|
-
if (
|
|
5080
|
+
if (content.floor.beneficiary.id !== this.selfId) {
|
|
4888
5081
|
// remote participant started sharing and caused our sharing to stop, we don't want to send any floor action request in that case
|
|
4889
5082
|
this.isSharing = false;
|
|
4890
5083
|
return _promise.default.resolve();
|
|
@@ -4900,15 +5093,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4900
5093
|
_loggerProxy.default.logger.error('Meeting:index#stopFloorRequest --> Error ', error);
|
|
4901
5094
|
|
|
4902
5095
|
_metrics.default.sendOperationalMetric(_constants.METRICS_OPERATIONAL_MEASURES.STOP_FLOOR_REQUEST_FAILURE, {
|
|
4903
|
-
correlation_id:
|
|
4904
|
-
locus_id:
|
|
5096
|
+
correlation_id: _this49.correlationId,
|
|
5097
|
+
locus_id: _this49.locusUrl.split('/').pop(),
|
|
4905
5098
|
reason: error.message,
|
|
4906
5099
|
stack: error.stack
|
|
4907
5100
|
});
|
|
4908
5101
|
|
|
4909
5102
|
return _promise.default.reject(error);
|
|
4910
5103
|
}).finally(function () {
|
|
4911
|
-
|
|
5104
|
+
_this49.isSharing = false;
|
|
4912
5105
|
});
|
|
4913
5106
|
}
|
|
4914
5107
|
|
|
@@ -5044,7 +5237,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5044
5237
|
}, {
|
|
5045
5238
|
key: "changeVideoLayout",
|
|
5046
5239
|
value: function changeVideoLayout(layoutType) {
|
|
5047
|
-
var
|
|
5240
|
+
var _this50 = this;
|
|
5048
5241
|
|
|
5049
5242
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
5050
5243
|
var main = renderInfo.main,
|
|
@@ -5107,7 +5300,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5107
5300
|
content: layoutInfo.content
|
|
5108
5301
|
}).then(function (response) {
|
|
5109
5302
|
if (response && response.body && response.body.locus) {
|
|
5110
|
-
|
|
5303
|
+
_this50.locusInfo.onFullLocus(response.body.locus);
|
|
5111
5304
|
}
|
|
5112
5305
|
}).catch(function (error) {
|
|
5113
5306
|
_loggerProxy.default.logger.error('Meeting:index#changeVideoLayout --> Error ', error);
|
|
@@ -5124,7 +5317,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5124
5317
|
}, {
|
|
5125
5318
|
key: "setLocalVideoQuality",
|
|
5126
5319
|
value: function setLocalVideoQuality(level) {
|
|
5127
|
-
var
|
|
5320
|
+
var _this51 = this;
|
|
5128
5321
|
|
|
5129
5322
|
_loggerProxy.default.logger.log("Meeting:index#setLocalVideoQuality --> Setting quality to ".concat(level));
|
|
5130
5323
|
|
|
@@ -5154,7 +5347,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5154
5347
|
var _ref11 = (0, _slicedToArray2.default)(_ref10, 1),
|
|
5155
5348
|
localStream = _ref11[0];
|
|
5156
5349
|
|
|
5157
|
-
return
|
|
5350
|
+
return _this51.updateVideo({
|
|
5158
5351
|
sendVideo: true,
|
|
5159
5352
|
receiveVideo: true,
|
|
5160
5353
|
stream: localStream
|
|
@@ -5202,7 +5395,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5202
5395
|
}, {
|
|
5203
5396
|
key: "setMeetingQuality",
|
|
5204
5397
|
value: function setMeetingQuality(level) {
|
|
5205
|
-
var
|
|
5398
|
+
var _this52 = this;
|
|
5206
5399
|
|
|
5207
5400
|
_loggerProxy.default.logger.log("Meeting:index#setMeetingQuality --> Setting quality to ".concat(level));
|
|
5208
5401
|
|
|
@@ -5227,18 +5420,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5227
5420
|
receiveVideo = _this$mediaProperties4.receiveVideo,
|
|
5228
5421
|
sendVideo = _this$mediaProperties4.sendVideo;
|
|
5229
5422
|
return (sendVideo ? this.setLocalVideoQuality(level) : _promise.default.resolve()).then(function () {
|
|
5230
|
-
return receiveAudio || receiveVideo ?
|
|
5423
|
+
return receiveAudio || receiveVideo ? _this52.setRemoteQualityLevel(level) : _promise.default.resolve();
|
|
5231
5424
|
}).catch(function (error) {
|
|
5232
5425
|
// From troubleshooting it seems that the stream itself doesn't change the max-fs if the peer connection isn't stable
|
|
5233
|
-
|
|
5426
|
+
_this52.mediaProperties.setLocalQualityLevel(previousLevel.local);
|
|
5234
5427
|
|
|
5235
|
-
|
|
5428
|
+
_this52.mediaProperties.setRemoteQualityLevel(previousLevel.remote);
|
|
5236
5429
|
|
|
5237
5430
|
_loggerProxy.default.logger.error("Meeting:index#setMeetingQuality --> ".concat(error.message));
|
|
5238
5431
|
|
|
5239
5432
|
_metrics.default.sendOperationalMetric(_constants.METRICS_OPERATIONAL_MEASURES.SET_MEETING_QUALITY_FAILURE, {
|
|
5240
|
-
correlation_id:
|
|
5241
|
-
locus_id:
|
|
5433
|
+
correlation_id: _this52.correlationId,
|
|
5434
|
+
locus_id: _this52.locusUrl.split('/').pop(),
|
|
5242
5435
|
reason: error.message,
|
|
5243
5436
|
stack: error.stack
|
|
5244
5437
|
}, {
|
|
@@ -5262,7 +5455,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5262
5455
|
}, {
|
|
5263
5456
|
key: "shareScreen",
|
|
5264
5457
|
value: function shareScreen() {
|
|
5265
|
-
var
|
|
5458
|
+
var _this53 = this;
|
|
5266
5459
|
|
|
5267
5460
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
5268
5461
|
|
|
@@ -5274,9 +5467,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5274
5467
|
}, options);
|
|
5275
5468
|
|
|
5276
5469
|
return _media.default.getDisplayMedia(shareConstraints, this.config).then(function (shareStream) {
|
|
5277
|
-
return
|
|
5470
|
+
return _this53.updateShare({
|
|
5278
5471
|
sendShare: true,
|
|
5279
|
-
receiveShare:
|
|
5472
|
+
receiveShare: _this53.mediaProperties.mediaDirection.receiveShare,
|
|
5280
5473
|
stream: shareStream
|
|
5281
5474
|
});
|
|
5282
5475
|
}).catch(function (error) {
|
|
@@ -5288,8 +5481,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5288
5481
|
// TODO: The getDisplayMedia errors need to be moved inside `media.getDisplayMedia`
|
|
5289
5482
|
var metricName = _constants.METRICS_OPERATIONAL_MEASURES.GET_DISPLAY_MEDIA_FAILURE;
|
|
5290
5483
|
var data = {
|
|
5291
|
-
correlation_id:
|
|
5292
|
-
locus_id:
|
|
5484
|
+
correlation_id: _this53.correlationId,
|
|
5485
|
+
locus_id: _this53.locusUrl.split('/').pop(),
|
|
5293
5486
|
reason: error.message,
|
|
5294
5487
|
stack: error.stack
|
|
5295
5488
|
};
|
|
@@ -5421,9 +5614,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5421
5614
|
this["endSendingMediaDelay".concat(typeMedia)] = undefined;
|
|
5422
5615
|
}
|
|
5423
5616
|
/**
|
|
5424
|
-
|
|
5425
|
-
|
|
5426
|
-
|
|
5617
|
+
* @param {string} typeMedia 'audio' or 'video'
|
|
5618
|
+
* @returns {undefined}
|
|
5619
|
+
*/
|
|
5427
5620
|
|
|
5428
5621
|
}, {
|
|
5429
5622
|
key: "setEndSendingMediaDelay",
|
|
@@ -5442,6 +5635,139 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5442
5635
|
var end = this["endSendingMediaDelay".concat(typeMedia)];
|
|
5443
5636
|
return start && end ? end - start : undefined;
|
|
5444
5637
|
}
|
|
5638
|
+
/**
|
|
5639
|
+
*
|
|
5640
|
+
* @returns {undefined}
|
|
5641
|
+
*/
|
|
5642
|
+
|
|
5643
|
+
}, {
|
|
5644
|
+
key: "setStartLocalSDPGenRemoteSDPRecvDelay",
|
|
5645
|
+
value: function setStartLocalSDPGenRemoteSDPRecvDelay() {
|
|
5646
|
+
if (!this.startLocalSDPGenRemoteSDPRecvDelay) {
|
|
5647
|
+
this.startLocalSDPGenRemoteSDPRecvDelay = performance.now();
|
|
5648
|
+
this.endLocalSDPGenRemoteSDPRecvDelay = undefined;
|
|
5649
|
+
}
|
|
5650
|
+
}
|
|
5651
|
+
/**
|
|
5652
|
+
*
|
|
5653
|
+
* @returns {undefined}
|
|
5654
|
+
*/
|
|
5655
|
+
|
|
5656
|
+
}, {
|
|
5657
|
+
key: "setEndLocalSDPGenRemoteSDPRecvDelay",
|
|
5658
|
+
value: function setEndLocalSDPGenRemoteSDPRecvDelay() {
|
|
5659
|
+
if (!this.endLocalSDPGenRemoteSDPRecvDelay) {
|
|
5660
|
+
this.endLocalSDPGenRemoteSDPRecvDelay = performance.now();
|
|
5661
|
+
}
|
|
5662
|
+
}
|
|
5663
|
+
/**
|
|
5664
|
+
*
|
|
5665
|
+
* @returns {string} duration between local SDP generation and remote SDP reception
|
|
5666
|
+
*/
|
|
5667
|
+
|
|
5668
|
+
}, {
|
|
5669
|
+
key: "getLocalSDPGenRemoteSDPRecvDelay",
|
|
5670
|
+
value: function getLocalSDPGenRemoteSDPRecvDelay() {
|
|
5671
|
+
var start = this.startLocalSDPGenRemoteSDPRecvDelay;
|
|
5672
|
+
var end = this.endLocalSDPGenRemoteSDPRecvDelay;
|
|
5673
|
+
|
|
5674
|
+
if (start && end) {
|
|
5675
|
+
var calculatedDelay = end - start;
|
|
5676
|
+
return calculatedDelay > _constants.METRICS_JOIN_TIMES_MAX_DURATION ? undefined : calculatedDelay;
|
|
5677
|
+
}
|
|
5678
|
+
|
|
5679
|
+
return undefined;
|
|
5680
|
+
}
|
|
5681
|
+
/**
|
|
5682
|
+
*
|
|
5683
|
+
* @returns {undefined}
|
|
5684
|
+
*/
|
|
5685
|
+
|
|
5686
|
+
}, {
|
|
5687
|
+
key: "setStartCallInitiateJoinReq",
|
|
5688
|
+
value: function setStartCallInitiateJoinReq() {
|
|
5689
|
+
this.startCallInitiateJoinReq = performance.now();
|
|
5690
|
+
this.endCallInitiateJoinReq = undefined;
|
|
5691
|
+
}
|
|
5692
|
+
/**
|
|
5693
|
+
*
|
|
5694
|
+
* @returns {undefined}
|
|
5695
|
+
*/
|
|
5696
|
+
|
|
5697
|
+
}, {
|
|
5698
|
+
key: "setEndCallInitiateJoinReq",
|
|
5699
|
+
value: function setEndCallInitiateJoinReq() {
|
|
5700
|
+
this.endCallInitiateJoinReq = performance.now();
|
|
5701
|
+
}
|
|
5702
|
+
/**
|
|
5703
|
+
*
|
|
5704
|
+
* @returns {string} duration between call initiate and sending join request to locus
|
|
5705
|
+
*/
|
|
5706
|
+
|
|
5707
|
+
}, {
|
|
5708
|
+
key: "getCallInitiateJoinReq",
|
|
5709
|
+
value: function getCallInitiateJoinReq() {
|
|
5710
|
+
var start = this.startCallInitiateJoinReq;
|
|
5711
|
+
var end = this.endCallInitiateJoinReq;
|
|
5712
|
+
|
|
5713
|
+
if (start && end) {
|
|
5714
|
+
var calculatedDelay = end - start;
|
|
5715
|
+
return calculatedDelay > _constants.METRICS_JOIN_TIMES_MAX_DURATION ? undefined : calculatedDelay;
|
|
5716
|
+
}
|
|
5717
|
+
|
|
5718
|
+
return undefined;
|
|
5719
|
+
}
|
|
5720
|
+
/**
|
|
5721
|
+
*
|
|
5722
|
+
* @returns {undefined}
|
|
5723
|
+
*/
|
|
5724
|
+
|
|
5725
|
+
}, {
|
|
5726
|
+
key: "setStartJoinReqResp",
|
|
5727
|
+
value: function setStartJoinReqResp() {
|
|
5728
|
+
this.startJoinReqResp = performance.now();
|
|
5729
|
+
this.endJoinReqResp = undefined;
|
|
5730
|
+
}
|
|
5731
|
+
/**
|
|
5732
|
+
*
|
|
5733
|
+
* @returns {undefined}
|
|
5734
|
+
*/
|
|
5735
|
+
|
|
5736
|
+
}, {
|
|
5737
|
+
key: "setEndJoinReqResp",
|
|
5738
|
+
value: function setEndJoinReqResp() {
|
|
5739
|
+
this.endJoinReqResp = performance.now();
|
|
5740
|
+
}
|
|
5741
|
+
/**
|
|
5742
|
+
*
|
|
5743
|
+
* @returns {string} duration between sending locus join request and receiving join response
|
|
5744
|
+
*/
|
|
5745
|
+
|
|
5746
|
+
}, {
|
|
5747
|
+
key: "getJoinReqResp",
|
|
5748
|
+
value: function getJoinReqResp() {
|
|
5749
|
+
var start = this.startJoinReqResp;
|
|
5750
|
+
var end = this.endJoinReqResp;
|
|
5751
|
+
|
|
5752
|
+
if (start && end) {
|
|
5753
|
+
var calculatedDelay = end - start;
|
|
5754
|
+
return calculatedDelay > _constants.METRICS_JOIN_TIMES_MAX_DURATION ? undefined : calculatedDelay;
|
|
5755
|
+
}
|
|
5756
|
+
|
|
5757
|
+
return undefined;
|
|
5758
|
+
}
|
|
5759
|
+
/**
|
|
5760
|
+
*
|
|
5761
|
+
* @returns {string} duration between call initiate and successful locus join (even if it is in lobby)
|
|
5762
|
+
*/
|
|
5763
|
+
|
|
5764
|
+
}, {
|
|
5765
|
+
key: "getTotalJmt",
|
|
5766
|
+
value: function getTotalJmt() {
|
|
5767
|
+
var start = this.startCallInitiateJoinReq;
|
|
5768
|
+
var end = this.endJoinReqResp;
|
|
5769
|
+
return start && end ? end - start : undefined;
|
|
5770
|
+
}
|
|
5445
5771
|
}]);
|
|
5446
5772
|
return Meeting;
|
|
5447
5773
|
}(_webexCore.StatelessWebexPlugin);
|