@webex/plugin-meetings 3.9.0-next.2 → 3.9.0-next.20
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/constants.js +2 -0
- package/dist/constants.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/index.js +38 -10
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/parser.js +4 -1
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/media/properties.js +53 -5
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +2 -0
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +189 -122
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +2 -5
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +25 -0
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +30 -11
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +29 -21
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meetings/index.js +31 -25
- package/dist/meetings/index.js.map +1 -1
- package/dist/member/types.js.map +1 -1
- package/dist/members/collection.js +13 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +42 -20
- package/dist/members/index.js.map +1 -1
- package/dist/members/util.js +7 -2
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +2 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/reachability/index.js +3 -3
- package/dist/reachability/index.js.map +1 -1
- package/dist/types/constants.d.ts +2 -0
- package/dist/types/locus-info/index.d.ts +54 -1
- package/dist/types/media/properties.d.ts +21 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +2 -0
- package/dist/types/meeting/index.d.ts +11 -1
- package/dist/types/meeting/request.d.ts +9 -0
- package/dist/types/meeting/util.d.ts +10 -3
- package/dist/types/meeting-info/meeting-info-v2.d.ts +6 -3
- package/dist/types/meetings/index.d.ts +3 -1
- package/dist/types/member/types.d.ts +1 -0
- package/dist/types/members/collection.d.ts +6 -0
- package/dist/types/members/index.d.ts +12 -2
- package/dist/types/members/util.d.ts +6 -3
- package/dist/types/metrics/constants.d.ts +1 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +16 -16
- package/src/constants.ts +2 -0
- package/src/locus-info/index.ts +84 -9
- package/src/locus-info/parser.ts +5 -1
- package/src/media/properties.ts +43 -0
- package/src/meeting/in-meeting-actions.ts +4 -0
- package/src/meeting/index.ts +91 -4
- package/src/meeting/muteState.ts +2 -6
- package/src/meeting/request.ts +23 -0
- package/src/meeting/util.ts +41 -20
- package/src/meeting-info/meeting-info-v2.ts +24 -5
- package/src/meetings/index.ts +9 -3
- package/src/member/types.ts +1 -0
- package/src/members/collection.ts +11 -0
- package/src/members/index.ts +38 -5
- package/src/members/util.ts +18 -2
- package/src/metrics/constants.ts +1 -0
- package/src/reachability/index.ts +3 -3
- package/test/unit/spec/locus-info/index.js +30 -15
- package/test/unit/spec/locus-info/parser.js +3 -2
- package/test/unit/spec/media/properties.ts +137 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +2 -0
- package/test/unit/spec/meeting/index.js +255 -27
- package/test/unit/spec/meeting/muteState.js +32 -6
- package/test/unit/spec/meeting/request.js +21 -0
- package/test/unit/spec/meeting/utils.js +45 -16
- package/test/unit/spec/meeting-info/meetinginfov2.js +8 -3
- package/test/unit/spec/meetings/index.js +10 -1
- package/test/unit/spec/members/collection.js +120 -0
- package/test/unit/spec/members/index.js +72 -3
- package/test/unit/spec/members/request.js +55 -0
- package/test/unit/spec/members/utils.js +116 -14
- package/test/unit/spec/reachability/index.ts +158 -3
package/dist/meeting/index.js
CHANGED
@@ -476,6 +476,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
476
476
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "shareStatus", void 0);
|
477
477
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "screenShareFloorState", void 0);
|
478
478
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "statsAnalyzer", void 0);
|
479
|
+
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "statsMonitor", void 0);
|
479
480
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "transcription", void 0);
|
480
481
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "updateMediaConnections", void 0);
|
481
482
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "userDisplayHints", void 0);
|
@@ -948,6 +949,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
948
949
|
// @ts-ignore
|
949
950
|
_this.webex.internal.newMetrics.submitClientEvent({
|
950
951
|
name: 'client.ice.start',
|
952
|
+
payload: {
|
953
|
+
// @ts-ignore
|
954
|
+
labels: _util2.default.getCaEventLabelsForIpVersion(_this.webex)
|
955
|
+
},
|
951
956
|
options: {
|
952
957
|
meetingId: _this.id
|
953
958
|
}
|
@@ -1072,10 +1077,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1072
1077
|
}
|
1073
1078
|
}
|
1074
1079
|
|
1075
|
-
// Count members that are in the meeting.
|
1080
|
+
// Count members that are in the meeting or in the lobby.
|
1076
1081
|
var members = _this.getMembers().membersCollection.members;
|
1077
1082
|
event.data.intervalMetadata.meetingUserCount = (0, _values.default)(members).filter(function (member) {
|
1078
|
-
return member.isInMeeting;
|
1083
|
+
return member.isInMeeting || member.isInLobby;
|
1079
1084
|
}).length;
|
1080
1085
|
|
1081
1086
|
// @ts-ignore
|
@@ -1966,6 +1971,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1966
1971
|
* @memberof Meeting
|
1967
1972
|
*/
|
1968
1973
|
_this.networkQualityMonitor = null;
|
1974
|
+
/**
|
1975
|
+
* @instance
|
1976
|
+
* @type {StatsMonitor}
|
1977
|
+
* @private
|
1978
|
+
* @memberof Meeting
|
1979
|
+
*/
|
1980
|
+
_this.statsMonitor = null;
|
1969
1981
|
/**
|
1970
1982
|
* Indicates network status of the webrtc media connection
|
1971
1983
|
* @instance
|
@@ -2601,11 +2613,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
2601
2613
|
key: "fetchMeetingInfoInternal",
|
2602
2614
|
value: (function () {
|
2603
2615
|
var _fetchMeetingInfoInternal = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(_ref8) {
|
2604
|
-
var destination, destinationType, _ref8$password, password, _ref8$captchaCode, captchaCode, _ref8$extraParams, extraParams, _ref8$sendCAevents, sendCAevents, _ref8$registrationId, registrationId, captchaInfo, info, _err$body, _err$body2;
|
2616
|
+
var destination, destinationType, _ref8$password, password, _ref8$captchaCode, captchaCode, _ref8$extraParams, extraParams, _ref8$sendCAevents, sendCAevents, _ref8$registrationId, registrationId, _ref8$classificationI, classificationId, captchaInfo, info, _err$body, _err$body2;
|
2605
2617
|
return _regenerator.default.wrap(function _callee5$(_context5) {
|
2606
2618
|
while (1) switch (_context5.prev = _context5.next) {
|
2607
2619
|
case 0:
|
2608
|
-
destination = _ref8.destination, destinationType = _ref8.destinationType, _ref8$password = _ref8.password, password = _ref8$password === void 0 ? null : _ref8$password, _ref8$captchaCode = _ref8.captchaCode, captchaCode = _ref8$captchaCode === void 0 ? null : _ref8$captchaCode, _ref8$extraParams = _ref8.extraParams, extraParams = _ref8$extraParams === void 0 ? {} : _ref8$extraParams, _ref8$sendCAevents = _ref8.sendCAevents, sendCAevents = _ref8$sendCAevents === void 0 ? false : _ref8$sendCAevents, _ref8$registrationId = _ref8.registrationId, registrationId = _ref8$registrationId === void 0 ? null : _ref8$registrationId;
|
2620
|
+
destination = _ref8.destination, destinationType = _ref8.destinationType, _ref8$password = _ref8.password, password = _ref8$password === void 0 ? null : _ref8$password, _ref8$captchaCode = _ref8.captchaCode, captchaCode = _ref8$captchaCode === void 0 ? null : _ref8$captchaCode, _ref8$extraParams = _ref8.extraParams, extraParams = _ref8$extraParams === void 0 ? {} : _ref8$extraParams, _ref8$sendCAevents = _ref8.sendCAevents, sendCAevents = _ref8$sendCAevents === void 0 ? false : _ref8$sendCAevents, _ref8$registrationId = _ref8.registrationId, registrationId = _ref8$registrationId === void 0 ? null : _ref8$registrationId, _ref8$classificationI = _ref8.classificationId, classificationId = _ref8$classificationI === void 0 ? null : _ref8$classificationI;
|
2609
2621
|
_context5.prev = 1;
|
2610
2622
|
captchaInfo = captchaCode ? {
|
2611
2623
|
code: captchaCode,
|
@@ -2617,7 +2629,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
2617
2629
|
this.config.installedOrgID, this.locusId, extraParams, {
|
2618
2630
|
meetingId: this.id,
|
2619
2631
|
sendCAevents: sendCAevents
|
2620
|
-
}, registrationId);
|
2632
|
+
}, registrationId, null, classificationId);
|
2621
2633
|
case 5:
|
2622
2634
|
info = _context5.sent;
|
2623
2635
|
this.parseMeetingInfo(info === null || info === void 0 ? void 0 : info.body, this.destination, info === null || info === void 0 ? void 0 : info.errors);
|
@@ -3752,14 +3764,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3752
3764
|
break;
|
3753
3765
|
case 28:
|
3754
3766
|
sendStartedSharingRemote = function sendStartedSharingRemote() {
|
3767
|
+
var _this15$locusInfo2, _this15$locusInfo2$in, _this15$webinar2;
|
3755
3768
|
_this15.remoteShareInstanceId = contentShare.shareInstanceId;
|
3756
3769
|
_this15.shareCAEventSentStatus.receiveStart = false;
|
3757
3770
|
_this15.shareCAEventSentStatus.receiveStop = false;
|
3771
|
+
var finalBeneficiaryId = contentShare.beneficiaryId;
|
3772
|
+
// In case of attendee in webinar, the whiteboard is shared by other participants
|
3773
|
+
if ((_this15$locusInfo2 = _this15.locusInfo) !== null && _this15$locusInfo2 !== void 0 && (_this15$locusInfo2$in = _this15$locusInfo2.info) !== null && _this15$locusInfo2$in !== void 0 && _this15$locusInfo2$in.isWebinar && (_this15$webinar2 = _this15.webinar) !== null && _this15$webinar2 !== void 0 && _this15$webinar2.selfIsAttendee) {
|
3774
|
+
if (!finalBeneficiaryId && whiteboardShare.beneficiaryId) {
|
3775
|
+
finalBeneficiaryId = whiteboardShare.beneficiaryId;
|
3776
|
+
}
|
3777
|
+
}
|
3758
3778
|
_triggerProxy.default.trigger(_this15, {
|
3759
3779
|
file: 'meetings/index',
|
3760
3780
|
function: 'remoteShare'
|
3761
3781
|
}, _constants.EVENT_TRIGGERS.MEETING_STARTED_SHARING_REMOTE, {
|
3762
|
-
memberId:
|
3782
|
+
memberId: finalBeneficiaryId,
|
3763
3783
|
url: contentShare.url,
|
3764
3784
|
shareInstanceId: _this15.remoteShareInstanceId,
|
3765
3785
|
annotationInfo: contentShare.annotation,
|
@@ -4699,6 +4719,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4699
4719
|
isLocalRecordingPaused: _util2.default.isLocalRecordingPaused(this.userDisplayHints),
|
4700
4720
|
isManualCaptionActive: _util2.default.isManualCaptionActive(this.userDisplayHints),
|
4701
4721
|
isSaveTranscriptsEnabled: _util2.default.isSaveTranscriptsEnabled(this.userDisplayHints),
|
4722
|
+
isSpokenLanguageAutoDetectionEnabled: _util2.default.isSpokenLanguageAutoDetectionEnabled(this.userDisplayHints),
|
4702
4723
|
isWebexAssistantActive: _util2.default.isWebexAssistantActive(this.userDisplayHints),
|
4703
4724
|
canViewCaptionPanel: _util2.default.canViewCaptionPanel(this.userDisplayHints),
|
4704
4725
|
isRealTimeTranslationEnabled: _util2.default.isRealTimeTranslationEnabled(this.userDisplayHints),
|
@@ -7079,14 +7100,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7079
7100
|
}, {
|
7080
7101
|
key: "createStatsAnalyzer",
|
7081
7102
|
value: function createStatsAnalyzer() {
|
7103
|
+
var _this44 = this;
|
7082
7104
|
// @ts-ignore - config coming from registerPlugin
|
7083
7105
|
if (this.config.stats.enableStatsAnalyzer) {
|
7084
7106
|
// @ts-ignore - config coming from registerPlugin
|
7085
7107
|
this.networkQualityMonitor = new _internalMediaCore.NetworkQualityMonitor(this.config.stats);
|
7108
|
+
this.statsMonitor = new _internalMediaCore.StatsMonitor();
|
7086
7109
|
this.statsAnalyzer = new _internalMediaCore.StatsAnalyzer({
|
7087
7110
|
// @ts-ignore - config coming from registerPlugin
|
7088
7111
|
config: this.config.stats,
|
7089
7112
|
networkQualityMonitor: this.networkQualityMonitor,
|
7113
|
+
statsMonitor: this.statsMonitor,
|
7090
7114
|
isMultistream: this.isMultistream
|
7091
7115
|
});
|
7092
7116
|
this.shareCAEventSentStatus = {
|
@@ -7097,6 +7121,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7097
7121
|
};
|
7098
7122
|
this.setupStatsAnalyzerEventHandlers();
|
7099
7123
|
this.networkQualityMonitor.on(_internalMediaCore.NetworkQualityEventNames.NETWORK_QUALITY, this.sendNetworkQualityEvent.bind(this));
|
7124
|
+
this.statsMonitor.on(_internalMediaCore.StatsMonitorEventNames.INBOUND_AUDIO_ISSUE, function (data) {
|
7125
|
+
// Before forwarding any inbound audio issues to the app, make sure that we have at least one other
|
7126
|
+
// participant in the meeting with unmuted audio.
|
7127
|
+
// We don't check this.mediaProperties.mediaDirection here, because that's already handled in statsAnalyzer,
|
7128
|
+
// so we won't get this event if we are not setup to receive any audio
|
7129
|
+
var atLeastOneUnmutedOtherMember = (0, _values.default)(_this44.members.membersCollection.getAll()).find(function (member) {
|
7130
|
+
return !member.isSelf && !member.isPairedWithSelf && !member.isAudioMuted;
|
7131
|
+
});
|
7132
|
+
if (atLeastOneUnmutedOtherMember) {
|
7133
|
+
_this44.mediaProperties.sendMediaIssueMetric('inbound_audio', data.issueSubType, _this44.correlationId);
|
7134
|
+
_triggerProxy.default.trigger(_this44, {
|
7135
|
+
file: 'meeting/index',
|
7136
|
+
function: 'createStatsAnalyzer'
|
7137
|
+
}, _constants.EVENT_TRIGGERS.MEDIA_INBOUND_AUDIO_ISSUE_DETECTED, data);
|
7138
|
+
}
|
7139
|
+
});
|
7100
7140
|
}
|
7101
7141
|
}
|
7102
7142
|
|
@@ -7111,7 +7151,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7111
7151
|
key: "waitForRemoteSDPAnswer",
|
7112
7152
|
value: (function () {
|
7113
7153
|
var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25() {
|
7114
|
-
var
|
7154
|
+
var _this45 = this;
|
7115
7155
|
var LOG_HEADER, deferSDPAnswer;
|
7116
7156
|
return _regenerator.default.wrap(function _callee25$(_context25) {
|
7117
7157
|
while (1) switch (_context25.prev = _context25.next) {
|
@@ -7130,18 +7170,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7130
7170
|
var error = new Error('Timed out waiting for REMOTE SDP ANSWER');
|
7131
7171
|
|
7132
7172
|
// @ts-ignore
|
7133
|
-
|
7173
|
+
_this45.webex.internal.newMetrics.submitClientEvent({
|
7134
7174
|
name: 'client.media-engine.remote-sdp-received',
|
7135
7175
|
payload: {
|
7136
7176
|
canProceed: false,
|
7137
7177
|
errors: [
|
7138
7178
|
// @ts-ignore
|
7139
|
-
|
7179
|
+
_this45.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
|
7140
7180
|
clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
|
7141
7181
|
})]
|
7142
7182
|
},
|
7143
7183
|
options: {
|
7144
|
-
meetingId:
|
7184
|
+
meetingId: _this45.id,
|
7145
7185
|
rawError: error
|
7146
7186
|
}
|
7147
7187
|
});
|
@@ -7450,6 +7490,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7450
7490
|
key: "cleanUpOnAddMediaFailure",
|
7451
7491
|
value: (function () {
|
7452
7492
|
var _cleanUpOnAddMediaFailure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee31() {
|
7493
|
+
var _this$networkQualityM, _this$statsMonitor;
|
7453
7494
|
return _regenerator.default.wrap(function _callee31$(_context31) {
|
7454
7495
|
while (1) switch (_context31.prev = _context31.next) {
|
7455
7496
|
case 0:
|
@@ -7461,19 +7502,23 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7461
7502
|
return this.statsAnalyzer.stopAnalyzer();
|
7462
7503
|
case 3:
|
7463
7504
|
this.statsAnalyzer = null;
|
7505
|
+
(_this$networkQualityM = this.networkQualityMonitor) === null || _this$networkQualityM === void 0 ? void 0 : _this$networkQualityM.removeAllListeners();
|
7506
|
+
this.networkQualityMonitor = null;
|
7507
|
+
(_this$statsMonitor = this.statsMonitor) === null || _this$statsMonitor === void 0 ? void 0 : _this$statsMonitor.removeAllListeners();
|
7508
|
+
this.statsMonitor = null;
|
7464
7509
|
|
7465
7510
|
// when media fails, we want to upload a webrtc dump to see whats going on
|
7466
7511
|
// this function is async, but returns once the stats have been gathered
|
7467
|
-
_context31.next =
|
7512
|
+
_context31.next = 10;
|
7468
7513
|
return this.forceSendStatsReport({
|
7469
7514
|
callFrom: 'addMedia'
|
7470
7515
|
});
|
7471
|
-
case
|
7516
|
+
case 10:
|
7472
7517
|
if (this.mediaProperties.webrtcMediaConnection) {
|
7473
7518
|
this.closePeerConnections();
|
7474
7519
|
this.unsetPeerConnections();
|
7475
7520
|
}
|
7476
|
-
case
|
7521
|
+
case 11:
|
7477
7522
|
case "end":
|
7478
7523
|
return _context31.stop();
|
7479
7524
|
}
|
@@ -7496,7 +7541,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7496
7541
|
key: "downgradeFromMultistreamToTranscoded",
|
7497
7542
|
value: (function () {
|
7498
7543
|
var _downgradeFromMultistreamToTranscoded = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32() {
|
7499
|
-
var _this$locusMediaReque2;
|
7544
|
+
var _this$networkQualityM2, _this$statsMonitor2, _this$locusMediaReque2;
|
7500
7545
|
return _regenerator.default.wrap(function _callee32$(_context32) {
|
7501
7546
|
while (1) switch (_context32.prev = _context32.next) {
|
7502
7547
|
case 0:
|
@@ -7508,6 +7553,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7508
7553
|
return this.statsAnalyzer.stopAnalyzer();
|
7509
7554
|
case 3:
|
7510
7555
|
this.statsAnalyzer = null;
|
7556
|
+
(_this$networkQualityM2 = this.networkQualityMonitor) === null || _this$networkQualityM2 === void 0 ? void 0 : _this$networkQualityM2.removeAllListeners();
|
7557
|
+
this.networkQualityMonitor = null;
|
7558
|
+
(_this$statsMonitor2 = this.statsMonitor) === null || _this$statsMonitor2 === void 0 ? void 0 : _this$statsMonitor2.removeAllListeners();
|
7559
|
+
this.statsMonitor = null;
|
7511
7560
|
this.isMultistream = false;
|
7512
7561
|
if (this.mediaProperties.webrtcMediaConnection) {
|
7513
7562
|
// close peer connection, but don't reset mute state information, because we will want to use it on the retry
|
@@ -7516,7 +7565,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7516
7565
|
}
|
7517
7566
|
(_this$locusMediaReque2 = this.locusMediaRequest) === null || _this$locusMediaReque2 === void 0 ? void 0 : _this$locusMediaReque2.downgradeFromMultistreamToTranscoded();
|
7518
7567
|
this.createStatsAnalyzer();
|
7519
|
-
case
|
7568
|
+
case 12:
|
7520
7569
|
case "end":
|
7521
7570
|
return _context32.stop();
|
7522
7571
|
}
|
@@ -7648,10 +7697,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7648
7697
|
}, {
|
7649
7698
|
key: "addMedia",
|
7650
7699
|
value: function addMedia() {
|
7651
|
-
var
|
7700
|
+
var _this46 = this;
|
7652
7701
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
7653
7702
|
return this.addMediaInternal(function () {
|
7654
|
-
return
|
7703
|
+
return _this46.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
7655
7704
|
}, undefined, false, options);
|
7656
7705
|
}
|
7657
7706
|
|
@@ -7694,6 +7743,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7694
7743
|
receiveVideo,
|
7695
7744
|
sendAudio,
|
7696
7745
|
receiveAudio,
|
7746
|
+
ipver,
|
7697
7747
|
_this$remoteMediaMana,
|
7698
7748
|
_yield$this$mediaProp,
|
7699
7749
|
connectionType,
|
@@ -7758,14 +7808,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7758
7808
|
receiveAudio = audioEnabled && (rawReceiveAudio !== null && rawReceiveAudio !== void 0 ? rawReceiveAudio : true);
|
7759
7809
|
this.allowMediaInLobby = options === null || options === void 0 ? void 0 : options.allowMediaInLobby;
|
7760
7810
|
|
7811
|
+
// @ts-ignore
|
7812
|
+
ipver = _util2.default.getIpVersion(this.webex); // used just for metrics
|
7761
7813
|
// If the user is unjoined or guest waiting in lobby dont allow the user to addMedia
|
7762
7814
|
// @ts-ignore - isUserUnadmitted coming from SelfUtil
|
7763
7815
|
if (!(this.isUserUnadmitted && !this.wirelessShare && !this.allowMediaInLobby)) {
|
7764
|
-
_context35.next =
|
7816
|
+
_context35.next = 20;
|
7765
7817
|
break;
|
7766
7818
|
}
|
7767
7819
|
throw new _webexErrors.UserInLobbyError();
|
7768
|
-
case
|
7820
|
+
case 20:
|
7769
7821
|
// @ts-ignore
|
7770
7822
|
this.webex.internal.newMetrics.submitClientEvent({
|
7771
7823
|
name: 'client.media.capabilities',
|
@@ -7805,63 +7857,64 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7805
7857
|
this.audio = (0, _muteState.createMuteState)(_constants.AUDIO, this, audioEnabled);
|
7806
7858
|
this.video = (0, _muteState.createMuteState)(_constants.VIDEO, this, videoEnabled);
|
7807
7859
|
this.brbState = (0, _brbState.createBrbState)(this, false);
|
7808
|
-
_context35.prev =
|
7809
|
-
_context35.next =
|
7860
|
+
_context35.prev = 25;
|
7861
|
+
_context35.next = 28;
|
7810
7862
|
return this.setUpLocalStreamReferences(localStreams);
|
7811
|
-
case
|
7863
|
+
case 28:
|
7812
7864
|
this.setMercuryListener();
|
7813
7865
|
this.createStatsAnalyzer();
|
7814
|
-
_context35.prev =
|
7815
|
-
_context35.next =
|
7866
|
+
_context35.prev = 30;
|
7867
|
+
_context35.next = 33;
|
7816
7868
|
return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, forceTurnDiscovery, turnServerInfo);
|
7817
|
-
case
|
7818
|
-
_context35.next =
|
7869
|
+
case 33:
|
7870
|
+
_context35.next = 46;
|
7819
7871
|
break;
|
7820
|
-
case
|
7821
|
-
_context35.prev =
|
7822
|
-
_context35.t0 = _context35["catch"](
|
7872
|
+
case 35:
|
7873
|
+
_context35.prev = 35;
|
7874
|
+
_context35.t0 = _context35["catch"](30);
|
7823
7875
|
if (!(_context35.t0 instanceof _multistreamNotSupportedError.default)) {
|
7824
|
-
_context35.next =
|
7876
|
+
_context35.next = 45;
|
7825
7877
|
break;
|
7826
7878
|
}
|
7827
7879
|
_loggerProxy.default.logger.warn("".concat(LOG_HEADER, " we asked for multistream backend (Homer), but got transcoded backend, recreating media connection..."));
|
7828
|
-
_context35.next =
|
7880
|
+
_context35.next = 41;
|
7829
7881
|
return this.downgradeFromMultistreamToTranscoded();
|
7830
|
-
case
|
7831
|
-
_context35.next =
|
7882
|
+
case 41:
|
7883
|
+
_context35.next = 43;
|
7832
7884
|
return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, true, undefined);
|
7833
|
-
case
|
7834
|
-
_context35.next =
|
7885
|
+
case 43:
|
7886
|
+
_context35.next = 46;
|
7835
7887
|
break;
|
7836
|
-
case 44:
|
7837
|
-
throw _context35.t0;
|
7838
7888
|
case 45:
|
7889
|
+
throw _context35.t0;
|
7890
|
+
case 46:
|
7839
7891
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " media connected, finalizing..."));
|
7840
7892
|
if (!this.mediaProperties.hasLocalShareStream()) {
|
7841
|
-
_context35.next =
|
7893
|
+
_context35.next = 50;
|
7842
7894
|
break;
|
7843
7895
|
}
|
7844
|
-
_context35.next =
|
7896
|
+
_context35.next = 50;
|
7845
7897
|
return this.enqueueScreenShareFloorRequest();
|
7846
|
-
case
|
7847
|
-
_context35.next =
|
7898
|
+
case 50:
|
7899
|
+
_context35.next = 52;
|
7848
7900
|
return this.mediaProperties.getCurrentConnectionInfo();
|
7849
|
-
case
|
7901
|
+
case 52:
|
7850
7902
|
_yield$this$mediaProp = _context35.sent;
|
7851
7903
|
connectionType = _yield$this$mediaProp.connectionType;
|
7852
7904
|
ipVersion = _yield$this$mediaProp.ipVersion;
|
7853
7905
|
selectedCandidatePairChanges = _yield$this$mediaProp.selectedCandidatePairChanges;
|
7854
7906
|
numTransports = _yield$this$mediaProp.numTransports;
|
7855
7907
|
iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
|
7856
|
-
_context35.next =
|
7908
|
+
_context35.next = 60;
|
7857
7909
|
return this.getMediaReachabilityMetricFields();
|
7858
|
-
case
|
7910
|
+
case 60:
|
7859
7911
|
reachabilityMetrics = _context35.sent;
|
7860
7912
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, _objectSpread(_objectSpread(_objectSpread({
|
7861
7913
|
correlation_id: this.correlationId,
|
7862
7914
|
locus_id: this.locusUrl.split('/').pop(),
|
7863
7915
|
connectionType: connectionType,
|
7864
7916
|
ipVersion: ipVersion,
|
7917
|
+
ipver: ipver,
|
7865
7918
|
selectedCandidatePairChanges: selectedCandidatePairChanges,
|
7866
7919
|
numTransports: numTransports,
|
7867
7920
|
isMultistream: this.isMultistream,
|
@@ -7885,21 +7938,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7885
7938
|
// We can log ReceiveSlot SSRCs only after the SDP exchange, so doing it here:
|
7886
7939
|
(_this$remoteMediaMana = this.remoteMediaManager) === null || _this$remoteMediaMana === void 0 ? void 0 : _this$remoteMediaMana.logAllReceiveSlots();
|
7887
7940
|
this.startPeriodicLogUpload();
|
7888
|
-
_context35.next =
|
7941
|
+
_context35.next = 86;
|
7889
7942
|
break;
|
7890
|
-
case
|
7891
|
-
_context35.prev =
|
7892
|
-
_context35.t1 = _context35["catch"](
|
7943
|
+
case 68:
|
7944
|
+
_context35.prev = 68;
|
7945
|
+
_context35.t1 = _context35["catch"](25);
|
7893
7946
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context35.t1);
|
7894
7947
|
|
7895
7948
|
// @ts-ignore
|
7896
|
-
_context35.next =
|
7949
|
+
_context35.next = 73;
|
7897
7950
|
return this.getMediaReachabilityMetricFields();
|
7898
|
-
case
|
7951
|
+
case 73:
|
7899
7952
|
_reachabilityMetrics = _context35.sent;
|
7900
|
-
_context35.next =
|
7953
|
+
_context35.next = 76;
|
7901
7954
|
return this.mediaProperties.getCurrentConnectionInfo();
|
7902
|
-
case
|
7955
|
+
case 76:
|
7903
7956
|
_yield$this$mediaProp2 = _context35.sent;
|
7904
7957
|
_selectedCandidatePairChanges = _yield$this$mediaProp2.selectedCandidatePairChanges;
|
7905
7958
|
_numTransports = _yield$this$mediaProp2.numTransports;
|
@@ -7921,11 +7974,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7921
7974
|
connectionState: ((_this$mediaProperties22 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties22 === void 0 ? void 0 : (_this$mediaProperties23 = _this$mediaProperties22.multistreamConnection) === null || _this$mediaProperties23 === void 0 ? void 0 : (_this$mediaProperties24 = _this$mediaProperties23.pc) === null || _this$mediaProperties24 === void 0 ? void 0 : (_this$mediaProperties25 = _this$mediaProperties24.pc) === null || _this$mediaProperties25 === void 0 ? void 0 : _this$mediaProperties25.connectionState) || ((_this$mediaProperties26 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties26 === void 0 ? void 0 : (_this$mediaProperties27 = _this$mediaProperties26.mediaConnection) === null || _this$mediaProperties27 === void 0 ? void 0 : (_this$mediaProperties28 = _this$mediaProperties27.pc) === null || _this$mediaProperties28 === void 0 ? void 0 : _this$mediaProperties28.connectionState) || 'unknown',
|
7922
7975
|
iceConnectionState: ((_this$mediaProperties29 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties29 === void 0 ? void 0 : (_this$mediaProperties30 = _this$mediaProperties29.multistreamConnection) === null || _this$mediaProperties30 === void 0 ? void 0 : (_this$mediaProperties31 = _this$mediaProperties30.pc) === null || _this$mediaProperties31 === void 0 ? void 0 : (_this$mediaProperties32 = _this$mediaProperties31.pc) === null || _this$mediaProperties32 === void 0 ? void 0 : _this$mediaProperties32.iceConnectionState) || ((_this$mediaProperties33 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties33 === void 0 ? void 0 : (_this$mediaProperties34 = _this$mediaProperties33.mediaConnection) === null || _this$mediaProperties34 === void 0 ? void 0 : (_this$mediaProperties35 = _this$mediaProperties34.pc) === null || _this$mediaProperties35 === void 0 ? void 0 : _this$mediaProperties35.iceConnectionState) || 'unknown'
|
7923
7976
|
}, _reachabilityMetrics), _iceCandidateErrors), {}, {
|
7924
|
-
iceCandidatesCount: this.iceCandidatesCount
|
7977
|
+
iceCandidatesCount: this.iceCandidatesCount,
|
7978
|
+
ipver: ipver
|
7925
7979
|
}));
|
7926
|
-
_context35.next =
|
7980
|
+
_context35.next = 83;
|
7927
7981
|
return this.cleanUpOnAddMediaFailure();
|
7928
|
-
case
|
7982
|
+
case 83:
|
7929
7983
|
// Upload logs on error while adding media
|
7930
7984
|
_triggerProxy.default.trigger(this, {
|
7931
7985
|
file: 'meeting/index',
|
@@ -7937,15 +7991,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7937
7991
|
});
|
7938
7992
|
}
|
7939
7993
|
throw _context35.t1;
|
7940
|
-
case
|
7941
|
-
_context35.prev =
|
7994
|
+
case 86:
|
7995
|
+
_context35.prev = 86;
|
7942
7996
|
this.addMediaData.icePhaseCallback = DEFAULT_ICE_PHASE_CALLBACK;
|
7943
|
-
return _context35.finish(
|
7944
|
-
case
|
7997
|
+
return _context35.finish(86);
|
7998
|
+
case 89:
|
7945
7999
|
case "end":
|
7946
8000
|
return _context35.stop();
|
7947
8001
|
}
|
7948
|
-
}, _callee35, this, [[
|
8002
|
+
}, _callee35, this, [[25, 68, 86, 89], [30, 35]]);
|
7949
8003
|
}));
|
7950
8004
|
function addMediaInternal(_x33, _x34, _x35) {
|
7951
8005
|
return _addMediaInternal.apply(this, arguments);
|
@@ -7977,7 +8031,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7977
8031
|
* @memberof Meeting
|
7978
8032
|
*/
|
7979
8033
|
function enqueueMediaUpdate(mediaUpdateType) {
|
7980
|
-
var
|
8034
|
+
var _this47 = this;
|
7981
8035
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
7982
8036
|
var canUpdateMediaNow = this.canUpdateMedia();
|
7983
8037
|
return new _promise.default(function (resolve, reject) {
|
@@ -7988,9 +8042,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7988
8042
|
options: options
|
7989
8043
|
};
|
7990
8044
|
_loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
|
7991
|
-
|
8045
|
+
_this47.queuedMediaUpdates.push(queueItem);
|
7992
8046
|
if (canUpdateMediaNow) {
|
7993
|
-
|
8047
|
+
_this47.processNextQueuedMediaUpdate();
|
7994
8048
|
}
|
7995
8049
|
});
|
7996
8050
|
}
|
@@ -8095,7 +8149,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8095
8149
|
}, {
|
8096
8150
|
key: "acknowledge",
|
8097
8151
|
value: function acknowledge(type) {
|
8098
|
-
var
|
8152
|
+
var _this48 = this;
|
8099
8153
|
if (!type) {
|
8100
8154
|
return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
|
8101
8155
|
}
|
@@ -8107,12 +8161,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8107
8161
|
}).then(function (response) {
|
8108
8162
|
return _promise.default.resolve(response);
|
8109
8163
|
}).then(function (response) {
|
8110
|
-
|
8164
|
+
_this48.meetingFiniteStateMachine.ring(type);
|
8111
8165
|
// @ts-ignore
|
8112
|
-
|
8166
|
+
_this48.webex.internal.newMetrics.submitClientEvent({
|
8113
8167
|
name: 'client.alert.displayed',
|
8114
8168
|
options: {
|
8115
|
-
meetingId:
|
8169
|
+
meetingId: _this48.id
|
8116
8170
|
}
|
8117
8171
|
});
|
8118
8172
|
return _promise.default.resolve({
|
@@ -8137,12 +8191,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8137
8191
|
}, {
|
8138
8192
|
key: "decline",
|
8139
8193
|
value: function decline(reason) {
|
8140
|
-
var
|
8194
|
+
var _this49 = this;
|
8141
8195
|
return _util2.default.declineMeeting(this, reason).then(function (decline) {
|
8142
|
-
|
8196
|
+
_this49.meetingFiniteStateMachine.decline();
|
8143
8197
|
return _promise.default.resolve(decline);
|
8144
8198
|
}).catch(function (error) {
|
8145
|
-
|
8199
|
+
_this49.meetingFiniteStateMachine.fail(error);
|
8146
8200
|
return _promise.default.reject(error);
|
8147
8201
|
});
|
8148
8202
|
}
|
@@ -8193,7 +8247,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8193
8247
|
}, {
|
8194
8248
|
key: "leave",
|
8195
8249
|
value: function leave() {
|
8196
|
-
var
|
8250
|
+
var _this50 = this;
|
8197
8251
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
8198
8252
|
var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
|
8199
8253
|
|
@@ -8205,7 +8259,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8205
8259
|
var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
8206
8260
|
return (
|
8207
8261
|
// @ts-ignore
|
8208
|
-
|
8262
|
+
_this50.webex.internal.newMetrics.submitClientEvent({
|
8209
8263
|
name: 'client.call.leave',
|
8210
8264
|
payload: _objectSpread({
|
8211
8265
|
trigger: 'user-interaction',
|
@@ -8213,7 +8267,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8213
8267
|
leaveReason: options.clientEventLeaveReason
|
8214
8268
|
}, payload),
|
8215
8269
|
options: {
|
8216
|
-
meetingId:
|
8270
|
+
meetingId: _this50.id
|
8217
8271
|
}
|
8218
8272
|
})
|
8219
8273
|
);
|
@@ -8222,24 +8276,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8222
8276
|
return _util2.default.leaveMeeting(this, options).then(function (leave) {
|
8223
8277
|
// CA team recommends submitting this *after* locus /leave
|
8224
8278
|
submitLeaveMetric();
|
8225
|
-
|
8226
|
-
|
8279
|
+
_this50.meetingFiniteStateMachine.leave();
|
8280
|
+
_this50.clearMeetingData();
|
8227
8281
|
|
8228
8282
|
// upload logs on leave irrespective of meeting delete
|
8229
|
-
_triggerProxy.default.trigger(
|
8283
|
+
_triggerProxy.default.trigger(_this50, {
|
8230
8284
|
file: 'meeting/index',
|
8231
8285
|
function: 'leave'
|
8232
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8286
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this50);
|
8233
8287
|
|
8234
8288
|
// TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
|
8235
|
-
if (
|
8289
|
+
if (_this50.wirelessShare || _this50.guest) {
|
8236
8290
|
// If screen sharing clean the meeting object
|
8237
|
-
_triggerProxy.default.trigger(
|
8291
|
+
_triggerProxy.default.trigger(_this50, {
|
8238
8292
|
file: 'meeting/index',
|
8239
8293
|
function: 'leave'
|
8240
8294
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
8241
8295
|
reason: options.reason,
|
8242
|
-
meetingId:
|
8296
|
+
meetingId: _this50.id
|
8243
8297
|
});
|
8244
8298
|
}
|
8245
8299
|
_loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
|
@@ -8256,16 +8310,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8256
8310
|
shownToUser: false
|
8257
8311
|
}]
|
8258
8312
|
});
|
8259
|
-
|
8313
|
+
_this50.meetingFiniteStateMachine.fail(error);
|
8260
8314
|
_loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
|
8261
8315
|
// upload logs on leave irrespective of meeting delete
|
8262
|
-
_triggerProxy.default.trigger(
|
8316
|
+
_triggerProxy.default.trigger(_this50, {
|
8263
8317
|
file: 'meeting/index',
|
8264
8318
|
function: 'leave'
|
8265
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8319
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this50);
|
8266
8320
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
|
8267
|
-
correlation_id:
|
8268
|
-
locus_id:
|
8321
|
+
correlation_id: _this50.correlationId,
|
8322
|
+
locus_id: _this50.locusUrl.split('/').pop(),
|
8269
8323
|
reason: error.message,
|
8270
8324
|
stack: error.stack,
|
8271
8325
|
code: error.code
|
@@ -8285,7 +8339,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8285
8339
|
}, {
|
8286
8340
|
key: "startWhiteboardShare",
|
8287
8341
|
value: function startWhiteboardShare(channelUrl, resourceToken) {
|
8288
|
-
var
|
8342
|
+
var _this51 = this;
|
8289
8343
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
8290
8344
|
return element.name === 'whiteboard';
|
8291
8345
|
});
|
@@ -8318,13 +8372,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8318
8372
|
body.resourceToken = resourceToken;
|
8319
8373
|
}
|
8320
8374
|
return this.meetingRequest.changeMeetingFloor(body).then(function () {
|
8321
|
-
|
8375
|
+
_this51.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
8322
8376
|
return _promise.default.resolve();
|
8323
8377
|
}).catch(function (error) {
|
8324
8378
|
_loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
|
8325
8379
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
|
8326
|
-
correlation_id:
|
8327
|
-
locus_id:
|
8380
|
+
correlation_id: _this51.correlationId,
|
8381
|
+
locus_id: _this51.locusUrl.split('/').pop(),
|
8328
8382
|
reason: error.message,
|
8329
8383
|
stack: error.stack,
|
8330
8384
|
board: {
|
@@ -8347,7 +8401,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8347
8401
|
}, {
|
8348
8402
|
key: "stopWhiteboardShare",
|
8349
8403
|
value: function stopWhiteboardShare(channelUrl) {
|
8350
|
-
var
|
8404
|
+
var _this52 = this;
|
8351
8405
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
8352
8406
|
return element.name === 'whiteboard';
|
8353
8407
|
});
|
@@ -8376,8 +8430,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8376
8430
|
}).catch(function (error) {
|
8377
8431
|
_loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
|
8378
8432
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
|
8379
|
-
correlation_id:
|
8380
|
-
locus_id:
|
8433
|
+
correlation_id: _this52.correlationId,
|
8434
|
+
locus_id: _this52.locusUrl.split('/').pop(),
|
8381
8435
|
reason: error.message,
|
8382
8436
|
stack: error.stack,
|
8383
8437
|
board: {
|
@@ -8399,7 +8453,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8399
8453
|
}, {
|
8400
8454
|
key: "requestScreenShareFloor",
|
8401
8455
|
value: function requestScreenShareFloor() {
|
8402
|
-
var
|
8456
|
+
var _this53 = this;
|
8403
8457
|
if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
|
8404
8458
|
_loggerProxy.default.logger.log("Meeting:index#requestScreenShareFloor --> NOT requesting floor, because we don't have the share stream anymore (shareStream=".concat(this.mediaProperties.shareVideoStream ? 'yes' : 'no', ", sendShare=").concat(this.mediaProperties.mediaDirection.sendShare, ")"));
|
8405
8459
|
this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
@@ -8430,34 +8484,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8430
8484
|
resourceUrl: this.resourceUrl,
|
8431
8485
|
shareInstanceId: this.localShareInstanceId
|
8432
8486
|
}).then(function () {
|
8433
|
-
|
8487
|
+
_this53.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
|
8434
8488
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
|
8435
|
-
correlation_id:
|
8436
|
-
locus_id:
|
8489
|
+
correlation_id: _this53.correlationId,
|
8490
|
+
locus_id: _this53.locusUrl.split('/').pop()
|
8437
8491
|
});
|
8438
8492
|
return _promise.default.resolve();
|
8439
8493
|
}).catch(function (error) {
|
8440
8494
|
_loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
|
8441
8495
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
|
8442
|
-
correlation_id:
|
8443
|
-
locus_id:
|
8496
|
+
correlation_id: _this53.correlationId,
|
8497
|
+
locus_id: _this53.locusUrl.split('/').pop(),
|
8444
8498
|
reason: error.message,
|
8445
8499
|
stack: error.stack
|
8446
8500
|
});
|
8447
8501
|
|
8448
8502
|
// @ts-ignore
|
8449
|
-
|
8503
|
+
_this53.webex.internal.newMetrics.submitClientEvent({
|
8450
8504
|
name: 'client.share.floor-granted.local',
|
8451
8505
|
payload: {
|
8452
8506
|
mediaType: 'share',
|
8453
8507
|
errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
|
8454
|
-
shareInstanceId:
|
8508
|
+
shareInstanceId: _this53.localShareInstanceId
|
8455
8509
|
},
|
8456
8510
|
options: {
|
8457
|
-
meetingId:
|
8511
|
+
meetingId: _this53.id
|
8458
8512
|
}
|
8459
8513
|
});
|
8460
|
-
|
8514
|
+
_this53.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
8461
8515
|
return _promise.default.reject(error);
|
8462
8516
|
});
|
8463
8517
|
}
|
@@ -8480,10 +8534,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8480
8534
|
}, {
|
8481
8535
|
key: "requestScreenShareFloorIfPending",
|
8482
8536
|
value: function requestScreenShareFloorIfPending() {
|
8483
|
-
var
|
8537
|
+
var _this54 = this;
|
8484
8538
|
if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
|
8485
8539
|
this.requestScreenShareFloor().then(function () {
|
8486
|
-
|
8540
|
+
_this54.floorGrantPending = false;
|
8487
8541
|
});
|
8488
8542
|
}
|
8489
8543
|
}
|
@@ -8497,7 +8551,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8497
8551
|
}, {
|
8498
8552
|
key: "releaseScreenShareFloor",
|
8499
8553
|
value: function releaseScreenShareFloor() {
|
8500
|
-
var
|
8554
|
+
var _this55 = this;
|
8501
8555
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
8502
8556
|
return element.name === _constants.CONTENT;
|
8503
8557
|
});
|
@@ -8538,8 +8592,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8538
8592
|
}).catch(function (error) {
|
8539
8593
|
_loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
|
8540
8594
|
_metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
|
8541
|
-
correlation_id:
|
8542
|
-
locus_id:
|
8595
|
+
correlation_id: _this55.correlationId,
|
8596
|
+
locus_id: _this55.locusUrl.split('/').pop(),
|
8543
8597
|
reason: error.message,
|
8544
8598
|
stack: error.stack
|
8545
8599
|
});
|
@@ -8719,7 +8773,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8719
8773
|
}, {
|
8720
8774
|
key: "changeVideoLayout",
|
8721
8775
|
value: function changeVideoLayout(layoutType) {
|
8722
|
-
var
|
8776
|
+
var _this56 = this;
|
8723
8777
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
8724
8778
|
var main = renderInfo.main,
|
8725
8779
|
content = renderInfo.content;
|
@@ -8773,7 +8827,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8773
8827
|
}
|
8774
8828
|
this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
|
8775
8829
|
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
|
8776
|
-
_triggerProxy.default.trigger(
|
8830
|
+
_triggerProxy.default.trigger(_this56, {
|
8777
8831
|
file: 'meeting/index',
|
8778
8832
|
function: 'changeVideoLayout'
|
8779
8833
|
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
|
@@ -8889,7 +8943,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8889
8943
|
}, {
|
8890
8944
|
key: "endMeetingForAll",
|
8891
8945
|
value: function endMeetingForAll() {
|
8892
|
-
var
|
8946
|
+
var _this57 = this;
|
8893
8947
|
// @ts-ignore
|
8894
8948
|
this.webex.internal.newMetrics.submitClientEvent({
|
8895
8949
|
name: 'client.call.leave',
|
@@ -8907,25 +8961,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8907
8961
|
locus_id: this.locusId
|
8908
8962
|
});
|
8909
8963
|
return _util2.default.endMeetingForAll(this).then(function (end) {
|
8910
|
-
|
8911
|
-
|
8964
|
+
_this57.meetingFiniteStateMachine.end();
|
8965
|
+
_this57.clearMeetingData();
|
8912
8966
|
// upload logs on leave irrespective of meeting delete
|
8913
|
-
_triggerProxy.default.trigger(
|
8967
|
+
_triggerProxy.default.trigger(_this57, {
|
8914
8968
|
file: 'meeting/index',
|
8915
8969
|
function: 'endMeetingForAll'
|
8916
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8970
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this57);
|
8917
8971
|
return end;
|
8918
8972
|
}).catch(function (error) {
|
8919
|
-
|
8973
|
+
_this57.meetingFiniteStateMachine.fail(error);
|
8920
8974
|
_loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
|
8921
8975
|
// upload logs on leave irrespective of meeting delete
|
8922
|
-
_triggerProxy.default.trigger(
|
8976
|
+
_triggerProxy.default.trigger(_this57, {
|
8923
8977
|
file: 'meeting/index',
|
8924
8978
|
function: 'endMeetingForAll'
|
8925
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8979
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this57);
|
8926
8980
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
|
8927
|
-
correlation_id:
|
8928
|
-
locus_id:
|
8981
|
+
correlation_id: _this57.correlationId,
|
8982
|
+
locus_id: _this57.locusUrl.split('/').pop(),
|
8929
8983
|
reason: error.message,
|
8930
8984
|
stack: error.stack,
|
8931
8985
|
code: error.code
|
@@ -9086,7 +9140,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
9086
9140
|
_this$mediaProperties43,
|
9087
9141
|
_this$mediaProperties44,
|
9088
9142
|
_this$mediaProperties45,
|
9089
|
-
|
9143
|
+
_this58 = this;
|
9090
9144
|
var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
|
9091
9145
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
|
9092
9146
|
if (!this.canUpdateMedia()) {
|
@@ -9111,8 +9165,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
9111
9165
|
}).catch(function (error) {
|
9112
9166
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
|
9113
9167
|
_metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
|
9114
|
-
correlation_id:
|
9115
|
-
locus_id:
|
9168
|
+
correlation_id: _this58.correlationId,
|
9169
|
+
locus_id: _this58.locusUrl.split('/').pop(),
|
9116
9170
|
reason: error.message,
|
9117
9171
|
stack: error.stack
|
9118
9172
|
});
|
@@ -9633,6 +9687,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
9633
9687
|
};
|
9634
9688
|
return this.meetingRequest.synchronizeStage(this.locusUrl, videoLayout);
|
9635
9689
|
}
|
9690
|
+
|
9691
|
+
/**
|
9692
|
+
* Notifies the host with the given meeting UUID and display names.
|
9693
|
+
*
|
9694
|
+
* @param {string} meetingUuid - The UUID of the meeting.
|
9695
|
+
* @param {string[]} displayName - An array of display names to notify the host with.
|
9696
|
+
* @returns {Promise<any>} The result of the notifyHost request.
|
9697
|
+
*/
|
9698
|
+
}, {
|
9699
|
+
key: "notifyHost",
|
9700
|
+
value: function notifyHost(meetingUuid, displayName) {
|
9701
|
+
return this.meetingRequest.notifyHost(this.meetingInfo.siteFullUrl, this.locusId, meetingUuid, displayName);
|
9702
|
+
}
|
9636
9703
|
}]);
|
9637
9704
|
return Meeting;
|
9638
9705
|
}(_webexCore.StatelessWebexPlugin);
|