@webex/plugin-meetings 3.9.0-webinar5k.1 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/constants.js +16 -0
- package/dist/constants.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/index.js +40 -328
- package/dist/locus-info/index.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 +196 -160
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +5 -2
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/type.js +7 -0
- package/dist/meeting/type.js.map +1 -0
- package/dist/meeting/util.js +79 -10
- package/dist/meeting/util.js.map +1 -1
- package/dist/meetings/index.js +37 -39
- package/dist/meetings/index.js.map +1 -1
- package/dist/member/types.js.map +1 -1
- package/dist/members/collection.js +0 -13
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +21 -40
- package/dist/members/index.js.map +1 -1
- 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/types/constants.d.ts +16 -0
- package/dist/types/locus-info/index.d.ts +3 -102
- package/dist/types/meeting/in-meeting-actions.d.ts +6 -0
- package/dist/types/meeting/index.d.ts +23 -28
- package/dist/types/meeting/type.d.ts +9 -0
- package/dist/types/meeting/util.d.ts +6 -3
- package/dist/types/member/types.d.ts +0 -1
- package/dist/types/members/collection.d.ts +0 -6
- package/dist/types/members/index.d.ts +7 -16
- package/dist/types/members/util.d.ts +2 -1
- package/dist/types/multistream/remoteMedia.d.ts +20 -1
- package/dist/types/multistream/remoteMediaGroup.d.ts +11 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +22 -24
- package/src/constants.ts +16 -2
- package/src/locus-info/index.ts +39 -409
- package/src/meeting/in-meeting-actions.ts +13 -0
- package/src/meeting/index.ts +92 -63
- package/src/meeting/muteState.ts +6 -2
- package/src/meeting/type.ts +9 -0
- package/src/meeting/util.ts +93 -19
- package/src/meetings/index.ts +6 -19
- package/src/member/types.ts +0 -1
- package/src/members/collection.ts +0 -11
- package/src/members/index.ts +10 -33
- package/src/members/util.ts +2 -1
- package/src/multistream/mediaRequestManager.ts +7 -7
- package/src/multistream/remoteMedia.ts +34 -4
- package/src/multistream/remoteMediaGroup.ts +37 -2
- package/test/unit/spec/locus-info/index.js +8 -365
- package/test/unit/spec/meeting/in-meeting-actions.ts +6 -0
- package/test/unit/spec/meeting/index.js +254 -38
- 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 +37 -1
- package/test/unit/spec/multistream/mediaRequestManager.ts +19 -6
- package/test/unit/spec/multistream/remoteMedia.ts +66 -2
- package/dist/hashTree/constants.js +0 -23
- package/dist/hashTree/constants.js.map +0 -1
- package/dist/hashTree/hashTree.js +0 -516
- package/dist/hashTree/hashTree.js.map +0 -1
- package/dist/hashTree/hashTreeParser.js +0 -521
- package/dist/hashTree/hashTreeParser.js.map +0 -1
- package/dist/types/hashTree/constants.d.ts +0 -8
- package/dist/types/hashTree/hashTree.d.ts +0 -128
- package/dist/types/hashTree/hashTreeParser.d.ts +0 -152
- package/src/hashTree/constants.ts +0 -12
- package/src/hashTree/hashTree.ts +0 -460
- package/src/hashTree/hashTreeParser.ts +0 -556
- package/test/unit/spec/hashTree/hashTree.ts +0 -394
- package/test/unit/spec/hashTree/hashTreeParser.ts +0 -156
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);
|
@@ -563,18 +564,6 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
563
564
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "uploadLogsTimer", void 0);
|
564
565
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "logUploadIntervalIndex", void 0);
|
565
566
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "mediaServerIp", void 0);
|
566
|
-
/** Handles Locus LLM events
|
567
|
-
*
|
568
|
-
* @param {LocusLLMEvent} event - The Locus LLM event to process
|
569
|
-
* @returns {void}
|
570
|
-
*/
|
571
|
-
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "processLocusLLMEvent", function (event) {
|
572
|
-
if (event.data.eventType === 'locus.state_message') {
|
573
|
-
_this.locusInfo.parse((0, _assertThisInitialized2.default)(_this), event.data);
|
574
|
-
} else {
|
575
|
-
_loggerProxy.default.logger.warn("Meeting:index#processLocusLLMEvent --> Unknown event type: ".concat(event.data.eventType));
|
576
|
-
}
|
577
|
-
});
|
578
567
|
/**
|
579
568
|
* Callback called when a relay event is received from meeting LLM Connection
|
580
569
|
* @param {RelayEvent} e Event object coming from LLM Connection
|
@@ -1434,8 +1423,6 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1434
1423
|
|
1435
1424
|
// @ts-ignore - fix types
|
1436
1425
|
_this.webex.internal.llm.off('event:relay.event', _this.processRelayEvent);
|
1437
|
-
// @ts-ignore - Fix type
|
1438
|
-
_this.webex.internal.llm.off('event:locus.state_message', _this.processLocusLLMEvent);
|
1439
1426
|
});
|
1440
1427
|
/**
|
1441
1428
|
* starts keepAlives being sent
|
@@ -1503,6 +1490,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1503
1490
|
* @memberof Meeting
|
1504
1491
|
*/
|
1505
1492
|
_this.id = _uuid.default.v4();
|
1493
|
+
if (callback) {
|
1494
|
+
callback((0, _assertThisInitialized2.default)(_this));
|
1495
|
+
}
|
1496
|
+
|
1506
1497
|
/**
|
1507
1498
|
* Call state used for metrics
|
1508
1499
|
* @instance
|
@@ -2391,6 +2382,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
2391
2382
|
this.callStateForMetrics.correlationId = correlationId;
|
2392
2383
|
}
|
2393
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
|
+
|
2394
2403
|
/**
|
2395
2404
|
* Getter - Returns callStateForMetrics.userNameInput
|
2396
2405
|
* @returns {string}
|
@@ -3669,9 +3678,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3669
3678
|
// There is no concept of local/remote share for whiteboard
|
3670
3679
|
// It does not matter who requested to share the whiteboard, everyone gets the same view
|
3671
3680
|
else if (whiteboardShare.disposition === _constants.FLOOR_ACTION.GRANTED) {
|
3672
|
-
|
3673
|
-
|
3674
|
-
|
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
|
+
}
|
3675
3691
|
}
|
3676
3692
|
// or if content share is either released or null and whiteboard share is either released or null, no one is sharing
|
3677
3693
|
else if ((previousContentShare && contentShare.disposition === _constants.FLOOR_ACTION.RELEASED || contentShare.disposition === null) && (previousWhiteboardShare && whiteboardShare.disposition === _constants.FLOOR_ACTION.RELEASED || whiteboardShare.disposition === null)) {
|
@@ -4332,11 +4348,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4332
4348
|
|
4333
4349
|
/**
|
4334
4350
|
* Invite a guest to the call that isn't normally part of this call
|
4335
|
-
* @param {
|
4351
|
+
* @param {Invitee} invitee
|
4336
4352
|
* @param {String} invitee.emailAddress
|
4337
4353
|
* @param {String} invitee.email
|
4338
4354
|
* @param {String} invitee.phoneNumber
|
4339
4355
|
* @param {Boolean} [alertIfActive]
|
4356
|
+
* @param {Boolean} [invitee.skipEmailValidation]
|
4357
|
+
* @param {Boolean} [invitee.isInternalNumber]
|
4340
4358
|
* @returns {Promise} see #members.addMember
|
4341
4359
|
* @public
|
4342
4360
|
* @memberof Meeting
|
@@ -4350,7 +4368,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4350
4368
|
|
4351
4369
|
/**
|
4352
4370
|
* Cancel an outgoing phone call invitation made during a meeting
|
4353
|
-
* @param {
|
4371
|
+
* @param {Invitee} invitee
|
4354
4372
|
* @param {String} invitee.phoneNumber
|
4355
4373
|
* @returns {Promise} see #members.cancelPhoneInvite
|
4356
4374
|
* @public
|
@@ -4364,7 +4382,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4364
4382
|
|
4365
4383
|
/**
|
4366
4384
|
* Cancel an SIP/phone call invitation made during a meeting
|
4367
|
-
* @param {
|
4385
|
+
* @param {Invitee} invitee
|
4368
4386
|
* @param {String} invitee.memberId
|
4369
4387
|
* @param {Boolean} [invitee.isInternalNumber] - When cancel phone invitation, if the number is internal
|
4370
4388
|
* @returns {Promise} see #members.cancelInviteByMemberId
|
@@ -4659,6 +4677,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4659
4677
|
isClosedCaptionActive: _util2.default.isClosedCaptionActive(this.userDisplayHints),
|
4660
4678
|
canStartManualCaption: _util2.default.canStartManualCaption(this.userDisplayHints),
|
4661
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),
|
4662
4683
|
isManualCaptionActive: _util2.default.isManualCaptionActive(this.userDisplayHints),
|
4663
4684
|
isSaveTranscriptsEnabled: _util2.default.isSaveTranscriptsEnabled(this.userDisplayHints),
|
4664
4685
|
isWebexAssistantActive: _util2.default.isWebexAssistantActive(this.userDisplayHints),
|
@@ -4953,7 +4974,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4953
4974
|
this.selfId = locus.selfId;
|
4954
4975
|
this.mediaId = locus.mediaId;
|
4955
4976
|
this.hostId = mtgLocus.host ? mtgLocus.host.id : this.hostId;
|
4956
|
-
this.locusInfo.initialSetup(mtgLocus
|
4977
|
+
this.locusInfo.initialSetup(mtgLocus);
|
4957
4978
|
}
|
4958
4979
|
|
4959
4980
|
/**
|
@@ -6333,24 +6354,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6333
6354
|
_this36.deferJoin = undefined;
|
6334
6355
|
return join;
|
6335
6356
|
}).catch(function (error) {
|
6336
|
-
var
|
6357
|
+
var _error$error;
|
6337
6358
|
_this36.meetingFiniteStateMachine.fail(error);
|
6338
6359
|
_loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
|
6339
6360
|
|
6340
|
-
// @ts-ignore
|
6341
|
-
_this36.webex.internal.newMetrics.submitClientEvent({
|
6342
|
-
name: 'client.locus.join.response',
|
6343
|
-
payload: {
|
6344
|
-
identifiers: {
|
6345
|
-
meetingLookupUrl: (_this36$meetingInfo = _this36.meetingInfo) === null || _this36$meetingInfo === void 0 ? void 0 : _this36$meetingInfo.meetingLookupUrl
|
6346
|
-
}
|
6347
|
-
},
|
6348
|
-
options: {
|
6349
|
-
meetingId: _this36.id,
|
6350
|
-
rawError: error
|
6351
|
-
}
|
6352
|
-
});
|
6353
|
-
|
6354
6361
|
// TODO: change this to error codes and pre defined dictionary
|
6355
6362
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
|
6356
6363
|
correlation_id: _this36.correlationId,
|
@@ -6416,7 +6423,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6416
6423
|
isJoined = this.isJoined(); // webinar panelist should use new data channel in practice session
|
6417
6424
|
dataChannelUrl = this.webinar.isJoinPracticeSessionDataChannel() && practiceSessionDatachannelUrl ? practiceSessionDatachannelUrl : datachannelUrl; // @ts-ignore - Fix type
|
6418
6425
|
if (!this.webex.internal.llm.isConnected()) {
|
6419
|
-
_context20.next =
|
6426
|
+
_context20.next = 9;
|
6420
6427
|
break;
|
6421
6428
|
}
|
6422
6429
|
if (!(
|
@@ -6437,28 +6444,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6437
6444
|
case 8:
|
6438
6445
|
// @ts-ignore - Fix type
|
6439
6446
|
this.webex.internal.llm.off('event:relay.event', this.processRelayEvent);
|
6440
|
-
|
6441
|
-
this.webex.internal.llm.off('event:locus.state_message', this.processLocusLLMEvent);
|
6442
|
-
case 10:
|
6447
|
+
case 9:
|
6443
6448
|
if (isJoined) {
|
6444
|
-
_context20.next =
|
6449
|
+
_context20.next = 11;
|
6445
6450
|
break;
|
6446
6451
|
}
|
6447
6452
|
return _context20.abrupt("return", undefined);
|
6448
|
-
case
|
6453
|
+
case 11:
|
6449
6454
|
return _context20.abrupt("return", this.webex.internal.llm.registerAndConnect(url, dataChannelUrl).then(function (registerAndConnectResult) {
|
6450
6455
|
// @ts-ignore - Fix type
|
6451
6456
|
_this37.webex.internal.llm.off('event:relay.event', _this37.processRelayEvent);
|
6452
6457
|
// @ts-ignore - Fix type
|
6453
6458
|
_this37.webex.internal.llm.on('event:relay.event', _this37.processRelayEvent);
|
6454
|
-
// @ts-ignore - Fix type
|
6455
|
-
_this37.webex.internal.llm.off('event:locus.state_message', _this37.processLocusLLMEvent);
|
6456
|
-
// @ts-ignore - Fix type
|
6457
|
-
_this37.webex.internal.llm.on('event:locus.state_message', _this37.processLocusLLMEvent);
|
6458
6459
|
_loggerProxy.default.logger.info('Meeting:index#updateLLMConnection --> enabled to receive relay events!');
|
6459
6460
|
return _promise.default.resolve(registerAndConnectResult);
|
6460
6461
|
}));
|
6461
|
-
case
|
6462
|
+
case 12:
|
6462
6463
|
case "end":
|
6463
6464
|
return _context20.stop();
|
6464
6465
|
}
|
@@ -6510,14 +6511,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6510
6511
|
value: function dialInPstn() {
|
6511
6512
|
var _this38 = this;
|
6512
6513
|
if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
|
6513
|
-
|
6514
|
-
var
|
6514
|
+
this.pstnCorrelationId = _uuid.default.v4();
|
6515
|
+
var pstnCorrelationId = this.pstnCorrelationId,
|
6515
6516
|
locusUrl = this.locusUrl;
|
6516
6517
|
if (!this.dialInUrl) this.dialInUrl = "dialin:///".concat(_uuid.default.v4());
|
6517
6518
|
return this.meetingRequest
|
6518
6519
|
// @ts-ignore
|
6519
6520
|
.dialIn({
|
6520
|
-
correlationId:
|
6521
|
+
correlationId: pstnCorrelationId,
|
6521
6522
|
dialInUrl: this.dialInUrl,
|
6522
6523
|
locusUrl: locusUrl,
|
6523
6524
|
clientUrl: this.deviceUrl
|
@@ -6526,11 +6527,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6526
6527
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
|
6527
6528
|
correlation_id: _this38.correlationId,
|
6528
6529
|
dial_in_url: _this38.dialInUrl,
|
6530
|
+
dial_in_correlation_id: pstnCorrelationId,
|
6529
6531
|
locus_id: locusUrl.split('/').pop(),
|
6530
6532
|
client_url: _this38.deviceUrl,
|
6531
6533
|
reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
|
6532
6534
|
stack: error.stack
|
6533
6535
|
});
|
6536
|
+
if (_this38.pstnCorrelationId === pstnCorrelationId) {
|
6537
|
+
_this38.pstnCorrelationId = undefined;
|
6538
|
+
}
|
6534
6539
|
return _promise.default.reject(error);
|
6535
6540
|
});
|
6536
6541
|
}
|
@@ -6547,14 +6552,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6547
6552
|
value: function dialOutPstn(phoneNumber) {
|
6548
6553
|
var _this39 = this;
|
6549
6554
|
if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
|
6550
|
-
|
6551
|
-
var
|
6552
|
-
|
6555
|
+
this.pstnCorrelationId = _uuid.default.v4();
|
6556
|
+
var locusUrl = this.locusUrl,
|
6557
|
+
pstnCorrelationId = this.pstnCorrelationId;
|
6553
6558
|
if (!this.dialOutUrl) this.dialOutUrl = "dialout:///".concat(_uuid.default.v4());
|
6554
6559
|
return this.meetingRequest
|
6555
6560
|
// @ts-ignore
|
6556
6561
|
.dialOut({
|
6557
|
-
correlationId:
|
6562
|
+
correlationId: pstnCorrelationId,
|
6558
6563
|
dialOutUrl: this.dialOutUrl,
|
6559
6564
|
phoneNumber: phoneNumber,
|
6560
6565
|
locusUrl: locusUrl,
|
@@ -6564,11 +6569,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6564
6569
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
|
6565
6570
|
correlation_id: _this39.correlationId,
|
6566
6571
|
dial_out_url: _this39.dialOutUrl,
|
6572
|
+
dial_out_correlation_id: pstnCorrelationId,
|
6567
6573
|
locus_id: locusUrl.split('/').pop(),
|
6568
6574
|
client_url: _this39.deviceUrl,
|
6569
6575
|
reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
|
6570
6576
|
stack: error.stack
|
6571
6577
|
});
|
6578
|
+
if (_this39.pstnCorrelationId === pstnCorrelationId) {
|
6579
|
+
_this39.pstnCorrelationId = undefined;
|
6580
|
+
}
|
6572
6581
|
return _promise.default.reject(error);
|
6573
6582
|
});
|
6574
6583
|
}
|
@@ -6583,7 +6592,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6583
6592
|
}, {
|
6584
6593
|
key: "disconnectPhoneAudio",
|
6585
6594
|
value: function disconnectPhoneAudio() {
|
6586
|
-
|
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
|
+
});
|
6587
6602
|
}
|
6588
6603
|
|
6589
6604
|
/**
|
@@ -6596,7 +6611,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6596
6611
|
}, {
|
6597
6612
|
key: "moveTo",
|
6598
6613
|
value: function moveTo(resourceId) {
|
6599
|
-
var
|
6614
|
+
var _this41 = this;
|
6600
6615
|
if (!resourceId) {
|
6601
6616
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
6602
6617
|
}
|
@@ -6640,12 +6655,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6640
6655
|
while (1) switch (_context21.prev = _context21.next) {
|
6641
6656
|
case 0:
|
6642
6657
|
_context21.prev = 0;
|
6643
|
-
if (!(
|
6658
|
+
if (!(_this41.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
|
6644
6659
|
_context21.next = 4;
|
6645
6660
|
break;
|
6646
6661
|
}
|
6647
6662
|
_context21.next = 4;
|
6648
|
-
return
|
6663
|
+
return _this41.releaseScreenShareFloor();
|
6649
6664
|
case 4:
|
6650
6665
|
mediaSettings = {
|
6651
6666
|
mediaDirection: {
|
@@ -6657,37 +6672,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6657
6672
|
receiveShare: true
|
6658
6673
|
}
|
6659
6674
|
};
|
6660
|
-
|
6661
|
-
|
6675
|
+
_this41.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
|
6676
|
+
_this41.mediaProperties.unsetRemoteMedia();
|
6662
6677
|
|
6663
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
|
6664
6679
|
// once the device answers we close the old connection and create new media server connection with only share enabled
|
6665
|
-
if (!
|
6680
|
+
if (!_this41.statsAnalyzer) {
|
6666
6681
|
_context21.next = 10;
|
6667
6682
|
break;
|
6668
6683
|
}
|
6669
6684
|
_context21.next = 10;
|
6670
|
-
return
|
6685
|
+
return _this41.statsAnalyzer.stopAnalyzer();
|
6671
6686
|
case 10:
|
6672
6687
|
_context21.next = 12;
|
6673
|
-
return
|
6688
|
+
return _this41.closeRemoteStreams();
|
6674
6689
|
case 12:
|
6675
6690
|
_context21.next = 14;
|
6676
|
-
return
|
6691
|
+
return _this41.closePeerConnections();
|
6677
6692
|
case 14:
|
6678
|
-
|
6679
|
-
|
6680
|
-
|
6681
|
-
|
6693
|
+
_this41.cleanupLocalStreams();
|
6694
|
+
_this41.unsetRemoteStreams();
|
6695
|
+
_this41.unsetPeerConnections();
|
6696
|
+
_this41.reconnectionManager.cleanUp();
|
6682
6697
|
_context21.next = 20;
|
6683
|
-
return
|
6698
|
+
return _this41.addMedia({
|
6684
6699
|
audioEnabled: false,
|
6685
6700
|
videoEnabled: false,
|
6686
6701
|
shareVideoEnabled: true
|
6687
6702
|
});
|
6688
6703
|
case 20:
|
6689
6704
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
|
6690
|
-
|
6705
|
+
_this41.isMoveToInProgress = false;
|
6691
6706
|
_context21.next = 29;
|
6692
6707
|
break;
|
6693
6708
|
case 24:
|
@@ -6695,12 +6710,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6695
6710
|
_context21.t0 = _context21["catch"](0);
|
6696
6711
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context21.t0);
|
6697
6712
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
6698
|
-
correlation_id:
|
6699
|
-
locus_id:
|
6713
|
+
correlation_id: _this41.correlationId,
|
6714
|
+
locus_id: _this41.locusUrl.split('/').pop(),
|
6700
6715
|
reason: _context21.t0.message,
|
6701
6716
|
stack: _context21.t0.stack
|
6702
6717
|
});
|
6703
|
-
|
6718
|
+
_this41.isMoveToInProgress = false;
|
6704
6719
|
case 29:
|
6705
6720
|
case "end":
|
6706
6721
|
return _context21.stop();
|
@@ -6716,17 +6731,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6716
6731
|
resourceId: resourceId,
|
6717
6732
|
moveToResource: true
|
6718
6733
|
}).then(function () {
|
6719
|
-
|
6734
|
+
_this41.meetingFiniteStateMachine.join();
|
6720
6735
|
}).catch(function (error) {
|
6721
|
-
|
6736
|
+
_this41.meetingFiniteStateMachine.fail(error);
|
6722
6737
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
6723
|
-
correlation_id:
|
6724
|
-
locus_id:
|
6738
|
+
correlation_id: _this41.correlationId,
|
6739
|
+
locus_id: _this41.locusUrl.split('/').pop(),
|
6725
6740
|
reason: error.message,
|
6726
6741
|
stack: error.stack
|
6727
6742
|
});
|
6728
6743
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', error);
|
6729
|
-
|
6744
|
+
_this41.isMoveToInProgress = false;
|
6730
6745
|
return _promise.default.reject(error);
|
6731
6746
|
});
|
6732
6747
|
}
|
@@ -6741,7 +6756,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6741
6756
|
}, {
|
6742
6757
|
key: "moveFrom",
|
6743
6758
|
value: function moveFrom(resourceId) {
|
6744
|
-
var
|
6759
|
+
var _this42 = this;
|
6745
6760
|
// On moveFrom ask the developer to re capture it moveFrom then updateMedia
|
6746
6761
|
if (!resourceId) {
|
6747
6762
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
@@ -6756,19 +6771,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6756
6771
|
}
|
6757
6772
|
});
|
6758
6773
|
return _util2.default.joinMeetingOptions(this).then(function () {
|
6759
|
-
return _util2.default.leaveMeeting(
|
6774
|
+
return _util2.default.leaveMeeting(_this42, {
|
6760
6775
|
resourceId: resourceId,
|
6761
6776
|
correlationId: oldCorrelationId,
|
6762
6777
|
moveMeeting: true
|
6763
6778
|
}).then(function () {
|
6764
|
-
|
6779
|
+
_this42.resourceId = '';
|
6765
6780
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
|
6766
6781
|
});
|
6767
6782
|
}).catch(function (error) {
|
6768
|
-
|
6783
|
+
_this42.meetingFiniteStateMachine.fail(error);
|
6769
6784
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
|
6770
|
-
correlation_id:
|
6771
|
-
locus_id:
|
6785
|
+
correlation_id: _this42.correlationId,
|
6786
|
+
locus_id: _this42.locusUrl.split('/').pop(),
|
6772
6787
|
reason: error.message,
|
6773
6788
|
stack: error.stack
|
6774
6789
|
});
|
@@ -6891,9 +6906,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6891
6906
|
}, {
|
6892
6907
|
key: "forwardEvent",
|
6893
6908
|
value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
|
6894
|
-
var
|
6909
|
+
var _this43 = this;
|
6895
6910
|
eventEmitter.on(eventTypeToForward, function (data) {
|
6896
|
-
return _triggerProxy.default.trigger(
|
6911
|
+
return _triggerProxy.default.trigger(_this43, {
|
6897
6912
|
file: 'meetings',
|
6898
6913
|
function: 'addMedia'
|
6899
6914
|
}, meetingEventType, data);
|
@@ -7079,7 +7094,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7079
7094
|
key: "waitForRemoteSDPAnswer",
|
7080
7095
|
value: (function () {
|
7081
7096
|
var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25() {
|
7082
|
-
var
|
7097
|
+
var _this44 = this;
|
7083
7098
|
var LOG_HEADER, deferSDPAnswer;
|
7084
7099
|
return _regenerator.default.wrap(function _callee25$(_context25) {
|
7085
7100
|
while (1) switch (_context25.prev = _context25.next) {
|
@@ -7098,18 +7113,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7098
7113
|
var error = new Error('Timed out waiting for REMOTE SDP ANSWER');
|
7099
7114
|
|
7100
7115
|
// @ts-ignore
|
7101
|
-
|
7116
|
+
_this44.webex.internal.newMetrics.submitClientEvent({
|
7102
7117
|
name: 'client.media-engine.remote-sdp-received',
|
7103
7118
|
payload: {
|
7104
7119
|
canProceed: false,
|
7105
7120
|
errors: [
|
7106
7121
|
// @ts-ignore
|
7107
|
-
|
7122
|
+
_this44.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
|
7108
7123
|
clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
|
7109
7124
|
})]
|
7110
7125
|
},
|
7111
7126
|
options: {
|
7112
|
-
meetingId:
|
7127
|
+
meetingId: _this44.id,
|
7113
7128
|
rawError: error
|
7114
7129
|
}
|
7115
7130
|
});
|
@@ -7616,10 +7631,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7616
7631
|
}, {
|
7617
7632
|
key: "addMedia",
|
7618
7633
|
value: function addMedia() {
|
7619
|
-
var
|
7634
|
+
var _this45 = this;
|
7620
7635
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
7621
7636
|
return this.addMediaInternal(function () {
|
7622
|
-
return
|
7637
|
+
return _this45.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
7623
7638
|
}, undefined, false, options);
|
7624
7639
|
}
|
7625
7640
|
|
@@ -7945,7 +7960,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7945
7960
|
* @memberof Meeting
|
7946
7961
|
*/
|
7947
7962
|
function enqueueMediaUpdate(mediaUpdateType) {
|
7948
|
-
var
|
7963
|
+
var _this46 = this;
|
7949
7964
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
7950
7965
|
var canUpdateMediaNow = this.canUpdateMedia();
|
7951
7966
|
return new _promise.default(function (resolve, reject) {
|
@@ -7956,9 +7971,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7956
7971
|
options: options
|
7957
7972
|
};
|
7958
7973
|
_loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
|
7959
|
-
|
7974
|
+
_this46.queuedMediaUpdates.push(queueItem);
|
7960
7975
|
if (canUpdateMediaNow) {
|
7961
|
-
|
7976
|
+
_this46.processNextQueuedMediaUpdate();
|
7962
7977
|
}
|
7963
7978
|
});
|
7964
7979
|
}
|
@@ -8063,7 +8078,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8063
8078
|
}, {
|
8064
8079
|
key: "acknowledge",
|
8065
8080
|
value: function acknowledge(type) {
|
8066
|
-
var
|
8081
|
+
var _this47 = this;
|
8067
8082
|
if (!type) {
|
8068
8083
|
return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
|
8069
8084
|
}
|
@@ -8075,12 +8090,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8075
8090
|
}).then(function (response) {
|
8076
8091
|
return _promise.default.resolve(response);
|
8077
8092
|
}).then(function (response) {
|
8078
|
-
|
8093
|
+
_this47.meetingFiniteStateMachine.ring(type);
|
8079
8094
|
// @ts-ignore
|
8080
|
-
|
8095
|
+
_this47.webex.internal.newMetrics.submitClientEvent({
|
8081
8096
|
name: 'client.alert.displayed',
|
8082
8097
|
options: {
|
8083
|
-
meetingId:
|
8098
|
+
meetingId: _this47.id
|
8084
8099
|
}
|
8085
8100
|
});
|
8086
8101
|
return _promise.default.resolve({
|
@@ -8105,12 +8120,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8105
8120
|
}, {
|
8106
8121
|
key: "decline",
|
8107
8122
|
value: function decline(reason) {
|
8108
|
-
var
|
8123
|
+
var _this48 = this;
|
8109
8124
|
return _util2.default.declineMeeting(this, reason).then(function (decline) {
|
8110
|
-
|
8125
|
+
_this48.meetingFiniteStateMachine.decline();
|
8111
8126
|
return _promise.default.resolve(decline);
|
8112
8127
|
}).catch(function (error) {
|
8113
|
-
|
8128
|
+
_this48.meetingFiniteStateMachine.fail(error);
|
8114
8129
|
return _promise.default.reject(error);
|
8115
8130
|
});
|
8116
8131
|
}
|
@@ -8161,7 +8176,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8161
8176
|
}, {
|
8162
8177
|
key: "leave",
|
8163
8178
|
value: function leave() {
|
8164
|
-
var
|
8179
|
+
var _this49 = this;
|
8165
8180
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
8166
8181
|
var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
|
8167
8182
|
|
@@ -8173,7 +8188,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8173
8188
|
var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
8174
8189
|
return (
|
8175
8190
|
// @ts-ignore
|
8176
|
-
|
8191
|
+
_this49.webex.internal.newMetrics.submitClientEvent({
|
8177
8192
|
name: 'client.call.leave',
|
8178
8193
|
payload: _objectSpread({
|
8179
8194
|
trigger: 'user-interaction',
|
@@ -8181,7 +8196,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8181
8196
|
leaveReason: options.clientEventLeaveReason
|
8182
8197
|
}, payload),
|
8183
8198
|
options: {
|
8184
|
-
meetingId:
|
8199
|
+
meetingId: _this49.id
|
8185
8200
|
}
|
8186
8201
|
})
|
8187
8202
|
);
|
@@ -8190,24 +8205,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8190
8205
|
return _util2.default.leaveMeeting(this, options).then(function (leave) {
|
8191
8206
|
// CA team recommends submitting this *after* locus /leave
|
8192
8207
|
submitLeaveMetric();
|
8193
|
-
|
8194
|
-
|
8208
|
+
_this49.meetingFiniteStateMachine.leave();
|
8209
|
+
_this49.clearMeetingData();
|
8195
8210
|
|
8196
8211
|
// upload logs on leave irrespective of meeting delete
|
8197
|
-
_triggerProxy.default.trigger(
|
8212
|
+
_triggerProxy.default.trigger(_this49, {
|
8198
8213
|
file: 'meeting/index',
|
8199
8214
|
function: 'leave'
|
8200
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8215
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this49);
|
8201
8216
|
|
8202
8217
|
// TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
|
8203
|
-
if (
|
8218
|
+
if (_this49.wirelessShare || _this49.guest) {
|
8204
8219
|
// If screen sharing clean the meeting object
|
8205
|
-
_triggerProxy.default.trigger(
|
8220
|
+
_triggerProxy.default.trigger(_this49, {
|
8206
8221
|
file: 'meeting/index',
|
8207
8222
|
function: 'leave'
|
8208
8223
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
8209
8224
|
reason: options.reason,
|
8210
|
-
meetingId:
|
8225
|
+
meetingId: _this49.id
|
8211
8226
|
});
|
8212
8227
|
}
|
8213
8228
|
_loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
|
@@ -8224,16 +8239,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8224
8239
|
shownToUser: false
|
8225
8240
|
}]
|
8226
8241
|
});
|
8227
|
-
|
8242
|
+
_this49.meetingFiniteStateMachine.fail(error);
|
8228
8243
|
_loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
|
8229
8244
|
// upload logs on leave irrespective of meeting delete
|
8230
|
-
_triggerProxy.default.trigger(
|
8245
|
+
_triggerProxy.default.trigger(_this49, {
|
8231
8246
|
file: 'meeting/index',
|
8232
8247
|
function: 'leave'
|
8233
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8248
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this49);
|
8234
8249
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
|
8235
|
-
correlation_id:
|
8236
|
-
locus_id:
|
8250
|
+
correlation_id: _this49.correlationId,
|
8251
|
+
locus_id: _this49.locusUrl.split('/').pop(),
|
8237
8252
|
reason: error.message,
|
8238
8253
|
stack: error.stack,
|
8239
8254
|
code: error.code
|
@@ -8253,7 +8268,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8253
8268
|
}, {
|
8254
8269
|
key: "startWhiteboardShare",
|
8255
8270
|
value: function startWhiteboardShare(channelUrl, resourceToken) {
|
8256
|
-
var
|
8271
|
+
var _this50 = this;
|
8257
8272
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
8258
8273
|
return element.name === 'whiteboard';
|
8259
8274
|
});
|
@@ -8261,6 +8276,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8261
8276
|
return _promise.default.reject(new _parameter.default('Cannot share without channelUrl.'));
|
8262
8277
|
}
|
8263
8278
|
if (whiteboard) {
|
8279
|
+
// @ts-ignore
|
8280
|
+
this.webex.internal.newMetrics.callDiagnosticLatencies.saveTimestamp({
|
8281
|
+
key: 'internal.client.share.initiated'
|
8282
|
+
});
|
8264
8283
|
// @ts-ignore
|
8265
8284
|
this.webex.internal.newMetrics.submitClientEvent({
|
8266
8285
|
name: 'client.share.initiated',
|
@@ -8282,13 +8301,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8282
8301
|
body.resourceToken = resourceToken;
|
8283
8302
|
}
|
8284
8303
|
return this.meetingRequest.changeMeetingFloor(body).then(function () {
|
8285
|
-
|
8304
|
+
_this50.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
8286
8305
|
return _promise.default.resolve();
|
8287
8306
|
}).catch(function (error) {
|
8288
8307
|
_loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
|
8289
8308
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
|
8290
|
-
correlation_id:
|
8291
|
-
locus_id:
|
8309
|
+
correlation_id: _this50.correlationId,
|
8310
|
+
locus_id: _this50.locusUrl.split('/').pop(),
|
8292
8311
|
reason: error.message,
|
8293
8312
|
stack: error.stack,
|
8294
8313
|
board: {
|
@@ -8311,16 +8330,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8311
8330
|
}, {
|
8312
8331
|
key: "stopWhiteboardShare",
|
8313
8332
|
value: function stopWhiteboardShare(channelUrl) {
|
8314
|
-
var
|
8333
|
+
var _this51 = this;
|
8315
8334
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
8316
8335
|
return element.name === 'whiteboard';
|
8317
8336
|
});
|
8318
8337
|
if (whiteboard) {
|
8338
|
+
// @ts-ignore
|
8339
|
+
this.webex.internal.newMetrics.callDiagnosticLatencies.saveTimestamp({
|
8340
|
+
key: 'internal.client.share.stopped'
|
8341
|
+
});
|
8319
8342
|
// @ts-ignore
|
8320
8343
|
this.webex.internal.newMetrics.submitClientEvent({
|
8321
8344
|
name: 'client.share.stopped',
|
8322
8345
|
payload: {
|
8323
|
-
mediaType: 'whiteboard'
|
8346
|
+
mediaType: 'whiteboard',
|
8347
|
+
// @ts-ignore
|
8348
|
+
shareDuration: this.webex.internal.newMetrics.callDiagnosticLatencies.getShareDuration()
|
8324
8349
|
},
|
8325
8350
|
options: {
|
8326
8351
|
meetingId: this.id
|
@@ -8334,8 +8359,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8334
8359
|
}).catch(function (error) {
|
8335
8360
|
_loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
|
8336
8361
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
|
8337
|
-
correlation_id:
|
8338
|
-
locus_id:
|
8362
|
+
correlation_id: _this51.correlationId,
|
8363
|
+
locus_id: _this51.locusUrl.split('/').pop(),
|
8339
8364
|
reason: error.message,
|
8340
8365
|
stack: error.stack,
|
8341
8366
|
board: {
|
@@ -8357,7 +8382,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8357
8382
|
}, {
|
8358
8383
|
key: "requestScreenShareFloor",
|
8359
8384
|
value: function requestScreenShareFloor() {
|
8360
|
-
var
|
8385
|
+
var _this52 = this;
|
8361
8386
|
if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
|
8362
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, ")"));
|
8363
8388
|
this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
@@ -8388,34 +8413,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8388
8413
|
resourceUrl: this.resourceUrl,
|
8389
8414
|
shareInstanceId: this.localShareInstanceId
|
8390
8415
|
}).then(function () {
|
8391
|
-
|
8416
|
+
_this52.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
|
8392
8417
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
|
8393
|
-
correlation_id:
|
8394
|
-
locus_id:
|
8418
|
+
correlation_id: _this52.correlationId,
|
8419
|
+
locus_id: _this52.locusUrl.split('/').pop()
|
8395
8420
|
});
|
8396
8421
|
return _promise.default.resolve();
|
8397
8422
|
}).catch(function (error) {
|
8398
8423
|
_loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
|
8399
8424
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
|
8400
|
-
correlation_id:
|
8401
|
-
locus_id:
|
8425
|
+
correlation_id: _this52.correlationId,
|
8426
|
+
locus_id: _this52.locusUrl.split('/').pop(),
|
8402
8427
|
reason: error.message,
|
8403
8428
|
stack: error.stack
|
8404
8429
|
});
|
8405
8430
|
|
8406
8431
|
// @ts-ignore
|
8407
|
-
|
8432
|
+
_this52.webex.internal.newMetrics.submitClientEvent({
|
8408
8433
|
name: 'client.share.floor-granted.local',
|
8409
8434
|
payload: {
|
8410
8435
|
mediaType: 'share',
|
8411
8436
|
errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
|
8412
|
-
shareInstanceId:
|
8437
|
+
shareInstanceId: _this52.localShareInstanceId
|
8413
8438
|
},
|
8414
8439
|
options: {
|
8415
|
-
meetingId:
|
8440
|
+
meetingId: _this52.id
|
8416
8441
|
}
|
8417
8442
|
});
|
8418
|
-
|
8443
|
+
_this52.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
8419
8444
|
return _promise.default.reject(error);
|
8420
8445
|
});
|
8421
8446
|
}
|
@@ -8438,10 +8463,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8438
8463
|
}, {
|
8439
8464
|
key: "requestScreenShareFloorIfPending",
|
8440
8465
|
value: function requestScreenShareFloorIfPending() {
|
8441
|
-
var
|
8466
|
+
var _this53 = this;
|
8442
8467
|
if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
|
8443
8468
|
this.requestScreenShareFloor().then(function () {
|
8444
|
-
|
8469
|
+
_this53.floorGrantPending = false;
|
8445
8470
|
});
|
8446
8471
|
}
|
8447
8472
|
}
|
@@ -8455,7 +8480,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8455
8480
|
}, {
|
8456
8481
|
key: "releaseScreenShareFloor",
|
8457
8482
|
value: function releaseScreenShareFloor() {
|
8458
|
-
var
|
8483
|
+
var _this54 = this;
|
8459
8484
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
8460
8485
|
return element.name === _constants.CONTENT;
|
8461
8486
|
});
|
@@ -8466,11 +8491,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8466
8491
|
if (content) {
|
8467
8492
|
var _content$floor;
|
8468
8493
|
// @ts-ignore
|
8494
|
+
this.webex.internal.newMetrics.callDiagnosticLatencies.saveTimestamp({
|
8495
|
+
key: 'internal.client.share.stopped'
|
8496
|
+
});
|
8497
|
+
// @ts-ignore
|
8469
8498
|
this.webex.internal.newMetrics.submitClientEvent({
|
8470
8499
|
name: 'client.share.stopped',
|
8471
8500
|
payload: {
|
8472
8501
|
mediaType: 'share',
|
8473
|
-
shareInstanceId: this.localShareInstanceId
|
8502
|
+
shareInstanceId: this.localShareInstanceId,
|
8503
|
+
// @ts-ignore
|
8504
|
+
shareDuration: this.webex.internal.newMetrics.callDiagnosticLatencies.getShareDuration()
|
8474
8505
|
},
|
8475
8506
|
options: {
|
8476
8507
|
meetingId: this.id
|
@@ -8490,8 +8521,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8490
8521
|
}).catch(function (error) {
|
8491
8522
|
_loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
|
8492
8523
|
_metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
|
8493
|
-
correlation_id:
|
8494
|
-
locus_id:
|
8524
|
+
correlation_id: _this54.correlationId,
|
8525
|
+
locus_id: _this54.locusUrl.split('/').pop(),
|
8495
8526
|
reason: error.message,
|
8496
8527
|
stack: error.stack
|
8497
8528
|
});
|
@@ -8671,7 +8702,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8671
8702
|
}, {
|
8672
8703
|
key: "changeVideoLayout",
|
8673
8704
|
value: function changeVideoLayout(layoutType) {
|
8674
|
-
var
|
8705
|
+
var _this55 = this;
|
8675
8706
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
8676
8707
|
var main = renderInfo.main,
|
8677
8708
|
content = renderInfo.content;
|
@@ -8725,7 +8756,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8725
8756
|
}
|
8726
8757
|
this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
|
8727
8758
|
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
|
8728
|
-
_triggerProxy.default.trigger(
|
8759
|
+
_triggerProxy.default.trigger(_this55, {
|
8729
8760
|
file: 'meeting/index',
|
8730
8761
|
function: 'changeVideoLayout'
|
8731
8762
|
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
|
@@ -8841,7 +8872,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8841
8872
|
}, {
|
8842
8873
|
key: "endMeetingForAll",
|
8843
8874
|
value: function endMeetingForAll() {
|
8844
|
-
var
|
8875
|
+
var _this56 = this;
|
8845
8876
|
// @ts-ignore
|
8846
8877
|
this.webex.internal.newMetrics.submitClientEvent({
|
8847
8878
|
name: 'client.call.leave',
|
@@ -8859,25 +8890,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8859
8890
|
locus_id: this.locusId
|
8860
8891
|
});
|
8861
8892
|
return _util2.default.endMeetingForAll(this).then(function (end) {
|
8862
|
-
|
8863
|
-
|
8893
|
+
_this56.meetingFiniteStateMachine.end();
|
8894
|
+
_this56.clearMeetingData();
|
8864
8895
|
// upload logs on leave irrespective of meeting delete
|
8865
|
-
_triggerProxy.default.trigger(
|
8896
|
+
_triggerProxy.default.trigger(_this56, {
|
8866
8897
|
file: 'meeting/index',
|
8867
8898
|
function: 'endMeetingForAll'
|
8868
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8899
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this56);
|
8869
8900
|
return end;
|
8870
8901
|
}).catch(function (error) {
|
8871
|
-
|
8902
|
+
_this56.meetingFiniteStateMachine.fail(error);
|
8872
8903
|
_loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
|
8873
8904
|
// upload logs on leave irrespective of meeting delete
|
8874
|
-
_triggerProxy.default.trigger(
|
8905
|
+
_triggerProxy.default.trigger(_this56, {
|
8875
8906
|
file: 'meeting/index',
|
8876
8907
|
function: 'endMeetingForAll'
|
8877
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8908
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this56);
|
8878
8909
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
|
8879
|
-
correlation_id:
|
8880
|
-
locus_id:
|
8910
|
+
correlation_id: _this56.correlationId,
|
8911
|
+
locus_id: _this56.locusUrl.split('/').pop(),
|
8881
8912
|
reason: error.message,
|
8882
8913
|
stack: error.stack,
|
8883
8914
|
code: error.code
|
@@ -9038,7 +9069,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
9038
9069
|
_this$mediaProperties43,
|
9039
9070
|
_this$mediaProperties44,
|
9040
9071
|
_this$mediaProperties45,
|
9041
|
-
|
9072
|
+
_this57 = this;
|
9042
9073
|
var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
|
9043
9074
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
|
9044
9075
|
if (!this.canUpdateMedia()) {
|
@@ -9063,8 +9094,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
9063
9094
|
}).catch(function (error) {
|
9064
9095
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
|
9065
9096
|
_metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
|
9066
|
-
correlation_id:
|
9067
|
-
locus_id:
|
9097
|
+
correlation_id: _this57.correlationId,
|
9098
|
+
locus_id: _this57.locusUrl.split('/').pop(),
|
9068
9099
|
reason: error.message,
|
9069
9100
|
stack: error.stack
|
9070
9101
|
});
|
@@ -9286,13 +9317,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
9286
9317
|
return this.updateTranscodedMediaConnection();
|
9287
9318
|
case 31:
|
9288
9319
|
if (!floorRequestNeeded) {
|
9289
|
-
_context40.next =
|
9320
|
+
_context40.next = 40;
|
9290
9321
|
break;
|
9291
9322
|
}
|
9292
9323
|
this.localShareInstanceId = _uuid.default.v4();
|
9293
9324
|
this.shareCAEventSentStatus.transmitStart = false;
|
9294
9325
|
this.shareCAEventSentStatus.transmitStop = false;
|
9295
9326
|
|
9327
|
+
// @ts-ignore
|
9328
|
+
this.webex.internal.newMetrics.callDiagnosticLatencies.saveTimestamp({
|
9329
|
+
key: 'internal.client.share.initiated'
|
9330
|
+
});
|
9331
|
+
|
9296
9332
|
// @ts-ignore
|
9297
9333
|
this.webex.internal.newMetrics.submitClientEvent({
|
9298
9334
|
name: 'client.share.initiated',
|
@@ -9312,9 +9348,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
9312
9348
|
// we're sending the http request to Locus to request the screen share floor
|
9313
9349
|
// only after the SDP update, because that's how it's always been done for transcoded meetings
|
9314
9350
|
// and also if sharing from the start, we need confluence to have been created
|
9315
|
-
_context40.next =
|
9351
|
+
_context40.next = 40;
|
9316
9352
|
return this.enqueueScreenShareFloorRequest();
|
9317
|
-
case
|
9353
|
+
case 40:
|
9318
9354
|
case "end":
|
9319
9355
|
return _context40.stop();
|
9320
9356
|
}
|