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