@webex/plugin-meetings 3.7.0-next.1 → 3.7.0-next.11
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/config.js +2 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +10 -1
- package/dist/constants.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/meeting/in-meeting-actions.js +11 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +287 -198
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/util.js +1 -0
- package/dist/meeting/util.js.map +1 -1
- package/dist/meetings/index.js +4 -1
- package/dist/meetings/index.js.map +1 -1
- package/dist/members/util.js +4 -2
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +3 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/reachability/clusterReachability.js +12 -11
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/recording-controller/enums.js +8 -4
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.js +18 -9
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +13 -9
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/types/config.d.ts +1 -0
- package/dist/types/constants.d.ts +8 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +10 -0
- package/dist/types/meeting/index.d.ts +20 -0
- package/dist/types/meetings/index.d.ts +3 -0
- package/dist/types/members/util.d.ts +2 -0
- package/dist/types/metrics/constants.d.ts +2 -0
- package/dist/types/recording-controller/enums.d.ts +5 -2
- package/dist/types/recording-controller/index.d.ts +1 -0
- package/dist/types/recording-controller/util.d.ts +2 -1
- package/dist/webinar/index.js +39 -7
- package/dist/webinar/index.js.map +1 -1
- package/package.json +21 -21
- package/src/config.ts +1 -0
- package/src/constants.ts +10 -0
- package/src/meeting/in-meeting-actions.ts +21 -0
- package/src/meeting/index.ts +94 -0
- package/src/meeting/util.ts +1 -0
- package/src/meetings/index.ts +6 -0
- package/src/members/util.ts +1 -0
- package/src/metrics/constants.ts +2 -0
- package/src/reachability/clusterReachability.ts +4 -1
- package/src/recording-controller/enums.ts +5 -2
- package/src/recording-controller/index.ts +17 -4
- package/src/recording-controller/util.ts +20 -5
- package/src/webinar/index.ts +40 -8
- package/test/unit/spec/meeting/in-meeting-actions.ts +13 -1
- package/test/unit/spec/meeting/index.js +72 -0
- package/test/unit/spec/meeting/utils.js +2 -0
- package/test/unit/spec/meetings/index.js +9 -5
- package/test/unit/spec/members/utils.js +95 -0
- package/test/unit/spec/reachability/clusterReachability.ts +7 -0
- package/test/unit/spec/recording-controller/index.js +61 -5
- package/test/unit/spec/recording-controller/util.js +39 -3
- package/test/unit/spec/webinar/index.ts +47 -0
package/dist/meeting/index.js
CHANGED
|
@@ -39,6 +39,7 @@ var _lodash = require("lodash");
|
|
|
39
39
|
var _jwtDecode = _interopRequireDefault(require("jwt-decode"));
|
|
40
40
|
var _webexCore = require("@webex/webex-core");
|
|
41
41
|
var _common = require("@webex/common");
|
|
42
|
+
var _commonTimers = require("@webex/common-timers");
|
|
42
43
|
var _internalPluginMetrics = require("@webex/internal-plugin-metrics");
|
|
43
44
|
var _internalMediaCore = require("@webex/internal-media-core");
|
|
44
45
|
var _mediaHelpers = require("@webex/media-helpers");
|
|
@@ -552,6 +553,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
552
553
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "iceCandidateErrors", void 0);
|
|
553
554
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "iceCandidatesCount", void 0);
|
|
554
555
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "rtcMetrics", void 0);
|
|
556
|
+
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "uploadLogsTimer", void 0);
|
|
557
|
+
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "logUploadIntervalIndex", void 0);
|
|
555
558
|
/**
|
|
556
559
|
* Callback called when a relay event is received from meeting LLM Connection
|
|
557
560
|
* @param {RelayEvent} e Event object coming from LLM Connection
|
|
@@ -1434,6 +1437,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1434
1437
|
_loggerProxy.default.logger.log("Meetings:index#constructor --> Initializing the meeting object with generated correlation id from sdk ".concat(_this.id));
|
|
1435
1438
|
_this.callStateForMetrics.correlationId = _this.id;
|
|
1436
1439
|
}
|
|
1440
|
+
_this.logUploadIntervalIndex = 0;
|
|
1441
|
+
|
|
1437
1442
|
/**
|
|
1438
1443
|
* @instance
|
|
1439
1444
|
* @type {String}
|
|
@@ -3239,6 +3244,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3239
3244
|
});
|
|
3240
3245
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_PRACTICE_SESSION_STATUS_UPDATED, function (_ref24) {
|
|
3241
3246
|
var state = _ref24.state;
|
|
3247
|
+
_this13.webinar.updatePracticeSessionStatus(state);
|
|
3242
3248
|
_triggerProxy.default.trigger(_this13, {
|
|
3243
3249
|
file: 'meeting/index',
|
|
3244
3250
|
function: 'setupLocusControlsListener'
|
|
@@ -3740,6 +3746,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3740
3746
|
}
|
|
3741
3747
|
});
|
|
3742
3748
|
}
|
|
3749
|
+
_metrics.default.sendBehavioralMetric(_constants2.default.GUEST_ENTERED_LOBBY, {
|
|
3750
|
+
correlation_id: _this20.correlationId
|
|
3751
|
+
});
|
|
3743
3752
|
_this20.updateLLMConnection();
|
|
3744
3753
|
});
|
|
3745
3754
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ADMITTED_GUEST, /*#__PURE__*/function () {
|
|
@@ -3764,6 +3773,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3764
3773
|
meetingId: _this20.id
|
|
3765
3774
|
}
|
|
3766
3775
|
});
|
|
3776
|
+
_metrics.default.sendBehavioralMetric(_constants2.default.GUEST_EXITED_LOBBY, {
|
|
3777
|
+
correlation_id: _this20.correlationId
|
|
3778
|
+
});
|
|
3767
3779
|
}
|
|
3768
3780
|
(_this20$rtcMetrics = _this20.rtcMetrics) === null || _this20$rtcMetrics === void 0 ? void 0 : _this20$rtcMetrics.sendNextMetrics();
|
|
3769
3781
|
_this20.updateLLMConnection();
|
|
@@ -4215,6 +4227,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4215
4227
|
canStopRecording: _util4.default.canUserStop(this.userDisplayHints, this.selfUserPolicies),
|
|
4216
4228
|
canPauseRecording: _util4.default.canUserPause(this.userDisplayHints, this.selfUserPolicies),
|
|
4217
4229
|
canResumeRecording: _util4.default.canUserResume(this.userDisplayHints, this.selfUserPolicies),
|
|
4230
|
+
isPremiseRecordingEnabled: _util4.default.isPremiseRecordingEnabled(this.userDisplayHints, this.selfUserPolicies),
|
|
4218
4231
|
canRaiseHand: _util2.default.canUserRaiseHand(this.userDisplayHints),
|
|
4219
4232
|
canLowerAllHands: _util2.default.canUserLowerAllHands(this.userDisplayHints),
|
|
4220
4233
|
canLowerSomeoneElsesHand: _util2.default.canUserLowerSomeoneElsesHand(this.userDisplayHints),
|
|
@@ -4344,6 +4357,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4344
4357
|
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_STAGE_VIEW],
|
|
4345
4358
|
displayHints: this.userDisplayHints
|
|
4346
4359
|
}),
|
|
4360
|
+
isPracticeSessionOn: _util5.default.hasHints({
|
|
4361
|
+
requiredHints: [_constants.DISPLAY_HINTS.PRACTICE_SESSION_ON],
|
|
4362
|
+
displayHints: this.userDisplayHints
|
|
4363
|
+
}),
|
|
4364
|
+
isPracticeSessionOff: _util5.default.hasHints({
|
|
4365
|
+
requiredHints: [_constants.DISPLAY_HINTS.PRACTICE_SESSION_OFF],
|
|
4366
|
+
displayHints: this.userDisplayHints
|
|
4367
|
+
}),
|
|
4368
|
+
canStartPracticeSession: _util5.default.hasHints({
|
|
4369
|
+
requiredHints: [_constants.DISPLAY_HINTS.SHOW_PRACTICE_SESSION_START],
|
|
4370
|
+
displayHints: this.userDisplayHints
|
|
4371
|
+
}),
|
|
4372
|
+
canStopPracticeSession: _util5.default.hasHints({
|
|
4373
|
+
requiredHints: [_constants.DISPLAY_HINTS.SHOW_PRACTICE_SESSION_STOP],
|
|
4374
|
+
displayHints: this.userDisplayHints
|
|
4375
|
+
}),
|
|
4347
4376
|
canShareFile: _util5.default.hasHints({
|
|
4348
4377
|
requiredHints: [_constants.DISPLAY_HINTS.SHARE_FILE],
|
|
4349
4378
|
displayHints: this.userDisplayHints
|
|
@@ -4488,6 +4517,65 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4488
4517
|
_triggerProxy.default.trigger(this, options, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
|
|
4489
4518
|
}
|
|
4490
4519
|
|
|
4520
|
+
/**
|
|
4521
|
+
* sets the timer for periodic log upload
|
|
4522
|
+
* @returns {void}
|
|
4523
|
+
*/
|
|
4524
|
+
}, {
|
|
4525
|
+
key: "setLogUploadTimer",
|
|
4526
|
+
value: function setLogUploadTimer() {
|
|
4527
|
+
var _this23 = this;
|
|
4528
|
+
// start with short timeouts and increase them later on so in case users have very long multi-hour meetings we don't get too fragmented logs
|
|
4529
|
+
var LOG_UPLOAD_INTERVALS = [0.1, 15, 30, 60]; // in minutes
|
|
4530
|
+
|
|
4531
|
+
var delay = 1000 * 60 *
|
|
4532
|
+
// @ts-ignore - config coming from registerPlugin
|
|
4533
|
+
this.config.logUploadIntervalMultiplicationFactor * LOG_UPLOAD_INTERVALS[this.logUploadIntervalIndex];
|
|
4534
|
+
if (this.logUploadIntervalIndex < LOG_UPLOAD_INTERVALS.length - 1) {
|
|
4535
|
+
this.logUploadIntervalIndex += 1;
|
|
4536
|
+
}
|
|
4537
|
+
this.uploadLogsTimer = (0, _commonTimers.safeSetTimeout)(function () {
|
|
4538
|
+
_this23.uploadLogsTimer = undefined;
|
|
4539
|
+
_this23.uploadLogs();
|
|
4540
|
+
|
|
4541
|
+
// just as an extra precaution, to avoid uploading logs forever in case something goes wrong
|
|
4542
|
+
// and the page remains opened, we stop it if there is no media connection
|
|
4543
|
+
if (!_this23.mediaProperties.webrtcMediaConnection) {
|
|
4544
|
+
return;
|
|
4545
|
+
}
|
|
4546
|
+
_this23.setLogUploadTimer();
|
|
4547
|
+
}, delay);
|
|
4548
|
+
}
|
|
4549
|
+
|
|
4550
|
+
/**
|
|
4551
|
+
* Starts a periodic upload of logs
|
|
4552
|
+
*
|
|
4553
|
+
* @returns {undefined}
|
|
4554
|
+
*/
|
|
4555
|
+
}, {
|
|
4556
|
+
key: "startPeriodicLogUpload",
|
|
4557
|
+
value: function startPeriodicLogUpload() {
|
|
4558
|
+
// @ts-ignore - config coming from registerPlugin
|
|
4559
|
+
if (this.config.logUploadIntervalMultiplicationFactor && !this.uploadLogsTimer) {
|
|
4560
|
+
this.logUploadIntervalIndex = 0;
|
|
4561
|
+
this.setLogUploadTimer();
|
|
4562
|
+
}
|
|
4563
|
+
}
|
|
4564
|
+
|
|
4565
|
+
/**
|
|
4566
|
+
* Stops the periodic upload of logs
|
|
4567
|
+
*
|
|
4568
|
+
* @returns {undefined}
|
|
4569
|
+
*/
|
|
4570
|
+
}, {
|
|
4571
|
+
key: "stopPeriodicLogUpload",
|
|
4572
|
+
value: function stopPeriodicLogUpload() {
|
|
4573
|
+
if (this.uploadLogsTimer) {
|
|
4574
|
+
clearTimeout(this.uploadLogsTimer);
|
|
4575
|
+
this.uploadLogsTimer = undefined;
|
|
4576
|
+
}
|
|
4577
|
+
}
|
|
4578
|
+
|
|
4491
4579
|
/**
|
|
4492
4580
|
* Removes remote audio, video and share streams from class instance's mediaProperties
|
|
4493
4581
|
* @returns {undefined}
|
|
@@ -4522,7 +4610,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4522
4610
|
}, {
|
|
4523
4611
|
key: "closeRemoteStreams",
|
|
4524
4612
|
value: function closeRemoteStreams() {
|
|
4525
|
-
var
|
|
4613
|
+
var _this24 = this;
|
|
4526
4614
|
var _this$mediaProperties4 = this.mediaProperties,
|
|
4527
4615
|
remoteAudioStream = _this$mediaProperties4.remoteAudioStream,
|
|
4528
4616
|
remoteVideoStream = _this$mediaProperties4.remoteVideoStream,
|
|
@@ -4536,7 +4624,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4536
4624
|
*/
|
|
4537
4625
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
4538
4626
|
var triggerMediaStoppedEvent = function triggerMediaStoppedEvent(mediaType) {
|
|
4539
|
-
_triggerProxy.default.trigger(
|
|
4627
|
+
_triggerProxy.default.trigger(_this24, {
|
|
4540
4628
|
file: 'meeting/index',
|
|
4541
4629
|
function: 'closeRemoteStreams'
|
|
4542
4630
|
}, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
|
|
@@ -4844,7 +4932,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4844
4932
|
}, {
|
|
4845
4933
|
key: "setMercuryListener",
|
|
4846
4934
|
value: function setMercuryListener() {
|
|
4847
|
-
var
|
|
4935
|
+
var _this25 = this;
|
|
4848
4936
|
// Client will have a socket manager and handle reconnecting to mercury, when we reconnect to mercury
|
|
4849
4937
|
// if the meeting has active peer connections, it should try to reconnect.
|
|
4850
4938
|
// @ts-ignore
|
|
@@ -4852,33 +4940,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4852
4940
|
_loggerProxy.default.logger.info('Meeting:index#setMercuryListener --> Web socket online');
|
|
4853
4941
|
|
|
4854
4942
|
// Only send restore event when it was disconnected before and for connected later
|
|
4855
|
-
if (!
|
|
4943
|
+
if (!_this25.hasWebsocketConnected) {
|
|
4856
4944
|
// @ts-ignore
|
|
4857
|
-
|
|
4945
|
+
_this25.webex.internal.newMetrics.submitClientEvent({
|
|
4858
4946
|
name: 'client.mercury.connection.restored',
|
|
4859
4947
|
options: {
|
|
4860
|
-
meetingId:
|
|
4948
|
+
meetingId: _this25.id
|
|
4861
4949
|
}
|
|
4862
4950
|
});
|
|
4863
4951
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_RESTORED, {
|
|
4864
|
-
correlation_id:
|
|
4952
|
+
correlation_id: _this25.correlationId
|
|
4865
4953
|
});
|
|
4866
4954
|
}
|
|
4867
|
-
|
|
4955
|
+
_this25.hasWebsocketConnected = true;
|
|
4868
4956
|
});
|
|
4869
4957
|
|
|
4870
4958
|
// @ts-ignore
|
|
4871
4959
|
this.webex.internal.mercury.on(_constants.OFFLINE, function () {
|
|
4872
4960
|
_loggerProxy.default.logger.error('Meeting:index#setMercuryListener --> Web socket offline');
|
|
4873
4961
|
// @ts-ignore
|
|
4874
|
-
|
|
4962
|
+
_this25.webex.internal.newMetrics.submitClientEvent({
|
|
4875
4963
|
name: 'client.mercury.connection.lost',
|
|
4876
4964
|
options: {
|
|
4877
|
-
meetingId:
|
|
4965
|
+
meetingId: _this25.id
|
|
4878
4966
|
}
|
|
4879
4967
|
});
|
|
4880
4968
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_FAILURE, {
|
|
4881
|
-
correlation_id:
|
|
4969
|
+
correlation_id: _this25.correlationId
|
|
4882
4970
|
});
|
|
4883
4971
|
});
|
|
4884
4972
|
}
|
|
@@ -4980,7 +5068,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4980
5068
|
}, {
|
|
4981
5069
|
key: "muteAudio",
|
|
4982
5070
|
value: function muteAudio() {
|
|
4983
|
-
var
|
|
5071
|
+
var _this26 = this;
|
|
4984
5072
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
|
4985
5073
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
4986
5074
|
}
|
|
@@ -4996,22 +5084,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4996
5084
|
|
|
4997
5085
|
// First, stop sending the local audio media
|
|
4998
5086
|
return logRequest(this.audio.handleClientRequest(this, true).then(function () {
|
|
4999
|
-
_util2.default.handleAudioLogging(
|
|
5087
|
+
_util2.default.handleAudioLogging(_this26.mediaProperties.audioStream);
|
|
5000
5088
|
// @ts-ignore
|
|
5001
|
-
|
|
5089
|
+
_this26.webex.internal.newMetrics.submitClientEvent({
|
|
5002
5090
|
name: 'client.muted',
|
|
5003
5091
|
payload: {
|
|
5004
5092
|
trigger: 'user-interaction',
|
|
5005
5093
|
mediaType: 'audio'
|
|
5006
5094
|
},
|
|
5007
5095
|
options: {
|
|
5008
|
-
meetingId:
|
|
5096
|
+
meetingId: _this26.id
|
|
5009
5097
|
}
|
|
5010
5098
|
});
|
|
5011
5099
|
}).catch(function (error) {
|
|
5012
5100
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_AUDIO_FAILURE, {
|
|
5013
|
-
correlation_id:
|
|
5014
|
-
locus_id:
|
|
5101
|
+
correlation_id: _this26.correlationId,
|
|
5102
|
+
locus_id: _this26.locusUrl.split('/').pop(),
|
|
5015
5103
|
reason: error.message,
|
|
5016
5104
|
stack: error.stack
|
|
5017
5105
|
});
|
|
@@ -5030,7 +5118,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5030
5118
|
}, {
|
|
5031
5119
|
key: "unmuteAudio",
|
|
5032
5120
|
value: function unmuteAudio() {
|
|
5033
|
-
var
|
|
5121
|
+
var _this27 = this;
|
|
5034
5122
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
|
5035
5123
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
5036
5124
|
}
|
|
@@ -5046,22 +5134,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5046
5134
|
|
|
5047
5135
|
// First, send the control to unmute the participant on the server
|
|
5048
5136
|
return logRequest(this.audio.handleClientRequest(this, false).then(function () {
|
|
5049
|
-
_util2.default.handleAudioLogging(
|
|
5137
|
+
_util2.default.handleAudioLogging(_this27.mediaProperties.audioStream);
|
|
5050
5138
|
// @ts-ignore
|
|
5051
|
-
|
|
5139
|
+
_this27.webex.internal.newMetrics.submitClientEvent({
|
|
5052
5140
|
name: 'client.unmuted',
|
|
5053
5141
|
payload: {
|
|
5054
5142
|
trigger: 'user-interaction',
|
|
5055
5143
|
mediaType: 'audio'
|
|
5056
5144
|
},
|
|
5057
5145
|
options: {
|
|
5058
|
-
meetingId:
|
|
5146
|
+
meetingId: _this27.id
|
|
5059
5147
|
}
|
|
5060
5148
|
});
|
|
5061
5149
|
}).catch(function (error) {
|
|
5062
5150
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_AUDIO_FAILURE, {
|
|
5063
|
-
correlation_id:
|
|
5064
|
-
locus_id:
|
|
5151
|
+
correlation_id: _this27.correlationId,
|
|
5152
|
+
locus_id: _this27.locusUrl.split('/').pop(),
|
|
5065
5153
|
reason: error.message,
|
|
5066
5154
|
stack: error.stack
|
|
5067
5155
|
});
|
|
@@ -5080,7 +5168,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5080
5168
|
}, {
|
|
5081
5169
|
key: "muteVideo",
|
|
5082
5170
|
value: function muteVideo() {
|
|
5083
|
-
var
|
|
5171
|
+
var _this28 = this;
|
|
5084
5172
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
|
5085
5173
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
5086
5174
|
}
|
|
@@ -5094,22 +5182,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5094
5182
|
return _promise.default.reject(new _parameter.default('no video control associated to the meeting'));
|
|
5095
5183
|
}
|
|
5096
5184
|
return logRequest(this.video.handleClientRequest(this, true).then(function () {
|
|
5097
|
-
_util2.default.handleVideoLogging(
|
|
5185
|
+
_util2.default.handleVideoLogging(_this28.mediaProperties.videoStream);
|
|
5098
5186
|
// @ts-ignore
|
|
5099
|
-
|
|
5187
|
+
_this28.webex.internal.newMetrics.submitClientEvent({
|
|
5100
5188
|
name: 'client.muted',
|
|
5101
5189
|
payload: {
|
|
5102
5190
|
trigger: 'user-interaction',
|
|
5103
5191
|
mediaType: 'video'
|
|
5104
5192
|
},
|
|
5105
5193
|
options: {
|
|
5106
|
-
meetingId:
|
|
5194
|
+
meetingId: _this28.id
|
|
5107
5195
|
}
|
|
5108
5196
|
});
|
|
5109
5197
|
}).catch(function (error) {
|
|
5110
5198
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_VIDEO_FAILURE, {
|
|
5111
|
-
correlation_id:
|
|
5112
|
-
locus_id:
|
|
5199
|
+
correlation_id: _this28.correlationId,
|
|
5200
|
+
locus_id: _this28.locusUrl.split('/').pop(),
|
|
5113
5201
|
reason: error.message,
|
|
5114
5202
|
stack: error.stack
|
|
5115
5203
|
});
|
|
@@ -5128,7 +5216,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5128
5216
|
}, {
|
|
5129
5217
|
key: "unmuteVideo",
|
|
5130
5218
|
value: function unmuteVideo() {
|
|
5131
|
-
var
|
|
5219
|
+
var _this29 = this;
|
|
5132
5220
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
|
5133
5221
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
5134
5222
|
}
|
|
@@ -5142,22 +5230,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5142
5230
|
return _promise.default.reject(new _parameter.default('no audio control associated to the meeting'));
|
|
5143
5231
|
}
|
|
5144
5232
|
return logRequest(this.video.handleClientRequest(this, false).then(function () {
|
|
5145
|
-
_util2.default.handleVideoLogging(
|
|
5233
|
+
_util2.default.handleVideoLogging(_this29.mediaProperties.videoStream);
|
|
5146
5234
|
// @ts-ignore
|
|
5147
|
-
|
|
5235
|
+
_this29.webex.internal.newMetrics.submitClientEvent({
|
|
5148
5236
|
name: 'client.unmuted',
|
|
5149
5237
|
payload: {
|
|
5150
5238
|
trigger: 'user-interaction',
|
|
5151
5239
|
mediaType: 'video'
|
|
5152
5240
|
},
|
|
5153
5241
|
options: {
|
|
5154
|
-
meetingId:
|
|
5242
|
+
meetingId: _this29.id
|
|
5155
5243
|
}
|
|
5156
5244
|
});
|
|
5157
5245
|
}).catch(function (error) {
|
|
5158
5246
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_VIDEO_FAILURE, {
|
|
5159
|
-
correlation_id:
|
|
5160
|
-
locus_id:
|
|
5247
|
+
correlation_id: _this29.correlationId,
|
|
5248
|
+
locus_id: _this29.locusUrl.split('/').pop(),
|
|
5161
5249
|
reason: error.message,
|
|
5162
5250
|
stack: error.stack
|
|
5163
5251
|
});
|
|
@@ -5187,7 +5275,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5187
5275
|
key: "joinWithMedia",
|
|
5188
5276
|
value: (function () {
|
|
5189
5277
|
var _joinWithMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15() {
|
|
5190
|
-
var
|
|
5278
|
+
var _this30 = this;
|
|
5191
5279
|
var options,
|
|
5192
5280
|
mediaOptions,
|
|
5193
5281
|
_options$joinOptions,
|
|
@@ -5270,7 +5358,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5270
5358
|
case 35:
|
|
5271
5359
|
_context15.next = 37;
|
|
5272
5360
|
return this.addMediaInternal(function () {
|
|
5273
|
-
return
|
|
5361
|
+
return _this30.joinWithMediaRetryInfo.isRetry ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
|
5274
5362
|
}, turnServerInfo, forceTurnDiscovery, mediaOptions);
|
|
5275
5363
|
case 37:
|
|
5276
5364
|
mediaResponse = _context15.sent;
|
|
@@ -5362,7 +5450,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5362
5450
|
}, {
|
|
5363
5451
|
key: "reconnect",
|
|
5364
5452
|
value: function reconnect(options) {
|
|
5365
|
-
var
|
|
5453
|
+
var _this31 = this;
|
|
5366
5454
|
_loggerProxy.default.logger.log("Meeting:index#reconnect --> attempting to reconnect meeting ".concat(this.id));
|
|
5367
5455
|
if (!this.reconnectionManager || !this.reconnectionManager.reconnect) {
|
|
5368
5456
|
return _promise.default.reject(new _parameter.default('Cannot reconnect, ReconnectionManager must first be defined.'));
|
|
@@ -5378,10 +5466,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5378
5466
|
while (1) switch (_context16.prev = _context16.next) {
|
|
5379
5467
|
case 0:
|
|
5380
5468
|
_context16.next = 2;
|
|
5381
|
-
return
|
|
5469
|
+
return _this31.waitForRemoteSDPAnswer();
|
|
5382
5470
|
case 2:
|
|
5383
5471
|
_context16.next = 4;
|
|
5384
|
-
return
|
|
5472
|
+
return _this31.waitForMediaConnectionConnected();
|
|
5385
5473
|
case 4:
|
|
5386
5474
|
case "end":
|
|
5387
5475
|
return _context16.stop();
|
|
@@ -5395,7 +5483,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5395
5483
|
return _promise.default.resolve();
|
|
5396
5484
|
}
|
|
5397
5485
|
_loggerProxy.default.logger.error('Meeting:index#reconnect --> Meeting reconnect failed', error);
|
|
5398
|
-
|
|
5486
|
+
_this31.uploadLogs({
|
|
5399
5487
|
file: 'meeting/index',
|
|
5400
5488
|
function: 'reconnect'
|
|
5401
5489
|
});
|
|
@@ -5442,19 +5530,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5442
5530
|
}, {
|
|
5443
5531
|
key: "setCaptionLanguage",
|
|
5444
5532
|
value: function setCaptionLanguage(language) {
|
|
5445
|
-
var
|
|
5533
|
+
var _this32 = this;
|
|
5446
5534
|
return new _promise.default(function (resolve, reject) {
|
|
5447
|
-
if (!
|
|
5535
|
+
if (!_this32.isTranscriptionSupported()) {
|
|
5448
5536
|
_loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
|
|
5449
5537
|
reject(new Error('Webex Assistant is not enabled/supported'));
|
|
5450
5538
|
}
|
|
5451
5539
|
try {
|
|
5452
5540
|
var voiceaListenerCaptionUpdate = function voiceaListenerCaptionUpdate(payload) {
|
|
5453
5541
|
// @ts-ignore
|
|
5454
|
-
|
|
5542
|
+
_this32.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
|
|
5455
5543
|
var statusCode = payload.statusCode;
|
|
5456
5544
|
if (statusCode === 200) {
|
|
5457
|
-
|
|
5545
|
+
_this32.transcription.languageOptions = _objectSpread(_objectSpread({}, _this32.transcription.languageOptions), {}, {
|
|
5458
5546
|
currentCaptionLanguage: language
|
|
5459
5547
|
});
|
|
5460
5548
|
resolve(language);
|
|
@@ -5463,9 +5551,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5463
5551
|
}
|
|
5464
5552
|
};
|
|
5465
5553
|
// @ts-ignore
|
|
5466
|
-
|
|
5554
|
+
_this32.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
|
|
5467
5555
|
// @ts-ignore
|
|
5468
|
-
|
|
5556
|
+
_this32.webex.internal.voicea.requestLanguage(language);
|
|
5469
5557
|
} catch (error) {
|
|
5470
5558
|
_loggerProxy.default.logger.error("Meeting:index#setCaptionLanguage --> ".concat(error));
|
|
5471
5559
|
reject(error);
|
|
@@ -5481,23 +5569,23 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5481
5569
|
}, {
|
|
5482
5570
|
key: "setSpokenLanguage",
|
|
5483
5571
|
value: function setSpokenLanguage(language) {
|
|
5484
|
-
var
|
|
5572
|
+
var _this33 = this;
|
|
5485
5573
|
return new _promise.default(function (resolve, reject) {
|
|
5486
|
-
if (!
|
|
5574
|
+
if (!_this33.isTranscriptionSupported()) {
|
|
5487
5575
|
_loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
|
|
5488
5576
|
reject(new Error('Webex Assistant is not enabled/supported'));
|
|
5489
5577
|
}
|
|
5490
|
-
if (
|
|
5578
|
+
if (_this33.getCurUserType() !== 'host') {
|
|
5491
5579
|
_loggerProxy.default.logger.error('Meeting:index#setSpokenLanguage --> Only host can set spoken language');
|
|
5492
5580
|
reject(new Error('Only host can set spoken language'));
|
|
5493
5581
|
}
|
|
5494
5582
|
try {
|
|
5495
5583
|
var voiceaListenerLanguageUpdate = function voiceaListenerLanguageUpdate(payload) {
|
|
5496
5584
|
// @ts-ignore
|
|
5497
|
-
|
|
5585
|
+
_this33.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
|
|
5498
5586
|
var languageCode = payload.languageCode;
|
|
5499
5587
|
if (languageCode) {
|
|
5500
|
-
|
|
5588
|
+
_this33.transcription.languageOptions = _objectSpread(_objectSpread({}, _this33.transcription.languageOptions), {}, {
|
|
5501
5589
|
currentSpokenLanguage: languageCode
|
|
5502
5590
|
});
|
|
5503
5591
|
resolve(languageCode);
|
|
@@ -5507,10 +5595,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5507
5595
|
};
|
|
5508
5596
|
|
|
5509
5597
|
// @ts-ignore
|
|
5510
|
-
|
|
5598
|
+
_this33.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
|
|
5511
5599
|
|
|
5512
5600
|
// @ts-ignore
|
|
5513
|
-
|
|
5601
|
+
_this33.webex.internal.voicea.setSpokenLanguage(language);
|
|
5514
5602
|
} catch (error) {
|
|
5515
5603
|
_loggerProxy.default.logger.error("Meeting:index#setSpokenLanguage --> ".concat(error));
|
|
5516
5604
|
reject(error);
|
|
@@ -5630,7 +5718,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5630
5718
|
*/
|
|
5631
5719
|
function () {
|
|
5632
5720
|
var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18() {
|
|
5633
|
-
var
|
|
5721
|
+
var _this34 = this;
|
|
5634
5722
|
var options,
|
|
5635
5723
|
errorMessage,
|
|
5636
5724
|
error,
|
|
@@ -5776,62 +5864,62 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5776
5864
|
return _context18.abrupt("return", _promise.default.reject(_context18.t0));
|
|
5777
5865
|
case 51:
|
|
5778
5866
|
return _context18.abrupt("return", _util2.default.joinMeetingOptions(this, options).then(function (join) {
|
|
5779
|
-
|
|
5780
|
-
|
|
5867
|
+
_this34.meetingFiniteStateMachine.join();
|
|
5868
|
+
_this34.setupLocusMediaRequest();
|
|
5781
5869
|
|
|
5782
5870
|
// @ts-ignore
|
|
5783
|
-
|
|
5784
|
-
(0, _classPrivateFieldSet2.default)(
|
|
5871
|
+
_this34.webex.internal.device.meetingStarted();
|
|
5872
|
+
(0, _classPrivateFieldSet2.default)(_this34, _isoLocalClientMeetingJoinTime, new Date().toISOString());
|
|
5785
5873
|
_loggerProxy.default.logger.log('Meeting:index#join --> Success');
|
|
5786
5874
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
|
|
5787
|
-
correlation_id:
|
|
5875
|
+
correlation_id: _this34.correlationId
|
|
5788
5876
|
});
|
|
5789
5877
|
joinSuccess(join);
|
|
5790
|
-
|
|
5878
|
+
_this34.deferJoin = undefined;
|
|
5791
5879
|
return join;
|
|
5792
5880
|
}).catch(function (error) {
|
|
5793
|
-
var
|
|
5794
|
-
|
|
5881
|
+
var _this34$meetingInfo, _error$error;
|
|
5882
|
+
_this34.meetingFiniteStateMachine.fail(error);
|
|
5795
5883
|
_loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
|
|
5796
5884
|
|
|
5797
5885
|
// @ts-ignore
|
|
5798
|
-
|
|
5886
|
+
_this34.webex.internal.newMetrics.submitClientEvent({
|
|
5799
5887
|
name: 'client.locus.join.response',
|
|
5800
5888
|
payload: {
|
|
5801
5889
|
identifiers: {
|
|
5802
|
-
meetingLookupUrl: (
|
|
5890
|
+
meetingLookupUrl: (_this34$meetingInfo = _this34.meetingInfo) === null || _this34$meetingInfo === void 0 ? void 0 : _this34$meetingInfo.meetingLookupUrl
|
|
5803
5891
|
}
|
|
5804
5892
|
},
|
|
5805
5893
|
options: {
|
|
5806
|
-
meetingId:
|
|
5894
|
+
meetingId: _this34.id,
|
|
5807
5895
|
rawError: error
|
|
5808
5896
|
}
|
|
5809
5897
|
});
|
|
5810
5898
|
|
|
5811
5899
|
// TODO: change this to error codes and pre defined dictionary
|
|
5812
5900
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
|
|
5813
|
-
correlation_id:
|
|
5901
|
+
correlation_id: _this34.correlationId,
|
|
5814
5902
|
reason: (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.message,
|
|
5815
5903
|
stack: error.stack
|
|
5816
5904
|
});
|
|
5817
5905
|
|
|
5818
5906
|
// Upload logs on join Failure
|
|
5819
|
-
_triggerProxy.default.trigger(
|
|
5907
|
+
_triggerProxy.default.trigger(_this34, {
|
|
5820
5908
|
file: 'meeting/index',
|
|
5821
5909
|
function: 'join'
|
|
5822
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
5910
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this34);
|
|
5823
5911
|
joinFailed(error);
|
|
5824
|
-
|
|
5912
|
+
_this34.deferJoin = undefined;
|
|
5825
5913
|
return _promise.default.reject(error);
|
|
5826
5914
|
}).then(function (join) {
|
|
5827
5915
|
// @ts-ignore - config coming from registerPlugin
|
|
5828
|
-
if (
|
|
5916
|
+
if (_this34.config.enableAutomaticLLM) {
|
|
5829
5917
|
// @ts-ignore
|
|
5830
|
-
|
|
5831
|
-
|
|
5918
|
+
_this34.webex.internal.llm.on('online', _this34.handleLLMOnline);
|
|
5919
|
+
_this34.updateLLMConnection().catch(function (error) {
|
|
5832
5920
|
_loggerProxy.default.logger.error('Meeting:index#join --> Transcription Socket Connection Failed', error);
|
|
5833
5921
|
_metrics.default.sendBehavioralMetric(_constants2.default.LLM_CONNECTION_AFTER_JOIN_FAILURE, {
|
|
5834
|
-
correlation_id:
|
|
5922
|
+
correlation_id: _this34.correlationId,
|
|
5835
5923
|
reason: error === null || error === void 0 ? void 0 : error.message,
|
|
5836
5924
|
stack: error.stack
|
|
5837
5925
|
});
|
|
@@ -5863,7 +5951,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5863
5951
|
key: "updateLLMConnection",
|
|
5864
5952
|
value: (function () {
|
|
5865
5953
|
var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
|
|
5866
|
-
var
|
|
5954
|
+
var _this35 = this;
|
|
5867
5955
|
var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, isJoined;
|
|
5868
5956
|
return _regenerator.default.wrap(function _callee19$(_context19) {
|
|
5869
5957
|
while (1) switch (_context19.prev = _context19.next) {
|
|
@@ -5899,9 +5987,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5899
5987
|
case 10:
|
|
5900
5988
|
return _context19.abrupt("return", this.webex.internal.llm.registerAndConnect(url, datachannelUrl).then(function (registerAndConnectResult) {
|
|
5901
5989
|
// @ts-ignore - Fix type
|
|
5902
|
-
|
|
5990
|
+
_this35.webex.internal.llm.off('event:relay.event', _this35.processRelayEvent);
|
|
5903
5991
|
// @ts-ignore - Fix type
|
|
5904
|
-
|
|
5992
|
+
_this35.webex.internal.llm.on('event:relay.event', _this35.processRelayEvent);
|
|
5905
5993
|
_loggerProxy.default.logger.info('Meeting:index#updateLLMConnection --> enabled to receive relay events!');
|
|
5906
5994
|
return _promise.default.resolve(registerAndConnectResult);
|
|
5907
5995
|
}));
|
|
@@ -5955,7 +6043,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5955
6043
|
}, {
|
|
5956
6044
|
key: "dialInPstn",
|
|
5957
6045
|
value: function dialInPstn() {
|
|
5958
|
-
var
|
|
6046
|
+
var _this36 = this;
|
|
5959
6047
|
if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
|
|
5960
6048
|
|
|
5961
6049
|
var correlationId = this.correlationId,
|
|
@@ -5971,10 +6059,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5971
6059
|
}).catch(function (error) {
|
|
5972
6060
|
var _error$error2;
|
|
5973
6061
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
|
|
5974
|
-
correlation_id:
|
|
5975
|
-
dial_in_url:
|
|
6062
|
+
correlation_id: _this36.correlationId,
|
|
6063
|
+
dial_in_url: _this36.dialInUrl,
|
|
5976
6064
|
locus_id: locusUrl.split('/').pop(),
|
|
5977
|
-
client_url:
|
|
6065
|
+
client_url: _this36.deviceUrl,
|
|
5978
6066
|
reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
|
|
5979
6067
|
stack: error.stack
|
|
5980
6068
|
});
|
|
@@ -5992,7 +6080,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5992
6080
|
}, {
|
|
5993
6081
|
key: "dialOutPstn",
|
|
5994
6082
|
value: function dialOutPstn(phoneNumber) {
|
|
5995
|
-
var
|
|
6083
|
+
var _this37 = this;
|
|
5996
6084
|
if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
|
|
5997
6085
|
|
|
5998
6086
|
var correlationId = this.correlationId,
|
|
@@ -6009,10 +6097,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6009
6097
|
}).catch(function (error) {
|
|
6010
6098
|
var _error$error3;
|
|
6011
6099
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
|
|
6012
|
-
correlation_id:
|
|
6013
|
-
dial_out_url:
|
|
6100
|
+
correlation_id: _this37.correlationId,
|
|
6101
|
+
dial_out_url: _this37.dialOutUrl,
|
|
6014
6102
|
locus_id: locusUrl.split('/').pop(),
|
|
6015
|
-
client_url:
|
|
6103
|
+
client_url: _this37.deviceUrl,
|
|
6016
6104
|
reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
|
|
6017
6105
|
stack: error.stack
|
|
6018
6106
|
});
|
|
@@ -6043,7 +6131,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6043
6131
|
}, {
|
|
6044
6132
|
key: "moveTo",
|
|
6045
6133
|
value: function moveTo(resourceId) {
|
|
6046
|
-
var
|
|
6134
|
+
var _this38 = this;
|
|
6047
6135
|
if (!resourceId) {
|
|
6048
6136
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
|
6049
6137
|
}
|
|
@@ -6087,12 +6175,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6087
6175
|
while (1) switch (_context20.prev = _context20.next) {
|
|
6088
6176
|
case 0:
|
|
6089
6177
|
_context20.prev = 0;
|
|
6090
|
-
if (!(
|
|
6178
|
+
if (!(_this38.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
|
|
6091
6179
|
_context20.next = 4;
|
|
6092
6180
|
break;
|
|
6093
6181
|
}
|
|
6094
6182
|
_context20.next = 4;
|
|
6095
|
-
return
|
|
6183
|
+
return _this38.releaseScreenShareFloor();
|
|
6096
6184
|
case 4:
|
|
6097
6185
|
mediaSettings = {
|
|
6098
6186
|
mediaDirection: {
|
|
@@ -6104,37 +6192,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6104
6192
|
receiveShare: true
|
|
6105
6193
|
}
|
|
6106
6194
|
};
|
|
6107
|
-
|
|
6108
|
-
|
|
6195
|
+
_this38.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
|
|
6196
|
+
_this38.mediaProperties.unsetRemoteMedia();
|
|
6109
6197
|
|
|
6110
6198
|
// when a move to is intiated by the client , Locus delets the existing media node from the server as soon the device answers the meeting
|
|
6111
6199
|
// once the device answers we close the old connection and create new media server connection with only share enabled
|
|
6112
|
-
if (!
|
|
6200
|
+
if (!_this38.statsAnalyzer) {
|
|
6113
6201
|
_context20.next = 10;
|
|
6114
6202
|
break;
|
|
6115
6203
|
}
|
|
6116
6204
|
_context20.next = 10;
|
|
6117
|
-
return
|
|
6205
|
+
return _this38.statsAnalyzer.stopAnalyzer();
|
|
6118
6206
|
case 10:
|
|
6119
6207
|
_context20.next = 12;
|
|
6120
|
-
return
|
|
6208
|
+
return _this38.closeRemoteStreams();
|
|
6121
6209
|
case 12:
|
|
6122
6210
|
_context20.next = 14;
|
|
6123
|
-
return
|
|
6211
|
+
return _this38.closePeerConnections();
|
|
6124
6212
|
case 14:
|
|
6125
|
-
|
|
6126
|
-
|
|
6127
|
-
|
|
6128
|
-
|
|
6213
|
+
_this38.cleanupLocalStreams();
|
|
6214
|
+
_this38.unsetRemoteStreams();
|
|
6215
|
+
_this38.unsetPeerConnections();
|
|
6216
|
+
_this38.reconnectionManager.cleanUp();
|
|
6129
6217
|
_context20.next = 20;
|
|
6130
|
-
return
|
|
6218
|
+
return _this38.addMedia({
|
|
6131
6219
|
audioEnabled: false,
|
|
6132
6220
|
videoEnabled: false,
|
|
6133
6221
|
shareVideoEnabled: true
|
|
6134
6222
|
});
|
|
6135
6223
|
case 20:
|
|
6136
6224
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
|
|
6137
|
-
|
|
6225
|
+
_this38.isMoveToInProgress = false;
|
|
6138
6226
|
_context20.next = 29;
|
|
6139
6227
|
break;
|
|
6140
6228
|
case 24:
|
|
@@ -6142,12 +6230,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6142
6230
|
_context20.t0 = _context20["catch"](0);
|
|
6143
6231
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context20.t0);
|
|
6144
6232
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
|
6145
|
-
correlation_id:
|
|
6146
|
-
locus_id:
|
|
6233
|
+
correlation_id: _this38.correlationId,
|
|
6234
|
+
locus_id: _this38.locusUrl.split('/').pop(),
|
|
6147
6235
|
reason: _context20.t0.message,
|
|
6148
6236
|
stack: _context20.t0.stack
|
|
6149
6237
|
});
|
|
6150
|
-
|
|
6238
|
+
_this38.isMoveToInProgress = false;
|
|
6151
6239
|
case 29:
|
|
6152
6240
|
case "end":
|
|
6153
6241
|
return _context20.stop();
|
|
@@ -6163,17 +6251,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6163
6251
|
resourceId: resourceId,
|
|
6164
6252
|
moveToResource: true
|
|
6165
6253
|
}).then(function () {
|
|
6166
|
-
|
|
6254
|
+
_this38.meetingFiniteStateMachine.join();
|
|
6167
6255
|
}).catch(function (error) {
|
|
6168
|
-
|
|
6256
|
+
_this38.meetingFiniteStateMachine.fail(error);
|
|
6169
6257
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
|
6170
|
-
correlation_id:
|
|
6171
|
-
locus_id:
|
|
6258
|
+
correlation_id: _this38.correlationId,
|
|
6259
|
+
locus_id: _this38.locusUrl.split('/').pop(),
|
|
6172
6260
|
reason: error.message,
|
|
6173
6261
|
stack: error.stack
|
|
6174
6262
|
});
|
|
6175
6263
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', error);
|
|
6176
|
-
|
|
6264
|
+
_this38.isMoveToInProgress = false;
|
|
6177
6265
|
return _promise.default.reject(error);
|
|
6178
6266
|
});
|
|
6179
6267
|
}
|
|
@@ -6188,7 +6276,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6188
6276
|
}, {
|
|
6189
6277
|
key: "moveFrom",
|
|
6190
6278
|
value: function moveFrom(resourceId) {
|
|
6191
|
-
var
|
|
6279
|
+
var _this39 = this;
|
|
6192
6280
|
// On moveFrom ask the developer to re capture it moveFrom then updateMedia
|
|
6193
6281
|
if (!resourceId) {
|
|
6194
6282
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
|
@@ -6203,19 +6291,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6203
6291
|
}
|
|
6204
6292
|
});
|
|
6205
6293
|
return _util2.default.joinMeetingOptions(this).then(function () {
|
|
6206
|
-
return _util2.default.leaveMeeting(
|
|
6294
|
+
return _util2.default.leaveMeeting(_this39, {
|
|
6207
6295
|
resourceId: resourceId,
|
|
6208
6296
|
correlationId: oldCorrelationId,
|
|
6209
6297
|
moveMeeting: true
|
|
6210
6298
|
}).then(function () {
|
|
6211
|
-
|
|
6299
|
+
_this39.resourceId = '';
|
|
6212
6300
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
|
|
6213
6301
|
});
|
|
6214
6302
|
}).catch(function (error) {
|
|
6215
|
-
|
|
6303
|
+
_this39.meetingFiniteStateMachine.fail(error);
|
|
6216
6304
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
|
|
6217
|
-
correlation_id:
|
|
6218
|
-
locus_id:
|
|
6305
|
+
correlation_id: _this39.correlationId,
|
|
6306
|
+
locus_id: _this39.locusUrl.split('/').pop(),
|
|
6219
6307
|
reason: error.message,
|
|
6220
6308
|
stack: error.stack
|
|
6221
6309
|
});
|
|
@@ -6328,9 +6416,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6328
6416
|
}, {
|
|
6329
6417
|
key: "forwardEvent",
|
|
6330
6418
|
value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
|
|
6331
|
-
var
|
|
6419
|
+
var _this40 = this;
|
|
6332
6420
|
eventEmitter.on(eventTypeToForward, function (data) {
|
|
6333
|
-
return _triggerProxy.default.trigger(
|
|
6421
|
+
return _triggerProxy.default.trigger(_this40, {
|
|
6334
6422
|
file: 'meetings',
|
|
6335
6423
|
function: 'addMedia'
|
|
6336
6424
|
}, meetingEventType, data);
|
|
@@ -6517,7 +6605,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6517
6605
|
*/
|
|
6518
6606
|
function () {
|
|
6519
6607
|
var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24() {
|
|
6520
|
-
var
|
|
6608
|
+
var _this41 = this;
|
|
6521
6609
|
var LOG_HEADER, deferSDPAnswer;
|
|
6522
6610
|
return _regenerator.default.wrap(function _callee24$(_context24) {
|
|
6523
6611
|
while (1) switch (_context24.prev = _context24.next) {
|
|
@@ -6534,18 +6622,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6534
6622
|
this.sdpResponseTimer = setTimeout(function () {
|
|
6535
6623
|
_loggerProxy.default.logger.warn("".concat(LOG_HEADER, " timeout! no REMOTE SDP ANSWER received within ").concat(_constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT / 1000, " seconds"));
|
|
6536
6624
|
// @ts-ignore
|
|
6537
|
-
|
|
6625
|
+
_this41.webex.internal.newMetrics.submitClientEvent({
|
|
6538
6626
|
name: 'client.media-engine.remote-sdp-received',
|
|
6539
6627
|
payload: {
|
|
6540
6628
|
canProceed: false,
|
|
6541
6629
|
errors: [
|
|
6542
6630
|
// @ts-ignore
|
|
6543
|
-
|
|
6631
|
+
_this41.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
|
|
6544
6632
|
clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
|
|
6545
6633
|
})]
|
|
6546
6634
|
},
|
|
6547
6635
|
options: {
|
|
6548
|
-
meetingId:
|
|
6636
|
+
meetingId: _this41.id,
|
|
6549
6637
|
rawError: new Error('Timeout waiting for SDP answer')
|
|
6550
6638
|
}
|
|
6551
6639
|
});
|
|
@@ -7009,10 +7097,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7009
7097
|
}, {
|
|
7010
7098
|
key: "addMedia",
|
|
7011
7099
|
value: function addMedia() {
|
|
7012
|
-
var
|
|
7100
|
+
var _this42 = this;
|
|
7013
7101
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7014
7102
|
return this.addMediaInternal(function () {
|
|
7015
|
-
return
|
|
7103
|
+
return _this42.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
|
7016
7104
|
}, undefined, false, options);
|
|
7017
7105
|
}
|
|
7018
7106
|
|
|
@@ -7212,21 +7300,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7212
7300
|
|
|
7213
7301
|
// We can log ReceiveSlot SSRCs only after the SDP exchange, so doing it here:
|
|
7214
7302
|
(_this$remoteMediaMana = this.remoteMediaManager) === null || _this$remoteMediaMana === void 0 ? void 0 : _this$remoteMediaMana.logAllReceiveSlots();
|
|
7215
|
-
|
|
7303
|
+
this.startPeriodicLogUpload();
|
|
7304
|
+
_context33.next = 69;
|
|
7216
7305
|
break;
|
|
7217
|
-
case
|
|
7218
|
-
_context33.prev =
|
|
7306
|
+
case 51:
|
|
7307
|
+
_context33.prev = 51;
|
|
7219
7308
|
_context33.t0 = _context33["catch"](18);
|
|
7220
7309
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context33.t0);
|
|
7221
7310
|
|
|
7222
7311
|
// @ts-ignore
|
|
7223
|
-
_context33.next =
|
|
7312
|
+
_context33.next = 56;
|
|
7224
7313
|
return this.webex.meetings.reachability.getReachabilityMetrics();
|
|
7225
|
-
case
|
|
7314
|
+
case 56:
|
|
7226
7315
|
reachabilityMetrics = _context33.sent;
|
|
7227
|
-
_context33.next =
|
|
7316
|
+
_context33.next = 59;
|
|
7228
7317
|
return this.mediaProperties.getCurrentConnectionInfo();
|
|
7229
|
-
case
|
|
7318
|
+
case 59:
|
|
7230
7319
|
_yield$this$mediaProp2 = _context33.sent;
|
|
7231
7320
|
_selectedCandidatePairChanges = _yield$this$mediaProp2.selectedCandidatePairChanges;
|
|
7232
7321
|
_numTransports = _yield$this$mediaProp2.numTransports;
|
|
@@ -7250,9 +7339,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7250
7339
|
}, reachabilityMetrics), _iceCandidateErrors), {}, {
|
|
7251
7340
|
iceCandidatesCount: this.iceCandidatesCount
|
|
7252
7341
|
}));
|
|
7253
|
-
_context33.next =
|
|
7342
|
+
_context33.next = 66;
|
|
7254
7343
|
return this.cleanUpOnAddMediaFailure();
|
|
7255
|
-
case
|
|
7344
|
+
case 66:
|
|
7256
7345
|
// Upload logs on error while adding media
|
|
7257
7346
|
_triggerProxy.default.trigger(this, {
|
|
7258
7347
|
file: 'meeting/index',
|
|
@@ -7264,15 +7353,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7264
7353
|
});
|
|
7265
7354
|
}
|
|
7266
7355
|
throw _context33.t0;
|
|
7267
|
-
case
|
|
7268
|
-
_context33.prev =
|
|
7356
|
+
case 69:
|
|
7357
|
+
_context33.prev = 69;
|
|
7269
7358
|
this.addMediaData.icePhaseCallback = DEFAULT_ICE_PHASE_CALLBACK;
|
|
7270
|
-
return _context33.finish(
|
|
7271
|
-
case
|
|
7359
|
+
return _context33.finish(69);
|
|
7360
|
+
case 72:
|
|
7272
7361
|
case "end":
|
|
7273
7362
|
return _context33.stop();
|
|
7274
7363
|
}
|
|
7275
|
-
}, _callee33, this, [[18,
|
|
7364
|
+
}, _callee33, this, [[18, 51, 69, 72]]);
|
|
7276
7365
|
}));
|
|
7277
7366
|
function addMediaInternal(_x32, _x33, _x34) {
|
|
7278
7367
|
return _addMediaInternal.apply(this, arguments);
|
|
@@ -7304,7 +7393,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7304
7393
|
* @memberof Meeting
|
|
7305
7394
|
*/
|
|
7306
7395
|
function enqueueMediaUpdate(mediaUpdateType) {
|
|
7307
|
-
var
|
|
7396
|
+
var _this43 = this;
|
|
7308
7397
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
7309
7398
|
var canUpdateMediaNow = this.canUpdateMedia();
|
|
7310
7399
|
return new _promise.default(function (resolve, reject) {
|
|
@@ -7315,9 +7404,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7315
7404
|
options: options
|
|
7316
7405
|
};
|
|
7317
7406
|
_loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
|
|
7318
|
-
|
|
7407
|
+
_this43.queuedMediaUpdates.push(queueItem);
|
|
7319
7408
|
if (canUpdateMediaNow) {
|
|
7320
|
-
|
|
7409
|
+
_this43.processNextQueuedMediaUpdate();
|
|
7321
7410
|
}
|
|
7322
7411
|
});
|
|
7323
7412
|
}
|
|
@@ -7422,7 +7511,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7422
7511
|
}, {
|
|
7423
7512
|
key: "acknowledge",
|
|
7424
7513
|
value: function acknowledge(type) {
|
|
7425
|
-
var
|
|
7514
|
+
var _this44 = this;
|
|
7426
7515
|
if (!type) {
|
|
7427
7516
|
return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
|
|
7428
7517
|
}
|
|
@@ -7434,12 +7523,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7434
7523
|
}).then(function (response) {
|
|
7435
7524
|
return _promise.default.resolve(response);
|
|
7436
7525
|
}).then(function (response) {
|
|
7437
|
-
|
|
7526
|
+
_this44.meetingFiniteStateMachine.ring(type);
|
|
7438
7527
|
// @ts-ignore
|
|
7439
|
-
|
|
7528
|
+
_this44.webex.internal.newMetrics.submitClientEvent({
|
|
7440
7529
|
name: 'client.alert.displayed',
|
|
7441
7530
|
options: {
|
|
7442
|
-
meetingId:
|
|
7531
|
+
meetingId: _this44.id
|
|
7443
7532
|
}
|
|
7444
7533
|
});
|
|
7445
7534
|
return _promise.default.resolve({
|
|
@@ -7464,12 +7553,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7464
7553
|
}, {
|
|
7465
7554
|
key: "decline",
|
|
7466
7555
|
value: function decline(reason) {
|
|
7467
|
-
var
|
|
7556
|
+
var _this45 = this;
|
|
7468
7557
|
return _util2.default.declineMeeting(this, reason).then(function (decline) {
|
|
7469
|
-
|
|
7558
|
+
_this45.meetingFiniteStateMachine.decline();
|
|
7470
7559
|
return _promise.default.resolve(decline);
|
|
7471
7560
|
}).catch(function (error) {
|
|
7472
|
-
|
|
7561
|
+
_this45.meetingFiniteStateMachine.fail(error);
|
|
7473
7562
|
return _promise.default.reject(error);
|
|
7474
7563
|
});
|
|
7475
7564
|
}
|
|
@@ -7520,7 +7609,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7520
7609
|
}, {
|
|
7521
7610
|
key: "leave",
|
|
7522
7611
|
value: function leave() {
|
|
7523
|
-
var
|
|
7612
|
+
var _this46 = this;
|
|
7524
7613
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7525
7614
|
var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
|
|
7526
7615
|
|
|
@@ -7532,7 +7621,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7532
7621
|
var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7533
7622
|
return (
|
|
7534
7623
|
// @ts-ignore
|
|
7535
|
-
|
|
7624
|
+
_this46.webex.internal.newMetrics.submitClientEvent({
|
|
7536
7625
|
name: 'client.call.leave',
|
|
7537
7626
|
payload: _objectSpread({
|
|
7538
7627
|
trigger: 'user-interaction',
|
|
@@ -7540,7 +7629,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7540
7629
|
leaveReason: options.clientEventLeaveReason
|
|
7541
7630
|
}, payload),
|
|
7542
7631
|
options: {
|
|
7543
|
-
meetingId:
|
|
7632
|
+
meetingId: _this46.id
|
|
7544
7633
|
}
|
|
7545
7634
|
})
|
|
7546
7635
|
);
|
|
@@ -7549,24 +7638,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7549
7638
|
return _util2.default.leaveMeeting(this, options).then(function (leave) {
|
|
7550
7639
|
// CA team recommends submitting this *after* locus /leave
|
|
7551
7640
|
submitLeaveMetric();
|
|
7552
|
-
|
|
7553
|
-
|
|
7641
|
+
_this46.meetingFiniteStateMachine.leave();
|
|
7642
|
+
_this46.clearMeetingData();
|
|
7554
7643
|
|
|
7555
7644
|
// upload logs on leave irrespective of meeting delete
|
|
7556
|
-
_triggerProxy.default.trigger(
|
|
7645
|
+
_triggerProxy.default.trigger(_this46, {
|
|
7557
7646
|
file: 'meeting/index',
|
|
7558
7647
|
function: 'leave'
|
|
7559
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
7648
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this46);
|
|
7560
7649
|
|
|
7561
7650
|
// TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
|
|
7562
|
-
if (
|
|
7651
|
+
if (_this46.wirelessShare || _this46.guest) {
|
|
7563
7652
|
// If screen sharing clean the meeting object
|
|
7564
|
-
_triggerProxy.default.trigger(
|
|
7653
|
+
_triggerProxy.default.trigger(_this46, {
|
|
7565
7654
|
file: 'meeting/index',
|
|
7566
7655
|
function: 'leave'
|
|
7567
7656
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
|
7568
7657
|
reason: options.reason,
|
|
7569
|
-
meetingId:
|
|
7658
|
+
meetingId: _this46.id
|
|
7570
7659
|
});
|
|
7571
7660
|
}
|
|
7572
7661
|
_loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
|
|
@@ -7583,16 +7672,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7583
7672
|
shownToUser: false
|
|
7584
7673
|
}]
|
|
7585
7674
|
});
|
|
7586
|
-
|
|
7675
|
+
_this46.meetingFiniteStateMachine.fail(error);
|
|
7587
7676
|
_loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
|
|
7588
7677
|
// upload logs on leave irrespective of meeting delete
|
|
7589
|
-
_triggerProxy.default.trigger(
|
|
7678
|
+
_triggerProxy.default.trigger(_this46, {
|
|
7590
7679
|
file: 'meeting/index',
|
|
7591
7680
|
function: 'leave'
|
|
7592
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
7681
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this46);
|
|
7593
7682
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
|
|
7594
|
-
correlation_id:
|
|
7595
|
-
locus_id:
|
|
7683
|
+
correlation_id: _this46.correlationId,
|
|
7684
|
+
locus_id: _this46.locusUrl.split('/').pop(),
|
|
7596
7685
|
reason: error.message,
|
|
7597
7686
|
stack: error.stack,
|
|
7598
7687
|
code: error.code
|
|
@@ -7612,7 +7701,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7612
7701
|
}, {
|
|
7613
7702
|
key: "startWhiteboardShare",
|
|
7614
7703
|
value: function startWhiteboardShare(channelUrl, resourceToken) {
|
|
7615
|
-
var
|
|
7704
|
+
var _this47 = this;
|
|
7616
7705
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
7617
7706
|
return element.name === 'whiteboard';
|
|
7618
7707
|
});
|
|
@@ -7641,13 +7730,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7641
7730
|
body.resourceToken = resourceToken;
|
|
7642
7731
|
}
|
|
7643
7732
|
return this.meetingRequest.changeMeetingFloor(body).then(function () {
|
|
7644
|
-
|
|
7733
|
+
_this47.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
|
7645
7734
|
return _promise.default.resolve();
|
|
7646
7735
|
}).catch(function (error) {
|
|
7647
7736
|
_loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
|
|
7648
7737
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
|
|
7649
|
-
correlation_id:
|
|
7650
|
-
locus_id:
|
|
7738
|
+
correlation_id: _this47.correlationId,
|
|
7739
|
+
locus_id: _this47.locusUrl.split('/').pop(),
|
|
7651
7740
|
reason: error.message,
|
|
7652
7741
|
stack: error.stack,
|
|
7653
7742
|
board: {
|
|
@@ -7670,7 +7759,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7670
7759
|
}, {
|
|
7671
7760
|
key: "stopWhiteboardShare",
|
|
7672
7761
|
value: function stopWhiteboardShare(channelUrl) {
|
|
7673
|
-
var
|
|
7762
|
+
var _this48 = this;
|
|
7674
7763
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
7675
7764
|
return element.name === 'whiteboard';
|
|
7676
7765
|
});
|
|
@@ -7693,8 +7782,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7693
7782
|
}).catch(function (error) {
|
|
7694
7783
|
_loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
|
|
7695
7784
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
|
|
7696
|
-
correlation_id:
|
|
7697
|
-
locus_id:
|
|
7785
|
+
correlation_id: _this48.correlationId,
|
|
7786
|
+
locus_id: _this48.locusUrl.split('/').pop(),
|
|
7698
7787
|
reason: error.message,
|
|
7699
7788
|
stack: error.stack,
|
|
7700
7789
|
board: {
|
|
@@ -7716,7 +7805,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7716
7805
|
}, {
|
|
7717
7806
|
key: "requestScreenShareFloor",
|
|
7718
7807
|
value: function requestScreenShareFloor() {
|
|
7719
|
-
var
|
|
7808
|
+
var _this49 = this;
|
|
7720
7809
|
if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
|
|
7721
7810
|
_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, ")"));
|
|
7722
7811
|
this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
|
@@ -7747,34 +7836,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7747
7836
|
resourceUrl: this.resourceUrl,
|
|
7748
7837
|
shareInstanceId: this.localShareInstanceId
|
|
7749
7838
|
}).then(function () {
|
|
7750
|
-
|
|
7839
|
+
_this49.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
|
|
7751
7840
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
|
|
7752
|
-
correlation_id:
|
|
7753
|
-
locus_id:
|
|
7841
|
+
correlation_id: _this49.correlationId,
|
|
7842
|
+
locus_id: _this49.locusUrl.split('/').pop()
|
|
7754
7843
|
});
|
|
7755
7844
|
return _promise.default.resolve();
|
|
7756
7845
|
}).catch(function (error) {
|
|
7757
7846
|
_loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
|
|
7758
7847
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
|
|
7759
|
-
correlation_id:
|
|
7760
|
-
locus_id:
|
|
7848
|
+
correlation_id: _this49.correlationId,
|
|
7849
|
+
locus_id: _this49.locusUrl.split('/').pop(),
|
|
7761
7850
|
reason: error.message,
|
|
7762
7851
|
stack: error.stack
|
|
7763
7852
|
});
|
|
7764
7853
|
|
|
7765
7854
|
// @ts-ignore
|
|
7766
|
-
|
|
7855
|
+
_this49.webex.internal.newMetrics.submitClientEvent({
|
|
7767
7856
|
name: 'client.share.floor-granted.local',
|
|
7768
7857
|
payload: {
|
|
7769
7858
|
mediaType: 'share',
|
|
7770
7859
|
errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
|
|
7771
|
-
shareInstanceId:
|
|
7860
|
+
shareInstanceId: _this49.localShareInstanceId
|
|
7772
7861
|
},
|
|
7773
7862
|
options: {
|
|
7774
|
-
meetingId:
|
|
7863
|
+
meetingId: _this49.id
|
|
7775
7864
|
}
|
|
7776
7865
|
});
|
|
7777
|
-
|
|
7866
|
+
_this49.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
|
7778
7867
|
return _promise.default.reject(error);
|
|
7779
7868
|
});
|
|
7780
7869
|
}
|
|
@@ -7797,10 +7886,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7797
7886
|
}, {
|
|
7798
7887
|
key: "requestScreenShareFloorIfPending",
|
|
7799
7888
|
value: function requestScreenShareFloorIfPending() {
|
|
7800
|
-
var
|
|
7889
|
+
var _this50 = this;
|
|
7801
7890
|
if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
|
|
7802
7891
|
this.requestScreenShareFloor().then(function () {
|
|
7803
|
-
|
|
7892
|
+
_this50.floorGrantPending = false;
|
|
7804
7893
|
});
|
|
7805
7894
|
}
|
|
7806
7895
|
}
|
|
@@ -7814,7 +7903,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7814
7903
|
}, {
|
|
7815
7904
|
key: "releaseScreenShareFloor",
|
|
7816
7905
|
value: function releaseScreenShareFloor() {
|
|
7817
|
-
var
|
|
7906
|
+
var _this51 = this;
|
|
7818
7907
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
|
7819
7908
|
return element.name === _constants.CONTENT;
|
|
7820
7909
|
});
|
|
@@ -7849,8 +7938,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
7849
7938
|
}).catch(function (error) {
|
|
7850
7939
|
_loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
|
|
7851
7940
|
_metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
|
|
7852
|
-
correlation_id:
|
|
7853
|
-
locus_id:
|
|
7941
|
+
correlation_id: _this51.correlationId,
|
|
7942
|
+
locus_id: _this51.locusUrl.split('/').pop(),
|
|
7854
7943
|
reason: error.message,
|
|
7855
7944
|
stack: error.stack
|
|
7856
7945
|
});
|
|
@@ -8030,7 +8119,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8030
8119
|
}, {
|
|
8031
8120
|
key: "changeVideoLayout",
|
|
8032
8121
|
value: function changeVideoLayout(layoutType) {
|
|
8033
|
-
var
|
|
8122
|
+
var _this52 = this;
|
|
8034
8123
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
8035
8124
|
var main = renderInfo.main,
|
|
8036
8125
|
content = renderInfo.content;
|
|
@@ -8084,7 +8173,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8084
8173
|
}
|
|
8085
8174
|
this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
|
|
8086
8175
|
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
|
|
8087
|
-
_triggerProxy.default.trigger(
|
|
8176
|
+
_triggerProxy.default.trigger(_this52, {
|
|
8088
8177
|
file: 'meeting/index',
|
|
8089
8178
|
function: 'changeVideoLayout'
|
|
8090
8179
|
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
|
|
@@ -8200,7 +8289,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8200
8289
|
}, {
|
|
8201
8290
|
key: "endMeetingForAll",
|
|
8202
8291
|
value: function endMeetingForAll() {
|
|
8203
|
-
var
|
|
8292
|
+
var _this53 = this;
|
|
8204
8293
|
// @ts-ignore
|
|
8205
8294
|
this.webex.internal.newMetrics.submitClientEvent({
|
|
8206
8295
|
name: 'client.call.leave',
|
|
@@ -8218,25 +8307,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8218
8307
|
locus_id: this.locusId
|
|
8219
8308
|
});
|
|
8220
8309
|
return _util2.default.endMeetingForAll(this).then(function (end) {
|
|
8221
|
-
|
|
8222
|
-
|
|
8310
|
+
_this53.meetingFiniteStateMachine.end();
|
|
8311
|
+
_this53.clearMeetingData();
|
|
8223
8312
|
// upload logs on leave irrespective of meeting delete
|
|
8224
|
-
_triggerProxy.default.trigger(
|
|
8313
|
+
_triggerProxy.default.trigger(_this53, {
|
|
8225
8314
|
file: 'meeting/index',
|
|
8226
8315
|
function: 'endMeetingForAll'
|
|
8227
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
8316
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this53);
|
|
8228
8317
|
return end;
|
|
8229
8318
|
}).catch(function (error) {
|
|
8230
|
-
|
|
8319
|
+
_this53.meetingFiniteStateMachine.fail(error);
|
|
8231
8320
|
_loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
|
|
8232
8321
|
// upload logs on leave irrespective of meeting delete
|
|
8233
|
-
_triggerProxy.default.trigger(
|
|
8322
|
+
_triggerProxy.default.trigger(_this53, {
|
|
8234
8323
|
file: 'meeting/index',
|
|
8235
8324
|
function: 'endMeetingForAll'
|
|
8236
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
8325
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this53);
|
|
8237
8326
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
|
|
8238
|
-
correlation_id:
|
|
8239
|
-
locus_id:
|
|
8327
|
+
correlation_id: _this53.correlationId,
|
|
8328
|
+
locus_id: _this53.locusUrl.split('/').pop(),
|
|
8240
8329
|
reason: error.message,
|
|
8241
8330
|
stack: error.stack,
|
|
8242
8331
|
code: error.code
|
|
@@ -8378,7 +8467,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8378
8467
|
_this$mediaProperties41,
|
|
8379
8468
|
_this$mediaProperties42,
|
|
8380
8469
|
_this$mediaProperties43,
|
|
8381
|
-
|
|
8470
|
+
_this54 = this;
|
|
8382
8471
|
var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
|
|
8383
8472
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
|
|
8384
8473
|
if (!this.canUpdateMedia()) {
|
|
@@ -8403,8 +8492,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
8403
8492
|
}).catch(function (error) {
|
|
8404
8493
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
|
|
8405
8494
|
_metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
|
|
8406
|
-
correlation_id:
|
|
8407
|
-
locus_id:
|
|
8495
|
+
correlation_id: _this54.correlationId,
|
|
8496
|
+
locus_id: _this54.locusUrl.split('/').pop(),
|
|
8408
8497
|
reason: error.message,
|
|
8409
8498
|
stack: error.stack
|
|
8410
8499
|
});
|