@webex/plugin-meetings 3.8.1-web-workers-keepalive.1 → 3.9.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/constants.js +24 -2
- package/dist/constants.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/index.js +39 -85
- package/dist/locus-info/index.js.map +1 -1
- package/dist/meeting/brbState.js +14 -12
- package/dist/meeting/brbState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +6 -0
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +274 -140
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/request.js +19 -0
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/type.js +7 -0
- package/dist/meeting/type.js.map +1 -0
- package/dist/meeting/util.js +68 -2
- package/dist/meeting/util.js.map +1 -1
- package/dist/meetings/index.js +35 -33
- package/dist/meetings/index.js.map +1 -1
- package/dist/member/index.js.map +1 -1
- package/dist/members/index.js +11 -9
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +3 -3
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +18 -6
- package/dist/members/util.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +1 -1
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +34 -5
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +42 -2
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +32 -2
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/types/constants.d.ts +22 -0
- package/dist/types/locus-info/index.d.ts +0 -9
- package/dist/types/meeting/brbState.d.ts +0 -1
- package/dist/types/meeting/in-meeting-actions.d.ts +6 -0
- package/dist/types/meeting/index.d.ts +40 -19
- package/dist/types/meeting/request.d.ts +9 -1
- package/dist/types/meeting/request.type.d.ts +74 -0
- package/dist/types/meeting/type.d.ts +9 -0
- package/dist/types/meeting/util.d.ts +3 -0
- package/dist/types/members/index.d.ts +10 -7
- package/dist/types/members/request.d.ts +1 -1
- package/dist/types/members/util.d.ts +7 -3
- package/dist/types/multistream/remoteMedia.d.ts +20 -1
- package/dist/types/multistream/remoteMediaGroup.d.ts +11 -0
- package/dist/types/multistream/sendSlotManager.d.ts +16 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +22 -23
- package/src/constants.ts +23 -2
- package/src/locus-info/index.ts +48 -86
- package/src/meeting/brbState.ts +9 -7
- package/src/meeting/in-meeting-actions.ts +13 -0
- package/src/meeting/index.ts +165 -38
- package/src/meeting/request.ts +16 -0
- package/src/meeting/request.type.ts +64 -0
- package/src/meeting/type.ts +9 -0
- package/src/meeting/util.ts +73 -2
- package/src/meetings/index.ts +3 -2
- package/src/member/index.ts +1 -0
- package/src/members/index.ts +13 -10
- package/src/members/request.ts +2 -2
- package/src/members/util.ts +16 -4
- package/src/multistream/mediaRequestManager.ts +7 -7
- package/src/multistream/remoteMedia.ts +34 -4
- package/src/multistream/remoteMediaGroup.ts +37 -2
- package/src/multistream/sendSlotManager.ts +34 -2
- package/test/unit/spec/locus-info/index.js +199 -83
- package/test/unit/spec/meeting/brbState.ts +9 -9
- package/test/unit/spec/meeting/in-meeting-actions.ts +6 -0
- package/test/unit/spec/meeting/index.js +729 -80
- package/test/unit/spec/meeting/request.js +71 -0
- package/test/unit/spec/meeting/utils.js +122 -1
- package/test/unit/spec/meetings/index.js +2 -0
- package/test/unit/spec/members/index.js +68 -9
- package/test/unit/spec/members/request.js +2 -2
- package/test/unit/spec/members/utils.js +27 -7
- package/test/unit/spec/multistream/mediaRequestManager.ts +19 -6
- package/test/unit/spec/multistream/remoteMedia.ts +66 -2
- package/test/unit/spec/multistream/sendSlotManager.ts +59 -0
- package/test/unit/spec/reachability/index.ts +3 -1
package/dist/meeting/index.js
CHANGED
@@ -382,10 +382,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
382
382
|
/**
|
383
383
|
* @param {Object} attrs
|
384
384
|
* @param {Object} options
|
385
|
+
* @param {Function} callback - if provided, it will be called with the newly created meeting object as soon as the meeting.id is set
|
385
386
|
* @constructor
|
386
387
|
* @memberof Meeting
|
387
388
|
*/
|
388
|
-
function Meeting(attrs, _options) {
|
389
|
+
function Meeting(attrs, _options, callback) {
|
389
390
|
var _attrs$callStateForMe, _attrs$callStateForMe2, _this$locusInfo, _this$locusInfo$links, _this$locusInfo$links2, _this$locusInfo$links3, _this$locusInfo2, _this$locusInfo2$full, _this$locusInfo3, _this$locusInfo4;
|
390
391
|
var _this;
|
391
392
|
(0, _classCallCheck2.default)(this, Meeting);
|
@@ -1489,6 +1490,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1489
1490
|
* @memberof Meeting
|
1490
1491
|
*/
|
1491
1492
|
_this.id = _uuid.default.v4();
|
1493
|
+
if (callback) {
|
1494
|
+
callback((0, _assertThisInitialized2.default)(_this));
|
1495
|
+
}
|
1496
|
+
|
1492
1497
|
/**
|
1493
1498
|
* Call state used for metrics
|
1494
1499
|
* @instance
|
@@ -2377,6 +2382,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
2377
2382
|
this.callStateForMetrics.correlationId = correlationId;
|
2378
2383
|
}
|
2379
2384
|
|
2385
|
+
/**
|
2386
|
+
* Getter - Returns callStateForMetrics.pstnCorrelationId
|
2387
|
+
* @returns {string | undefined}
|
2388
|
+
*/
|
2389
|
+
}, {
|
2390
|
+
key: "pstnCorrelationId",
|
2391
|
+
get: function get() {
|
2392
|
+
return this.callStateForMetrics.pstnCorrelationId;
|
2393
|
+
}
|
2394
|
+
|
2395
|
+
/**
|
2396
|
+
* Setter - sets callStateForMetrics.pstnCorrelationId
|
2397
|
+
* @param {string | undefined} correlationId
|
2398
|
+
*/,
|
2399
|
+
set: function set(correlationId) {
|
2400
|
+
this.callStateForMetrics.pstnCorrelationId = correlationId;
|
2401
|
+
}
|
2402
|
+
|
2380
2403
|
/**
|
2381
2404
|
* Getter - Returns callStateForMetrics.userNameInput
|
2382
2405
|
* @returns {string}
|
@@ -3655,9 +3678,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3655
3678
|
// There is no concept of local/remote share for whiteboard
|
3656
3679
|
// It does not matter who requested to share the whiteboard, everyone gets the same view
|
3657
3680
|
else if (whiteboardShare.disposition === _constants.FLOOR_ACTION.GRANTED) {
|
3658
|
-
|
3659
|
-
|
3660
|
-
|
3681
|
+
if ((_this15$locusInfo = _this15.locusInfo) !== null && _this15$locusInfo !== void 0 && (_this15$locusInfo$inf = _this15$locusInfo.info) !== null && _this15$locusInfo$inf !== void 0 && _this15$locusInfo$inf.isWebinar && (_this15$webinar = _this15.webinar) !== null && _this15$webinar !== void 0 && _this15$webinar.selfIsAttendee) {
|
3682
|
+
// WHITEBOARD - sharing whiteboard
|
3683
|
+
// Webinar attendee should receive whiteboard as remote share
|
3684
|
+
newShareStatus = _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE;
|
3685
|
+
} else if (_this15.guest) {
|
3686
|
+
// If user is a guest to a meeting, they should receive whiteboard as remote share
|
3687
|
+
newShareStatus = _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE;
|
3688
|
+
} else {
|
3689
|
+
newShareStatus = _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE;
|
3690
|
+
}
|
3661
3691
|
}
|
3662
3692
|
// or if content share is either released or null and whiteboard share is either released or null, no one is sharing
|
3663
3693
|
else if ((previousContentShare && contentShare.disposition === _constants.FLOOR_ACTION.RELEASED || contentShare.disposition === null) && (previousWhiteboardShare && whiteboardShare.disposition === _constants.FLOOR_ACTION.RELEASED || whiteboardShare.disposition === null)) {
|
@@ -4318,11 +4348,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4318
4348
|
|
4319
4349
|
/**
|
4320
4350
|
* Invite a guest to the call that isn't normally part of this call
|
4321
|
-
* @param {
|
4351
|
+
* @param {Invitee} invitee
|
4322
4352
|
* @param {String} invitee.emailAddress
|
4323
4353
|
* @param {String} invitee.email
|
4324
4354
|
* @param {String} invitee.phoneNumber
|
4325
4355
|
* @param {Boolean} [alertIfActive]
|
4356
|
+
* @param {Boolean} [invitee.skipEmailValidation]
|
4357
|
+
* @param {Boolean} [invitee.isInternalNumber]
|
4326
4358
|
* @returns {Promise} see #members.addMember
|
4327
4359
|
* @public
|
4328
4360
|
* @memberof Meeting
|
@@ -4336,7 +4368,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4336
4368
|
|
4337
4369
|
/**
|
4338
4370
|
* Cancel an outgoing phone call invitation made during a meeting
|
4339
|
-
* @param {
|
4371
|
+
* @param {Invitee} invitee
|
4340
4372
|
* @param {String} invitee.phoneNumber
|
4341
4373
|
* @returns {Promise} see #members.cancelPhoneInvite
|
4342
4374
|
* @public
|
@@ -4349,17 +4381,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4349
4381
|
}
|
4350
4382
|
|
4351
4383
|
/**
|
4352
|
-
* Cancel an SIP call invitation made during a meeting
|
4353
|
-
* @param {
|
4384
|
+
* Cancel an SIP/phone call invitation made during a meeting
|
4385
|
+
* @param {Invitee} invitee
|
4354
4386
|
* @param {String} invitee.memberId
|
4355
|
-
* @
|
4387
|
+
* @param {Boolean} [invitee.isInternalNumber] - When cancel phone invitation, if the number is internal
|
4388
|
+
* @returns {Promise} see #members.cancelInviteByMemberId
|
4356
4389
|
* @public
|
4357
4390
|
* @memberof Meeting
|
4358
4391
|
*/
|
4359
4392
|
}, {
|
4360
|
-
key: "
|
4361
|
-
value: function
|
4362
|
-
return this.members.
|
4393
|
+
key: "cancelInviteByMemberId",
|
4394
|
+
value: function cancelInviteByMemberId(invitee) {
|
4395
|
+
return this.members.cancelInviteByMemberId(invitee);
|
4363
4396
|
}
|
4364
4397
|
|
4365
4398
|
/**
|
@@ -4644,6 +4677,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4644
4677
|
isClosedCaptionActive: _util2.default.isClosedCaptionActive(this.userDisplayHints),
|
4645
4678
|
canStartManualCaption: _util2.default.canStartManualCaption(this.userDisplayHints),
|
4646
4679
|
canStopManualCaption: _util2.default.canStopManualCaption(this.userDisplayHints),
|
4680
|
+
isLocalRecordingStarted: _util2.default.isLocalRecordingStarted(this.userDisplayHints),
|
4681
|
+
isLocalRecordingStopped: _util2.default.isLocalRecordingStopped(this.userDisplayHints),
|
4682
|
+
isLocalRecordingPaused: _util2.default.isLocalRecordingPaused(this.userDisplayHints),
|
4647
4683
|
isManualCaptionActive: _util2.default.isManualCaptionActive(this.userDisplayHints),
|
4648
4684
|
isSaveTranscriptsEnabled: _util2.default.isSaveTranscriptsEnabled(this.userDisplayHints),
|
4649
4685
|
isWebexAssistantActive: _util2.default.isWebexAssistantActive(this.userDisplayHints),
|
@@ -6318,24 +6354,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6318
6354
|
_this36.deferJoin = undefined;
|
6319
6355
|
return join;
|
6320
6356
|
}).catch(function (error) {
|
6321
|
-
var
|
6357
|
+
var _error$error;
|
6322
6358
|
_this36.meetingFiniteStateMachine.fail(error);
|
6323
6359
|
_loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
|
6324
6360
|
|
6325
|
-
// @ts-ignore
|
6326
|
-
_this36.webex.internal.newMetrics.submitClientEvent({
|
6327
|
-
name: 'client.locus.join.response',
|
6328
|
-
payload: {
|
6329
|
-
identifiers: {
|
6330
|
-
meetingLookupUrl: (_this36$meetingInfo = _this36.meetingInfo) === null || _this36$meetingInfo === void 0 ? void 0 : _this36$meetingInfo.meetingLookupUrl
|
6331
|
-
}
|
6332
|
-
},
|
6333
|
-
options: {
|
6334
|
-
meetingId: _this36.id,
|
6335
|
-
rawError: error
|
6336
|
-
}
|
6337
|
-
});
|
6338
|
-
|
6339
6361
|
// TODO: change this to error codes and pre defined dictionary
|
6340
6362
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
|
6341
6363
|
correlation_id: _this36.correlationId,
|
@@ -6489,14 +6511,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6489
6511
|
value: function dialInPstn() {
|
6490
6512
|
var _this38 = this;
|
6491
6513
|
if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
|
6492
|
-
|
6493
|
-
var
|
6514
|
+
this.pstnCorrelationId = _uuid.default.v4();
|
6515
|
+
var pstnCorrelationId = this.pstnCorrelationId,
|
6494
6516
|
locusUrl = this.locusUrl;
|
6495
6517
|
if (!this.dialInUrl) this.dialInUrl = "dialin:///".concat(_uuid.default.v4());
|
6496
6518
|
return this.meetingRequest
|
6497
6519
|
// @ts-ignore
|
6498
6520
|
.dialIn({
|
6499
|
-
correlationId:
|
6521
|
+
correlationId: pstnCorrelationId,
|
6500
6522
|
dialInUrl: this.dialInUrl,
|
6501
6523
|
locusUrl: locusUrl,
|
6502
6524
|
clientUrl: this.deviceUrl
|
@@ -6505,11 +6527,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6505
6527
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
|
6506
6528
|
correlation_id: _this38.correlationId,
|
6507
6529
|
dial_in_url: _this38.dialInUrl,
|
6530
|
+
dial_in_correlation_id: pstnCorrelationId,
|
6508
6531
|
locus_id: locusUrl.split('/').pop(),
|
6509
6532
|
client_url: _this38.deviceUrl,
|
6510
6533
|
reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
|
6511
6534
|
stack: error.stack
|
6512
6535
|
});
|
6536
|
+
if (_this38.pstnCorrelationId === pstnCorrelationId) {
|
6537
|
+
_this38.pstnCorrelationId = undefined;
|
6538
|
+
}
|
6513
6539
|
return _promise.default.reject(error);
|
6514
6540
|
});
|
6515
6541
|
}
|
@@ -6526,14 +6552,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6526
6552
|
value: function dialOutPstn(phoneNumber) {
|
6527
6553
|
var _this39 = this;
|
6528
6554
|
if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
|
6529
|
-
|
6530
|
-
var
|
6531
|
-
|
6555
|
+
this.pstnCorrelationId = _uuid.default.v4();
|
6556
|
+
var locusUrl = this.locusUrl,
|
6557
|
+
pstnCorrelationId = this.pstnCorrelationId;
|
6532
6558
|
if (!this.dialOutUrl) this.dialOutUrl = "dialout:///".concat(_uuid.default.v4());
|
6533
6559
|
return this.meetingRequest
|
6534
6560
|
// @ts-ignore
|
6535
6561
|
.dialOut({
|
6536
|
-
correlationId:
|
6562
|
+
correlationId: pstnCorrelationId,
|
6537
6563
|
dialOutUrl: this.dialOutUrl,
|
6538
6564
|
phoneNumber: phoneNumber,
|
6539
6565
|
locusUrl: locusUrl,
|
@@ -6543,11 +6569,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6543
6569
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
|
6544
6570
|
correlation_id: _this39.correlationId,
|
6545
6571
|
dial_out_url: _this39.dialOutUrl,
|
6572
|
+
dial_out_correlation_id: pstnCorrelationId,
|
6546
6573
|
locus_id: locusUrl.split('/').pop(),
|
6547
6574
|
client_url: _this39.deviceUrl,
|
6548
6575
|
reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
|
6549
6576
|
stack: error.stack
|
6550
6577
|
});
|
6578
|
+
if (_this39.pstnCorrelationId === pstnCorrelationId) {
|
6579
|
+
_this39.pstnCorrelationId = undefined;
|
6580
|
+
}
|
6551
6581
|
return _promise.default.reject(error);
|
6552
6582
|
});
|
6553
6583
|
}
|
@@ -6562,7 +6592,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6562
6592
|
}, {
|
6563
6593
|
key: "disconnectPhoneAudio",
|
6564
6594
|
value: function disconnectPhoneAudio() {
|
6565
|
-
|
6595
|
+
var _this40 = this;
|
6596
|
+
var correlationToClear = this.pstnCorrelationId;
|
6597
|
+
return _promise.default.all([this.isPhoneProvisioned(this.dialInDeviceStatus) ? _util2.default.disconnectPhoneAudio(this, this.dialInUrl) : _promise.default.resolve(), this.isPhoneProvisioned(this.dialOutDeviceStatus) ? _util2.default.disconnectPhoneAudio(this, this.dialOutUrl) : _promise.default.resolve()]).then(function () {
|
6598
|
+
if (_this40.pstnCorrelationId === correlationToClear) {
|
6599
|
+
_this40.pstnCorrelationId = undefined;
|
6600
|
+
}
|
6601
|
+
});
|
6566
6602
|
}
|
6567
6603
|
|
6568
6604
|
/**
|
@@ -6575,7 +6611,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6575
6611
|
}, {
|
6576
6612
|
key: "moveTo",
|
6577
6613
|
value: function moveTo(resourceId) {
|
6578
|
-
var
|
6614
|
+
var _this41 = this;
|
6579
6615
|
if (!resourceId) {
|
6580
6616
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
6581
6617
|
}
|
@@ -6619,12 +6655,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6619
6655
|
while (1) switch (_context21.prev = _context21.next) {
|
6620
6656
|
case 0:
|
6621
6657
|
_context21.prev = 0;
|
6622
|
-
if (!(
|
6658
|
+
if (!(_this41.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
|
6623
6659
|
_context21.next = 4;
|
6624
6660
|
break;
|
6625
6661
|
}
|
6626
6662
|
_context21.next = 4;
|
6627
|
-
return
|
6663
|
+
return _this41.releaseScreenShareFloor();
|
6628
6664
|
case 4:
|
6629
6665
|
mediaSettings = {
|
6630
6666
|
mediaDirection: {
|
@@ -6636,37 +6672,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6636
6672
|
receiveShare: true
|
6637
6673
|
}
|
6638
6674
|
};
|
6639
|
-
|
6640
|
-
|
6675
|
+
_this41.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
|
6676
|
+
_this41.mediaProperties.unsetRemoteMedia();
|
6641
6677
|
|
6642
6678
|
// 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
|
6643
6679
|
// once the device answers we close the old connection and create new media server connection with only share enabled
|
6644
|
-
if (!
|
6680
|
+
if (!_this41.statsAnalyzer) {
|
6645
6681
|
_context21.next = 10;
|
6646
6682
|
break;
|
6647
6683
|
}
|
6648
6684
|
_context21.next = 10;
|
6649
|
-
return
|
6685
|
+
return _this41.statsAnalyzer.stopAnalyzer();
|
6650
6686
|
case 10:
|
6651
6687
|
_context21.next = 12;
|
6652
|
-
return
|
6688
|
+
return _this41.closeRemoteStreams();
|
6653
6689
|
case 12:
|
6654
6690
|
_context21.next = 14;
|
6655
|
-
return
|
6691
|
+
return _this41.closePeerConnections();
|
6656
6692
|
case 14:
|
6657
|
-
|
6658
|
-
|
6659
|
-
|
6660
|
-
|
6693
|
+
_this41.cleanupLocalStreams();
|
6694
|
+
_this41.unsetRemoteStreams();
|
6695
|
+
_this41.unsetPeerConnections();
|
6696
|
+
_this41.reconnectionManager.cleanUp();
|
6661
6697
|
_context21.next = 20;
|
6662
|
-
return
|
6698
|
+
return _this41.addMedia({
|
6663
6699
|
audioEnabled: false,
|
6664
6700
|
videoEnabled: false,
|
6665
6701
|
shareVideoEnabled: true
|
6666
6702
|
});
|
6667
6703
|
case 20:
|
6668
6704
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
|
6669
|
-
|
6705
|
+
_this41.isMoveToInProgress = false;
|
6670
6706
|
_context21.next = 29;
|
6671
6707
|
break;
|
6672
6708
|
case 24:
|
@@ -6674,12 +6710,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6674
6710
|
_context21.t0 = _context21["catch"](0);
|
6675
6711
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context21.t0);
|
6676
6712
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
6677
|
-
correlation_id:
|
6678
|
-
locus_id:
|
6713
|
+
correlation_id: _this41.correlationId,
|
6714
|
+
locus_id: _this41.locusUrl.split('/').pop(),
|
6679
6715
|
reason: _context21.t0.message,
|
6680
6716
|
stack: _context21.t0.stack
|
6681
6717
|
});
|
6682
|
-
|
6718
|
+
_this41.isMoveToInProgress = false;
|
6683
6719
|
case 29:
|
6684
6720
|
case "end":
|
6685
6721
|
return _context21.stop();
|
@@ -6695,17 +6731,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6695
6731
|
resourceId: resourceId,
|
6696
6732
|
moveToResource: true
|
6697
6733
|
}).then(function () {
|
6698
|
-
|
6734
|
+
_this41.meetingFiniteStateMachine.join();
|
6699
6735
|
}).catch(function (error) {
|
6700
|
-
|
6736
|
+
_this41.meetingFiniteStateMachine.fail(error);
|
6701
6737
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
6702
|
-
correlation_id:
|
6703
|
-
locus_id:
|
6738
|
+
correlation_id: _this41.correlationId,
|
6739
|
+
locus_id: _this41.locusUrl.split('/').pop(),
|
6704
6740
|
reason: error.message,
|
6705
6741
|
stack: error.stack
|
6706
6742
|
});
|
6707
6743
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', error);
|
6708
|
-
|
6744
|
+
_this41.isMoveToInProgress = false;
|
6709
6745
|
return _promise.default.reject(error);
|
6710
6746
|
});
|
6711
6747
|
}
|
@@ -6720,7 +6756,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6720
6756
|
}, {
|
6721
6757
|
key: "moveFrom",
|
6722
6758
|
value: function moveFrom(resourceId) {
|
6723
|
-
var
|
6759
|
+
var _this42 = this;
|
6724
6760
|
// On moveFrom ask the developer to re capture it moveFrom then updateMedia
|
6725
6761
|
if (!resourceId) {
|
6726
6762
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
@@ -6735,19 +6771,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6735
6771
|
}
|
6736
6772
|
});
|
6737
6773
|
return _util2.default.joinMeetingOptions(this).then(function () {
|
6738
|
-
return _util2.default.leaveMeeting(
|
6774
|
+
return _util2.default.leaveMeeting(_this42, {
|
6739
6775
|
resourceId: resourceId,
|
6740
6776
|
correlationId: oldCorrelationId,
|
6741
6777
|
moveMeeting: true
|
6742
6778
|
}).then(function () {
|
6743
|
-
|
6779
|
+
_this42.resourceId = '';
|
6744
6780
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
|
6745
6781
|
});
|
6746
6782
|
}).catch(function (error) {
|
6747
|
-
|
6783
|
+
_this42.meetingFiniteStateMachine.fail(error);
|
6748
6784
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
|
6749
|
-
correlation_id:
|
6750
|
-
locus_id:
|
6785
|
+
correlation_id: _this42.correlationId,
|
6786
|
+
locus_id: _this42.locusUrl.split('/').pop(),
|
6751
6787
|
reason: error.message,
|
6752
6788
|
stack: error.stack
|
6753
6789
|
});
|
@@ -6870,9 +6906,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6870
6906
|
}, {
|
6871
6907
|
key: "forwardEvent",
|
6872
6908
|
value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
|
6873
|
-
var
|
6909
|
+
var _this43 = this;
|
6874
6910
|
eventEmitter.on(eventTypeToForward, function (data) {
|
6875
|
-
return _triggerProxy.default.trigger(
|
6911
|
+
return _triggerProxy.default.trigger(_this43, {
|
6876
6912
|
file: 'meetings',
|
6877
6913
|
function: 'addMedia'
|
6878
6914
|
}, meetingEventType, data);
|
@@ -7058,7 +7094,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7058
7094
|
key: "waitForRemoteSDPAnswer",
|
7059
7095
|
value: (function () {
|
7060
7096
|
var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25() {
|
7061
|
-
var
|
7097
|
+
var _this44 = this;
|
7062
7098
|
var LOG_HEADER, deferSDPAnswer;
|
7063
7099
|
return _regenerator.default.wrap(function _callee25$(_context25) {
|
7064
7100
|
while (1) switch (_context25.prev = _context25.next) {
|
@@ -7077,18 +7113,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7077
7113
|
var error = new Error('Timed out waiting for REMOTE SDP ANSWER');
|
7078
7114
|
|
7079
7115
|
// @ts-ignore
|
7080
|
-
|
7116
|
+
_this44.webex.internal.newMetrics.submitClientEvent({
|
7081
7117
|
name: 'client.media-engine.remote-sdp-received',
|
7082
7118
|
payload: {
|
7083
7119
|
canProceed: false,
|
7084
7120
|
errors: [
|
7085
7121
|
// @ts-ignore
|
7086
|
-
|
7122
|
+
_this44.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
|
7087
7123
|
clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
|
7088
7124
|
})]
|
7089
7125
|
},
|
7090
7126
|
options: {
|
7091
|
-
meetingId:
|
7127
|
+
meetingId: _this44.id,
|
7092
7128
|
rawError: error
|
7093
7129
|
}
|
7094
7130
|
});
|
@@ -7595,10 +7631,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7595
7631
|
}, {
|
7596
7632
|
key: "addMedia",
|
7597
7633
|
value: function addMedia() {
|
7598
|
-
var
|
7634
|
+
var _this45 = this;
|
7599
7635
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
7600
7636
|
return this.addMediaInternal(function () {
|
7601
|
-
return
|
7637
|
+
return _this45.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
7602
7638
|
}, undefined, false, options);
|
7603
7639
|
}
|
7604
7640
|
|
@@ -7924,7 +7960,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7924
7960
|
* @memberof Meeting
|
7925
7961
|
*/
|
7926
7962
|
function enqueueMediaUpdate(mediaUpdateType) {
|
7927
|
-
var
|
7963
|
+
var _this46 = this;
|
7928
7964
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
7929
7965
|
var canUpdateMediaNow = this.canUpdateMedia();
|
7930
7966
|
return new _promise.default(function (resolve, reject) {
|
@@ -7935,9 +7971,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7935
7971
|
options: options
|
7936
7972
|
};
|
7937
7973
|
_loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
|
7938
|
-
|
7974
|
+
_this46.queuedMediaUpdates.push(queueItem);
|
7939
7975
|
if (canUpdateMediaNow) {
|
7940
|
-
|
7976
|
+
_this46.processNextQueuedMediaUpdate();
|
7941
7977
|
}
|
7942
7978
|
});
|
7943
7979
|
}
|
@@ -8042,7 +8078,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8042
8078
|
}, {
|
8043
8079
|
key: "acknowledge",
|
8044
8080
|
value: function acknowledge(type) {
|
8045
|
-
var
|
8081
|
+
var _this47 = this;
|
8046
8082
|
if (!type) {
|
8047
8083
|
return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
|
8048
8084
|
}
|
@@ -8054,12 +8090,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8054
8090
|
}).then(function (response) {
|
8055
8091
|
return _promise.default.resolve(response);
|
8056
8092
|
}).then(function (response) {
|
8057
|
-
|
8093
|
+
_this47.meetingFiniteStateMachine.ring(type);
|
8058
8094
|
// @ts-ignore
|
8059
|
-
|
8095
|
+
_this47.webex.internal.newMetrics.submitClientEvent({
|
8060
8096
|
name: 'client.alert.displayed',
|
8061
8097
|
options: {
|
8062
|
-
meetingId:
|
8098
|
+
meetingId: _this47.id
|
8063
8099
|
}
|
8064
8100
|
});
|
8065
8101
|
return _promise.default.resolve({
|
@@ -8084,12 +8120,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8084
8120
|
}, {
|
8085
8121
|
key: "decline",
|
8086
8122
|
value: function decline(reason) {
|
8087
|
-
var
|
8123
|
+
var _this48 = this;
|
8088
8124
|
return _util2.default.declineMeeting(this, reason).then(function (decline) {
|
8089
|
-
|
8125
|
+
_this48.meetingFiniteStateMachine.decline();
|
8090
8126
|
return _promise.default.resolve(decline);
|
8091
8127
|
}).catch(function (error) {
|
8092
|
-
|
8128
|
+
_this48.meetingFiniteStateMachine.fail(error);
|
8093
8129
|
return _promise.default.reject(error);
|
8094
8130
|
});
|
8095
8131
|
}
|
@@ -8140,7 +8176,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8140
8176
|
}, {
|
8141
8177
|
key: "leave",
|
8142
8178
|
value: function leave() {
|
8143
|
-
var
|
8179
|
+
var _this49 = this;
|
8144
8180
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
8145
8181
|
var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
|
8146
8182
|
|
@@ -8152,7 +8188,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8152
8188
|
var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
8153
8189
|
return (
|
8154
8190
|
// @ts-ignore
|
8155
|
-
|
8191
|
+
_this49.webex.internal.newMetrics.submitClientEvent({
|
8156
8192
|
name: 'client.call.leave',
|
8157
8193
|
payload: _objectSpread({
|
8158
8194
|
trigger: 'user-interaction',
|
@@ -8160,7 +8196,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8160
8196
|
leaveReason: options.clientEventLeaveReason
|
8161
8197
|
}, payload),
|
8162
8198
|
options: {
|
8163
|
-
meetingId:
|
8199
|
+
meetingId: _this49.id
|
8164
8200
|
}
|
8165
8201
|
})
|
8166
8202
|
);
|
@@ -8169,24 +8205,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8169
8205
|
return _util2.default.leaveMeeting(this, options).then(function (leave) {
|
8170
8206
|
// CA team recommends submitting this *after* locus /leave
|
8171
8207
|
submitLeaveMetric();
|
8172
|
-
|
8173
|
-
|
8208
|
+
_this49.meetingFiniteStateMachine.leave();
|
8209
|
+
_this49.clearMeetingData();
|
8174
8210
|
|
8175
8211
|
// upload logs on leave irrespective of meeting delete
|
8176
|
-
_triggerProxy.default.trigger(
|
8212
|
+
_triggerProxy.default.trigger(_this49, {
|
8177
8213
|
file: 'meeting/index',
|
8178
8214
|
function: 'leave'
|
8179
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8215
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this49);
|
8180
8216
|
|
8181
8217
|
// TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
|
8182
|
-
if (
|
8218
|
+
if (_this49.wirelessShare || _this49.guest) {
|
8183
8219
|
// If screen sharing clean the meeting object
|
8184
|
-
_triggerProxy.default.trigger(
|
8220
|
+
_triggerProxy.default.trigger(_this49, {
|
8185
8221
|
file: 'meeting/index',
|
8186
8222
|
function: 'leave'
|
8187
8223
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
8188
8224
|
reason: options.reason,
|
8189
|
-
meetingId:
|
8225
|
+
meetingId: _this49.id
|
8190
8226
|
});
|
8191
8227
|
}
|
8192
8228
|
_loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
|
@@ -8203,16 +8239,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8203
8239
|
shownToUser: false
|
8204
8240
|
}]
|
8205
8241
|
});
|
8206
|
-
|
8242
|
+
_this49.meetingFiniteStateMachine.fail(error);
|
8207
8243
|
_loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
|
8208
8244
|
// upload logs on leave irrespective of meeting delete
|
8209
|
-
_triggerProxy.default.trigger(
|
8245
|
+
_triggerProxy.default.trigger(_this49, {
|
8210
8246
|
file: 'meeting/index',
|
8211
8247
|
function: 'leave'
|
8212
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8248
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this49);
|
8213
8249
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
|
8214
|
-
correlation_id:
|
8215
|
-
locus_id:
|
8250
|
+
correlation_id: _this49.correlationId,
|
8251
|
+
locus_id: _this49.locusUrl.split('/').pop(),
|
8216
8252
|
reason: error.message,
|
8217
8253
|
stack: error.stack,
|
8218
8254
|
code: error.code
|
@@ -8232,7 +8268,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8232
8268
|
}, {
|
8233
8269
|
key: "startWhiteboardShare",
|
8234
8270
|
value: function startWhiteboardShare(channelUrl, resourceToken) {
|
8235
|
-
var
|
8271
|
+
var _this50 = this;
|
8236
8272
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
8237
8273
|
return element.name === 'whiteboard';
|
8238
8274
|
});
|
@@ -8240,6 +8276,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8240
8276
|
return _promise.default.reject(new _parameter.default('Cannot share without channelUrl.'));
|
8241
8277
|
}
|
8242
8278
|
if (whiteboard) {
|
8279
|
+
// @ts-ignore
|
8280
|
+
this.webex.internal.newMetrics.callDiagnosticLatencies.saveTimestamp({
|
8281
|
+
key: 'internal.client.share.initiated'
|
8282
|
+
});
|
8243
8283
|
// @ts-ignore
|
8244
8284
|
this.webex.internal.newMetrics.submitClientEvent({
|
8245
8285
|
name: 'client.share.initiated',
|
@@ -8261,13 +8301,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8261
8301
|
body.resourceToken = resourceToken;
|
8262
8302
|
}
|
8263
8303
|
return this.meetingRequest.changeMeetingFloor(body).then(function () {
|
8264
|
-
|
8304
|
+
_this50.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
8265
8305
|
return _promise.default.resolve();
|
8266
8306
|
}).catch(function (error) {
|
8267
8307
|
_loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
|
8268
8308
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
|
8269
|
-
correlation_id:
|
8270
|
-
locus_id:
|
8309
|
+
correlation_id: _this50.correlationId,
|
8310
|
+
locus_id: _this50.locusUrl.split('/').pop(),
|
8271
8311
|
reason: error.message,
|
8272
8312
|
stack: error.stack,
|
8273
8313
|
board: {
|
@@ -8290,16 +8330,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8290
8330
|
}, {
|
8291
8331
|
key: "stopWhiteboardShare",
|
8292
8332
|
value: function stopWhiteboardShare(channelUrl) {
|
8293
|
-
var
|
8333
|
+
var _this51 = this;
|
8294
8334
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
8295
8335
|
return element.name === 'whiteboard';
|
8296
8336
|
});
|
8297
8337
|
if (whiteboard) {
|
8338
|
+
// @ts-ignore
|
8339
|
+
this.webex.internal.newMetrics.callDiagnosticLatencies.saveTimestamp({
|
8340
|
+
key: 'internal.client.share.stopped'
|
8341
|
+
});
|
8298
8342
|
// @ts-ignore
|
8299
8343
|
this.webex.internal.newMetrics.submitClientEvent({
|
8300
8344
|
name: 'client.share.stopped',
|
8301
8345
|
payload: {
|
8302
|
-
mediaType: 'whiteboard'
|
8346
|
+
mediaType: 'whiteboard',
|
8347
|
+
// @ts-ignore
|
8348
|
+
shareDuration: this.webex.internal.newMetrics.callDiagnosticLatencies.getShareDuration()
|
8303
8349
|
},
|
8304
8350
|
options: {
|
8305
8351
|
meetingId: this.id
|
@@ -8313,8 +8359,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8313
8359
|
}).catch(function (error) {
|
8314
8360
|
_loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
|
8315
8361
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
|
8316
|
-
correlation_id:
|
8317
|
-
locus_id:
|
8362
|
+
correlation_id: _this51.correlationId,
|
8363
|
+
locus_id: _this51.locusUrl.split('/').pop(),
|
8318
8364
|
reason: error.message,
|
8319
8365
|
stack: error.stack,
|
8320
8366
|
board: {
|
@@ -8336,7 +8382,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8336
8382
|
}, {
|
8337
8383
|
key: "requestScreenShareFloor",
|
8338
8384
|
value: function requestScreenShareFloor() {
|
8339
|
-
var
|
8385
|
+
var _this52 = this;
|
8340
8386
|
if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
|
8341
8387
|
_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, ")"));
|
8342
8388
|
this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
@@ -8367,34 +8413,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8367
8413
|
resourceUrl: this.resourceUrl,
|
8368
8414
|
shareInstanceId: this.localShareInstanceId
|
8369
8415
|
}).then(function () {
|
8370
|
-
|
8416
|
+
_this52.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
|
8371
8417
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
|
8372
|
-
correlation_id:
|
8373
|
-
locus_id:
|
8418
|
+
correlation_id: _this52.correlationId,
|
8419
|
+
locus_id: _this52.locusUrl.split('/').pop()
|
8374
8420
|
});
|
8375
8421
|
return _promise.default.resolve();
|
8376
8422
|
}).catch(function (error) {
|
8377
8423
|
_loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
|
8378
8424
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
|
8379
|
-
correlation_id:
|
8380
|
-
locus_id:
|
8425
|
+
correlation_id: _this52.correlationId,
|
8426
|
+
locus_id: _this52.locusUrl.split('/').pop(),
|
8381
8427
|
reason: error.message,
|
8382
8428
|
stack: error.stack
|
8383
8429
|
});
|
8384
8430
|
|
8385
8431
|
// @ts-ignore
|
8386
|
-
|
8432
|
+
_this52.webex.internal.newMetrics.submitClientEvent({
|
8387
8433
|
name: 'client.share.floor-granted.local',
|
8388
8434
|
payload: {
|
8389
8435
|
mediaType: 'share',
|
8390
8436
|
errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
|
8391
|
-
shareInstanceId:
|
8437
|
+
shareInstanceId: _this52.localShareInstanceId
|
8392
8438
|
},
|
8393
8439
|
options: {
|
8394
|
-
meetingId:
|
8440
|
+
meetingId: _this52.id
|
8395
8441
|
}
|
8396
8442
|
});
|
8397
|
-
|
8443
|
+
_this52.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
8398
8444
|
return _promise.default.reject(error);
|
8399
8445
|
});
|
8400
8446
|
}
|
@@ -8417,10 +8463,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8417
8463
|
}, {
|
8418
8464
|
key: "requestScreenShareFloorIfPending",
|
8419
8465
|
value: function requestScreenShareFloorIfPending() {
|
8420
|
-
var
|
8466
|
+
var _this53 = this;
|
8421
8467
|
if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
|
8422
8468
|
this.requestScreenShareFloor().then(function () {
|
8423
|
-
|
8469
|
+
_this53.floorGrantPending = false;
|
8424
8470
|
});
|
8425
8471
|
}
|
8426
8472
|
}
|
@@ -8434,7 +8480,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8434
8480
|
}, {
|
8435
8481
|
key: "releaseScreenShareFloor",
|
8436
8482
|
value: function releaseScreenShareFloor() {
|
8437
|
-
var
|
8483
|
+
var _this54 = this;
|
8438
8484
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
8439
8485
|
return element.name === _constants.CONTENT;
|
8440
8486
|
});
|
@@ -8445,11 +8491,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8445
8491
|
if (content) {
|
8446
8492
|
var _content$floor;
|
8447
8493
|
// @ts-ignore
|
8494
|
+
this.webex.internal.newMetrics.callDiagnosticLatencies.saveTimestamp({
|
8495
|
+
key: 'internal.client.share.stopped'
|
8496
|
+
});
|
8497
|
+
// @ts-ignore
|
8448
8498
|
this.webex.internal.newMetrics.submitClientEvent({
|
8449
8499
|
name: 'client.share.stopped',
|
8450
8500
|
payload: {
|
8451
8501
|
mediaType: 'share',
|
8452
|
-
shareInstanceId: this.localShareInstanceId
|
8502
|
+
shareInstanceId: this.localShareInstanceId,
|
8503
|
+
// @ts-ignore
|
8504
|
+
shareDuration: this.webex.internal.newMetrics.callDiagnosticLatencies.getShareDuration()
|
8453
8505
|
},
|
8454
8506
|
options: {
|
8455
8507
|
meetingId: this.id
|
@@ -8469,8 +8521,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8469
8521
|
}).catch(function (error) {
|
8470
8522
|
_loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
|
8471
8523
|
_metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
|
8472
|
-
correlation_id:
|
8473
|
-
locus_id:
|
8524
|
+
correlation_id: _this54.correlationId,
|
8525
|
+
locus_id: _this54.locusUrl.split('/').pop(),
|
8474
8526
|
reason: error.message,
|
8475
8527
|
stack: error.stack
|
8476
8528
|
});
|
@@ -8650,7 +8702,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8650
8702
|
}, {
|
8651
8703
|
key: "changeVideoLayout",
|
8652
8704
|
value: function changeVideoLayout(layoutType) {
|
8653
|
-
var
|
8705
|
+
var _this55 = this;
|
8654
8706
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
8655
8707
|
var main = renderInfo.main,
|
8656
8708
|
content = renderInfo.content;
|
@@ -8704,7 +8756,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8704
8756
|
}
|
8705
8757
|
this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
|
8706
8758
|
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
|
8707
|
-
_triggerProxy.default.trigger(
|
8759
|
+
_triggerProxy.default.trigger(_this55, {
|
8708
8760
|
file: 'meeting/index',
|
8709
8761
|
function: 'changeVideoLayout'
|
8710
8762
|
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
|
@@ -8820,7 +8872,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8820
8872
|
}, {
|
8821
8873
|
key: "endMeetingForAll",
|
8822
8874
|
value: function endMeetingForAll() {
|
8823
|
-
var
|
8875
|
+
var _this56 = this;
|
8824
8876
|
// @ts-ignore
|
8825
8877
|
this.webex.internal.newMetrics.submitClientEvent({
|
8826
8878
|
name: 'client.call.leave',
|
@@ -8838,25 +8890,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8838
8890
|
locus_id: this.locusId
|
8839
8891
|
});
|
8840
8892
|
return _util2.default.endMeetingForAll(this).then(function (end) {
|
8841
|
-
|
8842
|
-
|
8893
|
+
_this56.meetingFiniteStateMachine.end();
|
8894
|
+
_this56.clearMeetingData();
|
8843
8895
|
// upload logs on leave irrespective of meeting delete
|
8844
|
-
_triggerProxy.default.trigger(
|
8896
|
+
_triggerProxy.default.trigger(_this56, {
|
8845
8897
|
file: 'meeting/index',
|
8846
8898
|
function: 'endMeetingForAll'
|
8847
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8899
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this56);
|
8848
8900
|
return end;
|
8849
8901
|
}).catch(function (error) {
|
8850
|
-
|
8902
|
+
_this56.meetingFiniteStateMachine.fail(error);
|
8851
8903
|
_loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
|
8852
8904
|
// upload logs on leave irrespective of meeting delete
|
8853
|
-
_triggerProxy.default.trigger(
|
8905
|
+
_triggerProxy.default.trigger(_this56, {
|
8854
8906
|
file: 'meeting/index',
|
8855
8907
|
function: 'endMeetingForAll'
|
8856
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8908
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this56);
|
8857
8909
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
|
8858
|
-
correlation_id:
|
8859
|
-
locus_id:
|
8910
|
+
correlation_id: _this56.correlationId,
|
8911
|
+
locus_id: _this56.locusUrl.split('/').pop(),
|
8860
8912
|
reason: error.message,
|
8861
8913
|
stack: error.stack,
|
8862
8914
|
code: error.code
|
@@ -9017,7 +9069,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
9017
9069
|
_this$mediaProperties43,
|
9018
9070
|
_this$mediaProperties44,
|
9019
9071
|
_this$mediaProperties45,
|
9020
|
-
|
9072
|
+
_this57 = this;
|
9021
9073
|
var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
|
9022
9074
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
|
9023
9075
|
if (!this.canUpdateMedia()) {
|
@@ -9042,8 +9094,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
9042
9094
|
}).catch(function (error) {
|
9043
9095
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
|
9044
9096
|
_metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
|
9045
|
-
correlation_id:
|
9046
|
-
locus_id:
|
9097
|
+
correlation_id: _this57.correlationId,
|
9098
|
+
locus_id: _this57.locusUrl.split('/').pop(),
|
9047
9099
|
reason: error.message,
|
9048
9100
|
stack: error.stack
|
9049
9101
|
});
|
@@ -9265,13 +9317,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
9265
9317
|
return this.updateTranscodedMediaConnection();
|
9266
9318
|
case 31:
|
9267
9319
|
if (!floorRequestNeeded) {
|
9268
|
-
_context40.next =
|
9320
|
+
_context40.next = 40;
|
9269
9321
|
break;
|
9270
9322
|
}
|
9271
9323
|
this.localShareInstanceId = _uuid.default.v4();
|
9272
9324
|
this.shareCAEventSentStatus.transmitStart = false;
|
9273
9325
|
this.shareCAEventSentStatus.transmitStop = false;
|
9274
9326
|
|
9327
|
+
// @ts-ignore
|
9328
|
+
this.webex.internal.newMetrics.callDiagnosticLatencies.saveTimestamp({
|
9329
|
+
key: 'internal.client.share.initiated'
|
9330
|
+
});
|
9331
|
+
|
9275
9332
|
// @ts-ignore
|
9276
9333
|
this.webex.internal.newMetrics.submitClientEvent({
|
9277
9334
|
name: 'client.share.initiated',
|
@@ -9291,9 +9348,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
9291
9348
|
// we're sending the http request to Locus to request the screen share floor
|
9292
9349
|
// only after the SDP update, because that's how it's always been done for transcoded meetings
|
9293
9350
|
// and also if sharing from the start, we need confluence to have been created
|
9294
|
-
_context40.next =
|
9351
|
+
_context40.next = 40;
|
9295
9352
|
return this.enqueueScreenShareFloorRequest();
|
9296
|
-
case
|
9353
|
+
case 40:
|
9297
9354
|
case "end":
|
9298
9355
|
return _context40.stop();
|
9299
9356
|
}
|
@@ -9481,7 +9538,84 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
9481
9538
|
return _getMediaReachabilityMetricFields.apply(this, arguments);
|
9482
9539
|
}
|
9483
9540
|
return getMediaReachabilityMetricFields;
|
9484
|
-
}()
|
9541
|
+
}()
|
9542
|
+
/**
|
9543
|
+
* Set the stage for the meeting
|
9544
|
+
*
|
9545
|
+
* @param {SetStageOptions} options Options to use when setting the stage
|
9546
|
+
* @returns {Promise} The locus request
|
9547
|
+
*/
|
9548
|
+
)
|
9549
|
+
}, {
|
9550
|
+
key: "setStage",
|
9551
|
+
value: function setStage() {
|
9552
|
+
var _ref37 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
9553
|
+
_ref37$activeSpeakerP = _ref37.activeSpeakerProportion,
|
9554
|
+
activeSpeakerProportion = _ref37$activeSpeakerP === void 0 ? 0.5 : _ref37$activeSpeakerP,
|
9555
|
+
customBackground = _ref37.customBackground,
|
9556
|
+
customLogo = _ref37.customLogo,
|
9557
|
+
customNameLabel = _ref37.customNameLabel,
|
9558
|
+
importantParticipants = _ref37.importantParticipants,
|
9559
|
+
_ref37$lockAttendeeVi = _ref37.lockAttendeeViewOnStage,
|
9560
|
+
lockAttendeeViewOnStage = _ref37$lockAttendeeVi === void 0 ? false : _ref37$lockAttendeeVi,
|
9561
|
+
_ref37$showActiveSpea = _ref37.showActiveSpeaker,
|
9562
|
+
showActiveSpeaker = _ref37$showActiveSpea === void 0 ? false : _ref37$showActiveSpea;
|
9563
|
+
var videoLayout = {
|
9564
|
+
overrideDefault: true,
|
9565
|
+
lockAttendeeViewOnStageOnly: lockAttendeeViewOnStage,
|
9566
|
+
stageParameters: {
|
9567
|
+
activeSpeakerProportion: activeSpeakerProportion,
|
9568
|
+
showActiveSpeaker: {
|
9569
|
+
show: showActiveSpeaker,
|
9570
|
+
order: 0
|
9571
|
+
},
|
9572
|
+
stageManagerType: 0
|
9573
|
+
}
|
9574
|
+
};
|
9575
|
+
if (importantParticipants !== null && importantParticipants !== void 0 && importantParticipants.length) {
|
9576
|
+
videoLayout.stageParameters.importantParticipants = importantParticipants.map(function (importantParticipant, index) {
|
9577
|
+
return _objectSpread(_objectSpread({}, importantParticipant), {}, {
|
9578
|
+
order: index + 1
|
9579
|
+
});
|
9580
|
+
});
|
9581
|
+
}
|
9582
|
+
if (customLogo) {
|
9583
|
+
if (!videoLayout.customLayouts) {
|
9584
|
+
videoLayout.customLayouts = {};
|
9585
|
+
}
|
9586
|
+
videoLayout.customLayouts.logo = customLogo;
|
9587
|
+
// eslint-disable-next-line no-bitwise
|
9588
|
+
videoLayout.stageParameters.stageManagerType |= _constants.STAGE_MANAGER_TYPE.LOGO;
|
9589
|
+
}
|
9590
|
+
if (customBackground) {
|
9591
|
+
if (!videoLayout.customLayouts) {
|
9592
|
+
videoLayout.customLayouts = {};
|
9593
|
+
}
|
9594
|
+
videoLayout.customLayouts.background = customBackground;
|
9595
|
+
// eslint-disable-next-line no-bitwise
|
9596
|
+
videoLayout.stageParameters.stageManagerType |= _constants.STAGE_MANAGER_TYPE.BACKGROUND;
|
9597
|
+
}
|
9598
|
+
if (customNameLabel) {
|
9599
|
+
videoLayout.nameLabelStyle = customNameLabel;
|
9600
|
+
// eslint-disable-next-line no-bitwise
|
9601
|
+
videoLayout.stageParameters.stageManagerType |= _constants.STAGE_MANAGER_TYPE.NAME_LABEL;
|
9602
|
+
}
|
9603
|
+
return this.meetingRequest.synchronizeStage(this.locusUrl, videoLayout);
|
9604
|
+
}
|
9605
|
+
|
9606
|
+
/**
|
9607
|
+
* Unset the stage for the meeting
|
9608
|
+
*
|
9609
|
+
* @returns {Promise} The locus request
|
9610
|
+
*/
|
9611
|
+
}, {
|
9612
|
+
key: "unsetStage",
|
9613
|
+
value: function unsetStage() {
|
9614
|
+
var videoLayout = {
|
9615
|
+
overrideDefault: false
|
9616
|
+
};
|
9617
|
+
return this.meetingRequest.synchronizeStage(this.locusUrl, videoLayout);
|
9618
|
+
}
|
9485
9619
|
}]);
|
9486
9620
|
return Meeting;
|
9487
9621
|
}(_webexCore.StatelessWebexPlugin);
|